The information in the table below was taken from the ICL
Technical Publication 4004 PLAN Reference Manual.
| |
Octal |
Nmenonic |
Function |
Group 00x Order Codes |
000 |
LDX X N(M) |
Load to X |
| 001 |
ADX X N(M) |
Add into X |
| 002 |
NGX X N(M) |
Negative Load into X |
| 003 |
SBX X N(M) |
Subtract from X |
| 004 |
LDXC X N(M) |
Load into X with Carry |
| 005 |
ADXC X N(M) |
Add into X with Carry |
| 006 |
NGXC X N(M) |
Negative Load into X with Carry |
| 007 |
SBXC X N(M) |
Subtract from X with Carry |
Group 01x Order Codes |
010 |
STO X N(M) |
Store the Contents of X |
| 011 |
ADS X N(M) |
Add X to Store |
| 012 |
NGS X N(M) |
Negative Load into Store |
| 013 |
SBS X N(M) |
Subtract from Store |
| 014 |
STOC X N(M) |
Store the Contents of X with Carry |
| 015 |
ADSC X N(M) |
Add X to Store with Carry |
| 016 |
NGSC X N(M) |
Negative Load into Store with Carry |
| 017 |
SBSC X N(M) |
Subtract from Store with Carry |
Group 02x Order Codes |
020 |
ANDX X N(M) |
Logical AND into X |
| 021 |
ORX X N(M) |
Logical INCLUSIVE OR into X |
| 022 |
ERX X N(M) |
Logical EXCLUSIVE OR into X |
| 023 |
OBEY N(M) |
Obey the Instruction at N |
| 024 |
LDCH X N(M) |
Load Character to X |
| 025 |
LDEX X N(M) |
Load Exponent |
| 026 |
TXU X N(M) |
Test X unequal |
| 027 |
TXL X N(M) |
Test X Less |
Group 03x Order Codes |
030 |
ANDS X N(M) |
Logical AND into Store |
| 031 |
ORS X N(M) |
Logical INCLUSIVE OR into Store |
| 032 |
ERS X N(M) |
Logical EXCLUSIVE OR into Store |
| 033 |
STOZ N(M) |
Store Zero |
| 034 |
DCH X N(M) |
Deposit Character |
| 035 |
DEX X N(M) |
Deposit Exponent |
| 036 |
DSA X N(M) |
Deposit Short Address |
| 037 |
DLA X N(M) |
Deposit Long Address |
Group 04x Order Codes |
040 |
MPY X N(M) |
Multiply |
| 041 |
MPR X N(M) |
Multiply and Round |
| 042 |
MPA X N(M) |
Multiply and Accumulate |
| 043 |
CDB X N(M) |
Convert Decimal to Binary |
| 044 |
DVD X N(M) |
Unrounded Double Length Divide |
| 045 |
DVR X N(M) |
Rounded Double Length Divide |
| 046 |
DVS X N(M) |
Single Length Divide |
| 047 |
CBD X N(M) |
Convert Binary to Decimal |
Group 05x Order Codes |
050 |
BZE X N |
Branch if X is Zero |
| 052 |
BNZ X N |
Branch if X is Not Zero |
| 054 |
BPZ X N |
Branch if X is Positive or Zero |
| 056 |
BNG X N |
Branch if X is Negative |
Group 06x Order Codes |
060 |
BUX X N |
Branch on Unit Indexing |
| 062 |
BDX X N |
Branch on Double Indexing |
| 064 |
BCHX X N |
Branch on Character Indexing |
| 066 |
BCT X N |
Branch on Count |
Group 07x Order Codes |
070 |
CALL X N |
Subroutine Entry |
| 072 |
EXIT X N |
Leave Subroutine |
074 (X=0) |
BRN N |
Unconditional Branch |
074 (X=1) |
BVS N |
Branch if V Set |
074 (X=2) |
BVSR N |
Branch if V Set; Leave V Clear |
074 (X=3) |
BVC N |
Branch if V Clear |
074 (X=4) |
BVCR N |
Branch if V Clear and Clear V |
074 (X=5) |
BCS N |
Branch if C is Set |
074 (X=6) |
BCC N |
Branch if C is Clear |
074 (X=7) |
BVCI N |
Branch if V Clear; Invert V |
| 076 |
BFP N |
Branch State of Floating-Point Accumulator or
Floating-Point Overflow |
Group 10x Order Codes |
100 |
LDN X N(M) |
Load Direct Operand into X |
| 101 |
ADN X N(M) |
Add Direct Operand into X |
| 102 |
NGN X N(M) |
Load the Complement of N |
| 103 |
SBN X N(M) |
Subtract Direct Operand from X |
| 104 |
LDNC X N(M) |
Load Direct Operand into X with Carry |
| 105 |
ADNC X N(M) |
Add Direct Operand into X with Carry |
| 106 |
NGNC X N(M) |
Load the Complement of N with Carry |
| 107 |
SBNC X N(M) |
Subtract Direct Operand from X with Carry |
Group 11x Order Codes |
110 (Nt=0) |
SLC X N(M) |
Shift Left Circular (Single Length) |
110 (Nt=1) |
SLL X N(M) |
Shift Left Logical (Single Length) |
110 (Nt=2) (Nt=3) |
SLA X N(M) |
Shift Left Arithmetic (Single Length) |
111 (Nt=0) |
SLC XX* N(M) |
Shift Left Circular (Double Length) |
111 (Nt=1) |
SLL XX* N(M) |
Shift Left Logical (Double Length) |
111 (Nt=2) (Nt=3) |
SLA XX* N(M) |
Shift Left Arithmetic (Double Length) |
112 (Nt=0) |
SRC X N(M) |
Shift Right Circular (Single Length) |
112 (Nt=1) |
SRL X N(M) |
Shift Right Logical (Single Length) |
112 (Nt=2) |
SRA X N(M) |
Shift Right Arithmetic (Single Length) |
112 (Nt=3) |
SRAV X N(M) |
Special Shift Right (Single Length) |
113 (Nt=0) |
SRC XX* N(M) |
Shift Right Circular (Double Length) |
113 (Nt=1) |
SRL XX* N(M) |
Shift Right Logical (Double Length) |
113 (Nt=2) |
SRA XX* N(M) |
Shift Right Arithmetic (Double Length) |
113 (Nt=3) |
SRAV XX* N(M) |
Special Shift Right (Double Length) |
| 114 |
NORM X N(M) |
Normalise a Single-Length Floating-Point Number |
| 115 |
NORM XX* N(M) |
Normalise a Double-Length Floating-Point Number |
| 116 |
MVCH X N(M) |
Move N Characters from the Character Address
specified in X to the Character Address specified
in X* |
| 117 |
SMO N(M) |
Supplementary Modifier to Operand of Next
Instruction |
Group 12x Order Codes |
120 |
ANDN X N(M) |
Logical AND Direct Operand into X |
| 121 |
ORN X N(M) |
Logical INCLUSIVE OR Direct Operand into X |
| 122 |
ERN X N(M) |
Logical EXCLUSIVE OR Direct Operand into X |
| 123 |
NULL |
No Operation |
| 124 |
LDCT X N(M) |
Load Count |
| 125 |
MODE N(M) |
Set Zero-Suppression Mode |
| 126 |
MOVE X N(M) |
Copy N Words from the Address in X to the Address
in X* |
| 127 |
SUM |
Sum N Words |
Group 13x Order Codes |
130 |
FLOAT N(M) |
Convert Fixed to Floating Point |
| 131 |
FIX N(M) |
Convert Floating Point to Fixed |
| 132 |
FAD X N(M) |
Floating Point Add |
| 133 |
FSB X N(M) |
Floating Point Subtract |
| 134 |
FMPY X N(M) |
Floating Point Multiply |
| 135 |
FDVD X N(M) |
Floating Point Divide |
136 (X=0) |
LFP N(M) |
Load Floating Point |
136 (X=1) |
LFPZ |
Load Floating Point Zero |
137 (X=0) |
SFP N(M) |
Store Floating Point |
137 (X=1) |
SFPZ N(M) |
Store Floating Point and Zeroise |
Group 14x Order Codes |
140 |
|
Unassigned |
| 141 |
|
Unassigned |
| 142 |
|
Unassigned |
| 143 |
|
Unassigned |
| 144 |
|
Unassigned |
| 145 |
|
Unassigned |
| 146 |
|
Unassigned |
| 147 |
|
Unassigned |
Group 15x Order Codes |
150 |
SUSBY X N(M) |
Suspend if Busy |
| 151 |
REL X N(M) |
Release Peripheral |
| 152 |
DIS X N(M) |
Disengage Peripheral |
| 153 |
|
Unassigned |
| 154 |
CONT X N(M) |
Read in More Program |
| 155 |
SUSDP X N(M) |
Suspend and Dump |
| 156 |
ALLOT X N(M) |
Allot Peripheral |
| 157 |
PERI X N(M) |
Initiate Peripheral Action |
Group 16x Order Codes |
160 (X=0) |
SUSTY N(M) |
Suspend and Type |
160 (X=1) |
DISTY N(M) |
Display Message |
160 (X=2) |
DELTY N(M) |
Delete and Type |
160 (X=7) |
160 7 N(M) |
Receive a Message |
161 (X=0) |
SUSWT N(M) |
Suspend and Await Operator Action |
161 (X=1) |
DISP N(M) |
Display Characters |
161 (X=2) |
DEL N(M) |
Delete the Program |
| 162 |
SUSMA X N(M) |
Test and Transfer to Common Storage |
| 163 |
AUTO X N(M) |
Activate and Enter Subprogram |
164 (X=0) |
SUSAR 0 |
Suspend Current Program Member and Reactivate
Master Program |
164 (X=1) |
SUSAR 1 |
Suspend Current Program Member Awaiting
Reactivation |
164 (X=2) |
SUSIN 2 |
Suspend Subprogram Awaiting Flag-Setting Interrupt or
AUTO |
164 (X=3) |
SUSIN 3 |
This is a variant of the SUSIN 2 statement |
164 (X=4) |
SUSIN 4 |
This is a variant of the SUSIN 2 statement |
| 165 |
GIVE X N(M) |
Give Information |
| 166 |
RRQ X N(M) |
Read or Replace Request Block |
| 167 |
167 X N |
Special Trusted Program instruction |
Group 17x Order Codes |
170 |
|
Unassigned |
| 171 |
|
Unassigned |
| 172 |
|
Unassigned |
| 173 |
|
Unassigned |
| 174 |
|
Unassigned |
| 175 |
|
Unassigned |
| 176 |
|
Unassigned |
| 177 |
|
Unassigned |
EXECutive Order Codes |
Executive Orders vary between machine ranges
(West Gorton and Stevenage), also between some models
within those ranges. |