HOME

TheInfoList



OR:

The Symbolic Assembly Program (SAP) is an assembler program for the
IBM 704 The IBM 704 is the model name of a large digital computer, digital mainframe computer introduced by IBM in 1954. Designed by John Backus and Gene Amdahl, it was the first mass-produced computer with hardware for floating-point arithmetic. The I ...
computer. It was written by Roy Nutt 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, which in 2020 merged with Raytheon to form Rayt ...
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 DARSIMCO, short for Dartmouth Simplified Code, was a simple programming language written by John Kemeny in 1956 that expanded simple mathematical operations into IBM 704 assembly language (Share Assembly Language, SAL). It was an attempt to simp ...
, short for Dartmouth Simplified Code, was a simple
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
written by John Kemeny (who later co-developed
BASIC Basic or BASIC may refer to: Science and technology * BASIC, a computer programming language * Basic (chemistry), having the properties of a base * Basic access authentication, in HTTP Entertainment * Basic (film), ''Basic'' (film), a 2003 film ...
) 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 computing, assembly language (alternatively 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 bet ...
. 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, symbol, constant, procedure and function in a program's source code is associated with information ...
. 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 stiff paper-based medium used to store digital information via the presence or absence of holes in predefined positions. Developed over the 18th to 20th centuries, punched cards were widel ...
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 file ...
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 dat ...
. 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 and open-source software Discontinued programming languages Programming languages created in 1956 IBM 700/7000 series {{free-software-stub