Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ZSID
SYMBOLIC INSTRUCTION DEBUGGER
COMMAND SUMMARY
Z-80 VERSION
DIGITAL RESEARCH
COPYRIGHT
Copyright 1979, 1981 by Digital Research. All rights reserved. No
part of this publication may be reproduced, transmitted, transcribed,
stored in a retrieval system, or translated into any language or
computer language, in any form or by any means, electronic,
mechanical, magnetic, optical, chemical, manual or otherwise, without
the prior written permission of Digital Research, Post Office Box 579,
Pacific Grove, California, 93950.
TRADEMARKS
CP/M is a registered trademark of Digital Research. Z-80 is a
registered trademark of Zilog. ZSID is a trademark of Digital
Research.
All information contained herein is proprietary to Digital Research.
ABOUT THIS MANUAL
The starting point for this PDF file was the plain text contained in
the file zsid.txt (OCRd from a CP/M manual) zipped in the file
zsid-m.zip, that was downloaded from www.cpm.z80.de, The Unoficial
CP/M Web Site.
Please, enter in this site to know how you can help to the CP/M
community working on CP/M manuals.
Miguel I. Garca Lpez, 24 May 2007.
Startup
Response
Letter commands
Command line
Literal numbers
Decimal numbers
Characters
Symbol references
Qualified symbols
Symbolic expressions
Unary plus/minus
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
Assemble
Call
Display memory
Fill memory
Go to program
Hex values
Input line
List code
Move memory
Pass counter
Read code/symbols
Set memory
Trace mode
Untrace mode
Examine cpu state
3.1
3.2
3.3
ZSID utilities
The hist utility
The trace utility
4.1
Implementation notes
5.1
5.2
Z80 mnemonics
Z80-cpu instruction set
1.1 / STARTUP
(1)
(2)
(3)
(4)
(5)
ZSID
ZSID
ZSID
ZSID
ZSID
x.y
x.HEX
x.UTL
x.y u.v
Form (1) starts ZSID without a test program, (2) loads the test
program x.y (y is normally COM), (3) loads x.HEX in Intel "hex"
format, (4) loads and executes utility x, (5) loads x.y with the
symbol table u.v (normally x.SYM).
Example:
ZSID SORT.COM SORT.SYM
1.2 / RESPONSE
(1)
(2)
(3)
#
SYMBOLS
NEXT PC
END
nnnn pppp eeee
Assemble
Call
Display
Fill Memory
Go
Hex
Input Line
List Mnemonics
M
P
R
S
T
U
X
Move
Pass Point
Read
Set Memory
Trace
Untrace
Examine
1.7 / CHARACTERS
ZSID accepts graphic ASCII characters within paired string apostrophes
('). Strings of length greater than two are truncated to the right.
The rightmost character of a two character string becomes the least
significant byte. A one character string has a high order 00 byte,
zero length strings are disallowed, and a pair of apostrophes within a
string reduces to a single apostrophe. Lower case letters are not
translated in strings.
Examples are:
'a' 'A' 'xy' '#' ''
1.8 / SYMBOL REFERENCES
ZSID symbolic expressions may involve symbol references when a symbol
table is present:
(1)
(2)
(3)
.s
@s
=s
Form (1) denotes the address of symbol s, (2) denotes the 16-bit value
at .s, (3) denotes the 8-bit value at .s, where s is a sequence of
characters matching a symbol table element.
1.9 / QUALIFIED SYMBOLS
ZSID searches for a symbol match starting at the first symbol loaded
until the first symbol matches. When duplicate symbols exist, a
qualified reference of the form
s1/s2/.../sn
matches symbols from left to right as the search proceeds sequentially
through the symbol table.
An example is:
ALPHA/GAMMA/I
1.10 / SYMBOLIC EXPRESSIONS
Expressions consist of a left to right sequence of literal numbers,
decimal numbers, character strings, and symbol references, separated
by plus ("+") and minus ("-") operators. Values are added or
subtracted, accordingly, with no overflow checks, to produce the final
16-bit result.
A leading minus, as in -x, is computed as 0-x. A leading plus, as in
+x, is computed as x'+x, where x' is the value of the last expression
typed. A sequence of n ^'s produces the n'th stacked value in the
program under test (see the G command). Blanks are not allowed within
expressions.
Examples are given with individual commands.
1.11 / UNARY PLUS/MINUS
For convenience, symbolic expressions may be preceded by
either a plus or minus sign taking the forms
(1)
(2)
+x
-x
For example
D.GAMMA+5,+#10
is equivalent to
D.GAMMA+5,.GAMMA+5+#10
Form (2) is computed as 0-X and thus
R-100
is equivalent to
RFFOO
2.1 / ASSEMBLE
(1)
(2)
(3)
As
A
-A
Cs
Cs,b
Cs,b,d
Ds
Ds,f
D
D,f
DWs
DWs,f
DW
DW,f
G
Gp
G,a
Gp,a
G,a,b
Gp,a,b
-G...
Form (1) starts the program under test from the current PC without
breakpoints. Execution is in real time. Form (2) is equivalent, but
sets PC=p before execution, (3) starts from the current PC with a
breakpoint at location a, (4) is similar to (3) but sets the PC to p.
Form (5) is equivalent to (3) but sets breakpoints at a and b, while
(6) presets the PC to p before execution. Upon encountering a
breakpoint (or an externally provided RST 7), the break address is
printed in the form:
*nnnn
and the optional breakpoints are cleared. Forms given by (7) parallel
(1) through (6), except "pass points" are not traced until the
corresponding pass count becomes zero (see P command). The symbol "^"
in an expression produces the topmost stacked value, which is used to
set a break following a subroutine call. Given that a breakpoint has
occurred at a subroutine, the command
G,^
Ha,b
Ha
H
Form (1) produces the hexadecimal sum (a+b) and difference (a-b) of
operands. Form (2) performs number conversion by typing the value of a
in the format:
hhhh #ddddd 'c' .ssss
where hhhh is a's hex value, dddd is the decimal value, c is the ASCII
value, if it exists, and ssss is the symbolic value, if it exists.
Form (3) prints the hex values for each symbol table element (abort
with rubout).
Examples:
H1OO,200
H#1000,#965
H.GAMMA+=I,@ALPHA-#10
H#53
H@X+=Y-5
2.7 / INPUT LINE
Ic1c2...cn
Initializes default low memory areas for the R command or the program
under test, as if the characters c1 through cn had been read and setup
at the console command processor level. Default FCB's are initialized,
and the default buffer is set to the initial input line.
Examples:
I x.dat
ix.inp y.out
I a:x.inp b:y.out $-p
ITEST.COM
I TEST.HEX TEST.SYM
2.8 / LIST CODE
(1)
(2)
(3)
(4)
Ls
Ls,f
L
-L...
hh
Pp
Pp,c
P
-Pp
-P
R
Rd
The I command sets up code and symbol files for subsequent loading
with the R command. Form (1) reads optional code and optional symbols
in preparation for program test, (2) is similar, but loads code and/or
symbols with the bias valued. The sequence:
I x.y
R
Sets up machine code file x.y (y is usually COM), and reads machine
code to the transient area. If y is HEX, the file must be in Intel
"hex" format. The sequence:
I x.y u.v
R
also reads the symbol file u.v (u is usually the same as x, and v is
normally SYM). The form:
I * u.v
R
skips the machine code load, and reads only the symbol file.
When a symbol file is specified, the response
SYMBOLS
shows the start of the symbol file read operation. Thus, a "?" error
before the SYMBOL message indicates a machine code read error, while
"?" following the SYMBOL message shows a symbol file read error.
Examples:
I COPY.COM
R
I SORT.HEX SORT.SYM
R
I merge.com merge.sym
R1OOO
I * test.sym
R-#256
2.12 / SET MEMORY
(1)
(2)
Ss
SWs
Form (1) sets memory locations in 8-bit format, (2) sets memory in 16bit "word" format. In either case, each address is displayed, along
with the current content. If a null line is entered, no change is
made, and the next address is prompted. If a value is typed, then the
data is changed and the next address is prompted. Input terminates
with either invalid input, or a single "." from the console. Long
ASCII input is entered with form (1) by typing a leading quote (")
followed by graphic characters, terminated by a carriage return.
Tn
T
Tn,c
T,c
-T ...
TW ...
-TW ...
Form (1) traces n program steps, showing the CPU state at each step,
while (2) traces one step. Form (3) is used with ZSID utilities, and
"calls" the utility function c at each trace step. Form (4) is similar
to (3), but traces only one step. Form (5) parallels (1) to (4), but
disables symbols.
Form (6) parallels (1) to (4), but performs "trace without call"
showing only local execution. Form (7) is similar to (6) with symbols
disabled.
Examples:
T1OO
T#30,.COLLECT
-TW=I,3E03
2.14 / UNTRACE MODE
(1)
(2)
(3)
(4)
U ...
-U
UW ...
-UW ...
X
Xf
Xr
or C.INITIAL
or
C.DISPLAY
10
Examples are:
Uffff,.collect
U#1000,3403
TW1OOO,.COLLECT
UW@GAMMA,.COLLECT
Pass points may be set during data collection to stop the monitoring
at the end of program areas under test. The actual initialization,
collection, and display functions depend upon the particular ZSID
utility.
3.2 / THE HIST UTILITY
The HIST utility creates a histogram of program execution between two
locations given during initialization. Program addresses are monitored
during U or T mode execution, with summary data displayed at any time.
Upon startup or reinitialization, HIST prompts with:
TYPE HISTOGRAM BOUNDS:
Respond with:
aaaa,bbbb
for a histogram between locations aaaa and bbbb, inclusive. Collect
data in U or T mode, then display results. Output is scaled to the
maximum collected value, accumulating until reinitialization.
An example:
ZSID HIST.UTL
TYPE HISTOGRAM BOUNDS 100,AOO
.INITIAL = 3E03
.COLLECT = 3E06
.DISPLAY = 3E09
#I SORT.COM SORT.SYM
#R
SYMBOLS
#UFF,.COLLECT
(register display and break)
#C.DISPLAY
(histogram display)
U1OOO,.COLLECT
(display and eventual break)
C.DISPLAY
(updated histogram display)
#C.INITIAL
(histogram bounds reset)
3.3 / THE TRACE UTILITY
The TRACE utility provides a dynamic backtrace of up to 256
instructions which ended at the current break address.
Instruction address collection occurs only in U or T mode.
Pass points can be active, however, during the data collection, and
will halt execution when the pass count becomes 1.
Initialization clears the accumulated instructions, collection records
the instruction address in a wraparound buffer, and display prints the
backtrace in decoded mnemonic form with symbol references and labels
when they occur. If "-A" Is in effect, only instruction addresses are
given. In this case, TRACE is loaded by typing:
ZSID
#-A
#I TRACE.UTL
#R
ADDRESSES ONLY
...
11
A,B
A,0FF
B,#255
(HL),'x'
HL,'ab'
100
.X
Z,@Y
HL,@X+=Z
.X/Y+5
Notable differences between MAC and the ZSID "A" command are that no
pseudo operations are allowed, operands are ZSID symbolic
expressions*, labels cannot be inserted, and register references must
be names, not numbers.
*In particular, note that
LD HL,'ab'
fills H with 'a' and L with 'b' due to the nature of ZSID expressions,
which is counter to the MAC convention.
The Z80 is a Federally registered trademark of Zilog Corporation.
12
SOURCE
STATEMENT
OPERATION
8E
DD8E05
FD8E05
8F
88
89
8A
8B
8C
8D
CE20
ADC
ADC
ADC
ADC
ADC
ADC
ADC
ADC
ADC
ADC
ADC
A,(HL)
A,(IX+d)
A,(IY+d)
A,A
A,B
A,C
A,D
A,E
A,H
A,L
A,n
ED4A
ED5A
ED6A
ED7A
ADC
ADC
ADC
ADC
HL,BC
HL,DE
HL,HL
HL,SP
86
DD8605
FD8605
87
80
81
82
83
84
85
C620
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
A,(HL)
A,(IX+d)
A,(IY+d)
A,A
A,B
A,C
A,D
A,E
A,H
A,L
A,n
09
19
29
39
ADD
ADD
ADD
ADD
HL,BC
HL,DE
HL,HL
HL,SP
DD09
DD19
DD29
DD39
ADD
ADD
ADD
ADD
IX,BC
IX,DE
IX,IX
IX,SP
FD09
FD19
FD29
FD39
ADD
ADD
ADD
ADD
IY,BC
IY,DE
IY,IY
IY,SP
A6
DDA605
FDA605
A7
A0
A1
A2
A3
A4
A5
E620
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
n
CB46
DDCB0546
FDCB0546
CB47
CB40
CB41
CB42
CB43
CB44
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
0,(HL)
0,(IX+d)
0,(IY+d)
0,A
0,B
0,C
0,D
0,E
0,H
13
CB45
CB4E
DDCB054E
FDCB054E
CB4F
CB48
CB49
CB4A
CB4B
CB4C
CB4D
CB56
DDCB0556
FDCB0556
CB57
CB50
CB51
CB52
CB53
CB54
CB55
CB5E
DDCB055E
FDCB055E
CB5F
CB58
CB59
CB5A
CB5B
CB5C
CB5D
CB66
DDCB0566
FDCB0566
CB67
CB60
CB61
CB62
CB63
CB64
CB65
CB6E
DDCB056E
FDCB056E
CB6F
CB68
CB69
CB6A
CB6B
CB6C
CB6D
CB76
DDCB0576
FDCB0576
CB77
CB70
CB71
CB72
CB73
CB74
CB75
CB7E
DDCB057E
FDCB057E
CB7F
CB78
CB79
CB7A
CB7B
CB7C
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
0,L
1,(HL)
1,(IX+d)
1,(IY+d)
1,A
1,B
1,C
1,D
1,E
1,H
1,L
2,(HL)
2,(IX+d)
2,(IY+d)
2,A
2,B
2,C
2,D
2,E
2,H
2,L
3,(HL)
3,(IX+d)
3,(IY+d)
3,A
3,B
3,C
3,D
3,E
3,H
3,L
4,(HL)
4,(IX+d)
4,(IY+d)
4,A
4,B
4,C
4,D
4,E
4,H
4,L
5,(HL)
5,(IX+d)
5,(IY+d)
5,A
5,B
5,C
5,D
5,E
5,H
5,L
6,(HL)
6,(IX+d)
6,(IY+d)
6,A
6,B
6,C
6,D
6,E
6,H
6,L
7,(HL)
7,(IX+d)
7,(IY+d)
7,A
7,B
7,C
7,D
7,E
7,H
14
CB7D
BIT 7,L
DC8405
FC8405
D48405
C48405
F48405
EC8405
E48405
CC8405
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CD8405
CALL nn
Unconditional Call to
Subroutine at nn
3F
CCF
BE
DDBE05
FDBE05
BF
B8
B9
BA
BB
BC
BD
FE20
CP
CP
CP
CP
CP
CP
CP
CP
CP
CP
CP
EDA9
CPD
EDB9
CPDR
EDA1
CPI
EDB1
CPIR
2F
CPL
27
DAA
Decimal Adjust
35
DD3505
FD3505
3D
05
0B
0D
15
1B
1D
25
2B
DD2B
FD2B
2D
3B
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
DEC
F3
DI
Disable Interrupts
102E
DJNZ e
FB
EI
Enable Interrupts
C,nn
M,nn
NC,nn
NZ,nn
P,nn
PE,nn
PO,nn
Z,nn
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
n
(HL)
(IX+d)
(IY+d)
A
B
BC
C
D
DE
E
H
HL
IX
IY
L
SP
Call Subroutine at
Location nn if Condition True
Acc
Decrement Operand
15
E3
DDE3
FDE3
EX (SP),HL
EX (SP),IX
EX (SP),IY
08
EX AF,AF'
EB
EX DE,HL
D9
EXX
76
HALT
ED46
ED56
ED5E
IM 0
IM 1
IM 2
ED78
ED40
ED48
ED50
ED58
ED60
ED68
IN
IN
IN
IN
IN
IN
IN
34
DD3405
FD3405
3C
04
03
0C
14
13
1C
24
23
DD23
FD23
2C
33
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
INC
DB20
IN A,(n)
EDAA
IND
EDBA
INDR
EDA2
INI
EDB2
INIR
C38405
E9
DDE9
FDE9
JP
JP
JP
JP
nn
(HL)
(IX)
(IY)
DA8405
FA8405
D28405
C28405
JP
JP
JP
JP
C,nn
M,nn
NC,nn
NZ,nn
A,(C)
B,(C)
C,(C)
D,(C)
E,(C)
H,(C)
L,(C)
(HL)
(IX+d)
(IY+d)
A
B
BC
C
D
DE
E
H
HL
IX
IY
L
SP
Increment Operand
16
F28405
EA8405
E28405
CA8405
JP
JP
JP
JP
P,nn
PE,nn
PO,nn
Z,nn
382E
302E
202E
282E
JR
JR
JR
JR
C,e
NC,e
NZ,e
Z,e
182E
JR e
02
12
77
70
71
72
73
74
75
3620
DD7705
DD7005
DD7105
DD7205
DD7305
DD7405
DD7505
DD360520
FD7705
FD7005
FD7105
FD7205
FD7305
FD7405
FD7505
FD360520
328405
ED438405
ED538405
228405
DD228405
FD228405
ED738405
0A
1A
7E
DD7E05
FD7E05
3A8405
7F
78
79
7A
7B
7C
ED57
7D
3E20
ED5F
46
DD4605
FD4605
47
40
41
42
43
44
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
(BC),A
(DE),A
(HL),A
(HL),B
(HL),C
(HL),D
(HL),E
(HL),H
(HL),L
(HL),n
(IX+d),A
(IX+d),B
(IX+d),C
(IX+d),D
(IX+d),E
(IX+d),H
(IX+d),L
(IX+d),n
(IY+d),A
(IY+d),B
(IY+d),C
(IY+d),D
(IY+d),E
(IY+d),H
(IY+d),L
(IY+d),n
(nn),A
(nn),BC
(nn),DE
(nn),HL
(nn),IX
(nn),IY
(nn),SP
A,(BC)
A,(DE)
A,(HL)
A,(IX+d)
A,(IY+d)
A,(nn)
A,A
A,B
A,C
A,D
A,E
A,H
A,I
A,L
A,n
A,R
B,(HL)
B,(IX+d)
B,(IY+d)
B,A
B,B
B,C
B,D
B,E
B,H
17
45
0620
ED4B8405
018405
4E
DD4E05
FD4E05
4F
48
49
4A
4B
4C
4D
0E20
56
DD5605
FD5605
57
50
51
52
53
54
55
1620
ED5B8405
118405
5E
DD5E05
FD5E05
5F
58
59
5A
5B
5C
5D
1E20
66
DD6605
FD6605
67
60
61
62
63
64
65
2620
2A8405
218405
ED47
DD2A8405
DD218405
FD2A8405
FD218405
6E
DD6E05
FD6E05
6F
68
69
6A
6B
6C
6D
2E20
ED4F
ED7B8405
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
B,L
B,n
BC,(nn)
BC,nn
C,(HL)
C,(IX+d)
C,(IY+d)
C,A
C,B
C,C
C,D
C,E
C,H
C,L
C,n
D,(HL)
D,(IX+d)
D,(IY+d)
D,A
D,B
D,C
D,D
D,E
D,H
D,L
D,n
DE,(nn)
DE,nn
E,(HL)
E,(IX+d)
E,(IY+d)
E,A
E,B
E,C
E,D
E,E
E,H
E,L
E,n
H,(HL)
H,(IX+d)
H,(IY+d)
H,A
H,B
H,C
H,D
H,E
H,H
H,L
H,n
HL,(nn)
HL,nn
I,A
IX,(nn)
IX,nn
IY,(nn)
IY,nn
L,(HL)
L,(IX+d)
L,(IY+d)
L,A
L,B
L,C
L,D
L,E
L,H
L,L
L,n
R,A
SP,(nn)
18
F9
DDF9
FDF9
318405
LD
LD
LD
LD
SP,HL
SP,IX
SP,IY
SP,nn
EDA8
LDD
EDB8
LDDR
EDA0
LDI
EDB0
LDIR
ED44
NEG
00
NOP
No Operation
B6
DDB605
FDB605
B7
B0
B1
B2
B3
B4
B5
F620
OR
OR
OR
OR
OR
OR
OR
OR
OR
OR
OR
EDBB
OTDR
EDB3
OTIR
ED79
ED41
ED49
ED51
ED59
ED61
ED69
OUT
OUT
OUT
OUT
OUT
OUT
OUT
(C),A
(C),B
(C),C
(C),D
(C),E
(C),H
(C),L
D320
OUT (n),A
EDAB
OUTD
EDA3
OUTI
F1
C1
D1
E1
DDE1
FDE1
POP
POP
POP
POP
POP
POP
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
n
AF
BC
DE
HL
IX
IY
Load Destination
with Top of Stack
19
F5
C5
D5
E5
DDE5
FDE5
PUSH
PUSH
PUSH
PUSH
PUSH
PUSH
CB86
DDCB0586
FDCB0586
CB87
CB80
CB81
CB82
CB83
CB84
CB85
CB8E
DDCB058E
FDCB058E
CB8F
CB88
CB89
CB8A
CB8B
CB8C
CB8D
CB96
DDCB0596
FDCB0596
CB97
CB90
CB91
CB92
CB93
CB94
CB95
CB9E
DDCB059E
FDCB059E
CB9F
CB98
CB99
CB9A
CB9B
CB9C
CB9D
CBA6
DDCB05A6
FDCB05A6
CBA7
CBA0
CBA1
CBA2
CBA3
CBA4
CBA5
CBAE
DDCB05AE
FDCB05AE
CBAF
CBA8
CBA9
CBAA
CBAB
CBAC
CBAD
CBB6
DDCB05B6
FDCB05B6
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
AF
BC
DE
HL
IX
IY
0,(HL)
0,(IX+d)
0,(IY+d)
0,A
0,B
0,C
0,D
0,E
0,H
0,L
1,(HL)
1,(IX+d)
1,(IY+d)
1,A
1,B
1,C
1,D
1,E
1,H
1,L
2,(HL)
2,(Ix+d)
2,(IY+d)
2,A
2,B
2,C
2,D
2,E
2,H
2,L
3,(HL)
3,(Ix+d)
3,(IY+d)
3,A
3,B
3,C
3,D
3,E
3,H
3,L
4,(HL)
4,(IX+d)
4,(IY+d)
4,A
4,B
4,C
4,D
4,E
4,H
4,L
5,(HL)
5,(IX+d)
5,(IY+d)
5,A
5,B
5,C
5,D
5,E
5,H
5,L
6,(HL)
6,(IX+d)
6,(IY+d)
20
CBB7
CBB0
CBB1
CBB2
CBB3
CBB4
CBB5
CBBE
DDCB05BE
FDCB05BE
CBBF
CBB8
CBB9
CBBA
CBBB
CBBC
CBBD
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
RES
6,A
6,B
6,C
6,D
6,E
6,H
6,L
7,(HL)
7,(IX+d)
7,(IY+d)
7,A
7,B
7,C
7,D
7,E
7,H
7,L
C9
RET
D8
F8
D0
C0
F0
E8
E0
C8
RET
RET
RET
RET
RET
RET
RET
RET
ED4D
RETI
ED45
RETN
CB16
DDCB0516
FDCB0516
CB17
CB10
CB11
CB12
CB13
CB14
CB15
RL
RL
RL
RL
RL
RL
RL
RL
RL
RL
17
RLA
CB06
DDCB0506
FDCB0506
CB07
CB00
CB01
CB02
CB03
CB04
CB05
RLC
RLC
RLC
RLC
RLC
RLC
RLC
RLC
RLC
RLC
07
RLCA
ED6F
RLD
CB1E
DDCB051E
FDCB051E
CB1F
CB18
CB19
CB1A
RR
RR
RR
RR
RR
RR
RR
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
(HL)
(IX+d)
(IY+d)
A
B
C
D
21
CB1B
CB1C
CB1D
RR E
RR H
RR L
1F
RRA
CB0E
DDCB050E
FDCB050E
CB0F
CB08
CB09
CB0A
CB0B
CB0C
CB0D
RRC
RRC
RRC
RRC
RRC
RRC
RRC
RRC
RRC
RRC
0F
RRCA
ED67
RRD
C7
CF
D7
DF
E7
EF
F7
FF
RST
RST
RST
RST
RST
RST
RST
RST
00H
08H
10H
18H
20H
28H
30H
38H
Restart to Location
DE20
9E
DD9E05
FD9E05
9F
98
99
9A
9B
9C
9D
ED42
ED52
ED62
ED72
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
SBC
A,n
A,(HL)
A,(IX+d)
A,(IY+d)
A,A
A,B
A,C
A,D
A,E
A,H
A,L
HL,BC
HL,DE
HL,HL
HL,SP
Subtract Operand
from Acc. with Carry
37
SCF
CBC6
DDCB05C6
FDCB05C6
CBC7
CBC0
CBC1
CBC2
CBC3
CBC4
CBC5
CBCE
DDCB05CE
FDCB05CE
CBCF
CBC8
CBC9
CBCA
CBCB
CBCC
CBCD
CBD6
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
22
DDCB05D6
FDCB05D6
CBD7
CBD0
CBD1
CBD2
CBD3
CBD4
CBD5
CBD8
CBDE
DDCB05DE
FDCB05DE
CBDF
CBD9
CBDA
CBDB
CBDC
CBDD
CBE6
DDCB05E6
FDCB05E6
CBE7
CBE0
CBE1
CBE2
CBE3
CBE4
CBE5
CBEE
DDCB05EE
FDCB05EE
CBEF
CBE8
CBE9
CBEA
CBEB
CBEC
CBED
CBF6
DDCB05F6
FDCB05F6
CBF7
CBF0
CBF1
CBF2
CBF3
CBF4
CBF5
CBFE
DDCB05FE
FDCB05FE
CBFF
CBF8
CBF9
CBFA
CBFB
CBFC
CBFD
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
2,(Ix+d)
2,(IY+d)
2,A
2,B
2,C
2,D
2,E
2,H
2,L
3,B
3,(HL)
3,(IX+d)
3,(IY+d)
3,A
3,C
3,D
3,E
3,H
3,L
4,(HL)
4,(IX+d)
4,(IY+d)
4,A
4,B
4,C
4,D
4,E
4,H
4,L
5,(HL)
5,(IX+d)
5,(IY+d)
5,A
5,B
5,C
5,D
5,E
5,H
5,L
6,(HL)
6,(IX+d)
6,(IY+d)
6,A
6,B
6,C
6,D
6,E
6,H
6,L
7,(HL)
7,(IX+d)
7,(IY+d)
7,A
7,B
7,C
7,D
7,E
7,H
7,L
CB26
DDCB0526
FDCB0526
CB27
CB20
CB21
CB22
CB23
CB24
CB25
SLA
SLA
SLA
SLA
SLA
SLA
SLA
SLA
SLA
SLA
(HL)
(IX+d
(IY+d)
A
B
C
D
E
H
L
23
CB2E
DDCB052E
FDCB052E
CB2F
CB28
CB29
CB2A
CB2B
CB2C
CB2D
SRA
SRA
SRA
SRA
SRA
SRA
SRA
SRA
SRA
SRA
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
CB3E
DDCB053E
FDCB053E
CB3F
CB38
CB39
CB3A
CB3B
CB3C
CB3D
SRL
SRL
SRL
SRL
SRL
SRL
SRL
SRL
SRL
SRL
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
96
DD9605
FD9605
97
90
91
92
93
94
95
D620
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
n
AE
DDAE05
FDAE05
AF
A8
A9
AA
AB
AC
AD
EE20
XOR
XOR
XOR
XOR
XOR
XOR
XOR
XOR
XOR
XOR
XOR
(HL)
(IX+d)
(IY+d)
A
B
C
D
E
H
L
n
Example Values
nn
d
n
e
EQU
EQU
EQU
584H
5
20H
30H
Note that ZSID accepts an address instead of a byte value in the jmp
relative commands.
24