Debugger-Disassember
|
Menüpunkt: Debugger / Disassembler |
|||||||||||||||||||
|
Menü: Tools -> Debugger / Disassembler -> Debugger / Disassembler |
|||||||||||||||||||
|
Mit Aufruf dieses Menüpunktes erhalten Sie eins der mächtigsten Programmierhilfswerkzeuges des Emu64. Es wird ein Debugger / Disassembler - Fenster geöffnet. Über einen Debugger ist es dem Programmierer möglich sich die verschiedenen Zustände von Registern und Leitungen beim Programmablauf anzusehen. Ein Disassembler wandelt den Maschinencode im RAM-Speicher in "Assembler" um, wodurch eine bessere Lesbarkeit eines Programmes entsteht. Solche Funktionen werden von Programmierer zu Suche von Fehlern und zur Untersuchung von Programmabläufen benötigt. Hierbei sind Kenntnisse der C64 Hardware und Assemblerprogrammierung notwendig. In diesem Fenster kann wie in einem Assembler-Monitor Programm geschrieben und sofort auf Herz und Niere getestet werden. Der Debugger wird komplett intuitiv bedient und man braucht keine Befehle auswendig lernen. |
|||||||||||||||||||
|
Screenshot: Debuggerfenster mit div. Hilfsmakierungen |
|||||||||||||||||||
|
Dieses Fenster ist in 8 Teilbereichen aufgeteilt. Es können 5 weitere Informationsfenster geöffnet und der Modus zwischen C64 & Floppy 1541 gewechselt werden. Im oberen Pull-Down Menü (A) kann zwischen den C64 - und 1541 Floppymodus gewechselt werden. Beim Wechsel ändert sich entsprechend die Anzeigeart. Mit den Knöpfen (G) und (H) können Teilbereiche des Debuggerfensters zur besseren Übersicht ein- und aufgeklappt werden. Über die Knöpfe (B), (C), (D), (E) und (F) können weitere kleine Fenster mit gesonderten Informationszuständen der Customs Chips VIC, SID, CIA 1, CIA 2 und IEC-BUS Leitungen angezeigt werden. Die einzelnen Fenster können Sie durch einmal anklicken über das |
|||||||||||||||||||
|
CPU Register Teilbereich (1) des Debuggerfenster |
|||||||||||||||||||
|
|
|
||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster C64 CPU 6510 Register |
Bild: Teilabschnitt Debuggerfenster Floppy CPU 6502 Register |
||||||||||||||||||
|
Entsprechend der Einstellung über das Pull-Down Menü (A) C64 oder Floppy, werden die möglichen CPU Register angezeigt. |
|||||||||||||||||||
|
|
|||||||||||||||||||
|
Die Register von PC bis SR lassen sich beliebig verändern. Sobald Sie mit der Maus eine Zahl hinter der Registerbezeichnung anklicken, wird ein Eingabefeld aktiv. Nun können Werte als Dezimal-, Hexa-($) oder Dualzahl(%) eingeben. Eine Eingabe muss mit der Taste RETURN bestätigt werden. Den Status der einzelnen Flags des Status Registers lassen sich mit einem Klick auf deren LED wechseln. |
|||||||||||||||||||
|
|||||||||||||||||||
|
CPU 65xx Interne Register Teilbereich (2) des Debuggerfenster |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster C64 CPU 6510 Interne Register |
|||||||||||||||||||
|
Dieser Bereich ist sehr interessant, wenn man ein Programm zyklengenau testen möchte. Hier sieht man ganz genau was im nächsten Zyklus passiert. Ändern lässt sich hier nichts. Die LED "CPU Wait" zeigt an, wenn die CPU vom VIC "betäubt" wurde. Der Micro Code ist eine Erfindung von mir, das bedeutet das jeder C64 Befehl aus sogenannten Micro Code besteht. In jedem Zyklus wird ein Micro Code Befehl ausgeführt. Was der Micro Code dann macht steht im grünen Bereich. |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster Floppy CPU 6502 Interne Register |
|||||||||||||||||||
|
Da unterschiedliche Prozessoren im C64II (6510) und 1541-II (6502) verwendet wurde, ändert sich entsprechend die Ausgabe der CPU Internen Register, bei Wechsel zwischen C64 und Floppymodus. |
|||||||||||||||||||
|
CPU Debug Control Teilbereich (3) des Debuggerfenster |
|||||||||||||||||||
|
|
|||||||||||||||||||
|
Hiermit können Sie den Programmablauf steuern.
Über den Schieberegler können Sie einen Wert (Zyklus in Sekunde) zwischen 1 und 59901 einstellen, der Einfluss auf die animierte Ablaufgeschwindigkeit im Debuggerfenster hat. |
|||||||||||||||||||
|
Leitungen Teilbereich (4) des Debuggerfenster |
|||||||||||||||||||
|
|
|
||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster C64 CPU 6510 Leitungen |
Bild: Teilabschnitt Debuggerfenster Floppy CPU 6502 Leitungen |
||||||||||||||||||
|
Entsprechend Ihres Modusauswahles werden die wichtigsten Leitungszustände zur CPU 6502 oder CPU 6510 (low oder high) angezeigt. |
|||||||||||||||||||
|
Disassembler / Assembler Teilbereich (5) des Debuggerfenster |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster Disassembler / Assembler |
|||||||||||||||||||
|
In diesen Teilabschnitt des Debuggerfensters steht ein Disassembler zur Verfügung. Der angezeigte Speicherbereich wird als disassambly angezeigt. In der ersten Spalte stehen die Speicheradressen, in der zweiten die Opcodes (illegale Opcodes werden rot dargestellt) und in der dritten Spalte steht der Inhalt (Wert / Adresse) des Opcodes. Mit dem Schiebebalken kann die Speicherbereichsansicht ($0000 bis $FFFF) verändert werden. Mit dem drei Eingabefeldern können Sie direkt Opcodes in den Speicher schreiben. Im Fensterbereich des Disassembler / Assembler kann ein Kontexmenü aufgerufen werden. Hierbei stehen folgende Funktionen zur Verfügung. |
|||||||||||||||||||
|
|||||||||||||||||||
|
Haltepunkte Teilbereich (6) des Debuggerfenster |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster Haltepunkte |
|||||||||||||||||||
|
In diesen Teilabschnitt des Debuggerfensters können Sie per Kontexmenü Haltepunkte aktivieren bzw deaktivieren. Wenn eine Haltepunktmatrix hinzugefügt wurde, können die Werte durch anklicken auf den Zahlen verändern. Hierzu wird ein Eingabefeld aktiv, was nach Eingabe des Zahlenwertes mit der Taste RETURN bestätigt werden muss. Der Name des Haltepunktes kann ebenfalls frei gewählt werden. |
|||||||||||||||||||
|
PC Verlauf (Programm Counter) Teilbereich (7) des Debuggerfenster |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster PC Verlauf |
|||||||||||||||||||
|
Im Programm Counter Verlauf werden die letzten 100 PC Werte gespeichert. Auch in diesen Fensterabschnitt kann ein Kontexmenü geöffnet werden, wobei die Exportierfunktion sich auf das Disassembler / Assembler Bereich bezieht. |
|||||||||||||||||||
|
Speichermonitor Teilbereich (8) des Debuggerfenster |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster Speicher C64 |
|||||||||||||||||||
|
Bild: Teilabschnitt Debuggerfenster Speicher Floppy 1541-II |
|||||||||||||||||||
|
Im letzten Teilabschnitt des Debuggerfenster wartet mit einen Speichermonitor und weiteren Statusanzeigen auf. Die Statusanzeige wird nur im C64 Modus aktiv, ansonsten wird sie ausgeblendet. Über die Statusanzeige sind Lese- und Schreibzugriff auf RAM, LO-RAM, HI-RAM, Kernal-ROM, BASIC-ROM, Char-ROM und I/O Block sichtbar. Im Speicherbereich haben Sie die Möglichkeit Manipulationen vorzunehmen. In dem beiden unteren Eingabefelder können Sie Speicheradresse und Wert eingeben. Ist das Auswahlkästchen Auto Adresse aktiviert, wird nach einem Return Befehl im Wert - Eingabefeld die Adresse um eins weitergezählt. Ein Kontexmenü zum exportieren von Speicherbereichen steht hier ebenfalls zur Verfügung. Der Speicherbereich wird mit Star- und Endadresse definiert und kann als Textdatei (TXT), C64 Programm (PRG) oder RAW Datei gespeichert werden. |
|||||||||||||||||||
|
VIC (Video Interface Chip) Auswahlknopf (B) des Debuggerfenster |
|||||||||||||||||||
|
Leider steht die Funktion noch nicht zur Verfügung. Zukünftig sollen über einen extra Fenster der Status des Video Interface Chip sichtbar gemacht werden. |
|||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
IEC-BUS Auswahlknopf (F) des Debuggerfenster |
|||||||||||||||||||
|
Bild: IEC BUS Statusfenster |
|||||||||||||||||||
|
Dieses Statusfenster wird durch anklicken des Kopfes IEC BUS aktiviert. Es werden die wichtigsten Leitungen des IEC Busses angezeigt. Sobald der C64 oder die Floppy nach außen einer der abgebildeten Leitungen nutzt wird die LED aktiv ("leuchtet grün").
|
|||||||||||||||||||
|
Rasterstrahlanzeige im C64-Fenster |
|
|
|
Screenshot: Emu64 V4.30 (C64.dll V4.32) / Rasterstrahl im Debug-Modus |
|
Beim Aufruf des Debugger / Disassembler wird seit dem C64.dll Patch auf V4.32 im C64-Fenster die Rasterstrahlposition optisch dargestellt. |
Copyright © 2009 - 2010, Thorsten Kattanek
Created with the Freeware Edition of HelpNDoc: Full featured Help generator