This is an emulator for the venerable IBM 1401 mainframe computer of the early 60s.
It is written in S/360 assembler and assembles with the Waterloo University Assembler G for MVS 3.8. You can find the Assembler G here: http://www.jaymoseley.com/hercules/compilers/list_of.htm#ASMG27A
The original code we had on this repo didn't assemble cleanly. After work from Bernard Murphy, Gerard Postpischil and others it now cleanly assembles.
Instructions on how to run the emulator are in the code itself, but I shall write up a manual, and also make a youtube video available on how to get it to run.
1 4 0 1 S I M U L A T O R F O R S Y S T E M / 3 6 0 * 00000500 * 00000600 * 00000700 * 00000800 THIS PROGRAM WILL SIMULATE A 1401 ON A SYSTEM/360. THE * 00000900 SYSTEM/360 MUST HAVE AT LEAST 65K, STANDARD INSTURCTION SET, ONE * 00001000 1052, ONE 2540, AND ONE PRINTER. THE 1401 FEATURES SUPPORTED ARE * 00001100 ADVACED PROGRAMMING, SENSE SWITCHES, TAPES, MULTIPLY, DIVIDE, * 00001200 16K CORE, AND ALL STANDARD INSTRUCTIONS EXCEPT SELECT STACKER. * 00001300 OPERATOR CONTROL IS THROUGH THE 1052, USING THE FOLLOWING ENTRIES * 00001400 * 00001500 * 00001600 SRS - START RESET * 00001700 STT - START * 00001800 LDC - LOAD FROM CARDS * 00001900 LDT - LOAD FROM TAPE * 00002000 SSS - SET SENSE SWITCHES * 00002100 TAS - TAPE ASSIGNMENT * 00002200 CLR - CLEAR ALL 1401 CORE * 00002300 DIS - DISPLAY 1401 CORE ON THE PRINTER * 00002400 ALT - ALTER 1401 CORE * 00002500 WTM - WRITE TAPE MARK * 00002600 RWD - REWIND TAPE * 00002700 TRM - TERMINATE THE SIMULATOR * 00002800 * 00002900 * 00003000 * 00003100 16K BYTES ARE SET ASIDE FOR SIMULATED CORE, WITH EACH BYTE HAVING * 00003200 THE FOLOWING FORMAT. * 00003300 360 BIT 1401 BIT * 00003400 0 UNUSED * 00003500 1 WORD MARK * 00003600 2 B * 00003700 3 A * 00003800 4 8 * 00003900 5 4 * 00004000 6 2 * 00004100 7 1 * 00004200 * 00004300 * 00004400 ********************************************************************** 00004500
enjoy!
moshix
December 2022