--- np2/i286a/cpucore.h 2004/01/07 06:53:47 1.9 +++ np2/i286a/cpucore.h 2004/01/25 05:41:28 1.11 @@ -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); @@ -285,11 +288,14 @@ void i286a_step(void); #define CPU_CLI i286acore.s.r.w.flag &= ~I_FLAG; #define CPU_STI i286acore.s.r.w.flag |= I_FLAG; -#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_INITIALIZE i286a_initialize +#define CPU_DEINITIALIZE i286a_deinitialize +#define CPU_RESET i286a_reset +#define CPU_CLEARPREFETCH() +#define CPU_INTERRUPT(vect) i286a_interrupt(vect) +#define CPU_EXEC i286a +#define CPU_EXECV30 i286a +#define CPU_SHUT i286a_shut +#define CPU_SETEXTSIZE(size) +#define CPU_SETEMM(frame, addr)