IBM System/3 simulator & code disassembler
C#
Latest commit 9e473c2 Aug 26, 2016 @GregorJ101 committed on GitHub Add files via upload
Current version.
Permalink
Failed to load latest commit information.
Symulator3 Add files via upload Aug 26, 2016
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 execute flawlessly all the cards created on the physical IBM system/3 used to create them 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.