Section 2.1

The Working Store


The Working store, or core store, is a ferrite-core matrix with a capacity of between 8192 and 32768 words. Its cycle time is 12 microsecs, which determines the maximum average rate of use of the store. It is made up of registers, each holding one word of 48 bits. A 49th bit is attached to each register to provide a parity-check; the parity of each word is calculated and stored with the word in the store and is automatically checked whenever the word is used as an operand or whenever it is overwritten, unless this overwriting is caused by a 143-instruction or a peripheral reading transfer. The parity-bit is not accessible to instructions. The registers making up the working store have machine addresses which are the integers from 0 to M-1, where M is the capacity of the store. The register with machine address 0 always contains zero; the other registers can be used to hold any word. Information in the working store is volatile: it disappears if the computer is switched off.


Each program (or, strictly, job) has its own part of the working store, called its reserved region. This region is made up of consecutively-numbered registers starting at a register whose machine address is called the datum-point of the job. This datum-point must be a multiple of 64 and is allocated to the job by the Monitor Program immediately prior to input. Within the reserved region the addresses of the registers are denoted by A0, A1, A2, etc., which are called basic addresses. The machine address of a register can be found from its basic address by adding the datum-point to the numerical part of the basic address. (The letter A which introduces a basic address can be regarded as indicating that the datum-point has to be added - it can also be thought of as indicating an Address, since machine addresses are not normally considered.) The actual register denoted by a particular basic address will depend on the job (or program) using it.


The registers with basic addresses A0, A1, ..., A63 are called the accumulators of the job or program under discussion. Registers which are not accumulators (but which are within the reserved region) are sometimes called ordinary registers. The accumulator A0 always contains zero, and this register may not be written into (an attempt to do so is treated as a reservation-violation).  (A0 is in fact cleared by the Monitor Program before the object program is entered.)  The other accumulators are often used as working space for the job, the ordinary registers are normally used to hold program (starting traditionally at A64) and data and for extended working space - but these roles can be interchanged if necessary because the only distinction between accumulators and ordinary registers is that Z-addresses in instructions cannot refer to ordinary registers. It is thus quite legitimate to obey instructions from the accumulators.

Orion 2.  The information in this section refers in general both to Orion 1 and Orion 2. Described here are the differences to be noted when reading these sections for Orion 2.

Section, 2.1.1. Orion 2 has a minimum of 16 K core-store and cycle time is 2 microseconds.  Parity is checked with 143 instruction and peripheral transfers.