Diff for /np2/i286c/i286c_8x.c between versions 1.1.1.1 and 1.8

version 1.1.1.1, 2003/10/16 17:57:43 version 1.8, 2005/02/07 14:46:10
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
   
 // ----- reg8  // ----- reg8
   
 I286_8X _add_r8_i(BYTE *p) {  I286_8X _add_r8_i(UINT8 *p) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         ADDBYTE(res, dst, src);          ADDBYTE(res, dst, src);
         *p = (BYTE)res;          *p = (UINT8)res;
 }  }
   
 I286_8X _or_r8_i(BYTE *p) {  I286_8X _or_r8_i(UINT8 *p) {
   
         DWORD   src;          UINT    src;
           UINT    dst;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         ORBYTE((*p), src);          dst = *p;
           ORBYTE(dst, src);
           *p = (UINT8)dst;
 }  }
   
 I286_8X _adc_r8_i(BYTE *p) {  I286_8X _adc_r8_i(UINT8 *p) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         ADCBYTE(res, dst, src);          ADCBYTE(res, dst, src);
         *p = (BYTE)res;          *p = (UINT8)res;
 }  }
   
 I286_8X _sbb_r8_i(BYTE *p) {  I286_8X _sbb_r8_i(UINT8 *p) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         SBBBYTE(res, dst, src);          SBBBYTE(res, dst, src);
         *p = (BYTE)res;          *p = (UINT8)res;
 }  }
   
 I286_8X _and_r8_i(BYTE *p) {  I286_8X _and_r8_i(UINT8 *p) {
   
         DWORD   src;          UINT    src;
           UINT    dst;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         ANDBYTE((*p), src);          dst = *p;
           ANDBYTE(dst, src);
           *p = (UINT8)dst;
 }  }
   
 I286_8X _sub_r8_i(BYTE *p) {  I286_8X _sub_r8_i(UINT8 *p) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
         *p = (BYTE)res;          *p = (UINT8)res;
 }  }
   
 I286_8X _xor_r8_i(BYTE *p) {  I286_8X _xor_r8_i(UINT8 *p) {
   
         DWORD   src;          UINT    src;
           UINT    dst;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         BYTE_XOR((*p), src);          dst = *p;
           XORBYTE(dst, src);
           *p = (UINT8)dst;
 }  }
   
 I286_8X _cmp_r8_i(BYTE *p) {  I286_8X _cmp_r8_i(UINT8 *p) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = *p;          dst = *p;
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
 }  }
   
   
 // ----- ext8  // ----- ext8
   
 I286_8X _add_ext8_i(DWORD madr) {  I286_8X _add_ext8_i(UINT32 madr) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         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(DWORD madr) {  I286_8X _or_ext8_i(UINT32 madr) {
   
         DWORD   src, dst;          UINT    src;
           UINT    dst;
   
         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(DWORD madr) {  I286_8X _adc_ext8_i(UINT32 madr) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         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(DWORD madr) {  I286_8X _sbb_ext8_i(UINT32 madr) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         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(DWORD madr) {  I286_8X _and_ext8_i(UINT32 madr) {
   
         DWORD   src, dst;          UINT    src;
           UINT    dst;
   
         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(DWORD madr) {  I286_8X _sub_ext8_i(UINT32 madr) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         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(DWORD madr) {  I286_8X _xor_ext8_i(UINT32 madr) {
   
         DWORD   src, dst;          UINT    src;
           UINT    dst;
   
         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(DWORD madr) {  I286_8X _cmp_ext8_i(UINT32 madr) {
   
         DWORD   src, dst, res;          UINT    src;
           UINT    dst;
           UINT    res;
   
         GET_PCBYTE(src)          GET_PCBYTE(src)
         dst = i286_memoryread(madr);          dst = i286_memoryread(madr);
         BYTE_SUB(res, dst, src);          SUBBYTE(res, dst, src);
 }  }
   
   
Line 178  const I286OP8XEXT8 c_op8xext8_table[] =  Line 208  const I286OP8XEXT8 c_op8xext8_table[] = 
   
 // ----- reg16  // ----- reg16
   
 I286_8X _add_r16_i(WORD *p, DWORD src) {  I286_8X _add_r16_i(UINT16 *p, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = *p;          dst = *p;
         ADDWORD(res, dst, src);          ADDWORD(res, dst, src);
         *p = (WORD)res;          *p = (UINT16)res;
 }  }
   
 I286_8X _or_r16_i(WORD *p, DWORD src) {  I286_8X _or_r16_i(UINT16 *p, UINT32 src) {
   
           UINT32  dst;
   
         ORWORD((*p), src);          dst = *p;
           ORWORD(dst, src);
           *p = (UINT16)dst;
 }  }
   
 I286_8X _adc_r16_i(WORD *p, DWORD src) {  I286_8X _adc_r16_i(UINT16 *p, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = *p;          dst = *p;
         ADCWORD(res, dst, src);          ADCWORD(res, dst, src);
         *p = (WORD)res;          *p = (UINT16)res;
 }  }
   
 I286_8X _sbb_r16_i(WORD *p, DWORD src) {  I286_8X _sbb_r16_i(UINT16 *p, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = *p;          dst = *p;
         SBBWORD(res, dst, src);          SBBWORD(res, dst, src);
         *p = (WORD)res;          *p = (UINT16)res;
 }  }
   
 I286_8X _and_r16_i(WORD *p, DWORD src) {  I286_8X _and_r16_i(UINT16 *p, UINT32 src) {
   
           UINT32  dst;
   
         ANDWORD((*p), src);          dst = *p;
           ANDWORD(dst, src);
           *p = (UINT16)dst;
 }  }
   
 I286_8X _sub_r16_i(WORD *p, DWORD src) {  I286_8X _sub_r16_i(UINT16 *p, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = *p;          dst = *p;
         WORD_SUB(res, dst, src);          SUBWORD(res, dst, src);
         *p = (WORD)res;          *p = (UINT16)res;
 }  }
   
 I286_8X _xor_r16_i(WORD *p, DWORD 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(WORD *p, DWORD src) {  I286_8X _cmp_r16_i(UINT16 *p, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = *p;          dst = *p;
         WORD_SUB(res, dst, src);          SUBWORD(res, dst, src);
 }  }
   
   
 // ----- ext16  // ----- ext16
   
 I286_8X _add_ext16_i(DWORD madr, DWORD src) {  I286_8X _add_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ADDWORD(res, dst, src);          ADDWORD(res, dst, src);
         i286_memorywrite_w(madr, (WORD)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _or_ext16_i(DWORD madr, DWORD src) {  I286_8X _or_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst;          UINT32  dst;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ORWORD(dst, src);          ORWORD(dst, src);
         i286_memorywrite_w(madr, (WORD)dst);          i286_memorywrite_w(madr, (REG16)dst);
 }  }
   
 I286_8X _adc_ext16_i(DWORD madr, DWORD src) {  I286_8X _adc_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ADCWORD(res, dst, src);          ADCWORD(res, dst, src);
         i286_memorywrite_w(madr, (WORD)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _sbb_ext16_i(DWORD madr, DWORD src) {  I286_8X _sbb_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           UINT32  res;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         SBBWORD(res, dst, src);          SBBWORD(res, dst, src);
         i286_memorywrite_w(madr, (WORD)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _and_ext16_i(DWORD madr, DWORD src) {  I286_8X _and_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst;          UINT32  dst;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         ANDWORD(dst, src);          ANDWORD(dst, src);
         i286_memorywrite_w(madr, (WORD)dst);          i286_memorywrite_w(madr, (REG16)dst);
 }  }
   
 I286_8X _sub_ext16_i(DWORD madr, DWORD src) {  I286_8X _sub_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           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, (WORD)res);          i286_memorywrite_w(madr, (REG16)res);
 }  }
   
 I286_8X _xor_ext16_i(DWORD madr, DWORD src) {  I286_8X _xor_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst;          UINT32  dst;
   
         dst = i286_memoryread_w(madr);          dst = i286_memoryread_w(madr);
         WORD_XOR(dst, src);          XORWORD(dst, src);
         i286_memorywrite_w(madr, (WORD)dst);          i286_memorywrite_w(madr, (REG16)dst);
 }  }
   
 I286_8X _cmp_ext16_i(DWORD madr, DWORD src) {  I286_8X _cmp_ext16_i(UINT32 madr, UINT32 src) {
   
         DWORD   dst, res;          UINT32  dst;
           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.1.1.1  
changed lines
  Added in v.1.8


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