DOSVisor
github.com
What it is
DOSVisor is a Windows project that runs some MS-DOS programs in a virtualized 16-bit real-mode environment using the Windows Hypervisor Platform API. It is presented as a demonstration of that API rather than a complete DOS emulator. Hardware virtualization handles the CPU, while software emulates the DOS layer. A custom Interrupt Vector Table uses CPUID instructions to trigger VM exits and intercept DOS interrupts. DOSVisor captures I/O requests but supports only a small set of common requests. Timing support includes the BIOS counter, RAM refresh toggle bit, system clock, RTC registers, clock interrupts, and DOS current-time calls; the 8253 PIT timer is not fully implemented. Keyboard handling monitors state, keeps a simple buffer, and passes input through interrupts. Basic terminal commands support simple text-based games and other basic programs. BIOS data areas and the Program Segment Prefix are allocated but mostly unpopulated. The free public repository contains bin and src directories, with no releases or packages listed.
Spec sheet
- Purpose
- DOSVisor is a DOS emulator that uses the Windows Hypervisor Platform API to run DOS programs in a virtualized 16-bit real-mode environment on modern Windows systems.Read 9 Oct 2026 · github.com
- Maker
- The repository is published under the GitHub account x86matthew.Read 9 Oct 2026 · github.com
- Commands
- Basic terminal commands are supported for simple text-based games and other basic programs.Read 9 Oct 2026 · github.com
- CPU
- It uses hardware virtualization for the CPU and emulates the DOS layer in software.Read 9 Oct 2026 · github.com
- CPU virtualization
- It uses hardware virtualization for the CPU and emulates the DOS layer in software.Read 9 Oct 2026 · github.com
- Demonstration project
- The author describes DOSVisor primarily as a demonstration of the Windows Hypervisor Platform API, not a complete DOS emulator.Read 9 Oct 2026 · github.com
- Distribution
- The public repository contains bin and src directories; its page lists no releases or packages.Read 9 Oct 2026 · github.com
- I/O support
- It captures I/O requests for software emulation, but supports only a very small set of common I/O requests.Read 9 Oct 2026 · github.com
- Intended audience
- The project is suitable for exploring the Windows Hypervisor Platform API and running a few sample DOS programs; the author says its framework is designed to be extended.Read 9 Oct 2026 · github.com
- Intended use
- The project primarily demonstrates the Windows Hypervisor Platform API and is not intended to be a complete DOS emulator.Read 9 Oct 2026 · github.com
- Interrupt handling
- A custom Interrupt Vector Table points interrupts to CPUID instructions so the emulator can trigger VM exits and handle them.Read 9 Oct 2026 · github.com
- Interrupts
- It uses a custom Interrupt Vector Table with CPUID instructions to trigger VM exits and intercept DOS interrupts.Read 9 Oct 2026 · github.com
- Keyboard
- It monitors keyboard state, maintains a simple key buffer and passes information to DOS programs through keyboard interrupts.Read 9 Oct 2026 · github.com
- System fields
- BIOS data areas and the Program Segment Prefix are allocated but not populated, except for the BIOS counter value.Read 9 Oct 2026 · github.com
- Terminal
- Basic terminal commands are supported for running simple text-based games and other basic programs.Read 9 Oct 2026 · github.com
- Testing
- The maker reports testing DOSVisor with FlareSay.exe, a DOS game from FlareOn 2023 challenge 6.Read 9 Oct 2026 · github.com
- Timer limitation
- The 8253 PIT timer is not fully implemented.Read 9 Oct 2026 · github.com
- Timer support
- Supported timing mechanisms include the BIOS counter, a RAM refresh toggle bit, clock interrupts, RTC registers, and DOS current-time calls.Read 9 Oct 2026 · github.com
- Timers
- Supported timing mechanisms include the BIOS counter, RAM refresh toggle bit, system clock and RTC registers; the 8253 PIT timer is not fully implemented.Read 9 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Uses Windows Hypervisor Platform API
- Runs in virtualized 16-bit real mode
- Supports basic terminal commands
- Includes keyboard interrupt handling
- Source is publicly available
Limits
- Not intended as a complete DOS emulator
- Only a small set of I/O requests supported
- 8253 PIT timer not fully implemented
- BIOS fields are mostly unpopulated
Who it suits
DOSVisor suits Windows users exploring the Windows Hypervisor Platform API or running a few sample MS-DOS programs. Its framework is described as suitable for extension.
Verdict
DOSVisor is a focused demonstration and experimental framework rather than a full DOS environment. Its limited I/O, timer, and system-field support matter for compatibility planning.
Where Specifiction places it
- MS-DOS Emulators#12 of 267.8