IBM 1401 Emulator (under development)
My IBM 1401 Emulator, unlike most others, does not attempt to faithfully simulate the console of a real 1401. It's purpose is to run the old software, as simply as possible,  not to reproduce what can be an old and awkward operator interface. Driving it the way a real 1401 had to operated, while more realistic,  would soon make using the emulator to do anything substantial into a bit of a chore.

The emulator features a simple but very neat scripting facility that can automate all the manual operations that would otherwise be required to run programs on the emulator. The scripts in the demo assemble and run a couple of source programs, and run a suite of diagnostic card decks.

Special thanks must go to Ralph Reinke for firstly, saving and making available the original SSPS card decks, and more recently, for providing his prime number generator program source, and for his help with some emulator bug fixes.

 Current limitations are:-

  • No Disk functions, Tape functions not yet complete
  • For the most part, only those instructions/functions required to run the programs included in the ZIP below have been implemented
This is a screen shot of the emulator after running the SSPS assembler to generate the "Hello World" program. (Click to enlarge it to a readable size)

The scripting system runs the entire process, so the demo is quite painless to run.


The above demonstration can be run by downloading the ZIP below and unzipping its contents into a new folder. 
Simply run the B1401.EXE program, which will begin executing a demonstration script.
As the script runs, just click "Continue" (or press enter) each time a dialog box appears.
The controls on the various windows may be operated at any time while the scripts are running.

Downloadables:-


The 1401 is unique (weird) in a number of ways. It was a decimal machine not binary, and it's object code is not binary either, it's character based. 
In fact, the object code is almost as readable as assembler source code.  But that's part of the problem - the character sets used in the available software. Most of this software has been converted to ASCII text files as 80 column card images, but some information has been lost in the translation. The machine uses a 6 bit character code, giving 64 possible characters, however not all of these codes are rigidly defined. Some represent characters that don't even exist in ASCII, and others have multiple interpretations, and did so even back in the 1960's.
Because 6 bits have only 64 combinations, there are not enough codes for all the special and punctuation characters. Some codes are used for more than one character, via two alternate character set interpretations - Business and Scientific. The 70xx series also suffers from similar troubles, but not as seriously. Because of this, the translations found in the available software are not uniform, some are internally inconsistent or use a non-standard mapping. And because some of the "disputed" character codes are used to represent addresses in the object code, an incorrect mapping can really screw things up.

 
My RetroComputing home page Intabits home page Send EMail