IBM System/3 simulator & code disassembler
C#
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Symulator3
README.md

README.md

Symulator/3 Readme

Symulator3 is an emulator for the IBM System/3, an early minicomputer/mainframe introduced in 1969 and marketed until 1985. It is very well covered by Wikipedia here https://en.wikipedia.org/wiki/IBM_System/3, and by a private website here http://www.ibmsystem3.nl/.

This simulator supports the machine instructions for the basic Model 10 CPU without the Dual Programming Feature, and configured with 64k RAM, a 5424 Multi-Function Card Unit (MFCU), a 5203 printer, and a 5475 data entry keyboard. Disk support is planned but not yet fully implemented. It is able to process cards that were generated by a real physical System/3 that were read into .txt files and used as test data. The simulator works well enough to flawlessly execute all the machine code recorded on the cards that were created on the physical IBM system/3 in the early 1970s. These cards were either created by the RPGII card system compiler, or manually from the machine language written to perform various tasks. It does not yet run the disk operating system or pass the IBM diagnostic tests.

In addition to simulating a working System/3, there is also code to perform machine code disassembly with extensive annotation describing in detail what each instruction does with a minimum of verbage. It assumes that the user knows enough assembly to understand the general purpose of each instruction. This disassembler is used by the simulator as part of its trace functionality which is the present development focus.

Presently, the entry point is S3UnitTest.cs which has a lot of commented-out code. It is a work in process as the main simulater code in EmulatorEngine is being developed. Once the simulator has gotten to the point that it passes the diagnostic card deck and runs the operating system, assembler, compiler, and other tools, the ScriptProcessor will be the entry point while a more user-friendly user interface is devised which will utilize the scripting commands it supports.