[Help file on DDT%41; J. Hammer; P. DeWolf; last edited C. Hedrick 7-Sept-80] Modes: $H Half words. $S Symbolic instructions. $R Use relocatable addresses. $A Use absolute addresses. $10R Decimal radix. $8R Octal radix. $F Floating point. $C Constants, not symbols. $T ASCII text. $5T RADIX50 text. $6T SIXBIT text. $7T ASCII text (same as $T). $8T 8 bit bytes displayed as ASCII. $9T 9 bit bytes displayed as ASCII. $NO Type as N bit bytes. If N is 0, use the byte mask ($3M). Use two altmodes to permanently change mode. Data entry: 1234 Octal. 123. Decimal (must have period). 78.1 Floating point (must follow period with a digit). "/ABCDE/ ASCII text. / is delimiter. May be multiple words. "A$ Single ASCII character (right justified in word). $"/ABCDEF/ SIXBIT text. / is delimiter. May be multiple words. $"A$ Single SIXBIT character (right justified in word). TEXT$5" RADIX50 input. Symbols: NAME$: Unlock program symbols. $: Cancel previous NAME$: (leave no program open). BLOCK$& Unlock block symbols (must unlock program first). VALUE End patch. Redefine patch address. Miscellaneous commands: Move down one location. Move up one location. ^ Move up one location. Open address last typed; set . to new address. \ Open address last typed; leave . the same. ; Retype last quantity typed. / Without typing an address, looks at address given by last typed out thing. Doesn't change . NAME[ Same as / , except forces use of current radix. NAME] Force symbolic instruction typeout. _ Retype in symbolic mode. $ Return to last address. $ Return to last address + 1. $ Return to last address - 1. $Q Last value typed. $$Q Last value typed, halves swapped. $"/NAME/$Y Read NAME.DDT as a file of DDT commands, using channel 17 (Tops-10 only) $Y As above, prompts for file name. 4(5)$/ Look at 4 off of register 5 (but -1(5) loses). $U Unmapped virtual addressing $$U Unmapped physical addressing ept$[$][0]U Select executive virtual addressing upt$[$]1U Select user virtual addressing sec$[$]2U Select single section flg$3U Select (deselect) internal fake registers acb$4U Select hardware ac block acs$5U Load internal fake registers spt$6U Select base of SPT bas$8U Set base relocation address prt$9U Set protection address flg$10U Select (deselect) KI-paging flg$11U Select (deselect) KL-paging acb := integer ac block number acs := address of 20-word register block bas := base relocation address ept := executive process table page number flg := selection flag, zero to deselect, non-zero to select prt := protection (maximum allowable) address sec := section map page number spt := address of SPT upt := user process table page number $W If trying to change write-protected memory, unprotect $$W If trying to change write-protected memory, error $1W If trying to access non-existent page, create it $$1W If trying to access non-existent page, error On addressing modes: The commands that "open" locations, e.g. /, take any of several prefixes. / will be shown, but the same works for \, , etc. Mostly this only matters in multiple-section programs n/ Treat n as a 36-bit address. n$/ Treat n as if it were an instruction located at . n$$/ Treat n as if it were gotten to by indirect addressing from an instruction located at . If a space is typed somewhere before the /, or if no explicit address is typed (e.g. just a ), then only the right halfword of the address is used, and the section number is taken from . Locations where info is saved on entry/exit to exec mode DDT $I-01/ APR CONI word $I+00/ PI CONI word $I+01/ Mask of PI channels turned off by EDDT $I+02/ Executive virtual address of EPT $I+03/ Executive virtual address of UPT $I+04/ Executive virtual address of CST $I+05/ Executive virtual address of SPT $I+06/ Original AC-block word (DATAI PAG) if acb$4U Breakpoints: opnKEY$W Word search (type matches). N Word search (type non matches). E Search for instructions addressing key. If lower and upper are omitted, will default to all of whatever you are searching, except that when debugging a program with virtual addressing, only the current section is used. Type ? during search to see what is currently being looked at. adr$V Wait for contents of ADR to change. (Checks once every 1/60 sec. Typing ? shows what is being watched. Any other character stops the watch. (Only useful when something is going on asynchronously.) $M Mask. Will compare key with bit positions that are one in mask. N$M Put N in $M register. $M offsets: $M Contents of specified mask register. $M Store into specified mask register. $0M (default) Search mask. $1M Bit 17: 0 (default) use 3 spaces for 1 - use a tab Bit 34: 0 - for tabs use a real tab character 1 - simulate tabs with spaces Bit 35: 0 - hardcopy mode for rubouts 1 - display mode $2M First offset before absolute addresses are typed. $3M Byte mask for $0O. A one bit is used at the right end of each byte. Zeroing: FIRSTexp$Z Set all locations from lwr to upr to exp. ? shows how far it has gotten. Editing: RUBOUT Delete the last character typed. ^W Delete the last field typed. ^U Delete the whole line just typed. Locations: PAT.. Patch area. Always present. .JBREL 44 (Octal) .JBDDT 74 .JBSYM 116 .JBSA 120 .JBFF 121 .JBREN 124 .JBOPC 130 .JBVER 137 Commands to Tops-20 FILDDT initial command scanner. DRIVE (FOR PHYSICAL I/O IS ON CHANNEL) c (UNIT) u Examine physical disk drive (need not be mounted) ENABLE DATA-FILE Treat file as data, not program ENABLE PATCHING Allow changing what you are looking at. (Not possible for PEEK.) EXIT Return to EXEC. If you then SAVE, any symbols will be there when run again. GET (FILE) filespec (optional switches) Examine a disk file. /DATA - equiv to ENABLE DATA-FILE /PATCH - equiv to ENABLE PATCHING /SYMBOL - get symbols from the file first HELP Print summary of these commands LOAD (SYMBOLS FROM) filespec Get symbols from this file (but don't DDT it) PEEK Examine currently running monitor. You can only see monitor exec virtual address space from 0 to 777777. STRUCTURE (FOR PHYSICAL I/O IS) str: Examine a disk structure. The STRUCTURE command instructs FILDDT to use as the address space to be "DDT'ed" the entire disk file structure str independent of any "file structure mapping" normally imposed by the monitor. This is a privileged command. [End of DDT.HLP]