Diff for /np2/i286c/i286c_mn.c between versions 1.12 and 1.13

version 1.12, 2003/11/24 09:14:01 version 1.13, 2003/11/28 08:01:32
Line 619  I286FN _daa(void) {        // 27: daa Line 619  I286FN _daa(void) {        // 27: daa
                 I286_AL += 0x60;                  I286_AL += 0x60;
         }          }
         I286_FLAGL &= A_FLAG | C_FLAG;          I286_FLAGL &= A_FLAG | C_FLAG;
         I286_FLAGL |= szpcflag[I286_AL];          I286_FLAGL |= BYTESZPF(I286_AL);
 }  }
   
 I286FN _sub_ea_r8(void) {                                               // 28: sub EA, REG8  I286FN _sub_ea_r8(void) {                                               // 28: sub EA, REG8
Line 762  I286FN _das(void) {        // 2f: das Line 762  I286FN _das(void) {        // 2f: das
                 I286_AL -= 6;                  I286_AL -= 6;
         }          }
         I286_FLAGL &= A_FLAG | C_FLAG;          I286_FLAGL &= A_FLAG | C_FLAG;
         I286_FLAGL |= szpcflag[I286_AL];          I286_FLAGL |= BYTESZPF(I286_AL);
 }  }
   
 I286FN _xor_ea_r8(void) {                                               // 30: xor EA, REG8  I286FN _xor_ea_r8(void) {                                               // 30: xor EA, REG8
Line 1602  I286FN _nop(void) {       // 90: nop / b Line 1602  I286FN _nop(void) {       // 90: nop / b
 #if 1                                                                           // call BIOS  #if 1                                                                           // call BIOS
         UINT32  adrs;          UINT32  adrs;
   
         adrs = ((I286_IP - 1) & 0xffff) + CS_BASE;          adrs = LOW16(I286_IP - 1) + CS_BASE;
         if ((adrs >= 0xf8000) && (adrs < 0x100000)) {          if ((adrs >= 0xf8000) && (adrs < 0x100000)) {
                 biosfunc(adrs);                  biosfunc(adrs);
                 ES_BASE = I286_ES << 4;                  ES_BASE = I286_ES << 4;
Line 1970  I286FN _les_r16_ea(void) {     // C4: le Line 1970  I286FN _les_r16_ea(void) {     // C4: le
   
         UINT    op;          UINT    op;
         UINT32  seg;          UINT32  seg;
         UINT16  ad;          UINT    ad;
   
         I286_WORKCLOCK(3);          I286_WORKCLOCK(3);
         GET_PCBYTE(op)          GET_PCBYTE(op)
         if (op < 0xc0) {          if (op < 0xc0) {
                 ad = GET_EA(op, &seg);                  ad = GET_EA(op, &seg);
                 *(REG16_B53(op)) = i286_memoryread_w(seg + ad);                  *(REG16_B53(op)) = i286_memoryread_w(seg + ad);
                 ad += 2;                  I286_ES = i286_memoryread_w(seg + LOW16(ad + 2));
                 I286_ES = i286_memoryread_w(seg + ad);  
                 ES_BASE = I286_ES << 4;                  ES_BASE = I286_ES << 4;
         }          }
         else {          else {
Line 1990  I286FN _lds_r16_ea(void) {     // C5: ld Line 1989  I286FN _lds_r16_ea(void) {     // C5: ld
   
         UINT    op;          UINT    op;
         UINT32  seg;          UINT32  seg;
         UINT16  ad;          UINT    ad;
   
         I286_WORKCLOCK(3);          I286_WORKCLOCK(3);
         GET_PCBYTE(op)          GET_PCBYTE(op)
         if (op < 0xc0) {          if (op < 0xc0) {
                 ad = GET_EA(op, &seg);                  ad = GET_EA(op, &seg);
                 *(REG16_B53(op)) = i286_memoryread_w(seg + ad);                  *(REG16_B53(op)) = i286_memoryread_w(seg + ad);
                 ad += 2;                  I286_DS = i286_memoryread_w(seg + LOW16(ad + 2));
                 I286_DS = i286_memoryread_w(seg + ad);  
                 DS_BASE = I286_DS << 4;                  DS_BASE = I286_DS << 4;
                 DS_FIX = DS_BASE;                  DS_FIX = DS_BASE;
         }          }
Line 2016  I286FN _mov_ea8_data8(void) {    // C6:  Line 2014  I286FN _mov_ea8_data8(void) {    // C6: 
                 I286_WORKCLOCK(2);                  I286_WORKCLOCK(2);
                 GET_PCBYTE(*(REG8_B53(op)))                  GET_PCBYTE(*(REG8_B53(op)))
         }          }
         else {          else {                          // 03/11/23
 #if 1                                   // 03/11/23  
                 UINT32 ad;                  UINT32 ad;
                 BYTE val;                  BYTE val;
                 I286_WORKCLOCK(3);                  I286_WORKCLOCK(3);
                 ad = CALC_EA(op);                  ad = CALC_EA(op);
                 GET_PCBYTE(val)                  GET_PCBYTE(val)
                 i286_memorywrite(ad, val);                  i286_memorywrite(ad, val);
 #else  
                 UINT ad;  
                 BYTE val;  
                 I286_WORKCLOCK(3);  
                 ad = c_get_ea[op]();  
                 GET_PCBYTE(val)  
                 i286_memorywrite(ad + EA_FIX, val);  
 #endif  
         }          }
 }  }
   
Line 2044  I286FN _mov_ea16_data16(void) {    // C7 Line 2033  I286FN _mov_ea16_data16(void) {    // C7
                 I286_WORKCLOCK(2);                  I286_WORKCLOCK(2);
                 GET_PCWORD(*(REG16_B53(op)))                  GET_PCWORD(*(REG16_B53(op)))
         }          }
         else {          else {                          // 03/11/23
 #if 1                                   // 03/11/23  
                 UINT32  ad;                  UINT32  ad;
                 UINT16  val;                  UINT16  val;
                 I286_WORKCLOCK(3);                  I286_WORKCLOCK(3);
                 ad = CALC_EA(op);                  ad = CALC_EA(op);
                 GET_PCWORD(val)                  GET_PCWORD(val)
                 i286_memorywrite_w(ad, val);                  i286_memorywrite_w(ad, val);
 #else  
                 UINT    ad;  
                 UINT16  val;  
                 I286_WORKCLOCK(3);  
                 ad = c_get_ea[op]();  
                 GET_PCWORD(val)  
                 i286_memorywrite_w(ad + EA_FIX, val);  
 #endif  
         }          }
 }  }
   
Line 2308  I286FN _aad(void) {       // D5: AAD Line 2288  I286FN _aad(void) {       // D5: AAD
         I286_AL += (BYTE)(I286_AH * mul);          I286_AL += (BYTE)(I286_AH * mul);
         I286_AH = 0;          I286_AH = 0;
         I286_FLAGL &= ~(S_FLAG | Z_FLAG | P_FLAG);          I286_FLAGL &= ~(S_FLAG | Z_FLAG | P_FLAG);
         I286_FLAGL |= szpcflag[I286_AL];          I286_FLAGL |= BYTESZPF(I286_AL);
 }  }
   
 I286FN _setalc(void) {                                          // D6:  setalc (80286)  I286FN _setalc(void) {                                          // D6:  setalc (80286)
Line 2319  I286FN _setalc(void) {      // D6: setal Line 2299  I286FN _setalc(void) {      // D6: setal
 I286FN _xlat(void) {                                            // D7:  xlat  I286FN _xlat(void) {                                            // D7:  xlat
   
         I286_WORKCLOCK(5);          I286_WORKCLOCK(5);
         I286_AL = i286_memoryread(((I286_AL + I286_BX) & 0xffff) + DS_FIX);          I286_AL = i286_memoryread(LOW16(I286_AL + I286_BX) + DS_FIX);
 }  }
   
 I286FN _esc(void) {                                                     // D8:  esc  I286FN _esc(void) {                                                     // D8:  esc

Removed from v.1.12  
changed lines
  Added in v.1.13


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