EMulatR

A modular, extensible emulator for the DEC Alpha AXP architecture. Built in C++ with Qt 6, targeting accurate EV6 emulation with SRM/ARC firmware compatibility for OpenVMS and Tru64 workloads.

View on GitHub → Documentation

System Design

α

CPU Core (EV6)

Complete Alpha AXP instruction set — ~700 instruction grains with accurate opcode dispatch. Integer, logical, floating-point (IEEE & VAX), branch, memory, and PALcode operations.

Memory Hierarchy

Multi-layer memory management with TLB, page table entries, virtual-to-physical translation, and PAL IPR staging for both hardware miss handling and software updates.

SMP — Multi-CPU

Symmetric multiprocessing with per-CPU execution threads, interrupt fabric, IRQ controller, and SMP manager for coordinated multi-CPU orchestration.

Device I/O

SCSI core, PCI bus, MMIO regions, serial console, and network device emulation. Qt signals/slots for event-driven device simulation with realistic timing.

Firmware Compatibility

SRM console and ARC firmware support. Interactive console shell, boot device selection, and environment variable management.

Debugging & Diagnostics

Register state tracing, memory/IO tracing, unit-test driven validation, and interactive diagnostic tooling for subsystem verification.

Library Architecture

EmulatRAppUni/ ├── cpuCoreLib/ # Alpha CPU core, pipeline, grains ├── memoryLib/ # Memory hierarchy, MBox ├── mmuLib/ # MMU, TLB management ├── pteLib/ # Page table entry handling ├── mmioLib/ # Memory-mapped I/O ├── deviceLib/ # Device abstractions ├── scsiCoreLib/ # SCSI subsystem ├── controllersLib/ # PCI, interrupt controllers ├── machineLib/ # Machine/cabinet topology ├── emulatrLib/ # Execution coordinator, SMP ├── palLib_EV6/ # PALcode (EV6 specific) ├── romLib/ # SRM/ARC firmware loading ├── configLib/ # JSON config, auto-discovery ├── faultLib/ # Fault injection & handling ├── exceptionLib/ # Exception/trap dispatch ├── grainFactoryLib/ # Instruction grain factory ├── coreLib/ # Shared utilities └── EmulatRAppUni/ # Qt application shell

Built With

Modern C++ with Qt 6, CMake build system, MSVC compiler. Cross-platform targeting Windows and Linux. Template metaprogramming, Qt threading, modern memory management, and architectural abstractions designed for extensibility.

C++17 Qt 6 CMake MSVC JSON Signals/Slots Multi-threaded

Non-Commercial

EMulatR is released under the eNVy Systems Non-Commercial License v1.1. The source code is available for study, research, and non-commercial use. Commercial licensing available upon request.

Project Architect: Timothy Peer
AI Code Generation: Claude (Anthropic) / ChatGPT (OpenAI)