21#define NULL32 ((ULONG)0)
23#define MEM_ALIGN_DOWN(ptr, align) (PVOID)((ULONG_PTR)(ptr) & ~((align) - 1l))
24#define MEM_ALIGN_UP(ptr, align) MEM_ALIGN_DOWN((ULONG_PTR)(ptr) + (align) - 1l, (align))
26#define TO_LINEAR(seg, off) (((seg) << 4) + (off))
27#define MAX_SEGMENT 0xFFFF
28#define MAX_OFFSET 0xFFFF
29#define MAX_ADDRESS 0x1000000
32#define SEG_OFF_TO_PTR(seg, off) \
33 (PVOID)((ULONG_PTR)BaseAddress + TO_LINEAR((seg), (off)))
35#define FAR_POINTER(x) SEG_OFF_TO_PTR(HIWORD(x), LOWORD(x))
37#define REAL_TO_PHYS(ptr) (PVOID)((ULONG_PTR)(ptr) + (ULONG_PTR)BaseAddress)
38#define PHYS_TO_REAL(ptr) (PVOID)((ULONG_PTR)(ptr) - (ULONG_PTR)BaseAddress)
40#define ARRAY_INDEX(ptr, array) ((ULONG)(((ULONG_PTR)(ptr) - (ULONG_PTR)(array)) / sizeof(*array)))
VOID DumpMemory(BOOLEAN TextFormat)
VOID EmulatorInterruptSignal(VOID)
VOID EmulatorTerminate(VOID)
@ EMULATOR_EXCEPTION_PAGE_FAULT
@ EMULATOR_EXCEPTION_NO_SEGMENT
@ EMULATOR_EXCEPTION_BREAKPOINT
@ EMULATOR_EXCEPTION_DEBUG
@ EMULATOR_EXCEPTION_STACK_SEGMENT
@ EMULATOR_EXCEPTION_NO_FPU
@ EMULATOR_EXCEPTION_DOUBLE_FAULT
@ EMULATOR_EXCEPTION_BOUND
@ EMULATOR_EXCEPTION_DIVISION_BY_ZERO
@ EMULATOR_EXCEPTION_INVALID_OPCODE
@ EMULATOR_EXCEPTION_FPU_SEGMENT
@ EMULATOR_EXCEPTION_OVERFLOW
@ EMULATOR_EXCEPTION_INVALID_TSS
BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
VOID EmulatorException(BYTE ExceptionNumber, LPWORD Stack)
FORCEINLINE USHORT BINARY_TO_BCD(USHORT Value)
VOID EmulatorResume(VOID)
FAST486_STATE EmulatorContext
VOID EjectFloppy(IN ULONG DiskNumber)
FORCEINLINE USHORT BCD_TO_BINARY(USHORT Value)
VOID EmulatorCleanup(VOID)
VOID MountFloppy(IN ULONG DiskNumber)
UCHAR FASTCALL EmulatorIntAcknowledge(PFAST486_STATE State)
VOID FASTCALL EmulatorFpu(PFAST486_STATE State)
static HANDLE ConsoleOutput
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO