Everything about Compass totally explained
COMPASS is an
acronym for
COMPrehensive ASSembler. COMPASS is a macro
assembly language on
Control Data Corporation's
3000 series, and on the 60-bit
CDC 6000 series,
7600 and
Cyber 70 and 170 series mainframe computers.
There are two
flavors of COMPASS on the 60-bit machines:
COMPASS is a classical two-pass assembler with
macro and conditional assembly features, and generates a full listing showing both the source assembly code and the generated
machine code (in
octal). CDC's
operating systems were written almost entirely in COMPASS assembly language.
Central processor (CP or CPU)
hardware maintains 24 operational
registers, namely 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 or be used as
indexing registers, with the exception of B0 that's hardwarewise set to zero. Often as a programming convention, B1 (or B7) contains positive 1.
A or
address registers are also 18 bits long and they've a special way of use in the sense that they form pairs with their corresponding X registers, except A0 that's independent of X0 and vice versa. Whenever an address is set into any of A1 to A5 registers, the data at that memory location (address) is transferred into the corresponding X register. Likewise, when an address set into one of A6 or A7 registers has the effect of storing the data hold from 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.
Example code
This
COMPASS sample code displays the
calendar of the year given as a parameter on the
terminal. If no parameter is given, then the calendar of the current year is displayed.
Further Information
Get more info on 'Compass'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://compass.totallyexplained.com">COMPASS Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |