I misplaced my 1401 manuals years ago, and the last I worked on anything related to the 1401 was in 1967 hence everything on my website about the IBM 1401 is from memory. If you find errors I would be grateful for your help.
My "real IBM 1401" experience was in 1962 through 1963 and it is limited to 3 machines: Two at Reynolds Electric in Las Vegas which were installed in the late 1950's, and one at the Las Vegas telephone company which was bought and installed around May 1963. All three were card only 4K machines, although one of the older ones did have a 1405 RAMAC disk drive. I was hired by the phone company a few months before they got their 1401, more or less as a 1401 reference. So I studied the instructions pretty thoroughly, even to the extent of studying the schematics of the adder so I would be able to answer questions such as what result would occur if you added a comma to a letter, or visa versa.
When I left the telephone company and went to work for RCA in Cherry Hill, New Jersey early in January 1964 I took with me: a collection of my "play programs" and a copy of IBM's 1401 diagnostic programs. Little did I know RCA would a couple years later decide to emulate the IBM 1401. My experience and the diagnostics put me in a position to find lots of bugs in the RCA simulators and emulators; and run virtually all the test 1401 programs brought in by potential customers.
SPS is the only assembler I ever used for 1401 programming. Autocoder required tape drives, hence the only 1401 programming I did using tape drives was run on either a RCA 301 program that simulated the 1401, or a RCA emulator (on their Spectra-70 IBM 360 compatible machines.) At RCA we never had Autocoder. On the RCA emulators I ran my programs as well as test programs brought in by a lot of prospective customers. I don't remember any customers running Autocoder on our machines, but they may have. Most of their programs were run as a speed check to justify replacing existing 1401's. Because IBM's sort programs did not use read reverse, even on their 360, we could beat them every time. However, RCA never had a card reader/punch with the stacker select. The only non-IBM company that might have had that facility was Honeywell? Anyway, RCA's card reader, punch, and line printer were JUNK compared to IBM's--the world should be grateful that RCA computers are history today.
The 1401's Load Button effectively cleared the first 80 (or was it 100) characters of memory and read a card and set a word set wordmark in location 1, then branched to location 1. I think the set wordmark instruction did not have to have a word mark following it, but most if not all other instructions require it. The first 4 characters of any bootstrap card had to be: ,008 but technically the next three characters did not have to be 015 although they almost always were. (Consider the second instruction could have been a 4 character set wordmark or a branch.)
As I recall, you could set wordmarks in memory locations 1 through 80 and they would remain after a card was read. A "trick" I remember using was to not set workmarks, except at location 001, in the input area, and after each card was read I would check to see if there was a comma at 001 and if there were jump to it, when the program finished. This way, I could stack many jobs in the card reader and they would all run with no operator intervention.
As far instruction lengths. A lot of instructions could be much longer than 7 characters. I would no-op an instruction simply by removing its work mark, if it followed an instruction such as a 7 character add, subtract, move, or load. The op code and the two addresses would go into the appropriate registers and the rest would be ignored, then when a wordmark was finally encountered it would be executed using what was in the registers. Recently others have told me there was a hardware check for "invalid instruction length". Possibly they are right on later models of the 1401? Maybe the instruction length check came with larger memory?
| Go to: My Home Page |
![]() |
Go to: This page TOP |