[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
---------------------------------------------------------------------------
DEBUG.COM bis DOS 3.2
---------------------------------------------------------------------------
Zweck: Assemblierte Programme testen und ver.ndern.
Format: DEBUG [Datei[Kommando[Parameter]]]
Einsatz: DEBUG bietet die M.glichkeit vorhandene Programme (Dateien
mit den Erweiterungen .EXE oder .COM) anzusehen, schrittweise
auszuf.hren und zu testen, sowie zu .ndern, auch patchen
genannt.
DEBUG steht f.r debuging, was mit entwanzen, Fehler entfernen
.bersetzt werden kann. Entwanzen hat hierbei seinen Ursprung
in einem tagelang nicht gefundenen Fehler des ersten Elek-
tronen-Rechners, der durch einen Kurzschlu. an einer R.hre
verursacht worden war, den ein K.fer (Englisch Bug) hervor-
gerufen hatte.
Der Start von DEBUG bewirkt:
1.) Die Segmentregister CS, DS, ES und SS zeigen auf das
erste freie Segment nach dem geladenen Programm.
2.) Der Instruction Pointer (IP-Register) wird auf 0100h
gesetzt.
3.) Die Register BX und CX enthalten die L.nge des Programms,
wobei in BX das h.herwertige Byte und in CX das nieder-
wertige Byte steht. Das Programm steht dann ab Offset 100h
des niedrigsten freien Segments im Speicher.
4.) Alle anderen Register werden auf Null gesetzt.
Kommandos: Alle 18 Kommandos bestehen aus einem Buchstaben, wobei 17
Kommandos einen oder mehrere Parameter enthalten k.nnen:
A [Adresse]
(assemble) Start der Eingabe eines Assembler-Programms [ab
Adresse]. Es d.rfen keine Symbole verwendet werden, und alle
nummerischen Werte m.ssen hexadezimal eingegeben werden.
C Bereich Adresse
(compare) Der Bereich wird mit dem gleich langen Bereich ab
Adresse verglichen.
D Bereich oder auch D Adresse
(dump) Hexdump ausgeben.
E Adresse [Daten]
(enter) Speicherinhalte .ndern und anzeigen.
F Bereich Daten
(fill) Speicherbereich f.llen.
G [=Adresse [Adresse]]
(go) Programm starten und Breakpoints setzen.
H Wert1 Wert2
(hex) Hexadezimale Werte addieren und subtrahieren.
I Adresse
(input) Portadresse auslesen.
L [Adresse [Laufwerk:Sector Anzahl]]
(load) Datei laden.
M Bereich Adresse
(move) Speicherbereich kopieren.
N [Pfad]Datei
(name) Dateiname f.r das Kommando L oder W definieren.
O Portadresse Byte
(output) Byte an Portadresse ausgeben.
Q
(quit) DEBUG beenden.
R [Register]
(register) Inhalt des Registers ausgeben oder .ndern.
S Bereich Daten
(search) Speicherbereich durchsuchen.
T [=Adresse][Anzahl]
(trace) Programm schrittweise ausf.hren.
U Bereich
(unassemble) Speicherbereich disassemblieren.
W [Adresse [Laufwerk:Sector Anzahl]]
(write) Datei auf Datentr.ger speichern.
Adresse: XXXX:YYYY
Bereich: Adresse, Adresse
Daten: "String"|Hex Hex Hex ...
Portadresse: XXXXhex
Laufwerk: 0|1|2|3
Anzahl: X[X][X][X]hex
Wert: XX[XX]hex
Beispiele: I. Patch f.r command.com:
Bei Aufruf von "Dir" auf eine leere Diskette erscheint nur:
Keine Datei(en) gefunden.
Um auch die Meldung der Kapazit.t zu bekommen (Z.B: 0 Datei(en)
362496 Byte frei) ist command.com (erfolgreich getestet nur
mit MS-DOS 3.2 & 3.3) wie folgt zu patchen: (In MS-DOS 4.01
funktioniert dies nicht.)
DEBUG COMMAND.COM
-S 0000 7fff E9 AF FE
;Nach Auffinden der Byte-Folge den Sprungbefehl ab dieser
;Adresse mit drei .nops. .berschreiben:
-A xxxx:yyyy
nop
nop
nop
;Schreiben und debug verlassen
-W
-Q
II. Auflisten auch versteckter (hidden) Dateien mit DIR etc.
unter DOS 3.3 und DOS 4.0 durch Patchen von Command.com:
DEBUG COMMAND.COM
-S 100FFFF C6065B0010 ; nach C6065B0010 suchen
-XXXX:YYYY ; Ergebnis
-E YYYY C6065B00F7 ; mit C6065B00F7 ersetzen
-W
-Q
III. Keyboard.sys-Patch f.r Punkt/Komma
In der Deutschen Version des MS-DOS-Tastaturtreibers liegt auf
dem Zahlenblock ein Komma und kein Punkt, wie ihn viele Anwen-
dungen zur Daten-Eingabe fordern.
a) Suchen nach der Byte-Folge:
00 C0 01 53 2C 00 00 31 00 05 00 14 FF FF 28 00
b) Ersetzen des 5. Werts (2C) durch 2E
IV. Warmstart mit [Alt-Ctrl-Del] abschalten, bzw. verhindern:
a) Suchen im Tastaturtreiber KEYB??.COM nach der Folge:
C7 06 72 00 34 12 EA 00 00 FF FF
b) ersetzen durch
90 90 90 90 90 90 90 90 90 90 90
V. Ctrl-Break & Ctrl-C f.r Stapel-Programme abschalten.
DEBUG COMMAND.COM
e 13c
.. ;Der Wert sollte 2E lauten, sonst
CF ;geht es bei dieser DOS-Version nicht!
w
q
VI. Exe2Bin f.r DOS 4.01
exe2bin.com aus DOS 3.3 an DOS 4.01 anpassen:
REN EXE2BIN.EXE *.DAT
DEBUG EXE2BIN.DAT
-S CS:100 900 3D 031E
;Die Bytefolge 031E steht f.r die Versionsnummer 3.30
-XXXX:YYYY
-E YYYY 3D 0401
-W
-Q
REN EXE2BIN.DAT *.COM
VII. Gel.schte Dateien retten
DEBUG
-L CS: 100 0 5 9
-D
;Nun wird das Directory angezeigt.
;Solange D <ENTER> eingeben, bis gel.schte Datei gefunden ist.
;Dann steht hinter dem Doppelpunkt in der Adresse XXXX:YYYY
;F.r N nimmt man den "gro.en" Anfangs-Buchstaben der urspr.ng-
;lichen Datei. (Z.B. B f.r brief.txt)
-E XXXX "N"
-W CS: 100 0 5 9
-Q
Vorsicht: Die Benutzung von DEBUG sollte nur durch fortgeschrittene
Benutzer mit Erfahrung in Assembler erfolgen, da die Gefahr
erheblicher Datenverluste gegeben ist. Eine falsche Anwendung
kann beispielsweise dazu f.hren, da. der gesamte Inhalt
einer Festplatte nicht mehr f.r DOS erkennbar ist.
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson