Symbolic Assembly Program

Last updated

The Symbolic Assembly Program (SAP) is an assembler program for the IBM 704 computer. It was written by Roy Nutt at United Aircraft 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, [1] and became the standard assembler for 704 users. [2] 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." [3]

Contents

DARSIMCO, short for Dartmouth Simplified Code, was a simple programming language written by John Kemeny (who later co-developed BASIC) in 1956 that expanded simple mathematical operations into a program that would then be assembled by SAP.

Description

SAP is a two-pass assembler. 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. Additional core memory beyond 4 KW can be used to allow for additional symbol table entries. [4]

Input and output for SAP are via punched cards or card images on tape. Input is in fixed format. [2]

Input format

Card columnsDescription
1-6label or blank
7blank
8-10operation code (3 characters) or blank
11blank
12-72variable field
73-80not used by the assembler. May contain identification and sequence information

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. 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. [5]

Related Research Articles

<span class="mw-page-title-main">Fortran</span> General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

<span class="mw-page-title-main">Punched card</span> Paper-based recording medium

A punched card is a piece of card stock that stores digital data using punched holes. Punched cards were once common in data processing and the control of automated machines.

<span class="mw-page-title-main">IBM 704</span> Vacuum-tube computer system

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-Processing Machine is a large-scale, high-speed electronic calculator controlled by an internally stored program of the single address type.

<span class="mw-page-title-main">IBM 650</span> Vacuum tube computer system

The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer produced by IBM in the mid-1950s. It was the first mass produced computer in the world. Almost 2,000 systems were produced, the last in 1962, and it was the first computer to make a meaningful profit. The first one was installed in late 1954 and it was the most-popular computer of the 1950s.

<span class="mw-page-title-main">IBM 7090</span> Mainframe computer

The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 series scientific computers. The first 7090 installation was in December 1959. In 1960, a typical system sold for $2.9 million or could be rented for $63,500 a month.

<span class="mw-page-title-main">UNIVAC 1103</span> Computer

The UNIVAC 1103 or ERA 1103, a successor to the UNIVAC 1101, was a computer system designed by Engineering Research Associates and built by the Remington Rand corporation in October 1953. It was the first computer for which Seymour Cray was credited with design work.

<span class="mw-page-title-main">IBM 709</span> Vacuum tube computer system

The IBM 709 was a computer system, initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific computers. The improvements included overlapped input/output, indirect addressing, and three "convert" instructions which provided support for decimal arithmetic, leading zero suppression, and several other operations. The 709 had 32,768 words of 36-bit magnetic core memory and could execute 42,000 add or subtract instructions per second. It could multiply two 36-bit integers at a rate of 5000 per second.

<span class="mw-page-title-main">IBM 700/7000 series</span> Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

<span class="mw-page-title-main">IBM 1130</span> 16-bit IBM minicomputer introduced in 1965

The IBM 1130 Computing System, introduced in 1965, was IBM's least expensive computer at that time. A binary 16-bit machine, it was marketed to price-sensitive, computing-intensive technical markets, like education and engineering, succeeding the decimal IBM 1620 in that market segment. Typical installations included a 1 megabyte disk drive that stored the operating system, compilers and object programs, with program source generated and maintained on punched cards. Fortran was the most common programming language used, but several others, including APL, were available.

<span class="mw-page-title-main">English Electric DEUCE</span>

The DEUCE was one of the earliest British commercially available computers, built by English Electric from 1955. It was the production version of the Pilot ACE, itself a cut-down version of Alan Turing's ACE.

In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits in a word is an important characteristic of any specific processor design or computer architecture.

In computer programming, the block starting symbol is the portion of an object file, executable, or assembly language code that contains statically allocated variables that are declared but have not been assigned a value yet. It is often referred to as the "bss section" or "bss segment".

<span class="mw-page-title-main">IBM 7070</span> Decimal computer introduced by IBM in 1958

IBM 7070 is a decimal-architecture intermediate data-processing system that was introduced by IBM in 1958. It was part of the IBM 700/7000 series, and was based on discrete transistors rather than the vacuum tubes of the 1950s. It was the company's first transistorized stored-program computer.

Intel hexadecimal object file format, Intel hex format or Intellec Hex is a file format that conveys binary information in ASCII text form, making it possible to store on non-binary media such as paper tape, punch cards, etc., to display on text terminals or be printed on line-oriented printers. The format is commonly used for programming microcontrollers, EPROMs, and other types of programmable logic devices and hardware emulators. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a object or executable file in hexadecimal format. In some applications, the Intel hex format is also used as a container format holding packets of stream data. Common file extensions used for the resulting files are .HEX or .H86. The HEX file is then read by a programmer to write the machine code into a PROM or is transferred to the target system for loading and execution. There are various tools to convert files between hexadecimal and binary format, and vice versa.

The IBM Basic assembly language and successors is a series of assembly languages and assemblers made for the IBM System/360 mainframe system and its successors through the IBM Z.

A six-bit character code is a character encoding designed for use on computers with word lengths a multiple of 6. Six bits can only encode 64 distinct characters, so these codes generally include only the upper-case letters, the numerals, some punctuation characters, and sometimes control characters. The 7-track magnetic tape format was developed to store data in such codes, along with an additional parity bit.

BESYS was an early computing environment originally implemented as a batch processing operating system in 1957 at Bell Labs for the IBM 704 computer.

<span class="mw-page-title-main">Punched card input/output</span> Computer peripheral device

A computer punched card reader or just computer card reader is a computer input device used to read computer programs in either source or executable form and data from punched cards. A computer card punch is a computer output device that punches holes in cards. Sometimes computer punch card readers were combined with computer card punches and, later, other devices to form multifunction machines.

ARGUS, an acronym for Automatic Routine Generating and Updating System, was an Assembly Language devised in the late 1950s by Honeywell for their Honeywell 800 and 1800 computers.

BCD, also called alphanumeric BCD, alphameric BCD, BCD Interchange Code, or BCDIC, is a family of representations of numerals, uppercase Latin letters, and some special and control characters as six-bit character codes.

References

  1. Orchard-Hays, William. "Adaptability of the Linear Programming Codes" (PDF). Defense Technical Information Center. Archived from the original (PDF) on May 31, 2019. Retrieved May 31, 2019.
  2. 1 2 Helwig, F.; et al. "CODING for the MIT-IBM 704 COMPUTER" (PDF). bitsavers.org. Retrieved Apr 8, 2018.
  3. Padua, David A. "CS321: I. Programming Languages" (PDF). Polaris Research Group. Retrieved May 31, 2019.
  4. Nutt, Roy. "United Aircraft Corporation SHARE Assembler" . Retrieved Apr 9, 2018.
  5. Zurlinden, Donald H. "IBM MODEL-704 GUIDEBOOK" (PDF). eScholarship.org. Lawrence Berkeley National Laboratory. Retrieved May 31, 2019.