Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 7/documentation/ddt43.doc
There are 8 other files named ddt43.doc in the archive. Click here to see a list.
DDT43.DOC -- DDT 43(627)                                        Page 1

DDT43.DOC -- DDT 43(627)
Changes from DDT 42(320) to DDT 43(627)
November 1984

COPYRIGHT (C) 1970, 1984 BY



DDT43.DOC -- DDT 43(627)                                        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(627) 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.


               DO DIFFERENT THINGS WITH  DDT  43.   SEE

     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,  order  number
AA-M273A-TM.    This  manual  fully  documents  all  features  of  DDT
(including FILDDT and monitor DDTs).  There is also a new TOPS-20  DDT
Reference  Card,  order  number AV-BH83A-TM.  Older documentation that
exists is described below.
DDT43.DOC -- DDT 43(627)                                        Page 3

     For DECSYSTEM-20 and DECsystem-10 sites, DDT is  also  documented
in the DDT Reference Card, order number AV-M272A-TK.


     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;
DDT43.DOC -- DDT 43(627)                                        Page 4

         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
         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" and $nT commands (n=5 thru  36)  for  n-bit
         ASCII typein and typeout.

    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
         other utilities.

    23.  Speed up the search commands ($W, $N, $E) when some  kind  of
         mapping  has  been  specified  with  an $nU command.  This is
         particularly helpful in searching a crash dump  with  virtual
         addressing on.
DDT43.DOC -- DDT 43(627)                                        Page 5


     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,
         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
         user pages.

     4.  On TOPS-20 systems, $Xing a SKIPNL UUO will cause  PA1050  to
         complain of an Address Check and return to EXEC.


4.1  TOPS-20

     To install  DDT  version  43  on  your  system,  copy  the  files
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.


Following is a list of changes from DDT 42(320) to DDT 43(627):

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
        user mode.

322     JBS     6-OCT-81
DDT43.DOC -- DDT 43(627)                                        Page 6

        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
        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 [325]
        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.
DDT43.DOC -- DDT 43(627)                                        Page 7

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
        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
DDT43.DOC -- DDT 43(627)                                        Page 8

        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.

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
        results typeout.

423     PTR     19-JAN-84
        Not installed.

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
DDT43.DOC -- DDT 43(627)                                        Page 9

        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 [426] to insert/remove bpts only for dangerous
        instructions.  Reorganize dangerous opcode table definition.

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
        dispatch table.

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 [430] 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 [430] 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
        non-zero sections.

445     PTR     27-FEB-84
        Make MDDT stack pointer global.  Others should still be local.
DDT43.DOC -- DDT 43(627)                                       Page 10

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.

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 [327].

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 [447].  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
        assemble DDT.

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).
DDT43.DOC -- DDT 43(627)                                       Page 11

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.

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 [461] 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
        some undefineds.

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.
DDT43.DOC -- DDT 43(627)                                       Page 12

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 ([430] and others had them
        using JOBDAT).  Make TTYRE6 look more like v42.

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 [502].  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 [505] 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.
DDT43.DOC -- DDT 43(627)                                       Page 13

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
        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
DDT43.DOC -- DDT 43(627)                                       Page 14

        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
        location zapped.

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 [470]).
DDT43.DOC -- DDT 43(627)                                       Page 15

        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).

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
        sequence stack.

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 [524]).
        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
DDT43.DOC -- DDT 43(627)                                       Page 16

        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
        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
        [461] 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
        (e.g. 1,,7).

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
DDT43.DOC -- DDT 43(627)                                       Page 17

        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
        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 [600] 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
        prefix characters.

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.
DDT43.DOC -- DDT 43(627)                                       Page 18

613     PTR     31-OCT-84
        Fix [600]/[604] again.

614     JM       7-NOV-84
        Correct MDDT interlock logic (cf. [612]); also migrate TBPNT to word
        typeout routines from command routines.

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.

620     JM      16-NOV-84
        User DDT:  if no entry vector and no stub, set floating default
        section to 0 on entry.  Analogous to [615].

621     RCB/PTR  6-DEC-84
        Allow typeout and typein of n-bit ASCII strings.  $nT and $n"
        now allow n from 5 thru 36 (decimal).

622     JMF/PTR  6-DEC-84
        Prevent clobbering previous-context section when jumping into
        non-zero section in EDDT.

623     DPM/PTR  6-DEC-84
        Fixes to $L: make sure not in symbol space in TOPS-10 exec mode,
        don't make rash assumptions about lowseg in CHKADR, do more
        rational arg checking in FILDDT.

624     JM       8-DEC-84
        Fix singlestep of ILDB/IDPB with local accumulator reference to byte

625     PTR     12-DEC-84
        Speed up CHKADR in FILDDT-20 by not doing an RPACS% on every
        call.  Instead do the RPACS% when the page is mapped in and
        remember the bits.  This wins big especially in searches when
        the user has specified some kind of mapping (e.g. EP$U).

626     PTR     22-MAR-85
        Fix TEXTNT to not type garbage from the leftover bits in the word.

627     JM      10-APR-85
        TEXTNT types out left-justified bytes only.
DDT43.DOC -- DDT 43(627)                                       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
         /SYFILE switch.

[End of DDT43.DOC]