Fact-checked by Grok 2 weeks ago

SIMH

SIMH, also known as the Simulator for Historical Computers or the Computer History Simulation Project, is a free, open-source, multi-platform that simulates a wide array of historically significant computer systems and their associated software from the mid-20th century onward. Developed initially as a personal project to recreate vintage hardware behaviors, SIMH enables users to run original operating systems, applications, and peripherals on contemporary hardware, thereby preserving and facilitating research into early computing. Initiated in 1993 by Bob Supnik, a veteran engineer and former vice president at (DEC), SIMH evolved from earlier simulation tools like MIMIC, which Supnik had worked on during his DEC tenure in the and . What began as a solo effort to simulate DEC's PDP-11 expanded through , growing into a comprehensive framework under an MIT-style license that supports contributions from a global community of developers and enthusiasts. In 2022, due to community governance needs, the Open SIMH project was established as a to continue collaborative development. By the mid-2000s, SIMH had become a cornerstone for computer history preservation, allowing accurate of systems that would otherwise be inaccessible due to hardware obsolescence or rarity. Key features of SIMH include high-fidelity modeling of CPU architectures, , and I/O devices, often down to the instruction-set level, enabling the execution of unmodified legacy code such as early versions of Unix on simulated PDP-11 environments. The project supports over 20 distinct simulators in its "Classic" 3.x branch, covering systems like the , PDP-8, , PDP-11, VAX, and , while the enhanced Open SIMH V4 stream, hosted on , extends this to additional platforms including , , and series machines. Ancillary tools for handling vintage file formats, cross-assemblers, and network protocols like further enhance its utility for historians, educators, and hobbyists seeking to explore or revive forgotten software ecosystems. As of 2025, SIMH remains actively maintained through the Open SIMH project, with regular updates addressing bug fixes, performance optimizations, and new hardware emulations, ensuring its relevance in an era of ongoing interest in retrocomputing and . This enduring development underscores SIMH's role not only as a technical emulator but as a vital for understanding the foundational technologies that shaped modern .

Introduction

Definition and Purpose

SIMH, or Simulator for Historical Computers, is a and open-source project consisting of a collection of multi-platform simulators designed to emulate historically significant and software primarily from the mid-20th century, spanning the through the 1980s. Developed initially as a personal endeavor, it provides a framework for recreating the functional behavior of vintage systems using modern host computers, allowing users to run original operating systems and applications without requiring rare or obsolete physical hardware. The primary purpose of SIMH is to preserve computing history by enabling the execution and study of software on contemporary platforms, thereby supporting into early computer architectures, educational demonstrations of historical concepts, and recreational exploration by hobbyists. This preservation effort addresses the challenges posed by the degradation or scarcity of original hardware, ensuring that significant artifacts of computing evolution remain accessible for analysis and appreciation. Unlike general-purpose emulators that often prioritize high-level abstraction or performance optimization for gaming or broad compatibility, SIMH emphasizes accurate behavioral simulation of specific vintage architectures, modeling system responses at a "" level based on documented logic and to faithfully reproduce original behaviors without delving into cycle-by-cycle timing precision. Initiated by Bob Supnik, a former engineer, in 1993, the project began with emulations of the DEC PDP-8 and PDP-11 to facilitate software preservation for these minicomputers.

Core Capabilities

SIMH demonstrates multi-platform portability through its implementation in standard , enabling it to run on a wide array of host systems including Windows, , macOS, , , , and various UNIX variants without requiring platform-specific modifications. This cross-compatibility stems from the avoidance of non-portable code, allowing compilation and execution on diverse architectures such as x86, , and others using common build tools like or . For instance, pre-built binaries are readily available for x86-based , macOS, and Windows environments, facilitating easy deployment for simulating systems like the DEC series. The simulator achieves by providing bit-level accurate of CPU instructions, memory operations, and I/O peripherals, closely mirroring the original 's behavior down to individual bit manipulations and word lengths specific to each target machine. This includes precise handling of interrupts through a priority-based scanning mechanism that evaluates up to 256 devices and flags asynchronous events correctly, as well as timing models that synchronize simulated clocks with host wall time for realistic event sequencing. Such accuracy ensures that legacy software, including operating systems and applications, executes as it would on authentic hardware, preserving computational integrity without interpretive approximations. SIMH's modular promotes extensibility, permitting developers to integrate new peripherals, storage s, or even entire computer systems by extending the C codebase with standardized interfaces for access, queues, and controllers. Contributions follow a consistent structure, such as defining device descriptors and service routines, which integrate seamlessly into the core . This design choice supports ongoing enhancements by the community, as seen in the addition of network protocols and specialized I/O simulations. In terms of , SIMH imposes minimal overhead relative to full-system solutions, operating primarily through interpreted instruction execution that leverages the host CPU directly for arithmetic and , making it viable on standard personal computers without dedicated . By default, it prioritizes speed over strict constraints, consuming CPU cycles only as needed for progress, and includes optional throttling to cap resource usage during prolonged runs. This lightweight profile contrasts with heavier emulators by avoiding OS layers, thus enabling efficient preservation and analysis of historical environments on contemporary . SIMH is distributed under an MIT-style , which permits free redistribution, modification, and incorporation into derivative works while requiring only acknowledgment of the original authors. This permissive licensing model has fostered widespread adoption and collaborative development across both the classic V3 and Open SIMH V4 code streams.

Historical Development

Origins and Early Work

SIMH, a project to simulate historical computer systems, was initiated in 1993 by Robert M. Supnik, a longtime engineer at (DEC) who had joined the company in 1977 and contributed to key PDP-11 and VAX microprocessor implementations. The effort began at the suggestion of Larry Stewart, a DEC colleague, with the goal of preserving records of early hardware and software amid growing scarcity of functional vintage equipment. By the mid-1990s, Supnik had risen to of research and advanced development at DEC, but the simulator project represented a personal commitment to safeguarding computational heritage as original hardware from the PDP-11 era—production of which ceased in the early 1990s—became increasingly rare and unreliable. The inaugural component of SIMH was a portable instruction-level simulator for the PDP-11 , implemented in to ensure broad compatibility across 32-bit host systems such as VAX/VMS, Alpha , Digital UNIX, and . This early focus stemmed directly from Supnik's professional experience with PDP-11 systems and the urgent need to maintain access to associated software, including real-time operating systems like RSX-11M Version 4 and early Unix variants such as Versions 5 through 7, as well as (BSD) 2.9. Unlike DEC's proprietary diagnostic and emulation tools, which were tied to specific hardware and not widely portable, the PDP-11 simulator emphasized cross-platform usability to enable hobbyists and researchers to execute legacy code without depending on aging physical machines. Initial distribution of the simulator occurred through informal channels like FTP sites and direct exchanges, reflecting the constrained of the era and a deliberate choice to share it as for non-commercial use. Supnik, drawing from his DEC background in commercial product development, pivoted toward a hobbyist-oriented preservation model, coordinating enhancements and bug fixes via enthusiast communities rather than formal corporate support. Pre-2000 dissemination relied heavily on academic networks and dedicated groups, such as the UNIX Preservation , which hosted archives of bootable disk images and documentation accessible via FTP servers like minnie.cs.adfa.oz.au. These methods addressed the challenges of limited and , fostering a effort to sustain PDP-11 software ecosystems before broader web-based sharing became feasible.

Key Milestones and Versions

In the early , SIMH underwent significant expansion with the addition of simulators for the VAX, , and 1130 systems, broadening its scope to include more complex minicomputer architectures. , released in 2001, introduced a unified framework that standardized the simulator's architecture, facilitating easier development and portability across host systems. The version 3.x series, spanning from 2005 to 2024 and maintained by Bob Supnik, focused on refining core functionality and integrating modern peripherals. Key enhancements included support for Ethernet via libpcap and VDE, , and interfaces, enabling more accurate of networked and storage-heavy historical environments. The final release in this series, V3.12-5 in July 2024, addressed critical bugs in the PDP-11 emulator, improving stability for disk and tape operations. Beginning in late 2014, SIMH transitioned to an development model on under the repository simh/simh, marking the shift to version 4.x with Mark Pizzolato assuming lead maintenance responsibilities. In May 2022, a controversial change added a clause restricting commercial use of disk images created by the simulator, prompting the to the project as the Open SIMH project under the original . This era emphasized collaborative contributions, culminating in V4.0-19-01 in early 2025, which incorporated capabilities to enhance performance on multi-core hosts. Throughout the 2020s, updates addressed growing concerns over hardware obsolescence, particularly accelerated by post-COVID supply chain disruptions, by integrating features like support for and PDP-11 systems and video display APIs for graphical terminals. These developments ensured SIMH's relevance for preserving and studying legacy software ecosystems. Community-driven forks, such as those providing enhanced Windows binaries, emerged in parallel to extend platform-specific optimizations without altering the core .

Technical Architecture

Emulation Techniques

SIMH employs an event-driven simulation approach to model the asynchronous behavior of historical computer systems, utilizing a discrete event queue managed by the Simulator Control Package (SCP) to handle timing for interrupts, I/O operations, and CPU cycles. This method avoids real-time synchronization constraints by allowing the simulator to advance time in discrete steps, where the CPU decrements a counter (sim_interval) until it reaches zero, at which point it processes pending events via sim_process_event. Devices schedule their operations using sim_activate, calculating wait times based on emulated hardware characteristics, such as 3.3 milliseconds for paper tape reader input at 300 characters per second, enabling accurate replication of system timing without locking to the host's clock speed. Peripheral devices in SIMH are modeled as state machines within sim_device structures, which include registers, , and flags to manage attachment and detachment, such as UNIT_ATTABLE for that can be connected to files or devices. Each is represented by a sim_unit structure that triggers action routines on timeouts, supporting both fixed- and variable-capacity storage with I/O abstracted through endian-independent functions like sim_fread and sim_fwrite. Timing for these devices is coordinated via an active queue, where operations can be canceled or rescheduled with routines like sim_cancel, ensuring that emulated peripherals behave as self-contained entities that interact with the CPU through standardized interfaces. For instance, disk and emulations maintain internal states for data and error conditions, facilitating modular simulation of complex I/O hierarchies. The CPU in SIMH is interpreted through a fetch-execute implemented in the sim_instr routine, which decodes fetched from the (sim_PC) using switch statements or dispatch tables for efficiency and clarity. This approach supports accurate counting by integrating timings into the via sim_interval, with examples including the PDP-11's 16-bit operations where each 's execution cost is tabulated to match original hardware performance. Interrupt handling is optimized to minimize overhead during the fetch phase, employing bit flags like int_requests or priority masks to and interruptions without disrupting the main simulation loop. Optional step-by-step execution is enabled through sim_cancel_step, allowing precise control over progression for purposes. Memory management in SIMH simulates as an array sized according to the target system's word length, such as 16-bit words for the PDP-11 or 32-bit for the VAX, with access routines providing byte- or word-level granularity to emulate both byte-addressable and word-addressable architectures. For systems requiring it, like the VAX, is supported to handle segmented address spaces, while dynamic resizing is managed via the msize routine to adjust allocation during simulation startup or changes. Data persistence across sessions uses efficient with an increment value (aincr), such as 2 for PDP-11 words, ensuring compatibility with the host's model while preserving the emulated system's addressing constraints. Built-in debugging tools in SIMH facilitate instruction-level analysis, including the EXAMINE and DEPOSIT commands that invoke device-specific routines to read or modify up to sim_emax words of memory or registers, providing a non-intrusive way to inspect simulator state. Tracing capabilities are enabled through SET DEBUG commands, which activate flags in a dctrl structure and a debflags table to log events across multiple output channels, supporting detailed of CPU execution and device interactions. Breakpoint support via sim_brk_test allows up to 26 types (labeled A-Z), with summaries tracked for conditional halting, enabling developers to debug emulated software as if interacting with the original hardware. These tools integrate seamlessly with the event-driven framework, pausing simulation only when debug conditions are met.

Host System Integration

SIMH interfaces with host systems primarily through file-based I/O mapping and network protocols to emulate peripheral devices. Disk and tape devices are mapped to host files or directories, using formats such as .dsk for floppy images, SIMH disk format for structured storage, or raw binary files for tapes, allowing seamless access to modern storage without physical hardware. For console and terminal interactions, SIMH employs TCP/IP over , where commands like SET CONSOLE [TELNET](/page/Telnet)=<port> or ATTACH <unit> <port> bind simulated serial ports to host network sockets, enabling remote access from tools like or clients on ports ranging from 1 to 65535. The simulator's portability is achieved through an codebase with conditional compilation directives to handle OS-specific features. Core modules like sim_sock.c abstract socket operations, supporting differences between systems (using libpcap for packet capture) and Windows (using WinPcap or Npcap). This layer ensures compatibility across platforms including , macOS (including ), Windows, , various Unix variants like AIX and , Termux, and BSD systems, without requiring host-specific recompilation for basic functionality. Build processes leverage Makefiles for Unix environments and projects for Windows, with support added in later versions for cross-platform compilation. Performance integration emphasizes efficient host resource utilization while maintaining simulation accuracy. In SIMH V4, is implemented for devices like disks and tapes, enabling non-blocking operations that prevent the event queue from stalling during data transfers, as seen in PDP-11 and VAX simulators. Multi-threading is deliberately limited to a single-threaded model to avoid complexity in the synchronous instruction execution loop, relying instead on polling for events. Binary distributions are provided pre-built for major platforms, such as Windows executables from the project's repository, alongside source distributions with build scripts to facilitate compilation on 64-bit hosts. Limitations in host integration stem from the simulator's CPU-centric design, with no support for GPU acceleration, making high-end emulations like VAX and dependent on host processor speed. Post-2010 recommendations emphasize 64-bit hosts for adequate performance, as 32-bit systems struggle with memory-intensive simulations requiring 64-bit integers for accurate of systems like the PDP-10.

Emulated Hardware

Systems

SIMH provides highly accurate emulation of Digital Equipment Corporation (DEC) hardware, particularly its minicomputers and mainframes that played a pivotal role in early computing history. These simulations enable the execution of original operating systems and software on modern hosts, preserving the functionality of systems like the series and VAX architectures. The emulations incorporate detailed modeling of processors, memory systems, buses, and peripherals to achieve cycle-accurate behavior where possible, using event-driven timing for efficient . The PDP-8 family centers on the 12-bit that defined DEC's entry into minicomputing. SIMH simulates key models such as the PDP-8/I and LINC-8, replicating core memory configurations from 4K to 32K words and Teletype interfaces like the KL8E for console . These models support boot ROMs in and formats, allowing direct loading of operating systems such as OS/8. Peripherals including paper readers/punches, DECtapes, and magnetic tapes are emulated to facilitate original software environments. For the PDP-11 series, SIMH emulates the 16-bit architecture across a range of models, including the KA/11 processor in configurations like the 11/20, 11/40, and 11/70. It supports both Q-BUS and Unibus variants, with capabilities for 18-bit or 22-bit addressing depending on the system. Key peripherals include RK05 disk drives via the RK11 controller and DL11 serial terminals for console and multi-user access. Vector instructions and boot ROMs are faithfully reproduced, enabling accurate execution of RT-11 and early versions, with idle detection to optimize performance. SIMH's VAX targets 32-bit virtual machines, simulating models such as the MicroVAX 3900 and VS2000, with emulator-extended support up to 512 MB (original MicroVAX 3900 limited to 64 MB). It includes Q-BUS support through adapters like the QBA, along with floating-point units (FPU and FPA) for precise arithmetic operations. Boot ROMs, typically 128 KB in size, handle initialization and device booting, while vector instructions are supported with assembler-compatible syntax. This setup allows reliable operation of , including configurations and handling. The emulation recreates the 36-bit mainframe architecture of DEC's systems, focusing on KL10 and KS10 models with up to 1 MW of memory. interfaces via DEUNA/DELUA controllers enable ARPANET-like networking simulations. Boot ROMs support loading from disks (RP06) and tapes (), with high fidelity for TOPS-10, including user-mode idle loops and device interrupts. Unique features like extended instruction sets (EIS) and page mapping ensure compatibility with historical software stacks.

IBM Systems

SIMH emulates the and System/370 mainframe families, which introduced a unified with 8-bit byte-addressable and support for 16-bit and 32-bit data formats. These simulators replicate the byte-multiplexor and selector channel I/O central to mainframes, enabling high-speed data transfer to peripherals such as the 729 Model V magnetic tape drives and 2311 direct-access storage devices. The emulations achieve sufficient accuracy to execute Basic Assembly Language (BAL) programs and operate key operating systems, including OS/360 for multiprogramming with a fixed number of tasks (MFT), OS/360 MVT for multiprogramming with a variable number of tasks, and for disk-oriented . Preceding the System/360, SIMH supports emulation of influential systems like the commercial computer and the 7090 scientific computer, which influenced System/360 design through compatibility modes for their instruction sets and peripherals. The simulator models core memory configurations up to 16K characters, along with the card reader/punch and 1403 printer, allowing execution of Autocoder programs and tape-based . Similarly, the 7090/7094 emulator handles large-scale core memory and assembly, supporting IBSYS operating system and high-speed peripherals like the 729 tapes. These precursor emulations facilitate preservation of early commercial and scientific software environments. The simulator in SIMH targets the 16-bit word-addressable scientific introduced in 1965, emulating up to 32K words of core memory along with integrated peripherals such as the 1132 printer, console , and 1442 /punch. It includes support for up to eight 2316 disk drives and an internal fixed disk in the 1131 CPU, enabling execution of the Disk Monitor System () versions like R2 V12, which incorporates the Macro Assembler and IV compiler. A notable feature is the 1130's for emulating the earlier , allowing legacy programs to run without modification while supporting card-based input/output operations.

Control Data Corporation Systems

The SIMH project includes an for the (CDC) 1700 series, a family of 16-bit minicomputers introduced in 1966 designed for industrial control, , and scientific applications. The , developed by John Forecast and integrated into SIMH starting in 2016, faithfully reproduces the architecture of models such as the 1714 CPU, which features a 1.25 MHz clock, up to 32K words (expandable to 64K) of core memory, , and a direct storage access bus for peripherals. It supports multi-level interrupts via the 1705 controller, enabling efficient handling of I/O operations in real-time environments. Key peripherals emulated include the 1711-A teletypewriter for console I/O, paper tape devices such as the 1721-A reader and 1723-A punch for program loading and output, and high-speed variants like the reader added in later releases. is handled through the 1738-B controller supporting up to two 853 or 854 pack drives (1.5–3.0 MW capacity) and the 1733-2 controller for up to four 856 cartridge disks (1.13–2.25 MW per disk). support via the 1732-A/1732-3 controller accommodates up to four transports, while line printers like the 1740, 1742-30, and 1777 models, along with card readers (1752) and punches (1764), facilitate . The 6400 console and 1782 magtape controller were incorporated in release 2 of the emulator in 2019, enhancing compatibility with original hardware configurations. The boots and runs CDC's MSOS 5 operating system, a for 64K configurations distributed by Exxon, allowing execution of production workloads including background task scheduling. Support for the 6400 operating system was added in 2019, enabling simulation of earlier software environments. It accurately executes 1960s-era diagnostics, with most tests passing, though some failures occur due to timing nuances or incomplete peripheral modeling based on available documentation. The simulator preserves the series' focus on I/O offload through dedicated controllers, providing timing fidelity suitable for emulating supercomputer-era workloads in a context, and supports running compilers and scientific simulations from the period via MSOS environments.

Data General Systems

SIMH provides for Data General's series of 16-bit minicomputers, encompassing models 1 through 4, which were among the earliest commercially successful minicomputers introduced in the late 1960s and early 1970s. The simulator replicates the core architecture, including the CPU instruction set for later models like the and 4, enabling execution of original software on modern host systems such as Windows and . Key emulated peripherals include hard disks, fixed disks, drives in formats like SIMH, E11, TPC, and P7B, as well as terminals with support for a second terminal via the sim_tmxr and an interval clock. The series extends SIMH's support to General's more advanced 16-bit systems, including the C/200 model and the higher-end MV/8000, which featured enhanced and processing capabilities. covers the microprogrammed CPU, complete with floating-point operations and interval timer functionality added in SIMH revision 3.1, along with priority handling integral to the original hardware design. The compass bus is faithfully reproduced to facilitate device interconnects, while storage options include RD51-compatible disk drives and units for data transfer and archival. Operating system support in the Data General emulators emphasizes multi-user and real-time environments, such as AOS/VS for systems, which enables concurrent user sessions via emulated terminals. Earlier systems run MPX and RDOS, including variants like RDOS/INFOS and DG/RDOS, with boot procedures demonstrated for disk-based startups on both and configurations. These emulations achieve high fidelity, successfully executing 1970s-era business applications, diagnostics, and development tools in languages like assembler, , and under RDOS, as verified through sample program testing and hand-generated cases.

Honeywell Systems

SIMH provides emulation for Honeywell's Series 16 minicomputers, including the H316 and H516 models, which are 16-bit accumulator-based systems originally developed as the DDP-516 and DDP-516 by Computer Control Corporation before 's 1966 acquisition. The simulator accurately reproduces the instruction set, featuring 46 unique "Generic A" opcodes executed in 4- or 6-phase cycles via hardwired decode logic, enabling faithful reproduction of core processing behaviors. These emulations support peripherals such as card readers for the associated 18-bit architectures, facilitating data input in simulated environments typical of early business and scientific . The H516 model, in particular, allows simulation of networking applications, including the original ARPANET (IMP), highlighting Honeywell's role in early packet-switched networks. For larger systems, the SIMH framework underpins the DPS8M emulator, which simulates the 36-bit 8/M series (successor to the H6000), supporting the General Comprehensive Operating System (GCOS) for batch and workloads, as well as Multics influences from its GE-645 origins. This extends SIMH's coverage to variable word sizes of 16 to 36 bits across Honeywell's lineup, enabling emulation of and early process control simulations on industrial hardware.

Other Commercial Systems

SIMH provides emulation for a variety of commercial computer systems from vendors beyond the primary categories, enabling the preservation and study of diverse architectures from the through the . These emulators focus on key features such as proprietary buses, specialized I/O, and operating environments tailored to business and scientific applications. The 3B2 emulator supports the 3B2/400 and 3B2/700 models, which were 32-bit Unix workstations based on the . These simulations replicate up to 4 MB of , SCSI disk controllers, and Ethernet interfaces, allowing execution of Release 3, with integrations for like the WE32200 family used in switching systems. Hewlett-Packard's commercial systems are emulated through dedicated simulators for the HP 3000 and 2100 series. The HP 3000 emulator covers 16-bit minicomputers such as the Series III, supporting the Multi-Programming Executive (MPE) operating system, tape drives, and the slotted chassis architecture for modular I/O expansion. Similarly, the HP 2100 series emulator handles models like the 2116 and 1000 M/E/F-Series, including options for floating-point units, memory protection, and direct memory access (DMA) controllers, facilitating real-time executive (RTE) environments in business computing. The Burroughs B5500 emulator recreates the 48-bit medium-scale system with its stack-based optimized for programming and the Master Control Program (MCP) operating system. It simulates core memory up to 256K words, magnetic drum storage, and word-mark addressing, emphasizing the system's influence on tagged architecture designs for in commercial . For Scientific Data Systems (, later Data Systems), SIMH emulates the Sigma 5, 6, and 7 series, which are 32-bit mainframes supporting multiprogramming under the CP-V operating system. The Sigma 7 simulation includes the 32-bit central processor, core memory configurations up to 128K words, and peripherals like the ring network interface, with enhancements for the SDS 940 variant's support. Norsk Data systems receive preliminary emulation support in SIMH for the ND-100 series, 16/32-bit s running the REALITAS operating system. These simulations cover the ND-100's 16-bit CPU with 32-bit extensions, processing units, and Ethernet connectivity, reflecting their use in European scientific and industrial applications. Interdata emulators in SIMH target the 16/32-bit family, including the 4/32 and 8/32 models, which share architectural influences from the System/360. These support up to 512K words of memory, channel-based I/O, and the OS/32 operating system, with compatibility for early UNIX ports on non-PDP architectures.

Hobbyist and Research Systems

SIMH provides emulation for several hobbyist-oriented systems that were pivotal in the early personal computing era, enabling users to experience the foundational hardware of home computing without physical restoration. The MITS , introduced in 1975 as one of the first commercially successful microcomputers, is emulated with support for the CPU, expansion, and up to 64 KB of memory. This simulator accurately replicates the system's switches and lights for direct machine operation, allowing booting of and operating systems from emulated 8-inch floppy disks or paper tape. Similarly, the Southwest Technical Products Corporation (SWTPC) 6800 emulator supports the microprocessor-based kits from the late 1970s, including the SWTPc 6800 and 6809 variants with flex disk controllers for single-sided, single-density floppies. These features facilitate running period-specific software like SDOS and FLEX9, preserving the low-cost, kit-built nature of these machines that appealed to electronics enthusiasts. In the realm of research and experimental systems, SIMH emulates hardware that advanced early computing concepts, often developed in academic or laboratory settings. The Lincoln Laboratory TX-0, a 1956 transistor-based computer that influenced the design of the , is simulated with its 16-bit architecture, 8K-word core memory, and Type 401 display support for graphical experiments. This emulation enables exploration of the TX-0's role in pioneering interactive computing and early timesharing precursors, such as those leading to the (CTSS). The BESM-6, a Soviet mainframe from 1967 known for its high-speed arithmetic and magnetic drum storage, is also supported, modeling its 48-bit word length, up to 256K words of memory, and peripherals like readers for running original assembly and programs. Implemented by contributors Leonid Broukhis and Serge Vakulenko, this simulator highlights the BESM-6's contributions to scientific computing in non-Western contexts. Educational and low-end minicomputers round out SIMH's coverage of accessible hardware, emphasizing simplicity for teaching and experimentation. The Royal-McBee , a 1956 drum-based system marketed as an affordable , is emulated with its 4,096-word magnetic , console, and optional high-speed paper tape I/O. This allows simulation of its interpretive programming model, ideal for introductory instruction using vacuum tube-era logic. The GRI-909, a 1969 16-bit from General Research and Instrument Corporation, supports up to 32K words of core memory and paper tape peripherals, targeting embedded control and educational use with its straightforward instruction set. Unique to these emulations is the focus on minimalist I/O interfaces, such as toggle switches, indicator lamps, and consoles, which provide hands-on insight into machine-level programming and hardware-software interaction for modern learners. As of 2025, SIMH continues to receive updates for bug fixes and optimizations in existing emulations, with no major new hardware simulators added recently.

Usage and Extensions

Running Simulations

SIMH simulations are initiated by first obtaining the emulator software, which can be downloaded as precompiled binaries for various host platforms from the official distribution site or built from source code available on GitHub. For building from source, users unpack the archive, define simulator-specific compilation flags such as VM_PDP11 for the PDP-11 simulator, and compile using tools like gmake on Unix-like systems or Visual C++ on Windows, potentially linking libraries like libpcap for network support. Configuration occurs via an initialization file named <simulator>.ini, which contains non-interactive commands for setting up devices, or directly through the command-line interface. Basic operations begin with attaching virtual devices to host files or ports using the ATTACH command, such as ATTACH DS0 os.disk to connect a disk unit to a file. The BOOT command then resets the simulated machine and loads a bootstrap from the specified unit, for example, BOOT DS for from disk unit 0. Execution starts with RUN, which resets devices, sets the , and begins CPU operation, or alternatively LOAD boot; GO to load a boot loader and commence running. Automation of command sequences is handled by the DO command, which executes scripts from files and supports arguments via placeholders like %1, allowing nested execution up to 10 levels deep. Console access for interacting with the simulated system supports remote connections via , enabled by SET CONSOLE TELNET=<port>, such as SET CONSOLE TELNET=2323 to listen on port 2323. Simulation speed is controlled with SET THROTTLE options, including SET THROTTLE 1M for approximately 1 , SET THROTTLE 50% to use 50% of host CPU time, or SET NOTHROTTLE to run at full host speed. Troubleshooting common issues involves checking the configuration with SHOW CONFIG to identify device conflicts, which can be resolved by disabling units via SET <unit> DISABLED. Logging for diagnostics is activated using SET DEBUG flags, such as SET CONSOLE DEBUG=debug.log to output console events to a file or SET <device> DEBUG for device-specific traces, with SET NODEBUG to disable. A practical example for booting the PDP-11 simulator with RT-11 involves attaching the (ATTACH DS0 rt11.dsk), from it (BOOT DS), and then loading and starting the boot loader (LOAD boot; GO), which initializes the RT-11 environment.

Supported Software Environments

SIMH's PDP-11 simulator supports a range of operating systems, including the single-user RT-11, the real-time multitasking RSX-11M and RSX-11M+, the time-sharing , and early versions of Unix such as V6 and V7. The VAX simulator extends this to versions up to V7.3, enabling execution of DEC's flagship operating system for 32-bit architectures. These systems leverage SIMH's accurate of Unibus and Q-Bus peripherals, allowing full and operation as on original . Community extensions to SIMH include a System/360 emulator that runs OS/360, including variants like DOS/360 and TOS/360, alongside the virtual machine monitor VM/370 for hosting multiple guest OS instances. Compilers such as and , integral to OS/360 environments, operate seamlessly, preserving mid-20th-century enterprise programming workflows. Beyond DEC and IBM, SIMH accommodates diverse environments: on the Honeywell DPS8/M simulator, a pioneering OS with security features that influenced modern systems; NOS on the CDC 1700, supporting batch and interactive processing for scientific computing; AOS on Data General and series, a modular OS for applications under hobbyist license; and on the , the foundational disk OS for 8-bit microcomputers. SIMH enables running classic applications across these platforms, including text adventures like (also known as Colossal Cave) on PDP-8 and PDP-11 under OS/8 or RT-11, which popularized . Utilities such as the line editor and MACRO-11 assembler function natively on DEC systems, aiding and maintenance in emulated environments. A key role of SIMH lies in software preservation, exemplified by executing rare early protocol stacks on the simulator, which recreates network host software from the 1970s precursor using emulated IMP interfaces. This capability sustains access to historically significant codebases otherwise inaccessible due to hardware obsolescence.

Community Contributions

The Open SIMH project, launched in 2022, maintains the simulator codebase on , building on contributions from numerous developers to enhance portability, accuracy, and feature sets across supported systems. The initiative encourages involvement through pull requests for code improvements, documentation updates, testing, and other non-coding contributions, all licensed under terms to ensure broad . Active issue tracking on the addresses bugs, feature requests, and compatibility enhancements, reflecting ongoing collaborative maintenance by the SIMH Steering Group. Community-driven extensions expand SIMH's capabilities beyond original designs, including adaptations for third-party devices like Ethernet interfaces on non-DEC architectures, enabling networked simulations via libpcap integration for realistic host-guest communication. Enthusiasts further support adoption by compiling and distributing pre-built binary packages for platforms such as Windows, , and macOS, often shared through development repositories to simplify setup without requiring source builds. The SIMH discussion forum on Groups.io serves as a central hub for user and developer interactions, with sustained activity in 2025 covering topics like software preservation, emulator builds, and challenges. Discussions that year highlighted progress on the emulator, including implementation of BOOT and EXECUTE commands, resolution of file issues, and integration testing. Key community projects leverage SIMH for historical software revival, such as the DPS8/M simulator—a SIMH-based for the H6180 processor—that boots and executes releases from MR12.5 to MR12.8, supporting administrative tasks, compilation, and runtime operations. Efforts on Data General systems include extensions to the MV simulator, facilitating the of AOS/VS environments and exploration of legacy applications. These initiatives underscore the project's role in preserving and extending access to vintage computing ecosystems through volunteer-driven innovation.

References

  1. [1]
    SimH "Classic"
    SimH (History Simulator) is a collection of simulators for historically significant or just plain interesting computer hardware and software from the past.Software Kits · Simulator Documentation · Help with SIMH · HP simulators
  2. [2]
    simh/simh: The Computer History Simulation Project - GitHub
    Simulator binaries for x86 Linus, x86 macOS, and Windows for all recent changes are available at https://github.com/simh/Development-BinariesSimh · Win32-Development-Binaries · simh/Development-Binaries · Issues 117
  3. [3]
    The Story of SimH | IEEE Journals & Magazine
    Sep 30, 2015 · In this Anecdotes article, Bob Supnik relays the development of SimH (History Simulator), which over the last 20 years has evolved from a ...
  4. [4]
    The Open SIMH Project | Open SIMH
    SIMH is a framework and family of computer simulators, initiated by Bob Supnik and continued with contributions (large and small) from many others.
  5. [5]
    [PDF] Forward... Into The Past Bob Supnik, VP, Sun Microsystems - SIMH
    SIMH is an Internet-based collaborative project focused on preserving computers (and software) of historic interest via simulation. • SIMH consists of.
  6. [6]
    Open SIMH simulators
    Available simulators ; PDQ-3, Advanced Computer PQD-3 ; S3, IBM System/3 model 10 ; SAGE, SAGE Inc. 68000 ; SDS, SDS 940.<|control11|><|separator|>
  7. [7]
    About Open SIMH
    SIMH is a framework and family of computer simulators, initiated by Bob Supnik and continued with contributions (large and small) from many others.<|control11|><|separator|>
  8. [8]
    Simulators: Virtual Machines of the Past (and Future) - ACM Queue
    Aug 31, 2004 · Bob Supnik, Sun Microsystems​​ SIMH, the Computer History Simulation system, is a behavioral simulator for obsolete systems of historic interest. ...
  9. [9]
    [PDF] SIMH Users' Guide, V3.12-3 05-Dec-2022
    Dec 5, 2022 · The simulators have been tested on VAX VMS, Alpha VMS, Alpha UNIX, NetBSD, FreeBSD, OpenBSD, Linux, Solaris, Windows 9x/NT/2000/XP/W7/W10/W11, ...
  10. [10]
  11. [11]
    [PDF] Writing a Simulator for the SIMH System Revised 22-Sep-2008 for ...
    In order to simulate asynchronous events, such as I/O completion, the VM must define and keep a time base. This can be accurate (for example, nanoseconds of ...
  12. [12]
    [PDF] Preserving Computing's Past: Restoration and Simulation - SIMH
    It describes a simulation framework called SIM, which has been used to implement simulators for the PDP-8, PDP-11,. PDP-4/7/9/15, and Nova minicomputers.
  13. [13]
    SIMH FAQ, 31-Mar-2004
    Mar 31, 2004 · It consists of simulators for approximately 20 different computers, all written around a common user interface package and set of supporting ...
  14. [14]
    Releases · simh/simh - GitHub
    Author: Bob Supnik bob@supnik.org. Date: Sun Feb 8 09:06:00 2009 -0800 ... 5 PDP-11 - Added support for DC11, RC11, KE11A, KG11A. - Added modem control ...Missing: initial | Show results with:initial
  15. [15]
    [PDF] SIMH Users' Guide, V4 - Tangentsoft
    Nov 1, 2020 · Original code published in 1993-2017, written by Robert M Supnik. Copyright (c) 1993-2017, Robert M Supnik. Permission is hereby granted, free ...
  16. [16]
    [PDF] SIMH FAQ
    May 6, 2019 · When a simulator starts, simh determines the host system's clock tick size and based on this determination, idling will be supported or not.Missing: integration | Show results with:integration
  17. [17]
    [PDF] PDP-8 Simulator Usage 01-May-2021 - SIMH
    May 1, 2021 · The TD8E supports the BOOT command, but only for unit 0. The TD8E supports supports PDP-8 format, PDP-11 format, and 18b format DECtape images.
  18. [18]
    [PDF] PDP-11 Simulator Usage 12-Dec-2022 - SIMH
    Dec 12, 2022 · The controller type must be set before attaching a virtual card deck to the device. You may NOT change controller type once a file is attached.Missing: FTP email challenges
  19. [19]
    [PDF] VAX (MicroVAX 3900) Simulator Usage 01-May-2012 - SIMH
    May 1, 2012 · This memorandum documents the DEC VAX (MicroVAX 3900) simulator. 1 Simulator Files. To compile the VAX, you must define VM_VAX and USE_INT64 as ...
  20. [20]
    [PDF] PDP-10 Simulator Usage 19-Feb-2016 - SIMH
    Feb 19, 2016 · This memorandum documents the DEC PDP-10 simulator. 1 Simulator Files. To compile the PDP-10, you must define VM_PDP10 and USE_INT64 as part ...
  21. [21]
    rcornwell/sims: Burroughs B5500, ICL1900, SEL32, IBM 360/370 ...
    This is a working copy of my Burroughs B5500, Dec PDP6, KA10, KI10, KL10, KS10, SEL32, IBM 360 and IBM7000 series simulators for SimH.
  22. [22]
    Available Simulators
    **Summary of SIMH Emulations for DEC Systems:**
  23. [23]
    SIMH documentation - ibm-1401.info
    To: Users From: Bob Supnik Subj: IBM 1401 Simulator Usage Date: 15-Nov-2004 COPYRIGHT NOTICE The following copyright notice applies to both the SIMH source ...
  24. [24]
    SIMH IBM 1130 and DMSR2V12 Reference Guide
    Nov 23, 2012 · The emulator software package includes the IBM 1130 Disk Monitor System Version 2 Release 12, which includes the Macro Assembler and Fortran ...Missing: VAX PDP-
  25. [25]
    Simulating the IBM 1130 on 21st-century hardware - IBM1130.org
    The simulator simulates an 1131 processor with up to 32KW of memory, the console keyboard and printer, 1132 printer, 1442 card read/punch, and up to five disk ...
  26. [26]
    [Simh] XENIX
    Dec 28, 2018 · I have begun to build a simulator for the IBM PC XT and IBM PC AT. They both ... current SIMH package since they are so early in development. I would ...RT-11 sourceRainbow100More results from simh.trailing-edge.narkive.com
  27. [27]
    simh/CDC1700 at master · simh/simh
    **Summary of CDC1700 Simulator (simh/simh/tree/master/CDC1700):**
  28. [28]
    CDC 1700 emulator added to SIMH | Virtually Fun
    Jul 26, 2016 · A SIMH-based simulator for the CDC1700 series, a 16-bit system from the mid-1960's, using the documentation and software available at bitsavers.
  29. [29]
    CDC 1700 release 2 and request for documentation
    Feb 3, 2019 · I would like to announce release 2 of the CDC 1700 simulator. The major changes include: 1. Fix protect fault for 2-word instructions so that background ...[Simh] CDC 6600[Simh] 8-bit pseudocolor on modern Windows PC?More results from simh.trailing-edge.narkive.com
  30. [30]
  31. [31]
    Software for DG Noava and Eclipse - Open SIMH
    Software for the Data General Nova and Eclipse. Nova and Eclipse Software Status. The following categories of software and documentation are available from ...Missing: simulator | Show results with:simulator
  32. [32]
    [PDF] SimH Sample Software Packages 20-Jun-2006
    Jun 20, 2006 · RT-11 is the PDP-11's single user operating system. It provides a program development and execution environment for assembler, BASIC, and ...
  33. [33]
    [PDF] Decoding The H316/H516 “Generic A” Instructions - SIMH
    Jul 23, 2001 · The Honeywell Series 16 (H116, H316, H416, H516, H716) was a family of 16b minicomputers sold from the mid-60's to the mid-70's.
  34. [34]
  35. [35]
    DPS8M Simulator
    DPS8M is a simulator of the 36‑bit GE Large Systems / Honeywell / Bull 600/6000‑series mainframe computers (Honeywell 6180, Honeywell Series‑60 ∕ Level‑68 ...Missing: SIMH | Show results with:SIMH
  36. [36]
    Multics Simulator
    May 17, 2025 · Simulated Multics is a complete multi-user operating system, running on simulated Honeywell DPS8M processors. It can support almost everything ...
  37. [37]
    HP 21xx/1000 and HP 3000 SIMH Simulators
    Nov 30, 2024 · This is the home of the Computer History Simulators (SIMH) for the Hewlett-Packard 21xx/1000 and 3000 computer systems.
  38. [38]
  39. [39]
    Support for Nord-100 - Simh - Groups.io
    Mar 29, 2023 · It is based on the latest OpenSIMH source from github. A little information here for those of you that are not familiar with the Norsk Data ...Missing: emulation | Show results with:emulation
  40. [40]
  41. [41]
    MITS Altair 8800 Simulator Configuration - SIMH
    The kit consisted at that time of only the parts to build a case, power supply, card cage (18 slots), CPU card, and memory card with 256 *bytes* of memory.Missing: features | Show results with:features
  42. [42]
    SIMH - multi-system simulator / News: SWTPc ... - SourceForge
    I have released a new version of the MS-DOS build of SIMH which includes various OS's for a few of the emulators to give a test drive to the system.
  43. [43]
    LGP-30 Simulator Configuration - SIMH
    The LGP-30 had 4096 words of drum memory, a Friden Flexowriter, and optional high-speed paper-tape reader and punch. It used vacuum tube and diode logic.
  44. [44]
    GRI-909 Simulator Configuration - SIMH
    The GRI-909 was the first system from the newly formed GRI Computer Corporation. Targetted for embedded and process control applications.
  45. [45]
    GRI 909/GRI99 Simulator Usage - Open SIMH
    Dec 1, 2008 · The GRI-909 simulator implements the following unique stop conditions: An unimplemented operator is referenced, and register STOP_OPR is set ...
  46. [46]
    Software Kits - SIMH
    TOPS-10 and TOPS-20 for the PDP-10 (under license provided by Digital Equipment Corporation). ... DMS R2 V12 for the IBM 1130 (from www.ibm1130.org). IBSYS for ...Missing: 2000s expansion
  47. [47]
    Running Adventure on the DEC PDP-8 with SIMH - Raymii.org
    Jul 23, 2015 · An original PDP-8/i. In this guide I'll show you how run the classic Colossal Cave Adventure game on a PDP-8, emulated by the SIMH emulator.
  48. [48]
    [PDF] ARPANET IMP and TIP Extensions for the H316 simulator
    Dec 2, 2013 · This memorandum documents the extensions made to the simh Honeywell H316 simulator to allow it to run the ARPANET Interface Message ...
  49. [49]
    The Open SIMH simulators package - GitHub
    This is the codebase of SIMH, a framework and collection of computer system simulators. SIMH was created by Bob Supnik, originally at Digital Equipment ...
  50. [50]
    Contributing to Open SIMH
    Contributions can be code, documentation, testing, etc., must be licensed under MIT/BSD, and submitted via pull requests. Non-coders are welcome.
  51. [51]
    Networking dilemma (corrected version) - Simh - Groups.io
    Aug 30, 2021 · Just as with the DMC, you would configure SIMH. SIMH gives you two main options for simulated Ethernet devices: connect them to a real Ethernet ...Missing: third- | Show results with:third-
  52. [52]
    simh@groups.io | Topics
    I've created a rudimentary init script to get OpenSIMH up and booting an OpenVMS 7.3 host. Works fine to start the simulator, but the 'stop' method just kills ...
  53. [53]
  54. [54]
    Multics - DPS8M Simulator - GitLab
    May 25, 2024 · Multics was a prototype of a Computer Utility, providing secure computing to remote users at their terminals. Multicians still miss the elegant, ...
  55. [55]
    [Simh] Data General - MV
    If there ever was such an emulator I would not mind trying it out. Currently I play with the PDP11 and VAX emulators as I would up spending much more time ...<|control11|><|separator|>