Instructions marked with a * require the PLAN manual for a fuller description.
Instructions marked with a C may set the carry bit but cannot cause overflow.
The 043 order may set V or C. The carry register C is left clear by any order except 023, 117 and 123 unless that order sets C. Instructions marked with a V may cause overflow.
Arithmetic into Accumulators
V 000 LDX X N(M) Load contents N(M) into X
V 001 ADX X N(M) Add contents N(M) to X
V 002 NGX X N(M) Load negative of contents N(M) into X
V 003 SBX X N(M) Subtract contents N(M) from X
C 004 LDXC X N(M) Load contents N(M) into X
C 005 ADXC X N(M) Add contents N(M) to X
C 006 NGXC X N(M) Load negative of contents N(M) into X
C 007 SBXC X N(M) Subtract contents N(M) from X
Arithmetic into Store
V 010 STO X N(M) Store X in address N(M)
V 011 ADS X N(M) Add X into address N(M)'s contents
V 012 NGS X N(M) Store negative X into address N(M)
V 013 SBS X N(M) Subtract X from address N(M)'s contents
C 014 STOC X N(M) Store X in address N(M)
C 015 ADSC X N(M) Add X into address N(M)'s contents
C 016 NGSC X N(M) Store negative X into address N(M)
C 017 SBSC X N(M) Subtract X from address N(M)'s contents
Logical Operations into Accumulator
020 ANDX X N(M) X is result of ANDing X and contents N(M)
021 ORX X N(M) X is result of ORing X and contents N(M)
022 ERX X N(M) X is result of EXCLUSIVE ORing X and contents N(M)
Interpret
023 OBEY N(M) Obey instruction in address N(M)
Part Word into Accumulator
024 LDCH X N(M) Load character at address N(M) into X
025 IDEX X N(M) Load exponent (xe) from address N(M) into X
Comparison
026 TXU X N(M) Set C if X different from contents N(M)
027 TXL X N(M) Set C if X less than contents N(M)
Logical Operations into Store
030 ANDS X N(M) Contents N(M) is result of ANDing X and contents N(M)
031 ORS X N(M) Contents N(M) is result of ORing X and contents N(M)
032 ERS X N(M) Contents N(M) is result of EXCLUSIVE ORing X and contents N(M)
Store Zero
033 STOZ N(M) Store zero in address N(M)
Part Word Manipulation into Store
034 DCH X N(M) Lower 6 bits X stored in character address N(M)
035 DEX X N(M) Lower 9 bits X stored in exponent of address N(M)
036 DSA X N(M) Lower 12 bits X stored in address N(M)
037 DLA X N(M) Lower 15 bits X stored in address N(M)
Multiplication
V 040 MPY X N(M) Multiply X by contents address N(M)
V 041 MPR X N(M) Multiply X by contents address N(M) and round
* 042 MPA X N(M) Multiply and accumulate
Character Conversion
V 043 CDB X N(M) X is set to 10 times X plus contents of character address N(M)
* 047 CBD X N(M) Binary to decimal
Division
* 044 DVD X N(M) Divide
* 045 DVR X N(M) Divide and round
* 046 DVS X N(M) Divide single length
Branch on State of Accumulator
050 BZE X N Branch to address N if X=0
052 BNZ X N Branch to address N if X≠0
054 BPZ X N Branch to address N if X≥0
056 BNG X N Branch to address N if X<0
Indexing and Counting
060 BUX X N 15AM: Add 1 to xm part of X and subtract 1 from xc part. Branch to address N if xc≠0
060 BUX X N 22AM: Add 1 to xem part of X and branch to address N
062 BDX X N 15AM: Add 2 to xm part of X and subtract 1 from xc part. Branch to address N if xc≠0
062 BDX X N 22AM: Add 2 to xem part of X and branch and branch to address N
064 BCHX X N 15AM: Increment character address (xk:xm) of X by 1 and subtract 1 from xd. Branch to address N if xd≠0
064 BCHX X N 22AM: Increment character address and jump to address N
Subroutine Linkage
070 CALL X N Call routine at address N leaving link in X
V 072 EXIT X N Return to address N+X
Miscellaneous Branch
074 BRN N X=0, branch to address N
074 BVS N X=1, branch to address N if V set
074 BVSR N X=2, branch to address N if V set and clear V
074 BVC N X=3, branch to address N if V clear
074 BVCR N X=4, branch to address N if V clear and clear V
074 BCS N X=5, branch to address N if C is set
074 BCC N X=6, branch to address N if C is clear
V 074 BVCI N X=7, branch to address N if V is clear and invert V
V 076 BFP N X=0, branch to address N if A1=0.0
V 076 BFP N X=1, branch to address N if A1≠0.0
V 076 BFP N X=2, branch to address N if A1≥0.0
V 076 BFP N X=3, branch to address N if A1<0.0
076 BFP N X=4, branch to address N if floating point overflow clear
076 BFP N X=5, branch to address N if floating point overflow set
Arithmetic with Small Integers
100 LDN X N(M) Set X to N(M)
V 101 ADN X N(M) Add N(M) to X
102 NGN X N(M) Set X to -N(M)
V 103 SBN X N(M) Subtract N(M) from X
104 LDNC X N(M) Set X to N(M)
C 105 ADNC X N(M) Add N(M) to X
C 106 NGNC X N(M) Set X to -N(M)
C 107 SBNC X N(M) Subtract N(M) from X
Shifting
110 SLC X N(M) Nt=0, shift X left Ns places circular
110 SLL X N(M) Nt=1, shift X left Ns places logical
V 110 SLA X N(M) Nt=2, shift X left Ns places arithmetic
111 SLC2 X N(M) Nt=0, shift X, X+1 left Ns places circular
111 SLL2 X N(M) Nt=1, shift X, X+1 left Ns places logical
V 111 SLA2 X N(M) Nt=2, shift X, X+1 left Ns places arithmetic
112 SRC X N(M) Nt=0, shift X right Ns places circular
112 SRL X N(M) Nt=1, shift X right Ns places logical
V 112 SRA X N(M) Nt=2, shift X right Ns places arithmetic
112 SRAV X N(M) Nt=3, shift X right Ns places arithmetic on overflow
113 SRC2 X N(M) Nt=0, shift X, X+1 right Ns places circular
113 SRL2 X N(M) Nt=1, shift X, X+1 right Ns places logical
V 113 SRA2 X N(M) Nt=2, shift X, X+1 right Ns places arithmetic
113 SRAV2 X N(M) Nt=3, shift X, X+1 right Ns places arithmetic on overflow
Floating Point Normalise
114 NORM X N(M) Normalise X
115 NORM X N(M) Normalise X, X+1
Logical Operations with Small Integers
120 ANDN X N(M) X is set to X AND N(M)
121 ORN X N(M) X is set to X OR N(M)
122 ERN X N(M) X is set to X EXCLUSIVE OR N(M)
Miscellaneous
123 NULL Null operation
124 LDCT X N(M) Sets xc of X to N(M), xm of X to zero
* 125 MODE N(M) Set zero suppression mode
126 MOVE X N(M) Transfer N(M) words from address X to address X+1
127 SUM X N(M) X is sum of N(M) words from address X+1
Floating Point
130 FLOAT X N(M) Set A1 to contents N(M) floated
131 FIX X N(M) Fix contents A1 and store in N(M)
132 FAD X N(M) Add contents N(M) to A1 (X=0)
133 FSB X N(M) Subtract contents N(M) from A1 (X=0)
133 FSB X N(M) Contents A1 becomes contents N(M) minus A1 (X=4)
134 FMPY X N(M) Multiply contents N(M) by A1 (X=0)
135 FDVD X N(M) Divide contents A1 by N(M) (X=0)
135 FDVD X N(M) A1 becomes contents N(M) divided by A1 (X=4)
136 LFP N(M) A1 set to contents N(M)
136 LFPZ A1 set to zero, X=1
137 SFP N(M) Store A1 in address N(M)
137 SFPZ N(M) Store A1 in address N(M) and set A1 = 0, X=1
Peripheral Control
150 SUSBY X Suspend if specified peripheral is active
151 REL X Release a specified peripheral
152 DIS X Disengage a specified peripheral
154 CONT X N(M) Read more program from a specified peripheral
155 SUSDP X N(M) Suspend and dump program on specified peripheral
156 ALLOT X Allocate a specified peripheral
157 PERI X N(M) Peripheral transfer depending on control area
Interrupt and Delete
160 SUSTY N(M) X=0, Suspend and type message on console typewriter
160 DISTY N(M) X=1, Display message
160 DELTY N(M) X=2, Delete program and type message
161 SUSWT X=0, Suspend and wait
161 DISP X=1, Display
161 DEL X=2, Delete
* 162 SUSMA
163 AUTO X N(M) Activate member X at N(M)
164 SUSAR Suspend member awaiting reactivation
164 SUSIN Suspend member awaiting flag-setting interrupt
165 GIVE X N(M)=0, Give date in binary in X
165 GIVE X N(M)=1, Give date in characters in X, X+1
165 GIVE X N(M)=2, Give time in characters in X, X+1
165 GIVE X N(M)=3, Give current core store location in X
165 GIVE X N(M)=4, Alter core store allocation to that specified by X
165 GIVE X N(M)=5, Give details of executive and central processor
165 GIVE X N(M)=8, Give current address mode and branch mode in X
165 GIVE X N(M)=9, Alter address mode and branch mode to that given in X
165 GIVE X N(M)=10, Give mill time (in microseconds) used by current core image in X, X+1
165 GIVE X N(M)=11, Give the time in seconds since midnight as a mid-point number in X, X+1
165 GIVE X N(M)=12, Alter size of the active part of the core image to the value
contained in X: this has the same effect as GIVE with N(M)=3 under GEORGE 4.
165 GIVE X N(M)=16, Report on the status of an area of the current core image, as specified
in X, X+1. 'Status' refers to read/write/execute permission, shareability
and an indication of whether the area has been used.
This is only applicable to GEORGE 4 environments.
165 GIVE X N(M)=17, Change the permission to that specified in X, X+1.
This is only applicable to GEORGE 4 environments.
165 GIVE X N(M)=18, Give the permission specified in X, X+1 (in addition to any current permission).
This is only applicable to GEORGE 4 environments.
165 GIVE X N(M)=19, Withhold the permission specified in X, X+1.
166 RRQ N(M) X=0, read request block into N(M)
166 RRQ N(M) X=1, replace request block from address N(M)
Special (available on 1906A but not all 1900's)
066 BCT N Subtract 1 from xm part of X and branch N if nonzero
116 MVCH X N(M) Transfer N(M) characters
117 SMO X N(M) Supplementary modifier to next instruction.
The following mnemonics for handling R-TRUSTED programs exist in PLASYD (but not in PLAN):
160 RMS X=7, request console message. This is not implemented for
programs running under GEORGE 3/4
164 ACT X=7, N(M)=0, activate the program under control (PUC)
167 SPP Set up parameters for PUC
For further information on these, see User Notice 4 to the Central Processors Manual (ICL Technical Publication 4095).