--- np2/i286a/cpucore.h 2004/01/05 15:47:18 1.8 +++ np2/i286a/cpucore.h 2004/03/10 23:01:07 1.13 @@ -159,8 +159,7 @@ typedef struct { UINT32 ss_fix; UINT32 ds_fix; UINT32 adrsmask; // ver0.72 - UINT16 prefix; - UINT8 trap; + UINT8 prefix; UINT8 resetreq; // ver0.72 I286DTR GDTR; UINT16 MSW; @@ -169,7 +168,6 @@ typedef struct { I286DTR LDTRC; UINT16 TR; I286DTR TRC; - UINT8 padding[2]; UINT8 cpu_type; UINT8 itfbank; // ver0.72 @@ -182,6 +180,7 @@ typedef struct { typedef struct { // for ver0.73 BYTE *ext; UINT32 extsize; + BYTE *ems[4]; UINT32 inport; #if defined(CPUSTRUC_MEMWAIT) UINT8 tramwait; @@ -205,8 +204,12 @@ extern "C" { extern I286CORE i286acore; extern const UINT8 iflags[]; +void i286a_initialize(void); +void i286a_deinitialize(void); void i286a_reset(void); void i286a_shut(void); +void i286a_setextsize(UINT32 size); +void i286a_setemm(UINT frame, UINT32 addr); void CPUCALL i286a_interrupt(REG8 vect); @@ -265,6 +268,7 @@ void i286a_step(void); #define CPU_MSW i286acore.s.MSW #define CPU_RESETREQ i286acore.s.resetreq #define CPU_ITFBANK i286acore.s.itfbank +#define CPU_RAM_D000 i286acore.s.ram_d0 #define CPU_EXTMEM i286acore.e.ext #define CPU_EXTMEMSIZE i286acore.e.extsize @@ -281,16 +285,17 @@ void i286a_step(void); #define CPU_isDI (!(i286acore.s.r.w.flag & I_FLAG)) #define CPU_isEI (i286acore.s.r.w.flag & I_FLAG) -#define CPU_CLI i286acore.s.r.w.flag &= ~I_FLAG; \ - i286acore.s.trap = 0; -#define CPU_STI i286acore.s.r.w.flag |= I_FLAG; \ - i286acore.s.trap = (i286acore.s.r.w.flag >> 8) & 1; - -#define CPU_INITIALIZE() -#define CPU_RESET i286a_reset -#define CPU_CLEARPREFETCH() -#define CPU_INTERRUPT(v) i286a_interrupt(v) -#define CPU_EXEC i286a -#define CPU_EXECV30 i286a -#define CPU_SHUT i286a_shut +#define CPU_CLI i286acore.s.r.w.flag &= ~I_FLAG; +#define CPU_STI i286acore.s.r.w.flag |= I_FLAG; + +#define CPU_INITIALIZE i286a_initialize +#define CPU_DEINITIALIZE i286a_deinitialize +#define CPU_RESET i286a_reset +#define CPU_CLEARPREFETCH() +#define CPU_INTERRUPT(vect, soft) i286a_interrupt(vect) +#define CPU_EXEC i286a +#define CPU_EXECV30 i286a +#define CPU_SHUT i286a_shut +#define CPU_SETEXTSIZE(size) i286a_setextsize((UINT32)(size) << 20) +#define CPU_SETEMM(frame, addr) i286a_setemm(frame, addr)