[<<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