There are 6 other files named flm21b-20.doc in the archive. Click here to see a list.
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 1
COPYRIGHT (C) 1979 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 2
DDT is a symbolic assembly language debugger for the DECsystem-10
and DECSYSTEM-20. DDT provides many debugging facilities, including
breakpoints, program single-stepping, and the ability to examine or
deposit programs or data symbolically. The source file DDT.MAC
assembles into the following different versions of DDT:
TOPS-10 TOPS-20 FUNCTION
VMDDT.EXE UDDT.EXE Brought in by the DDT command.
DDT.EXE SDDT.EXE DDT with system symbols.
FILDDT.EXE FILDDT.EXE For EXE or binary data files.
DDT.REL RDDT.REL Relocatable user DDT.
EDDT.REL EDDT.REL Exec mode DDT.
-- MDDT.REL TOPS-20 monitor process DDT.
DDT version 41 is a significant development release with many new
features, including KL10 model B extended addressing support, 2020
support, native mode FILDDT on TOPS-20, and many minor enhancements to
make the debugging process easier.
A FEW OF THE NEW FEATURES IN DDT 41 ARE
NOT COMPATABLE WITH PREVIOUS VERSIONS OF
DDT. SOME COMMANDS THAT WORKED WITH
PREVIOUS VERSIONS OF DDT MAY NOT WORK OR
DO DIFFERENT THINGS WITH DDT 41. SEE
SECTION 2 FOR MORE INFORMATION.
DDT 41 supercedes all previous versions. It runs under all
supported monitors, and has been tested under TOPS-10 6.03A, and under
TOPS-20 releases 3A and 4. All patches published through 31-Dec-78
have been incorporated into DDT 41.
For DECsystem-10 sites, DDT is documented in the DDT manual,
which is part of volume 9 of the TOPS-10 Software Notebooks. The
manual can also be ordered separately as order number
For DECSYSTEM-20 sites, DDT is documented in the TOPS-20 User's
Guide, which is part of volume 1 of the TOPS-20 Software Notebooks.
The User's Guide can also be ordered separately as order number
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 3
2.0 EXTERNAL CHANGES
Most of the external changes in DDT 41 are new features that make
the debugging process easier. Refer to the file DDT41.MAN for a
detailed description of all new features.
SOME OF THE CHANGES TO DDT MAY CAUSE
COMMANDS THAT WORKED UNDER PREVIOUS
VERSIONS OF DDT TO NOT WORK OR DO
DIFFERENT THINGS WITH DDT 41. THE
FOLLOWING LIST DESCRIBES ALL SUCH
CHANGES. PLEASE BE SURE YOU UNDERSTAND
THIS LIST BEFORE ATTEMPTING TO USE DDT
2.1 36-Bit Addresses
All addresses used by DDT are now 36-bit numbers, including the
current location counter ".". Commands like "/" that take addresses
as arguments will now take all 36 bits of the argument as the address
to be used.
This change can cause DDT to type "?" unexpectedly on some
commands that worked with previous versions of DDT. The following
typescript illustrates a typical sequence that performs differently
with DDT 41:
FOO/ <old contents> -1,,TEXT<tab>
The user obviously expected to open location TEXT, but DDT 41
interpreted the entire expression as an address and opened a very
large nonexistent address. Another example is:
DISP/ 10327,,17346 $$Q/ ? .=17346,,10327
In this case, the user wanted to follow the address in the left half
of location DISP, but ended up looking at a huge address instead. The
$$Q means "the last quantity typed out with the halves swapped", which
has non-zero bits in the left half. The .= verifies that this is
indeed what has happened.
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 4
If DDT types "?" when it should have typed real data, and you
suspect that you may have ended up at a huge address, you can type .=
or linefeed to verify whether or not this has indeed happened. If it
has, the command ,./ (three adjacent keys on most terminals) will
quickly get you to the corresponding address with a zero left half.
You can get DDT to ignore the left half of the argument to a
location opening command such as / or tab by including a space
somewhere in the argument. Space means to retain the left half of the
current location when opening a new location. For instance, the first
example above could have been done as follows:
FOO/ <old contents> -1,,TEXT<space><tab>
TEXT/ ANDI 360732(16)
TEXT+1/ CONSZ 30,500000(14)
This command sequence would deposit -1,,TEXT in location FOO, but open
location 0,,TEXT, since the left half of the current address "." is 0.
Another example is:
LOOP1+3/ PUSHJ P,ERROR JRST PAT..<tab>
In this example, the user wanted to deposit a JRST PAT.. at LOOP1+3,
and then open location PAT.. to write a patch. However, the user did
not have to include an explicit space before the tab, since the
argument to the tab already contained the space between the JRST and
the PAT... In fact, this kind of example is exactly why space has
been implemented as a "retain the current section" command.
The ramifications of 36-bit addresses are more complex than can
be described in this short summary. Refer to the file DDT41.MAN for
2.2 Auto-typeout On Breakpoints
The command to set a location to type out automatically on a
breakpoint has changed, as follows:
A,,B$B or B(A)$B
This command means to set a breakpoint at location B, and type out
location A symbolically every time the program hits the breakpoint.
If the old-style command is typed to DDT 41, it will be interpreted as
a command to set a breakpoint at the full-word address A,,B, which is
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 5
KNOWN BUGS AND DEFICIENCIES
3.0 KNOWN BUGS AND DEFICIENCIES
The following list is currently incomplete. It will be updated
before DDT 41 is finally released.
The following is a complete list of all known bugs and
deficiencies in DDT 41 as of 1-Mar-79.
1. DDT does not detect many illegal commands, for example, 18
octal is accepted and treated as 20 octal. DDT does not
detect arguments to commands which are ignored, e.g., $23Q is
the same as $Q.
2. The commands $<CR>, and $<LF> do not detect the attempt to
recall more than was saved.
3. When looking at user rather than exec memory (e.g. n$mU),
the AC's still come from CRSHAC rather than the user pages.
4. $X cannot handle the INIT MUUO in user mode.
5. Rubout, CTRL/U, and CTRL/W are not handled properly when
ASCII or SIXBIT text is typed in (the " and $" commands).
Text may be stored in memory even if it is rubbed out later.
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 6
4.0 INSTALLATION INSTRUCTIONS
To install DDT version 41 on your system, copy the files DDT.EXE,
VMDDT.EXE, FILDDT.EXE, DDT.REL, EDDT.REL, and DDT41.MAN from the
distribution tape to SYS:.
The batch control file DDT.CTL contains all necessary
instructions to assemble and load DDT. It will normally have to be
modified slightly to correspond to the installation configuration.
To install DDT version 41 on your system, copy the files
UDDT.EXE, SDDT.EXE, FILDDT.EXE, RDDT.REL, EDDT.REL, MDDT.REL, and
DDT41.MAN from the distribution tape to SYS:. This can be done by
mounting the tape labelled Distribution Tape on MTA0:, then typing the
RESTORE DSK*:<*>*DDT.EXE (TO) SYS:*.*.-1, -
DSK*:<*>*DDT.REL (TO) SYS:*.*.-1, -
DSK*:<*>DDT41.MAN (TO) SYS:*.*.-1
To rebuild DDT from sources, mount the tape labelled Distribution
Tape on MTA0:, then type the following commands:
RESTORE DSK*:<*>*.*.* (TO) <self>*.*.*
!At this point, you should TYPE DDT.CTL to see what it does.
The batch control file DDT.CTL contains the procedures necessary
to rebuild DDT from sources. It may have to be modified slightly to
run at your installation, so you should type it to see what it does
before typing the SUBMIT command above.
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 7
5.0 INTERNAL CHANGES
5.1 Changes From DDT 37(201) To DDT 40A(250)
200 RDH 14-NOV-76 SPR 10-17714
VALIDITY-CHECK THE SYMBOL POINTER FOR THE HIGH-SEG SYMBOL
TABLE (.JBHSM) RATHER THAN ARBITRARILY BELIEVING IT (AND
SUBSEQUENTLY ILL MEM REF'ING, ETC.).
201 RDH 14-NOV-76 SPR 10-18806
MORE OF EDIT 200, AT DEF1:
202 RDH 14-NOV-76 SPR 10-19661
TREAT THE MAP INSTRUCTION "E" FIELD AS AN IMMEDIATE QUANTITY
RATHER THAN AS A MEMORY REFERENCE.
203 RDH 14-NOV-76
EXPAND FILDDT TO HANDLE FULL 22-BIT ADDRESSING IN EXE-FORMAT
FILES (SPECIFICALLY CRASH.EXE).
204 RDH 14-NOV-76 SPR 10-20165
IMPLEMENT SPECIAL BYTE-FORMAT TYPEOUT FOR THE VARIOUS
BYTE MANIPULATION INSTRUCTIONS. CODE COURTESY OF THE
UNIVERSITY OF ARIZONA.
205 RDH 15-NOV-76
PUT TAG PTDFLG: UNDER FTYANK RATHER THAN FTEXEC!FTFILE FOR
THOSE SITES THAT WISH TO TAKE THEIR CHANCES WITH $Y IN EITHER
UDDT OR VMDDT (NOTE: $Y USES I/O CHANNEL 17 - BE WARNED)
206 RDH 4-DEC-76
REWRITTEN CODE IN CHKADR (TO BETTER HANDLE KL'S) FORGOT HOW
KA'S WORKED AND LOST THE APR PI ASSIGNMENT.
207 RDH 4-DEC-76
IMPLEMENT "/D" FOR FILDDT -- TREAT FILE SPECIFIED AS PURE
DATA FILE - DON'T CRUMP ON FIRST 20 LOCATIONS (THE "ACS"),
DON'T LOOK FOR SYMBOL TABLE. IF NOT .EXE FORMAT AND NOT .XPN
FORMAT THEN "/D" IS ASSUMED.
210 RDH 6-DEC-76
EXTEND THE $M COMMAND -- <M>$<N>M -- WHERE <N> IS THE
MASK NUMBER AND <M> IS THE ASSOCIATED MASK.
<N> = 0 OR NOT-SPECIFIED THEN <M> IS THE SEARCH MASK
<N> = 1 THEN <M> IS TTY CONTROL MASK:
1B35 = 1 THEN "ECHO" <DEL>'S AS <BS><SP><BS>
211 RDH 6-DEC-76
NEW ASSEMBLY PARAMETER "SKPMAX" TO SET MAXIMUM NUMBER OF
LOCATIONS SKIPPED FOR $X LOGIC. IF <INSTR>$X THEN TYPE
<SKP> FOR EACH LOCATION SKIPPED. IF $$X THEN DO INDEFINITE
$X UNTIL OLD-PC .LT. NEW-PC .LE. OLD-PC+SKPMAX
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 8
212 RDH 7-DEC-76
 MATCH ANGLE BRACKETTS -- <<
WHEN PATCHING ($>) DON'T INSERT A 0 WORD UNLESS USER EXPLICITLY
TYPED IT - I.E., ALLOW THE $> TO APPEAR BY ITSELF - THE WAY MOST
PEOPLE TEND TO USE IT.
213 RDH 9-DEC-76
CHANGE SKIPN'S TO SKIPE'S IN  AND CAILE TO CAIL IN 
214 RDH 18-DEC-76
MATCH ANGLE BRACKETTS IN EDIT  COMMENTS TO KEEP VARIOUS
AND SUNDRY PEOPLE HAPPY.
215 RDH 19-DEC-76
IF SPYSEG THEN NO HISEG SYMBOL TABLE.
216 RDH 19-DEC-76
CHKHSM ROUTINE (,) IS TOO RESTRICTIVE, WON'T ALLOW
.JBHSM TO POINT TO LOW SEG; CHKADR ROUTINE WON'T ALLOW RANDOM
217 RDH 19-DEC-76
NAMSET ROUTINE (TO HANDLE MODULE$:) ASSUMES HIGH SEGMENT ALWAYS
STARTS AT 400000, LEADING TO SUBSEQUENT ILL MEM REF'S.
220 JNG 28-JAN-77
PREVENT ILL MEM REF ON PATCH CLOSE WHEN USING A WRITE-LOCKED
(E.G. HISEG) SYMBOL TABLE.
DDT %40(220) MARCH, 1977
221 TAH 13-MAR-77
ADD COMMAND FRONT END TO INTERFACE FILDDT TO TOPS-20 SYSTEM.
ADD KL PAGING CODE TO CVTADR, ALL UNDER FTFD20 CONDITIONAL
(FTFILE MUST STILL BE ON ALSO).
222 ASM 13-MAR-77
IN EXEC DDT DETERMINE EXEC VIRTUAL ADDRESS OF EPT BY SCANNING
EXEC VIRT ADR SPACE IF PAGING IS ON.
223 TAH 13-MAR-77
MAKE LPDL LARGER FOR TOPS-20 MDDT
224 RDH 13-MAR-77
MAKE SEARCHES HANDLE NON-CONTIGUOUS CORE/FILE IMAGES, ADD
TWO NEW ASSEMBLY PARAMETERS:
INDPTH ;MAX INDIRECT NESTING FOR $E SEARCHES
LISCNT ;NUM OF <PUSHJ P,LISTEN>'S TWEEN INCHRS'S
225 RDH 13-MAR-77
HANDLE TYPEOUT RADIX .GE. 10 (E.G., HEX) MORE GRACEFULLY
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 9
226 RDH 13-MAR-77
EDIT 215 IS WRONG, .GTSGN == 14
227 JNG 13-MAR-77
ADD CODE TO DDT TO WRITE-ENABLE PAGES ON TOPS-20 BEFORE
ATTEMPTING TO WRITE THEM - E.G., FOR BREAKPOINTS, PATCHS,
AND SO FORTH. IF PAGE NOT WRITE-ENABLED, SET COPY-ON-WRITE
SO AS NOT TO ZAP OTHER USERS "SHARING" THE PAGE.
230 RDH 13-MAR-77
WHEN IN A COMMAND FILE ($Y) THEN DO NOT CHECK THE COMMAND
FILE FOR INPUT ON CALLS TO LISTEN - ONLY ACCEPT PHYSICAL
231 RDH 14-MAR-77
CLEAR $U POINTERS IN FILDDT ON ^Z, START SEQUENCE
232 RDH 14-MAR-77
UPDATE LH(.JBSA) ON PATCH END IF .JBFF WAS DEFAULTED TO
ON PATCH BEGIN. THIS WAY THE PATCH IS AT LEAST SAVED ON
SAVE'S, RESET'S, AD NAUSEUM.
233 RDH 14-MAR-77
REVAMP PATCH LOGIC ($< AND $>) TO DISPLAY LOCATION BEFORE
MODIFYING SAME LOCATION SO THAT FILDDT CAN PATCH RUNNING
MONITOR (ALSO LOOKS NEATER).
234 RDH 23-MAR-77
ADD NEW "MASK" COMMAND <N>$2M TO SET THE SYMBOL OFFSET RANGE
(I.E. THE RANGE IN WHICH VALUES WILL BE TYPED IN THE FORM
SYMBOL+<OFFSET>) TO <N>. ADD ASSEMBLY PARAMETER "ADRNGE"
AS THE DEFAULT VALUE. ALSO MAKE $1M/ ETC. WORK.
235 RDH 24-MAR-77
REVAMP BYTE TYPEOUT LOGIC: ADD <N>$3M AS BYTE TYPEOUT MASK
(EACH "1" BIT IN THE MASK MARKS THE END OF A BYTE, BIT 35
IS ALWAYS CONSIDERED THE END OF A BYTE). FOR VALUES OF <N>
SUCH THAT 1 .LE. <N> .LE. 36(10) THE COMMANDS $<N>O & $$<N>O
WORK AS USUAL BY SETTING AN INTERNAL BYTE MASK. FOR <N> = 0
THE $3M BYTE MASK WILL BE USED. FOR <N> = <NULL> (I.E. THE
$O COMMAND) THE CURRENTLY PREVAILING $O OR $$O MASK WILL
BE USED IF NON-BLANK, ELSE THE $3M MASK WILL BE USED.
$$O MAKES PERMANENT THE CURRENTLY PREVAILING $O (OR $$O)
236 RDH 14-APR-77
ADD IFN FTYANK CONDITIONALS SO THAT FILDDT CAN BE ASSEMBLED
WITH FTYANK TURNED OFF
237 RDH 17-APR-77
GENERAL CLEANUP AND REARRANGEMENT. MAKE TOPS-10 DDT SEARCH
THE "C" UNIVERSAL FILE. TYPE OUT "DDT" WHEN USER MODE DDT
IS ENTERED. PUT TOPS-10-SPECIFIC CODE UNDER "IFN FTDEC10"
RATHER THAN "IFE FTDEC20".
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 10
240 RDH 15-JUN-77
ADD CODE TO TYPE OUT SYMBOLIC WORDS WITH USER-DEFINED SYMBOLS
SUCH AS THE CALLI OR JSYS MNEMONICS. ORDER OF SEARCH IS:
1) OPCODE & AC & I & X & Y FIELDS
2) OPCODE & I & X & Y FIELDS (E.G. CALLI OR JSYS)
3) OPCODE & AC FIELDS (E.G. TTCALLS)
4) OPCODE ONLY
5) HARDWARE-KNOWN OPCODE (JRST, ETC.)
PUT CODE UNDER FTOPX .NE. 0 CONDITIONAL SINCE UNTIL SORTED
SYMBOL TABLES AVAILABLE THIS CODE TAKES MUCH RUN TIME.
ALSO MAKE TRXX AND TLXX TYPE OUT ADDRESS AS OCTAL RATHER
241 RDH 15-SEP-77 SPR # 10-22011
"777777" COULD GET TYPED OUT AS "-1" WHEN $X'ING IF THE
AC BEING TYPED OUT WAS TYPED OUT IN XWD FORMAT.
242 RDH 16-SEP-77 SPR # 10-22616
"AOS UND#(AC)" LOST BOTH THE UND SYMBOL AND THE AC IN
THE WORD BEING BUILT (I.E., LEFT ONLY THE AOS).
243 RDH 16-SEP-77 SPR # 10-22788
PATCHING WITH FILDDT WRONG IF NONE OF THE USUAL PATCHING
SYMBOLS (PAT.., PAT, PATCH) ARE PRESENT AND THUS PATCHING
DEFAULTS TO C(.JBFF) - THE .JBFF USED WAS FILDDT'S, NOT
244 RDH 16-SEP-77 SPR # 10-22894
SOME RUBOUT'S STILL GET TYPED OUT.
245 RDH 17-SEP-77 SPR # 10-23013
AFTER REFERENCING AN UNDEFINED SYMBOL, THE UNDEFINED SYMBOL
IS LEFT IN THE SYMBOL CACHE WITH ITS BOGUS VALUE (E.G., THE
ADDRESS TO FIX UP).
246 RDH 25-SEP-77
BE MORE CHOOSEY ABOUT TYPE-IN INVOLVING UNDEFINEDS - CATCH ERRORS
SUCH AS "PUSHJ UND#,FOO" OR "MOVE 4,(UND#)"
250 JNG 15-Aug-78
Search UUOSYM, MACTEN instead of C.
DDT %40A(250) October, 1978
DDT41.DOC -- Changes from DDT 37(201)/40A(220) to DDT 41(252) Page 11
5.2 Changes From DDT 40A(250) To DDT 41(252)
247 RDH/JNG 16-OCT-77 TO 28-JUN-78
MASSIVE DEVELOPMENT AND REVAMPING: EXTENDED ADDRESSING; JSYSIZE FILDDT;
REMOVE SYMBOL CACHE; ADD $0W AND $1W; DISK SUPER I/O (FILDDT);
PHYSICAL MEMORY ADDRESSING; KS-10 SUPPORT; KI/KL PAGING SUPPORT;
$Z; $8T AND $9T; $.; $U ENHANCEMENTS; $B ENHANCEMENTS; $X EN-
HANCEMENTS; DECOMMIT EXEC PAPER TAPE STUFF; SYMBOLIC TYPEOUT
ENHANCEMENTS; $Y ENHANCEMENTS (TOPS-10 ONLY); NUMEROUS RANDOM
BUG FIXES. CALL VERSION 41.
251 JNG/RDH 15-Aug-78 to 26-Jan-79
Continuing and fixing bugs in 247: Implement hiseg symbol tables
in FILDDT; Allow the symbol table to be in another address space
for EDDT and MDDT; Add $: with no argument; Add "M" error.
252 JNG 4-Feb-79
Change hidden symbol logic to do exec virtual BLT's instead
of switching the EPT base address.
The following suggestion list has been accumulated from various
sources, including SPRs and DECUS sessions. The appearance of a
suggestion on this list does not necessarily mean that DIGITAL ever
intends to implement it.
1. Implement a byte typein and typeout facility.
2. Implement sorted and block-structured symbol tables.
3. Add error messages.
[End of DDT41.DOC]