Programmer's Card for Mano's Basic Computer

Symbol   Hex code   Example     Register Transfer Language
  AND      0xxx     AND <M>      AC <-- AC and M[xxx]
  AND      8xxx     AND <M> I    AC <-- AC and M[M[xxx]]
  ADD      1xxx     ADD <M>      AC <-- AC + M[xxx]
  ADD      9xxx     ADD <M> I    AC <-- AC + M[M[xxx]]
  LDA      2xxx     LDA <M>      AC <-- M[xxx]
  LDA      Axxx     LDA <M> I    AC <-- M[M[xxx]]
  STA      3xxx     STA <M>      M[xxx] <-- AC
  STA      Bxxx     STA <M> I    M[M[xxx]] <-- AC
  BUN      4xxx     BUN <M>      PC <-- M[xxx]
  BUN      Cxxx     BUN <M> I    PC <-- M[M[xxx]]
  BSA      5xxx     BSA <M>      M[xxx] <-- PC
                                   PC <-- M[xxx] + 1
  BSA      Dxxx     BSA <M> I    M[M[xxx]] <-- PC
                                   PC <-- M[M[xxx]] + 1
  ISZ      6xxx     ISZ <M>      M[xxx] <-- M[xxx] + 1
                                   if (M[xxx] = 0) then PC <-- PC + 1
  ISZ      Exxx     ISZ <M> I    M[M[xxx]] <-- M[M[xxx]] + 1
                                   if (M[M[xxx]] = 0) then PC <-- PC + 1

  CLA      7800     CLA          AC <-- 0
  CLE      7400     CLE          E <-- 0
  CMA      7200     CMA          AC <-- not AC (1's complement)
  CME      7100     CME          E <-- not E
  CIR      7080     CIR          AC (0-14) <-- AC (1-15)
                                   AC (15) <-- E
                                   E <-- AC (0)
  CIL      7040     CIL          AC (1-15) <-- AC (0-14)
                                   AC (0) <-- E
                                   E <-- AC (15)
  INC      7020     INC          AC <-- AC + 1
  SPA      7010     SPA          if (AC(15) = 0) PC <-- PC + 1
  SNA      7008     SNA          if (AC(15) = 1) PC <-- PC + 1
  SZA      7004     SZA          if (AC = 0) PC <-- PC + 1
  SZE      7002     SZE          if (E = 0) PC <-- PC + 1
  HLT      7001     HLT          S <-- 0 (stop flag)

  INP      F800     INP          AC <-- INPR
  OUT      F400     OUT          OUTR <-- AC
  SKI      F200     SKI          if (FGI = 1) PC <-- PC + 1
  SKO      F100     SKO          if (FGO = 1) PC <-- PC + 1
  ION      F080     ION          IEN <--- 1
  IOF      F040     IOF          IEN <-- 0


Symbol
Hex code
Example
Register Transfer Language
AND
0xxx
AND <M>
AC <-- AC and M[xxx]
AND 8xxx AND <M> I
AC <-- AC and M[M[xxx]]
ADD
1xxx
ADD <M> AC <-- AC + M[xxx]
ADD 9xxx ADD <M> I
AC <-- AC + M[M[xxx]]
LDA
2xxx
LDA <M> AC <-- M[xxx]
LDA Axxx LDA <M> I
AC <-- M[M[xxx]]
STA
3xxx
STA <M>
M[xxx] <-- AC
STA Bxxx STA <M> I
M[M[xxx]] <-- AC
BUN
4xxx
BUN <M> PC <-- M[xxx]
BUN Cxxx BUN <M> I
PC <-- M[M[xxx]]
BSA
5xxx
BSA <M> M[xxx] <-- PC
PC <-- M[xxx] + 1
BSA Dxxx BSA <M> I
M[M[xxx]] <-- PC
PC <-- M[xxx] + 1
ISZ
6xxx
ISZ <M> M[xxx] <-- M[xxx] + 1
if (M[xxx] = 0) then PC <-- PC + 1
ISZ Exxx ISZ <M> I
M[M[xxx]] <-- M[M[xxx]] + 1
if (M[M[xxx]] = 0) then PC <-- PC + 1
CLA
7800
CLA
AC <-- 0
CLE
7400
CLE E <-- 0
CMA
7200
CMA AC <-- not AC (1's complement)
CME
7100
CME E <-- not E
CIR
7080
CIR AC (0-14) <-- AC (1-15)
AC (15) <-- E
E <-- AC (0)
CIL
7040
CIL AC (1-15) <-- AC (0-14)
AC (0) <-- E
E <-- AC (15)
INC
7020
INC AC <-- AC + 1
SPA
7010
SPA if (AC(15) = 0) PC <-- PC + 1
SNA
7008
SNA if (AC(15) = 1) PC <-- PC + 1
SZA
7004
SZA if (AC = 0) PC <-- PC + 1
SZE
7002
SZE if (E = 0) PC <-- PC + 1
HLT
7001
HLT S <-- 0
INP
F800
INP AC <-- INPR
OUT
F400
OUT OUTR <-- AC
SKI
F200
SKI if (FGI = 1) PC <-- PC + 1
SKO
F100
SKO if (FGO = 1) PC <-- PC + 1
ION
F080
ION IEN <--- 1
IOF
F040
IOF IEN <-- 0