COMPASS (tokamak)
   HOME

TheInfoList



OR:

COMPASS, ''COMP''rehensive ''ASS''embler, is any of a family of macro
assembly language 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 ...
s for
Control Data Corporation Control Data Corporation (CDC) was a mainframe and supercomputer company that in the 1960s was one of the nine major U.S. computer companies, which group included IBM, the Burroughs Corporation, and the Digital Equipment Corporation (DEC), the N ...
's 3000 series, and for the 60-bit
CDC 6000 series The CDC 6000 series is a discontinued family of mainframe computers manufactured by Control Data Corporation in the 1960s. It consisted of the CDC 6200, CDC 6300, #Versions, CDC 6400, #Versions, CDC 6500, CDC 6600 and #Versions, CDC 6700 computers, ...
, 7600 and Cyber 70 and 170 series
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
s. While the architectures are very different, the macro and conditional assembly facilities are similar.


COMPASS for 60-bit machines

There are two ''flavors'' of COMPASS on the 60-bit machines: * COMPASS CP is the assembly language for the CP (Central Processor), the processor running user programs. See CDC 6600 CP architecture. * COMPASS PP is the assembly language for the PP (Peripheral Processor), only running
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
code. See CDC 6600 PP architecture. COMPASS is a classical
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 ...
with macro and conditional assembly features, and generates a full listing showing both the source assembly code and the generated
machine code In computer programming, machine code is computer code consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). For conventional binary computers, machine code is the binaryOn nonb ...
(in
octal Octal (base 8) is a numeral system with eight as the base. In the decimal system, each place is a power of ten. For example: : \mathbf_ = \mathbf \times 10^1 + \mathbf \times 10^0 In the octal system, each place is a power of eight. For ex ...
). CDC's
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
s were written almost entirely in COMPASS assembly language. Central processor (CP or CPU) hardware maintains 24 operational registers, named A0 to A7, X0 to X7 and B0 to B7. Registers X0 to X7 are 60 bits long and are used to hold data, while registers B0 to B7 are 18 bits long and their major purpose is to hold either
addresses An address is a collection of information, presented in a mostly fixed format, used to give the location of a building, apartment, or other structure or a plot of land, generally using border, political boundaries and street names as references, ...
or be used as indexing registers, except that B0 is always zero. As a programming convention, B1 (or B7) often contains positive 1. A or address registers are also 18 bits long. Each A register pairs with the corresponding X register. Whenever an address is set into any of A1 to A5 registers, the data at that memory location (address) is loaded into the corresponding X register. Likewise, setting an address into one of A6 or A7 registers stores the data held in the corresponding X6 or X7 register to that memory location. However, A0 can be used to hold any address without affecting the contents of register X0. CP instructions are written in a particularly user-friendly form: "SA1 A0+B1" denotes ''set address register A1 to the sum of address register A0 and index register B1''. The hardware then initiates a memory load from the computed address into register X1. Peripheral processor (PP or PPU) instructions are completely different from CPU instructions. Peripheral processor hardware is simpler; it has an 18-bit A ( accumulator register, a 12-bit Program Address register, a 12-bit Q register (not programmer-visible), and a 22-bit R register (used to accomplish address relocation during central memory read and write instructions on Cyber 180 systems). No special job validation was required to assemble peripheral processor programs, but to be executed, such programs were required to installed into the operating system via special system editing commands.


Further reading

* "Assembly Language Programming for the Control Data 6000 Series" by Ralph Grishman, Algorithmics Press, 1972.cited in http://cholla.mmto.org/computers/firstcdc.html


References


External links


COMPASS for 24-bit systems CDC3100, 3200, 3300, and 3500COMPASS for CDC3600 48-bit systemCOMPASS for CDC6000 and 7000 60-bit systemsCOMPASS version 3 for CDC CYBER systems
{{Control Data Corporation Assembly languages Control Data Corporation mainframe software