.........1.........2.........3.........4.........5.........6.........7.........8

Mastering Machine Code on Your Spectrum
part 2 (ZX Computing, Dec'82/Jan'83)


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

[Due to insufficient space the following tables, which were supposed to be]
[printed with part 2 of the article, were actually printed in the next    ]
[issue with part 3. JG.]


- Table 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

c          NZ      Z       NC      C       PO      PE      P       M
---------------------------------------------------------------------------
CALL c,pq  C4qqpp  CCqqpp  D4qqpp  DCqqpp  E4qqpp  ECqqpp  F4qqpp  FCqqpp
JP c,pq    C2qqpp  CAqqpp  D2qqpp  DAqqpp  E2qqpp  EAqqpp  F2qqpp  FAqqpp
JR c,e     20ee    28ee    30ee    38ee    -       -       -       -
RET c      C0      C8      D0      D8      E0      E8      F0      F8


- Machine Code Instructions - - - - - - - - - - - - - - - - - - - - - - - -

INSTRUCTIONS          FLAGS               INSTRUCTIONS          FLAGS
Op-code     Hex-code  S Z - H - P N C     Op-code     Hex-code  S Z - H - P N C

ADC A,r     table 1   @ @ - @ - @ 0 @     LD r,r      table 1   - - - - - - - -
ADC HL,s    table 2   @ @ - @ - @ 0 @     LD s,mn     table 2   - - - - - - - -
ADD A,r     table 1   @ @ - @ - @ 0 @     LD A,(pq)   3Aqqpp    - - - - - - - -
ADD HL,s    table 2   - - - @ - - 0 @     LD s,(pq)   table 2   - - - - - - - -
ADD IX,s    table 2   - - - @ - - 0 @     LD (pq),A   32qqpp    - - - - - - - -
ADD IY,s    table 2   - - - @ - - 0 @     LD (pq),s   table 2   - - - - - - - -
AND r       table 1   @ @ - 1 - @ 0 0     
                                          LDI         EDA0      - - - 0 - x 0 -
BIT b,r     table 1   ? @ - 1 - @ 0 0     LDD         EDA8      - - - 0 - x 0 -
                                          (P/V becomes 0 if BC becomes 0)
CALL pq     CDqqpp    - - - - - - - -     LDIR        EDB0      - - - 0 - 0 0 -
CALL c,pq   table 3   - - - - - - - -     LDDR        EDB8      - - - 0 - 0 0 -
CCF         3F        - - - x - - 0 @
(H flag becomes previous value of C flag) NEG         ED44      @ @ - @ - @ 1 @
CP r        table 1   @ @ - @ - @ 1 @     NOP         00        - - - - - - - -
CPI         EDA1      @ x - @ - x 1 -
CPD         EDA9      @ x - @ - x 1 -     OR r        table 1   @ @ - 0 - @ 0 0
CPIR        EDB1      @ x - @ - x 1 -     OUT (n),A   D3nn      - - - - - - - -
CPDR        EDB9      @ x - @ - x 1 -     OUT (C),r   table 1   - - - - - - - -
(Z becomes 1 if BC becomes zero;          OUTI        EDA3      ? x - ? - ? 1 -
 P/V becomes 1 if A = (HL-1))             OUTD        EDAB      ? x - ? - ? 1 -
CPL         2F        - - - 1 - - 1 -     (Z becomes 1 if B becomes zero)
                                          OTIR        EDB3      ? 1 - ? - ? 1 -
DAA         27        @ @ - @ - @ - @     OTDR        EDBB      ? 1 - ? - ? 1 -
DEC r       table 1   @ @ - @ - @ 1 -
DEC s       table 2   - - - - - - - -     POP AF      F1        x x x x x x x x
DI          F3        - - - - - - - -     (Flags determined by byte at top of stack)
DJNZ e      10ee      - - - - - - - -     POP s       table 2   - - - - - - - -
                                          PUSH AF     F5        - - - - - - - -
EI          FB        - - - - - - - -     PUSH s      table 2   - - - - - - - -
EX AF,AF'   08        - - - - - - - -
EX DE,HL    EB        - - - - - - - -     RES b,r     table 1   - - - - - - - -
EX (SP),HL  E3        - - - - - - - -     RET         C9        - - - - - - - -
EX (SP),IX  DDE3      - - - - - - - -     RET c       table 3   - - - - - - - -
EX (SP),IY  FDE3      - - - - - - - -     RETN        ED45      - - - - - - - -
EXX         D9        - - - - - - - -     RETI        ED4D      - - - - - - - -

HALT        76        - - - - - - - -     RLCA        07        - - - 0 - - 0 @
                                          RRCA        0F        - - - 0 - - 0 @
IM 0        ED46      - - - - - - - -     RLA         17        - - - 0 - - 0 @
IM 1        ED56      - - - - - - - -     RRA         1F        - - - 0 - - 0 @
IM 2        ED5E      - - - - - - - -     RLC r       table 1   @ @ - 0 - @ 0 @
INC r       table 1   @ @ - @ - @ 0 -     RRC r       table 1   @ @ - 0 - @ 0 @
INC s       table 2   - - - - - - - -     RL r        table 1   @ @ - 0 - @ 0 @
IN A,(n)    DBnn      - - - - - - - -     RR r        table 1   @ @ - 0 - @ 0 @
IN r,(C)    table 1   @ @ - @ - @ 0 -     RRD         ED67      @ @ - 0 - @ 0 -
INI         EDA2      ? x - ? - ? 1 -     RLD         ED6F      @ @ - 0 - @ 0 -
IND         EDAA      ? x - ? - ? 1 -     RST 00      C7        - - - - - - - -
(Z becomes 1 if B becomes zero)           RST 08      CF        - - - - - - - -
INIR        EDB2      ? 1 - ? - ? 1 -     RST 10      D7        - - - - - - - -
INDR        EDBA      ? 1 - ? - ? 1 -     RST 18      DF        - - - - - - - -
                                          RST 20      E7        - - - - - - - -
JP pq       C3qqpp    - - - - - - - -     RST 28      EF        - - - - - - - -
JP c,pq     table 3   - - - - - - - -     RST 30      F7        - - - - - - - -
JP (HL)     E9        - - - - - - - -     RST 38      FF        - - - - - - - -
JP (IX)     DDE9      - - - - - - - -
JP (IY)     FDE9      - - - - - - - -     SBC A,r     table 1   @ @ - @ - @ 1 @
JR e        18ee      - - - - - - - -     SBC HL,s    table 2   @ @ - @ - @ 1 @
JR c,e      table 3   - - - - - - - -     SCF         37        - - - 0 - - 0 1
                                          SET b,r     table 1   - - - - - - - -
LD (BC),A   02        - - - - - - - -     SLA r       table 1   @ @ - 0 - @ 0 @
LD A,(BC)   0A        - - - - - - - -     SRA r       table 1   @ @ - 0 - @ 0 @
LD (DE),A   12        - - - - - - - -     SLR r       table 1   @ @ - 0 - @ 0 @
LD A,(DE)   1A        - - - - - - - -     SUB r       table 1   @ @ - @ - @ 1 @
LD I,A      ED47      - - - - - - - -
LD R,A      ED4F      - - - - - - - -     XOR r       table 1   @ @ - 0 - @ 0 0
LD A,I      ED57      @ @ - 0 - x 0 -
LD A,R      ED5F      @ @ - 0 - x 0 -
(P/V is set to interrupt storage flag)
LD SP,HL    F9        - - - - - - - -
LD SP,IX    DDF9      - - - - - - - -
LD SP,IY    FDF9      - - - - - - - -


--
Another Fine Product transcribed by:
Jim Grimwood (jimg@globalnet.co.uk), Weardale, England
--
