Jump Over Left Menu
ABL: APPENDICES
Appendix A References
| CS 271 | Mercury Orion Atlas Autocode |
| CS 294A | Operating Instructions for the Teletype Punch |
| CS 294A | Punched Tape Codes |
| CS 298A | Atlas Magnetic Tape |
| CS 308B | Punched Tape Codes (5- and 7-track) |
| CS 309A | Extracode Functions |
| CS 318B | Making a Fortran II Program suitable for use with the Atlas Fortran Compiler. |
| CS 339 | Operating Instructions for the Model 'B' Flexowriter |
| CS 345 | List of Atlas Basic Instructions |
| CS 349A | Atlas Programming Exercises |
| CS 360 | Telex Data Links |
| CS 361 | Keyboard used with Ferranti Computers |
| CS 362 | Operator's Conventions for Punched Tapes |
| CS 363 | Specifications of Paper for Punched Tapes |
| CS 364 | Specifications of Dimensions for Punched Tapes |
| CS 365 | Creed Teleprinter with Integral Tape Reader and Punch |
| CS 366 | Model 'S' Flexowriter |
| CS 367 | Creed Keyboard Punch for 7-track tapes |
| CS 368 | Creed Verifier for 7-track tapes |
| CS 377 | Algol 60 Report |
| CS 378A | Reference manual for Atlas Algol (provisional) |
| CS 379A | A primer of Algol 60 for Atlas |
| CS 384 | Summarised programming information |
| CS 390 | Primer of Fortran Programming |
| CS 401 | The Analysis of Plane Structural Frames |
| CS 402/5052 | Extended Mercury Autocode for Orion and Atlas |
| CS 405/5055 | Traffic Assignment |
| CS 411 | The Atlas 1 Computer System Operators' Manual |
| CS 428 | Atlas user's description of the L.P. input scheme |
| R 40 | An Assembly programme for a Phrase-Structure Language |
| R 55 | The Manchester University Atlas operating system and Users' description. |
| R 58 | The Atlas supervisor |
| R 67 | One-level storage system |
| R 68 | The Atlas scheduling system |
| R 70 | Processing commer~ial data on Atlas |
| R 74 | Central Control Unit of the Atlas Computer |
| R 76 | The Compiler Compiler |
Appendix B: Notation
Most symbols are used with two completely different meanings. The interpretation to be given to a symbol depends on its context. A convenient division is whether it is used in describing the arithmetic or the basic language, so the notation is listed under these two headings.
1. ARITHMETIC
Lower-case letters are used for suffices and for the content of a location, the location being in upper-case letters. The result of an operation is denoted by a prime. Thus, s is the content of address S, and am' = am + s means the content of Am after the operation is equal to the content before plus the content of S.
(a) Suffices
- x
- the argument of the prefixed location
- y
- the exponent of the prefixed location
- :
- two consecutive registers, starting with the one suffixed
- *
- the register following that suffixed
(b) Accumulator
- A
- the full double-length accumulator, holding ax
79-bit mantissa ax and 8-bit exponent ay - al
- the 48-bit floating-point number formed from l, ls and ay
- am
- the 48-bit floating-point number formed from m and ay
- aq
- the single-length number which is obtained by standardising, rounding and truncating the contents of the accumulator
- L
- the less-significant half of Ax, of 39 bits with no sign
- Ls
- the sign bit associated with L
- M
- the more-significant half of Ax, of 40 bits, the most-significant bit being the sign digit
- AO
- accumulator overflow
- DO
- division overflow
- E or EO
- exponent overflow
- Q
- standardised
- R
- rounded, by forcing a 1 in the least-significant digit of M if L is not clear
- TR+
- rounded, by adding a 1 to the least-significant digit of M if the most-significant bit of L is a 1
(c) General
- B
- any B-register (index register)
- Ba
- the B-register specified by the Ba digits of an instruction
- Bc
- the B-carry digit
- Bm
- the B-register specified by the Bm digits of an instruction
- Bt
- the B-test register
- C
- the main control register (B127)
- C()
- the contents of the location specified within the brackets
- E
- the extracode control register (B126)
- F
- the function digits of an instruction
- G
- the logical accumulator (B98 and B99)
- I
- the interrupt control register (B125)
- N
- the unmodified address part of an instruction (a 24-bit number with the point one octal place from the least-significant end).
- n
- the modified address part of an instruction regarded as a 24-bit number with the point one octal place from the least-significant end
- S
- the address of a store location. A full-word address in accumulator instructions (digits 21-23 ignored), a half-word address in B-register instructions (digits 22 and 23 ignored), or a 6-bit character address (all digits relevant)
- V
- the V-store
- B
- register a of the V-store
- B
- signifies extracodes suitable for fixed-point working
2. BASIC LANGUAGE
In practice no distinction is made between capital and small letters, t hough capitals are used here. However, as an aid to clarity, it is sometimes advantageous to use lower case letters for the separators m, n, v, x and q. Small Greek letters α, β, are used for 21-bit decimal integers, k for the octal number in the 3 least-significant digits of a 24-bit address, and Ï for a general octal nunber of up to 8 octal digits.
- Aα
- Parameter α, (0 ≤ α ≤ 3999), of the current routine
- B
- An operator in an expression, causing bits 12-23 of the previous element to be set to zero i.e. it gives a "Block Address"
- C
- Introduces a string of characters on the next line which are translated into internal code and placed in successive character positions
- Dα
- An operator, causing the previous element to be logically shifted down α places
- E
- The enter directive, causes the compiler to evaluate any used parameters etc., insert library routines, delete the compiler and enter the program
- ER
- As E but the compiler is not deleted and may be used again
- EX
- The enter interlude directive, to enter a short program for any reason during the compiling process
- F
- Introduces one or more floating-point numbers on a line, after some expressions otherwise interpreted. Also, if necessary, increases * to the next full-word address
- Gα
- Global Parameter α (0 ≤ α ≤ 3999)
- H
- Subsequent expressions on a line are interpreted as 24-bit words and, if necessary, * is increased to the next half-word address
- Jσ
- σ is octally justified to the left, i.e. the most significant digit goes into bits 0-2, the next into 3-5 etc.
- Kσ
- σ is octally justified to the right, to bit 20, i.e. the least-significant digit goes into bits 18-20, the next into 15-17 etc.
- Kσ.k
- As Kσ, with k going into bits 21-23
- Lα.k
- Library routine number α, copy k. (.k is omitted if only one copy of the routine is wanted) ( α = 1 to 1999, k = 1 to 1999 )
- M
- Alternative to &
- N
- A separator which non-equivalences the element before it with the element after it in an expression
- Pα
- Preset parameter α (0 ≤ α ≤ 99 normally)
- Q
- A separator in an expression which divides the element before it by the element after it, placing the result in digits 0-20
- Rα
- A directive defining the beginning of routine α (0 ≤ α ≤ 3999)
- S
- Expressions after the directive S are interpreted as 6-bit characters, i.e. only bits 15-20 of the expression are used
- Tα or Tα-β
- The title is copied to output channel α or channels α to β inclusive
- Uα
- An operator causing the previous element to be logically shifted up α places
- Uα or Uα-β
- Unset preset parameter α, or α to β inclusive
- V
- A separator in an expression. The element befor it is OR-ed with the element after it
- W
- An operator in an expression, causing bits 0-11 of the previous element to be set to zero, i.e. it gives an address within a block
- X
- A separator. The element before it is multiplied by the element after it
- Yα
- α is placed in bits 0-23 (instead of bits 0-20)
- Z
- A directive indicating the end of a routine
- *
- The address of the first character position in the location where the item is placed. If used in an expression on the right-hand side of a directive then * is the address of the next character position
- |
- All subsequent characters up to NL are ignored (| is not a terminator)
- £,π
- Alternatives to |
- [ ]
- All characters between square brackets are ignored. Bracket nesting to any level is allowed
- ,
- Alternative to multiple space as a terminator
- &
- A separator which logically ANDs the element before it with the element after
- :
-
a special separator used in
- an element α : β. α modulo 212 goes to bits 0-11 and β modulo 221 to bits 0-20, added to α
- a floating-point number N (α : β) : γ where the value of the number is N x 10α × 8β and the exponent is forced to γ or standardised if γ is omitted
- /
-
- in a parameter, / separates the parameter number and routine number
- an alternative to :
- ' (prime)
- an operator which forms the logical binary complement i.e. it replaces 1's by 0's and 0's by 1's
- ?
-
- in the context A α ? = expression, A α is only set to the given expression if no other definite setting of A occurs before the porogram is entered. Similarly for G α ? = expression
- in the context P α ? = expression, P α is set equal to the given expression unless P α is already set, in which case the directive is ignored
- in the context ? expression, causes the compiler to ignore the remainder of the line if the value of the expression is zero.
Appendix C: V-Store Addresses of Peripherals
Each peripheral is allocated one or more words in a part of the V-store associated with its particular type of equipment.
A V-store address is identified by having 6 as its most significant octal digit; furthermore, since only the more significant half-words are used, the least-significant octal digit of the address is always zero.
That part of the V-store associated with the peripherals is the first 256 words of the block beginning with J6004.
To each type of equipment there corresponds 16 consecutive words, so that peripheral p of type q is allocated the V-store address
J6004 + 16q + p
The type number q is defined in the following table:-
| q | Equipment | V-store address of equipment 0 of each type |
|---|---|---|
| 0 | Card Readers | J60040000 |
| 1 | Spare (London only: High Speed data Link) | J60040200 |
| 2 | TR7 Paper Tape Readers and N.E.P. Tape | J60040400 |
| 3 | Graphical Outputs | J60040600 |
| 4 | Anelex Line-printers | J60041000 |
| 5 | I.B.M. Magnetic Tape | J60041200 |
| 6 | Fast Paper Tape Punches | J60041400 |
| 7 | TR5 Paper Tape Readers | J60041600 |
| 8 | Teletype Punches | J60042000 |
| 9 | Card Punches (and, Manchester only: X-Ray Diffractometer) | J60042200 |
| 10 | Spare (Manchester only: A.T.& E. On-line Data Links) | J60042400 |
| 11 | Teleprinters | J60042600 |
The addresses above are all for equipment 0 of the type indicated. Card Reader 1, for example, would be addressed by writing J60040010.
Appendix D: Character Codes
The following table lists all the available Atlas Internal Code characters together with their external representations in terms of punchings on 7-track tape, 5-track tape, and punched cards, using the standard Atlas character codes for these media.
The 7-track tape code is the I.C.T./Ferranti Orion/Atlas code. The 5-track code is the standard I.C.T./Ferranti code as used on Pegasus, Mercury, Sirius, Atlas and Orion. The card code is the Atlas Fortran card code.
Also in the table is an indication of which characters are available on the Anelex Line-Printer.
Some characters are designated "Unassigned". This indicates that no external printing characters have been assigned to these Internal Code characters. Most compilers and Input Routines treat these as Illegal Characters. However, these characters have had 7-track paper tape puncbings assigned to them. This serves two purposes: (i) it means that, if at some later date characters are assigned to these paper tape punchings, then Internal Code characters are available and assigned to correspond to them, and (ii) it means that, since there is some internal representation for every 7-track paper tape code with odd parity, it is possible to use Internal Code representation for parity-checked "binary" information, rather than use pure "Binary" mode. However, it should be noted that, since the Supervisor treats the shift characters and the New Line characters in a special manner, the internal representation will not be an exact "image" of the external punchings. It should also be noted that some of these Internal Code characters are used by non-standard external codes to represent non-standard characters. Thus in all cases special care should be taken in using these characters.
One character (Outer Set 02) is designated "Spare". This character has no external printing assigned to it nor any 7-track paper tape code. It may however be used by non-standard external codes, and thus care should be taken over its use.
Internal Code character 00 (Inner and Outer set) is designated "Not Assigned". This character is reserved for special purposes by the compilers and the Supervisor. It will never have a character assigned to it, and should never be used by normal programs.
Certain characters are not available as standard on any input medium, and may be treated as "spare" by input routines (for example, L100 treats them thus). They are
Outer Set 03 £ Outer Set 35 10 Outer Set 36 11
They have the meaning as shown when used as output characters destined for the line-printer.
Certain other characters have alternatives given in parentheses. This is because the characters are alternative: in one or more of the relevant external codes. (For example Inner Set 13 is listed as π or £; these are alternatives on 7-track tape, 5-track tape and cards.) However, in the case of the line-printer, only the first character so listed is relevant, and, except for %, the other character appears elsewhere in the table for line-printer purposes.
Note that, in the column for 5-track tape, the 5-track tape code is given with the sprocket hole after two information holes and not three. This is the reverse of the normal convention and is done because the form as printed corresponds to the internal binary representation of the character when "Binary" mode for Input or Output is in use.
The Fault character (77 Inner Set) has no external representation. It is used under certain circumstances on Input by the Supervisor as a translation of any external character which has no Internal Code representation.
Tabulate (02 Inner Set) is treated as a single space by the Supervisor on output equipment where it does not othenvise exist.
The external shift characters (06 and 07) are ignored by the Supervisor for equipments where they have no relevance (e.g. the line-printer).
The fifteen symbols
: ' [ ] < > = _ | ? , 2 α β π
are on the fourth quadrant of the line-printer wheel. If none of these symbols are used in a line, the time to print the line is 1/1000 minute; otherwise it is 1/810 minute
Notation:
- FS
- Figure Shift
- LC
- Lower Case
- LS
- Letter Shift
- UC
- Upper Case
- **
- A paper-tape character appearing in both shifts
- ..
- The character concerned is not available on this peripheral.
Internal Code - Inner Set
| Character | Internal Code (octal) |
7-track code | 5-track code | Atlas Fortran card code (holes punched) |
Anelex Line-Printer (availability |
||
|---|---|---|---|---|---|---|---|
| Case | Binary Bits |
Shift | Binary Bits |
||||
| (Not Assigned) | 00 | .. | .. | .. | .. | ||
| Space | 01 | ** | 0010.000 | FS | 01.110 | None | Yes |
| Tabulate | 02 | ** | 0000.100 | .. | .. | .. | |
| Backspace | 03 | ** | 0010.101 | .. | .. | .. | |
| Shift to outer set | 04 | .. | .. | .. | .. | ||
| Shift to inner set | 05 | .. | .. | .. | .. | ||
| Shift to LC/LS | 06 | ** | 0010.110 | ** | 11.011 | .. | .. |
| Shift to UC/FS | 07 | ** | 0000.111 | ** | 00.000 | .. | .. |
| ( Open bracket | 10 | LC | 0111.000 | FS | 10.100 | 0,8,4 | Yes |
| ) Close bracket | 11 | LC | 0101.001 | FS | 01.100 | 10,8,4 | Yes |
| , Comma | 12 | LC | 0101.111 | FS | 11.110 | 0,8,3 | Yes |
| π (£) Pi (Pounds) | 13 | LC | 0111.011 | LS | 01.111 | 11,8,3 | Yes |
| ? Query | 14 | LC | 0101.100 | LS | 10.111 | 11,8,5 | Yes |
| & Ampersand | 15 | LC | 0111.101 | .. | 8,5 | Yes | |
| * Asterisk | 16 | LC | 0111.110 | FS | 11.000 | 11,8,4 | Yes |
| / Oblique | 17 | UC | 0011.111 | FS | 11.101 | 0,1 | Yes |
| 0 | 20 | UC | 0100.000 | FS | 00.001 | 0 | Yes |
| 1 | 21 | UC | 0110.001 | FS | 10.000 | 1 | Yes |
| 2 | 22 | UC | 0110.010 | FS | 01.000 | 2 | Yes |
| 3 | 23 | UC | 0100.011 | FS | 11.001 | 3 | Yes |
| 4 | 24 | UC | 0110.100 | FS | 00.100 | 4 | Yes |
| 5 | 25 | UC | 0100.101 | FS | 10.101 | 5 | Yes |
| 6 | 26 | UC | 0100.110 | FS | 01.101 | 6 | Yes |
| 7 | 27 | UC | 0110.111 | FS | 11.100 | 7 | Yes |
| 8 | 30 | UC | 0111.000 | FS | 00.010 | 8 | Yes |
| 9 | 31 | UC | 0101.001 | FS | 10.011 | 9 | Yes |
| < Less than | 32 | LC | 0100.011 | .. | 0,8,5 | Yes | |
| > Greater than | 33 | LC | 0110.100 | FS | 10.001 | 10,8,5 | Yes |
| = Equals | 34 | LC | 0100.101 | FS | 01.010 | 8,3 | Yes |
| + Plus | 35 | UC | 0111.101 | FS | 01.011 | 10 | Yes |
| - Minus | 36 | UC | 0111.110 | FS | 11.010 | 11 | Yes |
| . Point | 37 | UC | 0101.111 | ** | 00.111 | 10,8,3 | Yes |
| Character | Internal Code (octal) |
7-track code | 5-track code | Atlas Fortran card code (holes punched) |
Anelex Line-Printer (availability |
||
|---|---|---|---|---|---|---|---|
| Case | Binary Bits |
Shift | Binary Bits |
||||
| ' Prime (alternative n (letter n on 5-track tape only) |
40 | LC | 0100.000 | FS | 10.111 | 8,4 | Yes |
| A | 41 | UC | 1010.001 | LS | 10.000 | 10,1 | Yes |
| B | 42 | UC | 1010.010 | LS | 01.000 | 10,2 | Yes |
| C | 43 | UC | 1000.011 | LS | 11.000 | 10,3 | Yes |
| D | 44 | UC | 1010.100 | LS | 00.100 | 10,4 | Yes |
| E | 45 | UC | 1000.101 | LS | 10.100 | 10,5 | Yes |
| F | 46 | UC | 1000.110 | LS | 01.100 | 10,6 | Yes |
| G | 47 | UC | 1010.111 | LS | 11.100 | 10,7 | Yes |
| H | 50 | UC | 1011.000 | LS | 00.010 | 10,8 | Yes |
| I | 51 | UC | 1001.001 | LS | 10.010 | 10,9 | Yes |
| J | 52 | UC | 1001.010 | LS | 01.010 | 11,1 | Yes |
| K | 53 | UC | 1011.011 | LS | 11.010 | 11,2 | Yes |
| L | 54 | UC | 1001.100 | LS | 00.110 | 11,3 | Yes |
| M | 55 | UC | 1011.101 | LS | 10.110 | 11,4 | Yes |
| N | 56 | UC | 1011.110 | LS | 01.110 | 11,5 | Yes |
| O | 57 | UC | 1001.111 | LS | 11.110 | 11,6 | Yes |
| P | 60 | UC | 1110.000 | LS | 00.001 | 11,7 | Yes |
| Q | 61 | UC | 1100.001 | LS | 10.001 | 11,8 | Yes |
| R | 62 | UC | 1100.010 | LS | 01.001 | 11,9 | Yes |
| S | 63 | UC | 1110.011 | LS | 11.001 | 0,2 | Yes |
| T | 64 | UC | 1100.100 | LS | 00.101 | 0,3 | Yes |
| U | 65 | UC | 1110.101 | LS | 10.101 | 0,4 | Yes |
| V | 66 | UC | 1110.110 | LS | 01.101 | 0,5 | Yes |
| W | 67 | UC | 1100.111 | LS | 11.101 | 0,6 | Yes |
| X | 70 | UC | 1101.000 | LS | 00.011 | 0,7 | Yes |
| Y | 71 | UC | 1111.001 | LS | 10.011 | 0,8 | Yes |
| Z | 72 | UC | 1111.010 | LS | 01.011 | 0,9 | Yes |
| (Unassigned) | 73 | UC | 1101.011 | .. | .. | .. | |
| (Unassigned) | 74 | UC | 1111.100 | .. | .. | .. | |
| (Unassigned) | 75 | UC | 1101.101 | .. | .. | .. | |
| (Unassigned) | 76 | UC | 1101.110 | .. | .. | .. | |
| Fault | 77 | .. | .. | .. | .. | ||
Internal Code - Outer Set
| Character | Internal Code (octal) |
7-track code | 5-track code | Atlas Fortran card code (holes punched) |
Anelex Line-Printer (availability |
||
|---|---|---|---|---|---|---|---|
| Case | Binary Bits |
Shift | Binary Bits |
||||
| (Not Assigned) | 00 | .. | .. | .. | .. | ||
| Space | 01 | ** | 0010.000 | FS | 01.110 | None | Yes |
| (Spare) | 02 | .. | .. | .. | .. | ||
| £ Pounds | 03 | .. | .. | .. | Yes | ||
| Shift to outer set | 04 | .. | .. | .. | .. | ||
| Shift to inner set | 05 | .. | .. | .. | .. | ||
| Shift to LC/LS | 06 | ** | 0010.110 | ** | 11.011 | .. | .. |
| Shift to UC/FS | 07 | ** | 0000.111 | ** | 00.000 | .. | .. |
| (Unassigned) | 10 | ** | 0001.000 | .. | .. | .. | |
| (Unassigned) | 11 | ** | 0011.001 | .. | .. | .. | |
| (Unassigned) | 12 | ** | 0011.010 | .. | .. | .. | |
| (Unassigned) | 13 | ** | 0001.011 | .. | .. | .. | |
| Stop | 14 | ** | 0011.100 | .. | .. | .. | |
| Punch On | 15 | ** | 0001.101 | .. | .. | .. | |
| Punch Off | 16 | ** | 0001.110 | F | .. | .. | .. |
| : Colon | 17 | LC | 0011.111 | .. | 6,8 | Yes | |
| φ (x) Phi (letter x) | 20 | .. | FS | 00.011 | .. | .. | |
| [ Open square bracket | 21 | LC | 0110.001 | .. | 11,7,8 | Yes | |
| ] Close square bracket | 22 | LC | 0110.010 | .. | 11,6,8 | Yes | |
| → Arrow | 23 | .. | FS | 00.101 | .. | .. | |
| ≥ Greater than or equals | 24 | .. | FS | 01.001 | .. | .. | |
| ≠Not equal | 25 | .. | FS | 10.010 | .. | .. | |
| _ Underline | 26 | LC | 0100.110 | .. | 10,6,8 | Yes | |
| | Vertical bar | 27 | LC | 0110.111 | .. | 10,7,8 | Yes | |
| 2 (%) Superscript 2 (Percent) | 30 | LC | 0101.010 | .. | .. | Yes | |
| Curly equals (v) (letter v) | 31 | .. | FS | 00.110 | .. | .. | |
| α (10) Alpha (Ten) | 32 | UC | 0101.010 | .. | .. | Yes | |
| β (11) Beta (Eleven) | 33 | UC | 0111.011 | .. | .. | Yes | |
| ½ Half | 34 | UC | 0101.100 | .. | .. | Yes | |
| 10 Ten | 35 | .. | .. | .. | Yes | ||
| 11 Eleven | 36 | .. | .. | .. | Yes | ||
| (Unassigned) | 37 | UC | 1000.000 | .. | .. | .. | |
| Character | Internal Code (octal) |
7-track code | 5-track code | Atlas Fortran card code (holes punched) |
Anelex Line-Printer (availability |
||
|---|---|---|---|---|---|---|---|
| Case | Binary Bits |
Shift | Binary Bits |
||||
| (Unassigned) | 40 | LC | 1000.000 | .. | .. | .. | .. |
| a | 41 | LC | 1010.001 | .. | .. | .. | |
| b | 42 | LC | 1010.010 | .. | .. | .. | |
| c | 43 | LC | 1000.011 | .. | .. | .. | |
| d | 44 | LC | 1010.100 | .. | .. | .. | |
| e | 45 | LC | 1000.101 | .. | .. | .. | |
| f | 46 | LC | 1000.110 | .. | .. | .. | |
| g | 47 | LC | 1010.111 | .. | .. | .. | |
| h | 50 | LC | 1011.000 | .. | .. | .. | |
| i | 51 | LC | 1001.001 | .. | .. | .. | |
| j | 52 | LC | 1001.010 | .. | .. | .. | |
| k | 53 | LC | 1011.011 | .. | .. | .. | |
| l | 54 | LC | 1001.100 | .. | .. | .. | |
| m | 55 | LC | 1011.101 | .. | .. | .. | |
| n | 56 | LC | 1011.110 | .. | .. | .. | |
| o | 57 | LC | 1001.111 | .. | .. | .. | |
| p | 60 | LC | 1110.000 | .. | .. | .. | |
| q | 61 | LC | 1100.001 | .. | .. | .. | |
| r | 62 | LC | 1100.010 | .. | .. | .. | |
| s | 63 | LC | 1110.011 | .. | .. | .. | |
| t | 64 | LC | 1100.100 | .. | .. | .. | |
| u | 65 | LC | 1110.101 | .. | .. | .. | |
| v | 66 | LC | 1110.110 | .. | .. | .. | |
| w | 67 | LC | 1100.111 | .. | .. | .. | |
| x | 70 | LC | 1101.000 | .. | .. | .. | |
| y | 71 | LC | 1111.001 | .. | .. | .. | |
| z | 72 | LC | 1111.010 | .. | .. | .. | |
| (Unassigned) | 73 | LC | 1101.011 | .. | .. | .. | |
| (Unassigned) | 74 | LC | 1111.100 | .. | .. | .. | |
| (Unassigned) | 75 | LC | 1101.101 | .. | .. | .. | |
| (Unassigned) | 76 | LC | 1101.110 | .. | .. | .. | |
| Erase | 77 | ** | 1111.111 | ** | 11.111 | .. | .. |
Appedix E: Summary of Extracodes
Allocation of Function Numbers
There are 512 function numbers available for extracodes, 1000-1777. Of these, 1000-1477 are singly-modified instructions i.e. B-type, and 1500-1777 are doubly-modified i.e. A-type.
The extracodes are divided into sections as shown below:
| Function | Subjects |
|---|---|
| 1000-1077 | Peripheral routines |
| 1100-1177 | Organisational routines. |
| 1200-1277 | Test instructions and character data processing |
| 1300-1377 | B-register operations. |
| 1400-1477 | Complex arithmetic, vector arithmetic and other B-type accumulator routines. |
| 1500-1577 | Double-length arithmetic and accumulator operations using the address as an operand. |
| 1600-1677 | Logical accumulator operations, trogonometric routines and half-word packing. |
| 1700-1777 | Logarithmic, exponential, square root etc., and miscellaneous arithmetic operations. |
Were possible, the last two octal function digits correspond to those of similar basic operations.
The extracode function is listed at the left of the page and followed by a reference and a description. The number of basic instructions obeyed is given at the right of the page. This number includes the extracode instruction and its entry in the jump table; where necessary a range or formula is given.
The extracodes are listed in numerical order, and are also classified by type; some extracodes are therefore given twice.
The timings in this Appendix may differ from those in the main text. The figures here are updated in the light of Supervisor changes.
| Extracode | Reference | Description | Instructions Obeyed |
|---|---|---|---|
| E.1 Magnetic tape | |||
| Block Transfers | |||
| 1001 | 9.3.1 | Search for section n on tape Ba | |
| 1002 | 9.3.1 | Read next K + 1 sections from tape Ba to store blocks P, P + 1, ..., P + K. | |
| 1003 | 9.3.1 | Read previous K + 1 sections from Ba to P + K, ..., P + 1, P. | |
| 1004 | 9.3.1 | Write P, P + 1,..., P + K to next K +1 sections on Ba. | |
| 1005 | 9.3.1 | Move tape Ba forwards K + 1 sections | |
| 1006 | 9.3.1 | Move tape Ba backwards K + 1 sections | |
| Organisational Instructions | |||
| 1007 | 9.5.1 | Move next reel of file Ba | |
| 1010 | 9.5.1 | Mount | |
| 1011 | 9.5.1 | Mount free | |
| 1012 | 9.5.1 | Move on logical channel K | |
| 1013 | 9.5.1 | Move free on logical channel K | |
| 1014 | 9.5.2 | Write title | |
| 1015 | 9.5.2 | Read title or number | |
| 1016 | 9.5.2 | Unload | |
| 1017 | 9.5.2 | Free tape | |
| 1020 | 9.5.2 | Release tape (pass to another program) | |
| 1021 | 9.5.2 | Release mechanisms | |
| 1022 | 9.5.2 | Re-allocate | |
| 1023 | 9.5.2 | How long? | |
| 1024 | 9.5.2 | Where am I? | |
| Variable Length Organisation | |||
| 1030 | 9.4.2 | Start reading forwards | |
| 1031 | 9.4.2 | Start reading backwards | |
| 1032 | 9.4.2 | Start writing forwards | |
| 1033 | 9.4.2 | Start writing backwards | |
| 1034 | 9.4.2 | Start reading forwards from fixed blocks | |
| 1035 | 9.4.2 | Start reading backwards from fixed blocks | |
| 1036 | 9.4.3 | ba' = selected magnetic tape | |
| 1037 | 9.4.3 | s' = mode of magnetic tape Ba | |
| Variable Length Transfers | |||
| 1040 | 9.4.3 | Transfer | |
| 1041 | 9.4.3 | Skip | |
| 1042 | 9.4.3 | Mark | |
| 1043 | 9.4.3 | Stop | |
| 1044 | 9.4.3 | Word search | |
| 1046 | 9.7 | Read next block on Orion tape | |
| 1047 | 9.7 | Read previous block on Orion tape | |
| E.2 Input | |||
| 1050 | 8.4 | Select input n | |
| 1051 | 8.4 | Find selected input | |
| 1052 | 8.14 | Find peripheral equipment number | |
| 1053 | 8.14 | Test whether binary or internal code | |
| 1054 | 8.14 | Read next character to Ba. Jump to n at end of record | |
| 1055 | 8.14 | ba' = number of blocks read | |
| 1056 | 8.14 | Read ba half-words to S | |
| 1057 | 8.14 | Read next record to S | |
| E.3 Output | |||
| 1060 | 8.4 | Select output n | |
| 1061 | 8.4 | Find selected output | |
| 1062 | 8.15 | Find peripheral equipment type | |
| 1063 | 8.15 | Delete output n | |
| 1064 | 8.15 | Write character n | |
| 1065 | 8.15 | End this record | |
| 1066 | 8.15 | Write ba half-words from S | |
| 1067 | 8.15 | Write a record from S | |
| 1070 | 8.15 | Rename output n as input ba | |
| 1071 | 8.15 | Break output n | |
| 1072 | 8.15 | Define output n | |
| Extracode | Reference | Description | Instructions Obeyed |
|---|---|---|---|
| E.4 Subroutine Entry | |||
| 1100 | 7.7 | Enter subroutine at s, ba' = c+1 | 6 |
| 1101 | 7.7 | Enter subroutine at S, ba' = c+1 | 5 |
| 1102 | 7.7 | Enter subroutine at bm, ba' = c+1 | 6 |
| 1362 | 7.7 | Enter subroutine at n, b90' = c+1 | 3 |
| E.5 Branching | |||
| 1103 | 12.3.2 | Establish Ba branches | |
| 1104 | 12.3.2 | Start branch Ba at S | |
| 1105 | 12.3.2 | Kill Ba. If Ba=64 kill current branch | |
| 1106 | 12.3.2 | Halt current branch if Ba is active | |
| 1107 | 12.3.2 | Jump to n if Ba is active | |
| E.6 Monitor | |||
| 1112 | 11.3 | Set Monitor jump to n | |
| 1113 | 11.4.1 | Do restart | |
| 1117 | 11.1.3 | End program | |
| E.7 Miscellaneous Transfers | |||
| 1120 | 7.8 | ba' = clock | |
| 1121 | 7.8 | ba' = date | |
| 1122 | 12.4 | ba' = local instruction counter | |
| 1123 | 12.4 | set instruction counter = n | 2048 |
| 1136 | 12.4 | Read instruction counter | |
| 1124 | 7.8 | v6' = n | 3 |
| 1125 | 7.8 | ba' = v6 & n | 4 |
| 1126 | 12.9 | v7' = n (hoot) | 2 |
| 1127 | 12.9 | ba' = v7' & n (read handswitches) | 3 |
| E.8 Traps | |||
| 1131 | 7.5.2 | See E.12 Character Data Processing | |
| 1132 | 11.2 | Set trap/normal mode | |
| 1133 | 11.2 | Ba' = trap address | |
| 1134 | 11.2 | Trap | |
| 1135 | 12.1 | See E.10 Store | |
| 1136 | 12.1 | See E.7 Miscellaneous Transfers | |
| E.9 Compiler and Supervisor | |||
| 1140 | 12.9 | Read parameter Ba to s | |
| 1141 | 12.9 | Define Compiler | |
| 1142 | 12.9 | End compiling | |
| 1143 | 12.9 | Reserve Supervisor Tape | |
| 1147 | 12.9 | Call complier n | |
| 1150 | 12.9 | Assign ba blocks, labels P to (P + ba -1) to overflow K | |
| 1151 | 12.9 | Set up blocks P onwards from overflow K | |
| 1155 | 12.1 | See E.10 Store | |
| 1156 | 12.9 | Enter extracode control at n if the "In Supervisor switch" is set | |
| 1157 | 12.9 | Enter extracode control at n if the "Process switch" is set | |
| E.10 Store | |||
| 1135 | 12.1 | Jump to n when block ≥ba defined | |
| 1155 | 12.1 | JFind smallest block label defined | |
| 1160 | 12.1 | Read block P | |
| 1161 | 12.1 | Release block P | |
| 1162 | 12.1 | Duplicate read | |
| 1163 | 12.1 | Duplicate write | |
| 1164 | 12.1 | Rename | |
| 1165 | 12.1 | Write block P | |
| 1166 | 12.1 | Read to absolute page | |
| 1167 | 12.1 | Lose block P | |
| 1170 | 12.1 | Clear blocks | |
| 1171 | 12.1 | Store allocation = n blocks | |
| 1172 | 12.1 | ba' = number of pages available | |
| 1173 | 12.1 | ba' = number of blocks available | |
| 1174 | 12.1 | Reserve band n | |
| 1175 | 12.1 | Read K+1 blocks | |
| 1176 | 12.1 | Write K+! blocks | |
| 1177 | 12.1 | Lose band n | |
Arithmetic and Logical Extracodes
Accumulator operations are rounded floating-point unless marked X, when they are suitable for fixed-point working
| Extracode | Reference | Description | Instructions Obeyed |
|---|---|---|---|
| E.11 Tests | |||
| 1200 | 7.6.1 | ba' = n if AO set; clear AO | 9 |
| 1201 | 7.6.1 | ba' = n if AO clear; clear AO | 7 |
| 1204 | 7.5.3 | See E.19 Logical Operations | 7 |
| 1216 | 7.6.2 | ba' = n if bm > 0 | 4-5 |
| 1217 | 7.6.2 | ba' = n if bm ≤ 0 | 4-5 |
| 1223 | 7.6.2 | ba' = n if Bc=1 | 4 |
| 1226 | 7.6.2 | ba' = n if bt > 0 | 4-6 |
| 1227 | 7.6.2 | ba' = n if bt ≤ 0 | 3-5 |
| 1234 | 7.6.1 | c' = c' + 2 if am approximately = s | 11-12 |
| 1235 | 7.6.1 | c' = c' + 2 if am not approximately = s | 11-12 |
| Approximate equality is defined by |(am-s)/am| < C(ba), with am standardised If am = 0, am is not approximately = s |
|||
| 1236 | 7.6.1 | ba'=n if ax > 0 | 4 or 6 |
| 1237 | 7.6.1 | ba'=n if ax ≤ 0 | 3 or 5 |
| 1250-53 | 7.6.1 | See E.12 Character Data Processing | 3-5 |
| 1255 | 7.6.1 | ba'=n if m is neither zero nor all ones | 9 |
| 1265 | 7.5.3 | See E.19 Logical Operations | |
| 1727 | 7.6.1 | c' = c + 1, c +2 or c + 3 as am >, = or < s | 7 |
| 1736 | 7.6.1 | c' = c + 2, c +2 if |am| ≥ s | 7 or 9 |
| 1737 | 7.6.1 | c' = c + 2 if |am| < s | 7 |
| E.12 Character data processing | |||
| 1131 | 7.5.2 | Table search | 8+6n |
| In 1250 and 1251, S is taken as a character address | |||
| 1250 | 7.5.2 | ba' (digits 18-23) = s, ba' (digits 0-17) = 0 | 7-10 |
| 1251 | 7.5.2 | s' = ba (digits 18-23) | 11-18 |
| 1252 | 7.5.2 | Unpack n characters starting from character address C(ba), to half-words from C(ba*) | 14 to 17 + int.pt. (6.5n) |
| 1253 | 7.5.2 | Pack n characters starting from character address C(ba*), to character address C(ba) | 19 to 28 +3.75n |
| Extracode | Reference | Description | Instructions Obeyed |
|---|---|---|---|
| E.13 B-register operations | |||
| 1300 | 7.5.1 | ba' = integral part of s, am' = fractional part of s | 10 |
| 1301 | 7.5.1 | ba' = integral part of am, am' = fractional part of am | 9 |
| 1302 | 7.5.1 | ba' = ba.n, rounded away from zero | 24-27 |
| 1303 | 7.5.1 | ba' = -ba.n rounded away from zero | 23-26 |
| 1304 | 7.5.1 | ba' = integral part of (ba/n), b97'=remainder | 26-31 |
| In 1302-1304, ba and n are 21-bit integers in digits 0-20 | |||
| 1312 | 7.5.1 | ba' = ba.n | 23-26 |
| 1313 | 7.5.1 | ba' = -ba.n | 22-25 |
| 1314 | 7.5.1 | ba' = integral part of (ba/n), b97'=remainder | 27-32 |
| In 1312-1314, ba and n are 24-bit integers | |||
| 1340 | 7.5.1 | ba' = ba.2-2n; unrounded arithmetic shift right | 12-24 |
| 1341 | 7.5.1 | ba' = ba.22n; unrounded arithmetic shift right | 11-23 |
| 1342 | 7.5.1 | ba' = ba; circularly shifted right n places | 10-19 |
| 1343 | 7.5.1 | ba' = ba circularly shifted left n places | 9-18 |
| 1344 | 7.5.1 | ba' = ba logically shifted right n places | 12-23 |
| 1345 | 7.5.1 | ba' = ba logically shifted left n places | 11-22 |
| 1347 | 7.5.1 | s' = s or ba | 5 |
| 1353 | 7.5.1 | ba' = position of most-significant 1 in bits 16-23 of n (as B123) | 7 |
| 1356 | 7.5.1 | bt' = ba neqv s | 5 |
| 1357 | 7.5.1 | bt' = ba neqv n | 4 |
| 1362 | 7.5.1 | See E.4 Subroutine Entry | |
| 1364 | 7.5.1 | ba' = (ba & n) or (bm & n); b119' = (ba neqv & n | 6 |
| 1371 | 7.5.1 | b121' = ½Ba, b119' = N + bm | 2 |
| 1376 | 7.5.1 | bt' = ba & s | 5 |
| 1377 | 7.5.1 | bt' = ba & n | 4 |
The complex accumulator, Ca, is a pair of consecutive registers, the first register having address ba. If Ba = 0, Ca is locations 0,1. s: is a number pair. Ca may coincide with S: but otherwise overlap with it. A is spoiled.
| Extracode | Reference | Description | Instructions Obeyed |
|---|---|---|---|
| E.14 Complex arithmetic | |||
| 1400 | 7.4.6 | ca' = log s: | 132-149 |
| 1402 | 7.4.6 | ca' = exp s: | 109-128 |
| 1403 | 7.4.6 | ca' = conj s: | 5 |
| 1407 | 7.4.2 | See E.16 Miscellaneous B-type accumulator operations | 15-30 |
| 1410 | 7.4.6 | ca' = sqrt s: | 90-93 |
| 1411 | 7.4.6 | am' = arg s: radians | 45-62 |
| 1412 | 7.4.6 | ca' = mod s: | 43 |
| 1413 | 7.4.6 | ca' = s cos s*, s sin s* | 70-80 |
| 1414 | 7.4.6 | ca' = 1/s: | 15 |
| 1415 | 7.4.2 | See E.16 Miscellaneous B-type accumulator operations | |
| 1420 | 7.4.6 | ca' = ca + s: | 8 |
| 1421 | 7.4.6 | ca' = ca - s: | 8 |
| 1424 | 7.4.6 | ca' = s: | 6 |
| 1425 | 7.4.6 | ca' = - s: | 6 |
| 1456 | 7.4.6 | s:' = ca | 5 |
| 1462 | 7.4.6 | ca' = ca.s: | 18 |
| E.15 Vector Operations | |||
| The vectors are of order n. s1 is stored in consecutive locations from ba, and s2 from ba*. A is spoiled. | |||
| 1430 | 7.4.7 | s1' = s1 + s2 | 9+4n |
| 1431 | 7.4.7 | s1' = s1 - s2 | 9+4n |
| 1432 | 7.4.7 | s1' = am. s2 | 9+4n |
| 1433 | 7.4.7 | s1' = s1 + am.s2 | 10+5n |
| 1434 | 7.4.7 | s1' = s2 (forwards or backwards) | 11 or 13 +3n |
| 1436 | 7.4.7 | am' = Σ s1i' . s2i , i= 0 to n-1 | 10+5n |
| 1437 | 7.4.7 | a' = Σ s1i' . s2i , i= 0 to n-1 | 10+136n |
| E.16 Miscellaneous B-type accumulator operations | |||
| 1407 | 7.4.2 | Remainder and adjusted integral quotient | 15-30 |
| 1415 | 7.4.2 | Generate pseudo random number | 4 |
| 1441 | 7.4.5 | See E.18 Arithmetic using address as operand | 6 |
| 1452 | 7.4.3 | m'=m.sx.8ay+sy-bay , ay' =bay | 21-28 (X) |
| 1456-62 | 7.4.6 | See E.14 Complex arithmetic | |
| 1466 | 7.4.2 | a' = C(N+bm+ba) × C(N+bm) + a | 21 |
| 1467 | 7.4.2 | am' = Σ si xi from i=0 to r where x=am, Si = S+i, r=ba | 6+3n |
| 1473 | 7.4.3 | m' = (ax/sx).8ay-sy-bay ,ay'=bay | 26-33 (X) |
| 1474 | 7.4.3 | C(ba') = quotient (am/s), am' = remainder | 22-33 (X) |
| 1475 | 7.4.3 | C(ba') = quotient (a/s), am' = remainder | 21-32 (X) |
| 1476 | 7.4.3 | C(ba') = quotient (integral part of am/s), am' = remainder | 30-41 |
| E.17 Double-length Operations | |||
| The double-length number is s: = s + s* where sy-13 ≥ s*y. s* and al are asssumed to be positive numbers. | |||
| 1500 | 7.4.4 | a' = a + s: | 13 |
| 1501 | 7.4.4 | a' = a - s: | 13 |
| 1502 | 7.4.4 | a' = a + s: | 17 |
| 1504 | 7.4.4 | a' = s: | 4 |
| 1505 | 7.4.4 | a' = - s: | 3 |
| 1520-35 | 7.4.5 | See E.18. Arithmetic using address as operand | 10 |
| 1542 | 7.4.4 | a' = a.s: | 18 |
| 1543 | 7.4.4 | a' = -a.s: | 22 |
| 1556 | 7.4.4 | a:' = a | 5 |
| 1562 | 7.4.5 | See E.18. Arithmetic using address as operand | |
| 1565 | 7.4.4 | a' = - a | 6 |
| 1566 | 7.4.4 | a' = |a| | 4 or 7 |
| 1567 | 7.4.4 | a' = |s:| | 5 |
| 1574-75 | 7.4.5 | See E.18 Arithmetic using address as Operand | |
| 1576 | 7.4.4 | a' = a / s: | 21 |
| E.18 Arithmetic using address as Operand | |||
| The address is taken as a 21-bit integer with one octal fractional part. Fixed-point operations imply an exponent of 12 | |||
| 1441 | 7.4.5 | sx' = ba, sy' = 12 | 6 |
| 1520 | 7.4.5 | am' = am + n | 10 |
| 1521 | 7.4.5 | am' = am - n | 11 |
| 1524 | 7.4.5 | am' = n, l' = 0 | 8 |
| 1525 | 7.4.5 | am' = - n, l' = 0 | 8 |
| 1534 | 7.4.5 | am' = n, l' = 0 | 9 (X) |
| 1535 | 7.4.5 | am' = - n, l' = 0 | 10 (X) |
| 1562 | 7.4.5 | am' = am . n | 8 |
| 1574 | 7.4.5 | am' = am / n | 17 |
| 1575 | 7.4.5 | am' = aq / n | 16 |
| E.19 Logical accumulator operations | |||
| The logical accumulator G is B98 and B99 | |||
| 1204 | 7.5.3 | ba' = number of 6-bit characters from most-significant end identical in g and s | 9-25 |
| 1265 | 7.5.3 | g' = 26g + n, ba' = 6-bits shifted out of g | 11 |
| 1601 | 7.5.3 | g' = s | 3 |
| 1604 | 7.5.3 | g' = g + s | 7 |
| 1605 | 7.5.3 | g' = g + s with end around carry | 12 |
| 1606 | 7.5.3 | g' = g neqv s | 4 |
| 1607 | 7.5.3 | g' = g & s | 3 |
| 1611 | 7.5.3 | g' = z where z is the logical complement of g | 3 |
| 1613 | 7.5.3 | s' = g | 3 |
| 1615 | 7.5.3 | am' = g | 4 |
| 1624-26 | 7.4.8 | See E.20 Half-word Packing | 6 |
| 1630 | 7.5.3 | g' = g & z where z is the logical complement of g | 5 |
| 1635 | 7.5.3 | g' = am | 4 |
| 1646 | 7.5.3 | g' = g or s | 3 |
| 1652 | 7.5.3 | bt' = g - s | 6 or 8 |
| E.20 Half-word Packing | |||
| s has an 8-bit exponent and a 16-bit mantissa | |||
| 1624 | 7.4.8 | am' = s | 6 |
| 1626 | 7.4.8 | s' = am, with s rounded | 7 |
| Extracode | Reference | Description | Instructions Obeyed |
|---|---|---|---|
| E.21 Functions and Miscellaneous routines | |||
| 1700 | 7.4.1 | am' = log s | 47 |
| 1701 | 7.4.1 | am' = log aq | 46 |
| 1702 | 7.4.1 | am' = exp s | 44 or 53 |
| 1703 | 7.4.1 | am' = exp aq | 43 or 52 |
| 1704 | 7.4.2 | am' = integral part s | 5 |
| 1705 | 7.4.2 | am' = integral part of am | 4 |
| 1706 | 7.4.2 | am' = sign s | 5-6 |
| 1707 | 7.4.2 | am' = sign am | 4-5 |
| 1710 | 7.4.1 | am' = sqrt s | 36 |
| 1711 | 7.4.1 | am' = sqrt aq | 35 |
| 1712 | 7.4.1 | am' = sqrt (aq2 + s2) | M41 |
| 1713 | 7.4.2 | am' =aq s | 87-96 |
| 1714 | 7.4.2 | am' = 1 / s | 5 |
| 1715 | 7.4.2 | am' = 1 / am | 4 |
| 1720 | 7.4.1 | am' = arc sin s (-π/2 ≤ s ≤ π/2) | 76-91 |
| 1721 | 7.4.1 | am' = arc sin aq | 75-90 |
| 1722 | 7.4.1 | am' = arc cos s (0 ≤ s ≤ π) | 76-91 |
| 1723 | 7.4.1 | am' = arc cos aq | 75-90 |
| 1724 | 7.4.1 | am' = arc tan s (-π/2 < s < π/2) | 38-53 |
| 1725 | 7.4.1 | am' = arc tan aq | 37-52 |
| 1726 | 7.4.1 | am' = arc tan (aq/s) (-π ≤ s ≤ π) | 44-61 |
| 1727 | 7.6.1 | See E.11 Test Instructions | |
| 1730 | 7.4.1 | am' = sin s | 32-37 |
| 1731 | 7.4.1 | am' = sin aq | 31-36 |
| 1732 | 7.4.1 | am' = cos s | 32-37 |
| 1733 | 7.4.1 | am' = cos aq | 31-36 |
| 1734 | 7.4.1 | am' = tan s | 66-76 |
| 1735 | 7.4.1 | am' = tan aq | 65-75 |
| 1736-37 | 7.6.1 | See E.11 Test Instructions | |
| 1752 | 7.4.3 | m' = ax.812, ay' = ay - 12 | 10 or 13 (X) |
| 1753 | 7.4.3 | ax' = m.812, ay' = ay + 12 | 5 (X) |
| 1754 | 7.4.3 | Round am by adding; standardise | 6 |
| 1755 | 7.4.3 | ax' = ax.8ay - ny ; ay' = ny | 18-26 (X) |
| 1756 | 7.4.2 | s' = am, am' = s | 8 |
| 1757 | 7.4.2 | am' = s / am | 5 |
| 1760 | 7.4.2 | am' = am 2 | 3 |
| 1762 | 7.4.3 | m' = ax.812 | 9 or 12 (X) |
| 1763 | 7.4.3 | ax' = m.8-12 | 5 (X) |
| 1764 | 7.4.3 | ax' = ax.8n | 15-23 (X) |
| 1765 | 7.4.3 | ax' = ax.8-n | 14-22 (X) |
| 1766 | 7.4.3 | am' = |s| | 4 (X) |
| 1767 | 7.4.3 | am' = |am| | 3 (X) |
| 1771 | 7.5.1 | b121' = ½Ba, b119' = N + ba + bm | 2 |
| 1772 | 7.4.3 | m' = (m.sx) 8 12; ay' = ay + sy - 12 | 11 or 14 (X) |
| 1773 | 7.4.3 | m' = (ax/sx) 8 ay-sy -12; ay' = 12 | 28 to 36 (X) |
| 1774 | 7.4.2 | am' = am / s | 11 |
| 1775 | 7.4.2 | am' = aq / s | 10 |
| 1776 | 7.4.2 | Remainder | 14 |
Appendix F: Summary of Basic Instructions by Function
See Atlas Instruction card