There are 8 other files named ddt43.doc in the archive. Click here to see a list.
DDT43.DOC -- DDT 43(617) Page 1
DDT43.DOC -- DDT 43(617)
Changes from DDT 42(320) to DDT 43(617)
COPYRIGHT (C) 1970, 1984 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.
DDT43.DOC -- DDT 43(617) 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 XDDT.EXE Brought in by the "DDT" command
DDT.EXE XDDT.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
-- KDDT.REL TOPS-20 monitor specific EDDT
The TOPS-20 user DDTs, UDDT and SDDT, have been superseded by XDDT.EXE
which runs in a section by itself. The source file UDDT.MAC assembles
into stubs called UDDT.EXE and SDDT.EXE which are maintained for
compatibility purposes. These stubs simply bring XDDT into a free
DDT version 43(617) is a new version incorporating maintenance
edits made to version 42 and major development work. Changes that
have been made are documented under External Changes, section 2.0, and
Internal Changes, section 5.0.
A FEW OF THE NEW FEATURES IN DDT 43 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 43. SEE
SECTION 2 FOR MORE INFORMATION.
DDT 43 supersedes previous versions of DDT running on KL model B
processors under TOPS-20. DDT 43 is not intended to run on other
processors or under TOPS-20 monitors prior to TOPS-20 6.0. It has
been tested under TOPS-20 6.0 only. DDT version 42 is still supported
on configurations where DDT 43 is not supported.
DDT 43 is documented in the new DDT-20 Manual. This manual fully
documents all features of DDT (including FILDDT and monitor DDTs). A
new TOPS-20 DDT Reference Card is under development. Older
documentation that exists is described below.
For DECSYSTEM-20 and DECsystem-10 sites, DDT is also documented
in the DDT Reference Card, order number AV-M272A-TK.
DDT43.DOC -- DDT 43(617) Page 3
2.0 EXTERNAL CHANGES
1. The patch abort command has been changed from $$0> to $0<.
2. Sections can now be "faulted" into existence, much the way a
page can be created by depositing something into it.
3. The $$? command has been removed from FILDDT-20, as it made
no sense in this context. FILDDT-10 never had the command
(type last process error). The n$$? command (type error
message with code n) is still available.
4. $X of certain instructions (including BLT and byte
instructions) in non-zero sections could fail if the
effective address was an accumulator. This has been fixed.
5. Allow breakpoints to be set in any section. $4M contains the
address of a "breakpoint block" to be used in implementing
inter-section breakpoints. This block is 100 (octal) words
long, and defaults to the last 100 words in each section
(i.e. location 777700). If $4M is set to zero,
inter-section breakpoints (and out-of-section $X) are
6. DDT will now use symbols defined with non-zero left halves
when displaying addresses in non-zero sections, including
display of the Y field of an instruction.
7. Allow a symbol table to come from any section, not just DDT's
section. $5M contains symbol table information; if the left
half is negative, the right half contains the section number
in which to look for symbols. (For example, if $5M contains
-1,,5 then DDT will look in 5,,.JBSYM and 5,,.JBUSY for
symbol table pointers.) If $5M contains a PDV address, DDT
looks at the symbol table vector pointed to by word .PVSYM of
the PDV for symbol table pointers. If $5M contains zero, DDT
looks at pointers located in the UDDT stub.
8. $6M contains the "permanent" default section; if this is
set, DDT will always use that section number when the user
doesn't type one. If $6M contains -1, DDT reverts to its old
"floating" section behavior. -1 is the default.
9. The "instruction$X" command now executes the instruction in
the current default section instead of in DDT's section. The
current default section may be set with either the $6M
command or by simply opening a location in the section. The
$X code makes use of the breakpoint block for this;
therefore $4M must also be non-zero for this to work.
10. Implement a fork interlock for MDDT breakpoints. Now only
one fork at a time may set a breakpoint in MDDT, although any
fork that executes the code where the breakpoint was set will
DDT43.DOC -- DDT 43(617) Page 4
take the breakpoint. (This could cause problems if a fork
hits the breakpoint without having previously run MDDT.)
11. Implement $$:/text/ command to set the contents of $5M to the
PDV with name "text". $$1: types out the current PDV name.
12. Allow the $nU commands to be given in exec-mode EDDT/KDDT.
13. Implement the $n" commands (n=5,6,7,8,9) for n-bit ASCII
14. Add the "ENABLE THAWED" command and "/THAWED" switch to
FILDDT, to permit FILDDT to patch files open for thawed
15. Implement $1: to type out the name of the open module.
16. Implement $1T typeout mode, to type out words as byte
17. Make $X of an ERSTR% work more often. If the ERSTR% is
followed by two consecutive ERJMPs, and the JSYS takes the +2
return, DDT will not properly follow the ERJMP. All other
cases should work.
18. Allow PEEKing at extended monitor addresses in FILDDT.
19. Have FILDDT check for the last existing page in a file when
reading it in; that way searches etc. will stop at "real
eof" instead of continuing to the maximum possible file
20. Add the "FOO$?" command, which will type out all symbols
beginning with the characters FOO (can be 1-6 chars).
21. Add the $L commands, which type out page access of existing
pages, and $$L which type out section accesses. Legal
formats: $L (all existing sections), n$L (only section n),
n<m$L (sections n thru m).
22. Have FILDDT parse unit, channel, and controller numbers in
decimal in the DRIVE command. This is for consistency with
3.0 KNOWN BUGS AND DEFICIENCIES
The following is a list of all known bugs and deficiencies in DDT
43 as of 20-Sep-84.
1. DDT does not attempt to 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,
DDT43.DOC -- DDT 43(617) Page 5
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 in FILDDT-10
(e.g. n$mU), the AC's still come from CRSHAC rather than the
4. On TOPS-20 systems, $Xing a SKIPNL UUO will cause PA1050 to
complain of an Address Check and return to EXEC.
4.0 INSTALLATION INSTRUCTIONS
To install DDT version 43 on your system, copy the files
UDDT.EXE, SDDT.EXE, XDDT.EXE, FILDDT.EXE, RDDT.REL, EDDT.REL,
KDDT.REL, and MDDT.REL from the distribution tape to SYS:. DDT43.DOC
should be installed on DOC: or HLP:.
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.
5.0 INTERNAL CHANGES
Following is a list of changes from DDT 42(320) to DDT 43(617):
Edit Who Date SPR
320 RDH/JBS 30-SEP-81
Edit 317 broke typing something to get out of a (e.g.) search loop
(exec mode only), preserve APR bits in exec mode, type "/" instead
of a space in $0T command.
321 JBS 30-SEP-81 10-31641
Remove definition of Radix50 PAT from list of patch locations in
322 JBS 6-OCT-81
Physically remove desupported $L code.
323 Already installed in 42(320)
324 JBS 27-JAN-82
Fix typo in edit 317 that caused EDDT to hang on startup.
325 RDH/JBS 3-FEB-82 None
DDT43.DOC -- DDT 43(617) Page 6
Fix PUSH/POPJ mismatch that happens if no SPT setup in KL-paging.
326 JBS/RDH 19-MAR-82 None
Change conditional breakpoint code to completely restore the world
before executing (in case of CONSZ PI, etc. in EXEC mode).
327 JBS 12-MAY-82 20-17648
Type symbol in open module in preference to a global, if they both have
the same value.
330 JBS/RDH 10-JUN-82 10-32487
Preserve/restore KA/KI console status correctly in EDDT-10.
331 JBS/RDH 17-DEC-82 20-17727
Rework $X code to minimize problems with PSI switching. User would
get PSI traps with DDT's ACs set up, or not get PSI at all. This does
not eliminate the problem completely (can't be done anyway), it just
helps it a lot.
332 JBS 1-SEP-82 10-32308
Make RDIO not crash the system when $X'ed on a KS. Fixed on TOPS-10
and EDDT-20; S/UDDT don't have enough room left to be fixed.
333 DLM/RDH 25-DEC-82 None
Create sections as needed for TOPS-20 user-mode DDTs; default
the section in address expression if address is .LT. 18 bits, or
if space or comma typed, but never if comma-comma typed; implement
"internal" addresses (e.g., for $M, $I, etc.) - make $NI, $NM, and
$NU consistent (allow setting as well as reading of all); fix 
which left out a "JRST TPOPJ" in OKPAG2.
334 JBS 31-JAN-83 10-33035
Type I/O instructions correctly in "_" command.
335 JBS 31-JAN-83
Do all TOPS-20 DDT I/O to/from controlling terminal, not primary
input/output. This allows doing "TAKE" files by redirecting .PRIIN.
336 JBS 1-FEB-83
Remove all "SMERS" type error messages to gain critically needed code
337 JBS 2-FEB-83
Fix inefficient code after symbol table cache feature test was added.
340 JBS 2-FEB-83
Remove $$0> as patch abort command. Leave $0< as the command.
341 JBS 9-FEB-83
Put DDT start address in .JBDDT in VMDDT for the monitor to read.
342 JBS 16-FEB-83
Fix $G to use 30 bit start addresses on TOPS-20.
343 JBS 25-FEB-83
DDT43.DOC -- DDT 43(617) Page 7
Remove EXEC-mode only code from user DDTs. Edit 331 must be installed
344 JBS 14-MAR-83
Don't die if user gives bad fork number in FORK<$$?.
345 JBS 4-APR-83
Move some code to pages 764 and 765 in UDDT-20 to get code space.
346 JBS 4-APR-83
Fix edit 343 so TOPS-10 user mode works. Edit 343 must be installed.
347 JBS 6-APR-83
Expand edit 332 to work in UDDT-20 and SDDT-20 on the KS. Edit 345
made enough room to install this bug fix.
350 JBS 8-APR-83
Fix EXEC typeahead check at LOOK2 + a few.
351 JBS 8-APR-83
Remove definition of MRPAC% JSYS from source.
352 JBS 8-APR-83 20-19074
Fix $W in FILDDT-20.
353 JBS 6-MAY-83
Fix $? command to not type garbage strings.
354 JBS 9-MAY-83
Remove $$? command from FILDDT-20.
355 JBS 8-JUL-83
Move SAVE4 label so exec DDT's start. Fix to edit 331 and 332.
356 Not installed.
357 JBS 26-JUL-83
Fix $W for disks - page access bits were not updated.
360 JBS 28-JUL-83
Do monitor fixups right - PEEK just before POKE.'ing.
361 RDH 15-NOV-83
Keep the lawyers happy - put copyright in the binaries.
362 PTR 20-DEC-83 20-17198
Fix non-zero section $X of XMOVEI, XHLLI, LDB et al. by
remembering the local/global part of the EA calc.
Make a new entry in $XTBL for XHLLI, so section no. is printed.
Add code to TBPNT to decode all forms of byte pointers.
Fix EA calc of byte pointers at IXBP; handle all the formats.
363 JBS 1-FEB-84 RAW
Make PSECT XCODE read-only.
DDT43.DOC -- DDT 43(617) Page 8
364 PTR 7-FEB-84 10-34464
WRTWIN thought the referenced address was always in R; it isn't.
Use the file page number instead.
365 RDH 21-FEB-84
Only give hardware 8 bits of char in exec mode.
366 PTR 21-FEB-84
Don't confuse float input and symbols starting with ".E" so much.
367 JM 21-JUN-84
Fix $O typeout mode (n-bit bytes) so that addresses are rendered
symbolically rather than absolutely.
Reserve some edits for maintenance; start v43 development at 420.
420 PTR 9-JAN-84
Create this source file from DDT v42(362). Clean up comments,
make code format consistent as possible. No code changes.
421 PTR 9-JAN-84
Support inter-section breakpoints. Implement $4M.
422 PTR 18-JAN-84
Add support for $X of XJRST instruction. Fix io instruction
423 PTR 19-JAN-84
424 PTR 19-JAN-84
Revise instruction typeout code to allow for symbols with
non-zero left halves.
425 PTR 20-JAN-84
Fix $X of stack instructions to work with local stack pointers
in non-DDT sections.
426 PTR 23-JAN-84
Always insert/remove breakpoints around instructions. JSYS can
cause random dispatches, interrupt or arith ovl may occur;
make sure DDT has a chance of recovering.
427 PTR 24-JAN-84
Redo SAVEG: a bit. Move some exec mode typeahead checks.
430 PTR 24-JAN-84
Install DLM's symbol table changes verbatim -- will change to
meet spec later. Includes MDDT stuff; rip out windowing code.
No more "hidden" symbols on -20.
431 PTR 25-JAN-84
Add stack/arith trap-causing instructions to dangerous opcode
table; fix  to insert/remove bpts only for dangerous
instructions. Reorganize dangerous opcode table definition.
DDT43.DOC -- DDT 43(617) Page 9
432 PTR 26-JAN-84
Fix up $5M to assume -1,,n format. If word is 0, default to DDT's
section. Clear cache if stuffing new symbol pointers (SYMCHK).
433 PTR 30-JAN-84
Make FILDDT assemble again. CNTRLZ/CNTRLE were too big for command
434 PTR 3-FEB-84
Keep SYMCHK from switching symbol tables in MDDT/KDDT.
Never look outside section 0 for symbol tables if running in zero.
435 PTR 3-FEB-84
Fix  to use IFIW when zeroing "@SYMP".
Change MAP AC,(R) and SKIP (R) to use @R (so sec. 0 refs from
non-zero will work).
436 PTR 6-FEB-84
Fix  so doesn't reference .EDSEC on -10.
437 PTR 6-FEB-84
Special MDDT breakpoint interlock; only one fork can set breakpoints
at a time. Set default MDDT/KDDT breakpoint blocks.
Change MDDT/KDDT psect names.
440 PTR 15-FEB-84
Make <foo>$X do the instruction in user's section, not DDT's section.
Fix CNTRLZ not to use $X code.
441 PTR 15-FEB-84
Make $V default section if none typed.
442 PTR 16-FEB-84
Fix handling of SYTSEC so SDDT still works.
Make hiseg s.t. checks do local fetches.
443 PTR 23-FEB-84
Default BPBLK to last n words in section. Make sure it has room
for $X needs.
444 PTR 24-FEB-84
Fix SYTSEC handling some more so s.t. stuffing (incl SDDT) works in
445 PTR 27-FEB-84
Make MDDT stack pointer global. Others should still be local.
446 PTR 27-FEB-84
Don't diddle PSI status in MDDT. Stack not set up at that point anyway.
447 PTR 27-FEB-84
In <instr>$X, don't insert breakpoints unless we're really going
to execute the instruction.
DDT43.DOC -- DDT 43(617) Page 10
450 PTR 27-FEB-84
Turn some raw numbers into symbols in KL paging stuff.
Fix exec mode $W, include CST write bit.
451 PTR 27-FEB-84
Implement "permanent default section," $6M. If set, use it instead
of LLOCS in DEFSEC. Rewrite DEFSEC to include new routine GDFSEC
(get default section).
452 PTR 28-FEB-84
When a local and global have the same value, consistently pick
the global for typeout. Improvement on .
453 PTR 28-FEB-84
Fix problem with OKAF. Clear it in more places, so # appears
after locals consistently.
454 PTR 2-MAR-84
Fix problem with . Instr$X could die if breakpoints set.
455 PTR 5-MAR-84
In KDDT user mode, jump into monitor on ^Z so it can play mapping
games. This is so "@GET SYSTEM:MONITR @START 140" will work.
456 PTR 21-MAR-84
Opdef some opcodes so that decrepit versions of MACRO can still
457 PTR 22-MAR-84
Fix SYMCHK not to step on FILDDT's symbol pointers. For now
FILDDT will ignore $5M.
460 PTR 30-MAR-84
Make $X of pc-section-ref instructions (byte, EXTEND, BLT, JSYS)
execute in original pc section.
461 PTR 18-APR-84
Massive edit to recognize PDV's and their symbol vectors.
The iowd is hereby defunct. Symbol table pointers are now kept
internally as two-word address/length pairs. SYMP and friends are
now blocks of symbol table information. This changes how symbol
tables are handled all over DDT. In particular, SYMFIX, SYMCHK
and CLSFIL have basically been rewritten. All other places that
touch symbol table pointers have been changed to account for the
new format. Note this edit never reflects changes to symbol table
pointers in the user's original copy (except FILDDT).
462 PTR 18-APR-84
Prohibit patching across section boundaries. Use patched section's
.JBFF, not section zero's, when no symbols exist.
463 PTR 18-APR-84
Simulate $X of JRSTF in section zero when running in non-zero.
DDT43.DOC -- DDT 43(617) Page 11
464 PTR 19-APR-84
Preserve section number of patch symbol.
465 PTR 19-APR-84
Permanently write-enable breakpoint block when doing an $X,
so the "SOS FOO" doesn't cause an ill mem write.
466 PTR 23-APR-84
Implement $$:/TEXT/ to look up first PDV with name TEXT and
set $5M to its address. User-friendly version of $5M.
$$1: types out current PDV name if any.
467 PTR 23-APR-84
Fix  so defining new symbols works.
470 PTR 24-APR-84
New routine INCSYP to update internal symbol table pointers as
well as user's original pointers (except FILDDT, which updates
pointers only on close).
471 PTR 25-APR-84
Fix SYMCHK to always set ESTUT (prevents startup problems).
472 PTR 27-APR-84
Have TTYSAV call SYMCHK, so pointers will really be set up
on entry. That way if the first thing the user does is "$5M/"
it will already be set up. Make an effort to keep TOPS-10 EDDT
working with this (not tested). Nudge conditionals to prevent
473 PTR 30-APR-84
Byte pointers given to a JSYS in section zero must be 1-word locals.
474 PTR 1-MAY-84
Turn on FTPAGM in -20 exec mode.
475 PTR 3-MAY-84
Look for hiseg table even if pointers are stuffed.
476 PTR 7-MAY-84
Teach INCSYP about 0$5M. Don't call SYMCHK so often (DEPRA).
Let FILDDT read dumps again. Make error message if user tries to
create a page when $$1W.
477 PTR 8-MAY-84
Fix $nM (other than $5M) in FILDDT to look like it always did.
500 PTR 8-MAY-84
If DDT in non-zero, pc in zero, XMOVEI becomes pc ref instruction.
(XMOVEI 1,0 would return 1,,0 instead of 0,,0.)
Fix typeout of XMOVEI 1,0 so 0 types out.
501 PTR 9-MAY-84
Switch monitor ddts back to using EDV ( and others had them
using JOBDAT). Make TTYRE6 look more like v42.
DDT43.DOC -- DDT 43(617) Page 12
502 PTR 12-MAY-84
Make SYMCHK set .JBUSY if creating an undefined symbol pointer
out of thin air (JOBDAT only). Make IOWBLK work for monitors.
Make sure symbol blocks cleared if no pointers found.
503 PTR 14-MAY-84
In SAVEG, don't set LLOCS if in an $X situation (screwed up
hiseg symbol table). Fix bug in . Don't make TTYSAV call
SYMCHK, it'll happen too often -- call SYMCHK directly when DDT
is started. Don't need to on breakpoint, display routines will
take care of it.
504 PTR 22-MAY-84
Make UDDT-20 live in its own section. Create an "export" vector
to be pointed to by DDT's PDV. Keep DDT from finding its own
PDV unless running alone in the fork (determined via entry vector).
Default LLOCS to stub's section or entry vector section (user-20)
or DDT's section (monitor-20, all-10).
505 JM 31-MAY-84
Get DDT to understand $n"c$ and $n"/.../ syntax. Replace PEEK
JSYS with XPEEK% in FILDDT.
506 PTR 5-JUN-84
Fix overflow at NUM+10. Fix 3.2E2$F; bug. Make sure we have
an IFIW at HIDPD1. Only look in DDT's section for its PDV.
507 PTR 5-JUN-84
Teach code at UND1, DEF5, and DEPRA that undefined syms have 30-bit
address values, so fixups can be outside sym tab's section.
Chains still can't cross section boundaries though.
Fix where  broke $$: command.
510 PTR 7-JUN-84
Support ERJMPR/ERCALR/ERJMPS/ERCALS in $X code.
511 PTR 7-JUN-84
Turn HIDPDV into once-only code to protect ourselves against old LINKs.
DDT 43 will go out before LINK 6 so we have to be careful.
512 PTR 8-JUN-84
Split the "dangerous opcode" table into two parts, the memory mungers
and the truly dangerous. Memory mungers force recheck of symtab,
truly dangerous get full environment and breakpoints around the XCT.
Restore temp display modes at TELLX, since dangerous XCT smashes them.
513 PTR 8-JUN-84
$G wouldn't work for a TOPS-10 style entry vector in a non-zero section.
Make it look at <entry vector section>,,.JBSA instead of 0,,.JBSA to
determine the section-relative start address.
514 PTR 12-JUN-84
$X of a dangerous instruction from section zero must be executed
in zero so any generated trap/interrupt can be dealt with by a
DDT43.DOC -- DDT 43(617) Page 13
section zero handler.
515 JM 13-JUN-84
FILDDT(TOPS-20): add "ENABLE THAWED" command and "GET <FILE>/THAWED"
option. Open file for unrestricted read access when read only.
516 PTR 14-JUN-84
Add XMOVEI and XHLLI to the hardware opcode table, perserving
HLLI and SETMI for typein.
517 PTR 14-JUN-84
Implement $1: command to type out current open module (given in
last $: command).
520 JM 14-JUN-84
Implement $1T command to set byte pointer typeout mode.
521 PTR 15-JUN-84
Redo $XBLK not to use SOS's, since SOS can change user's flags.
Fix dangerous JRST's (e.g. XJEN) to set dangerous flag.
Handle LUUO's outside section zero on TOPS-20.
522 PTR 15-JUN-84
Clean up what kinds of $$? are legal in what flavors.
523 PTR 18-JUN-84
Make XDDT be psected like UDDT was (so code psect is write-locked).
Fix HIDPDV so XDDT can modify the (write-locked) PDV, and so RDDT
won't fall over dead in a user program.
524 PTR 20-JUN-84
On TOPS-20, if a section zero program uses old-style PSI tables to
trap page creates (e.g. PA1050) and DDT causes a page create from
outside section zero, the monitor terminates the process since the
section zero table has no place for a 30-bit pc. Turning off the
PSI system only defers the interrupt, we must actually deactivate
the channel to prevent termination.
525 PTR 20-JUN-84
Miscellaneous minor fixes, mostly cosmetic. Undefine flag POWF
(bit 24) since it wasn't doing anything useful.
526 JM 20-JUN-84
Move the ROUTINE "TBPNT" out of single stepping code into general
typeout section. This will make edit 520 work for FILDDT.
527 PTR 22-JUN-84
Redo $X some more to let $X of ERSTR% JSYS work.
530 JM 25-JUN-84
Set default section with $V, $G, $B, $W, $N, $E, $Z, and $U.
531 JM 26-JUN-84
Make $Z consistent with $W, $N, and $E in setting "." to the last
DDT43.DOC -- DDT 43(617) Page 14
532 PTR 26-JUN-84
Clean up references to SECUDD, only use it in user DDT.
Since FETCHL now used only to chase JOBDAT stuff, make it return
failure if SYTLOC indicates a PDV.
533 PTR 26-JUN-84
Clean up symbol stuff in EDDT so user mode EDDT is more like normal
user DDT. Make GEVECS skip if entry vector exists, non-skip if not.
Fix some symbols so DDT still assembles for TOPS-10.
Have TOPS-20 monitor DDTs check MONPDV in case TOPS-20 has a PDV.
534 JM 27-JUN-84
Save the state of the COMF flag for objects scanned by the syntax
"lower<upper>". Use this information in section defaulting for the
commands $Z, $E, $W, and $N.
535 JM 29-JUN-84
Execute the conditional breakpoint instruction in the section of the
536 PTR 2-JUL-84
Don't force section-ref $X to be dangerous. Clear I.CJMP flag in the
conditional breakpoint instruction code.
537 PTR 2-JUL-84
Keep XDDT from incorrectly remembering TTY state after once-only code.
540 JM/PTR 3-JUL-84
Parse signed exponents correctly in floating point typein. Bad
behavior ascribed to edit 506.
541 PTR 5-JUL-84
Fix HIDPDV to handle LINK 5.1 case correctly.
542 JM 9-JUL-84
Make left half of ACCCF a double comma flag so that default sectioning
works properly with <TAB> and "\". (Cf. TOPS-10 maintenance version)
543 PTR 10-JUL-84
In DEPMEM when write-enabling a page, turn on FH%EPN so refs to
section 0 work.
544 PTR 10-JUL-84
Fix INCSYP et al. to not invalidate the symbol pointer they just
updated. Also do better error checking in DEFIN:. This makes
defining new symbols work (broken since ).
Don't check for indirection in PDV or symbol vector, addresses
must be either "IFIW local-addr" or "global-addr".
545 PTR 11-JUL-84
Fix DEF5 not to stomp on W1 (needed for the call to REMUN). This
will cause defining undefined symbols to work again.
Replace save of W done in SYMCHK (removed by 544).
DDT43.DOC -- DDT 43(617) Page 15
546 PTR 11-JUL-84
In WRTSYM, don't check for hiseg symtab if PDV.
547 JM 11-JUL-84
Get/set correct default section for effective address search.
550 PTR 13-JUL-84
Make refs to TOPS-20 data/code be global refs to section 1 where
necessary, so sec. 1 doesn't need to be mapped to DDT's section.
551 PTR 17-JUL-84
Fix $D so you can suppress the first symbol in the table.
552 PTR 19-JUL-84
Make sure DDTSYV points to symtab locally.
553 PTR 19-JUL-84
Add an ERJMP after the PDVOP% in PDVSE2, just in case.
.POLOC can be prone to causing ill instr traps.
554 JM 23-JUL-84
Set floating default section when opening locations via the location
555 PTR 23-JUL-84
Try doing a PEEK if XPEEK% fails (so FILDDT will run on 5.1 systems).
556 PTR 25-JUL-84
If RESTOR is going back to sec. 0 and the PSI needs to be turned
back on, don't do it till we're already in sec. 0. That way deferred
interrupts won't cause the fork to halt. Don't bother treating
page-creates as a special case anymore (remove ).
Make ^Z return to the stub if there is one (so PA1050 will see a halt
pc in sec. 0). Edit 6 of UDDT.MAC must be installed.
557 JM 2-AUG-84
FILDDT: if a location is opened with an explicit section typed in,
use that section value to set the floating default section. Also,
don't set the floating default section if an accumulator is popped
off of the location sequence stack.
560 PTR 2-AUG-84
Reserve a full 100 words for the breakpoint block. Make symbols
for pc flags. Don't ref SECUDD in EDDT.
561 PTR 8-AUG-84
Move definition of SKPUSR etc. to after the .PSECT statement (so
KDDT can be loaded in a non-zero section, and not have the opdefs
get fixed up with section numbers).
562 PTR 10-AUG-84
Redo $X of PUSH(J) so we don't use stack memory before allocating
it in the stack pointer. Can kill us if PSI traps waiting.
563 PTR 11-AUG-84
DDT43.DOC -- DDT 43(617) Page 16
Make bunches of EDDT refs to EPT (and others) be indirect instead
indexed. Then the EPT doesn't have to be in EDDT's section.
564 PTR 13-AUG-84
 inadvertently removed the length check from CHKSYP. Put
in a length check.
565 PTR 16-AUG-84
Add FAKDDT routine to KDDT. Called directly by monitor after KDDT
has changed sections, so breakpoints break to proper places.
Also fix up TOPS-20 default sections (0 in user mode, MSEC1 in exec
566 JM 23-AUG-84
DEFSEC: When an explicit section is typed in (either with ",," or by
using a symbol with a section number in the left half, always set the
default section, even when reference is made to an accumulator
567 PTR 23-AUG-84
Make KDDT use MONEDV in preference to JOBDAT, even in user mode.
570 PTR 7-SEP-84
Prevent page creates from generating page-create interrupts. This
is so creating the page where the breakpoint block sits doesn't make
trouble. This also allows the user to create random pages without
causing an interrupt (formerly, creating a page would cause an
interrupt which most likely would be asynchronously handled/reported).
571 JM 10-SEP-84
Never "fix up" a BLT instruction for singlestepping. Add the special
entry "FETCHI" to the "FETCH" procedure. "FETCHI" is for fetching
instructions, and it treats memory addresses with right half in the
range 0 through 20 as accumulator addresses.
572 JM 10-SEP-84
Monitor EDDT running in user mode will not attempt to leave section 0
if it should happen to find itself there.
573 JM 10-SEP-84
When printing an IFIW second word of a 2-word byte pointer display
"<2>" as with an EFIW word.
574 PTR 12-SEP-84
User-mode KDDT should ref MONPDV in section zero, not section 1.
575 PTR 13-SEP-84
User-mode KDDT should be more like user DDT. Do normal PDV
searching for 6.1, still wind up with jobdat in 6.0.
576 PTR 13-SEP-84
Give single-step $X and instr$X distinct portions of the breakpoint
block, so they don't interfere with one another (will happen if
"call foo$X" and FOO has a breakpoint in it). Requires reclaiming
the breakpoint block space reserved for breakpoint 0 (which will
DDT43.DOC -- DDT 43(617) Page 17
never be used).
577 PTR 19-SEP-84
In FILDDT, check for the last existing page in the file instead of
always using the maximum possible length. That way searches etc.
will stop at "real eof."
600 PTR 26-SEP-84
Speed up FNDPAG, FPVPG and friends by trying to guess what the
virtual page is going to be, instead of plodding through every
page every time.
601 PTR 27-SEP-84
Add "foo$?" command to type all symbols beginning with chars "foo".
602 JM 29-SEP-84
If DDT was started from the stub (UDDT) and $5M points to jobdat in
the same section or $5M is 0, check for stuffed symbol table values
on each pass through SYMCHK.
603 PTR 10-OCT-84
Add new $L commands to type out section/page accesses.
604 PTR 10-OCT-84
Revise  so one need not supply a guess to FPVPG.
605 PTR 15-OCT-84
Call LISTEN during "foo$?" so user can abort his foolish choice of
606 PTR 18-OCT-84
Have FILDDT-20 parse unit, channel, controller numbers in decimal
instead of octal.
607 PTR 18-OCT-84
Grow data pages to three, increase stack size so MDDT won't
fall over from DECNET, revert MDDT to local stack pointer in 6.1.
610 PTR 18-OCT-84
Fix HIDPDV again so $W default is preserved.
611 PTR 22-OCT-84
Fix $L not to report both write and copy-on-write for the same page.
612 JM 22-OCT-84
Define a general purpose checkpoint for MDDT, and install it around
the breakpoint block.
613 PTR 31-OCT-84
Fix / again.
614 JM 7-NOV-84
Correct MDDT interlock logic (cf. ); also migrate TBPNT to word
typeout routines from command routines.
DDT43.DOC -- DDT 43(617) Page 18
615 JM 9-NOV-84
If no entry vector in fork, user DDT20 sets $5M to -1,,0 rather than
-1,,SECDDT. VT2XX compatibility feature: "`" works like "<ESC>".
616 PTR 12-NOV-84
Make "addr$0T" do default sectioning.
617 PTR 12-NOV-84
Minor bugs in foo$? command.
DDT43.DOC -- DDT 43(617) Page 19
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. Type the full filespec of a file being FILDDTed, to insure
that the right one is being used.
2. Implement a byte typein and typeout facility.
3. Implement $Y on TOPS-20.
4. Implement $$Y to read in symbol files generated by the LINK
[End of DDT43.DOC]