Simh
The Computer History Simulation Project
Install / Use
/learn @simh/SimhREADME
SIMH v4.0 - 19-01 Current
Table of Contents:
WHAT'S NEW since the Open SIMH fork
WHAT'S NEW since simh v3.9
. . New Simulators
. . Simulator Front Panel API
. . New Functionality
. . . . DDCMP Synchronous host physical device support - framer
. . . . Remote Console Facility
. . . . VAX/PDP11 Enhancements
. . . . PDP11 Specific Enhancements
. . . . PDP10 Enhancements
. . . . SDS 940 Enhancements
. . . . Terminal Multiplexer additions
. . . . Video Display Capabilities
. . . . Asynchronous I/O
. . . . Clock/Timer Enhancements
. . . . Ethernet Transport Enhancements
. . . . Disk Extensions
. . . . Embedded ROM support
. . . . Control Flow
. . . . Scriptable interactions with running simulators
. . . . Help
. . . . Generic SCP support Clock Coscheduling as opposed to per simulator implementations
. . . . New SCP Commands
. . . . Command Processing Enhancements
. . . . . . Environment variable insertion
. . . . . . Command aliases
. . . . . . Do command argument manipulation
. . Building and running a simulator
. . . . Use Prebuilt Windows Simulators
. . . . Building simulators yourself
. . . . . . Linux/OSX other *nix platforms
. . . . . . . . Build Dependencies
. . . . . . . . . . OS X - Dependencies
. . . . . . . . . . Linux - Dependencies
. . . . . . Windows
. . . . . . . . Required related files
. . . . . . . . Visual Studio (Standard or Express) 2008, 2010, 2012, 2013 or Visual Studio Community 2015, 2017, 2019
. . . . . . . . MinGW32
. . . . . . VMS
. . Problem Reports
WHAT'S NEW since the Open SIMH fork
All Simulator updates on Open SIMH will be present in this repository, and any changes to the master branch code in this repository authored by anyone except Mark Pizzolato may be posted as pull requests on the Open simh repo.
Simulator binaries for x86 Linus, x86 macOS, and Windows for all recent changes are available at https://github.com/simh/Development-Binaries
Mark Pizzolato's changes only present in the simh/simh repo and not present in the Open SIMH repo:
Visible changes to SCP (the simulator framework or command execution environment)
-
Add descriptive messages for cases when NOPARAM status is returned.
-
Avoid excessive DO command context lines when commands produce multiple lines of output.
-
Support has been added to allow for optional per device unit tests to exist and to invoke them at simulator startup.
-
Add support for generic bit field packing and unpacking during buffer copying.
-
Display count of units when all units are disabled.
-
Support to display all SCP visible filenames via relative paths and use those in SAVEd state.
-
ZAP command can be aborted by a Control-C.
-
Display current NOAUTOSIZE status in SHOW VERSION output.
-
Extend logical name support to include optional unique names for units as well as devices.
-
Add extended register sanity checks including duplicate name detection. Fixed simulator devices with duplicate register names.
-
Simulators with video devices that may be enabled, no longer disable the screen saver until the video display is presented. Optionally enabling or disabling the OS screen saver by an environment variable.
-
More readable output of SHOW <dev>|<unit> with variable sized DEVICE and UNIT names.
-
Automatic Cryllic Font detection in BESM6 simulator at runtime rather than build time. More relevant for distribution binaries.
-
Built-in command history and tab file name completion previously done by GPL readline now done by BSD licensed library available on all platforms (especially Windows).
-
Robust register sanity checking for all register definition macros.
-
When building on windows, the windows-build dependency libraries are automatically downloaded even if git is not available.
-
Extended video component version information displayed in SHOW VERSION output.
-
Add a global SET AUTOZAP command or per drive SET <unit> AUTOZAP which removes metadata from disk containers at detach time if the container has metadata.
-
DISKINFO command displays disk container metadata (if present) and container size along with detected file system information if a known file system type is present.
-
makefile builds which have potentially useful dependencies not found will prompt to install these components prior to building. MacOS Brew dependencies can be directly done from within the makefile. Other platforms (or package management systems) which require root access to install will display the appropriate package management commands and and exit. Support for macOS (HomeBrew and MacPorts), Linux (Ubuntu/Debian, RedHat/Fedora, Chimera), NetBSD, FreeBSD, OpenBSD.
-
SHOW VERSION show the host system type that build the runing simulator when it is not the same as the current host system.
-
Support for building simulators without built-in boot or ROM code when building with DONT_USE_INTERNAL_ROM is defined, but to automatically and transparently fetch the needed ROM or other boot code when it is needed. This is possibly useful for systems which don't want to distribute simulators with build-in binary code which may have unknown copyright status.
-
Reasonable output produced for all simulators from HELP BOOT.
-
Fix occasional hang of IBM1130 simulator while building with Visual Studio.
-
Building with the simh makefile defaults to compiling each source file separately and store the compiled result. This approach lends itself to quicker building for folks who are developing new simulators or new simulator modules. This was requested and discussed in #697. Invoking make with BUILD_SEPARATE=0 on the make command line or as an exported environment variable will disable separate compiles.
-
Building with the simh makefile defaults to displaying a summary of what is happening in each build step. Invoking make with QUIET=0 on the make command line or as an exported environment variable will cause the display of the full compiler or linker command being performed instead of the summary commands.
-
TAPE and SCSI libraries have been extended to fully support partial record reads of fixed sized records which may contain multiple records in recorded data. Images of this type are common for QIC tape archives generally available on bitsavers and elsewhere. Attach time checking on simulated QIC tape devices reports possible problems that may occur.
-
Appveyor CI/CD builds of all simulators for Linux, macOS and Windows platforms.
-
All the available simulator defined environment variables are documented in the help and sim_doc document file.
-
SET CONSOLE TELNET=CONNECT will start a telnet session to the simulator console in a separate window on all supported host systems.
-
Support for building on systems with the gameoftrees.org (got) source control system.
-
Frontpanel API improvements, document clarifications and bug fixes.
-
Added a SET CLOCK NOCALIBRATE mode.
NOCALIBRATE mode allows all activity of a simulator run to occur with precisely consistent event timing. In this mode, every clock tick takes precisely the same number of instructions/cycles. Likewise, the polling activities for MUX or other poll oriented devices occurs after precisely the same number of instructions/cycles executed. As a consequence of this mode, no effort to align simulated clock ticks (and simulated access to wall clock time) is made.This mode will often be useful for running diagnostics which expect a particular relationship between perceived wall clock and instruction times. It might also be useful for running test scripts which may want to compare output of previous executions to to current execution or to compare execution on arbitrarily different host computers. It will also be useful when running under a host system debugger which might produce confusing results when various wall clock pause times when stopping at breakpoints. Additionally, consistent logical timing exists when simulator debug or instruction history is being recorded which normally would impact wall clock times.
In NOCALIBRATE mode, the operator gets to specify the pseudo execution rate along with the base wall clock time that access to pseudo wall clock accesses returns.
-
All removable devices get detached on a media unload without regard to data access format (SIMH, VHD or RAW).
-
Various failing bugs in tape detach lo
