
FILE: DDTZ.DOC

ANLEITUNG zum DDTZ
Developement Debugging Tool for Z80 microcomputers

Zusammenfassung der Befehle:

> @			examine [and substitute] the displacement register @
> A [startadresse]	Assemble
> B			display all Breakpoints
  B breakp [breakp..]	set Breakpoints
  BX			clear all Breakpoints
  BX adresse [adresse..]	clear Breakpoints
>>C[N][J] [befehlsanzahl]	trace over Calls [No list] [Jumps only]
  C[N][J] W ausdruck		..Wile..
  C[N][J] U ausdruck		..Until..
>>D [startadr] [endadr]		Display memory in hex and ascii
> Fcommandozeile		specify Filename and command line
> G [startadr] [;breakp..]	Go [to start] [with temporary breakpoints]
> H				display High and maximal size of files
> H ausdruck			compute Hex and other expressions
  H ausdruck ausdruck		Hex and other sum and difference
>>I [port]			Input a byte from port
>>L [startadr] [endadr]		List disassembled code
> M[V] startadr endadr zieladr	Move memory [and Verify]
>>O [byte] [port]		Output a byte to port
> Q[J] startadr endadr bytes	Qery memory for a byte string [Justified]
> R [displacement]		Read a binary or hex file [add displacement]
S startadr			Substitute memory
>>T[N][J] [befehlsanzahl]	Trace [No list] [Jumps only]
  T[N][J] W ausdruck		..Wile..
  T[N][J] U ausdruck		..Until..
> V startadr endadr zieladr	Verify (compare) two memory areas
> W startadr endadr		Write a file to disk
> X				eXamine all cpu registers
  X register			eXamine [and substitute] a register
> Y				examine all Y variables
  Yziffer0bis9			examine [and substitute] an Y variable
> Z startadr endadr bytes	Zap (fill) memory with a byte string

---

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 Paritaet
N	Negation	NEG, DEC, SUB o.ae. ausgefuehrt
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		Hoechste Adresse der letzten gelesenen File
M	Max		Maximale Adresse aller gelesenen Files
T	Top		Oberes ende des Benutzerspeichers
@			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)

Aufruf des DDTZ:

	DDTZ
  oder	DDTZ d:filename.ext
Bei beiden Aufrufen laedt das Disk Operating System das DDTZ bei
Adresse 100H beginnend in den Speicher. Das DDTZ verlagert sich
danach direkt vor das BDOS und ueberschreibt dabei den CCP. Der
Adressteil des Befehls JP BDOS auf Adresse 5 wird erniedrigt,
um dem Anwenderprogramm die durch das DDTZ verringerte Speichergroesse
mitzuteilen. Der urspruenglich vom DDTZ belegte Speicher wird daraufhin
mit Nullen geloescht.
Wurde im Aufruf ein Filename angegeben, so laedt das DDTZ die File
in den Speicher. Nach Ausgabe des Prompt-Zeichens '>' ist das DDTZ
betriebsbereit.


Allgemeines zum Gebrauch des DDTZ:

Ausdruecke:

In allen Situationen, in denen Zahlen eingegeben werden koennen, ist
auch die Eingabe von Ausdruecken erlaubt.
Ausdruecke haben die Form
	arithmetischerausdruck
  oder	arithmetischerausdruck relationsoperator arithmetischerausdruck
Die relationsoperatoren sind
=  <>  >  >=  <=  <
Der ausdruck hat den Wert -1, 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 allgemeine Form
	faktor arithmetikoperator faktor arith... faktor
Die Arithmetikoperatoren sind
+ - * / %	Plus, Minus, Multiplikation, Division, Modulo
& ! #		bitweise AND, OR, XOR

Ein Faktor hat Die Form
[ausdruck]	geklammerter Ausdruck
+faktor
-faktor		Negation
~faktor		bitweise NOT
'a'		Wert eines ASCII-Zeichens
'a'.		  "  mit gesetztem Bit 7
'ab'		Wert zweier ASCII-Zeichen
'ab'.		  "  das niederwertige mit gesetztem bit 7
(ausdruck)	ein Byte im Speicher
(ausdruck).	ein Wort im Speicher
variable	eine der oben aufgezaehlten Variablen
hhhh[H]		Hex-Zahl
ddddd.		Dezimal-Zahl
bbbbbbbb"bbbbbbbb" Binaer-Zahl (beliebig mit '"' unterteilt)

Enthaelt ein Ausdruck einen Relationsoperator, so werden erst die
beiden arithmetischen Ausdruecke 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 ']' geaendert werden.
Ausdruecke duerfen keine Blanks enthalten.

Befehle:

Befehle beginnen mit einem der Zeichen '@' bis 'Z', eventuell gefolgt
von weiteren optionalen Buchstaben, sowie Argumenten. Wird eine
optionale Anfangsadresse weggelassen, so wird die Adresse benutzt,
bei der Befehl zuletzt beendet wurde. Wird eine optionale Endadresse
weggelassen, so wird der Befehl (z.B. L oder D) so lange ausgefuehrt,
bis etwa ein Bildschirm vollgeschrieben ist. Ein weggelassenes optionales
Argumemt, hinter dem weitere Argumente angegeben werden sollen, muss durch
ein Komma ersetzt werden. Zwischen zwei Argumenten muss ein Blank,
ein Tab (^I) oder ein Komma stehen.

Bei Befehlen, die eine Start- und eine Endadresse erfordern, kann
anstelle der Endadresse auch der Buchstabe 'S', gefolgt von einer
Laengenangabe verwendet werden.
  z.B. bedeutet
