IBM 1401 video series playlist:
See my videos featuring the IBM 1401 at the Computer History Museum in Mountain View, California, USA
The IBM 1401, introduced in 1959 (see this period marketing video here), was the first truly widespread computer mainframe, with an estimated half of the world computers being IBM 1401 by the mid 1960's. A relatively small and affordable computer by IBM mainframe standards of the time, it is enormous and was very expensive by today's standards. It democratized the use of computers, which were previously only available to the largest companies, to mid-size businesses. Although the CPU was small and comparatively tame, and memory topped out at 16kw, its peripherals were top notch, some much better than that of the bigger scientific mainframes. The IBM 1403 printer, at 600 line/minute printer is still impressive today, and so is the IBM 1402 800 cards/minute punched card reader. Its ability to drive up to 7 of the magnificent IBM 729 7-track magnetic tapes sealed its market appeal for businesses with large databases, which were finally able to abandon their piles of punched cards.
Guy Fedorkow has written a most excellent introduction article for the museum.
Robert Garner has written a historical paper for the IEEE journal: "The legendary IBM 1401 data processing system"
If you want to know how it works inside, IBM 1401, A Modern Theory of Operation by Guy Fedorkow is a superb reference
Ed Thelen sprawling site will give you more info than you ever wished.
Compile and run IBM 1401 programs on our free emulator!
Now everyone can run his own IBM 1401 and write programs for it (using the Autocoder compiler) thanks to the ROPE emulator. It works on Windows, Mac and Linux. There is a giant quirk that the File->Open... menu does not work, but instead if you click on the Open... button on the editor window it will work. Don't ask...
(The source code for the ROPE project is here: https://github.com/lucaseverini/ROPE)
A library of example programs that you can run with it can be found here
To best learn how to program the very unusual IBM 1401, Ken Shirriff suggests the following:
- http://bitsavers.org/pdf/ibm/1401/Programming_the_1401_1962.pdf - This book is a tutorial on 1401 programming and helps make sense of the 1401. I recommend starting with this if you want to write code.
- http://bitsavers.org/pdf/ibm/1401/A24-1403-1401_Reference_Apr62.pdf This reference explains all the instructions of the 1401. It includes some of the optional instructions not covered in the previous book.
- http://bitsavers.org/pdf/ibm/1401/C24-3319-0_Autocoder_on_Tape_Laguage_Specifications_and_Operating_Procedures_Nov64.pdff - This reference explains Autocoder and is helpful for understanding commands such as DCW and CTL.
A more exhaustive reference is available at:
The IBM 1401 compiles and runs FORTRAN II
The remarkable 63-pass/8k-memory compiler source listing and the article describing it is here:
Files of the FORTRAN II compiler tape and FORTRAN source code:
(Not uploaded yet)
The IBM 1401 runs Edith
IBM 1401 tribute to Apollo XI
The project consists of a simple program that reads two pages worth of text from punched cards and prints them on the printer. Several wrinkles are added to this:
1- The printer line is 132 character wide but the punch cards are only 80 character wide. So each original ASCII art lines are broken into two consecutive cards, one with the first 80 characters and one with the last 52 characters.
2- To facilitate printing a lot of copies without having to re-read the deck of cards each time, all the data cards are first read into core memory and printed once. The program then halts. Any further press on the START button will start another print, this time reading the data directly from core memory. This limits the printout to only two pages with our (maxed out) 16 kW core memory system!
3- A card containing -EOF- will cause the printer to jump to the next page before continuing printing the content of the next cards
4- A card containing -END- will cause the program to stop reading any further cards and start printing the content it loaded in memory.
ASCII data input cards decks:
Executable tape to punch the deck:
(note that this file uses Pierce A encoding to conform with our tape emulator convention)
IDE, Autocoder Compiler and IBM 1401 emulator to compile and run the project on a PC, Mac or Linux computer: