61 L"Bound Range Exceeded",
67#define BOP_DEBUGGER 0x56
87 WORD CodeSegment, InstructionPointer;
90 ASSERT(ExceptionNumber < 8);
99 L"Opcode: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
128 DPRINT1(
"NTVDM: BOP_DEBUGGER\n");
136 DPRINT(
"PicInterruptRequest\n");
181 DPRINT(
"PitChan2Out -- Port61hState changed\n");
234 DPRINT1(
"Error reading console input (0x%p, %lu) - Error %lu\n",
ConsoleInput, NumRecords, LastError);
241 DPRINT1(
"Got NumRecords == 0!\n");
246 for (
i = 0;
i < NumRecords;
i++)
319#define LINE_SIZE 75 + 2
349 Line += (0x0F + 2 -
i) * 3 + 2;
355 *
Line++ = ((*Ptr2 >= 0x20 && *Ptr2 <= 0x7E) || (*Ptr2 >= 0x80 && *Ptr2 < 0xFF) ? *Ptr2 :
'.');
364 LineSize =
Line - LineBuffer;
371 static ULONG DumpNumber = 0;
380 TextFormat ?
L"txt" :
L"dat");
396 DPRINT1(
"Error when creating '%S' for memory dumping, GetLastError() = %u\n",
418#if (_WIN32_WINNT >= 0x0500)
419#define OFN_EX_NOPLACESBAR 0x00000001
434 ofn.
lpstrFilter =
L"Virtual floppy images (*.vfd;*.img;*.ima;*.dsk)\0*.vfd;*.img;*.ima;*.dsk\0All files (*.*)\0*.*\0\0";
457 DisplayMessage(
L"An error happened when mounting disk %d", DiskNumber);
473 DisplayMessage(
L"An error happened when ejecting disk %d", DiskNumber);
517 wprintf(
L"Memory initialization failed.\n");
529 wprintf(
L"FATAL: Failed to initialize the clock\n");
567 wprintf(
L"FATAL: Failed to create the console input thread.\n");
577 wprintf(
L"FATAL: Failed to initialize VGA support.\n");
585 wprintf(
L"FATAL: Failed to completely initialize the disk controller.\n");
INT __cdecl DisplayMessage(_In_opt_ HWND hWnd, _In_ UINT uType, _In_opt_ PCWSTR pszTitle, _In_opt_ PCWSTR pszFormatMessage,...)
VOID RegisterBop(BYTE BopCode, EMULATOR_BOP_PROC BopHandler)
DWORD WINAPI CommDlgExtendedError(void)
#define OFN_FILEMUSTEXIST
#define OFN_PATHMUSTEXIST
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
HANDLE WINAPI GetConsoleInputWaitHandle(VOID)
BOOL WINAPI DECLSPEC_HOTPATCH ReadConsoleInputExW(IN HANDLE hConsoleInput, OUT PINPUT_RECORD lpBuffer, IN DWORD nLength, OUT LPDWORD lpNumberOfEventsRead, IN WORD wFlags)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
static VOID WINAPI PitChan0Out(LPVOID Param, BOOLEAN State)
static VOID WINAPI PitChan2Out(LPVOID Param, BOOLEAN State)
static DWORD WINAPI ConsoleEventThread(LPVOID Parameter)
static VOID DumpMemoryTxt(HANDLE hFile)
static VOID WINAPI EmulatorDebugBreakBop(LPWORD Stack)
VOID DumpMemory(BOOLEAN TextFormat)
VOID WINAPI VDDTerminateVDM(VOID)
static VOID DumpMemoryRaw(HANDLE hFile)
VOID EmulatorInterruptSignal(VOID)
VOID EmulatorTerminate(VOID)
VOID WINAPI VDDSimulate16(VOID)
static VOID WINAPI PitChan1Out(LPVOID Param, BOOLEAN State)
BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
VOID EmulatorException(BYTE ExceptionNumber, LPWORD Stack)
static HANDLE InputThread
VOID EmulatorResume(VOID)
VOID EjectFloppy(IN ULONG DiskNumber)
static VOID PauseEventThread(VOID)
VOID EmulatorCleanup(VOID)
VOID MountFloppy(IN ULONG DiskNumber)
UCHAR FASTCALL EmulatorIntAcknowledge(PFAST486_STATE State)
VOID FASTCALL EmulatorFpu(PFAST486_STATE State)
static VOID ResumeEventThread(VOID)
#define PHYS_TO_REAL(ptr)
#define REAL_TO_PHYS(ptr)
#define SEG_OFF_TO_PTR(seg, off)
VOID NTAPI Fast486InterruptSignal(PFAST486_STATE State)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_In_ PVOID _In_ ULONG Opcode
#define RtlFillMemory(Dest, Length, Fill)
VOID InitializeInt32(VOID)
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE EventType
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define UNREFERENCED_PARAMETER(P)
NTVDM_SETTINGS GlobalSettings
VOID PitSetOutFunction(BYTE Channel, LPVOID Param, PIT_OUT_FUNCTION OutFunction)
BOOLEAN PS2Initialize(VOID)
VOID NTAPI Fast486DumpState(PFAST486_STATE State)
UNICODE_STRING HardDisks[4]
UNICODE_STRING FloppyDisks[2]
BOOLEAN ClockInitialize(VOID)
VOID UpdateVdmMenuDisks(VOID)
VOID MenuEventHandler(PMENU_EVENT_RECORD MenuEvent)
VOID FocusEventHandler(PFOCUS_EVENT_RECORD FocusEvent)
static HANDLE ConsoleOutput
VOID ScreenEventHandler(PWINDOW_BUFFER_SIZE_RECORD ScreenEvent)
BOOLEAN CpuInitialize(VOID)
FAST486_STATE EmulatorContext
VOID CmosInitialize(VOID)
BOOLEAN DiskCtrlInitialize(VOID)
BOOLEAN UnmountDisk(IN DISK_TYPE DiskType, IN ULONG DiskNumber)
VOID DiskCtrlCleanup(VOID)
BOOLEAN MountDisk(IN DISK_TYPE DiskType, IN ULONG DiskNumber, IN PCWSTR FileName, IN BOOLEAN ReadOnly)
VOID KeyboardEventHandler(PKEY_EVENT_RECORD KeyEvent)
BOOLEAN KeyboardInit(BYTE PS2Connector)
VOID MouseEventHandler(PMOUSE_EVENT_RECORD MouseEvent)
BOOLEAN MouseInit(BYTE PS2Connector)
BYTE PicGetInterrupt(VOID)
VOID PicInterruptRequest(BYTE Number)
VOID SpeakerChange(UCHAR Port61hValue)
VOID SpeakerCleanup(VOID)
VOID SpeakerInitialize(VOID)
BOOLEAN MemInitialize(VOID)
VOID VgaRefreshDisplay(VOID)
BOOLEAN VgaInitialize(HANDLE TextHandle)
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
#define RtlZeroMemory(Destination, Length)
VOID VDDBlockUserHook(VOID)
VOID VDDSupInitialize(VOID)
VOID VDDResumeUserHook(VOID)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
DWORD WINAPI GetLastError(void)
void WINAPI DebugBreak(void)
#define WINDOW_BUFFER_SIZE_EVENT
#define CONSOLE_READ_NOWAIT
_Inout_opt_ PVOID Parameter