--- np2/i286c/i286c_f6.c 2003/11/29 03:38:26 1.9 +++ np2/i286c/i286c_f6.c 2003/12/11 21:57:38 1.12 @@ -1,5 +1,5 @@ #include "compiler.h" -#include "i286.h" +#include "cpucore.h" #include "i286c.h" #include "memory.h" #include "i286c.mcr" @@ -47,7 +47,7 @@ I286_F6 _not_ea8(UINT op) { I286_F6 _neg_ea8(UINT op) { - BYTE *out; + UINT8 *out; UINT src; UINT dst; UINT32 madr; @@ -62,14 +62,14 @@ I286_F6 _neg_ea8(UINT op) { if (madr >= I286_MEMWRITEMAX) { src = i286_memoryread(madr); NEGBYTE(dst, src) - i286_memorywrite(madr, (BYTE)dst); + i286_memorywrite(madr, (REG8)dst); return; } out = mem + madr; } src = *out; NEGBYTE(dst, src) - *out = (BYTE)dst; + *out = (UINT8)dst; } I286_F6 _mul_ea8(UINT op) { @@ -122,7 +122,7 @@ I286_F6 _div_ea8(UINT op) { src = i286_memoryread(CALC_EA(op)); } tmp = I286_AX; - if (tmp < ((UINT16)src << 8)) { + if ((src) && (tmp < ((UINT16)src << 8))) { I286_AL = tmp / src; I286_AH = tmp % src; } @@ -277,7 +277,7 @@ I286_F6 _div_ea16(UINT op) { src = i286_memoryread_w(CALC_EA(op)); } tmp = (I286_DX << 16) + I286_AX; - if (tmp < (src << 16)) { + if ((src) && (tmp < (src << 16))) { I286_AX = (SINT16)(tmp / src); I286_DX = (SINT16)(tmp % src); }