IBM 1401 Symbolic Programming System: Difference between revisions

Content deleted Content added
No edit summary
m Fix link to Coumbia's 1401 history page
 
(34 intermediate revisions by 22 users not shown)
Line 1:
{{about|The IBM 1401 Symbolic Programming System | The IBM 1620 Symbolic Programming System | IBM 1620#Software}}
The IBM Symbolic Programming System (SPS) [[assembly language#Assembler|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."<ref>[http://www.columbia.edu/acis/history/1401.html 1401 History]</ref>. As the 1400 series matured it [http://ed-thelen.org/comp-hist/ibm-1401.html aquired additonal memory] (first to 4000, then to 16000 characters from the initial 1400 characters) and SPS evolved into<ref>[http://web.archive.org/web/20031215144652/os390-mvs.hypermart.net/mvs360.htm MVS... And Before OS/360?]</ref> the "[[Autocoder]]" language supported by the later 1401's.
{{more footnotes|date=May 2017}}
{{one source |date=April 2024}}
The '''IBM 1401 Symbolic Programming System''' ('''SPS''') was an [[assembly language#Assembler|assembler]] that was developed by [[Gary Mokotoff]], IBM Applied Programming Department, 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."<ref>[https://www.columbia.edu/cu/computinghistory/1401.html 1401 History]</ref>
 
SPS-1 could run on a low-end machine with 1.4K memory, SPS-2 required at least 4K memory.
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].
 
:SPS-1 punched one card for each input instruction in its first pass and this deck had to be read during pass 2. At the University of Chicago and many other locations, SPS-1 was replaced by assemblers taking advantage of the commonly available 4K memory configuration to pack the output of pass one into several instructions per card. Other assemblers were written which placed the pass one output into memory for small programs.
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.
 
As the 1400 series matured additional assemblers, programming languages and report generators became available, replacing SPS in most sites.
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.
 
==See also==
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.
* [[Autocoder]]
 
* [[FARGO (programming language)]]
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==
Line 19 ⟶ 18:
 
==External links==
*[https://web.archive.org/web/20100711134752/http://bitsavers.org/pdf/ibm/140x/C24-1480-0_1401symbPgmSys.pdf IBM 1401 Symbolic Programming Systems: SPS-1 and SPS-2, C20-1480-0]
*"''[http://www.multicians.org/thvv/1401s.html 1401s I have known]''" by [[Tom Van Vleck]] includes a description of an operating environment including both early,1401 SPS, and later Autocoder 1401 machines.
*An Encyclopedia of Computer Languages article entitled "[http://hopl.murdoch.edu.au/showlanguage2.prx?exp=3872 Autocoder III]" preserves information from the 1961 announcement of Autocoder programming capabilities for the expanded, 4,000 positions of core memory, IBM 1401.
*{{Citation|title=Gary Mokotoff Collection of IBM 1401 Program Listings, 1959-1961|url=http://discover.lib.umn.edu/cgi/f/findaid/findaid-idx?c=umfa;cc=umfa;rgn=main;view=text;didno=cbi00093}}
 
{{DEFAULTSORT:Ibm 1401 Symbolic Programming System}}
[[Category:Assembly languages]]
[[Category:IBM software|1401 Symbolic Programming System]]
 
 
{{compu-lang-stub}}
 
[[Category:Assembly languages]]
[[Category:IBM software]]