home *** CD-ROM | disk | FTP | other *** search
- DDTZ v2.5 is a rework of DDTY 2.2.5 for improved functionality, bug
- extermination, and complete Z80 support. In general DDTZ is compat-
- ible with Digital Researchs DDT, but has added and extended commands
- and many fewer bugs. All Z80 instructions can be dis/assembled.
- DDTZ will correctly trace (T and U commands) both Z80 and 8080 instr-
- uctions, depending on what CPU is executing.
-
- DDTZ v2.5M is a variant with commands compatible with the Microsoft
- PC/MSDOS DEBUG program. The "Untrace" command is replaced by the
- "Unassemble" command, and other commands are renamed. See below.
- This is designed to prevent foul-ups when switching between the
- MSDOS and CPM systems. The only differences between DDTZ and the
- "M" version are in the command transfer table and sign-on message.
- If you use this I suggest renaming it to be "DEBUG".
-
- DDTY v2.5 is an assembly time option for DDTZ, which eliminates the
- Z80 opcodes on the A and L commands. It will still trace Z80 code
- correctly. Useful where disk space is short.
-
- As did the DR version, when a program is loaded above the area
- holding the A and L (and now K) command code, these commands are
- disabled and the memory released to the user. Thus DDTZ can use as
- little as 3k total memory space. Unlike the original, DDTZ will not
- overwrite itself on program loads (except hex files).
-
- All input parameters can be supplied as any one of:
-
- a. hexadecimal (as original)
- b. decimal, with a leading '#' character
- c. Character, by enclosing in either single
- or double quotes. One or two chars allowed.
-
- Leading blanks are absorbed. The comma is a valid delimiter.
- Lower case input is accepted.
-
- The default command (for anything not otherwise recognizable) is the
- "H" command. This allows convenient calculation, with the other
- features described below. To convert a number, just enter it.
-
-
- New Commands (over DDT) (Parenthized names are for DDTZ xxM)
- =======================
-
- @ Sets or shows (with no parameter) the internally stored
- "base" value. This is used with the S and D commands to
- display memory from an arbitrary base marker. When zero
- (the default) it does not affect any displays.
-
- B Begin. resets the USER stack pointer to its initial value,
- such that a program that exits by a RET will return to DDTZ.
- DDTZ provides a default stack space of approximately 24
- bytes to user programs.
-
- C Compare first_address,last_address,against_address.
- Shows all differences between two memory areas.
-
- K Keep the modified memory area in the file specified by the
- (W) I command, or to the original file from which it was loaded.
- By default, memory from 0100h through the "next" value -1
- is saved. K first_address,last_address overrides this
- default, and allows writing any memory area to a file. If
- the destination file exists the user is queried before
- over-writing it. Almost a necessity for CPM 3.0 (no SAVE).
-
- Q Query. Re-displays the "NEXT PC SAVE" display at any time.
- (X)
-
- W Where first_address, last_address, value. Searches the
- (S) specified area for the value (a 16 bit value, not a byte)
- and shows the location of all such. Very useful for finding
- calls or jmps to a particular address, etc.
-
- Y ?? name. Executes an arbitrary routine as a DDTZ command.
- "Y parm1, parm2, address" executes the routine at "address"
- with the bc and de registers set to parm1 and parm2 resp.
-
- Z Displays (but does not alter) the auxiliary Z80 only regis-
- ter set, including index registers. Automatically disabled
- if running on an 8080. On Z80's this is automatically
- executed as the last portion of the X <cr> command.
-
-
- Based Displays
- ==============
-
- The D)ump and S)ubstitute commands use the stored base value (set by
- the @ command). The current @ value may be over-ridden for any single
- execution by an extra parameter in the command line. The effect is to
- add the base value to the start/end limits, and display accordingly.
- The address display becomes XXXX:YYYY where XXXX is the offset value,
- and YYYY is the actual memory address being used. For example, if you
- have a data area at location 4237h, and wish to preserve easy access,
- set "@4237". Now "d0,3f" will show values starting at 4237.
-
-
- Further changes from DR's DDT (Parenthized names for DDTZ x.xM)
- =============================
-
- D D)isplay can accept an optional third parameter to set the
- "base" value for the one execution only. Format cleaned up.
-
- H H(ex) value1 value2 command also shows difference in decimal.
- Can be used as handy hex/decimal/hex converter. H(ex) value1
- (no 2nd parameter) converts to hex, decimal, and character
- (1 char only)
-
- I The I)nput command allows the use of drive specifiers, and sets
- (N) up the complete command line including the 2nd FCB at location
- 6ch up. Note that the command lines may be in lower case.
-
- L L)ist command displays the raw code bytes. Especially handy
- (U) when examining non-code areas. "Unassemble" on the M version
-
- R When reading a hex file with a bias, the R command will not
- (L) transfer control to an invalid execution point. An execution
- of the R command can re-read the input file. e.g.
- i blah
- r
- modify the code and generally mess about
- r
- and the modifications are removed.
- LOAD command on the M version
-
- S S)ubstitute, like D)isplay, accepts an optional 2nd parameter
- (E) to set the "base" value for the one execution only.
- E)nter command on the M version.
-
- X X)amine registers. Shows what the HL and SP registers are
- (R) pointing to. On Z80's shows the auxiliary register set.
- R)egister command on the M version.
-
- NOTE
- Any use of the R or K commands resets the system DMA
- transfer address to the standard default value of 0080h.
-
- At initialization the user (sp) value points to a return to DDT, just
- like CCP. Thus programs that <ret> to CCP will return to DDT in this
- system. The B(egin) command re-initializes this.
-
- Trap/trace termination now shows the CPU state. Traps and tracing no
- longer lock up when a user RST 7 instruction is executed.
-
- Tracing of BDOS/BIOS calls is heavily truncated, avoiding clutter and
- preventing system crashes.
-
- Loads of files (except hex files) are protected against overwriting
- DDT and/or system code. The report after program load includes the
- decimal "SAVE" value, and may be re-evoked by Q)uery ("eXamine" on the
- M version) command.
-
- Intercept vector copies BDOS serial etc, so an object program does not
- know that DDTZ is in use (except for BIOS-BDOS vector size). Thus
- programs that check the serial number will execute correctly under DDTZ.
-
- Command summary: (parenthised letters for the "M" version)
- * indicates command not available in M version
- ** indicates command only available in M version
- @)Set base
- a)ssemble first
- b)egin (* i.e. initialize stack & return *)
- c)ompare first,last,against
- d)ump first,last,(base)
- f)ill first,last,value
- g)oto address, trap1, trap2
- h)exarith valu1, valu2
- (N) i)nitialize tfcb_commandline
- (W) k)keep first,last
- (U) l)istcode first,last
- m)ove first,last,destination
- (X) q)uery (* memory used for application *)
- (L) r)ead_from_file [offset]
- (E) s)ubstitute_in_memory first_address,(base)
- t)race_execution [count]
- * u)ntrace_execution [count] (* quiet *)
- (S) w)here first,last,value
- (R) x)amine_change [register]
- y)bc := p1; de := p2; execute (p3)
- z)80 register display
- (Q) ** quit ("M version only). Equivalent to CNTL-C
-
- C.B. Falconer
- :┤