home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / debug / ddtz27.ark / DDTZ.DOC < prev    next >
Text File  |  1988-05-29  |  30KB  |  564 lines

  1.  
  2.                            DDTZ v2.7
  3.                        by C.B. Falconer
  4.                   edited by George A. Havach
  5.  
  6. Introduction:
  7. ============
  8. DDTZ v2.7 is a complete replacement for DDT,  Digital  Research's 
  9. famous Dynamic Debugging Tool,  with improved functionality,  bug 
  10. extermination,  and full Z80 support.  In general,  DDTZ is fully 
  11. compatible  with  the  original utility,  but it  has  extra  and 
  12. extended  commands  and  many  fewer  quirks.   All  Z80-specific 
  13. instructions can be (dis)assembled,  though in Intel rather  then 
  14. Zilog format. Furthermore, DDTZ will correctly trace ('T' and 'U' 
  15. commands) both 8080 and Z80 instructions,  depending on which CPU 
  16. is operating.  On startup,  the program announces which CPU it is 
  17. running on.
  18.  
  19. DDTZ v2.7 now handles the 64180 added opcodes.  It does NOT  test 
  20. for  a  64180 CPU,  since this cannot be done  without  executing 
  21. illegal   Z80  instructions,   which  in  turn  will  crash  some 
  22. simulators.  However v2.7 does not execute any 64180 instructions 
  23. internally, only in the subject program.
  24.  
  25. This  issue supplies the "M" version assembled,  to avoid  errors 
  26. when switching between MSDOS and CPM systems.   The command table 
  27. is updated accordingly.  Most CPM users are also MSDOS users, but 
  28. not vice-versa.
  29.  
  30. The program is invoked by typing
  31.  
  32.       ddtz<ret>
  33. or
  34.       ddtz [d:]filespec<ret>
  35.  
  36. In  the  second  form,  DDTZ will load the  specified  file  into  
  37. memory starting at 0100H,  unless it's a .HEX file that sets  its 
  38. own  load  address.  Besides reporting the NEXT free address  and  
  39. the PC (program counter) after a successful load, DDTZ also shows 
  40. the number of memory pages needed for a SAVE.  Instead of  having 
  41. to write all this down,  just use the 'X' command at any time  to 
  42. redisplay these three values for the current application.
  43.  
  44. NOTE:  loading  more  code above the NEXT pointer  revises  these 
  45.        values.
  46.  
  47. As  in DDT,  when a program is loaded above the area holding  the 
  48. 'A'  and  'U'  (and now 'W') command  code,  these  commands  are 
  49. disabled,  and the extra memory  is released to the user.   Thus,  
  50. DDTZ can occupy  as little as 3K total memory space.  Unlike DDT,  
  51. however,  DDTZ will not overwrite itself or the system on program 
  52. loads (except .HEX files).
  53.  
  54. At initialization,  the stack pointer (SP) points to a return  to 
  55. DDTZ,  just like for the CCP. Thus, programs that normally return 
  56. to   the  CCP  will  be  returned  to  DDTZ.    The  'B'  command  
  57. reinitializes this condition.
  58.  
  59.  
  60. The intercept vector copies  the BDOS version number,   etc.,  so 
  61. an  object program  does not know that  DDTZ is running   (except 
  62. for BIOS-BDOS vector size). Thus, programs that check the version 
  63. number should execute correctly under DDTZ.
  64.  
  65. All input parameters can now be entered in any of three formats:
  66.  
  67.        (1) hexadecimal (as in DDT),
  68.        (2) decimal, by adding a leading '#' character,
  69.        (3) ASCII, by enclosing between either single or double
  70.            quotes; either one or two characters are allowed.
  71.  
  72. Leading  blanks  in  command lines and parameters  are  absorbed. 
  73. Either  a  comma  or a (single) space   is   a  valid  delimiter.   
  74. Either uppercase or lowercase input is accepted.
  75.  
  76. The  default command  (for anything  not otherwise  recognizable)  
  77. is 'H'.  This allows convenient calculation, along with the other 
  78. features described below.   So,  to convert a number,  just enter 
  79. it!
  80.  
  81. As  in  DDT,   the prompt character is '-',  and the  only  error 
  82. message  is  the query ('?'),  which generally kicks you back  to 
  83. command mode. 
  84.  
  85. New Commands (Over DDT):
  86. =======================
  87.  
  88. NOTE: letters in parenthesis,  e.g.  "(U)",  show the  equivalent 
  89.       command for DDTZM version (compatible with MSDOS debug).
  90.  
  91.    @  Sets  or  shows (with no parameter)  the internally  stored 
  92.       "base" value.   Also used with the 'S' and 'D' commands  as 
  93.       an optional parameter  (though without the '@')  to display 
  94.       memory  from an arbitrary base marker (offset). When set to 
  95.       zero (the default), it does not affect any screen displays.
  96.  
  97.    B  B)egin: resets the USER stack pointer to its initial value, 
  98.       such  that any program that exits by an RET will return  to 
  99.       DDTZ.   DDTZ   provides    a  default   stack   space    of 
  100.       approximately 24 bytes for user programs.
  101.  
  102.    C  C)ompare first_address,last_address,against_address:  shows 
  103.       all  the byte differences between two memory areas,  in the 
  104.       format
  105.  
  106.        XXXX aa YYYY bb
  107.  
  108.       where  XXXX and YYYY  are the comparative memory addresses, 
  109.       and aa  and  bb  are the corresponding byte values.  Can be 
  110.       used  to  verify   the identity  of  two  files   by  first 
  111.       loading  them   into  different memory areas with  the  'R' 
  112.       command (see below).
  113.  
  114.  
  115.    W  Write:   stores the modified memory area to disk under  the 
  116.   (K) filename  specified  by the 'I'  command,  overwriting  the 
  117.       original file from which it was loaded (the user is queried 
  118.       before  doing  so).  By default,  the image of memory  from 
  119.       0100H through the "NEXT" value -1 is saved.  "K first_addr, 
  120.       last_address"  overrides this and allows writing ANY memory 
  121.       area to a file. Almost a necessity for CPM 3.0 (no SAVE!).
  122.       K)eep on DDTZ
  123.  
  124.    X  eXamine:  redisplays the "NEXT PC SAVE" report at any time.
  125.   (Q) Q)uery size on DDTZ.
  126.  
  127.    S  S)earch  first_address,   last_addr,  value:  searches  the 
  128.   (W) specified memory area for the value (a 16-bit word,  not  a 
  129.       byte) and shows the locations of all such.  Very useful for 
  130.       finding  CALL's  or JMP's to a particular address, etc.
  131.       W)here on DDTZ
  132.  
  133.    Y  Y)our_option  parm1,parm2,address:  executes  an  arbitrary 
  134.       routine  at  the  specified address,   with the BC  and  DE 
  135.       registers  set to parm1 and parm2, respectively.
  136.  
  137.    Z  Displays (but does not alter) the Z80's alternate  register 
  138.       set,  including the index registers (disabled if running on 
  139.       an  8080).  On Z80's,   automatically included  as the last 
  140.       part of the display by the 'X' command.
  141.  
  142.  
  143. Based (Offset) Displays:
  144. =======================
  145.  
  146. The  'D' and 'E' commands  can use a stored base value  (offset),  
  147. as  set  by   the  '@' command.   The current  @  value   may  be 
  148. overridden for a single execution of these commands by adding the 
  149. base as an extra parameter  in the command line.   The effect  is  
  150. to  add  this  value   to  the  first/last  address  and  display 
  151. accordingly.  The address listing on the left becomes  XXXX:YYYY,  
  152. where  XXXX  is the offset address and YYYY is the actual  memory 
  153. address being displayed.   For example,  if you have a data  area  
  154. located at  42B7H  and wish to  preserve easy access,  just enter 
  155. "@42b7".  Now, "d0,3f" will dump memory starting at 4237H.
  156.  
  157.  
  158. Further Changes from DDT:
  159. ========================
  160.  
  161.    A  A)ssemble  now  accepts   the  full Z80  as  well  as  8080 
  162.       instruction  set,  although it expects them in Intel rather 
  163.       than  Zilog  format  (see  notes  below   under   the   'L' 
  164.       command).    When in doubt, see the mnemnonic list below.
  165.  
  166.    D  D)isplay or D)ump  will accept  an optional third parameter  
  167.       to  set the base value for a single execution only.  Format 
  168.       has been cleaned up.
  169.  
  170.    H  H)ex_arithmetic    on   two  values   also   shows    their 
  171.       difference  in decimal.  With only one value,  converts  to 
  172.       hexadecimal, decimal, and ASCII (low-order byte only).
  173.  
  174.  
  175.    N  N)ame  now allows drive specification  (d:...)  and sets up 
  176.   (I) the  complete  command  line,   including  both  FCB's  (at 
  177.       addresses 005CH and 006CH).   The tail (stored at 0081H up) 
  178.       is NOT upshifted.
  179.       I)nput on DDTZ
  180.  
  181.    U  U)nassemble now displays the raw hexcode,  especially handy 
  182.   (L) when examining non-code areas. Intel (8080 style) mnemonics 
  183.       are  used,  so  some  disassembled  instructions  may  look 
  184.       strange.  E.g., the Z80's 'IN B,(C)' and 'OUT (C),B' become  
  185.       'INP B' and 'OUTP B', respectively;  'LD (nnnn),BC' becomes 
  186.       'SBCD nnnn',  'ADD IX,  BC' becomes 'DADX B', and 'JP (IX)' 
  187.       becomes 'PCIX'. 
  188.       L)ist on DDTZ
  189.  
  190.    L  L)oad   now  permits  loading a file into memory   with  an 
  191.   (R) offset,  which  is  added to the default  load  address  of 
  192.       0100H.   When reading in  a .HEX file  with  a preset bias,  
  193.       the   'R'  command will not transfer control to an  invalid 
  194.       execution point.  Another execution of the 'R' command will 
  195.       reread the input file, e.g.:
  196.  
  197.          n blah<ret>
  198.          l<ret>
  199.          ...modify the code and generally mess about...
  200.          l<ret>
  201.  
  202.       The original file  is reloaded,  and the modifications  are 
  203.       removed.
  204.       R)ead on DDTZ
  205.  
  206.    E  E)nter,  like  D)isplay,  now  accepts an  optional  second 
  207.   (S) parameter  to  set the base value for  a  single  execution 
  208.       only.
  209.       S)ubstitute or S)et on DDTZ
  210.  
  211.    T  T)rap/trace   on  termination  now shows  the complete  CPU 
  212.       state. Traps and traces no longer lock up  when  a user RST 
  213.       7 instruction is executed.   Tracing of BDOS/BIOS calls  is 
  214.       heavily trun cated,  avoiding clutter and preventing system 
  215.       crashes.
  216.  
  217. NOTE: Most of the UNDOCUMENTED Z80 op-codes are handled.  Others
  218.       can crash the system.
  219.  
  220.    R  R)egisters  also shows what two-byte values the HL  and  SP 
  221.   (X) registers are actually pointing to.  On Z80's, displays the 
  222.       alternate register set.
  223.       eX)amine on DDTZ
  224.  
  225. NOTE: Any  use  of the 'W' or 'L' command  resets the system  DMA 
  226.       transfer address to the standard default value of 0080H.
  227.  
  228.  
  229. ; This is the output of DDTZ when disassembling OPTYPE.TRY
  230. NOP                     LDA     06A4            MOV     M,H
  231. LXI     B,06A4          DCX     SP              MOV     M,L
  232. STAX    B               INR     A               HLT        
  233. INX     B               DCR     A               MOV     M,A
  234. INR     B               MVI     A,20            MOV     A,B
  235. DCR     B               CMC                     MOV     A,C
  236. MVI     B,20            MOV     B,B             MOV     A,D
  237. RLC                     MOV     B,C             MOV     A,E
  238. EXAF                    MOV     B,D             MOV     A,H
  239. DAD     B               MOV     B,E             MOV     A,L
  240. LDAX    B               MOV     B,H             MOV     A,M
  241. DCX     B               MOV     B,L             MOV     A,A
  242. INR     C               MOV     B,M             ADD     B  
  243. DCR     C               MOV     B,A             ADD     C  
  244. MVI     C,20            MOV     C,B             ADD     D  
  245. RRC                     MOV     C,C             ADD     E  
  246. DJNZ    0134            MOV     C,D             ADD     H  
  247. LXI     D,06A4          MOV     C,E             ADD     L  
  248. STAX    D               MOV     C,H             ADD     M  
  249. INX     D               MOV     C,L             ADD     A  
  250. INR     D               MOV     C,M             ADC     B  
  251. DCR     D               MOV     C,A             ADC     C  
  252. MVI     D,20            MOV     D,B             ADC     D  
  253. RAL                     MOV     D,C             ADC     E  
  254. JR      0134            MOV     D,D             ADC     H  
  255. DAD     D               MOV     D,E             ADC     L  
  256. LDAX    D               MOV     D,H             ADC     M  
  257. DCX     D               MOV     D,L             ADC     A  
  258. INR     E               MOV     D,M             SUB     B  
  259. DCR     E               MOV     D,A             SUB     C  
  260. MVI     E,20            MOV     E,B             SUB     D  
  261. RAR                     MOV     E,C             SUB     E  
  262. JRNZ    0134            MOV     E,D             SUB     H  
  263. LXI     H,06A4          MOV     E,E             SUB     L  
  264. SHLD    06A4            MOV     E,H             SUB     M  
  265. INX     H               MOV     E,L             SUB     A  
  266. INR     H               MOV     E,M             SBB     B  
  267. DCR     H               MOV     E,A             SBB     C  
  268. MVI     H,20            MOV     H,B             SBB     D  
  269. DAA                     MOV     H,C             SBB     E  
  270. JRZ     0134            MOV     H,D             SBB     H  
  271. DAD     H               MOV     H,E             SBB     L  
  272. LHLD    06A4            MOV     H,H             SBB     M  
  273. DCX     H               MOV     H,L             SBB     A  
  274. INR     L               MOV     H,M             ANA     B  
  275. DCR     L               MOV     H,A             ANA     C  
  276. MVI     L,20            MOV     L,B             ANA     D  
  277. CMA                     MOV     L,C             ANA     E  
  278. JRNC    0134            MOV     L,D             ANA     H  
  279. LXI     SP,06A4         MOV     L,E             ANA     L  
  280. STA     06A4            MOV     L,H             ANA     M  
  281. INX     SP              MOV     L,L             ANA     A  
  282. INR     M               MOV     L,M             XRA     B  
  283. DCR     M               MOV     L,A             XRA     C  
  284. MVI     M,20            MOV     M,B             XRA     D  
  285. STC                     MOV     M,C             XRA     E  
  286. JRC     0134            MOV     M,D             XRA     H  
  287. DAD     SP              MOV     M,E             XRA     L  
  288.  
  289.  
  290. XRA     M               JPE     06A4            SLAR     M  
  291. XRA     A               XCHG                    SLAR     A  
  292. ORA     B               CPE     06A4            SRAR     B  
  293. ORA     C               XRI     20              SRAR     C  
  294. ORA     D               RST     5               SRAR     D  
  295. ORA     E               RP                      SRAR     E  
  296. ORA     H               POP     PSW             SRAR     H  
  297. ORA     L               JP      06A4            SRAR     L  
  298. ORA     M               DI                      SRAR     M  
  299. ORA     A               CP      06A4            SRAR     A  
  300. CMP     B               PUSH    PSW             SLLR     B  
  301. CMP     C               ORI     20              SLLR     C  
  302. CMP     D               RST     6               SLLR     D  
  303. CMP     E               RM                      SLLR     E  
  304. CMP     H               SPHL                    SLLR     H  
  305. CMP     L               JM      06A4            SLLR     L  
  306. CMP     M               EI                      SLLR     M  
  307. CMP     A               CM      06A4            SLLR     A  
  308. RNZ                     CPI     20              SRLR     B  
  309. POP     B               RST     7               SRLR     C  
  310. JNZ     06A4            RLCR    B               SRLR     D  
  311. JMP     06A4            RLCR    C               SRLR     E  
  312. CNZ     06A4            RLCR    D               SRLR     H  
  313. PUSH    B               RLCR    E               SRLR     L  
  314. ADI     20              RLCR    H               SRLR     M  
  315. RST     0               RLCR    L               SRLR     A  
  316. RZ                      RLCR    M               BIT     0,B
  317. RET                     RLCR    A               BIT     0,C
  318. JZ      06A4            RRCR    B               BIT     0,D
  319. CZ      06A4            RRCR    C               BIT     0,E
  320. CALL    06A4            RRCR    D               BIT     0,H
  321. ACI     20              RRCR    E               BIT     0,L
  322. RST     1               RRCR    H               BIT     0,M
  323. RNC                     RRCR    L               BIT     0,A
  324. POP     D               RRCR    M               BIT     1,B
  325. JNC     06A4            RRCR    A               BIT     1,C
  326. OUT     20              RALR    B               BIT     1,D
  327. CNC     06A4            RALR    C               BIT     1,E
  328. PUSH    D               RALR    D               BIT     1,H
  329. SUI     20              RALR    E               BIT     1,L
  330. RST     2               RALR    H               BIT     1,M
  331. RC                      RALR    L               BIT     1,A
  332. EXX                     RALR    M               BIT     2,B
  333. JC      06A4            RALR    A               BIT     2,C
  334. IN      20              RARR    B               BIT     2,D
  335. CC      06A4            RARR    C               BIT     2,E
  336. SBI     20              RARR    D               BIT     2,H
  337. RST     3               RARR    E               BIT     2,L
  338. RPO                     RARR    H               BIT     2,M
  339. POP     H               RARR    L               BIT     2,A
  340. JPO     06A4            RARR    M               BIT     3,B
  341. XTHL                    RARR    A               BIT     3,C
  342. CPO     06A4            SLAR    B               BIT     3,D
  343. PUSH    H               SLAR    C               BIT     3,E
  344. ANI     20              SLAR    D               BIT     3,H
  345. RST     4               SLAR    E               BIT     3,L
  346. RPE                     SLAR    H               BIT     3,M
  347. PCHL                    SLAR    L               BIT     3,A
  348.  
  349.  
  350. BIT     4,B             RES     3,D             SET     2,H      
  351. BIT     4,C             RES     3,E             SET     2,L      
  352. BIT     4,D             RES     3,H             SET     2,M      
  353. BIT     4,E             RES     3,L             SET     2,A      
  354. BIT     4,H             RES     3,M             SET     3,B      
  355. BIT     4,L             RES     3,A             SET     3,C      
  356. BIT     4,M             RES     4,B             SET     3,D      
  357. BIT     4,A             RES     4,C             SET     3,E      
  358. BIT     5,B             RES     4,D             SET     3,H      
  359. BIT     5,C             RES     4,E             SET     3,L      
  360. BIT     5,D             RES     4,H             SET     3,M      
  361. BIT     5,E             RES     4,L             SET     3,A      
  362. BIT     5,H             RES     4,M             SET     4,B      
  363. BIT     5,L             RES     4,A             SET     4,C      
  364. BIT     5,M             RES     5,B             SET     4,D      
  365. BIT     5,A             RES     5,C             SET     4,E      
  366. BIT     6,B             RES     5,D             SET     4,H      
  367. BIT     6,C             RES     5,E             SET     4,L      
  368. BIT     6,D             RES     5,H             SET     4,M      
  369. BIT     6,E             RES     5,L             SET     4,A      
  370. BIT     6,H             RES     5,M             SET     5,B      
  371. BIT     6,L             RES     5,A             SET     5,C      
  372. BIT     6,M             RES     6,B             SET     5,D      
  373. BIT     6,A             RES     6,C             SET     5,E      
  374. BIT     7,B             RES     6,D             SET     5,H      
  375. BIT     7,C             RES     6,E             SET     5,L      
  376. BIT     7,D             RES     6,H             SET     5,M      
  377. BIT     7,E             RES     6,L             SET     5,A      
  378. BIT     7,H             RES     6,M             SET     6,B      
  379. BIT     7,L             RES     6,A             SET     6,C      
  380. BIT     7,M             RES     7,B             SET     6,D      
  381. BIT     7,A             RES     7,C             SET     6,E      
  382. RES     0,B             RES     7,D             SET     6,H      
  383. RES     0,C             RES     7,E             SET     6,L      
  384. RES     0,D             RES     7,H             SET     6,M      
  385. RES     0,E             RES     7,L             SET     6,A      
  386. RES     0,H             RES     7,M             SET     7,B      
  387. RES     0,L             RES     7,A             SET     7,C      
  388. RES     0,M             SET     0,B             SET     7,D      
  389. RES     0,A             SET     0,C             SET     7,E      
  390. RES     1,B             SET     0,D             SET     7,H      
  391. RES     1,C             SET     0,E             SET     7,L      
  392. RES     1,D             SET     0,H             SET     7,M      
  393. RES     1,E             SET     0,L             SET     7,A      
  394. RES     1,H             SET     0,M             DADX    B        
  395. RES     1,L             SET     0,A             DADX    D        
  396. RES     1,M             SET     1,B             LXI     X,06A4   
  397. RES     1,A             SET     1,C             SIXD    06A4     
  398. RES     2,B             SET     1,D             INX     X        
  399. RES     2,C             SET     1,E             DADX    X        
  400. RES     2,D             SET     1,H             LIXD    06A4     
  401. RES     2,E             SET     1,L             DCX     X        
  402. RES     2,H             SET     1,M             INR     [X+05]   
  403. RES     2,L             SET     1,A             DCR     [X+05]   
  404. RES     2,M             SET     2,B             MVI     [X+05],20
  405. RES     2,A             SET     2,C             DADX    SP       
  406. RES     3,B             SET     2,D             MOV     B,[X+05] 
  407. RES     3,C             SET     2,E             MOV     C,[X+05] 
  408.  
  409.  
  410. MOV     D,[X+05]        DSBC    B               DADY    B       
  411. MOV     E,[X+05]        SBCD    06A4            DADY    D       
  412. MOV     H,[X+05]        NEG                     LXI     Y,06A4  
  413. MOV     L,[X+05]        RETN                    SIYD    06A4    
  414. MOV     [X+05],B        IM0                     INX     Y       
  415. MOV     [X+05],C        LDIA                    DADY    Y       
  416. MOV     [X+05],D        INP     C               LIYD    06A4    
  417. MOV     [X+05],E        OUTP    C               DCX     Y       
  418. MOV     [X+05],H        DADC    B               INR     [Y+05]  
  419. MOV     [X+05],L        LBCD    06A4            DCR     [Y+05]  
  420. MOV     [X+05],A        RETI                    MVI     [Y+05],2
  421. MOV     A,[X+05]        LDRA                    DADY    SP      
  422. ADD     [X+05]          INP     D               MOV     B,[Y+05]
  423. ADC     [X+05]          OUTP    D               MOV     C,[Y+05]
  424. SUB     [X+05]          DSBC    D               MOV     D,[Y+05]
  425. SBB     [X+05]          SDED    06A4            MOV     E,[Y+05]
  426. ANA     [X+05]          IM1                     MOV     H,[Y+05]
  427. XRA     [X+05]          LDAI                    MOV     L,[Y+05]
  428. ORA     [X+05]          INP     E               MOV     [Y+05],B
  429. CMP     [X+05]          OUTP    E               MOV     [Y+05],C
  430. POP     X               DADC    D               MOV     [Y+05],D
  431. XTIX                    LDED    06A4            MOV     [Y+05],E
  432. PUSH    X               IM2                     MOV     [Y+05],H
  433. PCIX                    LDAR                    MOV     [Y+05],L
  434. SPIX                    INP     H               MOV     [Y+05],A
  435. RLCR    [X+05]          OUTP    H               MOV     A,[Y+05]
  436. RRCR    [X+05]          DSBC    H               ADD     [Y+05]  
  437. RALR    [X+05]          shld    06A4            ADC     [Y+05]  
  438. RARR    [X+05]          RRD                     SUB     [Y+05]  
  439. SLAR    [X+05]          INP     L               SBB     [Y+05]  
  440. SRAR    [X+05]          OUTP    L               ANA     [Y+05]  
  441. SRLR    [X+05]          DADC    H               XRA     [Y+05]  
  442. BIT     0,[X+05]        lhld    06A4            ORA     [Y+05]  
  443. BIT     1,[X+05]        RLD                     CMP     [Y+05]  
  444. BIT     2,[X+05]        INP     M               POP     Y       
  445. BIT     3,[X+05]        OUTP    M               XTIY            
  446. BIT     4,[X+05]        DSBC    SP              PUSH    Y       
  447. BIT     5,[X+05]        SSPD    06A4            PCIY            
  448. BIT     6,[X+05]        INP     A               SPIY            
  449. BIT     7,[X+05]        OUTP    A               RLCR    [Y+05]  
  450. RES     0,[X+05]        DADC    SP              RRCR    [Y+05]  
  451. RES     1,[X+05]        LSPD    06A4            RALR    [Y+05]  
  452. RES     2,[X+05]        LDI                     RARR    [Y+05]  
  453. RES     3,[X+05]        CCI                     SLAR    [Y+05]  
  454. RES     4,[X+05]        INI                     SRAR    [Y+05]  
  455. RES     5,[X+05]        OTI                     SRLR    [Y+05]  
  456. RES     6,[X+05]        LDD                     BIT     0,[Y+05]
  457. RES     7,[X+05]        CCD                     BIT     1,[Y+05]
  458. SET     0,[X+05]        IND                     BIT     2,[Y+05]
  459. SET     1,[X+05]        OTD                     BIT     3,[Y+05]
  460. SET     2,[X+05]        LDIR                    BIT     4,[Y+05]
  461. SET     3,[X+05]        CCIR                    BIT     5,[Y+05]
  462. SET     4,[X+05]        INIR                    BIT     6,[Y+05]
  463. SET     5,[X+05]        OTIR                    BIT     7,[Y+05]
  464. SET     6,[X+05]        LDDR                    RES     0,[Y+05]
  465. SET     7,[X+05]        CCDR                    RES     1,[Y+05]
  466. INP     B               INDR                    RES     2,[Y+05]
  467. OUTP    B               OTDR                    RES     3,[Y+05]
  468.  
  469.  
  470. RES     4,[Y+05]        SET     0,[Y+05]        SET     4,[Y+05]
  471. RES     5,[Y+05]        SET     1,[Y+05]        SET     5,[Y+05]
  472. RES     6,[Y+05]        SET     2,[Y+05]        SET     6,[Y+05]
  473. RES     7,[Y+05]        SET     3,[Y+05]        SET     7,[Y+05]
  474.  
  475. ; These are the result of disassembling 64180OPS.TRY
  476. ; These opcodes are available ONLY on the 64180 CPU
  477. ; DDTZ will both assemble and disassemble these.
  478. IN0     B,20            TST     E               MLT     B 
  479. OUT0    20,B            IN0     H,20            MLT     D 
  480. TST     B               OUT0    20,H            TSTI    20
  481. IN0     C,20            TST     H               MLT     H 
  482. OUT0    20,C            IN0     L,20            TSIO    20
  483. TST     C               OUT0    20,L            SLP       
  484. IN0     D,20            TST     L               MLT     SP
  485. OUT0    20,D            TST     M               OTIM      
  486. TST     D               IN0     A,20            OTDM      
  487. IN0     E,20            OUT0    20,A            OIMR      
  488. OUT0    20,E            TST     A               ODMR      
  489.  
  490. ; The following are UNDOCUMENTED z80 opcodes from XTDOPS.TRY.
  491. ; DDTZ will disassemble these, but will not assemble them.
  492. ; They use xh/xl (or yh/yl) as separate byte registers.
  493. ; Use these at your own risk.
  494. INRX    H               ACXR    H               MOVY    H,B  
  495. DCRX    H               ACXR    L               MOVY    H,C  
  496. MVIX    H,20            SUXR    H               MOVY    H,D  
  497. INRX    L               SUXR    L               MOVY    H,E  
  498. DCRX    L               SBXR    H               MOVY    H,A  
  499. MVIX    L,20            SBXR    L               MOVY    L,B  
  500. MOVX    B,H             NDXR    H               MOVY    L,C  
  501. MOVX    B,L             NDXR    L               MOVY    L,D  
  502. MOVX    C,H             XRXR    H               MOVY    L,E  
  503. MOVX    C,L             XRXR    L               MOVY    L,A  
  504. MOVX    D,H             ORXR    H               MOVY    A,H  
  505. MOVX    D,L             ORXR    L               MOVY    A,L  
  506. MOVX    E,H             CPXR    H               ADYR    H    
  507. MOVX    E,L             CPXR    L               ADYR    L    
  508. MOVX    H,B             INRY    H               ACYR    H    
  509. MOVX    H,C             DCRY    H               ACYR    L    
  510. MOVX    H,D             MVIY    H,20            SUYR    H    
  511. MOVX    H,E             INRY    L               SUYR    L    
  512. MOVX    H,A             DCRY    L               SBYR    H    
  513. MOVX    L,B             MVIY    L,20            SBYR    L    
  514. MOVX    L,C             MOVY    B,H             NDYR    H    
  515. MOVX    L,D             MOVY    B,L             NDYR    L    
  516. MOVX    L,E             MOVY    C,H             XRYR    H    
  517. MOVX    L,A             MOVY    C,L             XRYR    L    
  518. MOVX    A,H             MOVY    D,H             ORYR    H    
  519. MOVX    A,L             MOVY    D,L             ORYR    L    
  520. ADXR    H               MOVY    E,H             CPYR    H    
  521. ADXR    L               MOVY    E,L             CPYR    L    
  522.  
  523.  
  524. Command Summary:
  525. ===============
  526.  
  527. DDTZM command                                         DDTZ command
  528. =============                                         ============
  529. @ (base)
  530. A)ssemble first_address                                  A
  531. B)egin {i.e., initialize stack and return}               B
  532. C)ompare first_address,last_address,against_address      C
  533. D)ump first_address[,last_address[,base]]                D
  534. E)nter_in_memory first_address[,base]                    S)ubstitute
  535. F)ill first_address,last_address,value                   F
  536. G)o_to [address][,trap1[,trap2]]                         G
  537. H)ex_arithmetic value1(,value2)                          H
  538. L)oad_file (offset)                                      R)ead
  539. M)ove first_address,last_address,destination             M
  540. N)nput FCBs_command_line                                 I)nput
  541. Q)uit                                                    (not avail)
  542. R)egister examine/change [register|flag]                 X)amine
  543. S)earch first_address,last_address,word                  W)hereis
  544. T)race_execution [count]                                 T
  545.         Untrace_execution [count] (i.e. do count instr)  U)ntrace
  546. U)nassemble_code first_address[,last_address]            L)ist code
  547. W)rite [first_address,last_address]                      K)eep
  548. X)amine {i.e. display memory parameters for application} Q)uery
  549. Y)our_option BC:=parm1,DE:=parm2,call_address            Y
  550. Z)80_register_display                                    Z
  551.  
  552.  
  553. If you find this program useful, contributions will be gratefully
  554. accepted and will encourage further development and release of
  555. useful CPM programs.  My practice is to include source.
  556.  
  557. C.B. Falconer
  558. 680 Hartford Turnpike,
  559. Hamden, Conn. 06517           (203) 281-1438
  560.  
  561. DDTZ and its associated documentation and other files are
  562. copyright (c) 1980-1988 by C.B. Falconer.  They may be freely
  563. copied and used for non-commercial purposes ONLY.
  564. ⌠┘