Google
 

Trailing-Edge - PDP-10 Archives - bb-d549g-sb - ddt.doc
There are 3 other files named ddt.doc in the archive. Click here to see a list.


DDT.DOC -- Changes from V37(201)/40A(220) to V41(252)
March 1979






























COPYRIGHT (C) 1970,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
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
DDT41.DOC                                                       Page 2


DDT.DOC -- Changes from V37(201)/40A(220) to V41(252)
March 1979



1.0  SUMMARY

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 different versions of DDT  suitable  for  debugging  in
user  or  exec mode, or for manipulating data on disk.  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.


                               WARNING

               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
DEC-10-UDDTA-A-D.  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 AA-4179B-TM.
DDT41.DOC                                                       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.


                         INCOMPATABLE CHANGES

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





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>
        777777,,TEXT/   ?
        777777,,TEXT+1/   ?

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                                                       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>
        PAT../   0

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
complete documentation.



2.2  Auto-typeout On Breakpoints

The command  to  set  a  location  to  type  out  automatically  on  a
breakpoint has changed, as follows:

Old way:

                A,,B$B  or  B(A)$B

New way:

                A<B$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
usually illegal.
DDT41.DOC                                                       Page 5


2.3  Address (Page) Mapping - The $U Command.

The $U command syntax has changed drastically in DDT 41  in  order  to
allow  for  the expansion of the command to handle many new functions,
as well as to make those new functions a little "cleaner" syntax-wise.
Basically  the  old  DDT  command  "user$execU"  for  KI-style  paging
(TOPS-10) is now "user<exec$U".  As with address mapping  above  there
are many ramifications to the new format of the $U command, the reader
should very carefully read the users guide DDT41.MAN before attempting
to use the $U command.
DDT41.DOC                                                       Page 6


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.   m<n$U),
         the AC's still come from CRSHAC rather than the user pages.

     4.  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.
         Under  certain  circumstances  the  wrong  locations  may get
         written into.

     5.  The text command ""$H$J gives an error indication.

     6.  Sometimes expressions of the form symbol(val) will  cause  an
         "M"   error  to  occur.   Inserting  an  explicit  arithmetic
         operator such as "+"  or  " "  between  the  symbol  and  the
         parenthesized   val   seems   to  make  the  expression  work
         correctly.
DDT41.DOC                                                       Page 7


4.0  INSTALLATION INSTRUCTIONS

4.1  TOPS-10

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.



4.2  TOPS-20

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  following
commands:

     R DUMPER
     TAPE MTA0:
     REWIND
     DENSITY 1600-BPI
     SKIP 2
     RESTORE DSK*:<*>*DDT.EXE (TO) SYS:*.*.-1, -
     DSK*:<*>*DDT.REL (TO) SYS:*.*.-1, -
     DSK*:<*>DDT41.MAN (TO) SYS:*.*.-1
     REWIND
To rebuild DDT from sources, mount the tape labelled Distribution Tape
on MTA0:, then type the following commands:

     R DUMPER
     TAPE MTA0:
     REWIND
     DENSITY 1600-BPI
     SKIP 3
     RESTORE DSK*:<*>*.*.* (TO) <self>*.*.*
     REWIND
     CTRL/C
     !At this point, you should TYPE DDT.CTL to see what it does.
     SUBMIT DDT.CTL/TIME/RESTART
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                                                       Page 8


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                                                       Page 9


212     RDH     7-DEC-76
[214]   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 [207] AND CAILE TO CAIL IN [210]

214     RDH     18-DEC-76
        MATCH ANGLE BRACKETTS IN EDIT [212] 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 ([200],[201]) IS TOO RESTRICTIVE, WON'T ALLOW
        .JBHSM TO POINT TO LOW SEG; CHKADR ROUTINE WON'T ALLOW RANDOM
        NON-CONTIGUOUS PAGES.

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

226     RDH     13-MAR-77
        EDIT 215 IS WRONG, .GTSGN == 14
DDT41.DOC                                                      Page 10



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
        TTY INPUT.

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

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

240     RDH     15-JUN-77
        ADD CODE TO TYPE OUT SYMBOLIC WORDS WITH USER-DEFINED SYMBOLS
DDT41.DOC                                                      Page 11


        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
        THAN SYMBOL+OFFSET.

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
        THE FILE'S.

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                                                      Page 12


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.

253     DIB     8-MAR-79
        INSERT A NEW SYMBOL TABLE CACHE FOR OUTPUT ONLY.  ALSO MOVE
        DATA PAGES BELOW CODE PAGES SO SYMBOL CACHE WILL FIT IN UDDT.

254     JNG/RDH 8-MAR-79
        GET FAKEAC LOGIC RIGHT IN $U COMMANDS.  BROKEN BY 251. ONLY
        SETUP .JBVER IF FILDDT. ADD /A (ABORT ON COMMAND ERROR) FOR
        $Y. MAKE ^W WORK MORE REASONABLY ON -10. MAKE FANCY RUBOUT
        HANDLING AUTOMATIC ON -10 (7.01 ONLY). ADD $$. AS PREVIOUS
        $. (USEFUL FOR $$.<$$X ETC.).
        (MATCH ANGLE BRACKETS:>)

255     RDH     31-MAR-79
        LOST INSTRUCTION IN EDDT FOR KI-10'S. SUPPRESS ADDRESS BREAKS
        IN FETCH AND STORE LOGIC. IF $$X'ING (OR $W'ING (SEARCHING)
        OR $Z'ING (DEPOSITING)) AND USER TYPES A ? THEN GIVE A QUICKIE
        TYPEOUT STATUS. SECOND FIELD TEST FOR TOPS-10 7.00.

256     RDH     17-APR-79
        RANDOM VERSION 41 BUGS (IN PARTICULAR $P OF A BREAKPOINT CAUSED
        BY XCT'ING A BREAKPOINT LOCATION FAILED). HANDLE ERCAL/JMP ON
        $P. HANDLE INIT UUO.

257     JNG     21-APR-79
        CONVERT $U COMMAND TO FUNCTION CODES.

260     RDH     13-MAY-79
        ADD ADR$V COMMAND TO "WATCH" A LOCATION AND REPORT ANY CHANGE IN
        ITS CONTENTS (ADR DEFAULTS TO LAST LOCATION OPENED).

261     RDH     22-MAY-79
        STUPID LITTLE BUGS
DDT41.DOC                                                      Page 13


6.0  SUGGESTIONS

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]

[DDT40A.DOC is appended as an integral part of DDT41.DOC]
DDT41.DOC                                                      Page 14


DDT.DOC -- Changes from V40(220) to V40A(250)
July 1978



1.0  SUMMARY

DDT version 40A is a maintenence  release  intended  to  increase  the
reliablity of DDT in the field.  Several minor features have also been
added.

This version of DDT has not been tested under  the  TOPS-20  operating
system,  but  there  are  no  known problems that will prevent it from
working under TOPS-20.

This version of DDT supersedes all previous versions.  It  runs  under
all  supported  TOPS-10  monitors  and  EDDT runs stand-alone on KA10,
KI10, and KL10 (including 1088) systems.

DDT is documented in Software Notebook vol.  2, 8, and 12.



2.0  EXTERNAL CHANGES

The maximum offset at which DDT is willing to  type  a  value  in  the
"symbol plus offset" form is now user-settable.  The command format is
n$2M, where n is the maximum offset to use.   The  default  value  has
also been changed to 1000 octal in all flavors of DDT.

The $O command has been enhanced to allow  typeout  of  variable-sized
bytes.   To  do  this, the user should set a byte mask via n$3M, where
each bit set in n indicates the rightmost bit of a byte (bit 35 should
always  be set).  To use the byte mask, the user should specify a byte
size of zero ($0O).  In addition, a blank byte size (just $O) will use
the prevailing byte size if any, or the $3M byte mask if not.

Radices greater than 10 now work correctly in  the  $nR  command.   In
particular,  $16R will now correctly type out hexadecimal.  All digits
greater than 9 are mapped onto the alphabet for typeout.

The $< patching feature puts the patch at .JBFF if it cannot find  any
of  the  standard  patching  symbols (PAT.., PAT, or PATCH).  With DDT
V40A, the $> command will now update the left half of .JBSA,  so  that
the patch will not be overwritten by a RESET UUO.

Word  searches  ($W,  $N,  and  $E)  now  correctly   search   through
non-contiguous pages.

Several typeout bugs relating to the symbol cache have been fixed.

Code has been added to make DDT smarter when typing out UUOs, TTCALLs,
user  LUUOs,  and  OPDEFs.  This code is under the FTOPX feature test,
which is normally off in released DDT.  Sites  wishing  to  turn  this
feature  test  on  are warned that it slows down typeout a great deal,
DDT41.DOC                                                      Page 15


and will continue to do so until sorted symbol tables are available.

Several other minor bugs from  user  complaints  and  SPRs  have  been
fixed.



3.0  KNOWN BUGS AND DEFICIENCIES

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.

The commands $<CR>, and $<LF> do not detect the attempt to recall more
than was saved.

When looking at user rather than exec memory (e.g.   n$mU),  the  AC's
still come from CRSHAC rather than the user pages.

Users may experience some problems with high  segment  symbol  tables,
especially if the high segment starts at an address other than 400000.

Some problems relating to the symbol cache are known  to  remain.   In
particular,  typing  a  value  out  as "symbol plus offset" may select
different symbols at different times.

$X cannot handle the INIT MUUO in user mode.



4.0  INSTALLATION INSTRUCTIONS

Copy the following files from the distribution tape onto SYS:

          DDT.REL
          DDT.EXE
          EDDT.REL
          FILDDT.EXE
          DDT.VMX  (VM systems only)



5.0  INTERNAL CHANGES

Edit #

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.
DDT41.DOC                                                      Page 16


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

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
       TTY INPUT.

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.
DDT41.DOC                                                      Page 17


       $$O MAKES PERMANENT THE CURRENTLY PREVAILING $O (OR $$O)
       BYTE MASK.

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

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
       THAN SYMBOL+OFFSET.

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
       THE FILE'S.

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#)"

247    Reserved for development.
DDT41.DOC                                                      Page 18



250    JNG    15-Aug-78
       Search UUOSYM, MACTEN instead of C.



6.0  SUGGESTIONS

Many, on file at DIGITAL.



[End of DDT40A.DOC]

[DDT40.DOC is appended as an integral part of DDT40A.DOC]
DDT40.DOC                                                      Page 19


DDT.DOC -- Changes from V36(152) to V40(220)
January 1977



1.0    SUMMARY

This version of DDT includes a number  of  new  features,  input  text
editing  (rubout,  control-U, control-R, etc.), improved KL10 support,
patch  command,  effective  address  calculation  and  several   minor
features.

DDT version 40 also fully supports the TOPS-20 operating system.

This version of DDT supersedes all previous versions.  It  runs  under
all  supported  TOPS-10 and TOPS-20 monitors and EDDT runs stand-alone
on KA10, KI10, and KL10 (including 1088) systems.

DDT is documented in Software Notebook vol.  2B, 5, and 7.



2.0    EXTERNAL CHANGES

Full input text editing.  This means you can delete the last character
with rubout, delete the last field with ^W.  ^U deletes the whole line
and is generally equivalent to rubout in previous versions of DDT.

Stack of previous sequences.  Each time a new sequence  is  explicitly
begun,  the  current location is saved in a ring buffer.  The commands
$<LF>,$<CR>, and $^ remove the last item from  this  ring  buffer  and
make  it  the current location.  Previous DDTs had only one such saved
location.

The command $<CR> pops the saved location  stack  as  above,  then  it
opens and types out that location.  Previously, the saved location was
made current, but the register was not opened.

During $W, $N, and $E searches, each location found is  added  to  the
saved  location  stack.   Thus, successive $<CR> commands will let you
scan through the set of locations found, making any changes necessary.

Text typing (" and $") allows you to type multiple words of text.   As
each  word  is filled, it is stored in the next successive location at
or following the current open  register.   If  no  register  is  open,
characters after the first word are ignored.


                            ***WARNING***


Words are stored in memory as they are assembled.  If ^U  or  repeated
rubouts  are  used to cancel the command, memory may have been altered
anyway.  The value of the location counter (.) will always be correct.
DDT40.DOC                                                      Page 20


The effective address of the typed quantity will be computed and  used
to  open a register if any register opening command is preceeded by $,
i.e., 1(P)$/ will open the location following the one pointed to by P.

The patch command has been added.  This consists of:

          $< - patch before
          $$< - patch after
          $> - end patch

$ or $$ inserts a patch into the currently  open  register.   'Before'
means  before  the  instruction at that location;  'after' means after
it.  When you begin a patch, DDT will open the first location  in  the
patch area.  The patch area is defined by the symbol PAT..  (or PAT or
PATCH whichever is found first).  Alternately, you can type  a  single
symbol preceeding the patch begin command (e.g., FF$<), and it will be
taken as the beginning of the patch area.  If you are  doing  a  patch
'after',  DDT  will insert your original instruction and then open the
next location.  You may now proceed to enter your patch.

When you have finished the patch, type $> and DDT will:

     1.  Close the current register if any.

     2.  If a patch 'before' was originally given, DDT will insert the
         instruction from the original location.

     3.  DDT will insert JUMPA 1,LOC+1 and JUMPA 2,LOC+2, where LOC is
         the  original patch location.  Thus skipping instructions may
         be patched.

     4.  DDT will now replace your original instruction with  a  JUMPA
         to  the  start  of  the  patch  and  will redefine PAT..  (or
         wherever the patch location came from) to be the  first  free
         cell after your patch.

     Note that the original location is not changed  until  the  patch
     completion  command  is  given.  Thus, you can give up or restart
     the patch at any time.  DDT remembers the parameters of the  most
     recent  patch begin command and uses them at the patch completion
     whereupon they are forgotten.  A second patch completion  command
     given will produce an error indication.


DDT was modified to run under the TOPS-20 operating system.

All impure storage has been collected and is located  at  the  end  of
DDT.

A bug in FILDDT has been  corrected.   In  previous  versions,  FILDDT
would  not  produce  the  message "%PATCHING NOT ENABLED BY /P" in all
cases.
DDT40.DOC                                                      Page 21


$V is now illegal, $$Q should be used instead.  Version 36 generated a
warning message.

DDT no longer outputs rubouts in user mode.

Several bugs related to write protected symbol tables  with  undefined
symbols have been corrected.

When using $X under TOPS-20 DDT  will  print  either  $,  $$,  or  $$$
depending if the instruction does not skip, skips or double skips.

EDDT will now print ?  if an exec node reference would  cause  a  page
failure on a KI10, KL10 or 2040.

On a KL10 or 2040 EDDT  preserves  the  contents  of  the  performance
meter, time base and interval timer.

On a KL10 or 2040 EDDT will allow the exec page  table  to  be  moved.
This is required for 1088.

"/D" to FILDDT edits file in data mode, not as .EXE  or  .XPN  format.
Useful  for  .REL  files etc., or to look at .EXE directories.  The /D
switch is assumed if the file is not .XPN or .EXE format.

FILDDT will handle a file up to 8192 pages (4 mega-words) in length.

"1$1M" causes <DEL> to  echo  as  backspace  space  backspace,  "0$1M"
returns  to  "echoing"  the  deleted character (this is useful only on
TOPS-10 or in EXEC mode, on certain video terminals).

The "$Y" command is now available in user mode  DDT.   Channel  17  is
used to read in the command file.



3.0  KNOWN BUGS AND DEFICIENCIES

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.

The commands $<CR>, and $<LF> do not detect the attempt to recall more
than was saved.

A control-Z, start sequence does not clear the $U pointers.

When looking at user rather than exec memory (e.g.   n$mU),  the  AC's
still come from CRSHAC rather than the user pages.

Word searches do not correctly search all existing pages if some pages
are non-contiguous.

Users may experience some problems with high  segment  symbol  tables,
especially if the high segment starts at an address other than 400000.
DDT40.DOC                                                      Page 22


4.0  INSTALLATION INSTRUCTIONS

Full details of the assembly procedure are given in  the  DDT  control
file.



5.0  INTERNAL CHANGES

None.



6.0  SUGGESTIONS

None.



[End of DDT40.DOC]

[DDT36.DOC is appended as an integral part of DDT40.DOC]
DDT36.DOC                                                      Page 23


DDT.DOC -- Changes from V35 to V36
January, 1975



1.0  SUMMARY

This version of DDT includes a number of new features,  KL10  support,
support  for  .EXE  files in FILDDT, speedup of FILDDT and support for
page maps in exec and file DDT.

This version of DDT supersedes all previous versions.  It  runs  under
all  monitors  and  EDDT  runs  stand-alone  on  KA10,  KI10, and KL10
systems.  This version corrects the DATE75 bug in version 35.

DDT is documented in Software Notebook vol.  2B, 5, and 7.



2.0  EXTERNAL CHANGES

Redefine device code 200 from UTC to DTE for the  DTE-20.   (EDDT  and
FILDDT only).

Print "VMDDT" when VMDDT is started.  (VMDDT only)

Modify FILDDT to handle .EXE files produced  by  6.02.   If  the  file
begins  with  a word with 1776 in the left half it is assumed to be in
.EXE format.  If word zero is zero it is assumed to be an .XPN  format
file.   If  word  zero is neither 1776,,N or zero a warning message is
printed and the file is assumed to be in  .XPN  format  except  FILDDT
will not look for symbols.  (FILDDT only)

FILDDT now uses multiple buffers to hold the file it  is  using.   The
number  of  buffers  is  controlled  by  the  symbol  CT.RES  which is
currently 5.  The buffer size has been increased from 400 words  to  1
page.  This edit makes FILDDT much faster.  (FILDDT only).

FILDDT now handles AC differently.  If the  file  being  read  is  not
being patched, FILDDT will copy the AC's from CRSHAC to DDT's internal
AC save area.  This allows crash AC's to  be  examined  by  typing  5/
instead  of  CRSHAC+5.   Any  attempt  to modify 0-17 will only change
DDT's internal AC save area and never modify the  running  monitor  or
the  file.   This  is  handy  for doing effective address searchs on a
crashed or running monitor.  (FILDDT only)

EXEC DDT now runs on a KL10.  (EDDT only).

Any attempt to use $V will generate the message "%USE $$Q".  There  is
no other change to $V.  (all DDT's)

If an instruction is executed with $X and it skips "<SKP>" is printed.
In single instruction mode "<JMP>" is printed after a successful jump.
A successful jump is one which the  PC  is  other  than  .+1  or  .+2.
(EDDT, UDDT, and VMDDT only).
DDT36.DOC                                                      Page 24


There is a new FILDDT feature for use on KI10s and KL10s in KI  PAGING
mode.  The feature works as follows:

     $U sets absolute addressing

     k$U sets user paging with UPT at page k

     k$nU sets exec paging with UPT at page k and EPT at n

Thus "502$U 500/" would display  user  500  not  exec  500.   This  is
especially  nice  because  tab,  $$Q  and  other neat DDT commands are
useable.

If the undefined symbol table points to a hiseg which has been deleted
with  a  CORE UUO or GETSEG previous versions of DDT would halt on any
attempt to deposit.  This has been changed so that DDT will not  halt,
however, DDT may not be able to fix up undefined symbols while in this
state.

If a location is opened with a square bracket ([) and a  line-feed  is
typed DDT will open the next location with a square bracket instead of
a slash (/).

DDT now operates correctly  with  hisegs  that  begin  at  other  than
400000.

The following KL10 opcodes have been added to  DDT's  built-in  table:
JSYS, EXTEND, DADD, DSUB, DMUL, DDIV, and ADJSP.

OPDEFS have been added for KL10 "funny instructions".   These  opcodes
are:   APRID, WRFIL, RDERA, SBDIAG, CLRPT, SWPIA, SWPVA, SWPUA, SWPIO,
SWPVO, SWPUO, RDPERF, RDTIME, WRPAE, RDMACT, and RDEACT.

DDT has been changed to perserve $R or $S  mode  around  $O  commands.
Also  if  the  permanant  mode  is  $O  (e.g.  $$4O) and $O is used to
generate a temproary mode ($$18O), DDT  now  remembers  the  permanant
byte size not the temporary.



3.0  KNOWN BUGS AND DEFICIENCIES

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., $23M is the same as $M.



4.0  INSTALLATION INSTRUCTIONS

None.
DDT36.DOC                                                      Page 25


5.0  INTERNAL CHANGES

None.



6.0  SUGGESTIONS

None.



[End of DDT36.DOC]

[DDT35.DOC is appended as an integral part of DDT36.DOC]
DDT35.DOC                                                      Page 26


DDT.DOC -- Changes from V34 to V35
April 1974



1.0  SUMMARY

This release of DDT supports several new features.  First, is a single
instruction  procede  feature.   This  allows  the user to single step
through his program 1 instruction at a time (subroutines may be traced
or  executed  as  a block).  There is also support for virtual memory.
Under 6.01 DDT will use the PAGE.  UUO to determine if a page  may  be
accessed.   There  is  also  a  new assembly option for DDT to produce
DDT.VMX (DDT.VMX is a special version of DDT loaded on the DDT command
if .JBDDT is zero).

This  version  supersedes  all  previous  versions  and  has  no   new
deficiencies.   It's  only  dependence  is  that  5.04  (or  later) is
required if patching the running monitor is desired.  If DDT.VMX is to
be used the 6.01 monitor is required.

DDT is documented  in  the  software  notebook  vol.   6.   FILDDT  is
described in PATMON, located in software notebook vol.  9.



2.0  EXTERNAL CHANGES

A feature has been added to DDT to allow a single  step  execute.   It
operates as follows:

$X   (without an argument) executes the next instruction.  This is the
     instrction  about  to be executed either when the last breakpoint
     was hit or after the last $X was executed.  After the instruction
     is  executed  the  PC  is updated (however, the breakpoint is not
     moved).  $P will always do the right thing after  any  number  of
     $x's.   AFTER  executing  the  instruction,  DDT  prints  out the
     contents of referenced locations.  These are printed in  floating
     point where appropriate.  The modified flags are also printed out
     for JRSTF and JFCL.  Then the next  instruction  is  printed  out
     (always  in  symbolic  despite temporary or permanent output mode
     settings).  A blank line is between the  operands  and  the  next
     instruction if the instruction executed was a skip or a jump that
     actually skiped or jumped.

n$X  where n2**27:  performs $X n times, as above.

n$$X where n2**27:  same as n$X except that printout is suppressed for
     all but the last instruction executed.

$$X  (without an argument) performs $X indefinately, without  printing
     anything, until the PC reaches either .+1 or .+2.  This is useful
     if one wants to execute a debbuged subroutine.

n$X  (where n is a instruction) functions as it always has.
DDT35.DOC                                                      Page 27


Notes:

1.   DDT looks for typein after each  instruction  in  an  n$X  cycle.
     This is the same as done by the search logic.

2.   Breakpoints are not in place during a $X.

3.   In exec mode, DDT does not restore the PI system during $X.



3.0  KNOWN BUGS AND DEFICIENCIES

There are 2 minor problems in exec mode on a KI10.  First,  if  single
instruction  procede  ($X) is used to execute an executive execute the
memory operand displayed is shown in exec  rather  than  user  address
space,  however,  the instruction did execute correctly.  Second, if a
break point is placed on an  MUUO  exec  mode  DDT  will  not  procede
correctly.



4.0  CHANGES IN INSTALLATION INSTRUCTIONS

All are represented in DDT.CTL file.



5.0 INTERNAL CHANGES.

The breakpoint logic was improved to work correctly on a KI10 in  exec
mode  (except  for  the  cases  noted in section 3).  In particular, a
breakpoint on a XCT will always operate correctly.

DDT will no longer fail on a KI10 if one of the sense switches is set.

DDT will use the PAGE.  UUO (in 6.01 monitors) to determine if a  page
may  be  read  or  written.  This allows non-contiguous core images to
work correctly.

FILDDT patching logic was corrected to work properly.



6.0  SUGGESTIONS

None.



[End of DDT35.DOC]