--- np2/i286c/i286c.c 2003/11/28 08:01:32 1.9 +++ np2/i286c/i286c.c 2003/12/01 10:45:46 1.11 @@ -9,7 +9,7 @@ #include "i286c.mcr" - I286REG i286reg; + I286CORE i286core; const BYTE iflags[256] = { // Z_FLAG, S_FLAG, P_FLAG 0x44, 0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x00, @@ -136,21 +136,22 @@ void i286_initialize(void) { void i286_reset(void) { i286_initialize(); - ZeroMemory(&i286reg, sizeof(i286reg)); + ZeroMemory(&i286core.s, sizeof(i286core.s)); I286_CS = 0x1fc0; CS_BASE = 0x1fc00; + i286core.s.adrsmask = 0xfffff; } void i286_resetprefetch(void) { } -void CPUCALL i286_intnum(UINT vect, UINT IP) { +void CPUCALL i286_intnum(UINT vect, REG16 IP) { const BYTE *ptr; REGPUSH0(REAL_FLAGREG) REGPUSH0(I286_CS) - REGPUSH0((UINT16)IP) + REGPUSH0(IP) I286_FLAG &= ~(T_FLAG | I_FLAG); I286_TRAP = 0;