--- np2/i286c/i286c_8x.c 2003/10/16 17:57:43 1.1 +++ np2/i286c/i286c_8x.c 2003/11/29 00:36:00 1.4 @@ -1,9 +1,8 @@ #include "compiler.h" #include "i286.h" #include "i286c.h" -#include "i286c.mcr" #include "memory.h" -#include "nevent.h" +#include "i286c.mcr" // -------------------------------------------------------- opecode 0x80,1,2,3 @@ -12,7 +11,9 @@ I286_8X _add_r8_i(BYTE *p) { - DWORD src, dst, res; + UINT src; + UINT dst; + UINT res; GET_PCBYTE(src) dst = *p; @@ -22,7 +23,7 @@ I286_8X _add_r8_i(BYTE *p) { I286_8X _or_r8_i(BYTE *p) { - DWORD src; + UINT src; GET_PCBYTE(src) ORBYTE((*p), src); @@ -30,7 +31,9 @@ I286_8X _or_r8_i(BYTE *p) { I286_8X _adc_r8_i(BYTE *p) { - DWORD src, dst, res; + UINT src; + UINT dst; + UINT res; GET_PCBYTE(src) dst = *p; @@ -40,7 +43,9 @@ I286_8X _adc_r8_i(BYTE *p) { I286_8X _sbb_r8_i(BYTE *p) { - DWORD src, dst, res; + UINT src; + UINT dst; + UINT res; GET_PCBYTE(src) dst = *p; @@ -50,7 +55,7 @@ I286_8X _sbb_r8_i(BYTE *p) { I286_8X _and_r8_i(BYTE *p) { - DWORD src; + UINT src; GET_PCBYTE(src) ANDBYTE((*p), src); @@ -58,7 +63,9 @@ I286_8X _and_r8_i(BYTE *p) { I286_8X _sub_r8_i(BYTE *p) { - DWORD src, dst, res; + UINT src; + UINT dst; + UINT res; GET_PCBYTE(src) dst = *p; @@ -68,7 +75,7 @@ I286_8X _sub_r8_i(BYTE *p) { I286_8X _xor_r8_i(BYTE *p) { - DWORD src; + UINT src; GET_PCBYTE(src) BYTE_XOR((*p), src); @@ -76,7 +83,9 @@ I286_8X _xor_r8_i(BYTE *p) { I286_8X _cmp_r8_i(BYTE *p) { - DWORD src, dst, res; + UINT src; + UINT dst; + UINT res; GET_PCBYTE(src) dst = *p; @@ -86,79 +95,92 @@ I286_8X _cmp_r8_i(BYTE *p) { // ----- 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) dst = i286_memoryread(madr); 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) dst = i286_memoryread(madr); 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) dst = i286_memoryread(madr); 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) dst = i286_memoryread(madr); 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) dst = i286_memoryread(madr); 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) dst = i286_memoryread(madr); BYTE_SUB(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) dst = i286_memoryread(madr); BYTE_XOR(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) dst = i286_memoryread(madr); @@ -178,133 +200,144 @@ const I286OP8XEXT8 c_op8xext8_table[] = // ----- 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; 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) { ORWORD((*p), src); } -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; 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; 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) { ANDWORD((*p), src); } -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; WORD_SUB(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); } -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; WORD_SUB(res, dst, src); } + // ----- 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); 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); 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); 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); 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); 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); WORD_SUB(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); WORD_XOR(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); WORD_SUB(res, dst, src);