Start

Damit der Debugger mit ihren eigenen Programmen nicht in Konflikt gerät, wurde er völlig relokatibel ausgelegt. So können Sie ihn mit

BLOAD"S2:DEBUGGER.BIN",#Bank,Adresse

an jede belieboge RAM-Adresse laden. Der DEBUGGER steht wenn er ohne Adressangaben geladen wurde ganz vorne im RAM bei Adresse &80C5 und kann dann mit BLOAD "S2:DEBUGGER.BIN" geladen werden. Ohne Ramerweiterung soltte er mit BLOAD "S2:DEBUGGER.BIN",#0,&C0C5 geladen und dann mit CALL &C0C5 gestartet werden.

Hauptmenue

Nach einer kurzen Copyright-Meldung erscheint das Hauptmenue. Die einzelnen Menuepunkte erreichen Sie durch Drücken der jeweils angegebenen Taste:

P-Proa   Programm disassembilert anzeigen und starten
D-Data   Daten als Hexdump anzeigen und ändern
S-Step   Schrittweite des single Step setzen
I-Info    Informationen über das Programm

R-Bload:  Maschinenprogramm laden
W-Bsave: Maschinenprogramm speichern
T-Table:  Symboltabelle laden
E-Clear:  Symboltabelle löschen

B-Break:  Breakpoint-Adresse setzen
L-Lprnt:  Programm disassembilert ausdrucken
C-Confg:  Voreinstellungen ändern und speichern
Q-Quit :  Programm verlassen

Weiterhin zeigt dle <RCL>-Taste dle Seriennummer an. Bitte geben Sle diese immer an wenn Sie Fragen zum Programm haben.

Mit der <OFF>-Taste konnen Sle den Rechner jederzelt abschalten und mit der <MODE>-Taste verlassen Sie den Debugger.

Bei der Eingabe von Adressen o.ä. Iassen sich dle Tasten <Cursor links>, <Cursor rechts>, CL. BS, SHIFT-INS und SHIFT-DEL wie gewohnt zur Korrektor benutzen. Dle CTRL-Taste schaltet. zwischen Einfüge- und Überschrelb-Modus um. Die MODE-Taste bricht dle Eingabe ab.
 
 

Data
Zunächst müssen Sie die gewünschte Adresse eingeben. Falls Sie mit der vorgeschlagenen Adresse einverstanden sind, genügt es ENTER zu drücken. Wenn die vorgegebene Adresse den Wert einer symbolischen Marke hat, wird diese durch ein "=" Zeichen getrennt, mit angezeigt.

Als Adresse ist eine bis zu 4-stellige Hexadezimalzahl anzugeben, die von einem Komma und der Speicher-Bank gefolgt wird. Als Bank ist moeglich:

     0-7 : Bank 0-7
     3B : Verstecktes BASIC-ROM
     4B : Japan-ROM
     20-27 ,
     30-37: Extra. Bankumschaltung tür große Speichermodule in Slot 2
     X; Y : Diskette X: bzw. Y:, hierbei wird die Diskette als virtueller Speicher mit dem        Adressberelch 0000-FFFF angesehen. Wenn die Diskette nicht schreibgeschützt Ist, werden Anderungen der Daten beim Wechsel aus dem aktuellen Sektor auf Diskette geschrieben.

Anstelle der Hexadezimalzahl für die Adresse können Sie auch den Namen einer symbolische Marke angeben. Falls diese In der geladenen Symboltabelle existiert.

Nun wird ein 4-stelllges Hexdump mit den dazugehörigen Adressen, Bank und ASCII-Codes angezeigt, In dem Sie mit den Pfeiltasten herumwandern und die Datenwerte ändern können.

Weitere Tastenfunktionen:

      Doppelpfeil: Umschaltung von ASCII auf Hex und umgekehrt
      RCL : Neue Adresse
      MODE:Zurück Ins Hauptmenü
 
 

Prog
Dieser Menuepunkt dlent zum Testen von Programmen. Daher sehen Sle zunächst den Inhalt aller CPU-Register. An rechten Rand der Anzelge stehen der Zustand des Carry- und Zero-Flag, sowle das I-Register und dle Speicherbank. Mit den Pfeiltasten (recht und links) können sie dle gewünschte Position errelchen, um die Register zu ändern. Dle Register lassen sich auch über bestimmte DEF-Tastenkombinarlonen auwählen:

DEF-B: BCreg
DEF-C : BC 'reg
DEF-A: AFreg
DEF-F : AF'reg

DEE-D: DEreg
DEF-E : DE 'reg
DEF-X: IXreg
DEF-Y: IYreg

DEE-H: HLreg
DEF-L : HL ' reg
DEF-S: SPreg
DEF-P: PCreg

Der Stackpointer steht zu Beginn aut &F560 und sollte beim Testen möglichst im Stack-Borelch bis &F500 bleiben. Wenn durch das zu testende Programm dle Speicherbank gesetzt wird, sollten Sle diese während des Testvorgangs nicht mehr selbst ändern, da dies sonst zu falschen Ergebnissen führen kann.

Die Pfeiltasten (auf und ab) dienen zum vor- und rückwärtsblättern der Disassembleranzeige.

Single Step und Breakpoint Werden durch ein besonderes Simulationsverfahren verwirklicht. das auch auf ROM-Bereichen funktioniert und dennoch dle lnterrupt-Steuerung nicht beeinflusst.

Da weder Breakpoint noch Single Step In Echtzeit ablauten, sollten keine zeitkritischen Programme. wie z.B. Disketten- oder Druckersteuerung, getestet werden. Dies könnte zu Defekten in der Hardwareführen.
 

Testfunktionen:

DEF-G . : Start ohne Single Step
  Abbruch beim Erreichen des Breakpoints oder am abschileßenden RET. d.h. wenn der Stackpointer >&F560 ist
 ENTER : Sigle Step
  Wie DEF-G, aber höchstens so viele Befehle wie mit STEP eingestellt
SPACE : Befehle überspringen
  Wie ENTER, aber die Befehle werden nicht wirkilch ausgeführt

DEF-SPACE: Unterprogramm ausführen wenn die aktuelle Adresse elnen Unterprogramm-Aufruf mit CALL oder RST enthält, wird dleses Unterprogramm komplett durchlauten und am Betehl hinter dem Aufrut wieder angehalten, sonst ,wie DEF-G
 

Weltere Tastentunktionen:

Doppelpfeil: Umechaltung zwischen Registeranzeige und dem aktuellen Befehl (+ den 3 tolgenden) und umgekehrt
RCL: Neue Adresse
MODE: Zurück Ins Hauptmenue

Eln klelner Gag:
Gehen Sle eiumal zur Adresse &0112 (das ist dle CLS-Routine) und drücken Sie DEF-G. Damit haben Sie auch elne Vorstellung, wie lang dle Simulation der Betehle für Single Step und Breakpoint dauert.
 

Break
Setzen des Breakpoints
Natürlich können Sle auch hier symbolische Namen verwenden.

Step
Setzen der Schrittweite (=Anzahle der Befehle) elnes Single Steps.

Bload
Wenn Sle Maschinenprogramme mit diesem Menuepunkt laden, teilt Ihnen der Debugger, nachdem Sie den Dateinamen eingegeben haben, zunächst die Startadresse, Bank. Endadresse und Autostart-Adresse mit. Jetzt können Sie, wenn nötig, erst noch die Ladeadresse ändern. Ein eventuell vorhandener Autostart wird ignoriert.

Wie vom entsprechenden BASIC-Befehl gewohnt, geben Sie hier Dateiname, Startadresse mit Bank. Endadresse und Autostart an. Wenn Sie keinen Autostart wünschen,geben Sie hierfür  &FFFF ein.

Table
Mit diesem Menuepunkt können Sie dle Symboltabelle für ein zu testendes Programm laden. Geben Sie hierzu den Dateinamen an. Typischerweise wurde diese Symboltabelle durch den PC-16U0 Assembler erzeugt. Falls nicht, muß folgendes Dateiformat eingehalten werden, sonst erscheint ERROR 157:

ASCII-Datel mit CTRL-Z am Datel-Ende (Code &1A) Alphabetisch nach Symbolnamen geordnete Zellen mit Zeilenend-Code CR + LF (&0D,&0A) und tolgendem Aufbau:

max. 4-stelllge Hexadezimalzahl
Space (Code &20)
max. 6-stelllger Symbolname
z.B.: &C0C5 Start"

Clear
Löscht dle Symboltabelle im Speicher, wenn Sie sie momentan nicht benötigen

Lprnt
Zum Ausdrucken müssen Sie ledlgilch Start- und Endadresse angeben. Das Programm erkennt selbst, ob der Plotter oder das Centronics-interface angeschlossen ist. Die in BASIC definierten Druckparamter werden eingehalten. Achten Sle hierbei besonders aut den richtigen Zeilenend-Code (mit PCONSOLE "LPTx",,Code).
 

Beispiel:

Folgendes kleine Maschinenprogramm wurde mit dem Assembler übersetzt. Es schreibt 'HALLO' in die Anzeige.
Quelltext für PC-1600 Assembler.
 

'Hallo
'
'Desoprogranm für den
'PC-1600 ASSEHBLER
' ----------------------------------------------------------------------------------------
EQU START &F900 'Das Programm wird in die Standardvariablen geladen
' -----------------------------------------------------------------------------------------
EQU CLS     &0112       ' Variable CLS wird mit Wert &0112 gesetzt ( Unterprogrammroutine Bildschirm löschen)
EQU HOME &0109       ' Variable HOME wird mit Wert &0109 gestezt ( Unterprogrammroutine Cursor links Oben positionieren)
EQU PRINT &OOEB    ' Variable PRINT wird mit Wert &00EB gestezt ( Unterprogrammroutine Zeige Zeichen ab DE-Register bis Endzeichen im A-Register)
EQU CR       &0D          ' Variable CR wird mit Wert &0D ( 13 ) gesetzt.
' ----------------------------------------------------------------------------------------
ORG START            ' Startadresse Maschinenprogramm
AUTO START          ' Das Maschienenprogramm soll nach Bload automatisch Starten
' ----------------------------------------------------------------------------------------
CALL CLS
CALL HOME
LD DE, TEXT
LD A,CR
CALL PRINT
RET
'
TEXT:
DEFB "** Hallo **"
DEFB CR
'
END
 

Bei der Assemblierung wird folgende Symboltabelle erzeugt:

0112 CLS
000D CR
0109 HOME
00EB PRINT
F900 START
F90F TEXT