So that the debugger with their own programs does not come into conflict, it was laid out completely relokatibel. So you can do it also
BLOAD"S2:DEBUGGER.BIN", #Bank, address
load to each belieboge RAM address. The DEBUGGER stands if it without address specifications was loaded completely in front in the RAM with address &80C5 and can then with BLOAD "S2:DEBUGGER.BIN" be loaded. Without ram extended card it soltte with BLOAD "S2:DEBUGGER,BIN", #0, &c0c5 to be loaded and then with CALL &C0C5 be started.
Main menue
After a short copyright message the main menue appears. The individual menu options reach you through pressures of the key indicated in each case:
P-Proa program disassembilert indicate and start
D-DATA data as Hexdump indicate and change
S-step incrementation of the single step set
I-info. information about the program
R-Bload: Coded program load
W-Bsave: Coded program store
T-Table: Symbol table load
E-CLEAR: Symbol table delete
B-BREAK: BREAK POINT address set
L-Lprnt: Program disassembilert expressions
C-Confg: Pre-setting change and store
Q-Quit: Program leave
Further the < RCL> key indicates the seriennummer. Please Sle give these always on if you questions to the program have.
With < of the OFF> key you can the computer each tent switch off and with < the MODE> key leave you the debugger.
At input of addresses or otherwise itself the keys < cursors left >, < cursors right >, CL. BS, SHIFT IN and SHIFT DEL as used for the Korrektor use. Dle CTRL key switches between inserting and Ueberschrelb mode. The mode key breaks dle input off.
DATA
First you must enter the desired address. If you agree with the suggested address, it is sufficient to press ENTER. If the given address has the value of a symbolic mark, this is separated by "=" an indication, indicated with.
As address a hexadecimal number up to with four digits is to be indicated, which by a comma and the memory bank one follows. As bank is possible:
0-7: Bank 0-7
3B: Hidden basic ROM
4B: Japan Rome
20-27,
30-37: Specially. Bank change-over door large memory modules in Slot 2
X; Y: Disk X: and/or Y:, here the disk is regarded as virtual memory with the Adressberelch 0000-FFFF. If the disk is not write protected, and run gene one of the data with the change from the current sector on disk are written.
In place of the hexadecimal number for the address you can indicate also the name symbolic mark. If this in the loaded symbol table exists.
Now a 4-stelllges Hexdump with the pertinent addresses, bank and ASCII code, is indicated in which you can move with the arrow keys and change the data values.
Further key functions:
Double arrow key: Change-over of ASCII on Hex and in reverse
RCL: New address
MODE:Zurueck in the main menue
Prog
This menu option dlent for testing programs. Therefore Sle see first contents of all CPU registers. At right edge of the Anzelge stand the condition Carry and Zero flag, the sowle i-register and dle memory bank. With the arrow keys (quite and left) they can errelchen dle desired position, in order to change the registers. The registers can be changes also over certain DEF key:
DEF b: BCreg
DEF C: BC ' move
DEF A: AFreg
DEF f: AF'reg
DTE D: DEreg
DEF e: DE ' move
DEF x: Ix-move
DEF y: IYreg
DTE h: HLreg
DEF l: HL ' move
DEF s: FR-MOVE
DEF p: PC-MOVE
The stack pointer stands for &F560 at the beginning aut and should remain if possible when testing in the stack boron moose to &F500. If by the program which can be tested dle memory bank is set, Sle should not change these during the test procedure any longer, since this can lead otherwise to wrong results.
The arrow keys (on and off) serve for pre and page down the Disassembleranzeige.
Single step and BREAK POINT by a special simulation method does not carry out also on Rome ranges functioned and nevertheless dle lnterrupt control affected.
Since neither BREAK POINT nor single step in real time ablauten, no time-critical programs should e.g. disk or printing control, are tested. This would know hardware leading to defects in that.
Test functions:
DEF g. : Start without single step
Abort with reaching BREAK POINTS or at the abschilessenden RET. i.e. if the stack pointer is > &F560
ENTER: Sigle step
Like DEF g, but at the most as many instructions as adjusted with STEPS
SPACE: Instructions jump over
Like ENTER, but the instructions wirkilch are not implemented
DEF SPACE: Subroutine if the current address elnen subroutine reference with CALL or RST contains, dleses subroutine completely through-loud implements and at the Betehl behind the Aufrut is again continued, otherwise, like DEF g
Other keys:
Double arrow: change between register announcement and the current instruction (+ the 3 tolgenden) and in reverse
RCL: New address
MODE: Back in the main menue
A small Gag:
Go to the address &0112 (that is dle CLS routine) and pressing you DEF g. Thus you have also elne conception, as long dle simulation of the Betehle for single step and BREAK POINT lasts.
BREAK
Set BREAK POINTS
Naturally Sle can use also here symbolic names.
Step
Set for the incrementation (= make a deposit the instructions) elnes single steps.
Bload
If Sle load coded programs with this menu option, you the debugger, after you entered the file name, divides first the start address, bank. End address and autostart address also. Now you, if necessarily, only still the load address can to change. A possibly existing autostart is ignored.
As used from the appropriate basic instruction, you give file name, start address with bank here. End address and autostart on. If you do not wish an autostart, enter for this to &FFFF.
Table
With this menu option you can load dle symbol table for a program which can be tested. Indicate for this to the file names. Typically this symbol table was produced by the PC-16U0 assembler. Otherwise, the following file format must be kept, otherwise ERROR appears 157:
ASCII file with CTRL z at the file end (code &1A) of alphabetical after symbol name arranged cells with line END code CR + LF (&0D, &0a) and tolgendem structure:
max. 4-deg hexadecimal number
Space (code &20)
max. 6-deg symbol name
e.g.: &C0C5 start "
CLEAR
The symbol table in the memory deletes, if you do not need it momentarily
Lprnt
To expressions must you to starting and end address indicate. The program recognizes whether the plotter or the Centronics interface is attached. The Druckparamter defined in BASIC is kept. Respect Sle here particularly aut the correct line END code (with PCONSOLE "LPTx", code).
Example:
The following small coded program was translated with the assembler. It writes ' HELLO ' into the announcement.
Source text for PC-1600 assembler.
' hello
'
' Desoprogranm for that
' PC-1600 ASSEHBLER
' ---------------------------------------------------------------------------------------
EQU START &F900 ' the program is loaded into the standard variables
' ----------------------------------------------------------------------------------------
EQU CLS &0112 ' variable CLS is set with value &0112 (subroutine routine screen to delete)
EQU HOME &0109 ' variable HOME is gestezt with value &0109 (subroutine routine cursor to position left above)
EQU PRINT &OOEB ' variable PRINT is gestezt with value &00EB (subroutine routine shows indications from DE register to null bytes in the A-register)
EQU CR &0D ' variable CR is set with value &0D (13).
' ---------------------------------------------------------------------------------------
ORG START ' start address coded program
AUTO START ' the Maschienenprogramm is after Bload automatically starting
' ---------------------------------------------------------------------------------------
CALL CLS
CALL HOME
LD DE, TEXT
LD A, CR
CALL PRINT
RET
'
TEXT:
DEFB "* * hello **"
DEFB CR
'
END
With the assembly the following symbol table is produced:
0112 CLS
000D CR
0109 HOME
00EB PRINT
F900 START
F90F TEXT