Diff for /np2/i286c/i286c.c between versions 1.17 and 1.21

version 1.17, 2003/12/25 20:30:22 version 1.21, 2004/01/05 15:47:18
Line 94  const UINT8 iflags[512] = {     // Z_FLA Line 94  const UINT8 iflags[512] = {     // Z_FLA
   
 void i286c_initialize(void) {  void i286c_initialize(void) {
   
   #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)
         UINT    i;          UINT    i;
         UINT    bit;  #endif
         REG8    f;  
   
 #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)  #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)
         for (i=0; i<0x100; i++) {          for (i=0; i<0x100; i++) {
Line 124  void i286c_initialize(void) { Line 124  void i286c_initialize(void) {
   
 #if !defined(MEMOPTIMIZE)  #if !defined(MEMOPTIMIZE)
         for (i=0; i<0x10000; i++) {          for (i=0; i<0x10000; i++) {
                   REG8 f;
                   UINT bit;
                 f = P_FLAG;                  f = P_FLAG;
                 for (bit=0x80; bit; bit>>=1) {                  for (bit=0x80; bit; bit>>=1) {
                         if (i & bit) {                          if (i & bit) {
Line 145  void i286c_initialize(void) { Line 147  void i286c_initialize(void) {
         v30cinit();          v30cinit();
 }  }
   
 void i286c_reset(void) {  static void i286c_initreg(void) {
   
         ZeroMemory(&I286_STAT, sizeof(I286_STAT));  
         I286_CS = 0xf000;          I286_CS = 0xf000;
         CS_BASE = 0xf0000;          CS_BASE = 0xf0000;
         I286_IP = 0xfff0;          I286_IP = 0xfff0;
         I286_ADRSMASK = 0xfffff;          I286_ADRSMASK = 0xfffff;
 }  }
   
 void i286c_shut(void) {  void i286c_reset(void) {
   
         I286_MSW = 0;  
   
         I286_ES = 0;          ZeroMemory(&i286core.s, sizeof(i286core.s));
         I286_CS = 0xf000;          i286c_initreg();
         I286_SS = 0;  }
         I286_DS = 0;  
   
         ES_BASE = 0;  void i286c_shut(void) {
         CS_BASE = 0xf0000;  
         SS_BASE = 0;  
         DS_BASE = 0;  
         SS_FIX = 0;  
         DS_FIX = 0;  
   
         I286_IP = 0xfff0;          ZeroMemory(&i286core.s, offsetof(I286STAT, cpu_type));
         I286_ADRSMASK = 0xfffff;          i286c_initreg();
 }  }
   
 void CPUCALL i286c_intnum(UINT vect, REG16 IP) {  void CPUCALL i286c_intnum(UINT vect, REG16 IP) {
Line 262  void i286c_step(void) { Line 255  void i286c_step(void) {
 }  }
   
   
   UINT32 i286c_selector(UINT sel) {
   
           I286DTR *dtr;
           UINT32  addr;
           UINT32  ret;
   
           dtr = (sel & 4)?&I286_LDTRC:&I286_GDTR;
           addr = (dtr->base24 << 16) + dtr->base + (sel & (~7));
           ret = i286_memoryread_w(addr+2);
           ret += i286_memoryread(addr+4) << 16;
           TRACEOUT(("selector idx=%x %s rpl=%d - real addr = %.6x",
                                           (sel >> 3), (sel & 4)?"LDT":"GDT", sel & 3, ret));
           return(ret);
   }
   
   
 // ---- test  // ---- test
   
 #if defined(I286C_TEST)  #if defined(I286C_TEST)

Removed from v.1.17  
changed lines
  Added in v.1.21


RetroPC.NET-CVS <cvs@retropc.net>