61 L"Bound Range Exceeded",
67 #define BOP_DEBUGGER 0x56 // Break into the debugger from a 16-bit app 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 420 #endif // (_WIN32_WINNT >= 0x0500) 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");
#define OFN_FILEMUSTEXIST
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
VOID WINAPI VDDSimulate16(VOID)
static VOID DumpMemoryRaw(HANDLE hFile)
static VOID WINAPI PitChan1Out(LPVOID Param, BOOLEAN State)
BOOL WINAPI DECLSPEC_HOTPATCH ReadConsoleInputExW(IN HANDLE hConsoleInput, OUT PINPUT_RECORD lpBuffer, IN DWORD nLength, OUT LPDWORD lpNumberOfEventsRead, IN WORD wFlags)
VOID EjectFloppy(IN ULONG DiskNumber)
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
_In_ PVOID _In_ ULONG Opcode
VOID NTAPI Fast486DumpState(PFAST486_STATE State)
static VOID ResumeEventThread(VOID)
static DWORD WINAPI ConsoleEventThread(LPVOID Parameter)
IN BOOLEAN OUT PSTR Buffer
#define UNREFERENCED_PARAMETER(P)
#define WINDOW_BUFFER_SIZE_EVENT
VOID RegisterBop(BYTE BopCode, EMULATOR_BOP_PROC BopHandler)
VOID NTAPI Fast486InterruptSignal(PFAST486_STATE State)
#define INVALID_HANDLE_VALUE
IN PVOID IN PVOID IN USHORT IN USHORT Size
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
DWORD WINAPI GetLastError(VOID)
#define PHYS_TO_REAL(ptr)
BOOLEAN DiskCtrlInitialize(VOID)
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
#define SEG_OFF_TO_PTR(seg, off)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
VOID PitSetOutFunction(BYTE Channel, LPVOID Param, PIT_OUT_FUNCTION OutFunction)
VOID EmulatorException(BYTE ExceptionNumber, LPWORD Stack)
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
static VOID DumpMemoryTxt(HANDLE hFile)
VOID SpeakerChange(UCHAR Port61hValue)
VOID MenuEventHandler(PMENU_EVENT_RECORD MenuEvent)
VOID WINAPI VDDTerminateVDM(VOID)
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
void WINAPI DebugBreak(void)
#define REAL_TO_PHYS(ptr)
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)
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
static VOID PauseEventThread(VOID)
HANDLE WINAPI GetConsoleInputWaitHandle(VOID)
VOID DumpMemory(BOOLEAN TextFormat)
VOID KeyboardEventHandler(PKEY_EVENT_RECORD KeyEvent)
BYTE PicGetInterrupt(VOID)
VOID VDDSupInitialize(VOID)
UCHAR FASTCALL EmulatorIntAcknowledge(PFAST486_STATE State)
#define OFN_PATHMUSTEXIST
UNICODE_STRING FloppyDisks[2]
UNICODE_STRING HardDisks[4]
VOID MouseEventHandler(PMOUSE_EVENT_RECORD MouseEvent)
BOOLEAN KeyboardInit(BYTE PS2Connector)
BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
static VOID WINAPI PitChan2Out(LPVOID Param, BOOLEAN State)
VOID FocusEventHandler(PFOCUS_EVENT_RECORD FocusEvent)
#define RtlFillMemory(Dest, Length, Fill)
static VOID WINAPI PitChan0Out(LPVOID Param, BOOLEAN State)
VOID VgaRefreshDisplay(VOID)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
static HANDLE InputThread
VOID EmulatorCleanup(VOID)
BOOLEAN CpuInitialize(VOID)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define FILE_ATTRIBUTE_NORMAL
BOOLEAN ClockInitialize(VOID)
VOID EmulatorTerminate(VOID)
BOOLEAN MemInitialize(VOID)
VOID EmulatorInterruptSignal(VOID)
#define CONSOLE_READ_CONTINUE
BOOLEAN VgaInitialize(HANDLE TextHandle)
BOOLEAN MountDisk(IN DISK_TYPE DiskType, IN ULONG DiskNumber, IN PCWSTR FileName, IN BOOLEAN ReadOnly)
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
VOID FASTCALL EmulatorFpu(PFAST486_STATE State)
VOID MountFloppy(IN ULONG DiskNumber)
VOID SpeakerCleanup(VOID)
BOOLEAN UnmountDisk(IN DISK_TYPE DiskType, IN ULONG DiskNumber)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
FAST486_STATE EmulatorContext
VOID EmulatorResume(VOID)
VOID PicInterruptRequest(BYTE Number)
VOID InitializeInt32(VOID)
static HANDLE ConsoleOutput
VOID SpeakerInitialize(VOID)
#define RtlZeroMemory(Destination, Length)
BOOLEAN PS2Initialize(VOID)
BOOLEAN MouseInit(BYTE PS2Connector)
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE EventType
VOID CmosInitialize(VOID)
VOID DiskCtrlCleanup(VOID)
void DisplayMessage(BOOL bConsole, BOOL bSilent, LPCTSTR lpMessage, LPCTSTR lpTitle, UINT uType)
VOID ScreenEventHandler(PWINDOW_BUFFER_SIZE_RECORD ScreenEvent)
VOID VDDResumeUserHook(VOID)
DWORD WINAPI CommDlgExtendedError(void)
VOID VDDBlockUserHook(VOID)
NTVDM_SETTINGS GlobalSettings
VOID UpdateVdmMenuDisks(VOID)
static VOID WINAPI EmulatorDebugBreakBop(LPWORD Stack)