Files
Digital-Research-Source-Code/MPM OPERATING SYSTEMS/MPM I/MPM I SOURCE/14/apnote05.tex
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

115 lines
4.0 KiB
TeX
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

D I G I T A L R E S E A R C H
P. O. Box 579, Pacific Grove, CA 93950, (408) 649-3896
*** MP/M 1.0 ***
Application Note #05
Debugging an XIOS or a Resident System Process
----------------------------------------------
An XIOS or a resident system process can be debugged using
DDT or SID running under CP/M 1.4 or 2.0. The debugging
technique is outlined in the following steps:
1.) Using GENSYS running under either CP/M or MP/M generate
a MPM.SYS file which specifies the top of memory as 'C0'H.
...
Top page of memory = C0
...
Also while executing GENSYS specify the breakpoint
restart number as that used by the CP/M SID or DDT which you
will be executing. This restart is usually #7.
...
Breakpoint RST # = 7
...
2.) If a resident system process is being debugged make
certain that it is selected for inclusion in MPM.SYS.
3.) Using CP/M 1.4 or 2.0, load the MPMLDR.COM file into
memory.
A>DDT MPMLDR.COM
DDT VERS 2.0
NEXT PC
1A00 0100
4.) Place a 'B' character into the second position of
default FCB. This operation can be done with the 'I' command:
-IB
5.) Execute the MPMLDR.COM program by entering a 'G'
command:
-G
6.) At point the MP/M loader will load the MP/M operating
system into memory, displaying a memory map.
MP/M 1.0 Application Note #05 (Cont'd)
7.) If you are debugging an XIOS, note the address of the
XIOS.SPR memory segment. If you are debugging a resident system
process, note the address of the resident system process. This
address is the relative 0000H address of the code being debugged.
You must also note the address of SYSTEM.DAT.
8.) Using the 'S' command, set the byte at SYSTEM.DAT + 2
to the restart number which you want the MP/M debugger to use.
Do not select the same restart as that being used by the CP/M
debugger.
...
Memory Segment Table:
SYSTEM DAT C000H 0100H
...
-SC002
C002 07 05
9.) Using the 'X' command, determine the MP/M beginning
execution address. The address is the first location past
the current program counter.
-X
....................... P = 08CD .....
10.) Begin execution of MP/M using the 'G' command, specifying
any breakpoints which you need in your code. Actual memory address
can be determined using the 'H' command to add the code segment
base address given in the memory map to the relative displacement
address in your XIOS or resident system process listing.
The following example shows how to set a breakpoint to
debug an XIOS list subroutine:
Given the following memory map-
XIOS SPR B800H 0500H
Begin MP/M execution with the following breakpoint-
-G8CE,B80F
11.) At this point you have MP/M running with CP/M and its
debugger also in memory. Since interrupts are left enabled during
operation of the CP/M debugger when a breakpoint is reached, care
must be taken to ensure that interrupt driven code does not
execute through the point at which you have broken.