Autocoder: Difference between revisions

Content deleted Content added
add note on SPS and delete lots of extraneous material more related to 1401 hardware than to Autocoder
Line 6:
The term ''autocoder'' needs to be distinguished from ''[[autocode]]'', a term of the same era which was used in the [[UK]] for languages of a higher level. Both terms derive from the phrase ''[[automatic programming|automatic coding]]'', which referred generally to programs which eased the burden of producing the numeric [[machine language]] codes of programs.<ref>Hopper 1955.</ref> ("Autocoding" is seen occasionally, and can refer to any kind of programming system.) In some circles "autocoder" could be used in a rather generic way to refer to what is now called a macro-assembler.<ref>For an example see Allen 1981, p. 540.</ref>
 
The first Autocoders were released in 1955 for the [[IBM 702]],<ref>{{cite book |title=Catalog of Copyright Entries. Third Series: 1956 |date=1957 |publisher=Copyright Office, Library of Congress |page=305 |url=https://books.google.com/books?id=qxshAQAAIAAJ&pg=PA305 |accessdate=Aug 23, 2019}}</ref> and in 1956 for the almost compatible [[IBM 705]].<ref>{{cite manual
| title = 705 autocoder system - manual of information
| series = IBM Systems Reference Library
Line 103:
| mode = cs2
}}
</ref> is that of the [[IBM 1401]], undoubtedly due in part to the general success of that series of machines. Autocoder was the primary language of this computer, and its macro capabilities supported use of the [[Input/Output Control System]] which eased the programming burden.<ref>[http://archive.computerhistory.org/resources/text/IBM/IBM.1440.1962.102646251.pdf]; Solomon 1993, p. 8; {{cite web|url=http://hopl.murdoch.edu.au/showlanguage2.prx?exp%3D3872 |title=Archived copy |accessdate=2007-03-18 |deadurl=yes |archiveurl=https://web.archive.org/web/20070917100201/http://hopl.murdoch.edu.au/showlanguage2.prx?exp=3872 |archivedate=2007-09-17 |df= }}.</ref> Another assembler, [[Symbolic Programming System]] (SPS), was the assembler offered when the [[IBM 1401]] originally was announced as a punched-card-only computer. SPS had differen mnemonics (often different) butand a different fixed input format. It lacked Autocoder's features and was generally used only on machines that lacked tape drives (punched-card only).<ref>[http://ed-thelen.org/comp-hist/ibm-1401.html], [http://www.multicians.org/thvv/1401s.html].</ref> A copy of the source programs for SPS-1, SPS-2 and Autocoder was donated to the Charles Babbage Institute, University of Minnesota, by [[Gary Mokotoff]], author of SPS and coauthor of Autocoder.<ref>{{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}}</ref>
 
Like all 1401 programs, Autocoder was stored in character form on punched cards, magnetic disks or magnetic tape.
Like all 1401 programs, Autocoder was stored in character form on punched cards, magnetic disks or magnetic tape. When the cards were inserted into the card reader, pressing the Run button on the computer (a floor-standing unit; the card reader/punch was a peripheral, and there was neither keyboard or monitor) the contents of the first 80-character card were read into memory locations 0-79, and the instruction at address 0 was executed, thus beginning the [[bootstrap loader]]. Autocoder took human-intelligible symbols (such as "H" to indicate "halt")<ref>{{cite book
|title=System Operation Reference Manual - IBM 1401 Data Processing System - IBM 1460 Data Processing System
|series=IBM Systems Reference Library
|id=A24-3067-2
| edition = Third
| url= http://bitsavers.org/pdf/ibm/1401/A24-3067-2_1401_1460_System_Operation_Reference_Manual_Sep66.pdf
|publisher=IBM Corporation
|page=B-19 |date=September 1966
| format = PDF
| mode = cs2
}}</ref>
and transformed them into the instructions the machine recognized. It supported [[conditional branching]], named [[subroutines]], counting [[iterations]], and what IBM called its [[Advanced Programming Feature]], an optional feature involving three separate bytes between ___location 80 and 90. (Since memory locations 0-79 were reserved for the card reader, 100-179 for the card punch, which punched a card with the data in these locations when the "punch" command was issued, and 200-279 for the (single) printer, locations 80-99 were orphans and available for other purposes that only needed a few bytes.)
 
At that time the primary storage media was half-inch magnetic tape read and written on drives the size of refrigerators. There were no named files, a concept still in the future.
 
The 1401 was available in six memory configurations, with 1400, 2000, 4000, 8000, 12000, or 16000 six-bit characters. The 8000-character model was the minimum needed to run Autocoder; a character file (on punched cards or magnetic tape) could be produced on an 8000-character model which could then be run on a 4000-character machine.