IBM 1401 Symbolic Programming System
The IBM Symbolic Programming System (SPS) assembler was developed by IBM field engineers as an alternative to the use of machine code for the IBM 1401 computer, the first of the IBM 1400 series. One source indicates that "This programming system was announced by IBM with the machine."[1]. As the 1400 series matured it aquired additonal memory (first to 4000, then to 16000 characters from the initial 1400 characters) and SPS evolved into[2] the "Autocoder" language supported by the later 1401's.
Both Autocoder and SPS were assembly languages using mnemonics as a substitute for programming directly in machine language. As such they were among the earliest non machine language programming tools. An example of the 1401 mnemonic operation codes is preserved at 1401.org.
Even as an assembler language, 1401 SPS was primitive, restricted to substituting machine operation codes for short mnemonic codes and resolving symbols to machine addresses. Features supported by more powerful contemporary assemblers that were missing in 1401 SPS included free-form layout of statement components, the ability to write literal values, and any form of macro facility.
In SPS, the statement label had to start at column one of the coding form and punched card, the opcode at column 7, and so on; labels were restricted to 6 characters.
The SPS assembler was distributed for free and "bundled" with the cost of the hardware was nonetheless large and rather clumsy; it did not assemble beyond 4K of instructions and data even on systems where extra memory was available; also, this assembler actually punched one instruction per card as the output deck, resulting in a massive waste of paper and even trees, since acceptable punched cards were made from "virgin" lumber at the time.
All usable assemblers did take responsibility for generating initial "bootstrap loader" code that would take responsibility for formatting the code region of memory and reading the remainder of the program into memory. This was necessary because the 1401 had no operating system whatsoever beyond optional "tape OS" and "disk OS" software.
More elegant and smaller assemblers for SPS were written at a number of shops. One of the best was written at the University of Chicago, which overcame the storage restriction and filled each card of the output deck with as many instructions as would fit.
A different assembler having the same name was used on the IBM 1620, the inexpensive scientific computer released in the same period as the 1401.
References
External links
- "1401s I have known" by Tom Van Vleck includes a description of an operating environment including both early, SPS, and later Autocoder 1401 machines.
- An Encyclopedia of Computer Languages article entitled "Autocoder III" preserves information from the 1961 announcement of Autocoder programming capabilities for the expanded, 4,000 positions of core memory, IBM 1401.