FFFF GitHub - cshaxu/nxvm: An integral x86 PC emulator with built-in debugger · GitHub
[go: up one dir, main page]

Skip to content
cshaxuPublic

About

An integral x86 PC emulator with built-in debugger

Resources

Contributing

Stars

219 stars

Watchers

33 watching

Forks

Repository files navigation

NXVM

Neko's x86 Virtual Machine is a portable x86 PC emulator with an integrated debugger. NXVM is the repository's current, bootable whole-machine product. The approved direction is one build-fixed executable per machine: IBM 5160 XT, IBM 5170 AT, DeskPro 386, default PC/AT, and later IBM Palm Top PC 110. They share an extensible architecture and one NXVM.ini configuration format. CPU-family implementations remain reusable. This is the target, not a claim that the INI/fixed-build cutover is implemented. All implemented machines remain supported; the former NXVDM plan is withdrawn.

Introduction

NXVM emulates an Intel 80386 PC with the machine services needed for the current product: RAM, DMA, PIC, floppy and hard disks, keyboard, display, BIOS behavior, and a debugger. It is useful both as a bootable virtual machine and as a controlled environment for examining legacy x86 software.

The screenshots below are historical NXVM product captures retained from the original project README. They illustrate the product's lineage; they are not current compatibility claims and include no guest media or executables.

MS-DOS running in HMA

NXVM running on Microsoft Surface RT

Platform

Windows

NXVM provides Console and application-window presentation paths. The windowed path keeps the NXVM control Console separate from the guest display.

MS-DOS running in the Win32 Console

Windowed bitmap-font display

Windowed display

Linux

Linux support uses the terminal presentation path. It remains a development and verification surface; see the project documentation for current support boundaries.

MS-DOS running in a Linux terminal

MS-DOS Editor in a Linux terminal

Build

The supported development path is 64-bit MinGW-w64 GCC, CMake 3.23 or later, and Ninja on Windows. Ensure gcc and ninja are available on PATH, then from the repository root run:

cmake --preset mingw-gcc-x64-release
cmake --build --preset current-gcc

The current developer x64 artifact is copied to build/output/ after a successful build. Task closure also emits the corresponding _x86.exe from the same source target using the documented x86 MinGW-w64 preset. Run the documentation governance gate with:

powershell -NoProfile -ExecutionPolicy Bypass -File tools/Verify-DocumentationGovernance.ps1 -RepositoryRoot .

All Ninja presets invoke ccache through a stable repository-local cache at build/.ccache. This keeps repeat builds warm even when the host supplies a temporary user-profile directory. ccache must be available on PATH.

Visual Studio is not required for the supported development path. The legacy manual-project, Autotools, and Makefile instructions are retired.

Quick Start

  1. Build NXVM using the commands above.
  2. Start the generated nxvm_0_5_NNNN_x64.exe or nxvm_0_5_NNNN_x86.exe developer artifact from build/output/.
  3. In the NXVM Console, use help to inspect available commands.
  4. Supply only your own legally obtained boot media when experimenting with a guest; the repository does not provide or distribute guest media.
  5. Use the Console and debugger to inspect machine state, then start, stop, and resume the session as supported by the current command surface.

The exact current product and media boundaries are maintained in the documentation guide and its linked authorities.

Components

Console and machine

NXVM combines a bootable machine composition, firmware/profile behavior, platform presentation, and the retained Console/debugger experience. The shared core foundation owns reusable guest-machine behavior; NXVM owns the current product composition and user experience.

NXVM status information

Debugger

NXVM includes an integrated debugger for examining guest registers, memory, ports, breakpoints, watchpoints, and instruction execution. Its assembler and disassembler remain part of that debugging experience.

NXVM internal debugger

Historical application captures

These original NXVM captures are retained for project history and visual context, not as a claim that every displayed application is currently tested or supported.

MS-DOS UMB capture

QBasic

Turbo C 2.0

MS-DOS Defrag

MS-DOS Editor for Windows 95

MS-DOS Anti Virus

Type Tutor start screen

Type Tutor execution

Tetris start screen

Tetris execution

Start Here

Project Boundary

NXVM emulates whole machines, not a DOS/VDM application host. Source, firmware, guest media, research, and distribution constraints are defined by the local documentation authorities. Read AGENTS.md before changing the repository.

References

The project is informed by Intel 80386 architecture documentation, IBM PC/AT technical references, and other documented research sources. See the documentation guide for the current source and research boundaries.

About

An integral x86 PC emulator with built-in debugger

Resources

Contributing

Stars

219 stars

Watchers

33 watching

Forks

Releases

Packages

Contributors

Languages

0