JOHNNIAC Operations as of June 1, 1963

Definitions and Notes

A         Accumulator
MQ        Multiplier Quotient Register
M         Word in Mth address in Internal Storage
A[20-39]  Digits in positions 2^-20 through 2^-39 in word in A
c->       Control goes to
&         Logical (digit by digit) product intersection 

A copy order (101) directed to the plotter as selected by 100 XXX6 gates
only the contents of the specified memory word to the Plotter register
with the following meaning:

M[0-6]    Circle Radius
M[7-18]   X Magnitude
M[21-24]  Character Selection
M[25]     Circle Drawing
M[26]     Line Drawing
M[27]     Arm Selection
M[28-39]  Y Magnitude

Instruction word layout:
    M[0-6]   Left Operation
    M[7-18]  Left Address
    M[19-20] Left and right address Indirect Address bits. Not used if
             Indirect Addressing is turned off via console toggle.
    M[21-27] Right Operation
    M[28-39] Right Address

Op  Mnemonic  Description
--- --------  -----------
000 NOP       Proceed to next instruction
001 TNL       If A < 0, c-> left operation in M
002 TPL       If A >= 0, c-> left operation in M
003 TFL       If overflow, c-> left operation in M
004 LM        Clear MQ, M -> MQ
005 TNR       If A < 0, c-> right operation in M
006 TPR       If A >= 0, c-> right operation in M
007 TFR       If overflow, c-> right operation in M

010 TRL                 c-> left operation in M
011 T1L       If T1 on, c-> left operation in M
012 T2L       If T2 on, c-> left operation in M
013 T3L       If T3 on, c-> left operation in M
014 TRR                 c-> right operation in M
015 T1R       If T1 on, c-> right operation in M
016 T2R       If T2 on, c-> right operation in M
017 T3R       If T3 on, c-> right operation in M

020 RA        Clear A, M -> A
021 RS        Clear A, -M -> A
022 RAV       Clear A, |M| -> A
023 RSV       Clear A, -|M| -> A
024 A         M + A -> A
025 S         -M + A -> A
026 AV        |M| + A -> A
027 SV        -|M| + A -> A

030 MR        Clear A, M  MQ rounded -> A
031 MNR       Clear A, -M  MQ rounded -> A
032 M         Clear A, M  MQ -> A and MQ
033 MN        Clear A, -M  MQ -> A and MQ
034 MB        M  MQ + 2^-39  [A + (1[-1] - A[-1])] -> A and MQ
035 MNB       -M  MQ + 2^-39  [A + (1[-1] - A[-1])] -> A and MQ
036 MA        M  MQ + 2^-39  A -> A and MQ
037 MNA       -M  MQ + 2^-39  A -> A and MQ

040 DS        A / M -> MQ, r -> A
041 DNS       A / -M -> MQ, r -> A
044 D         (A + 2^-39  MQ) / M -> MQ, r -> A
045 DN        (A + 2^-39  MQ) / -M -> MQ, r -> A

050 ST        A -> M
051 SOL       A[0-6] -> M[0-6]
052 SAL       A[7-19] -> M[7-19]
053 SHL       A[0-19] -> M[0-19]
054 SAB       A[7-19] and A[28-39] -> M[7-19] and M[28-39]
055 SOR       A[20-27] -> M[20-27]
056 SAR       A[28-29] -> M[28-39]
057 SHR       A[20-39] -> M[20-39]

060 STQ       Clear A, MQ -> A and M
061 SNQ       Clear A, -MQ -> A and M
062 SVQ       Clear A, |MQ| -> A and M
063 SNV       Clear A, -|MQ| -> A and M
064 AQS       MQ + A -> A and M
065 SQS       -MQ + A -> A and M
066 AVS       |MQ| + A -> A and M
067 SVS       -|MQ| + A -> A and M

070 SRC       Clear MQ, Shift A right n places, zeros into A[0]
071 CLC       Clear MQ, circular shift A and MQ left n places,
                   couple MQ[0] to A[39] and A[0] to MQ[39]
072 LRC       Clear MQ, power shift A and MQ right n places,
                   couple A[39] to MQ[0]
073 LLC       Clear MQ, power shift A and MQ left N places,
                   couple zeros into MQ[39]; MQ[1] to A[39]
074 SRH       Shift A right n places, zeros into A[0]
075 CLH       Circular shift A and MQ left n places, 
                   couple MQ[0] to A[39] and A[0] to MQ[39]
076 LRH       Power shift A and MQ right n places,
                   couple A[39] to MQ[1]. A[0] -> MQ[0]
077 LLH       Power shify A and MQ left n places,
                   Couple zeros into MQ[39], MQ[1] to A[39]

100 SEL       Select I/O
                   Address part:  XXX0 Primasy Feed Reader
                                  XXX1 Secondary Feed Reader
                                  XXX2 Feed Punch
                                  XXX3 Feed Punch and Echo
                                  XXX4 Select left 80 columns of Printer
                                  XXX5 Select right 80 columns of Printer
                                  XXX6 Select Plotter
101 C         Copy; M -> 40 leftmost selected columns
                    A -> 40 rightmost selected columns
104 DIS       Display
105 HUT       Hoot
106 EJ        Address part:  XXX0 Restore one page
                             XXX1 Advance one print line
                             XXX2 Advance two print lines
107           Read Clock -> A (Added after June 1, 1963)

110 RD        Read Drum words to M and memory addresses following
              numerically.  Denoting MQ as xxx f1f2f3f4 dpb l1l2l3l4,
              the f's determine the first drum address and the l's the
              last drum address. d selects the drum, p the position of the
              heads, and b, the bank to read.
111 WD        Write M and word in memory numerically following to drum.
              The NQ has the same signifigance as in 110.

120 ZTA       Clear A
121           Clear A
122           Clear A
123           Clear A
124 PI        M & A -> A
125 NI        -M & A -> A
126 PMI       |M| & A -> A
127 NMI       -|M| & A -> A

130 HTL       Halt, c -> left operation in M 
131 H1L       Halt if H1 on, c -> left operation in M
132 H2L       Halt if H2 on, c -> left operation in M
133 H3L       Halt if H3 on, c -> left operation in M
134 HTR       Halt, c -> right operation in M
135 H1R       Halt if H1 on, c -> right operation in M
136 H2R       Halt if H2 on, c -> right operation in M
137 H3R       Halt if H3 on, c -> right operation in M

140           Write line buffer
141           Read line buffer
142           Write SCR
143           Read SCR
144           Search all SCRs for match
145           Search all SCRs for mismatch
146           Display Graphic I/O
147           Read Graphic I/O Tablet


