IBM 1401 Symbolic Programming System: Difference between revisions

Content deleted Content added
No edit summary
Undid revision 177641612 by 202.82.33.202 (talk)
Line 2:
 
Both Autocoder and SPS were [[assembly language]]s using [[mnemonic]]s as a substitute for programming directly in [[machine code|machine language]]. As such they were among the earliest non machine language programming tools. An [http://1401.org/op-codes/ example] of the 1401 mnemonic operation codes is preserved at [http://1401.org/ 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.