( | Im Anhang sind einige Änderungen angegeben, die sich speziell auf eine verbesserten Version von DASM beziehen.) |
- | .SYM : | Diese Datei besteht aus Informationen über Labels |
- | .CTL : | Diese Datei besteht aus Informationen über Programmcode oder Konstanten |
- | .DOC : | Diese Datei enthält optionalen Kommentar |
Rdatei.COM
Danach taucht eine Menge Text über Statistik auf. DASM lädt nämlich die .COM Datei nicht in den Speicher ab 0100H sondern mit einem Versatz, der von der Länge von DASM abhängig ist. Hier sollte man sich die höchste Adresse merken, diese wird im weiteren Verlauf als HA bezeichnet. (Bei der Statistik Ausgabe, durch das Kommando ?, ist dies die .COM End Adresse -1, bei REZ ist das die Endadresse bei der Angabe PRGM). Nach dem Einlesen der Datei sollte zunächst nach vorhandenen ASCII Textstellen, danach dann nach Labels gesucht werden.
QA100,HA
QB100,HA
Sdatei.ALL
Jetzt werden die Dateien .CTL, .SYM und .DOC angelegt, wie auch auf dem Bildschirm zu sehen ist. Dann fragt DASM, ob eine neue .MAC Datei angelegt werden soll, diese Frage ist an dieser Stelle mit N zu beantworten.
Rdatei.COM
Rdatei.CTL
Rdatei.SYM
Rdatei.DOC
Rdatei.ALL
Um alle Dateien zu laden, kann DASM (nicht REZ) auch aufgerufen werden mit der Zeile DASM datei.Ladr
kann man sich nun den disassemblierten Text auf dem Bildschirm anschauen.Lvon,bis | Anzeige ab Adresse "von" bis Adresse "bis" |
L,bis | Anzeige ab laufender Adresse bis zu "bis" |
L | Anzeige der nächsten Adressen |
L=nn
ändert, die Anzahl Zeilen, wenn nur L eingegeben wird. Der voreiligestellte Wert liegt bei 20 Zeilen.Zur Beachtung : | "nn" ist eine Hexzahl! - Also für 20 Zeilen gilt die Hexzahl 14 |
L=nn,adr
entspricht der Kombination von
L=nn
Ladr
Daddr
Dvon,bis
D,bis
D
D=nn
E5,.BDOS
eingegeben. Zu beachten ist hierbei der Punkt vor dem symbolischen Namen. Es erfolgt eine Meldung, daß dieses Label gegen L0005 ausgetauscht wurde.E6,.BDOS+1
Hieran erkennt man eine angenehme Eigenschaft von DASM, daß nämlich nicht für jedes Label Lxxxx auch ein eigenständiges Label benötigt wird. Zu beachten ist aber, daß DASM nicht prüft, ab die Eingabe korrekt ist. DASM akzeptiert auchE66,.BDOS+1
Dies kann aber zu Schwierigkeiten führen, wenn der Quelltext, assembliert wird.E100,.TPA | Symbol 'TPA' an Adresse 0100H einsetzen |
L100 | Disassemblieren ab 0100H |
L.TPA | Wie L100 |
DS
oder von einem bestimmten Symbol an mitDS.symbol
Da die Symbole alphabetisch sortiert werden, gibt das KommandoDS.X
alle Symbole von X bis Z aus.K,symbol
Die Bearbeitung der Symboltabelle ist später in der Datei .SYM zufinden. Nachdem alle Symbole vernünftig umbenannt sind, kann nun die Kontrolltabelle bearbeitet werden. Diese Tabelle sorgt bei den gewohnten Pseudo-Opcodes für Speicherreservierungen. DASM hat einen Teil davon bereits selbst angelegt bei der Ausführung des Befehls A.Cadr, wort
"adr" bezeichent dabei eine beliebige Adresse innerhalb des von der .COM Datei belegten Speichers. "wort" ist dann eine Kontroll Information wie folgt:B | Erzeugt den Pseudocode "DB", gefolgt von einem oder mehrerer Zeichen |
H | Erzeugt, den Pseudocode "DB", jedoch sind die Konstanten in Hexformat dargestellt (existiert nicht bei REZ) |
W | Erzeugt den Pseudocode "DW" gefolgt von einer 16 Bit Konstanten |
S | Erzeugt, den Pseudocode "DS", reserviert also Speicher |
I | Schaltet um auf Maschinencode |
E | Erzeugt den Pseudocode "END", kennzeichnet also das Ende der Datei |
K | Löscht den Kontrolleintrag an dieser Stelle |
C | Ausgabe der gesamten Kontrolltabelle |
Cadr | Ausgabe der Kontrolltabelle ab Adresse "adr" |
C35F,S | Definiert Bereich ab hier als Reservierung |
C467,I | Setzt Bereich zurück auf Maschinencode |
?
holt man sich dazu die Speicherbelegung auf den Bildschirm und wählt die höchste verfügbare Adresse als Startadresse für Kommentare (Bei REZ ist dies die höchste Adresse bei PRGM zuzüglich dem OFFSET). Lautet die Adresse z.B. 3500H, so wird der Start der Kommentartabelle gesetzt mitU3500
Danach können Kommentare bearbeitet werden mit den Kommandos;adr,komm | Einfügen eines Kommentars "komm" an Adresse "adr" |
;adr | Anzeigen des Kommentars an Adresse "adr" |
; | Anzeigen der gesamten Kommentare |
;adr,OFF | Ausschalten der Adresskommentare ab Adresse "adr" |
;adr,ON | Einschalten der Adresskommentare ab Adresse "adr" |
( | Der Ausdruck "Adresskommentare" besagt, daß hinter den Labels die Originalhexadresse als Kommentar angezeigt wird. Der Grundzustand ist OFF) |
Sdatei.ALL
oder aber einzeln mit
Sdatei.CTL
Sdatei.SYM
Sdatei.DOC
Rdatei.ALL
Nach einer vielleicht letzten Bearbeitung muß auf jeden Fall der BefehlSdatei.ALL
eingegeben werden. Im Gegensatz zu vorher ist alerdings nun die Frage von DASM, ob eine .MAC Datei erstellt werden soll, mit Y zu beantworten. Dies bedeutet momentan nur, daß eine Datei datei.MAC erzeugt wird und alle Daten, die auf dem Bildschirm erscheinen nun auch in diese Datei geschrieben werden,. Zuerst müssen alle Labels, die außerhalb des Programms liegen (wie z.B. BDOS), als Konstante (EQU) dem System mitgeteilt werden. Dies geschieht mit dem BefehlQP100,HA
wobei HA wieder die höchste .COM Adresse ist (s.o.). Will man den Vorspann auch auf den Bildschirm ausgeben, so ist das Q wegzulassen. Vor den Konstanten wird als Vorspann noch in die Datei geschrieben.Z80 | Umschalten M80 auf Z80 Kode |
ASEG | Absolutes Segment setzen |
ORG 0100H | Programm startet ab 0100H |
QL100,HA
Das Q schaltet wieder die Ausgabe auf den Bildschirm ab.Z
Abschliessend liegt nun die Datei datei.MAC vor. Diese kann jetzt mit einem Editor modifiziert und anschliessend, bis das Programm "steht", assembliert werden. Letzte Hinweise Neben den besprochenen Befehlen verfügt DASM noch über weitere Kommandos, deren Gebrauch allerdings nicht so oft vorkommen dürfte. Diese sindFwort,adr | Suchen einer 16 Bit Konstanten "wort" ab Adresse "adr". Ausgabe der Adressen, wo "wort" gefunden wurde. Abbruch mit beliebiger Taste. |
Fwort | Suchen von "wort" ab letzter Adresse |
F | Fortsetzung der Suche |
O | Anzeige des aktuellen Offsets |
Oadr | Offset neu setzen auf Adresse "adr" |
X | Löschen aller Tabellen und Restart DASM. Dadurch wird der Weg frei für eine neue Arbeit mit DASM |
Iadr,off | Addiert, den Wert "off" zur Symboltabelle ab Adresse "adr", so daß alle betroffenen Symbole beim Listen mit diesem Offset versehen angezeigt werden (Dieser Befehl existiert nicht bei REZ). |
?Z80?
eingefügt. Neue DASM Version Es existiert eine neuere Version von DASM, die sich in einigen Punkten von der beschriebenen Version unterscheidet:S*.CTL
Hiermit wird die Kontrolldatei der aktuellen Datei geschrieben. Ob eine aktuelle Datei existiert, wird durch das Kommando ? angezeigt.