* COPYRIGHT: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Virtual DOS Machine
* FILE: emulator.h
- * PURPOSE: Minimal x86 machine emulator for the VDM (header file)
+ * PURPOSE: Minimal x86 machine emulator for the VDM
* PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
*/
#define EMULATOR_FLAG_VIP (1 << 20)
#define EMULATOR_FLAG_ID (1 << 21)
-/* Common definitions */
-#define EMULATOR_BOP 0xC4C4
-#define EMULATOR_INT_BOP 0xFF
-#define EMULATOR_MAX_BOP_NUM 0xFF + 1
-
#define STACK_COUNTER 0
#define STACK_INT_NUM 1
#define STACK_IP 2
EMULATOR_EXCEPTION_PAGE_FAULT
};
-enum
-{
- EMULATOR_REG_AX,
- EMULATOR_REG_CX,
- EMULATOR_REG_DX,
- EMULATOR_REG_BX,
- EMULATOR_REG_SP,
- EMULATOR_REG_BP,
- EMULATOR_REG_SI,
- EMULATOR_REG_DI,
- EMULATOR_REG_ES,
- EMULATOR_REG_CS,
- EMULATOR_REG_SS,
- EMULATOR_REG_DS,
- EMULATOR_REG_FS,
- EMULATOR_REG_GS
-};
-
extern FAST486_STATE EmulatorContext;
/* FUNCTIONS ******************************************************************/
ULONG Size
);
-VOID WINAPI EmulatorReadIo
-(
- PFAST486_STATE State,
- ULONG Port,
- PVOID Buffer,
- ULONG DataCount,
- UCHAR DataSize
-);
-
-VOID WINAPI EmulatorWriteIo
-(
- PFAST486_STATE State,
- ULONG Port,
- PVOID Buffer,
- ULONG DataCount,
- UCHAR DataSize
-);
-
UCHAR WINAPI EmulatorIntAcknowledge
(
PFAST486_STATE State
);
BOOLEAN EmulatorInitialize(VOID);
-VOID EmulatorSetStack(WORD Segment, DWORD Offset);
VOID EmulatorExecute(WORD Segment, WORD Offset);
VOID EmulatorInterrupt(BYTE Number);
VOID EmulatorInterruptSignal(VOID);
-ULONG EmulatorGetRegister(ULONG Register);
-ULONG EmulatorGetProgramCounter(VOID);
-VOID EmulatorSetRegister(ULONG Register, ULONG Value);
-BOOLEAN EmulatorGetFlag(ULONG Flag);
-VOID EmulatorSetFlag(ULONG Flag);
-VOID EmulatorClearFlag(ULONG Flag);
VOID EmulatorStep(VOID);
VOID EmulatorCleanup(VOID);
VOID EmulatorSetA20(BOOLEAN Enabled);