| 
					
						| 
						 | The Memotech MTX Series  | 
				 |  CP/M DDT The Dynamic Debugging Tool   You can find the complete DDT manual on my
				CP/M Documents page Courtesy of
								
								Oscar Vermeulen, here is a list of DDT 
				sub-commands :-   CP/M Commands. Excerpt from David E. 
				Cortesi – Inside CP/M © 1982 DDT – Dynamic Debugging Tool
				 DDT is used to debug programs written in 
				assembly language. It also finds use as a special utility 
				program for building program images, and in applying patches to 
				fix programs.  See the USER command for an example of using DDT to load the 
				image of a command. An assembly-language program can be built 
				from different modules, each assembled at a different, known 
				origin. For example, a main program might contain a reserved 
				space for a terminal driver subroutine. Different terminal 
				drivers can be prepared, each customized for a particular 
				terminal type. The correct driver can then be incorporated in 
				the main program with DDT:  
					ddt main.com load image of main program -iterm120.hex prepare to load driver for Soroq IQ120 -r read terminal driver to its origin  -g0 warm start, leaving merged program  save 37 main120.com save customized command program  DDT{ fileref }  The DDT command initializes a debugging session. The code of 
				the debugger is loaded and moved to the top of the Transient 
				Program Area. replacing the CCP. The address of the end of the 
				Transient Program Area in low storage is changed to protect the 
				debugger.  If fileref is specified, that file is loaded 
				into the Transient Program Area. The reference must be explicit 
				and have a filetype of either .HEX or .COM. A .COM file is 
				loaded at 0100h: a .HEX file is loaded at its assembled origin.
				 The debugger then prompts with a hyphen and waits for a 
				subcommand. A table of DDT subcommands follows this topic.  The command is ended by a warm start. One may be obtained 
				either by typing control-c or by entering the G0 (go to zero, 
				i.e., to the warm start jump) subcommand.  Summary of DDT Subcommands  
					
						
							| Syntax | Description |  
							| A start | Assemble into storage: DDT prompts 
							with successive addresses from start. Enter 
							operation names, and register names or hex values as 
							operands. End the process with a null entry. |  
							| D {start} {, end} | Display storage: DDT displays 
							storage in hex and ASCII, 16 bytes per line. The 
							display begins with start if given, or where the 
							prior D left off, or with the HL value of the last 
							instruction traced. It ends with end if given, or 
							after 12 lines. Use any key to end the display 
							early. |  
							| F start, end, xx | Fill storage: DDT replicates xx in 
							every byte from start through end. Caution: DDT will 
							happily fill right over itself and the BDOS if told 
							to do so. |  
							| G  {start}{,b1{,b2}} | Execute program: DDT transfers 
							control to start if given, or to the test program's 
							PC. If one or two break addresses are given, DDT 
							makes each an RST 7 instruction: control returns to 
							DDT if the program reaches one and the instructions 
							are restored. |  
							| H first, second | Hex arithmetic: DDT responds with 
							two numbers, first ^ second and first-second. |  
							| I fileref | Initialize FCB: fileref is set in 
							the default FCB at 5Ch. Any drivecode is ignored. 
							The FCB may be used by the test program: more often 
							it is used by the R subcommand. Use S to set up a 
							drive number. |  
							| L {start}{,end} | List instructions: DDT displays 
							storage as instructions in assembler format, from 
							start if given, or where the last L left off, or 
							from the PC address of the last traced instruction. 
							The display ends with end if given, or after 11 
							lines have been typed. Use the delete key to stop 
							the display. |  
							| M start, end, to | Copy storage: DDT copies the block 
							of storage from start through end to the address to. |  
							| R {bias} | Read program: The file named in the 
							default FCB at 5Ch is loaded as a program. The 
							filetype must be .COM (load address is OlOOh+^f'a.?) 
							or must have the .HEX format. In that case the bias 
							is added to the load address in each line, causing 
							the file to load away from its assembled origin. The 
							highest load address this session and the current PC 
							value are displayed. |  
							| S start | Modify storage: DDT prompts with the 
							address start and that byte's contents in hex. Enter 
							a new value, or CR alone, to leave it unchanged. DDT 
							prompts with the next address; enterperiod, CR to 
							end. |  
							| T {count} | Trace program: An instruction is 
							traced. The test program PC provides its address; 
							use X to set it. The register state and the 
							instruction are shown before the instruction is 
							done; use X to see the instruction's effect. If 
							count is given, DDT continues for that many 
							instructions; use the delete key to stop it early. |  
							| U {count} | Trace without display: Instructions 
							are traced as for T but no state display is typed. |  
							| X | Display program state: The test 
							program registers and the instruction addressed by 
							its PC are shown. |  
							| X register | Modify register: DDT prompts with 
							the contents of the named register or flag. Enter CR 
							alone to leave them unchanged, or enter a new value. 
							The registers are A, B, D, H, S (for SP), and P (for 
							PC). Flags are C, Z, M, E, and I. |    |