Diff for /np2/i286c/i286c_8x.c between versions 1.2 and 1.7

version 1.2, 2003/10/17 11:10:02 version 1.7, 2003/12/12 01:04:40
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "i286.h"  #include        "cpucore.h"
 #include        "i286c.h"  #include        "i286c.h"
 #include        "i286c.mcr"  #include        "i286c.mcr"
 #include        "memory.h"  
 #include        "nevent.h"  
   
   
 // -------------------------------------------------------- opecode 0x80,1,2,3  // -------------------------------------------------------- opecode 0x80,1,2,3
Line 25  I286_8X _add_r8_i(BYTE *p) { Line 23  I286_8X _add_r8_i(BYTE *p) {
 I286_8X _or_r8_i(BYTE *p) {  I286_8X _or_r8_i(BYTE *p) {
   
         UINT    src;          UINT    src;
           UINT    dst;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         ORBYTE((*p), src);          dst = *p;
           ORBYTE(dst, src);
           *p = (BYTE)dst;
 }  }
   
 I286_8X _adc_r8_i(BYTE *p) {  I286_8X _adc_r8_i(BYTE *p) {
Line 57  I286_8X _sbb_r8_i(BYTE *p) { Line 58  I286_8X _sbb_r8_i(BYTE *p) {
 I286_8X _and_r8_i(BYTE *p) {  I286_8X _and_r8_i(BYTE *p) {
   
         UINT    src;          UINT    src;
           UINT    dst;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         ANDBYTE((*p), src);          dst = *p;
           ANDBYTE(dst, src);
           *p = (BYTE)dst;
 }  }
   
 I286_8X _sub_r8_i(BYTE *p) {  I286_8X _sub_r8_i(BYTE *p) {
Line 70  I286_8X _sub_r8_i(BYTE *p) { Line 74  I286_8X _sub_r8_i(BYTE *p) {
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
         *p = (BYTE)res;          *p = (BYTE)res;
 }  }
   
 I286_8X _xor_r8_i(BYTE *p) {  I286_8X _xor_r8_i(BYTE *p) {
   
         UINT    src;          UINT    src;
           UINT    dst;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         BYTE_XOR((*p), src);          dst = *p;
           XORBYTE(dst, src);
           *p = (BYTE)dst;
 }  }
   
 I286_8X _cmp_r8_i(BYTE *p) {  I286_8X _cmp_r8_i(BYTE *p) {
Line 90  I286_8X _cmp_r8_i(BYTE *p) { Line 97  I286_8X _cmp_r8_i(BYTE *p) {
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
 }  }
   
   
Line 105  I286_8X _add_ext8_i(UINT32 madr) { Line 112  I286_8X _add_ext8_i(UINT32 madr) {
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         ADDBYTE(res, dst, src);          ADDBYTE(res, dst, src);
         i286_memorywrite(madr, (BYTE)res);          i286_memorywrite(madr, (REG8)res);
 }  }
   
 I286_8X _or_ext8_i(UINT32 madr) {  I286_8X _or_ext8_i(UINT32 madr) {
Line 116  I286_8X _or_ext8_i(UINT32 madr) { Line 123  I286_8X _or_ext8_i(UINT32 madr) {
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         ORBYTE(dst, src);          ORBYTE(dst, src);
         i286_memorywrite(madr, (BYTE)dst);          i286_memorywrite(madr, (REG8)dst);
 }  }
   
 I286_8X _adc_ext8_i(UINT32 madr) {  I286_8X _adc_ext8_i(UINT32 madr) {
Line 128  I286_8X _adc_ext8_i(UINT32 madr) { Line 135  I286_8X _adc_ext8_i(UINT32 madr) {
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         ADCBYTE(res, dst, src);          ADCBYTE(res, dst, src);
         i286_memorywrite(madr, (BYTE)res);          i286_memorywrite(madr, (REG8)res);
 }  }
   
 I286_8X _sbb_ext8_i(UINT32 madr) {  I286_8X _sbb_ext8_i(UINT32 madr) {
Line 140  I286_8X _sbb_ext8_i(UINT32 madr) { Line 147  I286_8X _sbb_ext8_i(UINT32 madr) {
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         SBBBYTE(res, dst, src);          SBBBYTE(res, dst, src);
         i286_memorywrite(madr, (BYTE)res);          i286_memorywrite(madr, (REG8)res);
 }  }
   
 I286_8X _and_ext8_i(UINT32 madr) {  I286_8X _and_ext8_i(UINT32 madr) {
Line 151  I286_8X _and_ext8_i(UINT32 madr) { Line 158  I286_8X _and_ext8_i(UINT32 madr) {
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         ANDBYTE(dst, src);          ANDBYTE(dst, src);
         i286_memorywrite(madr, (BYTE)dst);          i286_memorywrite(madr, (REG8)dst);
 }  }
   
 I286_8X _sub_ext8_i(UINT32 madr) {  I286_8X _sub_ext8_i(UINT32 madr) {
Line 162  I286_8X _sub_ext8_i(UINT32 madr) { Line 169  I286_8X _sub_ext8_i(UINT32 madr) {
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
         i286_memorywrite(madr, (BYTE)res);          i286_memorywrite(madr, (REG8)res);
 }  }
   
 I286_8X _xor_ext8_i(UINT32 madr) {  I286_8X _xor_ext8_i(UINT32 madr) {
Line 173  I286_8X _xor_ext8_i(UINT32 madr) { Line 180  I286_8X _xor_ext8_i(UINT32 madr) {
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         BYTE_XOR(dst, src);          XORBYTE(dst, src);
         i286_memorywrite(madr, (BYTE)dst);          i286_memorywrite(madr, (REG8)dst);
 }  }
   
 I286_8X _cmp_ext8_i(UINT32 madr) {  I286_8X _cmp_ext8_i(UINT32 madr) {
Line 185  I286_8X _cmp_ext8_i(UINT32 madr) { Line 192  I286_8X _cmp_ext8_i(UINT32 madr) {
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
 }  }
   
   
Line 213  I286_8X _add_r16_i(UINT16 *p, UINT32 src Line 220  I286_8X _add_r16_i(UINT16 *p, UINT32 src
   
 I286_8X _or_r16_i(UINT16 *p, UINT32 src) {  I286_8X _or_r16_i(UINT16 *p, UINT32 src) {
   
         ORWORD((*p), src);          UINT32  dst;
   
           dst = *p;
           ORWORD(dst, src);
           *p = (UINT16)dst;
 }  }
   
 I286_8X _adc_r16_i(UINT16 *p, UINT32 src) {  I286_8X _adc_r16_i(UINT16 *p, UINT32 src) {
Line 238  I286_8X _sbb_r16_i(UINT16 *p, UINT32 src Line 249  I286_8X _sbb_r16_i(UINT16 *p, UINT32 src
   
 I286_8X _and_r16_i(UINT16 *p, UINT32 src) {  I286_8X _and_r16_i(UINT16 *p, UINT32 src) {
   
         ANDWORD((*p), src);          UINT32  dst;
   
           dst = *p;
           ANDWORD(dst, src);
           *p = (UINT16)dst;
 }  }
   
 I286_8X _sub_r16_i(UINT16 *p, UINT32 src) {  I286_8X _sub_r16_i(UINT16 *p, UINT32 src) {
Line 247  I286_8X _sub_r16_i(UINT16 *p, UINT32 src Line 262  I286_8X _sub_r16_i(UINT16 *p, UINT32 src
         UINT32  res;          UINT32  res;
   
         dst = *p;          dst = *p;
         WORD_SUB(res, dst, src);          SUBWORD(res, dst, src);
         *p = (UINT16)res;          *p = (UINT16)res;
 }  }
   
 I286_8X _xor_r16_i(UINT16 *p, UINT32 src) {  I286_8X _xor_r16_i(UINT16 *p, UINT32 src) {
   
         WORD_XOR((*p), src);          UINT32  dst;
   
           dst = *p;
           XORWORD(dst, src);
           *p = (UINT16)dst;
 }  }
   
 I286_8X _cmp_r16_i(UINT16 *p, UINT32 src) {  I286_8X _cmp_r16_i(UINT16 *p, UINT32 src) {
Line 262  I286_8X _cmp_r16_i(UINT16 *p, UINT32 src Line 281  I286_8X _cmp_r16_i(UINT16 *p, UINT32 src
         UINT32  res;          UINT32  res;
   
         dst = *p;          dst = *p;
         WORD_SUB(res, dst, src);          SUBWORD(res, dst, src);
 }  }
   
   
Line 275  I286_8X _add_ext16_i(UINT32 madr, UINT32 Line 294  I286_8X _add_ext16_i(UINT32 madr, UINT32
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ADDWORD(res, dst, src);          ADDWORD(res, dst, src);
         i286_memorywrite_w(madr, (UINT16)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _or_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _or_ext16_i(UINT32 madr, UINT32 src) {
Line 284  I286_8X _or_ext16_i(UINT32 madr, UINT32  Line 303  I286_8X _or_ext16_i(UINT32 madr, UINT32 
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ORWORD(dst, src);          ORWORD(dst, src);
         i286_memorywrite_w(madr, (UINT16)dst);          i286_memorywrite_w(madr, (REG16)dst);
 }  }
   
 I286_8X _adc_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _adc_ext16_i(UINT32 madr, UINT32 src) {
Line 294  I286_8X _adc_ext16_i(UINT32 madr, UINT32 Line 313  I286_8X _adc_ext16_i(UINT32 madr, UINT32
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ADCWORD(res, dst, src);          ADCWORD(res, dst, src);
         i286_memorywrite_w(madr, (UINT16)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _sbb_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _sbb_ext16_i(UINT32 madr, UINT32 src) {
Line 304  I286_8X _sbb_ext16_i(UINT32 madr, UINT32 Line 323  I286_8X _sbb_ext16_i(UINT32 madr, UINT32
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         SBBWORD(res, dst, src);          SBBWORD(res, dst, src);
         i286_memorywrite_w(madr, (UINT16)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _and_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _and_ext16_i(UINT32 madr, UINT32 src) {
Line 313  I286_8X _and_ext16_i(UINT32 madr, UINT32 Line 332  I286_8X _and_ext16_i(UINT32 madr, UINT32
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ANDWORD(dst, src);          ANDWORD(dst, src);
         i286_memorywrite_w(madr, (UINT16)dst);          i286_memorywrite_w(madr, (REG16)dst);
 }  }
   
 I286_8X _sub_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _sub_ext16_i(UINT32 madr, UINT32 src) {
Line 322  I286_8X _sub_ext16_i(UINT32 madr, UINT32 Line 341  I286_8X _sub_ext16_i(UINT32 madr, UINT32
         UINT32  res;          UINT32  res;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         WORD_SUB(res, dst, src);          SUBWORD(res, dst, src);
         i286_memorywrite_w(madr, (UINT16)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _xor_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _xor_ext16_i(UINT32 madr, UINT32 src) {
Line 331  I286_8X _xor_ext16_i(UINT32 madr, UINT32 Line 350  I286_8X _xor_ext16_i(UINT32 madr, UINT32
         UINT32  dst;          UINT32  dst;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         WORD_XOR(dst, src);          XORWORD(dst, src);
         i286_memorywrite_w(madr, (UINT16)dst);          i286_memorywrite_w(madr, (REG16)dst);
 }  }
   
 I286_8X _cmp_ext16_i(UINT32 madr, UINT32 src) {  I286_8X _cmp_ext16_i(UINT32 madr, UINT32 src) {
Line 341  I286_8X _cmp_ext16_i(UINT32 madr, UINT32 Line 360  I286_8X _cmp_ext16_i(UINT32 madr, UINT32
         UINT32  res;          UINT32  res;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         WORD_SUB(res, dst, src);          SUBWORD(res, dst, src);
 }  }
   
   

Removed from v.1.2  
changed lines
  Added in v.1.7


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