There are 2 other files named ddt11.rnd in the archive. Click here to see a list.
.LM 0;.RM 72;.SP 1;.SPACING 1;.S 20;.T ^^DDT11 (preliminary)
.B 10;.TS 30
.I 20;Title: DDT11 (preliminary)
.I 20;Date: 19-Oct-80
.I 20;File: DDT11.RNO
.I 20;Edition: 1
.SK 10;.C;^^C\\OPYRIGHT 1975, 1976, 1977, 1978, ^DIGITAL ^EQUIPMENT ^CORP., ^MAYNARD, ^MASS.\\
^THIS DOCUMENT REFLECTS THE SOFTWARE AS OF version 5(41)
^THIS SOFTWARE IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF ^^DEC\\'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY ^^DEC\\.
^THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ^DIGITAL ^EQUIPMENT ^CORPORATION.
^ACTUAL DISTRIBUTION OF THE SOFTWARE DESCRIBED IN THIS SPECIFICATION WILL BE SUBJECT TO TERMS AND CONDITIONS TO BE ANNOUNCED AT SOME FUTURE DATE BY ^DIGITAL ^EQUIPMENT ^CORPORATION.
^^DEC\\ ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY ^^DEC\\.
.B;^DDT11 is a catagory C software product.
DDT11 is a tool which was written as part of the DC76, DAS78, and DAS85 development.
Because it may be of general interest it might be distributed as unsupported software.
The command syntax for DDT11 mimics PDP-10 DDT.
.P0,1;DDT11 can be used to examine and deposit PDP11 core using the CAL11. UUO or CAL78. UUO (requires POKE privileges).
DDT11 can also be used to examine a running DC75NP or DN8x using the NODE. UUO (requires POKE privileges).
DDT11 may also be used to read dumps produced by BOOT11, NETLDR, DTELDR, or DNLOAD.
.P0,1;DDT11 can run on TOPS-10, TOPS-20, or standalone on a 2020.
When running on a 2020, standalone, it will control paging, and support access
to a UBA. In this mode, DDT11 can run diagnostics on the -11 devices.
.P0,1;DDT11 can be used to patch binary files for later use.
.P0,1;DDT11 can be used to simulate the execution of PDP11 programs.
.P0,1;DDT11 commands may be either from a terminal, or may be from a command file.
.P0,1;Output from DDT11 will usually be printed on the users tty but may be directed to a line printer or disk file.
.B;When DDT11 begins execution it will ask what to look at by typing:
At this point a file name and/or switches may be entered to tell DDT11 what to read.
Legal switches include:
.P-10,1;_/11 Same as /PDP11
.P-10,0;_/8 Same as /PDP8
.P-10,0;_/BINARY Read file as binary.
.P-10,0;_/CORE:_#K Allocate specified amount of core to read dump or binary file.
.P-10,0;_/DTELDR Read file as a dump created by the DTELDR program.
.P-10,0;_/DUMP Read file as a dump (e.g. produced by BOOT11 or NETLDR).
.P-10,0;_/FE:_#n Used to request using the FE device to look at a front end.
.P-10,0;_/FESYMB Tells DDT11 to load symbols from a RSX20F map file.
.P-10,0;_/GO Indicate starting right away with the last command used.
.P-10,0;_/LA36 Defines user terminal to be a LA36.
This affects echo of rubouts.
.P-10,0;_/LINE:_# Used with /NODE to specify which DDCMP line to send maintanance messages on.
.P-10,0;_/LOCK Used to lock DDT11 in core (TOPS-10). Required for 6.03a systems.
.p-10,0;_/LSD Same as _/DUMP
.p-10,0;_/MERGE Used to read a dump, and overlay the old dump, adding the two together.
.P-10,0;_/NODE:_# Used to request use of NODE. UUO to examine PDP11.
.P-10,0;_/PATCH Used to enable patching.
.P-10,0;_/PDP11 Use only PDP11 symbols.
.P-10,0;_/PDP8 Use only PDP8 symbols.
.P-10,0;_/PORT:_# Used to request use of CAL11. or CAL78. UUO to examine PDP11.
.P-10,0;_/READST Tells DDT11 to load symbols from an internal format STB file.
.P-10,0;_/RELOCA:symbol Tells DDT11 to add an offset to symbols loaded from a RSX20F dump.
.P-10,0;_/SYMBOL Tells DDT11 to load symbols from listing file.
.P-10,0;_/SYMBOL:_# Tells DDT11 to load symbols from listing file starting at disk block _#.
.p-10,0;_/UBA:_# Tells DDT11 to use the correct UBA when running standalone on a KS10.
.P-10,0;_/VT52 Defines user terminal to be a VT52.
This affects echo of rubouts.
.P-10,0;_/WRITES Tells DDT11 to write an internal format STB file.
.B2;Example 1) to add to the DDT11 symbol table.
.B2;Example 2) to read a dump made by BOOT11 or NETLDR.
.B2;Example 3) to read a binary file and enable for patching.
.B2;Example 4) to examine (with CAL11. UUO or CAL78. UUO) memory in a running DC76, DC75NP, DAS78, or DAS87.
.B2;Example 5) to examine and deposit(with NODE. UUO) a running DAS82, or DAS87.
.B2;Example 6) to examine and deposit(with BOOTSTRAP msgs) a running DAS82 running the downline load rom.
In this example the node being booted is connected to the 3rd line of node fred.
.B2;Example 7) to load symbols from a RSX20F map file.
.B2;Example 8) to examine a running RSX20F front end on a TOPS-20 system.
.B2;Example 9) to run standalone on a 2020 and run devices on UBA 0.
.B;When <escape>, octal code 33, is typed it will be echoed as "$".
Throughout this manual when a "$" appears it means <escape>, unless otherwise noted.
.B;Lower case characters will be treated as upper case characters except in text input.
.INDEX ^^Lower Case Characters\\
.P0,1;Numbers which are typed in to DDT11 are taken as octal unless they are terminated with a "." or contain an "8" or "9" digit.
.P0,2;3.1##OPENING A LOCATION
.B;To open a location an expression representing the address is typed followed by a "/", "[", or "_\".
.INDEX ^^_/ command\\
If the expression was terminated with a "/" the location will be opened and displayed in the current output mode.
.INDEX ^^_[ command\\
If the expression was terminated with a "[" the location will be opened and displayed in numeric mode.
.P0,1;.INDEX ^^_; command\\
If a semicolon, ";", is typed the current location will be displayed in the current output mode.
.P0,1;.INDEX ^^__ command\\
If an underscore, "__", is typed the current location will be displayed as an instruction.
.P0,1;.INDEX ^^_lf command\\
If a linefeed is typed the location counter is increased by the size of the current display, the new location is opened and its contents are displayed in the current output mode.
.P0,1;.INDEX ^^_^ command\\
.index ^^Backspace command\\
If an uparrow, "_^", is typed the location counter is decreased by the size of the new display, the new location is opened and displayed in the current mode.
In instruction mode, when "_^" is typed the location counter is backed up 1, 2, or 3 words. A backspace, "_^H", is treated like an uparrow.
.B;The operators which are implemented are:
.LM15;.P-5,1;<blank> generally equivalent to _+
.P-5,1;_! inclusive or
.P-5,1;_^X#(control X) exclusive or
.P0,1;The operator precedence is:
.INDEX ^^Operator precedence\\
.LM10;.B;logical operations (from left to right)
.B;multiplication and division (from left to right)
.B;addition and subtraction (from left to right)
.index ^^Text typein\\
.B;To enter ASCII text type a double quote (_") followed by a character to serve as a delimiter, then type a string of characters and repeat the delimiter.
Characters are stored as 7bits plus a zero parity bit.
The string will be stored starting at the current address until all characters have been stored.
If an attempt is made to deposit a odd length string with _/PORT initialization a final zero byte will be added.
.index ^^Instruction typein\\
.B;Instructions may be typed in.
.P0,2;3.5##MULTIPLE WORD TYPEIN.
.index ^^Multiple word typein\\
.B;Multiple words may be typed in by separating the words with commas.
.P0,2;3.6##$<CR>, $<LF>, $_^
.INDEX ^^_$<cr> command\\
.INDEX ^^_$<lf> command\\
.INDEX ^^_$_^ command\\
.B;Typing $<cr> or $<lf> or $_^ will perform the usual function of a <cr> or <lf> or _^ and then reset the address to a previous address.
.B;Until a command has been completely typed in, characters can be deleted from it by typing rubout.
If the terminal was declared to be an LA36, the rubout will echo as a backslash, "_\", followed by the character which was rubbed out.
If the terminal was declared to be a VT52, the rubout will echo by deleting the rubbed out character from the screen.
.P0,1;.INDEX ^^_^W command\\
Until a command has been completely typed in, expressions may be deleted from it by typing a control W, "_^W".
.P0,1;.INDEX ^^_^U command\\
Until complete commands have been typed in, the command may be wiped out by typing a control U, "_^U".
The control U will echo as "xxx##".
.index ^^Typeout modes\\
.B;Typeout from DDT11 may be as instructions, numbers, bytes, ASCII text, or addresses.
As in PDP-10 DDT there is both a temporary and permant typeout mode.
The initial output mode is instruction format.
.B;In the following descriptions where _# is used, _# is the number of words or bytes to be displayed each time.
_# is either an expression surrounded with parentheses, or _# is an octal or decimal number.
.P-10,1;$_#A Sets address format typeout.
.INDEX ^^_$A command\\
If _# is not given 1 will be assumed.
.P-10,1;$_#B Sets byte mode typeout.
.INDEX ^^_$B command\\
If _# is not given 2 will be assumed.
.P-10,1;$_#C Causes output to be numeric format of _# words.
.INDEX ^^_$C command\\
If _# is not given 1 will be assumed.
.P-10,1;$_#I Causes output to be _# EBCDIC bytes.
.INDEX ^^_$I command\\
If _# is not given 2 will be assumed.
.P-10,1;$_#R Sets current numeric radix (16. gives hexadecimal)
.INDEX ^^_$R command\\
.P-10,1;$S Sets instruction format typeout.
.INDEX ^^_$S command\\
Each output will represent 16, 32 or 48 bits depending on the instruction type.
.P-10,1;$_#T Sets text format output.
.INDEX ^^_$T command\\
Data is intepreted as ASCII characters.
Each typeout will be _# characters long.
.B;DDT11 always has the standard PDP11 instructions defined as symbols.
The current location pointer may be refered to with the symbol ".".
The last word used by DDT11 for output, or input to DDT11 may be referenced with the symbol _$Q.
.INDEX ^^Defining symbols\\
.B;A symbol with a value equal to the current location counter may be defined by typing the new symbol and terminationg it with a ":".
The user may also directly assign a value to a symbol by typing the value, a left angle bracket (<) and the symbol, terminated by a colon.
.P0,2;5.2##READING SYMBOLS FROM MACDLX LISTINGS
.INDEX ^^Reading MACDLX symbols\\
.B;Symbols may be read from a MACDLX cref listing.
A typical command sequence would be:
.B;Symbols defined in the source with colons will be available for typeout from DDT11.
Symbols defined in the source with equals signs will be available for typein but will be suppressed on DDT11 output.
.p0,2;5.2##READING SYMBOLS FROM A RSX20F MAP FILE
.index ^^Reading RSX20F symbols\\
.b;Symbols may be read from a RSX20F map file.
A typical command sequence might be:
.INDEX ^^_$K command\\
.B;The last symbol typed by DDT11, or the last symbol typed by a user, may be made unavailable for typeout from DDT11 by typeing $K.
Symbols may be removed from the DDT11 symbol table by typeing $$K.
.INDEX ^^_? command\\
.B;When entering a symbol, if a "?" is typed DDT11 will search its symbol table for partial matches.
A partial match is any symbol which begins the same as the partially typed in symbol.
If any partial matches are discovered, DDT11 will type:
.P10,1;following are partial matches
.B;DDT11 will then type all of the partial matches, and their values in the current output radix.
If the symbols are suppressed, the value will be followed with a "spd".
If no symbols match the partially typed symbol, DDT11 will respond:
.P10,1;no partial matches for symbol
.B;After displaying the partial matches, DDT11 will retype the input and the user may continue typing in his symbol.
.P0,2;5.5##CONTROL F COMMAND
.INDEX ^^_^F command\\
.B;If control F is typed while typing in a symbol, DDT11 will search for partial symbol matches.
DDT11 will then add as many unambiguous characters as it can to the typed in symbol.
If the symbol has no matches, DDT11 will give a bell response.
If the symbol is ambiguous, DDT11 will fill in the unambiguous portion, if any, and the give a bell response.
.B;e.g. If DDT11 knows the symbol FOOP and no other symbols begining FO and the user types FO<control F>, DDT11 will add OP to the symbol.
.B;e.g. If DDT11 knows the symbols FOO1 _& FOO2 and no other symbols which begin FO and the users types FO<control F>, DDT11 will add one O and then give a bell since the symbol is ambiguous.
.INDEX ^^_$M command\\
.B;Searches and watching for changes in value are done with a mask.
The mask register is specified by typing _$M.
To open and examine the mask register a / follows the _$M.
When the mask register has been opened it may be changed by depositing a new value in it.
.B;Two types of searches are implemented in DDT11.
The format of a search for a match is:
.INDEX ^^_$W search\\
.B;where a is the lower limit for the search, b is the upper limit for the search and c is the value to match.
The format for a not-match search is:
.INDEX ^^_$N search\\
.B;where a is the lower limit for the search, b is the upper limit for the search and c is the value to not match.
.P0,1;If search limits are not given the previous limits will be used.
If examining a running PDP-11 the initial limits are 0.
If reading a dump the initial limits are all of the dump.
.INDEX ^^_$D command\\
.B;Occasionally it may be desireable to make a line printer dump of what DDT11 is examining.
The $D command is used for this purpose.
Limits for the command are given as for word searches.
The current output format is used for output.
.P0,1;After typing the $D command DDT11 will ask for a file specification to dump to.
If a file of the same name already exists the new dump will be appended to the old dump.
If the dump is part of a command file the logging device for the command file will be used for dump.
.P0,1;If the file specification is followed with a /DISASSEMBLE, DDT11 will produce output which looks like an assemble listing.
.P0,2;6.4##MONITORING A LOCATION.
.INDEX ^^monitoring a location\\
.INDEX ^^_$V command\\
.B;When DDT11 is being used to watch a running PDP-11 it may be useful to watch a particular location for changes.
The $V command is used for this purpose for an opened location.
.P0,2;6.5##PUNCHING A BINARY TAPE
.INDEX ^^_$P command\\
.B;After DDT11 has read in a binary file, it may be desireable to punch out a patched file.
The $P command is used to tell DDT11 to punch out a binary file.
The binary file will represent only locations which are within the search limits, and which were either read from the original binary file, or were deposited into.
.B;Switches may accompany the file spec.
Legal switches include:
.I-10;/BM873 Indicates want tape to punch a BM873 ROM.
.I-10;/IMAGE To make a file to be PIP'ed to a PTP with /I.
.I-10;/M9301 To make a tape for a M9301 ROM.
.I-10;/PACKED To make a packed binary file suitable for BOOT11 or NETLDR.
This is the default switch.
.P0,2;6.6##STARTING A PDP11
.index ^^Starting a PDP11\\
.index ^^_$G command\\
.B;When examining a PDP11 with the _/NODE initialization the program can be started with the $G command.
.P0,1;If DDT11 was initialized to read a binary file the command will set the starting address for a $P command.
.index ^^Command files\\
.INDEX ^^_$Y command\\
.B;Command files may be used with DDT11.
To start a command file the command _$Y is typed.
.P0,1;After the $Y is typed DDT11 will ask for where to log responses.
Responding with a <CR> will default to output on the controlling tty.
.P0,1;Next DDT11 will ask what command file to read.
.P0,1;7.1##Command File Echoing
.P0;Usually as characters are read from a command file, the characters will be echoed into the log file.
If a <control S> is encountered in the command file echoing will be suspended until a <control Q> is enountered.
.P0,1;7.2##Macro Style Arguments
.index ^^Command arguments\\
.P0,1;During the execution of command files _^A is used to delimit symbols whose values are to be converted to ASCII text.
e.g.: If the symbol FOO had a value of 13, and if the command file contained a string "L_^AFOO_^ABLK" it will be processed as if it had been "L13BLK".
.P0,1;Command files may contain tags.
Tags are of the form "%TAG:" where TAG is an alphanumeric string.
The first character after the "%" should be alpha.
Only the first 5 alphanumeric characters are used.
Care must be used in chosing tags so that a "%" in a text input string will not be confused with a tag elsewhere in the command file.
.INDEX ^^_%GOTO %TAG\\
.P0,1;Command files may contain unconditional branches by including %GOTO %TAG commands.
The %TAG may be anywhere in the command file.
.P0,1;7.5##%IF C exp %TAG
.INDEX ^^_%IF C exp %TAG\\
.P0,1;Conditional branches may also be included in the command files.
For numeric tests exp is a general expression.
For DEF or NDF, exp is a single symbol name.
For ERR, exp is not absent.
If the condition is true control will be transfered to %TAG.
The conditions which may be tested for are:
.LM15;.TS 14;.P-7,1;DEF The symbol is tested for existence.
.P-7,1;DF Same as DEF.
.P-7,1;E Same as EQ.
.P-7,1;EQ Expression is tested for a zero value.
.P-7,1;ERR Tests, and clears the error flag.
The error flag is set if an undefined symbol is used in an expression, or if an illegal command is typed.
.P-7,1;G Same as GT.
.P-7,1;GE The expression is tested for a positive value.
.P-7,1;GT The expression is tested for a positive, nonzero value.
.P-7,1;N Same as NE.
.P-7,1;NDF The symbol is tested for nonexistence.
.P-7,1;NE The expression is tested for a nonzero value.
.P-7,1;L Same as LT.
.P-7,1;LE The expression is tested for a zero or negative value.
.P-7,1;LT The expression is tested for a negative value.
.index ^^_$G command\\
.B;To begin simulating the $G command is given.
If the escape is preceeded by an expession, the expression is taken as the starting address for the simulation, otherwise the current contents of the PC (register 7) is used.
.index ^^_$X command\\
.B;To execute a single instruction the $X command is used.
If the escape is preceeded by an expression, the expression is used as the starting address, otherwise the current PC (register 7) is used.
If the escape is followed by an octal or decimal number, the number is taken as the number of instructions to execute before stopping the simulation.
The $$X command is used to execute a subroutine call, and simulation will proceed until the subroutine returns.
.B;On a 2050 or a 1080 the simulation proceeds at rates varying between 10 and 45 u-seconds per PDP-11 instruction executed.
The range in speed depends primarily on what addressing modes are used, with typical programs running around 22 u-second per PDP-11 instruction.
.C;SUMMARY OF COMMAND CHARACTERS
.P-7;null <0> Ignored
.P-7,1;_^A Illegal except in command files.
.P-7,1;_^B <1>-<2> Illegal.
.P-7,1;_^C <3> Monitor command to return to monitor.
.P-7,1;_^D-_^E <4>-<5> Illegal.
.P-7,1;_^F <6> Requests DDT11 to typein rest of symbolic name (if unique).
.P-7,1;bell <7> Illegal.
.P-7,2;backspace <10> Same as _^.
.P-7,1;tab <11> Change location pointer to last adr typed, then display location.
.P-7,1;lf <12> Advance to the next sequential location and display its contents.
.P-7,1;vt <13> Illegal.
.P-7,1;ff <14> Illegal.
.P-7,1;cr <15> Closes current location.
.P-7,1;_^N <16> Illegal.
.P-7,1;_^O <17> Monitor command to shut off typeout.
.P-7,2;_^P <20> Illegal.
.P-7,1;_^Q <21> Monitor command to pause output.
.P-7,1;_^R <22> Causes DDT11 to retype a partial command.
.P-7,1;_^S <23> Monitor command to resume output.
.P-7,1;_^T <24> Illegal.
.P-7,1;_^U <25> Deletes current typein.
.P-7,1;_^V <26> Illegal.
.P-7,1;_^W <27> Deletes current typein up to previous operator.
.P-7,2;_^X <30> Logical exclusive or operator.
.P-7,1;_^Y <31> Illegal.
.P-7,1;_^Z <32> Requests DDT11 to clean up and exit to the operating system.
.P-7,1;escape <33> Meaning depends on next alphabetic character.
.P-7,2;space <40> Ignored at the begining of expressions, between symbolic names is same as "+".
.P-7,1;! <41> Logical inclusive operator.
.P-7,1;" <42> Used to initiate text typein.
.P-7,1;$ <44> Character used to form symbolic names.
.P-7,1;_& <46> Logical and operator.
.P-7,1;' <47> Division operator.
.P-7,1;* <52> Multiplication operator.
.P-7,1;+ <53> Addition operator.
.P-7,1;, <54> Separator for multiword expressions.
.P-7,1;- <55> Subtraction operator.
.P-7,1;_. <56> If used alone stands for current location pointer, else a character in a symbolic name.
.P-7,1;_/ <57> Requests previous expression become current location and display of current location.
.P-7,2;0-7 <60>-<67> Octal digit. Used either as a character in a symbolic name, or as a character in an octal or decimal number.
.P-7,2;8-9 <70>-<71> Used either as a character in a symbolic name, or as character in a decimal number.
.P-7,1;: <72> Defines previously typed symbolic name to be a tag with same value as current location pointer.
.P-7,1;_; <73> Requests previously opened location be retyped in current output mode.
.P-7,1;< <74> Requests previous expression become the new lower limit for search, dump, or binary output.
.P-7,1;= <75> Requests previous typein or typeout be retyped in the current numeric radix.
.P-7,1;> <76> Requests previous expression become the new upper limit for search, dump, or binary output.
.P-7,1;? <77> When typed after a partial symbolic name will provide a list of all symbolic names which are partial matches.
.P-7,1;A-Z <101>-<132> Alphabetic characters, used to form symbolic names.
.P-7,1;[ <133> Requests previous expression become current location and display of current location in current numeric radix.
.P-7,1;_^ <136> Backs up current location pointer and displays new location.
.P-7,1;a-z <141>-<172> Same as "A"-"Z" except in text typein.
.P-7,1;rubout <177> Deletes the previous character.
In command files rubout is ignored.
.c;STB FILE FORMAT
.index ^^STB file format\\
.b;This appendix describes the internal format of STB files as used by DDT11.
These files are in a format convenient for DDT11 and are not related to any other STB file format.
Block ! Version # ! Length ! 0,,10 (length of header block)
! Length ! 4 (length of symbol block)
! Symbol offset ! 0
! Value offset ! 1
! Flag offset ! 2
! Module offset ! 3
! Unused !
! Unused !
Block ! SIXBIT symbol !
! Value for symbol !
! Flags ! Mask !
! Module name !
Version 0 flags are:
SMF.BY 1B1 Byte instruction
SMF.11 1B2 PDP11 symbol
SMF.P8 1B3 PDP8 symbol
SMF.PL 1B4 Set processor level instruction
SMF.MK 1B5 Mark type instruction
SMF.EM 1B7 EMT type argument
SMF.JS 1B8 JSR type register usage
SMF.RT 1B9 RTS type register usage
SMF.SB 1B10 SOB type address
SMF.BR 1B11 Low 8 bits are branch offset
SMF.SS 1B12 Low 12 bits are SSDD
SMF.DD 1B13 Low 6 bits are destination
SMF.EI 1B14 EIS instruction format
SMF.IN 1B15 Instruction value
SMF.RG 1B16 Register value
SMF.SU 1B17 Suppressed (defines with a =)