The pseudo-registers are a number of auxiliary registers containing useful constants or the state of switches inside or outside the machine. They can be read from but it is not possible to write to them. They are referred to by the instructions 20-27, 66, 67 and 112 (see sections 3.2, 3.6 and 3.11) - these instructions take the same time as the corresponding instructions (00-07, 60, 61 and 110) for ordinary registers. Pseudo-registers are available to all programs impartially - they are not subject to lockout or reservation checking. The Y^{th} pseudo-register is referred to as PY, and its contents as pY.
The contents of even-numbered pseudo-registers from P0 to P18 are given below; for odd number registers p(2n+1) = ¬p(2n), i.e. the contents of each odd numbered pseudo-register is the inverse of the contents of the preceding even numbered register.
p0 = 0
p2 = Local civil time - see section 2.6.3 for details of the code.
p4 = Zero if overflow clear, all ones if overflow set.
Any instruction referring to p4 or p5
clears overflow.
p6 is as p4 except it is not cleared when used.
p8 = upper half word mask - i.e. 24 ones followed by 24 zeros.
p10 = -1.0 i.e. one followed by 47 zeros.
p12 = ½, i.e. a zero, a one followed by 46 zeros.
p14 = Mask for X address, i.e. 9 zeros, 15 ones, 24 zeros.
p16 = Mask for Z address, i.e. 26 zeros, 6 ones, 16 zeros.
p18 = Handswitches. The handswitches are a set of 48 keys which are provided for the use of the engineers; their use by programmers is not recommended except in very special circumstances - e.g. Pegasus simulator. It is the operator’s responsibility to ensure that only one program using the handswitches is in the machine at once.
At present pseudo-registers 20-31 inclusive contain zero for even numbers and all ones for odd numbers. Pseudo-register numbers above 31 are taken modulo 32, i.e. only the least significant five bits are decoded. Programmers are strongly recommended not to use either of these facts as they may be changed if it is decided to add further pseudo-registers to the machine.
The digital clock in Orion is a 24-hour clock in hours, minutes and seconds. It is stored in a one out of n code, i.e. in each field which has n possible values one and only one of n bits is a 1. In each case the m.s. bit of the field represents 0, the next 1, the next 2 and so on. The fields are as follows:
D0 | to | D2 | tens of hours |
D3 | to | D12 | hours |
D13 | to | D18 | tens of minutes |
D19 | to | D28 | minutes |
D29 | to | D34 | tens of seconds |
D35 | to | D44 | seconds |
D45 | to | D47 | not used (always zero) |
e.g. the time 17.08.23 is represented by 1-bits in digits:
1, 10, 13, 27, 31, 38
and 0-bits elsewhere.
Third Character | Fourth Character | |||||
(Twelves of Hours) | (Hours) | |||||
Value | Binary | Decimal | Value | Binary | Decimal | |
Code | Code | Code | Code | |||
0 | 000000 | 0 | 0 | 000000 | 0 | |
1 | 000001 | 1 | 1 | 000001 | 1 | |
2 | 000011 | 3 | ||||
3 | 000010 | 2 | ||||
4 | 000110 | 6 | ||||
5 | 000111 | 7 | ||||
6 | 001111 | 15 | ||||
7 | 001110 | 14 | ||||
8 | 001010 | 10 | ||||
9 | 001011 | 11 | ||||
10 | 001001 | 9 | ||||
11 | 001000 | 8 | ||||
0 | 001000 | 8 | ||||
1 | 001001 | 9 | ||||
2 | 001011 | 11 | ||||
3 | 001010 | 10 | ||||
4 | 001110 | 14 | ||||
5 | 001111 | 15 | ||||
6 | 000111 | 7 | ||||
7 | 000110 | 6 | ||||
8 | 000010 | 2 | ||||
9 | 000011 | 3 | ||||
10 | 000001 | 1 | ||||
11 | 000000 | 0 | ||||
Fifth Character | Sixth Character | |||||
(Tens of Minutes) | (Minutes) | |||||
Seventh Character | Eighth Character | |||||
(Tens of Seconds) | (Seconds) | |||||
Value | Binary | Decimal | Value | Binary | Decimal | |
Code | Code | Code | Code | |||
0 | 000000 | 0 | 0 | 000000 | 0 | |
1 | 000001 | 1 | 1 | 000001 | 1 | |
2 | 000011 | 3 | 2 | 000011 | 3 | |
3 | 000111 | 7 | 3 | 000111 | 7 | |
4 | 000101 | 5 | 4 | 000101 | 5 | |
5 | 000100 | 4 | 5 | 001101 | 13 | |
0 | 000100 | 4 | 6 | 001111 | 15 | |
1 | 000101 | 5 | 7 | 001011 | 11 | |
2 | 000111 | 7 | 8 | 001001 | 9 | |
3 | 000011 | 3 | 9 | 001000 | 8 | |
4 | 000001 | 1 | 0 | 001000 | 8 | |
5 | 000000 | 0 | 1 | 001001 | 9 | |
2 | 001011 | 11 | ||||
3 | 001111 | 15 | ||||
4 | 001101 | 13 | ||||
5 | 000101 | 5 | ||||
6 | 000111 | 7 | ||||
7 | 000011 | 3 | ||||
8 | 000001 | 1 | ||||
9 | 000000 | 0 |