Symbolic Assembly Program
   HOME

TheInfoList



OR:

The Symbolic Assembly Program (SAP) is an assembler program for the
IBM 704 The IBM 704 is a large digital mainframe computer introduced by IBM in 1954. It was the first mass-produced computer with hardware for floating-point arithmetic. The IBM 704 ''Manual of operation'' states: The type 704 Electronic Data-Pro ...
computer. It was written by
Roy Nutt Roy Nutt (October 20, 1930 – June 14, 1990) was an American businessman and computer pioneer. He was a co-creator of Fortran As corrected June 22, 1990. and co-founded Computer Sciences Corporation. Fortran Born in Marlborough, Massachuse ...
at
United Aircraft The United Aircraft Corporation was an American aircraft manufacturer formed by the break-up of United Aircraft and Transport Corporation in 1934. In 1975, the company became United Technologies. History Pre-1930s 1930s The Air Mail scandal ...
Corporation, and was distributed by the SHARE user's group beginning in 1956 as the ''Share Assembly Program''. SAP succeeded an earlier program called NYAP1 (New York Assembly Program 1), which it closely resembled, and became the standard assembler for 704 users. It "set the external form of an assembly language that was to be a model for all its successors and which persists almost unchanged to the present day." DARSIMCO, short for Dartmouth Simplified Code, was a simple
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
written by John Kemeny (who later co-developed
BASIC BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
) in 1956 that expanded simple mathematical operations into a program that would then be assembled by SAP.


Description

SAP is a
two-pass assembler In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
. It is capable of running on a 704 with a minimum of 4 K 36-bit words of core storage. This configuration allows up to 1097 entries in the
symbol table In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier (or symbols), constants, procedures and functions in a program's source code is associated with info ...
. Additional core memory beyond 4 KW can be used to allow for additional symbol table entries. Input and output for SAP are via
punched card A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to di ...
s or
card image Card image is a traditional term for a character string, usually 80 characters in length, that was, or could be, contained on a single punched card. IBM cards were 80 characters in length. UNIVAC cards were 90 characters in length. Card image files ...
s on tape. Input is in fixed format.


Input format


Output format

Output consists of absolute or relocatable punched cards or card images. The output is binary data in the twelve card rows 12, 11, and 0–9. Each row contains two 36-bit words in columns 1-36 and 37-72, indicated as left (L) and right (R) respectively. Data is conventionally numbered by row and position, for example, columns 1 to 36 of row 9 are designated 9L, columns 37 to 72 of the same row are 9R. Within a word the bits are designated, from left to right as S (sign bit) and 1-35, thus bit position 13 of the left word in row 6 is designated 6L13. Word 9L of each card is a control word, and 9R is an optional
checksum A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify data ...
. The control word contains bits indicating, for example, whether the data on the card is absolute or relocatable, whether or not a checksum is present, the absolute or nominal location of data on this card, and a count of the number of words of data contained on this card.


References


External links


Source and documentation at IBM 704 software archive
1950s software Free software Discontinued programming languages Programming languages created in 1956 IBM 700/7000 series {{free-software-stub