1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
Kurzreferenz zu DDT180 - Ein erweiterter DDTZ
Änderungen zum Original DDTZ [8101] sind mit "|" am |
rechten Rand markiert. |
Zusammenfassung der Kommandos
-----------------------------
> @
examine [substitute] displacement register @
Anzeigen und eventuell Ändern des Displacement-Registers
> A [startadresse]
Assemble Zilog Z180 mnemonics
Assemblieren von Z180-Befehlen
> B
display all breakpoints
Anzeigen aller Breakpoints
> B breakp [breakp..]
set breakpoints
Breakpoints setzen
> BX
clear all breakpoints
Löschen aller Breakpoints
> BX adresse [adresse..]
clear breakpoints
Breakpoints löschen
>>C[N][J] [befehlsanzahl]
>>C[N][J] W ausdruck
>>C[N][J] U ausdruck
trace over calls [No list] [Jumps only] /.While./.Until.
Tracen über CALLs [ohne Ausgabe] [nur Sprungbefehle]
/.solange./.bis.
>>D [startadr] [endadr]
Display memory in hex and ASCII
Auslisten des Speichers in HEX und ASCII
> Fkommandozeile |
specifiy filenames and command line |
File-Controlblocks und CP/M-Kommandozeile spezifizieren |
> G [startadr] [;breakp..]
Go [to start] [with temporary breakpoints]
Starte ein geladenes Programm, eventuell mit temporären
Breakpoints
> H |
display high and maximal size of files |
Höchste Adresse der zuletzt geladenen Datei, höchste |
Adresse aller geladenen Dateien (Max) und Ende des |
verfügbaren Speichers (Top) anzeigen. |
> HS |
display symbol list |
Liste der geladenen Symbole anzeigen |
> H ausdruck
compute hex and other expressions
Berechnen eines Ausdrucks
> H ausdruck ausdruck
Hex and other sum and difference
Summe und Differenz zweier Ausdrücke
>>I [port]
Input a byte from port
Einlesen eines Daten-Bytes von einem Port
>>L [startadr] [endadr]
List disassembled code
Listen eines Speicherbereichs in Z80-Mnemonics
> M[V] startadr endadr zieladr
Move memory [and verify]
Umladen eines Speicherbereiches in einen anderen, evtl.
Vergleichen
>>O [byte] [port]
Output a byte to a port
Ausgeben eines Datenbytes an einen Ausgabeport
> Q[J] startadr endadr bytes
Query memory for a byte string [Justified]
Durchsuchen des Speichers nach einer gegebenen Folge von
Bytes
> R [displacement] |
Read a binary or hex file and or symbol file [add displacement] |
Einlesen einer Binär- oder HEX-File und/oder einer Symboldatei |
in den Speicher, evtl. um "displacement" verschoben |
> S [startadr]
Substitute Memory
Anzeigen und Ändern von Daten im Speicher
>>T[N][J] [befehlsanzahl]
>>T[N][J] W ausdruck
>>T[N][J] U ausdruck
Trace [no List] [Jumps only] / .While. / .Until.
Tracen [ohne Ausgabe] [nur Sprungbefehle] /.solange./.bis.
> Vstartadr endadr zieladr
Verify (compare) two memory areas
Vergleichen zweier Speicherbereiche
> Wstartadr endadr
Write a file to disk
Ausschreiben eines Speicherbereichs in eine File
> X
eXamine all cpu registers
Anzeigen aller Register und des Befehls, auf den der
Programmzähler zeigt
> X register
eXamine (and substitute) a register
Anzeigen und eventuell Modifizieren eines Registers
> Y
examine all Y variables
Anzeigen aller Y-Variablen
> Yziffer0bis9
examine [and substitute] an Y variable
Anzeigen und eventuell Modifizieren einer Y-Variablen
> Z startadr endadr bytes
Zap (fill) memory with a byte string
Vorbesetzen eines Speicherbereiches mit einer Byte-Folge
Registernamen
-------------
A , F , B , C , D , E , H , L ,BC , DE , HL
A', F', B', C', D', E', H', L',BC', DE', HL'
IX oder X , IY oder Y , Sp oder S , PC oder P , I
Flags des F- und des F'-Registers:
S Sign Vorzeichen
Z Zero Null
H Half carry Uebertrag von Bit 3 nach Bit 4
V oVerflow/parity Ueberlauf/ gerade Parität
N Negation NEG, DEC, SUB o.ä. wurde ausgeführt
C Carry Uebertrag von Bit 7
E Interrupt Enabled Das Interrupt-Flag wird im DDTZ wie
ein Flag des F-Registers behandelt.
Variablen und Konstanten
------------------------
L Low Benutzerspeicher-Anfang. Festwert 100H
H High Höchste Adresse der letzten gelesenen
File
M Max Maximale Adresse aller gelesenen Files
T Top Oberes Ende des Benutzerspeichers
Z Zbase Basis/Startadresse von von DDT180 |
Wenn keine Symbole geladen: Z = T |
@ Displacement Register
$ beim Assemblieren Anfangsadresse des
Befehls sonst = PC
Y0..Y9 Frei verwendbare Variablen
^register Inhalt eines Registers
(adresse) Inhalt eines Speicherplatzes (Byte)
(adresse). Inhalt eines Speicherplatzes (Wort)
Ausdrücke
----------
In allen Situationen, in denen Zahlen eingegeben werden können,
ist auch die Eingabe von Ausdrücken erlaubt.
Ausdrücke sind im allgemeinen arithmetische Ausdrücke, können
aber auch (zum Formulieren von Bedingungen) Relationen sein.
Relationen bestehen aus zwei arithmetischen Ausdrücken, zwischen
denen einer der folgenden Relationsoperatoren steht:
= <> > >= <= <
Relationen haben den Wert -1 (=0FFFFH), wenn die Relation wahr
ist, 0 sonst.
z.B. der Ausdruck 1+2=3 hat den Wert -1, und 'A'>'B' den Wert 0
Ein arithmetischer Ausdruck hat die folgende Form
faktor arithmetikoperator faktor arith... faktor
Die Arithmetikoperatoren sind
+ - * / % Addition, Subtraktion, Mult., Division, Modulo
& ! # bitweise AND, OR, XOR
Ein Faktor hat die Form
[ausdruck] geklammerter Ausdruck
+faktor
-faktor Negation
~faktor bitweise NOT (1er-Komplement)
'a' Wert eines ASCII-Zeichens (a=druckbares Zeichen)
'a'. " mit gesetzem Bit 7
'ab' Wert zweier ASCII-Zeichen (a,b=druckbare Zeichen)
'ab'. " das letzte Zeichen mit gesetztem Bit 7
(ausdruck) ein Byte im Speicher
(ausdruck). ein Wort im Speicher
hhhh[H] Hex-Zahl (h=0..9,A..F oder a..f)
ddddd. Dezimal-Zahl (d=0..9)
bbbbbbbb"bbbbbbbb" Binär-Zahl (beliebig mit '"' unterteilt (b=0,1)
.symbol Wert aus Symboltabelle |
.s1:s2: ... :sn "Qualifiziertes Symbol" |
Enthält ein Ausdruck einen Relationsoperator, so werden erst die
beiden arithmetischen Ausdrücke berechnet und dann die Relation.
Ein arithmetischer Ausdruck wird von links nach rechts berechnet,
also ohne Beachtung "Punktrechnung vor Strichrechnung", die
Reihenfolge kann jedoch mit Klammern '[' und ']'geändert werden.
Ein Pluszeichen darf, wenn dabei der Ausdruck eindeutig bleibt,
weggelassen werden; z.B. ist @1000 dasselbe wie @+1000.
Ausdrücke dürfen keine Leerzeichen enthalten!
Parameter
---------
Am Beginn von DDTZ/DDT180 sind einige Werte gespeichert, die vom
Benutzer angepaßt werden können.
Adr Default Bedeutung
--------------------------------------------------------------------
Z4 'RST30' Opcode für Breakpoint (RST8 - RST38 möglich)
Z5 'NOP' Wird beim Entritt in DDTZ ausgeführt. Kann durch
EI oder DI Opcode (FB/F3) ersetzt werden.
Z6 'RET' Nicht ändern!
Z7 'JP BDOS' Nicht ändern! |
ZA 80 (50H) Bildschirmbreite |
ZB 16 (10H) Maximal erlaubte Symbol-Länge |
ZC 00 Bit 0=1: Gross/Kleinschrift von Symbolen beachten |
Bit 1=1: Symbole beim Laden konvertieren |
Bit 2=1: In Kleinbuchstaben konvertieren |
|