There are 6 other files named ddt.hlp in the archive. Click here to see a list.
[Help file on DDT%41; J. Hammer; P. DeWolf; last edited C. Hedrick 7-Sept-80]
$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
Use two altmodes to permanently change mode.
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.
NAME$: Unlock program symbols.
$: Cancel previous NAME$: (leave no program open).
BLOCK$& Unlock block symbols (must unlock program first).
VALUE<NAME: Create NAME with VALUE.
NAME$$K Permanently delete NAME.
NAME$K Allow NAME on typein only.
$D Delete last symbol typed; retype.
NAME# Allow NAME to be undefined for now.
? Type out all undefined symbols.
NAME? Type all modules defining NAME.
NAME: Define NAME with value of .
sym$< Patch before this instruction, put patch at
sym and update the value of sym at end
exp$< Patch before this instruction, put patch ad
$< Patch before this instruction, put patch at
first defined of FFF (monitor DDT only),
PAT.., PATCH, PAT, and update symbol. If no such
symbol, uses address at RH(.JBFF) and updates it
$$< Patch after this instruction.
$> End patch. Redefine patch address.
<LF> Move down one location.
<Backspace> Move up one location.
^ Move up one location.
<TAB> 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.
$<CR> Return to last address.
$<LF> Return to last address + 1.
$<Backspace> 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$[$]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 \, <tab>, 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 <tab>), 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
opn<bpt$nB Set breakpoint number n at 36-bit address bpt. When
breakpoint is reached open and display 36-bit address
opn. "opn<" and "n" are optional.
0$nB Remove breakpoint n.
$B Remove all breakpoints.
$nB+0/ If nonzero the address for breakpoint n
$nB+1/ The conditional break instruction (break if skips)
$nB+2/ The proceed count (break on transition to 0)
$nB+3/ If greater than or equal to zero then the address to
In user program, JSR $0BPT will cause DDT to act as if a breakpoint
had been reached.
$P Proceed from break.
100$P Stop before the 100th break at this point.
$X Single step next instruction.
17$X Single step 17 times.
$. Returns value of next instruction to be $X'ed
$$. Returns previous $. value.
17$$X Same as above except suppress output until last time.
$$X Proceed indefinitely until return to .+1 to .+3
(useful in subroutine calls). During $$X, typing ?
will show current status.
lwr<upr$$X Proceed until return to within the region between lwr
and upper. If upr is omited, it is lwr+3.
INST AC,E$X Execute INST AC,E. E may have indexing and indirection.
$G Start at address in .JBSA
NAME$G Start at NAME.
LOWER<UPPER>KEY$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.
$<num>M Contents of specified mask register.
<exp>$<num>M Store into specified mask register.
$0M (default) Search mask.
$1M Bit 17: 0 (default) use 3 spaces for <TAB>
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.
FIRST<LAST$$Z Zero everything between first and last.
lwr<upr>exp$Z Set all locations from lwr to upr to exp.
? shows how far it has gotten.
RUBOUT Delete the last character typed.
^W Delete the last field typed.
^U Delete the whole line just typed.
PAT.. Patch area. Always present.
.JBREL 44 (Octal)
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)
Treat file as data, not program
Allow changing what you are looking at. (Not possible for
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
Print summary of these commands
LOAD (SYMBOLS FROM) filespec
Get symbols from this file (but don't DDT it)
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
[End of DDT.HLP]