home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / BEEHIVE / ZCAT / DDTZ.LBR / DDTZ.DQC / DDTZ.DOC
Text File  |  2000-06-30  |  8KB  |  182 lines

  1. DDTZ v2.5 is a rework of DDTY 2.2.5 for improved functionality, bug
  2. extermination, and complete Z80 support.  In general DDTZ is compat-
  3. ible with Digital Researchs DDT, but has added and extended commands
  4. and many fewer bugs.  All Z80 instructions can be dis/assembled.
  5. DDTZ will correctly trace (T and U commands) both Z80 and 8080 instr-
  6. uctions, depending on what CPU is executing.
  7.  
  8. DDTZ v2.5M is a variant with commands compatible with the Microsoft
  9. PC/MSDOS DEBUG program.  The "Untrace" command is replaced by the
  10. "Unassemble" command, and other commands are renamed.  See below.
  11. This is designed to prevent foul-ups when switching between the
  12. MSDOS and CPM systems.  The only differences between DDTZ and the
  13. "M" version are in the command transfer table and sign-on message.
  14. If you use this I suggest renaming it to be "DEBUG".
  15.  
  16. DDTY v2.5 is an assembly time option for DDTZ, which eliminates the
  17. Z80 opcodes on the A and L commands.  It will still trace Z80 code
  18. correctly.  Useful where disk space is short.
  19.  
  20. As did the DR version, when a program is loaded above the area
  21. holding the A and L (and now K) command code, these commands are
  22. disabled and the memory released to the user.  Thus DDTZ can use as
  23. little as 3k total memory space.  Unlike the original, DDTZ will not
  24. overwrite itself on program loads (except hex files).
  25.  
  26. All input parameters can be supplied as any one of:
  27.  
  28.     a.  hexadecimal (as original)
  29.     b.  decimal, with a leading '#' character
  30.     c.  Character, by enclosing in either single
  31.         or double quotes.  One or two chars allowed.
  32.  
  33. Leading blanks are absorbed.  The comma is a valid delimiter. 
  34. Lower case input is accepted.
  35.  
  36. The default command (for anything not otherwise recognizable) is the
  37. "H" command.  This allows convenient calculation, with the other
  38. features described below.  To convert a number, just enter it.
  39.  
  40.  
  41. New Commands (over DDT) (Parenthized names are for DDTZ xxM)
  42. =======================
  43.  
  44.    @    Sets or shows (with no parameter) the internally stored
  45.     "base" value.  This is used with the S and D commands to
  46.     display memory from an arbitrary base marker.  When zero
  47.     (the default) it does not affect any displays.
  48.  
  49.    B    Begin.  resets the USER stack pointer to its initial value,
  50.     such that a program that exits by a RET will return to DDTZ.
  51.     DDTZ provides a default stack space of approximately 24
  52.     bytes to user programs.
  53.  
  54.    C    Compare first_address,last_address,against_address.
  55.     Shows all differences between two memory areas.
  56.  
  57.    K    Keep the modified memory area in the file specified by the
  58.   (W)    I command, or to the original file from which it was loaded.
  59.     By default, memory from 0100h through the "next" value -1
  60.     is saved.  K first_address,last_address overrides this
  61.     default, and allows writing any memory area to a file.  If
  62.     the destination file exists the user is queried before
  63.     over-writing it.  Almost a necessity for CPM 3.0 (no SAVE).
  64.  
  65.    Q    Query.  Re-displays the "NEXT PC SAVE" display at any time.
  66.   (X)
  67.  
  68.    W    Where first_address, last_address, value.  Searches the
  69.   (S)    specified area for the value (a 16 bit value, not a byte)
  70.     and shows the location of all such.  Very useful for finding
  71.     calls or jmps to a particular address, etc.
  72.  
  73.    Y    ?? name.  Executes an arbitrary routine as a DDTZ command.
  74.     "Y parm1, parm2, address" executes the routine at "address"
  75.     with the bc and de registers set to parm1 and parm2 resp.
  76.  
  77.    Z    Displays (but does not alter) the auxiliary Z80 only regis-
  78.     ter set, including index registers.  Automatically disabled
  79.     if running on an 8080.  On Z80's this is automatically
  80.     executed as the last portion of the X <cr> command.
  81.  
  82.  
  83. Based Displays
  84. ==============
  85.  
  86. The D)ump and S)ubstitute commands use the stored base value (set by
  87. the @ command).  The current @ value may be over-ridden for any single
  88. execution by an extra parameter in the command line.  The effect is to
  89. add the base value to the start/end limits, and display accordingly.
  90. The address display becomes XXXX:YYYY where XXXX is the offset value,
  91. and YYYY is the actual memory address being used.  For example, if you
  92. have a data area at location 4237h, and wish to preserve easy access,
  93. set "@4237".  Now "d0,3f" will show values starting at 4237.
  94.  
  95.  
  96. Further changes from DR's DDT (Parenthized names for DDTZ x.xM)
  97. =============================
  98.  
  99.    D    D)isplay can accept an optional third parameter to set the
  100.     "base" value for the one execution only.  Format cleaned up.
  101.  
  102.    H    H(ex) value1 value2 command also shows difference in decimal.
  103.     Can be used as handy hex/decimal/hex converter.  H(ex) value1
  104.     (no 2nd parameter) converts to hex, decimal, and character
  105.     (1 char only)
  106.  
  107.    I    The I)nput command allows the use of drive specifiers, and sets
  108.   (N)    up the complete command line including the 2nd FCB at location
  109.     6ch up.  Note that the command lines may be in lower case.
  110.  
  111.    L    L)ist command displays the raw code bytes.  Especially handy
  112.   (U)    when examining non-code areas. "Unassemble" on the M version
  113.  
  114.    R    When reading a hex file with a bias, the R command will not
  115.   (L)    transfer control to an invalid execution point.  An execution
  116.     of the R command can re-read the input file. e.g.
  117.         i blah
  118.         r
  119.         modify the code and generally mess about
  120.         r
  121.             and the modifications are removed.
  122.         LOAD command on the M version
  123.  
  124.    S    S)ubstitute, like D)isplay, accepts an optional 2nd parameter
  125.   (E)    to set the "base" value for the one execution only.
  126.         E)nter command on the M version.
  127.  
  128.    X    X)amine registers.  Shows what the HL and SP registers are
  129.   (R)    pointing to.  On Z80's shows the auxiliary register set.
  130.     R)egister command on the M version.
  131.  
  132.                 NOTE
  133.     Any use of the R or K commands resets the system DMA
  134.     transfer address to the standard default value of 0080h.
  135.  
  136. At initialization the user (sp) value points to a return to DDT, just
  137. like CCP.  Thus programs that <ret> to CCP will return to DDT in this
  138. system.  The B(egin) command re-initializes this.
  139.  
  140. Trap/trace termination now shows the CPU state.  Traps and tracing no
  141. longer lock up when a user RST 7 instruction is executed.
  142.  
  143. Tracing of BDOS/BIOS calls is heavily truncated, avoiding clutter and
  144. preventing system crashes.
  145.  
  146. Loads of files (except hex files) are protected against overwriting
  147. DDT and/or system code.  The report after program load includes the
  148. decimal "SAVE" value, and may be re-evoked by Q)uery ("eXamine" on the
  149. M version) command.
  150.  
  151. Intercept vector copies BDOS serial etc, so an object program does not
  152. know that DDTZ is in use (except for BIOS-BDOS vector size).  Thus
  153. programs that check the serial number will execute correctly under DDTZ.
  154.  
  155. Command summary: (parenthised letters for the "M" version)
  156.             * indicates command not available in M version
  157.             ** indicates command only available in M version
  158.     @)Set base
  159.     a)ssemble first
  160.     b)egin (* i.e. initialize stack & return *)
  161.     c)ompare first,last,against
  162.     d)ump first,last,(base)
  163.     f)ill first,last,value
  164.     g)oto address, trap1, trap2
  165.     h)exarith valu1, valu2
  166.   (N)    i)nitialize tfcb_commandline
  167.   (W)    k)keep first,last
  168.   (U)    l)istcode first,last
  169.     m)ove first,last,destination
  170.   (X)    q)uery (* memory used for application *)
  171.   (L)    r)ead_from_file [offset]
  172.   (E)    s)ubstitute_in_memory first_address,(base)
  173.     t)race_execution [count]
  174.    *    u)ntrace_execution [count] (* quiet *)
  175.   (S)    w)here first,last,value
  176.   (R)    x)amine_change [register]
  177.     y)bc := p1; de := p2; execute (p3)
  178.     z)80 register display
  179.   (Q) ** quit ("M version only).  Equivalent to CNTL-C
  180.  
  181. C.B. Falconer
  182. :┤