Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/klddt.seq
There are no other files named klddt.seq in the archive.
;DDQDB







				IDENTIFICATION
				--------------

	PRODUCT CODE:		AH-7139L-DD

	DIAGNOSTIC CODE:	DDQDB

	PRODUCT NAME:	 	DDQDBL0 DECSYSTEM10
				DIAGNOSTIC DDT

	VERSION:		0.12

	DATE RELEASED:		MAY 1978

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 1975, 1978

	        DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

	THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR  USE  ONLY  ON  A
	SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY 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 EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
	AGREES  TO  THESE  LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
	SOFTWARE  SHALL  AT   ALL  TIMES  REMAIN  IN  DIGITAL  EQUIPMENT
	CORPORATION.

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

	DIGITAL EQUIPMENT CORPORATION ASSUMES NO  RESPONSIBILITY FOR THE
	USE  OR  RELIABILITY  OF  ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
	SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
					MAINDEC-10-DDQDB.TXT (KLDDT)
						PAGE 1                                                                     SEQ 0002

			TABLE OF CONTENTS
			-----------------

1.0	ABSTRACT

	FULL DESCRIPTIONS AND OPERATING INSTRUCTIONS FOR KLDDT
	ARE PROVIDED IN THE "DDT-10 PROGRAMMERS REFERENCE MANUAL".

	KLDDT IS A DERIVITIVE OF THIS WITH THE APPROPRIATE CHANGES
	MADE FOR OPERATION ON THE KL10 PROCESSOR.

2.0	HELP FILE

3.0	HISTORY FILE

4.0	LISTING
;KLDDT.HLP	VER 0.12	5-MAY-78
                                                                                                                           SEQ 0003
1.	TYPE-OUT MODES

$S	SYMBOLIC INSTRUCTIONS
$C	NUMERIC
$F	FLOATING POINT
$T	ASCII TEXT
$6T	SIXBIT TEXT
$5T	RADIX50
$H	HALFWORDS
$NO	BYTES

2.	ADDRESS MODES

$R	RELATIVE TO SYMBOLIC ADDRESS
$A	ABSOLUTE NUMERIC ADDRESS

3.	RADIX CHANGE

$NR	N=RADIX

4.	EXAMINING STORAGE WORDS

ADR/	OPEN AND EXAMINE
ADR!	OPEN BUT INHIBIT TYPEOUT
ADR[	OPEN AND EXAMINE AS A NUMBER
ADR]	OPEN AND EXAMINE AS SYMBOLIC INSTRUCTION
;	RETYPE LAST QUANTITY

5.	RELATED STORAGE WORDS

^	EXAMINE ADR-1
TAB	EXAMINE LOCATION SPECIFIED BY ADDRESS
\	EXAMINE LOCATION SPECIFIED BY ADDRESS BUT DON'T CHANGE POINTER
CR	CLOSE CURRENTLY OPEN LOCATION

6.	RETYPING IN MODES OTHER THAN PREVAILING OR TEMPORARY

=	REPEAT LAST TYPEOUT AS A NUMBER
_	REPEAT LAST TYPEOUT AS A SYMBOLIC INSTRUCTION
/	TYPEOUT LOCATION POINTED TO BUT DON'T CHANGE POINTER
[	TYPEOUT LOCATION POINTED TO AS A NUMBER
]	TYPEOUT LOCATION POINTED TO AS A SYMBOLIC INSTRUCTION
LF	EXAMINE ADR+1
;KLDDT.HLP	VER 0.12	5-MAY-78
                                                                                                                           SEQ 0004
7.	TYPING IN

INST	TYPE IN SYMBOLIC INSTRUCTION
#,,#	TYPE IN HALF WORDS
#	TYPE IN OCTAL
#.	TYPE IN DECIMAL
#.#	TYPE IN FLOATING POINT
"/A/	TYPE IN ASCII
"A$	TYPE IN ONE ASCII CHAR
$"/A/	TYPE IN SIXBIT
$"A$	TYPE IN ONE SIXBIT CHAR

8.	SYMBOLS

NAME$:	OPEN PROGRAM SYMBOL TABLE
N<SYM:	INSERT SYMBOL WITH VALUE N
SYM:	INSERT SYMBOL WITH VALUE OF LOCATION POINTER
SYM$$K	DELETE A SYMBOL FROM SYMBOL TABLE
SYM$K	KILL A SYMBOL FOR TYPEOUT
$D	PERFORM $K ON LAST SYMBOL TYPED OUT
SYM#	DECLARE A SYMBOL WHOSE VALUE IS TO BE DEFINED LATER
?	TYPE OUT A LIST OF UNDEFINED SYMBOLS

9.	SPECIAL DDT SYMBOLS

.	REPRESENTS THE ADDRESS OF THE LOCATION POINTER
$Q	REPRESENTS THE LAST QUANTITY TYPED
$$Q	REPRESENTS THE LAST QUANTITY TYPED, HALVES REVERSED
@	THE INDIRECT BIT
$M	THE ADDRESS OF THE SEARCH MASK REGISTER
$I	THE ADDRESS OF THE SAVED FLAGS, ETC.
$NB	THE POINTERS ASSOCIATED WITH THE NTH BREAKPOINT

10.	ARITHMETIC OPERATORS

+	ADDITION
-	SUBTRACTION
*	MULTIPLICATION
'	DIVISION
;KLDDT.HLP	VER 0.12	5-MAY-78
                                                                                                                           SEQ 0005
11.	FIELD DELIMITERS IN SYMBOLIC TYPE IN

SPACE	DELIMITS OP-CODE FIELDS
,	DELIMITS ACCUMULATOR FIELD
L,,R	DELIMIT HALF WORDS
()	DELIMIT INDEX REGISTER
@	INDICATE INDIRECT ADDRESSING

12.	BREAKPOINTS

ADR$NB	SET A SPECIFIC BREAKPOINT
ADR$B	SET THE NEXT BREAKPOINT
ADR$$B	SET A BREAKPOINT WITH AUTO PROCEED
X,,ADR$B SET A BREAKPOINT WHICH WILL PRINT ADDRESS X
0$NB	REMOVE A SPECIFIC BREAKPOINT
$B	REMOVE ALL BREAKPOINTS
$NB/	CHECK THE STATUS OF BREAKPOINT N
$P	PROCEED FROM A BREAKPOINT
N$P	SET THE PROCEED COUNTER AND PROCEED
$$P	PROCEED ALWAYS

13.	CONDITIONAL BREAKPOINTS

$NB+1/INST  INSERT A CONDITIONAL BREAKPOINT

14.	STARTING THE PROGRAM

$G	START A STARTING ADDRESS IN JOBSA
ADR$G	START AT SPECIFIED ADDRESS
INST$X	EXECUTE AN INSTRUCTION

15.	SEARCHING

A<B>C$W  SET LOWER (A), SET UPPER (B), SEARCH FOR WORD (C)
A<B>C$N  SEARCH FOR A NOT-WORD
A<B>C$E  SEARCH FOR AN EFFECTIVE ADDRESS
$M/	EXAMINE MASK USED IN SEARCHES
N$M	INSERT ANOTHER QUANTITY IN MASK

16.	ZEROING MEMORY

FIRST<LAST$$Z  ZERO MEMORY FIRST THRU LAST
;KLDDT.HLP	VER 0.12	5-MAY-78
                                                                                                                           SEQ 0006
17.	SINGLE STEP EXECUTE

$X	EXECUTE A SINGLE INSTRUCTION, THEN INCREMENT THE PC
	THE OPERANDS ARE PRINTED AFTER EXECUTION

N$X	REPEAT THE $X CYCLE N TIMES

N$$X	SAME AS N$X EXCEPT PRINTING OCCURS ONLY FOR LAST CYCLE

$$X	PERFORM A NON-PRINTING $X CYCLE UNTIL THE PC REACHES EITHER
	.+1 OR .+2  ;USED FOR TREATING SUBROUTINE CALLS AS A SINGLE
	INSTRUCTION.

18.	PATCHING A PROGRAM

$<  - PATCH BEFORE
$$< - PATCH AFTER
$>  - END PATCH

ADR/CONTENTS	$<
PATCH/	NEW INST
PATCH+1/ NEW INST$>
PATCH+2/ CONTENTS
PATCH+3/ JUMPA 1,ADR+1
PATCH+4/ JUMPA 2,ADR+2

A PATCH IS MADE BY OPENING AN ADDRESS, TYPING (ALTMODE)(ANGLE-BRACKET),
THIS SAVES THE CURRENT CONTENTS OF THE ADDRESS, OPENS THE PATCH AREA
FOR NEW INSTRUCTIONS, AFTER THE NEW INSTRUCTIONS ARE ENTERED THE
PATCHING IS CLOSED BY TYPING (ALTMODE)(ANGLE-BRACKET).  THE ORIGINAL
CONTENTS ARE THEN PLACED IN THE PATCH AREA AND TWO JUMP INSTRUCTIONS
PLACED FOLLOWING WHICH WILL RETURN TO THE ORIGINAL ADDRESS +1 OR +2
DEPENDING ON WHETHER THE LAST INSTRUCTION IN THE PATCH SKIPS OR NOT.

19.	SPECIAL EDITING CHARACTERS

RUBOUT	DELETE LAST TYPED CHARACTER
^U	(CONTROL U) DELETE LINE
^W	(CONTROL W) DELETE LAST WORD, BACK TO DELIMITER
^R	(CONTROL R) RETYPE LAST LINE

[END OF KLDDT.HLP]
DECSYSTEM10 DIAGNOSTICS DDT
MAINDEC-10-DDQDB                                                                                                           SEQ 0007

--------------

VERSION 0.12

MAY 5,1978

HISTORY:

VERSION 0.12 MAKES CHANGES NECESSARY FOR APPROPRIATE MONITOR CALL
OPERATION DEPENDING ON WHICH MONITOR KLDDT IS RUNNING UNDER.
--------------

VERSION 0.11

APRIL 7,1977

VERSION 0.11 WAS CREATED FROM THE LATEST SYSTEM DDT WHICH INCLUDES
A CONSIDERABLE NUMBER OF NEW FEATURES.
-------------

VERSION 0.10

FEBRUARY 26,1976

HISTORY:

REV 0.10 MAKES AN EVOLUTIONARY CHANGE FROM PREVIOUS VERSIONS BECAUSE
OF THE MULTIPLE DTE20 SUPPORT ON KL10'S AND TO TIE TOGETHER THE VERSIONS
OF ALL THE SUPPORT PROGRAMS "KLDCP,SUBRTN,KLDDT,DIAMON,MAGMON".

REV 0.10 ALSO DISASSOCIATES THE DEC VERSION NUMBER FROM THE
KL10 HARDWARE REVISION LEVEL.

REV 0.10 WILL OPERATE ON KL10'S AT REV 7, 7A, 8 AND HOPEFULLY ON ALL
FUTURE REVISIONS.

PREVIOUS VERSION NOT ACCOUNTED FOR.
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 1
KLDDT	MAC	 5-May-78 12:59	                                                                                           SEQ 0008

     1					;MAINDEC-10-KLDDT
     2
     3
     4
     5			000012		DECVER=012
     6			000000		MCNVER=000
     7
     8
     9					TITLE	KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12
    10
    11
    12					;RELEASED AS VERSION 0.12 MAY 5,1978
    13					;CORRECTED TOPS20 USER TERMINAL OPERATIONS (IF UNDER PA1050), MAY 5,1978
    14					;MODIFIED FOR APPROP MUUO/JSYS OPERATION, JUNE 20,1977
    15					;MODIFIED FROM <SYSTEM> DDT, APRIL 6,1977
    16					;CHANGED TO ALLOW EXEC TO USE USER SYMBOL TABLE POINTERS
    17					;AND ALLOW $G TO START PROGRAM FROM .JBSA
    18					;KL10 EXEC MODE OPERATION CHANGED TO CONFORM TO DIAGNOSTICS PROCEDURES
    19
    20
    21					;COPYRIGHT 1974,1975,1976,1977
    22					;DIGITAL EQUIPMENT CORPORATION
    23					;MARLBORO, MASS. 01752
    24
    25					;JOHN R. KIRCHOFF
    26
    27	000137					LOC	137
    28	000137	000000	000012		MCNVER,,DECVER
    29
    30					NOSYM
    31					SALL
    32
    33		777777	777777		FTEXEC==-1
    34		010000	000000		ABSDDT==10000,,0
    35
    36	000441					LOC	441
    37	000441	254 00 0 00 010000 		JRST	DDT		;EPT DDT START ADDRESS
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 2
KLDDT	MAC	 5-May-78 12:59		DEFINITIONS                                                                        SEQ 0009

    38					SUBTTL	DEFINITIONS
    39
    40						COMMENT	\
    41
    42					TABLE OF CONTENTS FOR DDT
    43
    44						DEFINE	DDT SYMBOLS
    45						START	DDT
    46						DDT	COMMAND PARSER
    47						SYMBOL	TABLE LOGIC
    48						TEXT	COMMANDS (" AND $")
    49						REGISTER EXAMINATION LOGIC
    50						MODE	CONTROL SWITCHES
    51						PATCH	COMMAND  -- PATCH BEGIN
    52						PATCH	COMMAND -- PATCH END
    53						PAGE	TABLE CONTROL ($U)
    54						GO	AND EXECUTE LOGIC
    55						SINGLE	STEP EXECUTE LOGIC
    56						ENTER	AND LEAVE DDT LOGIC
    57						BREAK	POINT LOGIC
    58						MEMORY	MANAGER SUBROUTINES
    59						BINARY	TO SYMBOLIC CONVERSION
    60						SEARCH	LOGIC
    61						OUTPUT	SUBROUTINES
    62						PUNCH	PAPER TAPE LOGIC
    63						TELETYPE IO LOGIC
    64						DDT	COMMAND FILE LOGIC
    65						DISPATCH TABLE
    66						FANCY	TERMINAL INPUT LOGIC
    67						OP	DECODER
    68						VARIABLE STORAGE
    69						STORAGE	-- $X LOGIC AND PATCH COMMAND
    70						STORAGE	-- BREAKPOINTS
    71						STORAGE	-- SYMBOL TABLE LOGIC
    72						STORAGE	-- SAVE AREAS FOR PREVIOUS CONTEXT
    73						STORAGE	-- STATE VARIABLES
    74						STORAGE	-- PUSH DOWN LIST
    75					\
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 3
KLDDT	MAC	 5-May-78 12:59		DEFINITIONS                                                                        SEQ 0010

    76
    77					;DDT VERSION IDENTIFICATION
    78
    79			000177		$EDITN==177			;EDIT NUMBER
    80			000037		$VERSN==37			;VERSION NUMBER
    81		003700	000177		%DDTVR==<$VERSN>B11+$EDITN	;COMPOSIT VERSION IDENT
    82
    83					;SWITCHES FOR DDT FEATURES
    84					;FTEXEC		;EXEC MODE FACILITIES (ALSO RUNS IN USER MODE)
    85					;FTPTP		;PAPER TAPE FACILITIES (EXEC MODE ONLY)
    86					;FTFILE		;FILE DDT
    87					;FTYANK		;PAPER TAPE INPUT FACILITIES ($Y)
    88					;FTVMX		;BUILD DDT.VMX FOR TOPS10 VIRTUAL MEMORY
    89					;FTDEC20	;DEC20 FACILITIES
    90					;FTMON		;DEC20 MONITOR DDT
    91					;FTEDIT		;INCLUDE FANCY EDITING FEATURES WITH DEC20 EDDT
    92					;ABSDDT		;RELOCATABLE ASSEMBLY IF 0, ABSOLUTE ASSEMBLY
    93									;WITH ORIGIN GIVEN BY B0-17 OTHERWISE
    94
    95						IFNDEF	ABSDDT,<ABSDDT==0>
    96						IFNDEF	FTEXEC,<FTEXEC==0>
    97						IFNDEF	FTPTP,<FTPTP==0>
    98						IFNDEF	FTFILE,<FTFILE==0>
    99						IFNDEF	FTYANK,<FTYANK==0>
   100						IFNDEF	FTVMX,<FTVMX==0>
   101						IFNDEF	FTDEC20,<FTDEC20==0>
   102						IFNDEF	FTMON,<FTMON==0>
   103						IFNDEF	FTEDIT,<FTEDIT==0>
   104
   105					;NORMALIZE ALL SWITCH VALUES TO 0 OR -1 SO BOOLEAN EXPRESSIONS IN
   106					;CONDITIONALS WORK CORRECTLY.
   107
   108					DEFINE ..N (SW)<
   109						IRP	SW,<
   110						IFN	SW,<SW==-1>>>
   111
   112						..N <FTEXEC,FTPTP,FTFILE,FTYANK,FTVMX,FTDEC20,FTMON,FTEDIT>
   113
   114					;	IFN	FTDEC20,<
   115						SEARCH	MONSYM,MACSYM
   116		040000	000000			OPDEF	CALL [040B8]
   117		104000	000772			OPDEF	MRPAC [JSYS 772]	;>
   118
   119						IFE  FTFILE,<INTERN %DDTVR>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 4
KLDDT	MAC	 5-May-78 12:59		DEFINITIONS                                                                        SEQ 0011

   120
   121					EXTERN .JBREL,.JBSA,.JBHRL,.JBSYM,.JBFF,.JBHSM,.JBHNM,.JBUSY,.JBDA
   122
   123						IFE	FTDEC20,<
   124						IFN	FTEXEC,<
   125					;	TITLE	EDDT -EXEC MODE DDT >
   126						IFN	FTEXEC!FTFILE,<
   127			000036			XJBSYM==36
   128			000032			XJBUSY==32
   129			000040			XZLOW==40>
   130
   131						IFE	FTEXEC,<
   132						IFE	FTFILE,<
   133						TITLE	UDDT -USER MODE DDT >
   134						IFN	FTFILE,<
   135						TITLE	FILDDT -FILE DDT
   136						CT.RES==5		;NUMBER OF PAGES TO KEEP IN CORE
   137						MX.SIZ==^D1024		;MAX PAGES IN FILE
   138						T30SYM==131>		;SPMON (10/30)
   139						>			;END IFE FTEXEC
   140
   141			000140		ZLOW==140
   142
   143					INTERNAL .JBVER,.JBDDT
   144			000074		.JBDDT=74
   145			000137		.JBVER=137
   146						IFE	FTEXEC,<
   147						LOC	.JBVER		;DO NOT SET  IF EXEC DDT(OK USER OR FILDDT)
   148						%DDTVR			;PUT VERSION # IN .JBVER
   149						>
   150
   151						IFE	FTFILE!FTVMX,<
   152	000074					LOC	.JBDDT
   153	000074	016773	010000			XWD	DDTEND,DDTX
   154						>
   155	000000'				RELOC 0
   156
   157	010000					IFE	FTVMX,<IFN ABSDDT&<XWD -1,0>,<LOC <ABSDDT>B53>>
   158
   159		047000	000145			OPDEF	PAGE. [CALLI 145]	;PAGING UUO
   160			000100			.GTUPM==100
   161						>			;END IFE FTDEC20
   162
   163						IFN	FTEXEC,<
   164		331000	016717			OPDEF	SKPUSR [SKIPL USRFLG]	;SKIP IN USER MODE
   165		335000	016717			OPDEF	SKPEXC [SKIPGE USRFLG]	;SKIP IN EXEC MODE
   166		337000	016720			OPDEF	SKPKA [SKIPG KAFLG]	;SKIP FOR KA10
   167		332000	016720			OPDEF	SKPKI [SKIPE KAFLG]	;SKIP FOR KI10
   168		331000	016720			OPDEF	SKPKL [SKIPL KAFLG]	;SKIP FOR KL10
   169		335000	016720			OPDEF	SKPNKL [SKIPGE KAFLG]	;SKIP NOT KL10
   170						>			;END IFN FTEXEC
   171					XLIST
   172					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 7
KLDDT	MAC	 5-May-78 12:59		MAKE TOPS20 DDT                                                                    SEQ 0012

   173
   174					SUBTTL	DEFINE DDT SYMBOLS
   175						IFN	FTFILE,<
   176					CM==2				;DEFINE SOFTWARE CHANS.
   177					DP==3
   178						>
   179					;DEFINE ACCUMULATORS
   180
   181			000000		F=0				;FLAGS
   182			000017		P=17				;PUSH DOWN (KLDDT)
   183			000002		R=<A=2>				;POINTERS TO TABLES, CORE, ETC.
   184			000003		S=<B=3>
   185			000004		W=<C=4>				;CONTAINS DISPATCH ADDRESS IN WORD ASSEMBLER
   186			000005		T=5				;TRANSFER DATA
   187			000006		W1=6
   188			000007		W2=7
   189			000010		SCH=10				;MODE CONTROL SWITCH FOR OUTPUT
   190			000011		AR=11				;MODE CONTROL SWITCH FOR OUTPUT
   191			000012		ODF=12				;MODE CONTROL SWITCH FOR OUTPUT - CURRENT RADIX
   192			000013		TT=13				;TEMPORARY
   193			000014		TT1=14				;TEMPORARY
   194			000015		TT2=15				;TEMPORARY (USED FOR PTR INPUT ONLY)
   195									; AND FOR DTE COMMUNICATIONS
   196
   197					;DEFINE PUSH DOWN LENGTH
   198			000050		LPDL==50			;MAX LENGTH PUSH DOWN LIST
   199
   200			010000		NXMKA==1B23			;NON-EX-MEM FLAG FOR KA10
   201			000100		NXMKI==1B29			;NON-EX-MEM FLAG FOR KI10
   202			002000		NXMKL==1B25			;NON-EX-MEM FLAG FOR KL10
   203
   204			000010		NBP==^D8			;NUMBER OF BREAKPOINTS
   205
   206						IFN	FTDEC20,<
   207					LPDL==100
   208					P=17>				;OVERRIDES P=1 ABOVE
   209			000001		T1=1
   210			000002		T2=2
   211			000003		T3=3
   212
   213			020000		TRPENB==1B22			;SAYS PAGING TRAPS ENABLED
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 8
KLDDT	MAC	 5-May-78 12:59		DEFINE DDT SYMBOLS                                                                 SEQ 0013

   214
   215					;*** FLAGS IN F ***
   216
   217		400000	000000		FEF==   1B0			;"E" FLAG
   218		200000	000000		COMF==  1B1			;COMMA TYPED
   219		100000	000000		TIF==   1B2			;TRUNCATE TO 18 BITS - SET BY SPACE OR COMMA
   220		040000	000000		DVF==   1B3			;DIVIDE
   221		020000	000000		FPF==   1B4			;"." TYPED
   222		010000	000000		CCF==   1B5			;"$$" TYPED
   223		004000	000000		STF==   1B6			;SUPPRESS TYPEOUT
   224		002000	000000		SAF==   1B7			;RIGHT ANGLEBRACKET TYPED
   225		001000	000000		FAF==   1B8			;LEFT ANGLEBRACKET TYPED
   226					;==     1B9			;NOT USED
   227		000200	000000		MLF==   1B10			;MULTIPLY
   228		000100	000000		PTF==   1B11			;ARITHMETIC OPERATOR TYPED
   229		000040	000000		CF==    1B12			;"$" TYPED
   230		000020	000000		LTF==   1B13			;LETTER TYPED IN CURRENT SYLLABLE
   231		000010	000000		ROF==   1B14			;REGISTER OPEN
   232		000004	000000		SF==    1B15			;SYLLABLE
   233		000002	000000		MF==    1B16			;MINUS SIGN TYPED
   234		000001	000000		QF==    1B17			;QUANTITY TYPED IN TO WORD ASSEMBLER
   235
   236					; 18-21 NOT USED
   237			020000		MDLCLF==1B22			;MULT DEF LOCAL SYMBOL (EVAL)
   238			010000		PNAMEF==1B23			;PROGRAM NAME SEEN IN SYM TABLE SEARCH
   239			004000		POWF==  1B24			;ARGUMENT FOR EXPONENT COMING
   240			002000		LF1==   1B25			;OUTPUT ONE REGISTER IN FORCED MODE
   241					;==     1B26			;NOT USED
   242			000400		CF1==   1B27			;OUTPUT ONE REGISTER AS CONSTANT
   243			000200		NAF==   1B28			;NEGATIVE ADDRESSES PERMISSABLE
   244					; 29-32 NOT USED
   245			000004		OUTF==  1B33			;OUTPUT
   246			000002		ITF==   1B34			;INSTRUCTION TYPED
   247			000001		Q2F==   1B35			;NUMBER TYPED AFTER $
   248
   249					;DEFINE SYMBOL TABLE SYMBOL TYPES
   250		040000	000000		GLOBL==04B5			;GLOBAL SYMBOL
   251		100000	000000		LOCL==10B5
   252		740000	000000		PNAME==74B5			;PROGRAM NAME
   253		200000	000000		DELI==20B5			;DELETE INPUT
   254		400000	000000		DELO==40B5			;DELETE OUTPUT
   255
   256					;DEFINE UNDEFINED SYMBOL TABLE (.JBUSY) TYPES
   257
   258		400000	000000		STADD==1B0			;IF 1, THEN ADDITIVE REQUEST
   259		200000	000000		STLH==1B1			;IF 1, THEN REQUEST FOR LEFT HALF
   260		020000	000000		STNEG==1B4			;IF 1, THEN NEGATIVE REQUEST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 9
KLDDT	MAC	 5-May-78 12:59		DEFINE DDT SYMBOLS                                                                 SEQ 0014

   261
   262						IFE	FTDEC20,<
   263						IFE	FTFILE,<
   264						INTERN	DDTEND		;DECLARE END OF DDT AS INTERNAL, FOR
   265									; USER TO SEE (USER MODE) AND ONCE ONLY CODE
   266									; (MONITOR)
   267						IFE	FTEXEC,< ENTRY DDT>
   268						IFN	FTEXEC,<
   269						INTERNAL DDT
   270						ENTRY	DDTX>>		;NEEDED BY MONITOR
   271
   272						IFN	FTEXEC!FTFILE,<
   273
   274					DEFINE OD(A,B),<
   275						A=:<B,,0>>
   276
   277					;KL10 "FUNNY" I/O INSTRUCTIONS
   278		700000	000000		OD APRID,700000			;READ APR ID
   279		700100	000000		OD WRFIL,700100			;WRITE CACHE REFIL ALGORITHM
   280		700400	000000		OD RDERA,700400			;READ ERROR ADDRESS REGISTER
   281		700500	000000		OD SBDIAG,700500		;S-BUS DIAG
   282		702000	000000		OD RDPERF,702000		;READ PERF. COUNTER
   283		702040	000000		OD RDTIME,702040		;READ TIME OF DAY
   284		702400	000000		OD RDMACC,702400		;READ MBOX ACCOUNTING
   285		702440	000000		OD RDEACC,702440		;READ EBOX ACCOUNTING
   286		702100	000000		OD WRPAE,702100			;WRITE PERF. ANALYSIS ENABLES
   287		701440	000000		OD SWPIA,701440			;SWEEP INVALIDATE ALL
   288		701500	000000		OD SWPVA,701500			; "   VALIDATE ALL
   289		701540	000000		OD SWPUA,701540			; "   UNLOAD ALL
   290		701640	000000		OD SWPIO,701640			; "   INVALIDATE 1 PAGE
   291		701700	000000		OD SWPVO,701700			; "   VALIDATE 1 PAGE
   292		701740	000000		OD SWPUO,701740			; "   UNLOAD 1 PAGE
   293						>			;END IFN FTEXEC!FTFILE
   294					XLIST
   295					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 11
KLDDT	MAC	 5-May-78 12:59		WRITE DDT.VMX                                                                      SEQ 0015

   296
   297					SUBTTL	START DDT
   298
   299	010000				DDTOFS:				;OFFSET BASE FOR DISPATCH TABLES
   300
   301						IFE	FTFILE,<
   302	010000				DDTX:
   303						IFN	FTYANK,<
   304						SETZM	COMAND		;INDICATE NO COMMAND FILE IF STARTING BY DDT COMMAND
   305						>
   306						REPEAT	0,<
   307					DDT: IFN FTDEC20&<^-FTEXEC>,<
   308						JRST	.+2		;SKIP SYMTAB PTRS
   309						Z	.DDSYM
   310						JUMP	.DDUSY
   311						MOVEM	T,SETRT1	;SAVE AN AC
   312						MOVE	T,BP1+1
   313						CAMN	T,[JSA T,BCOM]	;VARIABLES AREA INITIALIZED?
   314						JRST	DDTIN1		;YES
   315						MOVE	T,[PHVAR,,VARLOC]	;NO, DO IT
   316						BLT	T,VAREND-1
   317					DDTIN1:	MOVE	T,SETRT1	;RESTORE SCRATCH AC
   318						>			;END IFN FTDEC20...
   319					>
   320	010000	254 00 0 00 010002 	DDT:	JRST	.+2
   321	010001	104 104 124 000 000 		ASCII	/DDT/
   322	010002	264 00 0 00 016441 		JSR	SAVE
   323	010003	260 17 0 00 013015 		 PUSHJ P,REMOVB
   324						XLIST
   325					LIST
   326	010004	200 06 0 00 010001 		MOVE	W1,DDT+1
   327	010005	260 17 0 00 014236 		PUSHJ	P,TEXT2		;TYPE DDT MESSAGE
   328					XLIST
   329					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 23
KLDDT	MAC	 5-May-78 12:59		FILDDT -- COMMAND SCANNER                                                          SEQ 0016

   330
   331					SUBTTL	DDT COMMAND PARSER
   332
   333	010006	260 17 0 00 014263 	DD1:	PUSHJ	P,CRF
   334	010007	621 00 0 00 000010 	DD1.5:	TLZ	F,(ROF)		;CLOSE ANY OPEN REGISTER
   335	010010	200 05 0 00 016046 		MOVE	T,[XWD SCHM,SCH]
   336	010011	251 05 0 00 000012 		BLT	T,ODF		;LOAD ACS
   337	010012	204 05 0 00 016047 		MOVS	T,[SVBTS,,PSVBTS]
   338	010013	251 05 0 00 016510 		BLT	T,SVBTS+2
   339	010014	402 00 0 00 016526 	DD2:	CLEARM	PRNC		;PARENTHESES COUNT
   340	010015	200 17 0 00 016050 		MOVE	P,[IOWD LPDL,PDL]
   341	010016	402 00 0 00 016363 	LIS:	SETZM	WAKALL		;SET WAKEUP SET TO PUNCT AND CTRLS
   342						IFN	FTDEC20,<
   343						MOVEI	R,.JBSYM	;VALIDATE JOB DATA AREA - CHECK .JBSYM
   344						PUSHJ	P,FETCH
   345						 SETZ T,		;CAN'T REF PAGE 0, NO JOBDAT
   346						SKIPL	T		;VALID SYMTAB PTR?
   347						SETZM	JDTFLG#>		;NO, NOTE NO JOBDAT
   348	010017	335 02 1 00 016545 		SKIPGE	R,@USYMP	;GET UND SYM PTR, OK?
   349	010020	260 17 0 00 013164 		PUSHJ	P,FETCH		;MAYBE, SEE IF CAN REFERENCE IT
   350	010021	402 00 1 00 016545 		 SETZM @USYMP		;NO GOOD, FLUSH IT
   351	010022	200 05 1 00 016545 		MOVE	T,@USYMP	;GET UNDEF SYMBOL POINTER
   352	010023	321 05 0 00 010035 		JUMPL	T,LIS0B		;IF POINTER OK, TRANSFER
   353	010024	335 05 1 00 016544 		SKIPGE	T,@SYMP		;IF POINTER NOT OK, USE .JBSYM ADR
   354	010025	254 00 0 00 010033 		JRST	LIS0A		; SO LONG AS IT IS NEGATIVE
   355						IFE	FTFILE,<
   356	010026	201 02 0 00 000000*		MOVEI	R,.JBHSM	;IF LO ADR NOT OK, TRY HIGH
   357	010027	335 00 0 00 016717 		IFN	FTEXEC,<SKPEXC>	; UNLESS IN EXEC MODE
   358	010030	260 17 0 00 013160 		PUSHJ	P,HFETCH>	;GET HIGH SYM TABLE POINTER
   359	010031	201 05 0 00 000000 		 MOVEI T,0		;IT DOESN'T EXIST
   360	010032	327 05 0 00 010031 		JUMPG	T,.-1		;IF POINTER .G. 0, GIVE 0 RESULT
   361	010033	553 00 0 00 000005 	LIS0A:	HRRZS	T		;USE ADR OF SYM TABLE TO INIT
   362	010034	202 05 1 00 016545 		MOVEM	T,@USYMP	;  UNDEFINED SYM TABLE POINTER
   363	010035	202 05 0 00 016540 	LIS0B:	MOVEM	T,ESTUT		;INIT UNDEFINED SYM ASSEMBLER
   364	010036	621 00 0 00 773767 		TLZ	F,(-1B17-ROF-STF)	;CLEAR FLAGS EXCEPT ROF, STF
   365	010037	620 00 0 00 002403 		TRZ	F,LF1+CF1+ITF+Q2F	;CLEAR FLAGS
   366	010040	621 00 0 00 770767 	LIS0:	TLZ	F,(-1B17-ROF-STF-FAF-SAF)	;CLEAR FLAGS EXCEPT ...
   367	010041	620 00 0 00 000200 		TRZ	F,NAF		; ..
   368	010042	402 00 0 00 016524 		SETZM	WRD
   369	010043	402 00 0 00 016527 	LIS1:	SETZM	FRASE
   370	010044	201 05 0 00 000001 	LIS2:	MOVEI	T,1
   371	010045	202 05 0 00 016533 		MOVEM	T,FRASE1
   372	010046	621 00 0 00 040200 		TLZ	F,(MLF+DVF)
   373	010047	621 00 0 00 030044 	L1:	TLZ	F,(CF+CCF+SF+FPF)	;TURN OFF CONTROL, SYL, PERIOD FLAG
   374	010050	402 00 0 00 016530 	L1A:	SETZM	SYL
   375	010051	402 00 0 00 016543 	L1RPR:	SETZM	SYM
   376	010052	201 05 0 00 000006 		MOVEI	T,6
   377	010053	202 05 0 00 016673 		MOVEM	T,TEM		;INIT SYMBOL COUNTER
   378	010054	200 05 0 00 016051 		MOVE	T,[POINT 7,TXT]
   379	010055	202 05 0 00 016520 		MOVEM	T,CHP		;SETUP FOR OPEVAL SYMBOL
   380	010056	402 00 0 00 016534 		SETZM	DEN
   381	010057	402 00 0 00 016525 		SETZM	WRD2
   382
   383					;CONTINUED ON NEXT PAGE
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 24
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0017

   384
   385	010060	260 17 0 00 014705 	L2:	PUSHJ	P,TIN		;PICK UP CHARACTER
   386	010061	301 05 0 00 000141 		CAIL	T,"A"+40	;LOWER CASE A
   387	010062	303 05 0 00 000172 		CAILE	T,"Z"+40	;LOWER CASE Z
   388	010063	254 00 0 00 010065 		JRST	.+2
   389	010064	640 05 0 00 000040 		TRC	T,40		;CHANGE LOWER CASE TO UPPER CASE
   390	010065	603 00 0 00 000040 		TLNE	F,(CF)		;CONTROL FLAG
   391	010066	254 00 0 00 010073 		JRST	L21
   392	010067	307 05 0 00 000132 		CAIG	T,"Z"		;Z
   393	010070	305 05 0 00 000101 		CAIGE	T,"A"		;A
   394	010071	254 00 0 00 010073 		JRST	.+2
   395	010072	254 00 0 00 010323 		JRST	LET
   396	010073	200 02 0 00 000005 	L21:	MOVE	R,T
   397	010074	303 05 0 00 000137 		CAILE	T,137		;DISPATCH TABLE HAS ENTRIES ONLY .LE. 137
   398	010075	254 00 0 00 010166 		JRST	ERR
   399	010076	231 02 0 00 000003 		IDIVI	R,3		;REMAINDER GIVES COLUMN, QUOTIENT GIVES ROW
   400	010077	135 04 0 03 015036 		LDB	W,BDISP(R+1)	;GET 12 BIT ADDRESS FROM DISPATCH TABLE
   401	010100	305 04 0 00 001041 		CAIGE	W,MULT-DDTOFS	;FIRST EVAL ROUTINE
   402	010101	254 00 0 04 010000 		JRST	DDTOFS(W)
   403	010102	200 05 0 00 016530 		MOVE	T,SYL
   404	010103	627 00 0 00 000020 		TLZN	F,(LTF)
   405	010104	254 00 0 00 010375 		JRST	POWER
   406	010105	306 04 0 00 001101 		CAIN	W,SPACE-DDTOFS	;IS TERMINATOR A SPACE?
   407	010106	332 00 0 00 016524 		SKIPE	WRD		;IS CONSTRUCTED WORD SO FAR ZERO?
   408	010107	334 05 0 00 016052 		SKIPA	T,[OPEVAL,,EVAL]	;SEARCH EVAL 1ST IFF: -SPACE .OR. (WRD).NE.0
   409	010110	204 05 0 00 016052 		MOVS	T,[OPEVAL,,EVAL]	;SEARCH OPEVAL 1ST IFF: SPACE .AND. (WRD)=0
   410	010111	202 05 0 00 016575 		MOVEM	T,SYMORD	;SAVE SYMBOL TABLE SEARCH ORDER
   411	010112	254 00 0 00 010115 		JRST	L213
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 25
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0018

   412
   413	010113	557 05 0 00 016575 	L212:	HLRZS	T,SYMORD	;GET ADDRESS OF THE OTHER LOOKUP ROUTINE
   414	010114	322 05 0 00 010201 		JUMPE	T,UND1		;IF ADR=0, THEN SYMBOL UNDEFINED
   415	010115	260 17 0 05 000000 	L213:	PUSHJ	P,(T)		;CALL OPEVAL OR EVAL
   416	010116	254 00 0 00 010113 		 JRST L212		;SYMBOL NOT FOUND
   417	010117	306 04 0 00 001044 		CAIN	W,ASSEM-DDTOFS	;DEFINED SYMBOL FOLLOWED BY #?
   418	010120	254 00 0 00 010166 		JRST	ERR		;IF DEFINED, DON'T ALLOW #
   419	010121	623 00 0 00 000002 	L4:	TLZE	F,(MF)
   420	010122	210 05 0 00 000005 		MOVN	T,T
   421	010123	607 00 0 00 000004 		TLNN	F,(SF)
   422	010124	302 04 0 00 001050 		CAIE	W,LPRN-DDTOFS
   423	010125	254 00 0 00 010127 		JRST	.+2
   424	010126	254 00 0 00 011050 		JRST	LPRN
   425
   426	010127	250 05 0 00 016533 		EXCH	T,FRASE1
   427	010130	607 00 0 00 040000 		TLNN	F,(DVF)
   428	010131	223 05 0 00 016533 		IMULB	T,FRASE1
   429	010132	623 00 0 00 040000 		TLZE	F,(DVF)
   430	010133	233 05 0 00 016533 		IDIVB	T,FRASE1
   431	010134	305 04 0 00 001044 		CAIGE	W,ASSEM-DDTOFS
   432	010135	254 00 0 04 010000 		JRST	DDTOFS(W)	;MULTIPLY OR DIVIDE
   433	010136	273 05 0 00 016527 		ADDB	T,FRASE
   434	010137	305 04 0 00 001101 		CAIGE	W,SPACE-DDTOFS
   435	010140	254 00 0 04 010000 		JRST	DDTOFS(W)	; + - @ ,
   436
   437	010141	270 05 0 00 016524 		ADD	T,WRD
   438	010142	603 00 0 00 100000 		TLNE	F,(TIF)		;TRUNCATE INDICATOR FLAG
   439	010143	500 05 0 00 016524 		HLL	T,WRD		;TRUNCATE
   440	010144	202 05 0 00 016524 		MOVEM	T,WRD
   441	010145	607 00 0 00 000001 		TLNN	F,(QF)
   442	010146	200 05 0 00 016531 		MOVE	T,LWT
   443	010147	402 00 0 00 000002 		SETZM	R
   444	010150	200 06 0 00 016540 		MOVE	W1,ESTUT
   445	010151	316 06 1 00 016545 		CAMN	W1,@USYMP	;IF THERE ARE ANY UNDEFINED SYMBOLS IN
   446	010152	254 00 0 00 010155 		JRST	L5		;THE CURRENT EXPRESSION, ANYTHING EXCEPT
   447	010153	303 04 0 00 001163 		CAILE	W,CARR-DDTOFS	;FURTHER EXPRESSION INPUT, OR DEPOSITING
   448	010154	254 00 0 00 010166 		JRST	ERR		;  INTO MEMORY IS ILLEGAL
   449	010155	307 04 0 00 001105 	L5:	CAIG	W,RPRN-DDTOFS
   450	010156	254 00 0 04 010000 		JRST	DDTOFS(W)
   451	010157	261 17 0 00 010634 		PUSH	P,KILRET	;WHEN INSIDE ( ), CURRENT EXPRESSION
   452	010160	336 00 0 00 016526 		SKIPN	PRNC		;INVALID FOR ANYTHING OTHER
   453	010161	254 00 0 04 010000 		JRST	DDTOFS(W)	;  THAN MORE EXPRESSION INPUT
   454	010162	254 00 0 00 010166 		JRST	ERR
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 26
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0019

   455
   456	010163	200 06 0 00 016053 	WRONG:	MOVE	W1,[ASCII /XXX/]
   457	010164	260 17 0 00 014234 		PUSHJ	P,TEXT
   458	010165	254 00 0 00 010174 		JRST	WRONG2
   459
   460	010166	205 06 0 00 374160 	ERR:	MOVSI	W1,(BYTE (7)"?","G"-100)	;QUESTION-DING
   461	010167	254 00 0 00 010171 		JRST	WRONG1
   462
   463	010170	201 06 0 00 000125 	UNDEF:	MOVEI	W1,"U"
   464	010171	200 17 0 00 016050 	WRONG1:	MOVE	P,[IOWD LPDL,PDL]
   465	010172	260 17 0 00 014234 		PUSHJ	P,TEXT
   466	010173	260 17 0 00 014644 		PUSHJ	P,TTYCLR	;CLEAR INPUT BUFFER
   467	010174	607 00 0 00 000010 	WRONG2:	TLNN	F,(ROF)		;REGISTER OPEN?
   468	010175	254 00 0 00 010006 		JRST	DD1		;NO, CRLF.  OTHERWISE, FALL INTO RET
   469	010176	200 17 0 00 016050 	RET:	MOVE	P,[IOWD LPDL,PDL]
   470	010177	260 17 0 00 014266 		PUSHJ	P,LCT		;COMMON RETURN FOR TAB;,JRST LIS
   471	010200	254 00 0 00 010014 		JRST	DD2
   472
   473
   474	010201	200 02 0 00 016540 	UND1:	MOVE	R,ESTUT		;UNDEFINED SYM ASSEMBLER
   475	010202	322 02 0 00 010170 		JUMPE	R,UNDEF		;UNDEFINED IF NO UNDEF SYM TABLE
   476	010203	574 03 0 00 016540 		HLRE	S,ESTUT
   477	010204	240 03 0 00 777777 		ASH	S,-1		;SETUP EVAL END TEST
   478	010205	260 17 0 00 010472 		PUSHJ	P,EVAL2
   479	010206	306 04 0 00 001044 		CAIN	W,ASSEM-DDTOFS
   480	010207	607 00 0 00 000010 		TLNN	F,(ROF)
   481	010210	254 00 0 00 010170 		JRST	UNDEF
   482	010211	332 00 0 00 016526 		SKIPE	PRNC
   483	010212	254 00 0 00 010170 		JRST	UNDEF
   484	010213	201 05 0 00 000043 		MOVEI	T,"#"
   485	010214	302 04 0 00 001044 		CAIE	W,ASSEM-DDTOFS
   486	010215	260 17 0 00 014533 		PUSHJ	P,TOUT
   487
   488	010216	210 02 0 00 016054 		MOVN	R,[XWD 2,2]
   489	010217	273 02 0 00 016540 		ADDB	R,ESTUT
   490	010220	200 05 0 00 016543 		MOVE	T,SYM
   491	010221	661 05 0 00 040000 		TLO	T,(GLOBL)
   492	010222	260 17 0 00 013154 		PUSHJ	P,DSYMER	;DEPOSIT AND TYPE ? IF IT FAILS
   493	010223	550 05 0 00 016553 		HRRZ	T,LLOCO
   494	010224	603 00 0 00 000002 		TLNE	F,(MF)
   495	010225	661 05 0 00 020000 		TLO	T,(STNEG)	;SET FLAG TO SHOW SUBTRACTIVE REQUEST
   496	010226	661 05 0 00 400000 		TLO	T,(STADD)	;SET FLAG TO SHOW UNCHAINED REQUEST
   497	010227	271 02 0 00 000001 		ADDI	R,1
   498	010230	260 17 0 00 013154 		PUSHJ	P,DSYMER
   499	010231	201 05 0 00 000000 		MOVEI	T,0
   500	010232	254 00 0 00 010121 		JRST	L4
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 27
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0020

   501
   502	010233	260 17 0 00 014263 	QUESTN:	PUSHJ	P,CRF		;HERE FOR "?"
   503	010234	603 00 0 00 000020 		TLNE	F,(LTF)		;HAS A SYMBOL BEEN TYPED?
   504	010235	254 00 0 00 010253 		JRST	QLIST		;NO
   505	010236	200 02 1 00 016545 		MOVE	R,@USYMP	;YES, LIST UNDEFINED SYMBOLS
   506	010237	325 02 0 00 010006 	QUEST1:	JUMPGE	R,DD1
   507	010240	200 05 0 02 000000 		MOVE	T, (R)
   508	010241	334 06 1 00 016545 		SKIPA	W1,@USYMP
   509
   510	010242	270 06 0 00 016054 	QUEST2:	ADD	W1,[XWD 2,2]
   511	010243	312 05 0 06 000000 		CAME	T,(W1)
   512	010244	254 00 0 00 010242 		JRST	QUEST2
   513	010245	312 02 0 00 000006 		CAME	R,W1
   514	010246	254 00 0 00 010251 		JRST	QUEST4
   515	010247	260 17 0 00 014075 		PUSHJ	P,SPT
   516	010250	260 17 0 00 014263 		PUSHJ	P,CRF
   517	010251	270 02 0 00 016054 	QUEST4:	ADD	R,[XWD 2,2]
   518	010252	254 00 0 00 010237 		JRST	QUEST1
   519
   520	010253	260 17 0 00 010537 	QLIST:	PUSHJ	P,SYMSET	;LIST REFERENCES TO THE SYMBOL
   521	010254	402 00 0 00 016576 	QLIST1:	SETZM	QLPNT		;ZERO FLAG SHOWING REFERENCE
   522	010255	200 05 0 02 000000 	QLIST2:	MOVE	T,(R)		;PICK UP SYMBOL
   523	010256	627 05 0 00 740000 		TLZN	T,(PNAME)	;A PROGRAM NAME?
   524	010257	254 00 0 00 010271 		JRST	QLIST6		;YES
   525	010260	316 05 0 00 016543 		CAMN	T,SYM		;NO, IS AN OCCURANCE FOUND?
   526	010261	552 02 0 00 016576 		HRRZM	R,QLPNT		;YES, REMEMBER WHERE
   527	010262	253 02 0 00 010263 	QLIST3:	AOBJN	R,.+1		;LOOK THRU TABLE
   528	010263	253 02 0 00 010267 		AOBJN	R,QLIST4	;END OF TABLE SEGMENT?
   529						IFE	FTFILE,<
   530	010264	606 02 0 00 400000 		TRNN	R,1B18		;YES, WRAP AROUND
   531	010265	331 02 0 00 016535 		SKIPL	R,SAVHSM
   532						>
   533	010266	200 02 1 00 016544 		MOVE	R,@SYMP
   534	010267	343 03 0 00 010255 	QLIST4:	AOJLE	S,QLIST2	;THRU SEARCHING?
   535	010270	254 00 0 00 010006 		JRST	DD1		;YES
   536
   537	010271	336 00 0 00 016576 	QLIST6:	SKIPN	QLPNT		;FOUND THE SYMBOL?
   538	010272	254 00 0 00 010262 		JRST	QLIST3		;NO
   539	010273	260 17 0 00 014076 		PUSHJ	P,SPT1		;YES, PRINT THE PROGRAM NAME
   540	010274	200 05 1 00 016576 		MOVE	T,@QLPNT	;GET THE SYMBOL BACK AND
   541	010275	607 05 0 00 040000 		TLNN	T,(GLOBL)	; TEST FOR A GLOBAL SYMBOL
   542	010276	254 00 0 00 010302 		JRST	QLIST7		;NOT GLOBAL
   543	010277	260 17 0 00 014273 		PUSHJ	P,TSPC		;IS GLOBAL, TYPE " G"
   544	010300	201 05 0 00 000107 		MOVEI	T,"G"
   545	010301	260 17 0 00 014533 		PUSHJ	P,TOUT
   546	010302	260 17 0 00 014263 	QLIST7:	PUSHJ	P,CRF
   547	010303	402 00 0 00 016576 		SETZM	QLPNT		;RESET FLAG
   548	010304	254 00 0 00 010262 		JRST	QLIST3		; AND SEARCH THE NEXT SET OF SYMBOLS
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 28
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0021

   549
   550	010305	405 05 0 00 000017 	NUM:	ANDI	T,17		;T HOLDS CHARACTER
   551	010306	603 00 0 00 020040 		TLNE	F,(CF+FPF)
   552	010307	254 00 0 00 010355 		JRST	NM1
   553	010310	200 04 0 00 016530 		MOVE	W,SYL
   554	010311	242 04 0 00 000003 		LSH	W,3
   555	010312	270 04 0 00 000005 		ADD	W,T
   556	010313	202 04 0 00 016530 		MOVEM	W,SYL
   557	010314	200 04 0 00 016534 		MOVE	W,DEN
   558	010315	221 04 0 00 000012 		IMULI	W,12		;CONVERT TO DECIMAL
   559	010316	270 04 0 00 000005 		ADD	W,T
   560	010317	202 04 0 00 016534 		MOVEM	W,DEN
   561	010320	344 05 0 00 010337 		AOJA	T,LE1A
   562
   563	010321	334 05 0 00 016055 	DOLLAR:	SKIPA	T,[46+101-13]	;RADIX 50 $ TO BE
   564	010322	201 05 0 00 000135 	PERC:	MOVEI	T,47+101-13	;PERCENT SIGN
   565	010323	641 00 0 00 020004 	LET:	TLC	F,(SF+FPF)	;EXPONENT IFF (LTF)'*(FEF)'*(T=105)*(SF)*(FPF)=1
   566	010324	627 00 0 00 420024 		TLZN	F,(LTF+FEF+SF+FPF)
   567	010325	302 05 0 00 000105 		CAIE	T,105		; E
   568	010326	665 00 0 00 000020 		TLOA	F,(LTF)
   569	010327	665 00 0 00 400000 		TLOA	F,(FEF)
   570	010330	254 00 0 00 010336 		JRST	LET1
   571	010331	627 00 0 00 000002 		TLZN	F,(MF)
   572	010332	334 06 0 00 016530 		SKIPA	W1,SYL
   573	010333	210 06 0 00 016530 		MOVN	W1,SYL
   574	010334	202 06 0 00 016541 		MOVEM	W1,FSV
   575	010335	402 00 0 00 016534 		CLEARM	DEN
   576	010336	275 05 0 00 000066 	LET1:	SUBI	T,101-13	;FORM RADIX 50 SYMBOL
   577	010337	661 00 0 00 000005 	LE1A:	TLO	F,(SF+QF)
   578	010340	375 00 0 00 016673 	LE2:	SOSGE	TEM		;IGNORE CHARACS AFTER 6
   579	010341	254 00 0 00 010060 		JRST	L2
   580	010342	201 04 0 00 000050 		MOVEI	W,50
   581	010343	222 04 0 00 016543 		IMULM	W,SYM		;MULTIPLY BY RADIX 50
   582	010344	272 05 0 00 016543 		ADDM	T,SYM		;  AND ADD NEW CHAR INTO SYM
   583	010345	201 05 0 05 000066 		MOVEI	T,"A"-13(T)	;CONVERT LETTERS BACK TO ASCII
   584	010346	136 05 0 00 016520 		IDPB	T,CHP
   585	010347	254 00 0 00 010060 		JRST	L2
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 29
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0022

   586
   587	010350	250 05 0 00 016525 	NUM1:	EXCH	T,WRD2		;FORM NUMBER AFTER $
   588	010351	221 05 0 00 000012 		IMULI	T,12
   589	010352	272 05 0 00 016525 		ADDM	T,WRD2
   590	010353	660 00 0 00 000001 		TRO	F,Q2F
   591	010354	254 00 0 00 010060 		JRST	L2
   592
   593	010355	603 00 0 00 000040 	NM1:	TLNE	F,(CF)
   594	010356	254 00 0 00 010350 		JRST	NUM1
   595	010357	201 06 0 00 000006 		MOVEI	W1,6		;FORM FLOATING POINT NUMBER
   596	010360	350 00 0 00 016355 		AOS	NM1A
   597	010361	256 00 0 00 016355 		XCT	NM1A		;MOVEI W2,..
   598	010362	205 02 0 00 201400 		MOVSI	R,201400
   599	010363	622 07 0 00 000001 	NM1A1:	TRZE	W2,1
   600	010364	164 02 0 06 014217 		FMPR	R,FT(W1)
   601	010365	322 07 0 00 010370 		JUMPE	W2,NM1B
   602	010366	242 07 0 00 777777 		LSH	W2,-1
   603	010367	367 06 0 00 010363 		SOJG	W1,NM1A1
   604	010370	205 06 0 05 211000 	NM1B:	MOVSI	W1,211000(T)
   605	010371	164 02 0 00 000006 		FMPR	R,W1		;COMPUTE VALUE OF NEW DIGIT
   606	010372	147 02 0 00 016542 		FADRB	R,FH		;ADD VALUE INTO FLOATING NO.
   607	010373	202 02 0 00 016530 		MOVEM	R,SYL
   608	010374	344 05 0 00 010337 		AOJA	T,LE1A
   609
   610	010375	607 00 0 00 400000 	POWER:	TLNN	F,(FEF)
   611	010376	254 00 0 00 010121 		JRST	L4		;NO EXPONENT
   612	010377	302 04 0 00 011046 		CAIE	W,PLUS
   613	010400	306 04 0 00 011045 		CAIN	W,MINUS
   614	010401	662 00 0 00 004000 		TROE	F,POWF
   615	010402	624 00 0 00 004000 		TRZA	F,POWF
   616	010403	254 00 0 04 000000 		JRST	(W)		; E+-
   617
   618	010404	200 07 0 00 016534 		MOVE	W2,DEN
   619	010405	402 00 0 00 016527 		CLEARM	FRASE
   620	010406	201 06 0 00 014216 		MOVEI	W1,FT-1
   621	010407	623 00 0 00 000002 		TLZE	F,(MF)
   622	010410	201 06 0 00 014225 		MOVEI	W1,FT01
   623	010411	334 05 0 00 016541 		SKIPA	T,FSV
   624	010412	242 07 0 00 777777 	POW2:	LSH	W2,-1
   625	010413	622 07 0 00 000001 		TRZE	W2,1
   626	010414	164 05 0 06 000000 		FMPR	T,(W1)
   627	010415	322 07 0 00 010121 		JUMPE	W2,L4
   628	010416	364 06 0 00 010412 		SOJA	W1,POW2
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 30
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0023

   629
   630	010417	200 05 0 00 016552 	PERIOD:	MOVE	T,LLOC
   631	010420	603 00 0 00 000004 		TLNE	F,(SF)		;SYLLABLE STARTED
   632	010421	200 05 0 00 016534 		MOVE	T,DEN
   633	010422	202 05 0 00 016530 		MOVEM	T,SYL
   634	010423	603 00 0 00 020000 		TLNE	F,(FPF)		;HAS A PERIOD BEEN SEEN BEFORE?
   635	010424	661 00 0 00 000020 		TLO	F,(LTF)		;YES, TWO PERIODS MAKES A SYMBOL
   636	010425	667 00 0 00 020005 		TLON	F,(FPF+SF+QF)
   637	010426	201 05 0 00 000000 		MOVEI	T,0
   638	010427	231 05 0 00 000400 		IDIVI	T,400
   639	010430	332 00 0 00 000005 		SKIPE	T
   640	010431	641 05 0 00 243000 		TLC	T,243000
   641	010432	641 06 0 00 233000 		TLC	W1,233000
   642	010433	140 05 0 00 016056 		FAD	T,[0]		;NORMALIZE T AND W1
   643	010434	140 06 0 00 016056 		FAD	W1,[0]
   644	010435	144 05 0 00 000006 		FADR	T,W1
   645	010436	202 05 0 00 016542 		MOVEM	T,FH
   646	010437	513 00 0 00 016355 		HLLZS	NM1A
   647	010440	201 05 0 00 000045 		MOVEI	T,45		;RADIX 50 PERIOD
   648	010441	254 00 0 00 010340 		JRST	LE2
   649
   650						IFE	FTFILE,<
   651	010442	201 05 0 00 016603 	PILOC:	MOVEI	T,SAVPI>	;GET ADDRESS FOR $I
   652	010443				QUANIN:;TLO T,(DDTINT)		;(FUTURE) FLAG DDT INTERNAL REGISTERS
   653	010443	254 00 0 00 010447 		JRST	QUAN1
   654
   655	010444	607 00 0 00 010000 	QUAN:	TLNN	F,(CCF)		;$Q OR $$Q, WHICH?
   656	010445	334 05 0 00 016531 		SKIPA	T,LWT		;$Q STRAIGHT
   657	010446	204 05 0 00 016531 	QUANSW:	MOVS	T,LWT		;$$Q SWAPPED (ALSO FOR $V)
   658	010447	202 05 0 00 016530 	QUAN1:	MOVEM	T,SYL
   659	010450	661 00 0 00 000005 	QUAN2:	TLO	F,(SF+QF)	;WRD,SYL STARTED
   660	010451	621 00 0 00 010040 		TLZ	F,(CF+CCF)
   661	010452	254 00 0 00 010060 		JRST	L2
   662
   663					;HERE WHEN ESC TYPED
   664
   665	010453	663 00 0 00 000040 	CONTRO:	TLOE	F,(CF)
   666	010454	661 00 0 00 010000 		TLO	F,(CCF)
   667	010455	476 00 0 00 016363 		SETOM	WAKALL		;SET WAKEUP ON EVERYTHING
   668	010456	254 00 0 00 010060 		JRST	L2
   669
   670						IFN	FTFILE,<PILOC==ERR>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 31
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND PARSER                                                                 SEQ 0024

   671
   672					SUBTTL SYMBOL TABLE LOGIC
   673					;SYMBOL EVALUATION ROUTINE
   674
   675	010457	260 17 0 00 013456 	EVAL:	PUSHJ	P,CSHVER	;GO SEE IF CACHE IS USEFUL
   676	010460	254 00 0 00 010471 		 JRST EVALC4		;ITS NOT. GO DO OLD STYLE LOOKUP
   677	010461	205 03 0 00 777760 		MOVSI	S,-NSYMCS	;SCAN SYMBOL CACHE FIRST
   678	010462	336 02 0 03 016675 	EVALC1:	SKIPN	R,SYMCSH(S)	;GET POINTER
   679	010463	254 00 0 00 010470 		JRST	EVALC3		;NOT IN USE
   680	010464	200 05 0 02 000000 		MOVE	T,0(R)		;GET SYM
   681	010465	621 05 0 00 740000 		TLZ	T,(PNAME)	;FLUSH BITS
   682	010466	316 05 0 00 016543 		CAMN	T,SYM		;SAME?
   683	010467	254 00 0 00 010517 		JRST	EVALC2		;YES, DONE
   684	010470	253 03 0 00 010462 	EVALC3:	AOBJN	S,EVALC1	;KEEP LOOKING
   685	010471	260 17 0 00 010537 	EVALC4:	PUSHJ	P,SYMSET	;SET UP SYM TABLE POINTER AND COUNT
   686
   687					;CERTAIN CALLS ENTER HERE WITH S AND R ALREADY SETUP
   688
   689	010472	620 00 0 00 030000 	EVAL2:	TRZ	F,PNAMEF!MDLCLF	;CLEAR FLAGS FOR EVAL
   690	010473	402 00 0 00 016546 		SETZM	SYMPNT		;CLEAR LOCAL SYM POINTER
   691	010474	322 03 0 00 010521 		JUMPE	S,CPOPJ		;XFER IF SYM TABLE EMPTY
   692	010475	325 02 0 00 010521 		JUMPGE	R,CPOPJ		;XFER IF POINTER NOT VALID
   693
   694	010476	200 05 0 02 000000 	EVAL3:	MOVE	T,0(R)		;GET SYM FROM SYM TABLE
   695	010477	627 05 0 00 740000 		TLZN	T,(PNAME)	;PROGRAM NAME? ALSO CLEAR THE FLAGS
   696						JRST	[JUMPE T,EVAL4	;YES, IGNORE IF SYMBOL IS NULL
   697							TRO F,PNAMEF	;SET PROGRAM NAME FLAG
   698	010500	254 00 0 00 016057 			JRST EVAL4]
   699	010501	316 05 0 00 016543 		CAMN	T,SYM		;SYMBOL MATCH?
   700	010502	254 00 0 00 010522 		JRST	EVAL6		;YES
   701	010503	253 02 0 00 010504 	EVAL4:	AOBJN	R,.+1		;NO VALID MATCH, CONTINUE LOOKING
   702	010504	253 02 0 00 010510 		AOBJN	R,EVAL4A	;POINTER EXPIRED?
   703						IFE	FTFILE,<
   704	010505	606 02 0 00 400000 		TRNN	R,1B18		;TEST FOR HIGH SEGMENT SYM TABLE
   705	010506	331 02 0 00 016535 		SKIPL	R,SAVHSM	;WAS LOW SEG, GET HIGH SEG POINTER, IF ANY
   706						>
   707	010507	200 02 1 00 016544 		MOVE	R,@SYMP		;WRAP AROUND TO LOW SEG END OF TABLE
   708	010510	343 03 0 00 010476 	EVAL4A:	AOJLE	S,EVAL3		;TRANSFER IF ANY SYMBOLS LEFT
   709	010511	336 02 0 00 016546 		SKIPN	R,SYMPNT	;SEARCH FINISHED, ANY LOCAL SYMS OUTSIDE
   710	010512	263 17 0 00 000000 		POPJ	P,		;CURRENT PROGRAM AREA?
   711	010513	602 00 0 00 020000 		TRNE	F,MDLCLF	;YES, WITH A UNIQUE VALUE?
   712	010514	254 00 0 00 010166 		JRST	ERR		;NO, AMBIGIOUS
   713	010515	550 06 0 00 000002 	EVAL5:	HRRZ	W1,R
   714	010516	260 17 0 00 013451 		PUSHJ	P,SYMCSI	;ADD SYM TO CACHE
   715	010517	200 05 0 02 000001 	EVALC2:	MOVE	T,1(R)		;GET VALUE OF SYMBOL
   716	010520	350 00 0 17 000000 	CPOPJ1:	AOS	(P)		;FOUND SYMBOL, SKIP
   717	010521	263 17 0 00 000000 	CPOPJ:	POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 32
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0025

   718	010522	200 05 0 02 000000 	EVAL6:	MOVE	T,(R)		;SYM MATCHES, GET FLAGS BACK
   719	010523	603 05 0 00 200000 		TLNE	T,(DELI)	;IS SYMBOL DELETED FOR INPUT?
   720	010524	254 00 0 00 010503 		JRST	EVAL4		;YES
   721	010525	607 05 0 00 040000 		TLNN	T,(GLOBL)	;GLOBAL SYMS VALID ANYWHERE
   722	010526	606 00 0 00 010000 		TRNN	F,PNAMEF	;HAS SECOND PROGRAM TABLE BEEN STARTED?
   723	010527	254 00 0 00 010515 		JRST	EVAL5		;LOCALS ALWAYS VALID IN CURRENT PROGRAM
   724	010530	336 05 0 00 016546 		SKIPN	T,SYMPNT	;LOCAL OUTSIDE OF CURRENT PROGRAM
   725	010531	254 00 0 00 010535 		JRST	EVAL7		;YES, AND THE 1ST ONE OF THEM
   726	010532	200 05 0 05 000001 		MOVE	T,1(T)		;GET VALUE OF PREVIOUS LOCAL
   727	010533	312 05 0 02 000001 		CAME	T,1(R)		;IS IT THE SAME VALUE?
   728	010534	660 00 0 00 020000 		TRO	F,MDLCLF	;NO, MULTIPLY DEFINED
   729	010535	202 02 0 00 016546 	EVAL7:	MOVEM	R,SYMPNT	;SAVE POINTER TO THIS LOCAL
   730	010536	254 00 0 00 010503 		JRST	EVAL4		;CONTINUE LOOKING FOR GLOBALS
   731
   732					;BIT 40 - DELETE OUTPUT
   733					; 20 - DELETE INPUT
   734					; 10 - LOCAL
   735					; 04 -GLOBAL
   736					; NO BITS - PROGRAM NAME
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 33
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0026

   737
   738					;SYMBOL TABLE POINTER AND COUNT SET UP ROUTINE
   739
   740	010537				SYMSET:	IFE	FTFILE,<
   741	010537	201 02 0 00 010026*		MOVEI	R,.JBHSM	;TRY TO GET HIGH SEG SYM TABLE POINTER
   742	010540	335 00 0 00 016717 		IFN	FTEXEC,<SKPEXC>	;NO HI SYM TABLE POINTER IN EXEC MODE
   743	010541	260 17 0 00 013160 		PUSHJ	P,HFETCH
   744	010542	201 05 0 00 000000 		 MOVEI T,0		;NO HIGH SEGMENT
   745	010543	202 05 0 00 016535 		MOVEM	T,SAVHSM	;SAVE HIGH SEG POINTER (OR 0)
   746						>
   747	010544	510 03 1 00 016544 		HLLZ	S,@SYMP		;GET WORD COUNT FOR LOW SEG TABLE
   748						IFE	FTFILE,<
   749	010545	335 00 0 00 000005 		SKIPGE	T		;IF .JBHSM .GT. 0, INVALID
   750	010546	270 03 0 00 000005 		ADD	S,T		;ADD WORD COUNT FOR HIGH SEG TABLE
   751						>
   752	010547	240 03 0 00 777755 		ASH	S,-^D19		;PUSH TO RIGHT HALF AND DIVIDE BY 2
   753	010550	331 05 0 00 016537 		SKIPL	T,PRGM		;GET $: POINTER, GOOD ONLY IF .LT. 0
   754	010551	254 00 0 00 010564 		JRST	SYMS4		;NOT GOOD, USE .JBSYM
   755						IFE	FTFILE,<
   756	010552	602 05 0 00 400000 		TRNE	T,1B18		;POINTER FROM .JBSYM OR .JBHSM?
   757						JRST	[PUSH  P,T	;SAVE T
   758							 MOVEI R,.JBHNM	;NAME WORD
   759							 PUSHJ P,HFETCH	;GET FROM HISEG
   760							   SETCM T,SEGNAM ;SHOULD NEVER FAIL
   761							 MOVE  R,T	;SAVE IN BETTER AC
   762							 POP   P,T	;RESTORE T
   763							 CAME  R,SEGNAM	;SAME HISEG?
   764							 JRST  SYMS4	;NO
   765	010553	254 00 0 00 016062 			 JRST  SYMS2]	;YES
   766						>
   767	010554	331 05 1 00 016544 		SKIPL	T,@SYMP		;PRGM CAME FROM .JBSYM
   768	010555	254 00 0 00 010565 		JRST	SYMS5		;.JBSYM POINTER INVALID
   769	010556	574 02 0 00 000005 	SYMS2:	HLRE	R,T		;GET NEGATIVE LENGTH
   770	010557	274 05 0 00 000002 		SUB	T,R		;GET LAST ADR OF TABLE
   771	010560	204 02 0 00 016537 		MOVS	R,PRGM		;GET NEG. LENGTH FOR $: POINTER
   772	010561	270 02 0 00 000005 		ADD	R,T		; AND CALCULATE STARTING ADR
   773	010562	500 02 0 00 016537 		HLL	R,PRGM		; AND SET UP TABLE LENGTH
   774	010563	321 02 0 00 010521 		JUMPL	R,CPOPJ		;NO, POINTER IS OK AS LONG AS IT IS .LT. 0
   775	010564	331 02 1 00 016544 	SYMS4:	SKIPL	R,@SYMP		;SET UP POINTER INTO LOW SEG TABLE
   776	010565				SYMS5:	IFE	FTFILE,<
   777	010565	200 02 0 00 016535 		MOVE	R,SAVHSM	;LOW SEG POINTER BAD, TRY HI SEG
   778						>
   779						IFN	FTFILE,<
   780						MOVEI	R,0
   781						>
   782	010566	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 34
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0027

   783
   784	010567	402 00 0 00 016537 	SETNAM:	SETZM	PRGM		;FORGET OLD PROGRAM
   785	010570	260 17 0 00 013462 		PUSHJ	P,CLRCSH	;CLEAR SYMBOL CACHE
   786	010571	335 02 1 00 016544 		SKIPGE	R,@SYMP		;LOOK UP PROGRAM NAME FOR $:
   787	010572	260 17 0 00 010620 		PUSHJ	P,SETSUB	;SEARCH LO SEG SYM TABLE
   788	010573	321 02 0 00 010611 		JUMPL	R,SETN2		;XFER IF NAME FOUND
   789						IFE	FTFILE,<
   790	010574	201 02 0 00 010537*		MOVEI	R,.JBHSM
   791	010575	335 00 0 00 016717 		IFN	FTEXEC,<SKPEXC>	;NO HI SYM TABLE POINTER IN EXEC MODE
   792	010576	260 17 0 00 013160 		PUSHJ	P,HFETCH	;GET .JBHSM
   793	010577	254 00 0 00 010170 		 JRST UNDEF		;NO HI SEG, NAME$: UNDEFINED
   794	010600	335 02 0 00 000005 		SKIPGE	R,T		;IS HI SEG POINTER GOOD?
   795	010601	260 17 0 00 010620 		PUSHJ	P,SETSUB	;YES, LOOK THRU HI SYM TABLE
   796						>
   797	010602	325 02 0 00 010170 		JUMPGE	R,UNDEF		;UNDEFINED IF NOT IN HI SEG
   798						IFE	FTFILE,<
   799	010603	541 04 0 00 400000 		HRRI	W,1B18		;SET FLAG SHOWING HI SEGMENT
   800	010604	201 02 0 00 000000*		MOVEI	R,.JBHNM	;GET ADR OF HI SEG PROGRAM NAME
   801	010605	335 00 0 00 016717 		IFN	FTEXEC,<SKPEXC>
   802	010606	260 17 0 00 013160 		PUSHJ	P,HFETCH	;  AND GO GET THE NAME
   803	010607	201 05 0 00 000000 		 MOVEI T,0		;NO HI SEG NAME, OR EXEC MODE
   804	010610	202 05 0 00 016536 		MOVEM	T,SEGNAM >	;SAVE HI SEG NAME
   805	010611	202 04 0 00 016537 	SETN2:	MOVEM	W,PRGM		;SAVE -WC IN LH, HISEG=1 FLAG IN RH
   806	010612	254 00 0 00 010176 		JRST	RET		;DONE, THANK YOU
   807
   808									;SUBROUTINE TO SEARCH A SYM TABLE FOR A PROGRAM NAME
   809	010613	200 05 0 02 000000 	SETSB1:	MOVE	T,(R)		;ENTRY POINT IS "SETSUB"
   810	010614	316 05 0 00 016543 		CAMN	T,SYM		;MATCH FOR PROGRAM NAME?
   811	010615	263 17 0 00 000000 		POPJ	P,		;YES, RETURN WITH "ANSWER" IN W
   812	010616	270 02 0 00 016054 		ADD	R,[2,,2]	;GO TO NEXT ENTRY
   813	010617	607 05 0 00 740000 		TLNN	T,(PNAME)	;WAS LAST ENTRY A PROG NAME?
   814	010620	510 04 0 00 000002 	SETSUB:	HLLZ	W,R		;(ENTRY POINT) YES, SAVE POINTER TO HERE
   815	010621	321 02 0 00 010613 		JUMPL	R,SETSB1	;XFER IF ANY SYMBOLS LEFT
   816	010622	263 17 0 00 000000 		POPJ	P,		;SEARCH FAILED, RETURN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 35
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0028

   817
   818	010623	607 00 0 00 000020 	KILL:	TLNN	F,(LTF)		;DELETE SYMBOLS
   819	010624	254 00 0 00 010166 		JRST	ERR
   820	010625	260 17 0 00 010457 		PUSHJ	P,EVAL
   821	010626	254 00 0 00 010635 		JRST	KILL1
   822	010627	200 05 0 02 000000 		MOVE	T,(R)		;GET SYM WITH FLAGS
   823	010630	661 05 0 00 400000 		TLO	T,(DELO)	;ASSUME DELETE OUTPUT
   824	010631	603 00 0 00 010000 		TLNE	F,(CCF)		;$$K?
   825	010632	205 05 0 00 637777 		MOVSI	T,(DELO!DELI!37777B17)	;MAKE SYM IMPOSSIBLE LOCAL, DELETED IN AND OUT
   826	010633	260 17 0 00 013154 		PUSHJ	P,DSYMER	;DEPOSIT IF LEGAL, ELSE ?
   827	010634	254 00 0 00 010176 	KILRET:	JRST	RET		;USED AS A CONSTANT
   828
   829
   830	010635	331 02 1 00 016545 	KILL1:	SKIPL	R,@USYMP	;REMOVE UNDEFINED SYMS
   831	010636	254 00 0 00 010170 		JRST	UNDEF
   832	010637	574 03 0 00 000002 	KILL1A:	HLRE	S,R		;GET LENGTH OF UNDEFINED TABLE, AND
   833	010640	240 03 0 00 777777 		ASH	S,-1		;DIVIDE BY 2 TO GET # OF ENTRIES
   834						IFE	FTFILE,<
   835	010641	402 00 0 00 016535 		SETZM	SAVHSM		;LOOK ONLY IN LOW SEG
   836						>
   837	010642	260 17 0 00 010472 	KILL2:	PUSHJ	P,EVAL2
   838	010643	254 00 0 00 010176 		JRST	RET
   839					REPEAT 0,<			;IF ASSEMBLED OUT, DON'T ZERO CHAINED ADDRESSES
   840						PUSH	P,R
   841						SKIPL	R,1(R)		;CHAINED REQUEST?
   842						JRST	KILL4		;YES
   843					KILL3:	POP	P,R >
   844	010644	260 17 0 00 010650 		PUSHJ	P,REMUN
   845	010645	254 00 0 00 010166 		 JRST ERR		;CAN'T MODIFY SYMTAB
   846	010646	200 02 1 00 016545 		MOVE	R,@USYMP	;START TABLE SEARCH OVER
   847	010647	254 00 0 00 010637 		JRST	KILL1A
   848
   849					REPEAT 0,<			;IF ASSEMBLED OUT, DON'T ZERO CHAINED ADDRESSES
   850					KILL4A:	SKIPE	R,S		;GET CHAIN ADR, STOP IF 0
   851					KILL4:	PUSHJ	P,FETCH		;GET NEXT ADR OF CHAIN
   852						 JRST KILL3		;FAILED, QUIT SEARCHING LIST
   853						HRRZ	S,T		;SAVE CHAIN POINTER
   854						HLLZS	T		;GET RID OF CHAIN ADDRESS, AND
   855						PUSHJ	P,DEPMEM	;  DEPOSIT BACK INTO MEMORY
   856						 JFCL			;IGNORE IF WRITE LOCKED SEG
   857						JRST	KILL4A >
   858
   859	010650	200 03 1 00 016545 	REMUN:	MOVE	S,@USYMP	;REMOVE ONE UNDEFINED SYMBOL
   860	010651	200 05 0 03 000000 		MOVE	T,(S)		;MOVE SYMBOL 2 LOCATIONS
   861	010652	260 17 0 00 013112 		PUSHJ	P,DEPSYM
   862	010653	263 17 0 00 000000 		 POPJ P,		;CAN'T MODIFY SYMTAB
   863	010654	200 05 0 03 000001 		MOVE	T,1(S)
   864	010655	271 02 0 00 000001 		ADDI	R,1
   865	010656	260 17 0 00 013154 		PUSHJ	P,DSYMER
   866	010657	275 02 0 00 000001 		SUBI	R,1
   867	010660	200 03 0 00 016054 		MOVE	S,[2,,2]
   868	010661	273 03 1 00 016545 		ADDB	S,@USYMP
   869	010662	254 00 0 00 010520 		JRST	CPOPJ1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 36
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0029

   870
   871	010663	607 00 0 00 000020 	TAG:	TLNN	F,(LTF)		; NO LETTERS IS ERROR
   872	010664	254 00 0 00 010166 		JRST	ERR		; GO SAY ERROR
   873	010665	603 00 0 00 001000 		TLNE	F,(FAF)		; DEFINE SYMBOLS
   874	010666	254 00 0 00 010673 		JRST	DEFIN		;A.LT.B:
   875	010667	603 00 0 00 000040 		TLNE	F,(CF)		;DEFINE SYMBOL AS OPEN REGISTER
   876	010670	254 00 0 00 010567 		JRST	SETNAM
   877	010671	200 04 0 00 016553 		MOVE	W,LLOCO
   878	010672	552 04 0 00 016550 		HRRZM	W,DEFV
   879
   880	010673	260 17 0 00 010457 	DEFIN:	PUSHJ	P,EVAL		;DEFINED SYMBOL?
   881	010674	254 00 0 00 010700 		JRST	DEF1		;NO - DEFINE
   882	010675	200 05 0 02 000000 		MOVE	T,0(R)		;YES, GET FLAGS FOR SYMBOL TYPE
   883	010676	603 05 0 00 740000 		TLNE	T,(PNAME)	;PROGRAM NAME?
   884	010677	254 00 0 00 010716 		JRST	DEF2		;NO, REDEFINE SYMBOL
   885
   886	010700	331 02 1 00 016544 	DEF1:	SKIPL	R,@SYMP		;DEFINE A NEW SYMBOL
   887						IFE	FTFILE,<
   888						JRST	[MOVEI R,.JBHSM
   889							IFN FTEXEC,<SKPEXC> ;NO HI SYM POINTER IN EXEC MODE
   890							PUSHJ P,HFETCH	;GET HI SEG SYM POINTER
   891							 JRST ERR	;THERE IS NO SYM POINTER ANYWHERE
   892							SUB T,[2,,2]	;MAKE ROOM FOR ANOTHER ENTRY
   893							PUSHJ P,DSYMER	; AND STORE IT BACK
   894							MOVE R,T
   895	010701	254 00 0 00 016073 			JRST DEF1A]
   896						>
   897						IFN	FTFILE,<
   898						JRST	ERR
   899						>
   900	010702	274 02 0 00 016054 		SUB	R,[2,,2]
   901	010703	202 02 1 00 016544 		MOVEM	R,@SYMP		;DECREMENT LO SEG SYM POINTER
   902	010704	331 00 1 00 016545 	DEF1A:	SKIPL	@USYMP		;DOES AN UNDEFINED TABLE EXIST?
   903	010705	254 00 0 00 010716 		JRST	DEF2		;NO
   904	010706	200 03 0 00 000002 		MOVE	S,R
   905	010707	370 02 1 00 016545 		SOS	R,@USYMP	;MOVE HI NUMBERED ENTRY ON UNDEFINED
   906	010710	200 05 0 03 000001 		MOVE	T,1(S)		;  TABLE TO LOW END
   907	010711	260 17 0 00 013154 		PUSHJ	P,DSYMER
   908	010712	370 02 1 00 016545 		SOS	R,@USYMP	;SAME FOR SECOND WORD
   909	010713	200 05 0 03 000000 		MOVE	T,(S)
   910	010714	260 17 0 00 013154 		PUSHJ	P,DSYMER
   911	010715	200 02 0 00 000003 		MOVE	R,S		;GET DEFINED SYM POINTER BACK
   912	010716	205 05 0 00 040000 	DEF2:	MOVSI	T,(GLOBL)
   913	010717	437 05 0 00 016543 		IORB	T,SYM
   914	010720	260 17 0 00 013154 		PUSHJ	P,DSYMER
   915	010721	200 05 0 00 016550 		MOVE	T,DEFV
   916	010722	201 02 0 02 000001 		MOVEI	R,1(R)
   917	010723	260 17 0 00 013154 		PUSHJ	P,DSYMER
   918	010724	200 02 1 00 016545 		MOVE	R,@USYMP
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 37
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0030

   919
   920	010725	325 02 0 00 010176 	DEF3:	JUMPGE	R,RET		;PATCH IN VALUE FOR UNDEF SYM ENTRY
   921	010726	200 05 0 00 016543 		MOVE	T,SYM
   922	010727	661 05 0 00 040000 		TLO	T,(GLOBL)	;UNDEFINED TABLE HAS GLOBAL ENTRIES
   923	010730	312 05 0 02 000000 		CAME	T,(R)
   924	010731	254 00 0 00 010752 		JRST	DEF4
   925	010732	261 17 0 00 000002 		PUSH	P,R		;SAVE POINTER INTO UNDEF TABLE
   926	010733	331 02 0 02 000001 		SKIPL	R,1(R)		;IS ENTRY AN ADDITIVE REQUEST?
   927	010734	254 00 0 00 010754 		JRST	DEF7		;NO, CHAINED IN RIGHT HALF
   928	010735	260 17 0 00 013164 		PUSHJ	P,FETCH		;GET OBJECT CELL
   929	010736	254 00 0 00 010166 		 JRST ERR
   930	010737	607 02 0 00 020000 		TLNN	R,(STNEG)	;ADDITIVE OR SUBTRACTIVE?
   931	010740	334 03 0 00 016550 		SKIPA	S,DEFV		;ADDITIVE
   932	010741	210 03 0 00 016550 		MOVN	S,DEFV		;SUBTRACTIVE
   933	010742	603 02 0 00 200000 		TLNE	R,(STLH)	;RIGHT OR LEFT HALF?
   934						JRST	[HRLZS S	;LEFT HALF
   935							ADD T,S		;ADD INTO LEFT HALF
   936	010743	254 00 0 00 016103 			JRST DEF5]
   937	010744	270 03 0 00 000005 		ADD	S,T		;RIGHT HALF, ADD HALVES
   938	010745	540 05 0 00 000003 		HRR	T,S		;  AND REPLACE RIGHT HALF
   939	010746	260 17 0 00 013155 	DEF5:	PUSHJ	P,DMEMER	;STORE RESULT BACK INTO MEMORY
   940	010747	262 17 0 00 000002 	DEF6:	POP	P,R		;GET UNDEF TABLE POINTER BACK
   941	010750	260 17 0 00 010650 		PUSHJ	P,REMUN
   942	010751	254 00 0 00 010166 		 JRST ERR		;CAN'T MODIFY SYMTAB
   943	010752	270 02 0 00 016054 	DEF4:	ADD	R,[XWD 2,2]	;REMOVE THE NOW DEFINED SYMBOL
   944	010753	254 00 0 00 010725 		JRST	DEF3
   945
   946	010754	322 02 0 00 010747 	DEF7:	JUMPE	R,DEF6		;JUMP IF ALL DONE
   947	010755	260 17 0 00 013164 		PUSHJ	P,FETCH		;GET OBJECT CELL
   948	010756	254 00 0 00 010166 		 JRST ERR
   949	010757	550 03 0 00 000005 		HRRZ	S,T		;SAVE CHAIN POINTER
   950	010760	540 05 0 00 016550 		HRR	T,DEFV		;REPLACE WITH NEW VALUE
   951	010761	260 17 0 00 013155 		PUSHJ	P,DMEMER	; AND STORE BACK INTO MEMORY
   952	010762	550 02 0 00 000003 		HRRZ	R,S		;LOOP TO END
   953	010763	254 00 0 00 010754 		JRST	DEF7		;  OF CHAIN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 38
KLDDT	MAC	 5-May-78 12:59		SYMBOL TABLE LOGIC                                                                 SEQ 0031

   954
   955					SUBTTL	TEXT COMMANDS (" AND $")
   956
   957	010764	622 00 0 00 000001 	TEXI:	TRZE	F,Q2F		;QUANT AFTER $ ?
   958						JRST	[MOVE T,WRD2	;YES
   959							CAIE T,5	; $5" ?
   960							JRST ERR	;NO, ONLY CASE KNOWN
   961							MOVE T,SYM	;YES, TAKE PREVIOUS SYL AS RADIX50
   962							TLZ F,(FPF+FEF+LTF) ;REINIT SYL
   963	010765	254 00 0 00 016106 			JRST QUAN1]
   964	010766	550 05 0 00 016553 		HRRZ	T,LLOCO		;GET ADR OF OPEN REG
   965	010767	202 05 0 00 016673 		MOVEM	T,TEM		;SAVE IT FOR LOCAL USE
   966	010770	260 17 0 00 011024 		PUSHJ	P,TEXIN0	;GET TERMINATOR
   967	010771	202 05 0 00 016530 		MOVEM	T,SYL		;SAVE TERMINATOR
   968	010772	260 17 0 00 014704 		PUSHJ	P,TEXIN		;GET FIRST CHARACTER
   969	010773	306 05 0 00 000033 		CAIN	T,33		;ESC?
   970	010774	254 00 0 00 010450 		JRST	QUAN2		;YES, EQUALS ONE ASCII/SIXBIT CHAR
   971	010775	260 17 0 00 011025 		PUSHJ	P,TEXIN1	;CONVERT TO SIXBIT IF NECESSARY
   972	010776	200 06 0 00 016114 	TEXI4:	MOVE	W1,[POINT 7,W]	;SETUP TO BUILD WORD IN W
   973	010777	603 00 0 00 000040 		TLNE	F,(CF)		;SIXBIT?
   974	011000	505 06 0 00 440600 		HRLI	W1,(POINT 6,0)	;YES, MODIFY BYTE POINTER
   975	011001	201 04 0 00 000000 		MOVEI	W,0		;INIT WORD TO 0
   976	011002	316 05 0 00 016530 	TEXI2:	CAMN	T,SYL		;REACHED TERMINATOR?
   977						JRST	[MOVE T,W	;GET LAST WORD
   978							HRRZ R,TEM
   979							CAMN R,LLOCO	;MULTIPLE-WORD INPUT?
   980							JRST QUAN1	;NO, JUST RETURN QUANTITY
   981							PUSHJ P,PSHLLC	;YES, SAVE OLD LOC
   982							MOVEM R,LLOC	;SET LOC TO END OF INPUT
   983							MOVEM R,LLOCO
   984	011003	254 00 0 00 016115 			JRST QUAN1]	;GO USE AS QUANTITY
   985	011004	607 06 0 00 760000 		TLNN	W1,(76B5)	;ROOM FOR ANOTHER BYTE IN WORD?
   986	011005	254 00 0 00 011011 		JRST	TEXI3		;NO
   987	011006	136 05 0 00 000006 		IDPB	T,W1		;YES, STORE IT
   988	011007	260 17 0 00 011024 		PUSHJ	P,TEXIN0	;GET ANOTHER INPUT CHARACTER
   989	011010	254 00 0 00 011002 		JRST	TEXI2
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 39
KLDDT	MAC	 5-May-78 12:59		TEXT COMMANDS (" AND $")                                                           SEQ 0032

   990
   991					;HERE WHEN WORD FULL
   992
   993	011011	205 06 0 00 440000 	TEXI3:	MOVSI	W1,(POINT 0,0)
   994	011012	607 00 0 00 000010 		TLNN	F,(ROF)		;REGISTER OPEN?
   995	011013	254 00 0 00 011002 		JRST	TEXI2		;NO, LOSE ANY ADDITIONAL INPUT
   996	011014	261 17 0 00 000005 		PUSH	P,T		;SAVE CHARACTER
   997	011015	200 05 0 00 000004 		MOVE	T,W		;GET FULL WORD
   998	011016	550 02 0 00 016673 		HRRZ	R,TEM		;GET LOC OF NEXT REGISTER
   999	011017	260 17 0 00 013112 		PUSHJ	P,DEPMEM	;STORE WORD
  1000	011020	254 00 0 00 010166 		 JRST ERR		;CAN'T
  1001	011021	350 00 0 00 016673 		AOS	TEM		;BUMP LOC
  1002	011022	262 17 0 00 000005 		POP	P,T		;RECOVER CHARACTER
  1003	011023	254 00 0 00 010776 		JRST	TEXI4		;GO REINIT WORD AND CONTINUE INPUT
  1004
  1005					;GET INPUT CHARACTER, CONVERT TO SIXBIT IF NECESSARY
  1006
  1007	011024	260 17 0 00 014704 	TEXIN0:	PUSHJ	P,TEXIN		;GET CHAR
  1008	011025	607 00 0 00 000040 	TEXIN1:	TLNN	F,(CF)		;SIXBIT MODE?
  1009	011026	263 17 0 00 000000 		POPJ	P,		;NO
  1010	011027	301 05 0 00 000141 	CONV6:	CAIL	T,"A"+40	;IS CHAR BETWEEN LOWER CASE "A" AND
  1011	011030	303 05 0 00 000172 		CAILE	T,"Z"+40	; LOWER CASE "Z"?
  1012	011031	334 00 0 00 000000 		SKIPA			;NO
  1013	011032	640 05 0 00 000040 		TRC	T,40		;YES, CONVERT TO UPPER CASE
  1014	011033	301 05 0 00 000040 		CAIL	T," "		;IS CHAR IN SIXBIT SET?
  1015	011034	303 05 0 00 000137 		CAILE	T,"_"
  1016	011035	254 00 0 00 010166 		JRST	ERR		;NO
  1017	011036	405 05 0 00 000077 		ANDI	T,77		;YES, MASK TO 6 BITS
  1018	011037	640 05 0 00 000040 		TRC	T,40		;CONVERT TO SIXBIT FORM
  1019	011040	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 40
KLDDT	MAC	 5-May-78 12:59		TEXT COMMANDS (" AND $")                                                           SEQ 0033

  1020
  1021					;***ROUTINES BEYOND HERE EVALUATE THEIR ARGUMENT***
  1022
  1023	011041	665 00 0 00 000300 	MULT:	TLOA	F,(PTF+MLF)	;*
  1024	011042	661 00 0 00 040100 	DIVD:	TLO	F,(DVF+PTF)	;SINGLE QUOTE
  1025	011043	254 00 0 00 010047 		JRST	L1
  1026
  1027	011044	254 00 0 00 011046 	ASSEM:	JRST	PLUS		;#
  1028	011045	661 00 0 00 000002 	MINUS:	TLO	F,(MF)
  1029	011046	661 00 0 00 000100 	PLUS:	TLO	F,(PTF)
  1030	011047	254 00 0 00 010044 		JRST	LIS2
  1031
  1032	011050	261 17 0 00 000000 	LPRN:	PUSH	P,F		;RECURSE FOR OPEN PAREN
  1033	011051	261 17 0 00 016524 		PUSH	P,WRD
  1034	011052	261 17 0 00 016527 		PUSH	P,FRASE
  1035	011053	261 17 0 00 016533 		PUSH	P,FRASE1
  1036	011054	350 00 0 00 016526 		AOS,PRNC
  1037	011055	254 00 0 00 010016 		JRST	LIS
  1038
  1039	011056	515 04 0 00 000020 	INDIRE:	HRLZI	W,20		;@
  1040	011057	437 04 0 00 016524 		IORB	W,WRD
  1041	011060	661 00 0 00 000001 		TLO	F,(QF)
  1042	011061	254 00 0 00 010044 		JRST	LIS2
  1043
  1044	011062	200 02 0 00 000005 	ACCF:	MOVE	R,T		;COMMA PROCESSOR
  1045	011063	256 00 0 00 016356 		XCT	ACCCF		;MOVEI T,..
  1046	011064	663 00 0 00 200000 		TLOE	F,(COMF)	;COMMA TYPED BEFORE?
  1047	011065	254 00 0 00 011076 		JRST	ACCF1		;YES
  1048	011066	542 02 0 00 016356 		HRRM	R,ACCCF		;NO, SAVE LEFT HALF OF A,,B
  1049	011067	510 05 0 00 000002 		HLLZ	T,R
  1050	011070	135 06 0 00 016125 		LDB	W1,[POINT 3,WRD,2]	;CHECK FOR IO INSTRUCTION
  1051	011071	231 06 0 00 000007 		IDIVI	W1,7
  1052	011072	242 02 0 06 000027 		LSH	R,27(W1)
  1053	011073	270 05 0 00 000002 		ADD	T,R
  1054	011074	273 05 0 00 016524 		ADDB	T,WRD
  1055	011075	254 00 0 00 011102 		JRST	SPAC1
  1056
  1057	011076	270 05 0 00 016524 	ACCF1:	ADD	T,WRD		; FOR ",," GET LEFT HALF TOGETHER
  1058	011077	516 05 0 00 016524 		HRLZM	T,WRD		; AND PUT IT IN LEFT HALF
  1059	011100	254 00 0 00 011102 		JRST	SPAC1
  1060
  1061	011101	603 00 0 00 000001 	SPACE:	TLNE	F,(QF)
  1062	011102	661 00 0 00 100000 	SPAC1:	TLO	F,(TIF)
  1063	011103	621 00 0 00 000102 		TLZ	F,(MF+PTF)
  1064	011104	254 00 0 00 010043 		JRST	LIS1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 41
KLDDT	MAC	 5-May-78 12:59		TEXT COMMANDS (" AND $")                                                           SEQ 0034

  1065
  1066	011105	607 00 0 00 000001 	RPRN:	TLNN	F,(QF)		;)
  1067	011106	201 05 0 00 000000 		MOVEI	T,0
  1068	011107	204 05 0 00 000005 		MOVS	T,T
  1069	011110	375 00 0 00 016526 		SOSGE,PRNC
  1070	011111	254 00 0 00 010166 		JRST	ERR
  1071	011112	262 17 0 00 016533 		POP	P,FRASE1
  1072	011113	262 17 0 00 016527 		POP	P,FRASE
  1073	011114	262 17 0 00 016524 		POP	P,WRD
  1074	011115	262 17 0 00 000000 		POP	P,F
  1075	011116	603 00 0 00 000100 		TLNE	F,(PTF)
  1076	011117	603 00 0 00 000004 		TLNE	F,(SF)
  1077	011120	254 00 0 00 011124 		JRST	RPRN1
  1078	011121	202 05 0 00 016530 		MOVEM	T,SYL
  1079	011122	661 00 0 00 000005 		TLO	F,(QF+SF)
  1080	011123	254 00 0 00 010051 		JRST	L1RPR
  1081	011124	273 05 0 00 016524 	RPRN1:	ADDB	T,WRD
  1082	011125	661 00 0 00 000001 		TLO	F,(QF)
  1083	011126	254 00 0 00 010050 		JRST	L1A
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 42
KLDDT	MAC	 5-May-78 12:59		TEXT COMMANDS (" AND $")                                                           SEQ 0035

  1084
  1085					SUBTTL REGISTER EXAMINATION LOGIC
  1086
  1087	011127	260 17 0 00 011277 	LINEF:	PUSHJ	P,DEPRA		;NEXT REGISTER
  1088	011130	260 17 0 00 014261 		PUSHJ	P,CRN		;DO CR ONLY
  1089	011131	350 05 0 00 016552 		AOS	T,LLOC		;BUMP LOC
  1090	011132				LI1:				;PUSHJ P,LINCHK		;TRUNCATE ADRS (UNLESS INSIDE DDT)
  1091	011132	552 05 0 00 016552 		HRRZM	T,LLOC
  1092	011133	552 05 0 00 016553 		HRRZM	T,LLOCO
  1093	011134	260 17 0 00 013572 		PUSHJ	P,PAD
  1094	011135	201 05 0 00 000057 		MOVEI	T,"/"
  1095	011136	312 10 0 00 016667 		CAME	SCH,SCHM	;TEMP MODE SAME AS PERM?
  1096						JRST	[CAIN SCH,FTOC	;NO, CONSTANT?
  1097							MOVEI T,"["	;YES
  1098							CAIN SCH,PIN	;INSTRUCTION?
  1099							MOVEI T,"]"	;YES
  1100	011137	254 00 0 00 016126 			JRST .+1]	;USE APPROPRIATE INDICATION
  1101	011140	603 00 0 00 004000 		TLNE	F,(STF)
  1102	011141	201 05 0 00 000041 		MOVEI	T,"!"
  1103	011142	260 17 0 00 014533 		PUSHJ	P,TOUT
  1104	011143	621 00 0 00 000010 	LI2:	TLZ	F,(ROF)
  1105	011144	260 17 0 00 014266 		PUSHJ	P,LCT
  1106	011145	200 02 0 00 016553 		MOVE	R,LLOCO
  1107	011146	260 17 0 00 013164 		PUSHJ	P,FETCH
  1108						IFE	FTDEC20,<
  1109	011147	254 00 0 00 010166 		JRST	ERR>
  1110						IFN	FTDEC20,<
  1111						 JRST	[TLO F,(ROF)	;SAY REGISTER OPENED
  1112							MOVEI W1,"?"	;BUT ONLY TYPE "?"
  1113							JRST TEXT]>
  1114	011150	661 00 0 00 000010 		TLO	F,(ROF)
  1115	011151	603 00 0 00 004000 		TLNE	F,(STF)
  1116	011152	254 00 0 00 010014 		JRST	DD2
  1117	011153	254 00 0 00 013466 		JRST	CONSYM		;RETURN IS A POPJ
  1118
  1119					;CRLF AND OPEN NEXT REGISTER SUBROUTINE
  1120
  1121	011154	260 17 0 00 014263 	LI0:	PUSHJ	P,CRF
  1122	011155	350 05 0 00 016552 		AOS	T,LLOC
  1123	011156	254 00 0 00 011132 		JRST	LI1
  1124
  1125						REPEAT	0,<
  1126					LINCHK:	CAML	T,[DDTINT SAVPI]	;TRUNCATE ADDRESSES
  1127						CAMLE	T,[DDTINT BNADR+2]
  1128						HRRZS	T
  1129						MOVEM	T,LLOC
  1130						MOVEM	T,LLOCO
  1131						POPJ	P,
  1132						>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 43
KLDDT	MAC	 5-May-78 12:59		REGISTER EXAMINATION LOGIC                                                         SEQ 0036

  1133	011157	260 17 0 00 011277 	VARRW:	PUSHJ	P,DEPRA		;^
  1134	011160	260 17 0 00 014263 		PUSHJ	P,CRF
  1135	011161	370 05 0 00 016552 		SOS	T,LLOC
  1136	011162	254 00 0 00 011132 		JRST	LI1
  1137
  1138	011163	260 17 0 00 011277 	CARR:	PUSHJ	P,DEPRA		;CLOSE REGISTER
  1139	011164	260 17 0 00 014705 		PUSHJ	P,TIN		;GLOBBLE UP FOLLOWING LINEFEED
  1140	011165	402 00 0 00 016367 	CARR1:	SETZM	CHINP		;REINIT INPUT LINE
  1141	011166	402 00 0 00 016362 		SETZM	CHINC
  1142	011167	550 05 0 00 016552 		HRRZ	T,LLOC		;GET CURRENT LOC
  1143	011170	603 00 0 00 000040 		TLNE	F,(CF)		; $ PRECEEDED?
  1144	011171	254 00 0 00 011132 		JRST	LI1		;YES, GO OPEN REGISTER
  1145	011172	254 00 0 00 010007 		JRST	DD1.5
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 44
KLDDT	MAC	 5-May-78 12:59		REGISTER EXAMINATION LOGIC                                                         SEQ 0037

  1146
  1147	011173	607 00 0 00 010000 	SLASH:	TLNN	F,(CCF)		; $$/ ?
  1148	011174	254 00 0 00 011210 		JRST	SLAS2		;NO
  1149	011175	462 00 0 00 016601 		SETCMM	EFAFLG		;YES, COMPLEMENT EFF ADR FLAG
  1150	011176	254 00 0 00 010176 		JRST	RET		;OPEN NO REGISTER
  1151
  1152	011177	603 00 0 00 000001 	OCON:	TLNE	F,(QF)		;QUANT TYPED?
  1153	011200	201 10 0 00 014037 		MOVEI	SCH,FTOC	;YES, CHANGE TEMP MODE TO CONSTANT
  1154	011201	660 00 0 00 002400 		TRO	F,LF1+CF1	;OPEN AS CONSTANT
  1155	011202	254 00 0 00 011210 		JRST	SLAS2		;TYPE
  1156
  1157	011203	603 00 0 00 000001 	OSYM:	TLNE	F,(QF)		;QUANT TYPED?
  1158	011204	201 10 0 00 013473 		MOVEI	SCH,PIN		;YES, CHANGE TEMP MODE TO INSTRUCTION
  1159	011205	620 00 0 00 000400 		TRZ	F,CF1		;OPEN SYMBOLICALLY
  1160	011206	664 00 0 00 002000 		TROA	F,LF1
  1161	011207	665 00 0 00 004000 	SUPTYO:	TLOA	F,(STF)		;SUPPRESS TYPEOUT
  1162	011210	621 00 0 00 004000 	SLAS2:	TLZ	F,(STF)		;TYPE OUT NOT SUPPRESSED
  1163	011211	260 17 0 00 011233 	SLASH2:	PUSHJ	P,CEFF		;COMPUTE EFF ADR
  1164	011212	607 00 0 00 000001 		TLNN	F,(QF)		;WAS ANY QUANTITY TYPED?
  1165	011213	254 00 0 00 011216 		JRST	SLAS1		;NO. DO NOT CHANGE MAIN SEQUENCE
  1166	011214	260 17 0 00 011261 		PUSHJ	P,PSHLLC	;PUSH OLD SEQUENCE
  1167	011215	552 05 0 00 016552 		HRRZM	T,LLOC		;SETUP NEW SEQUENCE
  1168	011216	552 05 0 00 016553 	SLAS1:	HRRZM	T,LLOCO
  1169	011217	254 00 0 00 011143 		JRST	LI2
  1170
  1171	011220	260 17 0 00 013104 	ICON:	PUSHJ	P,DEPRS		;BACKSLASH
  1172	011221	260 17 0 00 011233 		PUSHJ	P,CEFF		;COMPUTE EFF ADR
  1173	011222	254 00 0 00 011216 		JRST	SLAS1
  1174
  1175	011223	260 17 0 00 013104 	TAB:	PUSHJ	P,DEPRS		;OPEN REGISTER OF Q
  1176	011224	260 17 0 00 011233 		PUSHJ	P,CEFF		;COMPUTE EFF ADR
  1177	011225	201 05 0 05 777777 		MOVEI	T,-1(T)
  1178	011226	260 17 0 00 011261 		PUSHJ	P,PSHLLC	;PUSH OLD SEQUENCE
  1179	011227	202 05 0 00 016552 		MOVEM	T,LLOC		;SETUP NEW SEQUENCE
  1180	011230	561 05 0 00 700000 		HRROI	T,700000	;3 RUBOUTS
  1181	011231	260 17 0 00 014233 		PUSHJ	P,TEXTT
  1182	011232	254 00 0 00 011154 		JRST	LI0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 45
KLDDT	MAC	 5-May-78 12:59		REGISTER EXAMINATION LOGIC                                                         SEQ 0038

  1183
  1184					;ROUTINE TO COMPUTE EFFECTIVE ADDRESS OF QUANTITY IN T.  COMPUTATION
  1185					;IS PERFORMED USING USER PROGRAM VARIABLES.
  1186					; T/ QUANTITY
  1187					;	PUSHJ P,CEFF
  1188					; RETURN +1 ALWAYS, T/ EFFECTIVE ADDRESS IN RH
  1189					;PRINTS "??" AND BOMBS OUT IF INDIRECT WORD NOT ACCESSIBLE
  1190
  1191	011233	332 00 0 00 016601 	CEFF:	SKIPE	EFAFLG		;PERMANENT MODE CHANGED?
  1192	011234	641 00 0 00 000040 		TLC	F,(CF)		;YES, COMPLEMENT EFFECT OF ESC
  1193	011235	627 00 0 00 000040 		TLZN	F,(CF)		;ESC BEFORE COMMAND?
  1194	011236	263 17 0 00 000000 		POPJ	P,		;NO, USE RH ONLY
  1195	011237	607 05 0 00 000017 		TLNN	T,17		;INDEXING?
  1196	011240	254 00 0 00 011250 		JRST	CEFF1		;NO
  1197	011241	261 17 0 00 000005 		PUSH	P,T		;YES, SAVE QUANTITY
  1198	011242	135 02 0 00 016133 		LDB	R,[POINT 4,T,17]	;GET INDEX ADDRESS
  1199	011243	260 17 0 00 013164 		PUSHJ	P,FETCH		;FETCH CONTENTS OF XR
  1200	011244	255 00 0 00 000000 		 JFCL			;ASSUME AC'S ALWAYS ACCESSABLE
  1201	011245	262 17 0 00 000002 		POP	P,R		;RECOVER ORIGINAL QUANTITY
  1202	011246	270 05 0 00 000002 		ADD	T,R		;T=Y+C(XR)
  1203	011247	500 05 0 00 000002 		HLL	T,R		;KEEP ORIGINAL LH
  1204	011250	607 05 0 00 000020 	CEFF1:	TLNN	T,(Z @0)	;HAVE INDIRECTION?
  1205	011251	263 17 0 00 000000 		POPJ	P,		;NO, DONE
  1206	011252	550 02 0 00 000005 		HRRZ	R,T		;YES, GET INDIRECT ADDRESS
  1207	011253	260 17 0 00 013164 		PUSHJ	P,FETCH		;FETCH CONTENTS
  1208	011254	254 00 0 00 011256 		 JRST CEFF2		;FETCH FAILED
  1209	011255	254 00 0 00 011233 		JRST	CEFF		;REPEAT USING INDIRECT WORD
  1210
  1211	011256	205 06 0 00 375760 	CEFF2:	MOVSI	W1,(ASCII /??/)	;INDIRECT FETCH FAILED
  1212	011257	260 17 0 00 014234 		PUSHJ	P,TEXT		;PRINT LOSS INDICATION
  1213	011260	254 00 0 00 010006 		JRST	DD1		;LEAVE REGISTER NOT OPEN, DO CRLF, ETC.
  1214
  1215					;ROUTINES TO HANDLE RING BUFFER OF LOCATIONS
  1216
  1217					;'PUSH' CURRENT LOCATION
  1218
  1219	011261	350 13 0 00 016554 	PSHLLC:	AOS	TT,SAVLP	;BUMP POINTER
  1220	011262	301 13 0 00 000020 		CAIL	TT,NSAVTB	;AT END OF TABLE?
  1221	011263	403 13 0 00 016554 		SETZB	TT,SAVLP	;YES, WRAPAROUND
  1222	011264	261 17 0 00 016552 		PUSH	P,LLOC		;GET CURRENT LOCATION
  1223	011265	262 17 0 13 016555 		POP	P,SAVLTB(TT)	;ADD IT TO TABLE
  1224	011266	263 17 0 00 000000 		POPJ	P,
  1225
  1226					;'POP' CURRENT LOCATION
  1227
  1228	011267	200 13 0 00 016554 	POPLLC:	MOVE	TT,SAVLP	;GET POINTER
  1229	011270	200 13 0 13 016555 		MOVE	TT,SAVLTB(TT)	;REMOVE FROM TABLE
  1230	011271	202 13 0 00 016552 		MOVEM	TT,LLOC		;SET AS CURRENT LOC
  1231	011272	370 13 0 00 016554 		SOS	TT,SAVLP	;DECREMENT PTR
  1232	011273	325 13 0 00 011276 		JUMPGE	TT,POPLC1	;AT TOP OF TABLE?
  1233	011274	201 13 0 00 000017 		MOVEI	TT,NSAVTB-1	;YES, WRAPAROUND
  1234	011275	202 13 0 00 016554 		MOVEM	TT,SAVLP
  1235	011276	263 17 0 00 000000 	POPLC1:	POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 46
KLDDT	MAC	 5-May-78 12:59		REGISTER EXAMINATION LOGIC                                                         SEQ 0039

  1236
  1237	011277	603 00 0 00 000040 	DEPRA:	TLNE	F,(CF)		;$ PRECEEDED?
  1238	011300	260 17 0 00 011267 		PUSHJ	P,POPLLC	;YES, POP OLD SEQUENCE
  1239	011301	603 00 0 00 000010 		TLNE	F,(ROF)		;IF REGISTER IS BEING CHANGED
  1240	011302	607 00 0 00 000001 		TLNN	F,(QF)		;REMOVE ALL PREVIOUS UNDEFINED
  1241	011303	254 00 0 00 013104 		JRST	DEPRS		;SYMBOL REFERENCES TO IT
  1242	011304	200 02 1 00 016545 		MOVE	R,@USYMP	;GET POINTER TO ALL OLD UNDEF ITEMS
  1243	011305	202 06 1 00 016545 		MOVEM	W1,@USYMP	;INCLUDE THE NEW ITEMS IN UNDEF LIST
  1244						IFN	FTFILE,<
  1245						SKIPN	CRASHS		;SEE IF /M
  1246						JRST	DEPRS		;YES--NO UNDEF FIXUPS
  1247						>
  1248	011306	202 05 0 00 016531 		MOVEM	T,LWT		;SAVE T IN LWT, DEPRS DOES IT ANYWAY
  1249	011307	325 02 0 00 011322 	DEPRA2:	JUMPGE	R,DEPRA5	;IF JOBUSY SYM TABLE EDITED, STOP
  1250	011310	261 17 0 00 000002 		PUSH	P,R
  1251	011311	200 04 0 02 000001 		MOVE	W,1(R)		;GET FLAGS AND POINTER
  1252	011312	327 04 0 00 011324 		JUMPG	W,DPRS3		;1B0=0 IMPLIES CHAINING
  1253	011313	262 17 0 00 000002 	DEPRA4:	POP	P,R
  1254	011314	550 05 0 02 000001 		HRRZ	T,1(R)		;GET ADDRESS OF FIXUP
  1255	011315	332 00 0 00 000005 		SKIPE	T		;DELETE ENTRY IF ADR=0, OR
  1256	011316	316 05 0 00 016553 		CAMN	T,LLOCO		; IF ADR IS BEING CHANGED
  1257						JRST	[PUSHJ P,REMUN	;REMOVE ENTRY FROM JOBUSY
  1258							 JRST DEPRA5	;FAILED, NO UNDEF FIXUPS
  1259	011317	254 00 0 00 016134 			JRST .+1]
  1260	011320	270 02 0 00 016054 		ADD	R,[2,,2]	;CONTINUE SEARCHING TABLE
  1261	011321	254 00 0 00 011307 		JRST	DEPRA2
  1262
  1263	011322	200 05 0 00 016531 	DEPRA5:	MOVE	T,LWT		;RESTORE QUANTITY
  1264	011323	254 00 0 00 013104 		JRST	DEPRS		;DO THE STORE
  1265
  1266	011324	561 03 0 02 000001 	DPRS3:	HRROI	S,1(R)		;GET 1ST CHAIN ADR FROM JOBUSY TABLE
  1267									;  AND SET FLAG TO USE DEPSYM FIRST TIME
  1268	011325	550 02 0 00 000004 	DPRS4:	HRRZ	R,W		;GET NEXT ADR (AFTER ADR IN S)
  1269	011326	322 02 0 00 011313 		JUMPE	R,DEPRA4	;STOP ON 0 ADR
  1270	011327	260 17 0 00 013164 		PUSHJ	P,FETCH		;GET CONTENTS OF ADR IN R
  1271	011330	254 00 0 00 011313 		 JRST DEPRA4		;****UNDEFINED SYMBOL TABLE OR FIXUP
  1272									; CHAIN POINTS TO ILL. MEM. TRY
  1273									; TO CONTINUE.
  1274	011331	250 05 0 00 000004 		EXCH	T,W
  1275	011332	250 03 0 00 000002 		EXCH	S,R
  1276	011333	312 03 0 00 016553 		CAME	S,LLOCO		;IS THIS WORD BEING CHANGED?
  1277	011334	254 00 0 00 011325 		JRST	DPRS4		;NO, CONTINUE SEARCHING LIST
  1278	011335	540 05 0 00 000004 		HRR	T,W		;PATCH CHAIN ADR AROUND ITEM
  1279	011336	607 02 0 00 777777 		TLNN	R,-1		;SEE IF NEED TO USE DEPSYM
  1280	011337	634 14 0 00 000014 		TDZA	TT1,TT1		;NO--USE DEPMEM
  1281	011340	201 14 0 00 000000 		MOVEI	TT1,DEPSYM-DEPMEM	;YES.  NOTE THAT R CAME FROM S
  1282									;  WHICH HAS -1 IN LH FIRST TIME AROUND
  1283									;  LOOP AND 0 OTHER TIMES.
  1284	011341	260 17 0 14 013112 		PUSHJ	P,DEPMEM(TT1)	;CALL EITHER DEPMEM OR DEPSYM
  1285	011342	254 04 0 00 011342 		 HALT .
  1286	011343	254 00 0 00 011325 		JRST	DPRS4		;CONTINUE DOWN CHAIN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 47
KLDDT	MAC	 5-May-78 12:59		REGISTER EXAMINATION LOGIC                                                         SEQ 0040

  1287
  1288					SUBTTL MODE CONTROL SWITCHES
  1289
  1290	011344	201 02 0 00 000450 	TEXO:	MOVEI	R,TEXTT-HLFW	;$T ASSUME 7 BIT ASCII
  1291	011345	200 05 0 00 016525 		MOVE	T,WRD2
  1292	011346	306 05 0 00 000006 		CAIN	T,6		;CHECK FOR $6T
  1293	011347	201 02 0 00 000466 		MOVEI	R,SIXBP-HLFW	;SET MODE SWITCH FOR SIXBIT
  1294	011350	306 05 0 00 000005 		CAIN	T,5		;CHECK FOR $5T
  1295	011351	201 02 0 00 000460 		MOVEI	R,R50PNT-HLFW	;SET MODE SWITCH FOR RADIX 50
  1296	011352	271 02 0 00 777440 	HWRDS:	ADDI	R,HLFW-TFLOT	;H
  1297	011353	271 02 0 00 000430 	SFLOT:	ADDI	R,TFLOT-PIN	;F
  1298	011354	271 02 0 00 777434 	SYMBOL:	ADDI	R,PIN-FTOC	;S
  1299	011355	271 02 0 00 014037 	CON:	ADDI	R,FTOC		;C
  1300	011356	552 02 0 00 000010 		HRRZM	R,SCH
  1301	011357	254 00 0 00 011372 		JRST	BASE1
  1302
  1303	011360	622 00 0 00 000001 	RELA:	TRZE	F,Q2F		;CHANGE ADDRESS MODE TO RELATIVE
  1304	011361	254 00 0 00 011366 		JRST	BASECH
  1305	011362	201 02 0 00 777535 		MOVEI	R,PADSO-TOC
  1306	011363	271 02 0 00 014037 	ABSA:	ADDI	R,TOC		;A
  1307	011364	552 02 0 00 000011 		HRRZM	R,AR
  1308	011365	254 00 0 00 011374 		JRST	BASE1S
  1309
  1310	011366	200 05 0 00 016525 	BASECH:	MOVE	T,WRD2		;$NR  CHANGE OUTPUT RADIX TO N, N .GT. 1
  1311	011367	305 05 0 00 000002 		CAIGE	T,2
  1312	011370	254 00 0 00 010166 		JRST	ERR
  1313	011371	552 05 0 00 000012 		HRRZM	T,ODF
  1314	011372	332 03 0 00 016510 	BASE1:	SKIPE	S,OLDAR
  1315	011373	200 11 0 00 000003 		MOVE	AR,S
  1316	011374	402 00 0 00 016510 	BASE1S:	SETZM	OLDAR
  1317	011375	204 03 0 00 016046 	BASE1O:	MOVS	S,[XWD SCHM,SCH]
  1318	011376	607 00 0 00 010000 		TLNN	F,(CCF)
  1319	011377	254 00 0 00 010043 		JRST	LIS1
  1320	011400	251 03 0 00 016671 		BLT	S,ODFM		;WITH $$, MAKE MODES PERMANENT
  1321	011401	200 03 0 00 016047 		MOVE	S,[SVBTS,,PSVBTS]
  1322	011402	251 03 0 00 016515 		BLT	S,PSVBTS+2
  1323	011403	254 00 0 00 010176 		JRST	RET
  1324
  1325	011404	202 05 0 00 016531 	SEMIC:	MOVEM	T,LWT		;SEMICOLON TYPES IN CURRENT MODE
  1326	011405	254 00 1 00 000010 		JRST	@SCH
  1327
  1328	011406	664 00 0 00 002400 	EQUAL:	TROA	F,LF1+CF1	;=
  1329	011407	620 00 0 00 000400 	PSYM:	TRZ	F,CF1		;@
  1330	011410	660 00 0 00 002000 		TRO	F,LF1
  1331	011411	260 17 0 00 013466 		PUSHJ	P,CONSYM
  1332	011412	254 00 0 00 010176 		JRST	RET
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 48
KLDDT	MAC	 5-May-78 12:59		MODE CONTROL SWITCHES                                                              SEQ 0041

  1333
  1334					;OPEN ANGBKT, CLOSE ANGBKT
  1335
  1336	011413	603 00 0 00 010040 	FIRARG:	TLNE	F,(CF+CCF)	;$ PRECEEDED?
  1337	011414	254 00 0 00 011427 		JRST	PTCH		;YES, PATCH COMMAND
  1338	011415	202 05 0 00 016550 		MOVEM	T,DEFV		;NO, SET FIRST ARG
  1339	011416	661 00 0 00 001000 		TLO	F,(FAF)
  1340	011417	254 00 0 00 011424 		JRST	ULIM1
  1341
  1342	011420	603 00 0 00 010040 	ULIM:	TLNE	F,(CF+CCF)	;$ PRECEEDED?
  1343	011421	254 00 0 00 011475 		JRST	PTCHE		;YES, PATCH END COMMAND
  1344	011422	661 00 0 00 002000 		TLO	F,(SAF)		;NO, SET SECOND ARG
  1345	011423	552 05 0 00 016551 		HRRZM	T,ULIMIT
  1346	011424	607 00 0 00 000001 	ULIM1:	TLNN	F,(QF)
  1347	011425	254 00 0 00 010166 		JRST	ERR
  1348	011426	254 00 0 00 010040 		JRST	LIS0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 49
KLDDT	MAC	 5-May-78 12:59		MODE CONTROL SWITCHES                                                              SEQ 0042

  1349
  1350					SUBTTL	PATCH COMMAND  -- PATCH BEGIN
  1351
  1352	011427	607 00 0 00 300102 	PTCH:	TLNN	F,(TIF+COMF+PTF+MF)	;EXPRESSION TYPED?
  1353	011430	607 00 0 00 000010 		TLNN	F,(ROF)		;NO REGISTER OPEN?
  1354	011431	254 00 0 00 010166 		JRST	ERR		;YES, ERROR
  1355	011432	603 00 0 00 000001 		TLNE	F,(QF)		;ANYTHING TYPED?
  1356						JRST	[PUSHJ P,EVAL	;YES, LOOKUP SYMBOL
  1357							 JRST ERR	;STRANGE TYPEIN, LOSE
  1358	011433	254 00 0 00 016137 			JRST PTCH4]	;FOUND, USE VALUE AS PATCH LOC
  1359	011434	205 04 0 00 777775 		MOVSI	W,-NPSYM	;SETUP TO SCAN PATCH SYMBOLS
  1360	011435	200 05 0 04 011472 	PTCH1:	MOVE	T,PCHSYM(W)	;GET A POSSIBLITY
  1361	011436	202 05 0 00 016543 		MOVEM	T,SYM		;SET IT UP FOR EVAL
  1362	011437	260 17 0 00 010457 		PUSHJ	P,EVAL		;TRY TO FIND VALUE
  1363	011440	253 04 0 00 011435 		 AOBJN W,PTCH1		;NOT FOUND, TRY NEXT SYMBOL
  1364						JUMPGE	W,[MOVEI R,.JBFF	;NONE OF THE SYMBOLS EXIST, USE .JBFF
  1365							HRRZ T,0(R)
  1366	011441	325 04 0 00 016142 			JRST PTCH2]
  1367	011442	201 02 0 02 000001 	PTCH4:	MOVEI	R,1(R)		;POINT TO VALUE WORD
  1368	011443	305 05 0 00 000000*	PTCH2:	CAIGE	T,.JBDA		;HAVE REASONABLE PATCH ADDRESS?
  1369	011444	254 00 0 00 010166 		JRST	ERR		;NO
  1370	011445	552 05 0 00 016436 		HRRZM	T,PTLOC		;YES, SAVE IT
  1371	011446	506 02 0 00 016436 		HRLM	R,PTLOC		;SAVE WHERE IT CAME FROM
  1372	011447	550 02 0 00 016553 		HRRZ	R,LLOCO		;LOC OF OPEN REGISTER
  1373	011450	552 02 0 00 016437 		HRRZM	R,PTLLC		;SAVE IT
  1374	011451	260 17 0 00 013164 		PUSHJ	P,FETCH		;GET CONTENTS
  1375	011452	254 00 0 00 010166 		 JRST ERR		;FETCH FAILED
  1376	011453	202 05 0 00 016440 		MOVEM	T,PTWRD		;SAVE ORIGINAL WORD
  1377	011454	260 17 0 00 013155 		PUSHJ	P,DEPERR	;BE SURE IT CAN BE CHANGED, ERR IF NOT
  1378	011455	603 00 0 00 010000 		TLNE	F,(CCF)		;SAVE BEFORE/AFTER FLAG
  1379	011456	563 00 0 00 016437 		HRROS	PTLLC		;0 MEANS BEFORE, 1 (NEGATIVE) MEANS AFTER
  1380	011457	331 00 0 00 016437 		SKIPL	PTLLC		;PATCH AFTER?
  1381	011460	254 00 0 00 011464 		JRST	PTCH3		;NO
  1382	011461	550 02 0 00 016436 		HRRZ	R,PTLOC		;YES, MOVE INSTRUCTION TO PTLOC NOW
  1383	011462	200 05 0 00 016440 		MOVE	T,PTWRD
  1384	011463	260 17 0 00 013155 		PUSHJ	P,DEPERR	;STORE IT
  1385	011464	260 17 0 00 014263 	PTCH3:	PUSHJ	P,CRF		;OPEN REG AT PTLOC AND PRINT CONTENTS
  1386	011465	550 05 0 00 016436 		HRRZ	T,PTLOC
  1387	011466	260 17 0 00 011132 		PUSHJ	P,LI1
  1388	011467	335 00 0 00 016437 		SKIPGE	PTLLC		;PATCH AFTER?
  1389	011470	260 17 0 00 011154 		PUSHJ	P,LI0		;YES, OPEN SECOND LOC IN PATCH AREA
  1390	011471	263 17 0 00 000000 		POPJ	P,		;DONE FOR NOW
  1391
  1392					;TABLE OF SYMBOLS IDENTIFYING PATCH AREAS
  1393
  1394	011472	000400	615632		PCHSYM:	RADIX50	0,PATCH		;ANOTHER LIKELY POSSIBILITY
  1395	011473	000400	617555			RADIX50	0,PAT..		;USUAL LINK10 SYMBOL
  1396	011474	000000	122126			RADIX50	0,PAT		;TOPS-10 SYMBOL
  1397			000003		NPSYM==.-PCHSYM
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 50
KLDDT	MAC	 5-May-78 12:59		PATCH COMMAND  -- PATCH BEGIN                                                      SEQ 0043

  1398
  1399					SUBTTL	PATCH COMMAND -- PATCH END
  1400
  1401	011475	336 00 0 00 016436 	PTCHE:	SKIPN	PTLOC		;PATCH IN PROGRESS?
  1402	011476	254 00 0 00 010166 		JRST	ERR		;NO, ERROR
  1403	011477	621 00 0 00 010040 		TLZ	F,(CF+CCF)	;FLUSH FLAGS BEFORE DEPRA
  1404	011500	260 17 0 00 011277 		PUSHJ	P,DEPRA		;STORE LAST WORD IF ANY
  1405	011501	335 00 0 00 016437 		SKIPGE	PTLLC		;PATCH BEFORE?
  1406	011502	254 00 0 00 011510 		JRST	PTCHE1		;NO
  1407	011503	550 02 0 00 016552 		HRRZ	R,LLOC		;YES, MOVE ORIG INSTRUCTION NOW
  1408	011504	350 00 0 00 000002 		AOS	R		;MOVE IT TO NEXT LOC
  1409	011505	200 05 0 00 016440 		MOVE	T,PTWRD
  1410	011506	260 17 0 00 013155 		PUSHJ	P,DEPERR	;STORE IT
  1411	011507	260 17 0 00 011154 		PUSHJ	P,LI0		;OPEN FOR USER TO SEE
  1412	011510	550 02 0 00 016552 	PTCHE1:	HRRZ	R,LLOC		;STORE JUMPA 1,ORIG+1
  1413	011511	350 00 0 00 000002 		AOS	R		; IN NEXT LOC
  1414	011512	550 05 0 00 016437 		HRRZ	T,PTLLC
  1415	011513	270 05 0 00 016145 		ADD	T,[JUMPA 1,1]
  1416	011514	260 17 0 00 013155 		PUSHJ	P,DEPERR
  1417	011515	260 17 0 00 011154 		PUSHJ	P,LI0		;OPEN FOR USER TO SEE
  1418	011516	550 02 0 00 016552 		HRRZ	R,LLOC		;STORE JUMPA 2,ORIG+2
  1419	011517	350 00 0 00 000002 		AOS	R		; IN NEXT LOC
  1420	011520	550 05 0 00 016437 		HRRZ	T,PTLLC
  1421	011521	270 05 0 00 016146 		ADD	T,[JUMPA 2,2]
  1422	011522	260 17 0 00 013155 		PUSHJ	P,DEPERR
  1423	011523	260 17 0 00 011154 		PUSHJ	P,LI0		;OPEN FOR USER TO SEE
  1424	011524	350 05 0 00 016552 		AOS	T,LLOC		;GET NEXT FREE PATCH LOC
  1425	011525	554 02 0 00 016436 		HLRZ	R,PTLOC		;UPDATE WORD THAT PATLOC CAME FROM
  1426	011526	542 05 0 02 000000 		HRRM	T,0(R)
  1427	011527	550 02 0 00 016437 		HRRZ	R,PTLLC		;GET ORIG ADDRESS
  1428	011530	550 05 0 00 016436 		HRRZ	T,PTLOC		;PUT JUMPA PATCH INTO IT
  1429	011531	505 05 0 00 324000 		HRLI	T,(JUMPA 0,)
  1430	011532	260 17 0 00 013155 		PUSHJ	P,DEPERR
  1431	011533	260 17 0 00 014263 		PUSHJ	P,CRF
  1432	011534	550 05 0 00 000002 		HRRZ	T,R		;NOW OPEN ORIG REGISTER FOR USER TO SEE
  1433	011535	260 17 0 00 011132 		PUSHJ	P,LI1
  1434	011536	402 00 0 00 016436 		SETZM	PTLOC		;SAY NO PATCH IN PROGRESS
  1435	011537	263 17 0 00 000000 		POPJ	P,		;DONE
  1436			010166		SETPAG==ERR
  1437					XLIST
  1438					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 52
KLDDT	MAC	 5-May-78 12:59		PATCH COMMAND -- PATCH END                                                         SEQ 0044

  1439
  1440					SUBTTL GO AND EXECUTE LOGIC
  1441
  1442						IFE	FTFILE,<
  1443	011540				CNTRLZ:	IFN	FTEXEC,<
  1444	011540	331 00 0 00 016717 		SKPUSR			;SEE IF USER MODE
  1445	011541	254 00 0 00 010166 		JRST	ERR>		;NO--ERROR  
  1446					;	IFE	FTDEC20,<
  1447	011542	200 05 0 00 016147 		MOVE	T,[CALLI 1,12]	;>	;GET MONRET
  1448					;	IFN	FTDEC20,<
  1449	011543	200 05 0 00 016150 		MOVE	T,[HALTF]	;>	;HALT THIS FORK
  1450	011544	254 00 0 00 011557 		JRST	XEC0		;GO EXECUTE IT
  1451
  1452	011545	505 05 0 00 254000 	GO:	HRLI	T,(JRST)	;G
  1453	011546	663 00 0 00 000001 		TLOE	F,(QF)		;DID USER TYPE AN ARG TO $G?
  1454	011547	254 00 0 00 011553 		JRST	XEC		;YES, GO DO IT
  1455					XLIST
  1456					LIST
  1457	011550	540 05 0 00 000000*		HRR	T,.JBSA
  1458	011551	606 05 0 00 777777 		TRNN	T,-1		;WAS C(.JBSA) NONZERO?
  1459	011552	254 00 0 00 010166 		JRST	ERR		;NO, SO ERROR
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 53
KLDDT	MAC	 5-May-78 12:59		GO AND EXECUTE LOGIC                                                               SEQ 0045

  1460
  1461	011553	607 00 0 00 000001 	XEC:	TLNN	F,(QF)		;SKIP IF QUANTITY TYPED
  1462	011554	634 05 0 00 000005 		TDZA	T,T		;MAKE SURE COUNT IS ZERO
  1463	011555	607 05 0 00 777000 		TLNN	T,777000	;SKIP IF VALID INSTRUCTION
  1464	011556	254 00 0 00 011601 		JRST	$X		;GOTO SINGLE STEP EXECUTE ROUTINE
  1465	011557	202 05 0 00 016673 	XEC0:	MOVEM	T,TEM
  1466	011560	260 17 0 00 014263 		PUSHJ	P,CRF
  1467	011561	260 17 0 00 013001 		PUSHJ	P,INSRTB
  1468	011562	402 00 0 00 016600 		SETZM	SKPCT		;INIT SKIP COUNT
  1469	011563	265 05 0 00 012520 		JSP	T,RESTORE
  1470	011564	256 00 0 00 016673 		XCT	TEM
  1471	011565	350 00 0 00 016600 	XEC1:	 AOS SKPCT		;NOTE NOSKIP, SKIP, DOUBLE SKIP
  1472	011566	350 00 0 00 016600 		 AOS SKPCT
  1473	011567	264 00 0 00 016441 		JSR	SAVE		;SAVE CONTEXT
  1474	011570	260 17 0 00 013015 		 PUSHJ P,REMOVB		;REMOVE BRKPTS
  1475	011571	201 13 0 00 000003 		MOVEI	TT,3
  1476	011572	274 13 0 00 016600 		SUB	TT,SKPCT	;COMPUTE AMOUNT OF PC INCREMENT
  1477						IFE	FTDEC20,<
  1478	011573	307 13 0 00 000001 		CAIG	TT,1		;INSTRUCTION SKIPPED?
  1479	011574	254 00 0 00 010006 		JRST	DD1		;NO
  1480	011575	200 06 0 00 016151 		MOVE	W1,[ASCII "<SKP>"]	;MAKE SURE IT IS CLEAR
  1481	011576	260 17 0 00 014236 		PUSHJ	P,TEXT2		; THAT THIS WAS A SKIP
  1482	011577	260 17 0 00 014263 		PUSHJ	P,CRF		;TYPE 2 CR-LFEEDS
  1483	011600	254 00 0 00 010006 		JRST	DD1
  1484						>
  1485						IFN	FTDEC20,<
  1486						MOVEI	W1,"$"
  1487						PUSHJ	P,TEXT		;PRINT $ FOR EACH INCREMENT
  1488						SOJG	TT,.-2
  1489						JRST	DD1>
  1490						>
  1491
  1492						IFN	FTFILE,<
  1493					BCOM==<XEC==<GO==ERR>>
  1494						>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 54
KLDDT	MAC	 5-May-78 12:59		GO AND EXECUTE LOGIC                                                               SEQ 0046

  1495
  1496					SUBTTL	SINGLE STEP EXECUTE LOGIC
  1497
  1498						IFE	FTFILE,<
  1499
  1500					;$X IS A  FEATURE THAT OPERATES AS FOLLOWS:
  1501					;	$X OR N$X OR $$X OR N$$X, WHERE N .LT. 2^27, WILL DISPATCH TO
  1502					;	THIS CODE.  THE FOLLOWING ACTIONS WILL BE PERFORMED:
  1503					;
  1504					;   $X EXECUTE A SINGLE INSTRUCTION, THEN INCREMENT THE PC.  THE
  1505					;	OPERANDS TO THE INSTRUCTION WILL BE PRINTED OUT AS THEY
  1506					;	EXIST **AFTER** EXECUTION OF THE INSTRUCTION.  AN EXTRA
  1507					;	LINE FEED WILL BE PRINTED IF THE INSTRUCTION SKIPPED OR
  1508					;	JUMPED.  THE NEXT INSTRUCTION WILL THEN BE PRINTED.
  1509					;	$P WILL ALWAYS DO THE RIGHT THING AFTER ANY NUMBER OF $X'S.
  1510					;
  1511					;  N$X REPEAT THE $X CYCLE N TIMES.
  1512					;
  1513					; N$$X SAME AS N$X EXCEPT THAT ALL PRINTOUT IS SUPPRESSED FOR
  1514					;	ALL BUT THE LAST $X CYCLE.
  1515					;
  1516					;  $$X PERFORM A NON-PRINTING $X CYCLE UNTIL THE PC REACHES EITHER
  1517					;	.+1 OR .+2; I.E. UNTIL ONE OF THE NEXT 2 INSTRUCTIONS IS
  1518					;	EXECUTED.  THIS IS USEFUL FOR TREATING A SUBROUTINE CALL
  1519					;	AS A SINGLE INSTRUCTION FOR THE PURPOSES OF $X.
  1520
  1521
  1522					;FLAGS USED IN $X LOGIC ONLY
  1523
  1524			000001			FAC== 1			;SIGNALS AC TO BE PRINTED
  1525			000002			DFAC== 2		;SIGNALS INST THAT USES 2 AC'S
  1526			000004			FLG== 4			;INST MODIFIES FLAGS (JRST,JFCL)
  1527			000010			IMM== 10		;SIGNALS IMMEDIATE MODE INST
  1528			000020			EA== 20			;SIGNALS MEMORY REFERENCE INST
  1529			000040			DEA== 40		;SIGNALS INST THAT REFERENCES 2 MEM LOCS
  1530			000100			FLA== 100		;SIGNALS FLOATING AC OPERAND
  1531			000200			FLE== 200		;SIGNALS FLOATING MEM OPERAND
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 55
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0047

  1532
  1533					;COME HERE FROM $X COMMAND, WITH T SET TO ZERO IF NO QUANTITY WAS
  1534					;   TYPED.
  1535
  1536	011601	202 05 0 00 016431 	$X:	MOVEM	T,XTEM		;STORE REPETITION COUNT
  1537	011602	327 05 0 00 011610 		JUMPG	T,$X00		;JUMP IF POSITIVE COUNT
  1538	011603	550 05 0 00 016501 		HRRZ	T,PROC0		;ZERO, FETCH CURRENT PC
  1539	011604	202 05 0 00 016434 		MOVEM	T,LOCSAV	;AND REMEMBER IT
  1540	011605	476 00 0 00 016431 		SETOM	XTEM		;SET REPETITION COUNT NEGATIVE
  1541	011606	607 00 0 00 010000 		TLNN	F,(CCF)		;$$X WITH NO ARG?
  1542	011607	213 00 0 00 016431 		MOVNS	XTEM		;NO, ONLY $X. TREAT AS 1$X
  1543	011610	260 17 0 00 014263 	$X00:	PUSHJ	P,CRF		;OUTPUT CRLF TO START
  1544
  1545					;HERE ON REPEATED $X CYCLES
  1546
  1547	011611	376 00 0 00 016431 	$X01:	SOSN	XTEM		;DECREMENT AND TEST COUNTER
  1548	011612	621 00 0 00 010000 		TLZ	F,(CCF)		;CLEAR $$ FLAG TO END REPETITIONS
  1549	011613	621 00 0 00 004041 		TLZ	F,(QF!CF!STF)	;TURN OFF QUANT, $, ! FLAGS
  1550	011614	202 00 0 00 016433 		MOVEM	F,FLAGS		;SAVE REGULAR DDT FLAGS
  1551	011615	551 05 0 00 000100 		HRRZI	T,100		;SETUP MAX XCT DEPTH
  1552	011616	552 05 0 00 016426 		HRRZM	T,XCTS
  1553	011617	550 02 0 00 016501 		HRRZ	R,PROC0		;FETCH ADR OF CURRENT INST
  1554	011620	306 02 0 00 011565 		CAIN	R,XEC1		;JUST HIT BREAKPOINT OR DID $X LAST?
  1555	011621	254 00 0 00 010166 		JRST	ERR		;NO, JUST ENTERED DDT, SO ERROR
  1556	011622	331 00 0 00 016431 		SKIPL	XTEM		;INDEFINITE $$X BEING EXECUTED?
  1557	011623	202 02 0 00 016434 		MOVEM	R,LOCSAV	;NO, REMEMBER OLD PC FOR THIS INST
  1558	011624	260 17 0 00 013164 	$X02:	PUSHJ	P,FETCH		;FETCH CURRENT INSTRUCTION
  1559	011625	254 00 0 00 010166 		 JRST ERR		;ERROR
  1560	011626	202 05 0 00 016424 	$XO3:	MOVEM	T,I.NST		;STORE CURRENT INSTRUCTION
  1561	011627	264 00 0 00 016504 		JSR	SWAP		;SWAP TO USER CONTEXT
  1562	011630	202 05 0 00 016435 		MOVEM	T,SAFETY	;SAVE T
  1563	011631	201 05 1 00 016424 		MOVEI	T,@I.NST	;COMPUTE EFFECTIVE ADR OF INST
  1564	011632	137 05 0 00 016152 		DPB	T,[POINT 23,I.NST,35]	;STORE COMPUTED ADR IN CURRENT INST
  1565	011633	552 05 0 00 016430 		HRRZM	T,I.NSTEA	;REMEMBER IT AGAIN
  1566	011634	200 05 0 00 016435 		MOVE	T,SAFETY	;RESTORE T
  1567	011635	264 00 0 00 016504 		JSR	SWAP		;SWAP BACK TO DDT CONTEXT
  1568	011636	135 06 0 00 016153 		LDB	W1,[POINT 4,I.NST,12]	;EXTRACT AC FIELD
  1569	011637	202 06 0 00 016427 		MOVEM	W1,I.NSTAC	;STORE IT AWAY
  1570	011640	205 05 0 00 777000 		MOVSI	T,777000	;MASK FOR OPCODE
  1571	011641	404 05 0 00 016424 		AND	T,I.NST		;FETCH OPCODE
  1572	011642	554 00 0 00 000005 		HLRZ	F,T		;SAVE IN RH FOR LATER
  1573	011643	313 05 0 05 011646 		CAMLE	T,$XTBL(T)	;IN RANGE OF CURRENT TABLE ENTRY?
  1574	011644	344 05 0 00 011643 		AOJA	T,.-1		;NO, KEEP SEARCHING
  1575	011645	254 00 1 05 011646 		JRST	@$XTBL(T)	;YES, DISPATCH
  1576
  1577						IFE	FTEXEC,<
  1578						MONUI== JUSTI		;IF USER DDT, TREAT MONITOR UUOS
  1579						MONUE== JUSTE		;  AS HARDWARE INSTRUCTIONS
  1580						MONUAI==SETI
  1581						MONUAE==SETEA
  1582						MONINI==ERR		;CANNOT TRACE INIT
  1583						>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 56
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0048

  1584
  1585					;OPCODE DISPATCH TABLE.
  1586					;   LH OF EACH ENTRY CONTAINS LARGEST OPCODE COVERED BY THAT ENTRY,
  1587					;   RH CONTAINS DISPATCH ADDRESS.
  1588
  1589	011646	403 00 0 00 012204 	$XTBL:	SETZB	SET		; 400-403  SETZX
  1590	011647	473 00 0 00 012215 		ORCBB	CHECKI		; 404-473  ALL LOGICAL EXCEPT SETX
  1591	011650	477 00 0 00 012204 		SETOB	SET		; 474-477  SETOX
  1592	011651	577 00 0 00 012200 		HLRES	CHEKIS		; 500-577  HALFWORD
  1593	011652	677 00 0 00 012167 		TSON	TESTS		; 600-677  TEST CLASS
  1594	011653	777000	012173			777000,,IOTS		; 700-777  I/O INSTRUCTIONS
  1595	011654	000000	010166			0 ,, ERR		;     000  ALWAYS ILLEGAL
  1596	011655	037000	011760			037000,,USRUUO		; 001-037  USER UUOS
  1597	011656	040 00 0 00 011750 		CALL	MONUAE		;     040  CALL
  1598	011657	041 00 0 00 011756 		INIT	MONINI		;     041  INIT
  1599	011660	047 00 0 00 011744 		CALLI	MONUAI		; 042-047  UNDEFINED AND CALLI
  1600	011661	051 00 0 00 011751 		TTCALL	MONUE		; 050-051  OPEN,TTCALL
  1601	011662	054000	011744			054000,,MONUAI		; 052-054  UNDEFINED
  1602	011663	057 00 0 00 011751 		OUT	MONUE		; 055-057  RENAME,IN,OUT
  1603	011664	061 00 0 00 011745 		STATO	MONUI		; 060-061  SETSTS,STATO
  1604	011665	062 00 0 00 011751 		GETSTS	MONUE		;     062  GETSTS
  1605	011666	065 00 0 00 011745 		OUTBUF	MONUI		; 063-065  STATZ,INBUF,OUTBUF
  1606	011667	067 00 0 00 011751 		OUTPUT	MONUE		; 066-067  INPUT,OUTPUT
  1607	011670	075 00 0 00 011745 		USETO	MONUI		; 070-075  CLOSE,RELEAS,MTAPE,UGETF,USETI,USETO
  1608	011671	077 00 0 00 011751 		ENTER	MONUE		; 076-077  LOOKUP,ENTER
  1609	011672	103000	012220			103000,,SETI		; 100-103  UNDEFINED
  1610	011673	104000	012221			104000,,DOIT		;     104  JSYS
  1611	011674	107000	012220			107000,,SETI		; 105-107  UNDEFINED
  1612	011675	113 00 0 00 012141 		DFDV	DFLOT		; 110-113  DFAD,DFSB,DFMP,DFDV		*** KI10
  1613	011676	117000	012220			117000,,SETI		; 114-117  UNDEFINED
  1614	011677	121 00 0 00 012142 		DMOVN	DMOV		; 120-121  DMOVE,DMOVN			*** KI10
  1615	011700	122 00 0 00 012144 		FIX	FXAFLE		;     122  FIX				*** KI10
  1616	011701	123000	012220			123000,,SETI		;     123  UNDEFINED
  1617	011702	125 00 0 00 012142 		DMOVNM	DMOV		; 124-125  DMOVEM,DMOVNM		*** KI10
  1618	011703	126 00 0 00 012144 		FIXR	FXAFLE		;     126  FIXR				*** KI10
  1619	011704	127 00 0 00 012145 		FLTR	FLAFXE		;     127  FLTR				*** KI10
  1620	011705	130 00 0 00 011770 		UFA	IUFA		;     130  UFA
  1621	011706	131 00 0 00 011771 		DFN	IDFN		;     131  DFN
  1622	011707	132 00 0 00 012105 		FSC	IFSC		;     132  FSC
  1623	011710	133 00 0 00 012164 		IBP	JUSTE		;     133  IBP
  1624	011711	137 00 0 00 012217 		DPB	SETEA		; 134-137  XLDB,XDPB
  1625	011712	177 00 0 00 011773 		FDVRB	FLOAT		; 140-177  FADXX,FSBXX,FMPXX,FDVXX
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 57
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0049

  1626
  1627					;CONTINUATION OF OPCODE DISPATCH TABLE.
  1628
  1629	011713	217 00 0 00 012200 		MOVMS	CHEKIS		; 200-217  MOVXX
  1630	011714	223 00 0 00 012215 		IMULB	CHECKI		; 220-223  IMULX
  1631	011715	237 00 0 00 012212 		DIVB	MULDIV		; 224-237  MULX,XDIVX
  1632	011716	242 00 0 00 012220 		LSH	SETI		; 240-242  ASH,ROT,LSH
  1633	011717	243 00 0 00 012147 		JFFO	IJFFO		;     243  JFFO
  1634	011720	246 00 0 00 012165 		LSHC	DBLI		; 244-246  ASHC,ROTC,LSHC
  1635	011721	247000	012220			247000,,SETI		;     247  UNDEFINED
  1636	011722	250 00 0 00 012217 		EXCH	SETEA		;     250  EXCH
  1637	011723	251 00 0 00 012220 		BLT	SETI		;     251  BLT
  1638	011724	253 00 0 00 012152 		AOBJN	IAOBJ		; 252-253  AOBJP,AOBJN
  1639	011725	254 00 0 00 012002 		JRST	IJRST		;     254  JRST
  1640	011726	255 00 0 00 012153 		JFCL	IJFCL		;     255  JFCL
  1641	011727	256 00 0 00 012044 		XCT	IIXCT		;     256  XCT
  1642	011730	257 00 0 00 012217 		MAP	SETEA		;     257  MAP				*** KI10
  1643	011731	260 00 0 00 012057 		PUSHJ	IIPUSHJ		;     260  PUSHJ
  1644	011732	262 00 0 00 012217 		POP	SETEA		; 261-262  PUSH,POP
  1645	011733	263 00 0 00 012071 		POPJ	IPOPJ		;     263  POPJ
  1646	011734	264 00 0 00 012113 		JSR	I.JSR		;     264  JSR
  1647	011735	265 00 0 00 012130 		JSP	I.JSP		;     265  JSP
  1648	011736	266 00 0 00 012107 		JSA	I.JSA		;     266  JSA
  1649	011737	267 00 0 00 012152 		JRA	IAOBJ		;     267  JRA
  1650	011740	277 00 0 00 012215 		SUBB	CHECKI		; 270-277  ADDX,SUBX
  1651	011741	307 00 0 00 012220 		CAIG	SETI		; 300-307  CAIXX
  1652	011742	317 00 0 00 012217 		CAMG	SETEA		; 310-317  CAMXX
  1653	011743	377 00 0 00 012150 		SOSG	JMPSKP		; 320-377  JUMPXX,SKIPXX,AOJXX,AOSXX,SOJXX,SOSXX
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 58
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0050

  1654
  1655					;MONITOR UUO HANDLER
  1656
  1657						IFN	FTEXEC,<
  1658	011744	661 00 0 00 000001 	MONUAI:	TLO	F,FAC		;REMEMBER TO PRINT AC
  1659	011745	335 00 0 00 016717 	MONUI:	SKPEXC			;SKIP IF EXEC MODE
  1660	011746	254 00 0 00 012176 		JRST	JUSTI		;USER MODE, TREAT UUO AS SINGLE INST
  1661	011747	254 00 0 00 011751 		JRST	MONUE		;EXEC MODE, TRACE THE UUO
  1662
  1663	011750	661 00 0 00 000001 	MONUAE:	TLO	F,FAC		;REMEMBER TO PRINT AC
  1664	011751	335 00 0 00 016717 	MONUE:	SKPEXC			;SKIP IF EXEC MODE
  1665	011752	254 00 0 00 012164 		JRST	JUSTE		;USER MODE, TREAT UUO AS SINGLE INST
  1666	011753	337 00 0 00 016720 		SKPKA			;CAN SIMULATE ON A KA
  1667	011754	254 00 0 00 010166 		JRST	ERR		;PUNT ON A KL OR KI
  1668	011755	254 00 0 00 011760 		JRST	USRUUO		;EXEC MODE, TRACE THE UUO
  1669
  1670	011756	335 00 0 00 016717 	MONINI:	SKPEXC			;SKIP IF EXEC MODE
  1671	011757	254 00 0 00 010166 		JRST	ERR		;USER MODE, CAN'T FOLLOW AN INIT
  1672									;EXEC MODE, TRACE NORMALLY
  1673						>
  1674					;USER UUO HANDLER
  1675
  1676	011760	201 02 0 00 000040 	USRUUO:	MOVEI	R,40		;SETUP JOBUUO
  1677	011761	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE REGULAR FLAGS
  1678	011762	200 05 0 00 016424 		MOVE	T,I.NST		;FETCH INST WITH EFF ADR COMPUTED
  1679	011763	260 17 0 00 013112 		PUSHJ	P,DEPMEM	;STORE USER UUO IN JOBUUO
  1680	011764	254 00 0 00 010166 		 JRST ERR		;ERROR
  1681	011765	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE $X FLAGS
  1682	011766	200 05 0 00 016154 		MOVE	T,[XCT 41]	;PRETEND INSTRUCTION WAS AN XCT
  1683	011767	254 00 0 00 011626 		JRST	$XO3
  1684
  1685					;INTERPRET UFA
  1686
  1687	011770	665 00 0 00 000302 	IUFA:	TLOA	F,FLA+FLE+DFAC	;REMEMBER FLTG PT, USES 2 AC'S
  1688
  1689					;INTERPRET DFN
  1690
  1691	011771	661 00 0 00 000300 	IDFN:	TLO	F,FLA!FLE	;DFN, REMEMBER AC AND E FLOAT
  1692	011772	254 00 0 00 012217 		JRST	SETEA
  1693
  1694					;INTERPRET FLOATING POINT INSTRUCTIONS
  1695
  1696	011773	405 00 0 00 007000 	FLOAT:	ANDI	F,7000		;FLOATING PT, GET MODE
  1697	011774	306 00 0 00 001000 		CAIN	F,1000		;LONG MODE?
  1698	011775	665 00 0 00 000002 		TLOA	F,DFAC		;YES, PRINT 2 AC'S
  1699	011776	302 00 0 00 005000 		CAIE	F,5000		;IMMEDIATE MODE?
  1700	011777	665 00 0 00 000321 		TLOA	F,FLA+FLE+FAC+EA	;NO, PRINT AC AND E BOTH FLOATING
  1701	012000	661 00 0 00 000311 	FLOATI:	TLO	F,FLA+FLE+FAC+IMM	;YES, PRINT AC AND E IMMEDIATE FLTG
  1702	012001	254 00 0 00 012221 		JRST	DOIT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 59
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0051

  1703
  1704					;INTERPRET JRST
  1705
  1706	012002	661 00 0 00 000010 	IJRST:	TLO	F,IMM		;REMEMBER TO PRINT E
  1707	012003	602 06 0 00 000002 		TRNE	W1,2		;IS INSTRUCTION JRSTF?
  1708	012004	661 00 0 00 000004 		TLO	F,FLG		;YES, REMEMBER TO PRINT FLAGS
  1709	012005	260 17 0 00 013164 	IJRST0:	PUSHJ	P,FETCH		;FETCH INST OR INDIRECT WORD
  1710	012006	254 00 0 00 010166 		 JRST ERR		;ERROR
  1711	012007	200 06 0 00 000005 		MOVE	W1,T		;COPY INTO W1
  1712	012010	135 02 0 00 016133 		LDB	R,[POINT 4,T,17]	;LOAD INDEX FIELD
  1713	012011	322 02 0 00 012016 		JUMPE	R,IJRST1	;JUMP IF NO INDEXING TO PERFORM
  1714	012012	200 05 0 02 016647 		MOVE	T,AC0(R)	;FETCH CONTENTS OF INDEX REGISTER
  1715	012013	621 05 0 00 000037 		TLZ	T,(Z @(17))	;CLEAR I AND X FIELDS IN INDEX REG
  1716	012014	271 05 0 06 000000 		ADDI	T,(W1)		;COMPUTE INDEXED ADDRESS
  1717	012015	621 05 0 00 000037 		TLZ	T,(Z @(17))	;CLEAR ANY OVERFLOW
  1718	012016	201 02 0 05 000000 	IJRST1:	MOVEI	R,(T)		;COPY RESULTING ADDRESS
  1719	012017	603 06 0 00 000020 		TLNE	W1,(@)		;INDIRECT?
  1720	012020	254 00 0 00 012005 		JRST	IJRST0		;YES, FOLLOW NEXT LEVEL OF INDIRECTION
  1721
  1722					;LH OF T NOW CONTAINS FLAGS THAT WILL BE RESTORED
  1723
  1724						IFN	FTEXEC!FTMON,<
  1725						IFN	FTEXEC,<	;DEC20 MONITOR DDT DOESN'T HAVE SKPEXC
  1726	012021	335 00 0 00 016717 		SKPEXC			;NOW IN EXEC MODE?
  1727	012022	254 00 0 00 012034 		JRST	IJRST3		;NO, USER MODE
  1728						>
  1729	012023	200 06 0 00 016427 		MOVE	W1,I.NSTAC	;YES, FETCH AC FIELD OF JRST INST
  1730	012024	602 06 0 00 000001 		TRNE	W1,1		;JUMP TO USER MODE?
  1731	012025	254 00 0 00 012031 		JRST	JRSPRC		;YES, CAN'T TRACE. GO DO $P
  1732	012026	602 06 0 00 000002 		TRNE	W1,2		;JRSTF?
  1733	012027	607 05 0 00 010000 		TLNN	T,(1B5)		;YES, GOING TO ENTER USER MODE?
  1734	012030	254 00 0 00 012034 		JRST	IJRST3		;NO TO EITHER, HANDLE NORMALLY
  1735	012031	250 00 0 00 016433 	JRSPRC:	EXCH	F,FLAGS		; $X OPERATION IMPOSSIBLE. RESTORE FLAGS
  1736	012032	621 00 0 00 010001 		TLZ	F,(QF+CCF)	;CLEAR QUANT AND $$ FLAGS
  1737	012033	254 00 0 00 012650 		JRST	PROCD1		;AND EXECUTE $P TO GO INTO USER MODE
  1738						>
  1739
  1740	012034	541 05 0 00 012232 	IJRST3:	HRRI	T,NOSKIP	;MODIFY THE JRST EFFECTIVE ADR
  1741	012035	202 05 0 00 016473 		MOVEM	T,BCOM		;STORE NEW FLAGS,,NOSKIP
  1742	012036	200 05 0 00 016424 		MOVE	T,I.NST		;FETCH INST AGAIN
  1743	012037	542 05 0 00 016501 		HRRM	T,PROC0		;STORE EFF ADR AS NEW PC
  1744	012040	541 05 0 00 016473 		HRRI	T,BCOM		;TURN INTO JRST @BCOM
  1745	012041	661 05 0 00 000020 		TLO	T,(@)
  1746	012042	202 05 0 00 016424 		MOVEM	T,I.NST		;AND STORE
  1747	012043	254 00 0 00 012221 		JRST	DOIT		;DO IT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 60
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0052

  1748
  1749					;INTERPRET XCT
  1750
  1751	012044				IIXCT:
  1752						IFN	FTEXEC!FTMON,<
  1753	012044	137 06 0 00 016155 		DPB	W1,[POINT 4,I.XCT,12]>	; USE IN XCT PAGED
  1754	012045	200 00 0 00 016433 		MOVE	F,FLAGS		;GET BACK NORMAL DDT FLAGS
  1755	012046	377 00 0 00 016426 		SOSG	XCTS		;CHECK XCT COUNTER
  1756	012047	254 00 0 00 010166 		JRST	ERR		;ERROR - DEPTH EXCEEDED
  1757	012050	603 00 0 00 010000 		TLNE	F,(CCF)		;$$X?
  1758	012051	254 00 0 00 012055 		JRST	IIXCT1		;YES, DON'T PRINT ANYTHING
  1759	012052	550 05 0 00 016430 		HRRZ	T,I.NSTEA	;GET EFF ADR OF XCT
  1760	012053	260 17 0 00 012355 		PUSHJ	P,PINST		;PRINT INST BEING XCT'ED
  1761	012054	260 17 0 00 014263 		PUSHJ	P,CRF		;OUTPUT CRLF AFTER INST
  1762	012055	550 02 0 00 016430 	IIXCT1:	HRRZ	R,I.NSTEA	;GET EFF ADR OF XCT AGAIN
  1763	012056	254 00 0 00 011624 		JRST	$X02		;PROCESS EXECUTED INST
  1764
  1765					;INTERPRET PUSHJ
  1766
  1767	012057	350 05 0 00 016501 	IIPUSHJ:AOS T,PROC0		;GET CURRENT PC +1
  1768	012060	500 05 0 00 016603 		HLL	T,SAVPI		;PUT FLAGS IN LH
  1769	012061	202 05 0 00 016432 		MOVEM	T,I.NSTPC	;STORE AWAY TO BE STACKED
  1770	012062	205 05 0 00 020000 		MOVSI	T,(1B4)		;CLEAR BIS FLAG IN NEW PC WORD
  1771	012063	412 05 0 00 016603 		ANDCAM	T,SAVPI
  1772	012064	370 05 0 00 016424 		SOS	T,I.NST		;GET EFF ADR OF PUSHJ, -1 TO FOOL DOIT
  1773	012065	542 05 0 00 016501 		HRRM	T,PROC0		;STORE NEW PC -1
  1774	012066	515 05 0 00 001000 		HRLZI	T,(<PUSH>-<PUSHJ>)	;WANT TO TURN PUSHJ INTO A PUSH
  1775	012067	137 05 0 00 016156 		DPB	T,[POINT 5,I.NST,17]	;CLEAR I AND AC FIELD
  1776	012070	254 00 0 00 012101 		JRST	IPOPJ2		;REST OF CODE COMMON WITH POPJ
  1777
  1778					;INTERPRET POPJ
  1779
  1780	012071	250 00 0 00 016433 	IPOPJ:	EXCH	F,FLAGS		;POPJ, RESTORE NORMAL DDT FLAGS
  1781	012072	550 02 0 06 016647 		HRRZ	R,AC0(W1)	;FETCH CONTENTS OF CORRECT USER AC
  1782	012073	260 17 0 00 013164 		PUSHJ	P,FETCH		;FETCH PCWORD IT POINTS TO
  1783	012074	254 00 0 00 010166 		 JRST ERR		;ERROR
  1784	012075	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE $X FLAGS
  1785	012076	541 05 0 05 777777 		HRRI	T,-1(T)		;DECREMENT PC TO FOOL CODE AT DOIT
  1786	012077	542 05 0 00 016501 		HRRM	T,PROC0		;STORE AS CURRENT PC
  1787	012100	515 05 0 00 777000 		HRLZI	T,(<POP>-<POPJ>)	;SETUP TO TURN POPJ INTO POP
  1788
  1789					;COMMON CODE FOR PUSHJ, POPJ
  1790
  1791	012101	272 05 0 00 016424 	IPOPJ2:	ADDM	T,I.NST		;TURN PUSHJ INTO PUSH OR POPJ INTO POP
  1792	012102	551 05 0 00 016432 		HRRZI	T,I.NSTPC	;SETUP ADR OF PC WORD FOR PUSHJ
  1793	012103	542 05 0 00 016424 		HRRM	T,I.NST
  1794	012104	665 00 0 00 000001 		TLOA	F,FAC		;REMEMBER TO PRINT AC
  1795
  1796					;INTERPRET FSC
  1797
  1798	012105	661 00 0 00 000111 	IFSC:	TLO	F,FAC+FLA+IMM	;FLOATING AC, FIXED IMMEDIATE E
  1799	012106	254 00 0 00 012221 		JRST	DOIT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 61
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0053

  1800
  1801					;INTERPRET JSA
  1802
  1803	012107	350 05 0 00 016501 	I.JSA:	AOS	T,PROC0		;JSA, SETUP RETURN PC
  1804	012110	504 05 0 00 016430 		HRL	T,I.NSTEA	;PUT EFF ADR IN LH LIKE JSA DOES
  1805	012111	250 05 0 06 016647 		EXCH	T,AC0(W1)	;STORE IN USER AC, GET OLD CONTENTS
  1806	012112	254 00 0 00 012120 		JRST	I.JSR2		;STORE OLD CONTENTS LIKE JSR, THEN JUMP
  1807
  1808					;INTERPRET JSR
  1809
  1810	012113	350 05 0 00 016501 	I.JSR:	AOS	T,PROC0		;JSR, GET CURRENT PC
  1811	012114	500 05 0 00 016603 		HLL	T,SAVPI		;SETUP LH OF PC WORD
  1812	012115	661 00 0 00 000001 		TLO	F,FAC		;REMEMBER NOT TO PRINT AC FIELD
  1813	012116	205 06 0 00 020000 		MOVSI	W1,(1B4)	;CLEAR BIS FLAG IN NEW PC WORD
  1814	012117	412 06 0 00 016603 		ANDCAM	W1,SAVPI
  1815	012120	661 00 0 00 000020 	I.JSR2:	TLO	F,EA		;PRINT E NORMALLY
  1816	012121	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE NORMAL DDT FLAGS
  1817	012122	550 02 0 00 016430 		HRRZ	R,I.NSTEA	;FETCH EFF ADR OF JSR OR JSA
  1818	012123	260 17 0 00 013112 		PUSHJ	P,DEPMEM	;STORE PC WORD
  1819	012124	254 00 0 00 010166 		 JRST ERR		;ERROR
  1820	012125	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE $X FLAGS
  1821	012126	550 05 0 00 016430 		HRRZ	T,I.NSTEA	;GET EFF ADR AGAIN
  1822	012127	344 05 0 00 012136 		AOJA	T,I.JSR4	;INC PAST STORED PC WORD
  1823
  1824					;INTERPRET JSP
  1825
  1826	012130	350 05 0 00 016501 	I.JSP:	AOS	T,PROC0		;JSP, SETUP RETURN PC
  1827	012131	500 05 0 00 016603 		HLL	T,SAVPI		;SETUP LH OF PC WORD
  1828	012132	202 05 0 06 016647 		MOVEM	T,AC0(W1)	;STORE IN USER AC
  1829	012133	205 05 0 00 020000 		MOVSI	T,(1B4)		;CLEAR BIS FLAG IN NEW PC WORD
  1830	012134	412 05 0 00 016603 		ANDCAM	T,SAVPI
  1831	012135	550 05 0 00 016430 		HRRZ	T,I.NSTEA	;GET BACK EFF ADR
  1832	012136	542 05 0 00 016501 	I.JSR4:	HRRM	T,PROC0		;STORE NEW PC
  1833	012137	641 00 0 00 000001 		TLC	F,FAC		;REMEMBER TO PRINT AC
  1834	012140	254 00 0 00 012235 		JRST	TELL		;GO PERFORM PRINTOUT
  1835
  1836
  1837					;INTERPRET KI10 INSTRUCTIONS
  1838
  1839	012141	661 00 0 00 000300 	DFLOT:	TLO	F,FLA+FLE	;REMEMBER THAT AC AND E ARE FLOATING
  1840	012142	661 00 0 00 000042 	DMOV:	TLO	F,DFAC+DEA	;REMEMBER AC AND E BOTH DOUBLE
  1841	012143	254 00 0 00 012217 		JRST	SETEA
  1842
  1843	012144	665 00 0 00 000200 	FXAFLE:	TLOA	F,FLE		;REMEMBER THAT E FLOATS (FIX,FIXR)
  1844	012145	661 00 0 00 000100 	FLAFXE:	TLO	F,FLA		;REMEMBER THAT AC FLAOATS (FLTR)
  1845	012146	254 00 0 00 012217 		JRST	SETEA
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 62
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0054

  1846
  1847					;INTERPRET JFFO
  1848
  1849	012147	661 00 0 00 000002 	IJFFO:	TLO	F,DFAC		;REMEMBER JFFO USES 2 AC'S
  1850
  1851					;INTERPRET JUMP AND SKIP INSTRUCTIONS
  1852
  1853	012150	602 00 0 00 010000 	JMPSKP:	TRNE	F,10000		;JUMP/SKIP, WHICH IS IT?
  1854	012151	254 00 0 00 012163 		JRST	SKP		;SKIP CLASS
  1855
  1856					;INTERPRET AOBJN AND AOBJP
  1857
  1858	012152	665 00 0 00 000011 	IAOBJ:	TLOA	F,FAC+IMM	;HANDLE AS IMMEDIATE MODE INST WITH AC
  1859
  1860					;INTERPRET JFCL
  1861
  1862	012153	661 00 0 00 000004 	IJFCL:	TLO	F,FLG		;REMEMBER TO PRINT FLAGS
  1863	012154	201 05 0 00 012157 		MOVEI	T,JMP		;JUMP CLASS OR AOBJ, COME BACK TO $X
  1864	012155	542 05 0 00 016424 		HRRM	T,I.NST		;STORE MODIFIED INST
  1865	012156	254 00 0 00 012221 		JRST	DOIT		;GO EXECUTE CONDITIONAL INST
  1866
  1867					;HERE AFTER EXECUTING CONDITIONAL JUMP INSTRUCTION THAT ACTUALLY
  1868					;   DOES JUMP
  1869
  1870	012157	250 05 0 00 016430 	JMP:	EXCH	T,I.NSTEA	;SAVE T, GET EFF ADR OF JUMP
  1871	012160	542 05 0 00 016501 		HRRM	T,PROC0		;STORE EFF ADR AS NEW PC
  1872	012161	250 05 0 00 016430 		EXCH	T,I.NSTEA
  1873	012162	254 00 0 00 012232 		JRST	NOSKIP		;NOW DO PRINTOUT
  1874
  1875					;HERE FOR ALL SKIP INSTRUCTIONS
  1876
  1877	012163	326 06 0 00 012217 	SKP:	JUMPN	W1,SETEA	;SKIP CLASS - AC FIELD ZERO?
  1878	012164	665 00 0 00 000020 	JUSTE:	TLOA	F,EA		;YES, JUST PRINT E
  1879
  1880					;INTERPRET SHIFT COMBINED INSTRUCTIONS
  1881
  1882	012165	661 00 0 00 000013 	DBLI:	TLO	F,FAC+DFAC+IMM	;REMEMBER 2 AC'S USED, IMMEDIATE
  1883	012166	254 00 0 00 012221 		JRST	DOIT		;EXECUTE NORMALLY
  1884
  1885					;INTERPRET TEST CLASS INSTRUCTIONS
  1886
  1887	012167	606 00 0 00 010000 	TESTS:	TRNN	F,10000		;SKIP ON TD OR TS BUT NOT ON TR OR TL
  1888	012170	665 00 0 00 000011 		TLOA	F,FAC+IMM	;IMMEDIATE MODE
  1889	012171	661 00 0 00 000021 		TLO	F,FAC+EA	;NORMAL MODE
  1890	012172	254 00 0 00 012221 		JRST	DOIT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 63
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0055

  1891
  1892					;I/O INSTRUCTIONS
  1893
  1894	012173	602 06 0 00 000004 	IOTS:	TRNE	W1,4		;SKIP IF BLKI,DATAI,BLKO,DATAO
  1895	012174	306 06 0 00 000005 		CAIN	W1,5		;SKIP IF NOT CONI
  1896	012175	665 00 0 00 000020 		TLOA	F,EA		;MEM REF INSTRUCTION
  1897	012176	661 00 0 00 000010 	JUSTI:	TLO	F,IMM		;IMMEDIATE INST
  1898	012177	254 00 0 00 012221 		JRST	DOIT
  1899
  1900					;ALL PATHS CONVERGE HERE
  1901
  1902	012200	640 00 0 00 003000 	CHEKIS:	TRC	F,3000		;HERE TO TEST FOR IMMEDIATE OR SELF MODE
  1903	012201	642 00 0 00 003000 		TRCE	F,3000		;SKIP IF SELF MODE
  1904	012202	254 00 0 00 012215 		JRST	CHECKI		;NO, CHECK IMMEDIATE
  1905	012203	254 00 0 00 012163 		JRST	SKP		;YES, GO TEST FOR NONZERO AC FIELD
  1906	012204	405 00 0 00 003000 	SET:	ANDI	F,3000		;HERE FOR SETZX,SETOX
  1907	012205	302 00 0 00 002000 		CAIE	F,2000		;SETZM,SETOM?
  1908	012206	661 00 0 00 000001 		TLO	F,FAC		;NO, AC IS ALWAYS AFFECTED
  1909	012207	602 00 0 00 002000 		TRNE	F,2000		;SETZM,SETZB,SETOM,SETOB?
  1910	012210	661 00 0 00 000020 		TLO	F,EA		;YES, MEM IS ALWAYS AFFECTED
  1911	012211	254 00 0 00 012221 		JRST	DOIT
  1912
  1913					;FIXED POINT MULTIPLY AND DIVIDE (NOT INCLUDING IMULX)
  1914
  1915	012212	405 00 0 00 003000 	MULDIV:	ANDI	F,3000		;MASK MODE BITS
  1916	012213	302 00 0 00 002000 		CAIE	F,2000		;TO MEMORY ONLY?
  1917	012214	661 00 0 00 000002 		TLO	F,DFAC		;NO, INST USES 2 AC'S
  1918	012215	602 00 0 00 001000 	CHECKI:	TRNE	F,1000		;TEST FOR IMMEDIATE MODE INST
  1919	012216	602 00 0 00 002000 		TRNE	F,2000
  1920	012217	665 00 0 00 000021 	SETEA:	TLOA	F,FAC+EA	;MEM REF INSTRUCTION
  1921	012220	661 00 0 00 000011 	SETI:	TLO	F,FAC+IMM	;IMMEDIATE MODE INSTRUCTION
  1922	012221	250 00 0 00 016433 	DOIT:	EXCH	F,FLAGS		;RESTORE NORMAL DDT FLAGS
  1923	012222	260 17 0 00 014665 		PUSHJ	P,TTYLEV	;RESTORE STATUS OF CTY (EXEC MODE)
  1924	012223	264 00 0 00 016504 		JSR	SWAP		;SWAP TO USER CONTEXT
  1925	012224	256 00 0 00 016423 		XCT	I.XCT		;EXECUTE THE INSTRUCTION (IF IN EXEC MODE
  1926									; ON A KI10 THIS MAY BE EXECUTIVE XCT)
  1927	012225	254 00 0 00 012231 		 JRST IXS1		;NO SKIP, INCREMENT PC ONCE
  1928	012226	254 00 0 00 012230 		 JRST IXS2		;SKIP, INCREMENT PC TWICE
  1929	012227	350 00 0 00 016501 		AOS	PROC0		;DOUBLE SKIP, INCREMENT PC THRICE
  1930	012230	350 00 0 00 016501 	IXS2:	AOS	PROC0
  1931	012231	350 00 0 00 016501 	IXS1:	AOS	PROC0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 64
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0056

  1932
  1933					;HERE AFTER SIMULATING OR EXECUTING INSTRUCTION.
  1934					;  PERFORM REQUIRED PRINTOUT.
  1935
  1936	012232	264 00 0 00 016504 	NOSKIP:	JSR	SWAP		;RESTORE DDT CONTEXT
  1937	012233	260 17 0 00 014613 		PUSHJ	P,TTYRET	;RESTORE DDT TTY MODES
  1938	012234	254 00 0 00 012236 		JRST	.+2
  1939	012235	250 00 0 00 016433 	TELL:	EXCH	F,FLAGS		;GET DDT'S FLAGS
  1940						IFN	FTEXEC!FTMON,<
  1941	012236	201 05 0 00 000000 		MOVEI	T,0		;CLEAR THE AC FIELD OF I.XCT
  1942	012237	137 05 0 00 016155 		DPB	T,[POINT 4,I.XCT,12]	;SO NEXT INSTRUCTION HAPPENS OK
  1943						>
  1944	012240	603 00 0 00 010000 		TLNE	F,(CCF)		;IF $$X, DON'T PRINT ANYTHING
  1945	012241	254 00 0 00 012270 		JRST	NXTIT
  1946	012242	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE $X'S FLAGS
  1947	012243	261 17 0 00 000010 		PUSH	P,SCH		;SAVE CURRENT OUTPUT MODE
  1948	012244	603 00 0 00 000100 		TLNE	F,FLA		;FLOATING AC?
  1949	012245	201 10 0 00 014123 		MOVEI	SCH,TFLOT	;YES, SETUP TO OUTPUT IN FLOATING PT
  1950	012246	603 00 0 00 000001 		TLNE	F,FAC		;AC TO BE PRINTED?
  1951	012247	260 17 0 00 012330 		PUSHJ	P,FAC0		;YES, DO IT
  1952	012250	603 00 0 00 000002 		TLNE	F,DFAC		;INST USE 2 AC'S?
  1953	012251	260 17 0 00 012326 		PUSHJ	P,DBL0		;YES, PRINT LOW-ORDER AC
  1954	012252	603 00 0 00 000004 		TLNE	F,FLG		;INSTRUCTION ACCESS THE FLAGS?
  1955	012253	260 17 0 00 012332 		PUSHJ	P,FLG0		;YES, PRINT FLAGS
  1956	012254	200 10 0 17 000000 		MOVE	SCH,(P)		;RESTORE OLD MODE
  1957	012255	603 00 0 00 000200 		TLNE	F,FLE		;FLOATING MEMORY OPERAND?
  1958	012256	201 10 0 00 014123 		MOVEI	SCH,TFLOT	;YES, SETUP FLTG OUTPUT
  1959	012257	603 00 0 00 000010 		TLNE	F,IMM		;IMMEDIATE MODE?
  1960	012260	260 17 0 00 012335 		PUSHJ	P,IMM0		;YES, JUST PRINT E
  1961	012261	603 00 0 00 000020 		TLNE	F,EA		;MEM REF INST?
  1962	012262	260 17 0 00 012345 		PUSHJ	P,EA0		;YES, PRINT C(E)
  1963	012263	603 00 0 00 000040 		TLNE	F,DEA		;DOUBLE-WORD MEM OPERAND?
  1964	012264	260 17 0 00 012344 		PUSHJ	P,DEA0		;YES, OUTPUT 2ND WORD
  1965	012265	262 17 0 00 000010 		POP	P,SCH		;RESTORE CURRENT OUTPUT MODE
  1966	012266	250 00 0 00 016433 		EXCH	F,FLAGS		;RESTORE DDT FLAGS
  1967	012267	260 17 0 00 014263 		PUSHJ	P,CRF		;OUTPUT CRLF
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 65
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0057

  1968
  1969					;NOW TEST WHETHER TO CONTINUE, AND PRINT NEXT INST IF REQUIRED.
  1970
  1971	012270	550 05 0 00 016501 	NXTIT:	HRRZ	T,PROC0		;FETCH NEW PC
  1972	012271	201 06 0 05 000001 		MOVEI	W1,1(T)		;COMPUTE PC+1
  1973	012272	552 06 0 00 016473 		HRRZM	W1,BCOM		;STORE FOR $P
  1974	012273	550 06 0 00 016434 		HRRZ	W1,LOCSAV	;FETCH OLD PC
  1975	012274	331 00 0 00 016431 		SKIPL	XTEM		;INDEFINITE $$X IN PROGRESS?
  1976	012275	254 00 0 00 012301 		JRST	NXT0		;NO
  1977	012276	302 05 0 06 000001 		CAIE	T,1(W1)		;YES, ARE WE NOW AT OLD PC +1?
  1978	012277	306 05 0 06 000002 		CAIN	T,2(W1)		;  OR +2?
  1979	012300	254 00 0 00 012303 		JRST	$XQUIT		;YES, STOP ITERATION NOW
  1980	012301	260 17 0 00 014572 	NXT0:	PUSHJ	P,LISTEN	;NO, HAS USER TYPED ANYTHING?
  1981	012302	254 00 0 00 012305 		 JRST NXT1		;NO, CONTINUE
  1982	012303	402 00 0 00 016431 	$XQUIT:	SETZM	XTEM		;YES, STOP ITERATION BY ZEROING COUNTER
  1983	012304	621 00 0 00 010000 		TLZ	F,(CCF)		;  AND CLEARING CONTROL FLAG
  1984	012305	603 00 0 00 010000 	NXT1:	TLNE	F,(CCF)		;$$ STILL IN EFFECT?
  1985	012306	254 00 0 00 012323 		JRST	NXT2		;YES, DON'T PRINT ANYTHING
  1986	012307	550 05 0 00 016501 		HRRZ	T,PROC0		;NO, GET CURRENT PC AGAIN
  1987	012310	306 05 0 06 000001 		CAIN	T,1(W1)		;DOES IT EQUAL OLD PC +1?
  1988	012311	254 00 0 00 012317 		JRST	NXT1A		;YES--JUST CONTINUE
  1989	012312	306 05 0 06 000002 		CAIN	T,2(W1)		;SKIP OR JUMP
  1990	012313	334 06 0 00 016151 		SKIPA	W1,[ASCII "<SKP>"]	;SKIP
  1991	012314	200 06 0 00 016157 		MOVE	W1,[ASCII "<JMP>"]	;JUMP
  1992	012315	260 17 0 00 014236 		PUSHJ	P,TEXT2		;SAY SKIP OR JUMP
  1993	012316	260 17 0 00 014263 		PUSHJ	P,CRF		;ADD CRLF
  1994	012317	550 05 0 00 016501 	NXT1A:	HRRZ	T,PROC0		;FETCH CURRENT PC AGAIN
  1995	012320	260 17 0 00 012355 		PUSHJ	P,PINST		;PRINT INSTRUCTION ABOUT TO BE EXECUTED
  1996	012321	332 00 0 00 016431 		SKIPE	XTEM		;ARE WE STILL LOOPING?
  1997	012322	260 17 0 00 014263 		PUSHJ	P,CRF		;YES, PRINT CRLF AFTER INST
  1998	012323	332 00 0 00 016431 	NXT2:	SKIPE	XTEM		;SKIP IF REPEAT COUNTER IS ZERO
  1999	012324	254 00 0 00 011611 		JRST	$X01		;NONZERO, REPEAT $X CYCLE AGAIN
  2000	012325	254 00 0 00 014644 		JRST	TTYCLR		;ZERO, FLUSH ANY WAITING INPUT CHARACTERS
  2001									;   AND RETURN FROM $X INSTRUCTION
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 66
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0058

  2002
  2003					;OUTPUT ROUTINES
  2004
  2005					;ROUTINE TO PRINT SECOND ACCUMULATOR
  2006
  2007	012326	350 05 0 00 016427 	DBL0:	AOS	T,I.NSTAC	;INCREMENT AC NUMBER
  2008	012327	624 05 0 00 777760 		TRZA	T,777760	;ENSURE 17 WRAPS AROUND TO 0
  2009
  2010					;ROUTINE TO PRINT CONTENTS OF ACCUMULATOR
  2011
  2012	012330	200 05 0 00 016427 	FAC0:	MOVE	T,I.NSTAC	;FETCH AC NUMBER
  2013	012331	254 00 0 00 012346 		JRST	EA2
  2014
  2015					;ROUTINE TO PRINT THE FLAGS
  2016
  2017	012332	260 17 0 00 014266 	FLG0:	PUSHJ	P,LCT		;PRINT TAB
  2018	012333	554 05 0 00 016603 		HLRZ	T,SAVPI		;GET LH OF PC WORD
  2019	012334	254 00 0 00 012341 		JRST	IMM1		;PRINT FLAGS
  2020
  2021					;ROUTINE TO PRINT JUST E FOR AN IMMEDIATE MODE INSTRUCTION
  2022
  2023	012335	260 17 0 00 014266 	IMM0:	PUSHJ	P,LCT		;PRINT TAB
  2024	012336	550 05 0 00 016430 		HRRZ	T,I.NSTEA	;FETCH E
  2025	012337	603 00 0 00 000200 		TLNE	F,FLE		;FLTG PT MEM OPERAND?
  2026	012340	204 05 0 00 000005 		MOVS	T,T		;YES, IMMEDIATE SWAPS HALVES
  2027	012341	250 00 0 00 016433 	IMM1:	EXCH	F,FLAGS		;RESTORE DDT FLAGS
  2028	012342	260 17 0 00 013466 		PUSHJ	P,CONSYM	;OUTPUT CONTENTS OF T
  2029	012343	254 00 0 00 012353 		JRST	EA6		;RESTORE $X FLAGS AND RETURN
  2030
  2031					;ROUTINE TO PRINT 2ND MEMORY OPERAND
  2032
  2033	012344	350 00 0 00 016430 	DEA0:	AOS	I.NSTEA		;INC TO ADR OF 2ND OPERAND
  2034
  2035					;ROUTINE TO PRINT MEMORY OPERAND
  2036
  2037	012345	200 05 0 00 016430 	EA0:	MOVE	T,I.NSTEA	;FETCH ADR OF MEM OPERAND
  2038	012346	250 00 0 00 016433 	EA2:	EXCH	F,FLAGS		;HERE FROM DBL0,FAC0
  2039	012347	261 17 0 00 000005 		PUSH	P,T		;SAVE ARG
  2040	012350	260 17 0 00 014266 		PUSHJ	P,LCT		;OUTPUT TAB
  2041	012351	262 17 0 00 000005 		POP	P,T		;RESTORE ADR OF LOC TO BE PRINTED
  2042	012352	260 17 0 00 011132 		PUSHJ	P,LI1		;PRINT ADR/ CONTENTS
  2043	012353	250 00 0 00 016433 	EA6:	EXCH	F,FLAGS		;RESTORE $X FLAGS
  2044	012354	263 17 0 00 000000 		POPJ	P,
  2045
  2046					;ROUTINE TO PRINT INSTRUCTION ALWAYS IN SYMBOLIC DESPITE CURRENT MODE
  2047
  2048	012355	261 17 0 00 000010 	PINST:	PUSH	P,SCH		;SAVE CURRENT OUTPUT MODE
  2049	012356	201 10 0 00 013473 		MOVEI	SCH,PIN		;SET TO PRINT SYMBOLIC INST MODE
  2050	012357	260 17 0 00 011132 		PUSHJ	P,LI1		;OUTPUT INST
  2051	012360	262 17 0 00 000010 		POP	P,SCH		;RESTORE CURRENT MODE
  2052	012361	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 67
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0059

  2053
  2054					;ROUTINE TO SWAP BETWEEN DDT AND USER CONTEXTS.
  2055					;   AC'S AND FLAGS ARE SWAPPED, BUT BREAKPOINTS AND OTHER STUFF
  2056					;   ARE NOT TOUCHED, SINCE CONTROL IS EXPECTED TO RETURN TO DDT SOON.
  2057
  2058	012362	250 00 0 00 016647 	SWAPG:	EXCH	0,AC0		;SWAP AC 0
  2059	012363	202 00 0 00 016425 		MOVEM	0,SAV0		;SAVE 0 FOR WORK
  2060	012364	510 00 0 00 016504 		HLLZ	0,SWAP		;GET CURRENT FLAGS
  2061	012365	544 00 0 00 016603 		HLR	0,SAVPI		;GET SAVED FLAGS
  2062	012366	506 00 0 00 016504 		HRLM	0,SWAP		;SWITCH FLAGS
  2063	012367	502 00 0 00 016603 		HLLM	0,SAVPI
  2064	012370	200 00 0 00 016160 		MOVE	0,[EXCH 1,AC0+1]	;SETUP INST FOR SWAPPING AC'S
  2065	012371	256 00 0 00 000000 	SWAPL:	XCT	0		;SWAP AN AC
  2066	012372	270 00 0 00 016161 		ADD	0,[Z 1,1]	;INC AC AND MEM FIELDS
  2067	012373	607 00 0 00 001000 		TLNN	0,1000		;AC 20 REACHED?
  2068	012374	254 00 0 00 012371 		JRST	SWAPL		;NO, LOOP
  2069	012375	200 00 0 00 016425 		MOVE	0,SAV0		;YES, RESTORE SAVED AC
  2070	012376	254 02 1 00 016504 		JRSTF	@SWAP		;RETURN, RESTORING NEW FLAGS
  2071						>			;END IFE FTFILE
  2072
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 68
KLDDT	MAC	 5-May-78 12:59		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0060

  2073
  2074					SUBTTL ENTER AND LEAVE DDT LOGIC
  2075
  2076					;SKIPS IF CONTEXT ALREADY SAVED
  2077
  2078						IFE	FTFILE,<
  2079	012377				SAVEG:				;SAVE THE ACS AND PI SYSTEM
  2080						IFN	FTEXEC,<
  2081	012377	336 00 0 00 016614 		SKIPN	TRCON		;TRACE FACILITY IN USE?
  2082	012400	254 00 0 00 012403 		JRST	SAVEG1		;NO
  2083	012401	7 004 04 0 00 016615 		DATAI	PI,TRCDMP	;YES, DUMP CURRENT POINTER
  2084	012402	7 004 14 0 00 016056 		DATAO	PI,[0]		;TURN IT OFF
  2085	012403				SAVEG1:
  2086	012403	202 00 0 00 016673 		MOVEM	0,TEM
  2087	012404	402 00 0 00 016721 		SETZM	TOPS20
  2088	012405	265 00 0 00 012406 		JSP	0,.+1
  2089	012406	607 00 0 00 010000 		TLNN	0,(1B5)
  2090	012407	254 00 0 00 012415 		JRST	.+6
  2091	012410	200 00 0 00 016162 		MOVE	[112,,11]
  2092	012411	047 00 0 00 000041 		GETTAB
  2093	012412	310 00 0 00 000000 		CAM
  2094	012413	306 00 0 00 040000 		CAIN	40000
  2095	012414	476 00 0 00 016721 		SETOM	TOPS20
  2096	012415	200 00 0 00 016673 		MOVE	0,TEM
  2097	012416	202 05 0 00 016673 		MOVEM	T,TEM		;FREE AN AC
  2098					;	IFE	FTDEC20,<
  2099	012417	332 00 0 00 016721 		SKIPE	TOPS20
  2100	012420	254 00 0 00 012425 		JRST	SAVEG2
  2101	012421	265 05 0 00 012422 		JSP	T,.+1		;GET USR FLAG
  2102	012422	430 05 0 00 016603 		XOR	T,SAVPI		;COMPARE WITH OLD USR FLAG(LAST DDT EXIT)
  2103	012423	603 05 0 00 010000 		TLNE	T,(1B5)		;SAME?
  2104	012424	402 00 0 00 016672 		SETZM	SARS	;>		;NO, SAVE AC'S AND PC FOR EXIT
  2105									; SO EXEC/USER MODE FLOP RESTORED AS ENTERED
  2106	012425	265 05 0 00 012426 	SAVEG2:	JSP	T,.+1		;GET PC WORD AGAIN
  2107	012426	241 05 0 00 000005 		ROT	T,5		;ROTATE USER MODE BIT TO SIGN
  2108	012427	202 05 0 00 016717 		MOVEM	T,USRFLG	; AND SAVE IT
  2109	012430	200 05 0 00 016673 		MOVE	T,TEM		;RESTORE THE AC 
  2110						>			;END FTEXEC
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 69
KLDDT	MAC	 5-May-78 12:59		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0061

  2111					;NOW SAVE USER STATUSES AND MODES AND SETUP DDT MODES.  DON'T SAVE
  2112					;MODES IF ALREADY SAVED (I.E. WHEN REENTERING DDT), BUT DO SET DDT
  2113					;MODES IN CASE THEY WERE CHANGED.
  2114
  2115	012431	332 00 0 00 016672 		SKIPE	SARS		;ALREADY SAVED?
  2116	012432	350 00 0 00 016441 		AOS	SAVE		;YES, SKIP RETURN
  2117						IFN	FTEXEC,<
  2118	012433	335 00 0 00 016717 		SKPEXC
  2119	012434	254 00 0 00 012442 		JRST	SAV11
  2120	012435	332 00 0 00 016672 		SKIPE	SARS		;ALREADY SAVED?
  2121	012436	254 00 0 00 012441 		JRST	SAV3		;YES
  2122	012437	7 004 24 0 00 016603 		CONI	PI,SAVPI
  2123	012440	553 00 0 00 016604 		HRRZS	SAVPI+1
  2124	012441	7 004 20 1 00 016604 	SAV3:	CONO	PI, @SAVPI+1>
  2125	012442	332 00 0 00 016672 	SAV11:	SKIPE	SARS		;ALREADY SAVED?
  2126	012443	254 00 0 00 012451 		JRST	SAV5		;YES
  2127	012444	202 17 0 00 016666 		MOVEM	17,AC17		;SAVE ACS
  2128	012445	551 17 0 00 016647 		HRRZI	17,AC0
  2129	012446	251 17 0 00 016665 		BLT	17,AC0+16
  2130	012447	200 05 0 00 016441 		MOVE	T,SAVE		;SAVE PC FLAGS
  2131	012450	502 05 0 00 016603 		HLLM	T, SAVPI
  2132	012451	200 17 0 00 016050 	SAV5:	MOVE	P,[IOWD LPDL,PDL]	;SETUP STACK
  2133									; ..
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 70
KLDDT	MAC	 5-May-78 12:59		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0062

  2134
  2135					;IF EDDT, DETERMINE PROCESSOR
  2136					;TYPE.  USER DDT DOES NOT NEED TO KNOW PROCESSOR TYPE
  2137
  2138						IFN	FTEXEC,<
  2139	012452	211 05 0 00 000001 		MOVNI	T,1		;LOAD T WITH ALL ONES
  2140	012453	253 05 0 00 012454 		AOBJN	T,.+1		;ADD ONE TO BOTH HALFS
  2141	012454	202 05 0 00 016720 		MOVEM	T,KAFLG		;0 MEANS KI10; 1,,0 MEANS KA10
  2142	012455	400 05 0 00 000000 		SETZ	T,		;TEST FOR KL10
  2143	012456	251 05 0 00 000000 		BLT	T,0		;NOP BLT
  2144	012457	316 05 0 00 016163 		CAMN	T,[1,,1]	;KL WILL STORE POINTER AS 1,,1
  2145	012460	476 00 0 00 016720 		SETOM	KAFLG		;A KL10
  2146						IFE	FTDEC20,<
  2147	012461	332 00 0 00 016721 		SKIPE	TOPS20
  2148	012462	254 00 0 00 012501 		JRST	SAV20
  2149					;	HRRI	T,XJBSYM	;GET EXEC SYMBOL POINTER ADR
  2150					;	SKPEXC			;EXEC MODE?
  2151	012463	541 05 0 00 000000*		HRRI	T,.JBSYM	;NO, GET USER MODE SYM POINTER ADR
  2152	012464	542 05 0 00 016544 		HRRM	T,SYMP		; AND SAVE IT
  2153					;	HRRI	T,XJBUSY	;GET EXEC UNDEF SYM TABLE POINTER ADR
  2154					;	SKPEXC			;EXEC MODE?
  2155	012465	541 05 0 00 000000*		HRRI	T,.JBUSY	;NO, GET USER MODE UNDEF SYM POINTER ADR
  2156	012466	542 05 0 00 016545 		HRRM	T,USYMP		; AND SAVE RESULTING ADR
  2157	012467	335 00 0 00 016717 		SKPEXC
  2158	012470	254 00 0 00 012512 		JRST	SAV12		;TRANSFER IF IN USER MODE
  2159	012471	337 00 0 00 016720 		SKPKA			;IS THIS A KA10?
  2160	012472	254 00 0 00 012512 		JRST	SAV12		;NO--LEAVE APR ALONE
  2161	012473	7 000 24 0 00 000005 		CONI	T		;GET APR FLAGS
  2162	012474	602 05 0 00 010000 		TRNE	T,NXMKA		;TEST NXM FLAG AND
  2163	012475	661 05 0 00 400000 		TLO	T,(1B0)		;  MOVE IT TO BIT 0
  2164	012476	621 05 0 00 000037 		TLZ	T,37		;FLUSH I AND X SO INDIRECT WORKS
  2165	012477	202 05 0 00 016602 		MOVEM	T,SAVAPR	;SAVE STATE OF APR REGISTER
  2166	012500	254 00 0 00 012512 		JRST	SAV12
  2167						>>			;END IFN EDDT
  2168									; ..
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 71
KLDDT	MAC	 5-May-78 12:59		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0063

  2169
  2170					;SAVE STATE AND SETUP DDT MODES...
  2171
  2172					;	IFN	FTDEC20,<
  2173	012501	476 00 0 00 016611 	SAV20:	SETOM	LASTPG#		;FORGET LAST PAGE ACCESS
  2174						IFN	FTEXEC,<
  2175	012502	331 00 0 00 016717 		SKPUSR
  2176	012503	254 00 0 00 012512 		JRST	SAV2>
  2177	012504	205 05 0 00 400000 		MOVSI	T,(1B0)
  2178	012505	201 01 0 00 400000 		MOVEI	T1,.FHSLF
  2179	012506	104 00 0 00 000127 		SKPIR			;PSI SYSTEM ON?
  2180	012507	400 05 0 00 000000 		 SETZ T,		;NO
  2181	012510	336 00 0 00 016672 		SKIPN	SARS		;SKIP IF ALREADY HAVE SAVED STATUS
  2182	012511	202 05 0 00 016612 		MOVEM	T,SAVSTS#	;REMEMBER STATUS
  2183	012512				SAV2:	;>				;END IFN FTDEC20
  2184	012512	260 17 0 00 014613 	SAV12:	PUSHJ	P,TTYRET	;INITIALIZE TTY
  2185						REPEAT	0,<		;WAIT FOR 5.3 RELEASE FOR THIS TEST
  2186						IFN	FTYANK,<SKPEXC	;IF IN USER MODE, RETURNING FROM $G,$P
  2187						SKIPN	COMAND		;AND A COMMAND FILE WAS OPEN
  2188						JRST	SAV6
  2189						MOVEIT	T,CM		;MAKE SURE A RELEASE HASN'T BEEN DONE
  2190						CALLI	T,4		;DEVCHR
  2191						TRNN	T,200000	;DEVICE PAT STILL INITED?
  2192						SETZM	COMAND		;NO, DONT READ ANY MORE
  2193					SAV6:	>			;END IFN FTYANK
  2194						>			;END OF REPEAT 0 CONDITIONAL
  2195	012513	201 00 0 00 000000 		MOVEI	F,0		;INIT FLAG REGISTER
  2196	012514	476 00 0 00 016672 		SETOM	SARS		;FLAG PROTECTING SAVED REGISTERS
  2197	012515	200 05 0 00 016046 		MOVE	T,[XWD SCHM,SCH]
  2198	012516	251 05 0 00 000012 		BLT	T,ODF		;LOAD THE ACS WITH MODE SWITCHES
  2199	012517	254 00 1 00 016441 		JRST	@SAVE
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 72
KLDDT	MAC	 5-May-78 12:59		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0064

  2200
  2201	012520				RESTOR:				;RESTORE ACS AND PI SYSTEM
  2202	012520	542 05 0 00 016441 		HRRM	T,SAVE
  2203	012521	260 17 0 00 014665 		PUSHJ	P,TTYLEV	;RESTORE STATUS OF CONSOL TTY (EXEC MODE)
  2204	012522	200 05 0 00 016603 		MOVE	T,SAVPI
  2205	012523	621 05 0 00 010037 		TLZ	T,010037	;DON'T TRY TO RESTORE USER MODE FLAG
  2206	012524	502 05 0 00 016441 		HLLM	T, SAVE
  2207						IFN	FTEXEC,<
  2208	012525	335 00 0 00 016717 		SKPEXC
  2209	012526	254 00 0 00 012533 		JRST	RESTR2
  2210	012527	404 05 0 00 016604 		AND	T, SAVPI+1
  2211	012530	435 05 0 00 002000 		IORI	T, 2000		;TURN ON CHANNELS
  2212	012531	620 05 0 00 001000 		TRZ	T,1000		;MAKE SURE WE DON'T ASK FOR BOTH
  2213	012532	552 05 0 00 016603 		HRRZM	T, SAVPI
  2214						>			;END FTEXEC
  2215	012533	515 17 0 00 016647 	RESTR2:	HRLZI	17,AC0
  2216	012534	251 17 0 00 000017 		BLT	17,17
  2217	012535	402 00 0 00 016672 		SETZM	SARS
  2218						IFN	FTEXEC,<
  2219	012536	335 00 0 00 016717 		SKPEXC
  2220	012537	254 00 0 00 012545 		JRST	RESTR3		;TRANSFER IF IN USER MODE
  2221						IFE	FTDEC20,<
  2222	012540	335 00 0 00 016602 		SKIPGE	SAVAPR		;WANT NXM SET?
  2223	012541	203 00 0 00 777777 		MOVES	777777		;YES--ASSUME KA-10
  2224						>
  2225	012542	332 00 0 00 016614 		SKIPE	TRCON		;TRACE FACILITY ON?
  2226	012543	7 004 14 0 00 016614 		DATAO	PI,TRCON	;YES, START TRACING
  2227	012544	7 004 20 1 00 016603 		CONO	PI,@SAVPI
  2228	012545				RESTR3:>
  2229	012545	254 02 1 00 016441 		JRST	2,@SAVE
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 73
KLDDT	MAC	 5-May-78 12:59		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0065

  2230
  2231					SUBTTL BREAK POINT LOGIC
  2232
  2233	012546	262 05 0 00 016502 	BCOMG:	POP	T,LEAV		;MOVE INSTRUCTION TO LEAV
  2234	012547	201 05 0 05 000153 		MOVEI	T,B1SKP-B1INS+1(T)
  2235	012550	542 05 0 00 016475 		HRRM	T,BCOM3		;CONDITIONAL BREAK SETUP
  2236	012551	201 05 0 05 000001 		MOVEI	T,B1CNT-B1SKP(T)
  2237	012552	542 05 0 00 016476 		HRRM	T,BCOM2		;PROCEED COUNTER SETUP
  2238	012553	200 05 0 05 777623 		MOVE	T,BP1-B1CNT(T)	;GET PC WORD
  2239	012554	502 05 0 00 016477 		HLLM	T,LEAV1		;SAVE FLAGS FOR RESTORING
  2240	012555	250 05 0 00 016473 		EXCH	T,BCOM		; ALSO SAVE PC WORD IN BCOM
  2241
  2242	012556	256 00 0 00 016475 		XCT	BCOM3		;(SKIPE) CONDITIONAL BPT SETUP?
  2243	012557	256 00 1 00 016475 		XCT	@BCOM3		;YES, XCT IT
  2244	012560	256 00 0 00 016476 		XCT	BCOM2		;(SOSG) PROCEED COUNTER NOW 0?
  2245	012561	254 00 0 00 012577 		JRST	BREAK
  2246
  2247	012562	202 05 0 00 016654 		MOVEM	T,AC0+T
  2248	012563	135 05 0 00 016164 		LDB	T,[POINT 9,LEAV,8]	;GET INSTRUCTION
  2249	012564	301 05 0 00 000264 		CAIL	T,264		;JSR
  2250	012565	303 05 0 00 000266 		CAILE	T,266		;JSA,JSP
  2251	012566	606 05 0 00 000700 		TRNN	T,700		;UUO
  2252	012567	254 00 0 00 012657 		JRST	PROC1		;MUST BE INTERPRETED
  2253	012570	302 05 0 00 000260 		CAIE	T,260		;PUSHJ
  2254	012571	306 05 0 00 000256 		CAIN	T,256		;XCT
  2255	012572	254 00 0 00 012657 		JRST	PROC1		;MUST BE INTERPRETED
  2256						IFN	FTEXEC,<
  2257	012573	205 05 0 00 010000 		MOVSI	T,010000	;DON'T TRY TO RESTORE USER MODE BIT
  2258	012574	412 05 0 00 016477 		ANDCAM	T,LEAV1 >
  2259	012575	200 05 0 00 016654 		MOVE	T,AC0+T
  2260	012576	254 02 1 00 016477 		JRST	2,@LEAV1	;RESTORE FLAGS, GO TO LEAVG
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 74
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0066

  2261
  2262					BREAK: IFN FTDEC20,<
  2263						SETZM	SARS>		;BE SURE TO SAVE ACS ON BKPT
  2264	012577	264 00 0 00 016441 		JSR	SAVE		;SAVE THE WORLD
  2265	012600	260 17 0 00 013015 		 PUSHJ P,REMOVB		;REMOVE BREAKPOINTS
  2266	012601	260 17 0 00 014644 		PUSHJ	P,TTYCLR	;FLUSH WAITING TTY CHARACTERS FOR INPUT
  2267	012602	370 05 0 00 016475 		SOS	T,BCOM3
  2268	012603	553 00 0 00 000005 		HRRZS	T		;GET ADR OF CONDITIONAL BREAK INST
  2269	012604	275 05 0 00 016613 		SUBI	T,B1ADR-3	;CHANGE TO ADDRESS OF $0B
  2270	012605	231 05 0 00 000003 		IDIVI	T,3		;QUOTIENT IS BREAK POINT NUMBER
  2271	012606	542 05 0 00 016500 		HRRM	T,BREAK2	;SAVE BREAK POINT #
  2272	012607	200 06 0 00 016165 		MOVE	W1,[BYTE (7) "$","0","B",76,0]	;PRELIMINARY TYPEOUT MESSAGE
  2273					REPEAT 0,<IFN FTEXEC,<
  2274						SKPUSR
  2275						TRC	W1,7_^D15	;IN EXEC MODE, TYPE "$NEG"
  2276						>>
  2277	012610	337 00 1 00 016476 		SKIPG	@BCOM2		;TEST PROCEED COUNTER
  2278	012611	660 06 0 00 000174 		TRO	W1,76_1		;CHANGE T TO /$0BGG/
  2279	012612	137 05 0 00 016166 		DPB	T,[POINT 4,W1,13]	;INSERT BREAK POINT # IN MESSAGE
  2280	012613	260 17 0 00 014236 		PUSHJ	P,TEXT2
  2281	012614	200 05 0 00 016473 		MOVE	T,BCOM
  2282	012615	502 05 0 00 016603 		HLLM	T, SAVPI	;SAVE PROCESSOR FLAGS
  2283	012616	201 05 0 05 777777 		MOVEI	T,-1(T)
  2284	012617	260 17 0 00 011261 		PUSHJ	P,PSHLLC	;PUSH OLD SEQUENCE
  2285	012620	202 05 0 00 016531 		MOVEM	T,LWT		;BKPT ADR BECOMES LAST WORD TYPED
  2286	012621	202 05 0 00 016552 		MOVEM	T,LLOC		;BKPT ADR BECOMES CURRENT LOC
  2287	012622	260 17 0 00 013572 		PUSHJ	P,PAD		;TYPE PC AT BREAK
  2288	012623	550 05 1 00 016475 		HRRZ	T,@BCOM3
  2289	012624	542 05 0 00 016501 		HRRM	T,PROC0		;SETUP ADDRESS OF BREAK
  2290	012625	554 05 1 00 016475 		HLRZ	T,@BCOM3
  2291	012626	322 05 0 00 012633 		JUMPE	T,BREAK1	;TEST FOR REGISTER TO EXAMINE
  2292	012627	260 17 0 00 014266 		PUSHJ	P,LCT		;PRINT TAB
  2293	012630	554 05 1 00 016475 		HLRZ	T,@BCOM3
  2294	012631	202 05 0 00 016552 		MOVEM	T,LLOC		;EXAMINE ADR BECOMES CURRENT LOC
  2295	012632	260 17 0 00 011132 		PUSHJ	P,LI1		;EXAMINE REGISTER C($NB)LEFT
  2296	012633	205 03 0 00 400000 	BREAK1:	MOVSI	S,400000
  2297	012634	256 00 0 00 016500 		XCT	BREAK2		;ROT BY # OF BREAK POINT
  2298	012635	260 17 0 00 014572 		PUSHJ	P,LISTEN	;DONT PROCEED IF TTY KEY HIT
  2299	012636	616 03 0 00 016646 		TDNN	S,AUTOPI	;DONT PROCEED IF NOT AUTOMATIC
  2300	012637	254 00 0 00 010176 		JRST	RET		;DONT PROCEED
  2301	012640	254 00 0 00 012650 		JRST	PROCD1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 75
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0067

  2302
  2303	012641	550 13 0 00 016476 	PROCED:	HRRZ	TT,BCOM2	;SEE IF PROCEED POSSIBLE
  2304	012642	322 13 0 00 010166 		JUMPE	TT,ERR		;JUMP IF NOT SETUP
  2305	012643	607 00 0 00 000001 		TLNN	F,(QF)		;N$P	;PROCEED AT A BREAKPOINT
  2306	012644	201 05 0 00 000001 		MOVEI	T,1
  2307	012645	202 05 1 00 016476 		MOVEM	T,@BCOM2
  2308	012646	550 02 0 00 016475 		HRRZ	R,BCOM3
  2309	012647	260 17 0 00 013074 		PUSHJ	P,AUTOP
  2310	012650	260 17 0 00 014263 	PROCD1:	PUSHJ	P,CRF
  2311	012651	256 00 0 00 016501 		XCT	PROC0		;(HRRZI) GET ADR OF BPT
  2312	012652	260 17 0 00 013164 		PUSHJ	P,FETCH
  2313	012653	254 00 0 00 012742 		JRST	BPLUP1		;ONLY GET HERE IF MEMORY SHRANK
  2314	012654	202 05 0 00 016502 		MOVEM	T,LEAV
  2315	012655	260 17 0 00 013001 		PUSHJ	P,INSRTB
  2316	012656	254 00 0 00 012664 		JRST	PROC2
  2317
  2318	012657	200 05 0 00 016654 	PROC1:	MOVE	T,AC0+T
  2319	012660	264 00 0 00 016441 		JSR	SAVE
  2320	012661	255 00 0 00 000000 		 JFCL
  2321	012662	200 05 0 00 016473 		MOVE	T,BCOM		;STORE FLAGS WHERE "RESTORE"
  2322	012663	502 05 0 00 016603 		HLLM	T,SAVPI		;  CAN FIND THEM
  2323	012664	201 04 0 00 000100 	PROC2:	MOVEI	W,100
  2324	012665	202 04 0 00 016674 		MOVEM	W,TEM1		;SETUP MAX LOOP COUNT
  2325	012666	513 00 0 00 016476 		HLLZS	BCOM2		;CLEAR FLAG, PREVENT SECOND $P
  2326	012667	254 00 0 00 012703 		JRST	IXCT5
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 76
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0068

  2327
  2328	012670				IXCT4:
  2329	012670	331 00 0 00 016717 		IFN	FTEXEC,< SKPUSR
  2330	012671	254 00 0 00 012675 		JRST	IXCT41>		;INIT NOT SPECIAL CASE IN EXEC MODE 
  2331	012672	275 05 0 00 000041 		SUBI	T,041		;IS UUO "INIT"?
  2332	012673	322 05 0 00 012741 		JUMPE	T,BPLUP
  2333	012674	345 05 0 00 012732 		AOJGE	T,IXCT6		;DONT PROCEED FOR INIT
  2334									;DONT INTERPRET FOR SYSTEM UUOS
  2335	012675	202 02 0 00 000040 	IXCT41:	MOVEM	R,40		;INTERPRET FOR NON-SYSTEM UUOS
  2336	012676	201 02 0 00 000041 		MOVEI	R,41
  2337	012677	371 00 0 00 016674 	IXCT:	SOSL	TEM1
  2338	012700	260 17 0 00 013164 		PUSHJ	P,FETCH
  2339	012701	254 00 0 00 012741 		JRST	BPLUP		;BREAKPOINT LOOPING OR FETCH FAILED
  2340	012702	202 05 0 00 016502 		MOVEM	T,LEAV
  2341	012703	135 05 0 00 016164 	IXCT5:	LDB	T,[POINT 9,LEAV,8]	;GET INSTRUCTION
  2342	012704	306 05 0 00 000254 		CAIN	T,254		;DON'T DO ANYTHING TO JRST
  2343	012705	254 00 0 00 012732 		JRST	IXCT6
  2344	012706	515 17 0 00 016647 	IXCT51:	HRLZI	17,AC0
  2345	012707	251 17 0 00 000017 		BLT	17,17
  2346	012710	201 05 1 00 016502 		MOVEI	T,@LEAV
  2347	012711	137 05 0 00 016167 		DPB	T,[POINT 23,LEAV,35]	;STORE EFFECTIVE ADDRESS
  2348	012712	135 06 0 00 016170 		LDB	W1,[POINT 4,LEAV,12]	;PICK UP AC FIELD
  2349	012713	135 05 0 00 016164 		LDB	T,[POINT 9,LEAV,8]	;PICK UP INSTRUCTION FIELD
  2350	012714	200 17 0 00 016050 		MOVE	P,[IOWD LPDL,PDL]
  2351	012715	306 05 0 00 000260 		CAIN	T,260
  2352	012716	254 00 0 00 012745 		JRST  IPUSHJ		;INTERPRET PUSHJ
  2353
  2354	012717	306 05 0 00 000264 		CAIN	T,264
  2355	012720	254 00 0 00 012761 		JRST	IJSR		;INTERPRET JSR
  2356	012721	306 05 0 00 000265 		CAIN	T,265
  2357	012722	254 00 0 00 012773 		JRST	IJSP		;INTERPRET JSP
  2358	012723	306 05 0 00 000266 		CAIN	T,266
  2359	012724	254 00 0 00 012755 		JRST	IJSA		;INTERPRET JSA
  2360	012725	200 02 0 00 016502 		MOVE	R,LEAV
  2361	012726	606 05 0 00 000700 		TRNN	T,700
  2362	012727	254 00 0 00 012670 		JRST	IXCT4		;INTERPRET UUO
  2363	012730	306 05 0 00 000256 		CAIN	T,256
  2364						JSP	T,[JUMPE W1,IXCT	;INTERPRET XCT IF AC = 0
  2365							TLNN T,(1B5)	;AC FIELD NOT 0 - IN EXEC MODE?
  2366							JRST IXCT6	;YES, DON'T INTERPRET MAPPED XCT
  2367	012731	265 05 0 00 016171 			JRST IXCT]	;NO,  INTERPRET. IGNORE AC FIELD
  2368	012732	265 05 0 00 012520 	IXCT6:	JSP	T,RESTORE
  2369	012733	256 00 0 00 016502 	LEAVG:	XCT	LEAV		;DO BPT INSTRUCTION
  2370	012734	254 00 1 00 016473 		 JRST @BCOM
  2371	012735	334 00 0 00 000000 		 SKIPA			;SINGLE SKIP
  2372	012736	350 00 0 00 016473 		AOS	BCOM		;DOUBLE SKIP
  2373	012737	350 00 0 00 016473 		AOS	BCOM
  2374	012740	254 00 1 00 016473 		JRST	@BCOM
  2375
  2376	012741	260 17 0 00 013015 	BPLUP:	PUSHJ	P,REMOVB	;BREAKPOINT PROCEED ERROR
  2377	012742	264 00 0 00 016441 	BPLUP1:	JSR	SAVE
  2378	012743	255 00 0 00 000000 		 JFCL
  2379	012744	254 00 0 00 010166 		JRST	ERR
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 77
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0069

  2380
  2381	012745	137 06 0 00 016175 	IPUSHJ:	DPB	W1,[POINT 4,CPUSHP,12]	;STORE AC FIELD INTO A PUSH
  2382	012746	500 05 0 00 016603 		HLL	T,SAVPI		;PICK UP FLAGS
  2383	012747	502 05 0 00 016473 		HLLM	T,BCOM		;SET UP THE OLD PC WORD
  2384	012750	205 05 0 00 020000 		MOVSI	T,(1B4)		;TURN OFF BIS FLAG IN NEW PC WORD
  2385	012751	412 05 0 00 016603 		ANDCAM	T,SAVPI
  2386	012752	265 05 0 00 012520 		JSP	T,RESTORE	;RESTORE THE MACHINE STATE
  2387	012753	256 00 0 00 016503 		XCT	CPUSHP		;(PUSH ..,BCOM)
  2388	012754	254 00 1 00 016502 		JRST	@LEAV		;JUMP TO "E" OF THE PUSHJ
  2389
  2390	012755	200 05 0 00 016473 	IJSA:	MOVE	T,BCOM		;INTERPRET JSA
  2391	012756	504 05 0 00 016502 		HRL	T,LEAV
  2392	012757	250 05 0 06 016647 		EXCH	T,AC0(W1)
  2393	012760	254 00 0 00 012765 		JRST	IJSR2
  2394
  2395	012761	200 05 0 00 016473 	IJSR:	MOVE	T,BCOM		;INTERPRET JSR
  2396	012762	500 05 0 00 016603 		HLL	T,SAVPI		;SET UP THE OLD PC WORD
  2397	012763	205 04 0 00 020000 		MOVSI	W,(1B4)		;TURN OFF BIS IN NEW PC WORD
  2398	012764	412 04 0 00 016603 		ANDCAM	W,SAVPI
  2399	012765	200 02 0 00 016502 	IJSR2:	MOVE	R,LEAV
  2400	012766	260 17 0 00 013112 		PUSHJ	P,DEPMEM
  2401	012767	254 00 0 00 012741 		 JRST BPLUP		;ERROR, CAN'T STORE
  2402	012770	354 05 0 00 016502 		AOSA	T,LEAV
  2403	012771	200 05 0 00 016502 	IJSR3:	MOVE	T,LEAV
  2404	012772	254 00 0 00 012520 		JRST	RESTORE
  2405
  2406	012773	200 04 0 00 016473 	IJSP:	MOVE	W,BCOM		;INTERPRET JSP
  2407	012774	500 04 0 00 016603 		HLL	W,SAVPI		;PICK UP PC WORD FLAGS
  2408	012775	202 04 0 06 016647 		MOVEM	W,AC0(W1)	;INSERT OLD PC WORD INTO AC
  2409	012776	205 05 0 00 020000 		MOVSI	T,(1B4)		;TURN OFF BIS FLAG IN NEW PC WORD
  2410	012777	412 05 0 00 016603 		ANDCAM	T,SAVPI
  2411	013000	254 00 0 00 012771 		JRST	IJSR3
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 78
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0070

  2412
  2413					;INSERT BREAKPOINTS
  2414
  2415	013001	200 03 0 00 016176 	INSRTB:	MOVE	S,[JSR BP1]
  2416	013002	332 02 0 03 000153 	INSRT1:	SKIPE	R,B1ADR-BP1(S)
  2417	013003	260 17 0 00 013164 		PUSHJ	P,FETCH
  2418	013004	254 00 0 00 013011 		JRST	INSRT3
  2419	013005	202 05 0 03 000002 		MOVEM	T,B1INS-BP1(S)
  2420	013006	200 05 0 00 000003 		MOVE	T,S
  2421	013007	260 17 0 00 013112 		PUSHJ	P,DEPMEM
  2422	013010	255 00 0 00 000000 		 JFCL			;HERE ONLY IF CAN'T WRITE IN HIGH SEG
  2423	013011	271 03 0 00 000003 	INSRT3:	ADDI	S,3
  2424	013012	317 03 0 00 016177 		CAMG	S,[JSR BPN]
  2425	013013	254 00 0 00 013002 		JRST	INSRT1
  2426	013014	263 17 0 00 000000 		POPJ	P,
  2427
  2428					;REMOVE BREAKPOINTS
  2429
  2430	013015	201 03 0 00 016643 	REMOVB:	MOVEI	S,BNADR
  2431	013016	200 05 0 03 777627 	REMOV1:	MOVE	T,B1INS-B1ADR(S)
  2432	013017	332 02 0 03 000000 		SKIPE	R,(S)
  2433	013020	260 17 0 00 013112 		PUSHJ	P,DEPMEM
  2434	013021	255 00 0 00 000000 		 JFCL			;HERE ONLY IF NO WRITE IN HIGH SEG
  2435	013022	275 03 0 00 000003 		SUBI	S,3
  2436	013023	301 03 0 00 016616 		CAIL	S,B1ADR
  2437	013024	254 00 0 00 013016 		JRST	REMOV1
  2438	013025	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 79
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0071

  2439
  2440					;ALL $B COMMANDS GET HERE IN FORM: <A>$<N>B
  2441
  2442
  2443	013026	623 00 0 00 000001 	BPS:	TLZE	F,(QF)		;HAS <A> BEEN TYPED?
  2444	013027	254 00 0 00 013036 		JRST	BPS1		;YES
  2445	013030	622 00 0 00 000001 		TRZE	F,Q2F		;NO, HAS <N> BEEN TYPED?
  2446	013031	254 00 0 00 013045 		JRST	BPS2		;YES
  2447	013032	200 05 0 00 016200 		MOVE	T,[XWD B1ADR,B1ADR+1]	;NO, COMMAND IS $B - CLEAR ALL BREAKPOINTS
  2448	013033	402 00 0 00 016616 		CLEARM	B1ADR
  2449	013034	251 05 0 00 016646 		BLT	T,AUTOPI	;CLEAR OUT ALL BREAKPOINTS AND AUTO PROCEED REGISTER
  2450	013035	254 00 0 00 010176 		JRST	RET
  2451
  2452	013036	200 02 0 00 000005 	BPS1:	MOVE	R,T
  2453	013037	260 17 0 00 013164 		PUSHJ	P,FETCH		;CAN BREAKPOINT BE INSERTED HERE?
  2454	013040	254 00 0 00 010166 		 JRST ERR		;NO
  2455	013041	260 17 0 00 013155 		PUSHJ	P,DEPERR	; AGAIN NO
  2456	013042	626 00 0 00 000001 		TRZN	F,Q2F		;HAS <N> BEEN TYPED?
  2457	013043	254 00 0 00 013057 		JRST	BPS3		;NO
  2458	013044	660 00 0 00 000002 		TRO	F,2		;YES, PROCESS THE COMMAND A$NB
  2459	013045	200 05 0 00 016525 	BPS2:	MOVE	T,WRD2
  2460	013046	301 05 0 00 000001 		CAIL	T,1
  2461	013047	303 05 0 00 000010 		CAILE	T,NBP
  2462	013050	254 00 0 00 010166 		JRST	ERR
  2463	013051	221 05 0 00 000003 		IMULI	T,3
  2464	013052	271 05 0 00 016613 		ADDI	T,B1ADR-3
  2465	013053	626 00 0 00 000002 		TRZN	F,2
  2466	013054	254 00 0 00 013657 		JRST	MASK2
  2467	013055	250 02 0 00 000005 		EXCH	R,T
  2468	013056	254 00 0 00 013071 		JRST	BPS5
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 80
KLDDT	MAC	 5-May-78 12:59		BREAK POINT LOGIC                                                                  SEQ 0072

  2469
  2470	013057	200 05 0 00 000002 	BPS3:	MOVE	T,R		;PUT THE BREAKPOINT ADR BACK IN T
  2471	013060	201 02 0 00 016616 		MOVEI	R,B1ADR		;PROCESS THE COMMAND A$B
  2472	013061	550 04 0 02 000000 	BPS4:	HRRZ	W,(R)
  2473	013062	302 04 0 05 000000 		CAIE	W,(T)
  2474	013063	336 00 0 02 000000 		SKIPN	(R)
  2475	013064	254 00 0 00 013071 		JRST	BPS5
  2476	013065	271 02 0 00 000003 		ADDI	R,3
  2477	013066	307 02 0 00 016643 		CAIG	R,BNADR
  2478	013067	254 00 0 00 013061 		JRST	BPS4
  2479	013070	254 00 0 00 010166 		JRST	ERR
  2480	013071	202 05 0 02 000000 	BPS5:	MOVEM	T,(R)
  2481	013072	402 00 0 02 000001 		SETZM	1(R)
  2482	013073	402 00 0 02 000002 		SETZM	2(R)
  2483
  2484	013074	275 02 0 00 016616 	AUTOP:	SUBI	R,B1ADR		;AUTO PROCEED SETUP SUBROUTINE
  2485	013075	231 02 0 00 000003 		IDIVI	R,3
  2486	013076	201 03 0 00 000001 		MOVEI	S,1
  2487	013077	242 03 0 02 000000 		LSH	S,(R)
  2488	013100	412 03 0 00 016646 		ANDCAM	S,AUTOPI
  2489	013101	603 00 0 00 010000 		TLNE	F,(CCF)
  2490	013102	436 03 0 00 016646 		IORM	S,AUTOPI
  2491	013103	263 17 0 00 000000 		POPJ	P,
  2492
  2493						>			;END FTFILE
  2494
  2495						IFN	FTFILE,<BPS==<PROCEDE==ERR>>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 81
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0073

  2496					SUBTTL MEMORY MANAGER SUBROUTINES
  2497
  2498					;DEPOSIT INTO MEMORY SUBROUTINE
  2499
  2500	013104	202 05 0 00 016531 	DEPRS:	MOVEM	T,LWT		;DEPOSIT REGISTER AND SAVE AS LWT
  2501	013105	200 02 0 00 016553 		MOVE	R,LLOCO		;QUAN TYPED IN REGIS EXAM
  2502	013106	623 00 0 00 000010 		TLZE	F,(ROF)
  2503	013107	607 00 0 00 000001 		TLNN	F,(QF)
  2504	013110	263 17 0 00 000000 		POPJ	P,0
  2505	013111	254 00 0 00 013155 		JRST	DMEMER
  2506
  2507					;DEPOSIT INTO MEMORY SUBROUTINE
  2508
  2509						IFE	FTFILE,<
  2510	013112				DEPSYM:
  2511	013112				DEPMEM:	IFE	FTDEC20,<
  2512	013112	332 00 0 00 016721 		SKIPE	TOPS20
  2513	013113	254 00 0 00 013143 		JRST	DEPM20
  2514	013114	260 17 0 00 013234 		PUSHJ	P,CHKPAG	;GET PAGE ACCESS BITS INTO TT1
  2515	013115	321 14 0 00 010521 		JUMPL	TT1,CPOPJ	;ILLEGAL ADDRESS IF NEGATIVE
  2516	013116	603 14 0 00 200000 		TLNE	TT1,(1B1)	;IS PAGE KNOWN TO BE WRITEABLE?
  2517	013117	254 00 0 00 013123 		JRST	DEP1		;YES--GO DO THE DEPOSIT RIGHT AWAY
  2518	013120	326 14 0 00 013131 		JUMPN	TT1,DEP4	;IF WE KNOW ANYTHING THEN IT MUST BE
  2519									; A WRITE LOCKED HISEG
  2520	013121	265 14 0 00 013211 		JSP	TT1,CHKADR	;LEGAL ADDRESS?
  2521	013122	254 00 0 00 013131 		JRST	DEP4		;YES BUT IN HI SEGMENT
  2522	013123	606 02 0 00 777760 	DEP1:	TRNN	R,777760
  2523	013124	254 00 0 00 013127 		JRST	DEPAC		;DEPOSIT IN AC
  2524	013125	202 05 0 02 000000 		MOVEM	T,(R)
  2525	013126	254 00 0 00 010520 		JRST	CPOPJ1		;SKIP RETURN
  2526
  2527	013127	202 05 0 02 016647 	DEPAC:	MOVEM	T,AC0(R)	;DEPOSIT IN AC
  2528	013130	254 00 0 00 010520 		JRST	CPOPJ1		;SKIP RETURN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 82
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0074

  2529	013131				DEP4:	IFN	FTEXEC,<
  2530	013131	331 00 0 00 016717 		SKPUSR			;IN EXEC MODE WE CAN NOT DO
  2531	013132	263 17 0 00 000000 		POPJ	P,0		; SETUWP -- INDICATE ERROR
  2532						>
  2533	013133	201 14 0 00 000000 		MOVEI	TT1,0
  2534	013134	047 14 0 00 000036 		SETUWP	TT1,		;IS HI SEGMENT PROTECTED? TURN OFF
  2535	013135	263 17 0 00 000000 		 POPJ P,		;PROTECTED, NO SKIP RETURN
  2536	013136	202 05 0 02 000000 		MOVEM	T,(R)		;STORE WORD IN HI SEGMENT
  2537	013137	602 14 0 00 000001 		TRNE	TT1,1		;WAS WRITE PROTECT ON?
  2538	013140	047 14 0 00 000036 		SETUWP	TT1,		;YES, TURN IT BACK ON
  2539	013141	255 00 0 00 000000 		 JFCL
  2540	013142	254 00 0 00 010520 		JRST	CPOPJ1		;SKIP RETURN
  2541					;	>			;END IFE FTDEC20
  2542					;	IFN	FTDEC20,<	;DEPSYM, DEPMEM FOR DEC20
  2543	013143	606 02 0 00 777760 	DEPM20:	TRNN	R,777760	;AC?
  2544						JRST	[MOVEM T,AC0(R)	;YES, DO IT
  2545	013144	254 00 0 00 016201 			JRST CPOPJ1]
  2546	013145	260 17 0 00 013211 		PUSHJ	P,CHKADR	;GET ACCESS
  2547	013146	322 13 0 00 013151 		JUMPE	TT,DEP2		;EMPTY PAGE OK
  2548	013147	607 13 0 00 040400 		TLNN	TT,(PM%WT+PM%CPY)	;WRITE OR COPY-WRITE?
  2549	013150	263 17 0 00 000000 		POPJ	P,		;NO, FAIL
  2550	013151	476 00 0 00 016611 	DEP2:	SETOM	LASTPG		;WRITE MAY CHANGE ACCESS
  2551	013152	202 05 0 02 000000 		MOVEM	T,0(R)		;DO IT
  2552	013153	254 00 0 00 010520 		JRST	CPOPJ1
  2553					;	>			;END IFN FTDEC20
  2554
  2555	013154	260 17 0 00 013462 	DSYMER:	PUSHJ	P,CLRCSH	;DEPOSIT FOR SYM TABLE ROUTINES
  2556						>			;END IFE FTFILE
  2557	013155				DEPERR:
  2558	013155	260 17 0 00 013112 	DMEMER:	PUSHJ	P,DEPMEM	;DEPOSIT AND GO TO ERR IF IT FAILS
  2559	013156	254 00 0 00 010166 		 JRST ERR
  2560	013157	263 17 0 00 000000 		POPJ	P,
  2561					XLIST
  2562					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 87
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0075

  2563					;FETCH FROM MEMORY SUBROUTINE
  2564
  2565					;HFETCH GETS A WORD FROM THE HISEG GIVEN AN OFFSET INTO THE SEGMENT
  2566					;CALL WITH:
  2567					;	R = HISEG OFFSET
  2568					;	PUSHJ P,HFETCH
  2569					;	  NO HISEG RETURN
  2570					;	HERE WITH WORD IN T
  2571					;
  2572	013160				HFETCH:
  2573						IFN	FTEXEC,<
  2574					;	SKPUSR			;NO HISEG SYMBOLS IN EXEC MODE (OR KLDDT)
  2575	013160	263 17 0 00 000000 		POPJ	P,0>		; ..
  2576	013161	260 17 0 00 013246 		PUSHJ	P,GETHSO	;GET START OF HISEG
  2577	013162	322 05 0 00 010521 		JUMPE	T,CPOPJ		;EXIT IF NONE
  2578	013163	270 02 0 00 000005 		ADD	R,T		;RELOCATE
  2579					;FALL INTO FETCH
  2580
  2581					;SUBROTINE GET A WORD FROM MEMORY
  2582					;CALL WITH:
  2583					;	R = JUNK,,ADDRESS
  2584					;	PUSHJ  P,FETCH
  2585					;	  HERE IF ADDRESS IS NOT VALID
  2586					;	HERE WITH WORD IN T AND R UNCHANGED
  2587					;	
  2588					;AC'S TT1 AND TT2 CHANGED
  2589
  2590	013164				FETCH: IFE FTDEC20,<
  2591						IFE	FTFILE,<
  2592	013164	332 00 0 00 016721 		SKIPE	TOPS20
  2593	013165	254 00 0 00 013201 		JRST	FET20
  2594	013166	260 17 0 00 013234 		PUSHJ	P,CHKPAG	;GET ACCESS BITS FOR PAGE
  2595	013167	321 14 0 00 010521 		JUMPL	TT1,CPOPJ	;ERROR IF PAGE DOES NOT EXIST
  2596	013170	603 14 0 00 100000 		TLNE	TT1,(1B2)	;IS PAGE READABLE?
  2597	013171	254 00 0 00 013175 		JRST	FET1		;YES--GO READ IT
  2598	013172	326 14 0 00 010521 		JUMPN	TT1,CPOPJ	;EXIT IF KNOW CONCEALED
  2599	013173	265 14 0 00 013211 		JSP	TT1,CHKADR	;LEGAL ADDRESS?
  2600	013174	255 00 0 00 000000 		JFCL			;HIGH OR LOW OK FOR FETCH
  2601	013175	606 02 0 00 777760 	FET1:	TRNN	R,777760	;ACCUMULATOR?
  2602	013176	334 05 0 02 016647 		SKIPA	T,AC0(R)	;YES
  2603	013177	200 05 0 02 000000 		MOVE	T,(R)		;NO
  2604	013200	254 00 0 00 010520 		JRST	CPOPJ1>		;SKIP RETURN ONLY FOR LEGAL ADDRESS 
  2605					;	>			;END OF IFE FTDEC20
  2606					;	IFN	FTDEC20,<	;FETCH FOR DEC20
  2607	013201	606 02 0 00 777760 	FET20:	TRNN	R,777760	;AC?
  2608						JRST	[MOVE T,AC0(R)	;YES, DO IT
  2609	013202	254 00 0 00 016203 			JRST CPOPJ1]
  2610	013203	260 17 0 00 013211 		PUSHJ	P,CHKADR	;GET ACCESS
  2611	013204	603 13 0 00 020000 		TLNE	TT,(PA%EX)	;EXISTS?
  2612	013205	607 13 0 00 100000 		TLNN	TT,(PM%RD)	;HAVE READ?
  2613	013206	263 17 0 00 000000 		POPJ	P,		;NO, FAIL
  2614	013207	200 05 0 02 000000 		MOVE	T,0(R)		;YES, DO IT
  2615	013210	254 00 0 00 010520 		JRST	CPOPJ1
  2616					;	>			;END IFN FTDEC20
  2617					XLIST
  2618					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 90
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0076

  2619
  2620						IFE	FTDEC20,<
  2621	013211	332 00 0 00 016721 	CHKADR:	SKIPE	TOPS20
  2622	013212	254 00 0 00 013261 		JRST	CHKA20
  2623	013213	550 13 0 00 000000*		HRRZ	TT,.JBREL	;GET HIGHEST ADDRESS IN LOW SEGMENT
  2624						IFN	FTEXEC,<
  2625	013214	331 00 0 00 016717 		SKPUSR
  2626	013215	254 00 0 00 013305 		JRST	CHKA4		;DO MAP IN EXEC MODE
  2627						>
  2628	013216	301 13 0 02 000000 		CAIL	TT,(R)		;CHECK FOR WITHIN LOW SEGMENT
  2629	013217	254 00 0 14 000001 		JRST	1(TT1)		;ADDRESS IS OK IN LOW SEGMENT, SKIP RETURN
  2630	013220	336 00 0 00 000000*		SKIPN	.JBHRL		;ANY HISEG?
  2631	013221	263 17 0 00 000000 		POPJ	P,0		;NO--ERROR
  2632	013222	261 17 0 00 000005 		PUSH	P,T		;SAVE T
  2633	013223	260 17 0 00 013246 		PUSHJ	P,GETHSO	;GET START OF HISEG
  2634	013224	550 13 0 00 000002 		HRRZ	TT,R		;COPY DESIRED ADDRESS
  2635	013225	274 13 0 00 000005 		SUB	TT,T		;GET OFFSET INTO HISEG
  2636	013226	262 17 0 00 000005 		POP	P,T
  2637	013227	321 13 0 00 010521 		JUMPL	TT,CPOPJ	;MUST BE POSITIVE
  2638	013230	550 13 0 00 013220*		HRRZ	TT,.JBHRL	;TOP OF HISEG
  2639	013231	305 13 0 02 000000 		CAIGE	TT,(R)		;IS ADDRESS TOO BIG?
  2640	013232	263 17 0 00 000000 		POPJ	P,0		;YES--ERROR
  2641	013233	254 00 0 14 000000 		JRST	(TT1)		;NO--INDICATE HISEG
  2642
  2643	013234				CHKPAG:	IFN	FTEXEC,<
  2644	013234	201 14 0 00 000000 		MOVEI	TT1,0		;PRESET UNKNOWN ANSWER
  2645	013235	331 00 0 00 016717 		SKPUSR			;SKIP IF IN USER MODE
  2646	013236	263 17 0 00 000000 		POPJ	P,0		;DO NOT DO UUO'S IN EXEC MODE
  2647						>
  2648	013237	550 14 0 00 000002 		HRRZ	TT1,R		;COPY ADDRESS
  2649	013240	242 14 0 00 777767 		LSH	TT1,-9		;SHIFT LEFT 9 BITS
  2650	013241	505 14 0 00 000006 		HRLI	TT1,6		;FUNCTION TO GET ACCESS BITS
  2651	013242	047 14 0 00 000145 		PAGE. TT1,		;ASK THE MONITOR
  2652	013243	634 14 0 00 000014 		 TDZA TT1,TT1		;RETURN ZERO IF UNKNOWN
  2653	013244	660 14 0 00 000001 		TRO	TT1,1		;MAKE SURE NON-ZERO IF UUO WON
  2654	013245	263 17 0 00 000000 		POPJ	P,0		;ELSE RETURN GOOD STUFF
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 91
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0077

  2655
  2656	013246				GETHSO:	IFN	FTEXEC,<
  2657	013246	331 00 0 00 016717 		SKPUSR
  2658						JRST	[MOVEI T,400000
  2659	013247	254 00 0 00 016205 			 POPJ  P,0]
  2660						>
  2661	013250	332 00 0 00 016721 		SKIPE	TOPS20
  2662	013251	254 00 0 00 013327 		JRST	GETH20
  2663	013252	200 05 0 00 016207 		MOVE	T,[-2,,.GTUPM]
  2664	013253	047 05 0 00 000041 		GETTAB	T,
  2665	013254	201 05 0 00 000000 		 MOVEI T,0
  2666	013255	554 05 0 00 000005 		HLRZ	T,T
  2667	013256	305 05 0 00 000777 		CAIGE	T,777
  2668	013257	201 05 0 00 400000 		MOVEI	T,400000
  2669	013260	263 17 0 00 000000 		POPJ	P,
  2670					;	>			;END IFE FTDEC20
  2671					;	IFN	FTDEC20,<
  2672	013261				CHKA20:	IFN	FTEXEC,<
  2673	013261	331 00 0 00 016717 		SKPUSR
  2674	013262	254 00 0 00 013305 		JRST	CHKA4>
  2675	013263	261 17 0 00 000002 		PUSH	P,T2
  2676	013264	261 17 0 00 000002 		PUSH	P,R
  2677	013265	550 02 0 17 000000 		HRRZ	T2,0(P)		;GET DESIRED ADDRESS
  2678	013266	430 02 0 00 016611 		XOR	T2,LASTPG	;COMPARE WITH LAST ONE TESTED
  2679	013267	606 02 0 00 777000 		TRNN	T2,777000	;SAME PAGE?
  2680	013270	254 00 0 00 013301 		JRST	CHKA1		;YES, ALREADY HAVE ACCESS
  2681	013271	432 02 0 00 016611 		XORM	T2,LASTPG	;NO, SET NEW LAST PAGE
  2682	013272	265 01 0 00 013273 		JSP	T1,.+1		;GET USER FLAG
  2683	013273	607 01 0 00 010000 		TLNN	T1,(PC%USR)	;IN USER MODE?
  2684						JRST	[HRRZ T1,0(P)	;NO, MONITOR. GET ADDRESS
  2685							MRPAC		;READ MONITOR PAGE ACCESS
  2686	013274	254 00 0 00 016210 			JRST CHKA2]	;RETURN IT
  2687	013275	135 01 0 00 016213 		LDB	T1,[POINT 9,0(P),26]	;GET PAGE NUMBER
  2688	013276	505 01 0 00 400000 		HRLI	T1,.FHSLF
  2689	013277	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  2690	013300	502 02 0 00 016611 	CHKA2:	HLLM	T2,LASTPG	;SAVE ACCESS WITH ADDRESS
  2691	013301	510 13 0 00 000002 	CHKA1:	HLLZ	TT,T2		;RETURN ACCESS IN TT
  2692	013302	262 17 0 00 000002 		POP	P,R
  2693	013303	262 17 0 00 000002 		POP	P,T2
  2694	013304	263 17 0 00 000000 		POPJ	P,
  2695					;	>			;END FTDEC20
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 92
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0078

  2696
  2697						IFN	FTEXEC,<
  2698	013305	335 00 0 00 016720 	CHKA4:	SKPNKL			;KL10?
  2699						JRST	[MAP TT,0(R)	;YES, GET PAGING DATA
  2700							TLNN TT,(1B8)	;MAPPED REF?
  2701							JRST CHKA5	;NO, ALLOW IT
  2702							TLNN TT,(1B1)	;HARD PAGE FAIL?
  2703							TLNN TT,(1B2)	;OR NO ACCESS?
  2704							JRST CHKA3	;YES
  2705							TLNN TT,(1B3+1B4) ;WRITE ALLOWED?
  2706							JRST CHKA7	;NO
  2707	013306	254 00 0 00 016214 			JRST CHKA5]	;YES
  2708	013307	332 00 0 00 016720 		SKPKI			;KI10?
  2709	013310	254 00 0 00 013322 		JRST	CHKA8		;NO, NO MAP INSTRUCTION
  2710	013311	257 13 0 02 000000 		MAP	TT,0(R)		;GET ACCESS BITS FOR PAGE
  2711	013312	606 13 0 00 400000 		TRNN	TT,1B18		;PAGE FAIL?
  2712	013313	254 00 0 00 013316 		JRST	CHKA6		;NO, GO INSPECT DATA
  2713	013314	602 13 0 00 020000 		TRNE	TT,1B22		;YES, HAVE MATCH?
  2714	013315	254 00 0 00 013321 		JRST	CHKA3		;NO, PAGE HAS NO ACCESS
  2715	013316	606 13 0 00 120000 	CHKA6:	TRNN	TT,1B20+1B22	;WRITABLE OR NO MATCH? (UNMAPPED REF)
  2716						IFN	FTDEC20,<
  2717					CHKA7:	SKIPA	TT,[PM%RD+PA%EX]	;NO
  2718					CHKA8:
  2719					CHKA5:	MOVSI	TT,(PM%RD+PM%WT+PA%EX)	;YES
  2720						POPJ	P,
  2721					
  2722					CHKA3:	MOVSI	TT,(1B5)	;SAY NO ACCESS
  2723						POPJ	P,
  2724						>
  2725						IFE	FTDEC20,<
  2726	013317	254 00 0 14 000000 	CHKA7:	JRST	(TT1)		;CAN NOT WRITE -- INDICATE HISEG
  2727	013320	254 00 0 14 000001 	CHKA5:	JRST	1(TT1)		;CAN WRITE -- INDICATE LOWSEG
  2728	013321	263 17 0 00 000000 	CHKA3:	POPJ	P,0		;PAGE FAIL -- INDICATE ERROR
  2729	013322	7 000 20 0 00 010000 	CHKA8:	CONO	APR,NXMKA	;CLEAR NXM FLAG
  2730	013323	200 13 0 02 000000 		MOVE	TT,(R)		;SEE IF NXM SETS
  2731	013324	7 000 34 0 00 010000 		CONSO	APR,NXMKA	;TEST NXM FLAG
  2732	013325	254 00 0 14 000001 		JRST	1(TT1)		;OK
  2733	013326	263 17 0 00 000000 		POPJ	P,0		;ERROR
  2734						>>			;END FTEXEC AND FTDEC20
  2735					;	IFN	FTDEC20,<
  2736	013327				GETH20:	IFN	FTEXEC,<
  2737	013327	331 00 0 00 016717 		SKPUSR
  2738	013330	254 00 0 00 013331 		JRST	GETHSZ>		;NO HIGHSEG IN EXEC MODE
  2739					;	SKIPN	JDTFLG#		;JOB DATA AREA VALID?
  2740					;	JRST	GETHSZ		;NO, ASSUME NO HIGHSEG
  2741					;	MOVE	T,.JBHSO	;CHECK SPECIAL LOSEG CELL
  2742					;	LSH	T,^D9		;MAKE PAGE INTO ADDRESS
  2743					;	SKIPN	T		;BUT IF NOTHING SETUP,
  2744					;	MOVEI	T,400000	;ASSUME USUAL
  2745					;	SKIPN	.JBHRL		;ANY HIGHSEG?
  2746	013331	400 05 0 00 000000 	GETHSZ:	SETZ	T,		;NO, SAY NO HIGHSEG
  2747	013332	263 17 0 00 000000 		POPJ	P,		;	>;END IFN FTDEC20
  2748					XLIST
  2749					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 94
KLDDT	MAC	 5-May-78 12:59		MEMORY MANAGER SUBROUTINES                                                         SEQ 0079

  2750
  2751					SUBTTL BINARY TO SYMBOLIC CONVERSION
  2752
  2753					;	PUSHJ P,LOOK		;AC T CONTAINS BINARY TO BE INTERPRETED
  2754					;	  RETURN 1		;NOTHING AT ALL FOUND THAT'S USEFUL
  2755					;	  RETURN 2		;SOMETHING FOUND, BUT NO EXACT MATCH
  2756					;	  RETURN 3		;EXACT MATCH FOUND AND PRINTED
  2757
  2758	013333	202 05 0 00 016673 	LOOK:	MOVEM	T,TEM		;SAVE VALUE BEING LOOKED UP
  2759	013334	260 17 0 00 013456 		PUSHJ	P,CSHVER	;SEE IF CACHE IS USEFUL
  2760	013335	254 00 0 00 013345 		 JRST LOOKC2		;ITS NOT. DO IT THE OLD WAY
  2761	013336	200 05 0 00 016673 		MOVE	T,TEM		;RECOVER VALUE
  2762	013337	205 02 0 00 777760 		MOVSI	R,-NSYMCS	;CHECK SYMBOL CACHE FIRST
  2763	013340	332 06 0 02 016675 	LOOKC1:	SKIPE	W1,SYMCSH(R)	;GET POINTER AND CHECK IN USE
  2764	013341	312 05 0 06 000001 		CAME	T,1(W1)		;VALUE SAME?
  2765	013342	334 00 0 00 000000 		SKIPA			;NO. DON'T LOOK AT IT THEN
  2766						JRST	[MOVE W2,0(W1)	;CHECK SYMBOL
  2767							TLNE W2,(DELI+DELO) ;DELETED?
  2768							JRST .+1	;YES, IGNORE IT
  2769							MOVEM W1,SYMPNT	;GOOD ONE
  2770							JUMPL W1,LOOKO2	;WAS OUTSIDE LOCAL
  2771	013343	254 00 0 00 016225 			JRST LOOKO4]	;WAS GLOBAL OR PROGRAM
  2772	013344	253 02 0 00 013340 		AOBJN	R,LOOKC1
  2773	013345	260 17 0 00 010537 	LOOKC2:	PUSHJ	P,SYMSET	;SET UP SYM SEARCH POINTER AND COUNT
  2774	013346	402 00 0 00 016546 		SETZM	SYMPNT		;INIT "OUTSIDE LOCAL" FLAG
  2775	013347	620 00 0 00 030000 		TRZ	F,MDLCLF!PNAMEF	;INIT FLAGS
  2776	013350	621 00 0 00 400000 		TLZ	F,(1B0)		;CLEAR SYMBOL TYPED FLAG
  2777	013351	200 05 0 00 016673 		MOVE	T,TEM		;RESTORE VALUE BEING LOOKED UP
  2778	013352	325 02 0 00 010521 		JUMPGE	R,CPOPJ		;RETURN, NOTHING FOUND
  2779
  2780	013353	200 07 0 02 000000 	LOOK1:	MOVE	W2,(R)		;GET FLAGS FOR SYMBOL
  2781	013354	607 07 0 00 740000 		TLNN	W2,(PNAME)	;PROGRAM NAME?
  2782						JRST	[JUMPE W2,LOOK3	;YES, IGNORE NULL PROGRAM NAMES
  2783							TRO F,PNAMEF	;SET PROGRAM NAME FLAG
  2784	013355	254 00 0 00 016233 			JRST LOOK3]	;GET NEXT SYMBOL
  2785	013356	311 05 0 02 000001 		CAML	T,1(R)		;VALUE TOO LARGE?
  2786	013357	603 07 0 00 600000 		TLNE	W2,(DELI!DELO)	;DELETED?
  2787	013360	254 00 0 00 013400 		JRST	LOOK3		;YES, GET NEXT SYMBOL
  2788	013361	607 07 0 00 040000 		TLNN	W2,(GLOBL)	;NOT PROGRAM NAME. GLOBAL SYMBOL?
  2789	013362	606 00 0 00 010000 		TRNN	F,PNAMEF	;LOCAL SYMBOL. INSIDE SPECIFIED PROGRAM?
  2790	013363	254 00 0 00 013432 		JRST	LOOK5		;CHECK FOR BEST VALUE SO FAR
  2791	013364	305 05 0 00 000020 		CAIGE	T,20		;QUANT IS IN AC RANGE?
  2792	013365	254 00 0 00 013400 		JRST	LOOK3		;YES, IGNORE OUTSIDE LOCALS
  2793	013366	200 04 0 02 000001 		MOVE	W,1(R)		;GET VALUE
  2794	013367	430 04 0 00 000005 		XOR	W,T		;COMPARE
  2795	013370	321 04 0 00 013400 		JUMPL	W,LOOK3		;REJECT IF SIGNS DIFFERENT
  2796	013371	336 07 0 00 016546 		SKIPN	W2,SYMPNT	;HAVE ANY OUTSIDE LOCAL NOW?
  2797	013372	254 00 0 00 013376 		JRST	LOOK2		;NO, USE THIS ONE
  2798	013373	200 04 0 02 000001 		MOVE	W,1(R)		;COMPARE VALUES
  2799	013374	274 04 0 07 000001 		SUB	W,1(W2)
  2800	013375	323 04 0 00 013400 		JUMPLE	W,LOOK3		;REJECT UNLESS BETTER
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 95
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0080

  2801
  2802	013376	620 00 0 00 020000 	LOOK2:	TRZ	F,MDLCLF	;NOTE NO AMBIGUITY NOW
  2803	013377	552 02 0 00 016546 		HRRZM	R,SYMPNT	;SAVE POINTER TO SYMBOL
  2804	013400	253 02 0 00 013401 	LOOK3:	AOBJN	R,.+1
  2805	013401	253 02 0 00 013405 		AOBJN	R,LOOK3A	;ADVANCE POINTER TO NEXT SYM. ANY LEFT?
  2806						IFE	FTFILE,<
  2807	013402	606 02 0 00 400000 		TRNN	R,1B18		;HIGH SEGMENT SEARCH?
  2808	013403	331 02 0 00 016535 		SKIPL	R,SAVHSM	;NO, SEARCH HIGH SEG TABLE , IF ANY
  2809						>
  2810	013404	200 02 1 00 016544 		MOVE	R,@SYMP		;NO, WRAP AROUND END OF TABLE
  2811	013405	343 03 0 00 013353 	LOOK3A:	AOJLE	S,LOOK1		;TRANSFER IF MORE SYMBOLS TO LOOK AT
  2812	013406	332 07 0 00 016546 		SKIPE	W2,SYMPNT	;OUTSIDE LOCALS FOUND?
  2813	013407	602 00 0 00 020000 		TRNE	F,MDLCLF	;THAT ARE NOT MULTIPLY SYMBOLED?
  2814	013410	254 00 0 00 013426 		JRST	LOOK4		;NO
  2815	013411	325 00 0 00 013415 		JUMPGE	F,LOOKO1	;JUMP IF NO REGULAR SYMBOL FOUND
  2816	013412	200 04 0 07 000001 		MOVE	W,1(W2)		;GET OUTSIDE LOCAL VALUE
  2817	013413	317 04 0 06 000001 		CAMG	W,1(W1)		;BETTER THAN REGULAR SYM VALUE?
  2818	013414	254 00 0 00 013426 		JRST	LOOK4		;NO, USE REGULAR SYM
  2819	013415	505 06 0 00 400000 	LOOKO1:	HRLI	W1,(1B0)	;FLAG OUTSIDE LOCAL
  2820	013416	260 17 0 00 013451 		PUSHJ	P,SYMCSI	;ADD TO SYMBOL CACHE
  2821	013417	200 06 0 00 016546 	LOOKO2:	MOVE	W1,SYMPNT	;PICK UP POINTER TO SYMBOL
  2822	013420	312 05 0 06 000001 		CAME	T,1(W1)		;VALUE IDENTICAL?
  2823						JRST	[SUB T,1(W1)	;NO, COMPUTE DIFFERENCE
  2824	013421	254 00 0 00 016236 			JRST CPOPJ1]	;RETURN INEXACT
  2825	013422	260 17 0 00 014074 		PUSHJ	P,SPT0		;YES, TYPE IT OUT
  2826	013423	201 05 0 00 000043 		MOVEI	T,"#"
  2827	013424	260 17 0 00 014533 		PUSHJ	P,TOUT		;TYPE # TO SHOW POSSIBLE AMBIGUITY
  2828	013425	254 00 0 00 013447 		JRST	LOOKO3		;DOUBLE SKIP RETURN
  2829
  2830	013426	402 00 0 00 016546 	LOOK4:	SETZM	SYMPNT		;FORGET ANY OUTSIDE LOCAL SEEN
  2831	013427	325 00 0 00 010521 		JUMPGE	F,CPOPJ		;RETURN 1 IF NO GOOD SYMBOLS FOUND
  2832	013430	274 05 0 06 000001 		SUB	T,1(W1)		;SOMETHING FOUND, CALCULATE HOW FAR OFF
  2833	013431	254 00 0 00 010520 		JRST	CPOPJ1		;RETURN 2, SOMETHING FOUND BUT NOT EXACT
  2834
  2835	013432	200 07 0 02 000001 	LOOK5:	MOVE	W2,1(R)		;GET VALUE FROM TABLE
  2836	013433	430 07 0 00 000005 		XOR	W2,T		;COMPARE SIGNS
  2837	013434	321 07 0 00 013400 		JUMPL	W2,LOOK3	;REJECT IF SIGNS DIFFERENT
  2838	013435	325 00 0 00 013441 		JUMPGE	F,LOOK6		;TRANSFER IF NOTHING FOUND YET
  2839	013436	200 04 0 02 000001 		MOVE	W,1(R)		;GET VALUE FROM TABLE
  2840	013437	274 04 0 06 000001 		SUB	W,1(W1)		;COMPARE WITH BEST VALUE SO FAR
  2841	013440	323 04 0 00 013400 		JUMPLE	W,LOOK3		;REJECT IF WORSE
  2842	013441	540 06 0 00 000002 	LOOK6:	HRR	W1,R		;SAVE AS BEST VALUES SO FAR
  2843	013442	661 00 0 00 400000 		TLO	F,(1B0)		;SET FLAG SHOWING SOMETHING FOUND
  2844	013443	326 07 0 00 013400 		JUMPN	W2,LOOK3	;IF NOT PERFECT, CONTINUE LOOKING
  2845	013444	505 06 0 00 000000 		HRLI	W1,0		;FLAG GLOBAL OR PROGRAM LOCAL
  2846	013445	260 17 0 00 013451 		PUSHJ	P,SYMCSI	;ADD TO SYMBOL CACHE
  2847	013446	260 17 0 00 014074 	LOOKO4:	PUSHJ	P,SPT0		;PERFECT, TYPE IT OUT
  2848	013447	350 00 0 17 000000 	LOOKO3:	AOS	(P)		;SKIP TWICE
  2849	013450	254 00 0 00 010520 		JRST	CPOPJ1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 96
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0081

  2850					;ADD SYMBOL TO SYMBOL CACHE
  2851
  2852	013451	350 07 0 00 016715 	SYMCSI:	AOS	W2,SYMCSP	;ROUND-ROBIN INSERT
  2853	013452	301 07 0 00 000020 		CAIL	W2,NSYMCS	;WRAPAROUND?
  2854	013453	403 07 0 00 016715 		SETZB	W2,SYMCSP	;YES
  2855	013454	202 06 0 07 016675 		MOVEM	W1,SYMCSH(W2)	;STORE POINTER
  2856	013455	263 17 0 00 000000 		POPJ	P,
  2857
  2858
  2859					;VERIFY CACHE IS NOW USEFUL, I.E. IT POINTS TO THE PROPER SYMBOL
  2860					;TABLE
  2861
  2862	013456	260 17 0 00 010537 	CSHVER:	PUSHJ	P,SYMSET	;GET CURRENT POINTERS
  2863	013457	316 02 0 00 016716 		CAMN	R,OLDSYM	;SAME AS PREVIOUS?
  2864	013460	254 00 0 00 010520 		JRST	CPOPJ1		;YES. GO USE IT
  2865	013461	202 02 0 00 016716 		MOVEM	R,OLDSYM	;SAVE CURRENT SYMBOL POINTER
  2866									; AND FALL THROUGH TO FLUSH CACHE
  2867					;CLEAR SYMBOL CACHE
  2868
  2869	013462	200 14 0 00 016240 	CLRCSH:	MOVE	TT1,[SYMCSH,,SYMCSH+1]
  2870	013463	402 00 0 14 777777 		SETZM	-1(TT1)
  2871	013464	251 14 0 00 016714 		BLT	TT1,SYMCSH+NSYMCS-1
  2872	013465	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 97
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0082

  2873
  2874	013466	202 05 0 00 016531 	CONSYM:	MOVEM	T,LWT
  2875						IFN	FTFILE,<
  2876						MOVEM	T,POKER+1>	;STORE FOR /P/M LOGIC
  2877	013467	606 00 0 00 002000 		TRNN	F,LF1
  2878	013470	254 00 1 00 000010 		JRST	@SCH		;PIN OR FTOC
  2879	013471	602 00 0 00 000400 		TRNE	F,CF1
  2880	013472	254 00 0 00 014037 		JRST  FTOC
  2881
  2882	013473	641 05 0 00 700000 	PIN:	TLC	T,700000	;PRINT INSTRUCTION
  2883	013474	647 05 0 00 700000 		TLCN	T,700000
  2884	013475	254 00 0 00 013627 		JRST	INOUT		;IN-OUT INSTRUCTION OR NEG NUM
  2885	013476	404 05 0 00 016241 		AND	T,[XWD 777000,0]	;EXTRACT OPCODE BITS
  2886	013477	322 05 0 00 013563 		JUMPE	T,HLFW		;TYPE AS HALF WORDS
  2887					;	IFN	FTDEC20,<
  2888	013500	603 05 0 00 700000 		TLNE	T,(700B8)	;NO BUILT-IN OPCODES .L. 100
  2889					;>
  2890	013501	260 17 0 00 015726 		PUSHJ	P,OPTYPE
  2891					;	IFN	FTDEC20,<
  2892	013502	602 00 0 00 000002 		TRNE	F,ITF		;INSTRUCTION TYPED?
  2893	013503	254 00 0 00 013511 		JRST	PFULI1		;YES
  2894	013504	200 05 0 00 016531 		MOVE	T,LWT		;NO, GET WORD
  2895	013505	260 17 0 00 013333 		PUSHJ	P,LOOK		;TRY FOR FULL WORD MATCH
  2896	013506	254 00 0 00 013511 		 JRST PFULI1		;NOT FOUND
  2897	013507	254 00 0 00 013511 		 JRST PFULI1		;CLOSE IS NOT GOOD ENOUGH
  2898	013510	263 17 0 00 000000 		POPJ	P,		;FOUND AND PRINTED
  2899
  2900	013511				PFULI1:	;>
  2901	013511	205 05 0 00 777000 		MOVSI	T,777000
  2902	013512	404 05 0 00 016531 		AND	T,LWT
  2903	013513	602 00 0 00 000002 		TRNE	F,ITF		;HAS INSTRUCTION BEEN TYPED?
  2904	013514	254 00 0 00 013520 		JRST	PIN2		;YES
  2905	013515	260 17 0 00 013333 		PUSHJ	P,LOOK		;NO, LOOK IN SYMBOL TABLE
  2906	013516	254 00 0 00 013563 		 JRST HLFW		;NOTHING FOUND, OUTPUT AS HALFWORDS
  2907	013517	254 00 0 00 013563 		 JRST HLFW		;NO EXACT MATCH, OUTPUT AS HALFWORDS
  2908	013520	660 00 0 00 000200 	PIN2:	  TRO F,NAF		;EXACT MATCH TYPED, ALLOW NEG ADDRESSES
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 98
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0083

  2909
  2910	013521	260 17 0 00 014273 		PUSHJ	P,TSPC
  2911	013522	135 05 0 00 016242 		LDB	T,[XWD 270400,LWT]	;GET AC FIELD
  2912	013523	322 05 0 00 013533 		JUMPE	T,PI4
  2913	013524	554 04 0 00 016531 		HLRZ	W,LWT
  2914	013525	301 04 0 00 254000 		CAIL	W,(JRST)
  2915	013526	303 04 0 00 256777 		CAILE	W,256777	;IS INST BETWEEN JRST AND XCT?
  2916						JRST	[PUSHJ P,PAD	;NO, PRINT SYMBOLIC AC
  2917	013527	254 00 0 00 016243 			JRST PI3A]
  2918	013530	260 17 0 00 014037 		PUSHJ	P,TOC		;YES, PRINT NUMERIC AC
  2919	013531	201 06 0 00 000054 	PI3A:	MOVEI	W1,","
  2920	013532	260 17 0 00 014234 		PUSHJ	P,TEXT
  2921	013533	200 06 0 00 016531 	PI4:	MOVE	W1,LWT
  2922	013534	201 05 0 00 000100 		MOVEI	T,"@"
  2923	013535	603 06 0 00 000020 		TLNE	W1,20		;CHECK FOR INDIRECT BIT
  2924	013536	260 17 0 00 014533 		PUSHJ	P,TOUT
  2925	013537	550 05 0 00 016531 		HRRZ	T,LWT
  2926	013540	135 04 0 00 016245 		LDB	W,[XWD 331100,LWT]	;INSTRUCTION BITS
  2927						IFN	FTDEC20,<
  2928						MOVE	W1,W		;GET COPY
  2929						TRC	W1,600
  2930						TRNN	W1,710		;IS INST TRXX OR TLXX?
  2931						JRST	[PUSHJ P,TOC	;YES, PRINT ADDRESS NUMERIC
  2932							JRST PI7]>	;END IFN FTDEC20
  2933	013541	301 04 0 00 000240 		CAIL	W,240
  2934	013542	303 04 0 00 000247 		CAILE	W,247
  2935	013543	254 00 0 00 013561 		JRST	PI8		;ALL (EXCEPT ASH,ROT,LSH) HAVE SYMBOLIC ADRS
  2936	013544	607 06 0 00 000020 		TLNN	W1,20
  2937	013545	306 04 0 00 000243 		CAIN	W,<JFFO>_-33
  2938	013546	254 00 0 00 013561 		JRST	PI8		;JFFO AND @ GET SYMBOLIC ADDRESSES
  2939	013547	260 17 0 00 013621 		PUSHJ	P,PADS3A	;ONLY ABSOLUTE ADDRESSING FOR LSH, ASH, AND ROT
  2940	013550	620 00 0 00 000200 	PI7:	TRZ	F,NAF
  2941	013551	135 02 0 00 016246 		LDB	R,[XWD 220400,LWT]	;INDEX REGISTER CHECK
  2942	013552	322 02 0 00 010521 		JUMPE	R,CPOPJ		;EXIT
  2943	013553	201 05 0 00 000050 		MOVEI	T,"("
  2944	013554	260 17 0 00 014533 		PUSHJ	P,TOUT
  2945	013555	200 05 0 00 000002 		MOVE	T,R
  2946	013556	260 17 0 00 013572 		PUSHJ	P,PAD
  2947	013557	201 05 0 00 000051 		MOVEI	T,")"
  2948	013560	254 00 0 00 014533 		JRST	TOUT		;EXIT
  2949
  2950	013561	260 17 0 00 013572 	PI8:	PUSHJ	P,PAD
  2951	013562	254 00 0 00 013550 		JRST	PI7
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 99
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0084

  2952
  2953					HLFW:	REPEAT	0,< MOVE T,LWT
  2954						CAML	T,[DDTINT SAVPI]
  2955						CAMLE	T,[DDTINT BNADR+2]
  2956						SKIPA
  2957						JRST	PAD>
  2958	013563	554 05 0 00 016531 		HLRZ	T,LWT		;PRINT AS HALF WORDS
  2959	013564	322 05 0 00 013571 		JUMPE	T,HLFW1		;TYPE ONLY RIGHT ADR IF LEFT ADR=0
  2960	013565	660 00 0 00 000200 		TRO	F,NAF		;ALLOW NEGATIVE ADDRESSES
  2961	013566	260 17 0 00 013572 		PUSHJ	P,PAD
  2962	013567	205 06 0 00 261300 		MOVSI	W1,(ASCII /,,/)
  2963	013570	260 17 0 00 014236 		PUSHJ	P,TEXT2		;TYPE ,,
  2964	013571	550 05 0 00 016531 	HLFW1:	HRRZ	T,LWT
  2965
  2966					;PRINT ADDRESSES (ARG USUALLY 18 BITS BUT CAN BE 36 BITS)
  2967
  2968	013572	405 05 0 00 777777 	PAD:	ANDI	T,-1
  2969	013573	254 00 1 00 000011 		JRST	@AR		;PADSO OR PAD1
  2970
  2971	013574	322 05 0 00 014207 	PADSO:	JUMPE	T,FP7B		;PRINT A ZERO
  2972	013575	260 17 0 00 013333 		PUSHJ	P,LOOK
  2973	013576	254 00 0 00 013620 		 JRST PADS3		;NOTHING FOUND, TYPE NUMERIC
  2974	013577	334 07 0 06 000001 		 SKIPA W2,1(W1)		;SOMETHING FOUND, GET VALUE
  2975	013600	263 17 0 00 000000 		 POPJ P,		;EXACT MATCH FOUND AND TYPED
  2976						IFN	FTDEC20,<
  2977						CAIGE	T,1000>
  2978						IFE	FTDEC20,<
  2979						IFE	FTEXEC!FTFILE,<
  2980						CAIGE	T,100>		;IN USER MODE, PRINT NUMERIC IF SYMBOL OFF
  2981						IFN	FTEXEC!FTFILE,<
  2982	013601	305 05 0 00 000200 		CAIGE	T,200>		;  BY 100(8) OR MORE- 200(8) FOR KLDDT
  2983						>
  2984	013602	305 07 0 00 030000 		CAIGE	W2,30000	;PRINT ADRS .LT. 30000 NUMERICALLY (KLDDT)
  2985	013603	254 00 0 00 013620 		JRST	PADS3		;PRINT ADDRESS NUMERICALLY
  2986	013604	200 07 0 00 016673 		MOVE	W2,TEM		;GET ORIGINAL QUANTITY
  2987	013605	301 07 0 00 777700 		CAIL	W2,-100		;ADDRESS BETWEEN -100 AND -1?
  2988	013606	254 00 0 00 013620 		JRST	PADS3		;YES, PRINT NUMERICALLY
  2989	013607	202 05 0 00 016673 		MOVEM	T,TEM
  2990	013610	260 17 0 00 014074 		PUSHJ	P,SPT0
  2991	013611	201 05 0 00 000043 		MOVEI	T,"#"
  2992	013612	332 00 0 00 016546 		SKIPE	SYMPNT		;SYMBOL IS OUTSIDE LOCAL?
  2993	013613	260 17 0 00 014533 		PUSHJ	P,TOUT		;YES, FLAG
  2994	013614	201 05 0 00 000053 		MOVEI	T,"+"
  2995	013615	260 17 0 00 014533 	PADS1A:	PUSHJ	P,TOUT
  2996	013616	550 05 0 00 016673 		HRRZ	T,TEM
  2997	013617	254 00 0 00 014037 	PAD1:	JRST	TOC		;EXIT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 100
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0085

  2998	013620	200 05 0 00 016673 	PADS3:	MOVE	T,TEM
  2999	013621	602 00 0 00 000200 	PADS3A:	TRNE	F,NAF
  3000	013622	305 05 0 00 776000 		CAIGE	T,776000
  3001	013623	254 00 0 00 014037 		JRST	TOC
  3002	013624	212 05 0 00 016673 	PADS3B:	MOVNM	T,TEM
  3003	013625	201 05 0 00 000055 		MOVEI	T,"-"
  3004	013626	254 00 0 00 013615 		JRST	PADS1A
  3005
  3006	013627	650 05 0 00 016247 	INOUT:	TDC	T,[XWD -1,400000]	;IO INSTRUCTION OR NEG NUM
  3007	013630	656 05 0 00 016247 		TDCN	T,[XWD -1,400000]
  3008	013631	254 00 0 00 013624 		JRST	PADS3B		;TYPE AS NEG NUM
  3009	013632	135 02 0 00 016250 		LDB	R,[POINT 7,T,9]	;PICK OUT IO DEVICE BITS
  3010	013633	301 02 0 00 000160 		CAIL	R,700_-2	;IF DEVICE .L. 700, THEN TYPE
  3011	013634	254 00 0 00 013563 		JRST	HLFW		;TYPE AS HALF WORDS
  3012	013635	135 02 0 00 016251 		LDB	R,[POINT 3,T,12]
  3013	013636	137 02 0 00 016252 		DPB	R,[POINT 6,T,8]	;MOVE IO BITS OVER FOR OP DECODER
  3014	013637	260 17 0 00 015726 		PUSHJ	P,OPTYPE
  3015	013640	260 17 0 00 014273 		PUSHJ	P,TSPC
  3016	013641	205 05 0 00 077400 		MOVSI	T,077400
  3017	013642	404 05 0 00 016531 		AND	T,LWT
  3018	013643	322 05 0 00 013533 		JUMPE	T,PI4
  3019	013644	260 17 0 00 013333 		PUSHJ	P,LOOK		;LOOK FOR DEVICE NUMBER
  3020	013645	254 00 0 00 013650 		 JRST INOUT2		;NOTHING FOUND, PRINT AS OCTAL
  3021	013646	254 00 0 00 013650 		 JRST INOUT2		;NO EXACT MATCH, PRINT AS OCTAL
  3022	013647	254 00 0 00 013531 		 JRST PI3A		;EXACT MATCH TYPED
  3023	013650	200 05 0 00 016673 	INOUT2:	MOVE	T,TEM
  3024	013651	242 05 0 00 777750 		LSH	T,-30
  3025	013652	260 17 0 00 014037 		PUSHJ	P,TOC
  3026	013653	254 00 0 00 013531 		JRST	PI3A
  3027
  3028	013654	603 00 0 00 000001 	MASK:	TLNE	F,(QF)
  3029	013655	254 00 0 00 013662 		JRST	MASK1
  3030						IFE	FTFILE,<
  3031	013656	201 05 0 00 016613 		MOVEI	T,MSK
  3032	013657	201 04 0 00 000001 	MASK2:	MOVEI	W,1
  3033	013660	202 04 0 00 016533 		MOVEM	W,FRASE1
  3034	013661	254 00 0 00 010443 		JRST	QUANIN
  3035						>
  3036						IFN	FTFILE,<JRST ERR>
  3037	013662	202 05 0 00 016613 	MASK1:	MOVEM	T,MSK
  3038	013663	254 00 0 00 010176 		JRST	RET
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 101
KLDDT	MAC	 5-May-78 12:59		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0086

  3039
  3040					SUBTTL SEARCH LOGIC
  3041
  3042	013664	661 00 0 00 000020 	EFFEC:	TLO	F,(LTF)
  3043	013665	550 05 0 00 000005 		HRRZ	T,T
  3044	013666	201 02 0 00 774000 	WORD:	MOVEI	R,322000-326000	;JUMPE-JUMPN
  3045	013667	271 02 0 00 326240 	NWORD:	ADDI	R,326000+40*T	;JUMPN T,
  3046	013670	506 02 0 00 016357 		HRLM	R,SEAR2
  3047	013671	627 00 0 00 000001 		TLZN	F,(QF)
  3048	013672	254 00 0 00 010166 		JRST	ERR
  3049	013673	452 05 0 00 016524 		SETCAM	T,WRD
  3050	013674	205 05 0 00 777772 		MOVSI	T,FRASE-DEN-1	;PREVENT TYPE OUT OF DDT PARTS
  3051	013675	462 00 0 05 016527 		SETCMM	FRASE(T)
  3052	013676	253 05 0 00 013675 		AOBJN	T,.-1
  3053	013677	200 05 0 00 016551 		MOVE	T,ULIMIT
  3054	013700	603 00 0 00 002000 		TLNE	F,(SAF)
  3055	013701	661 00 0 00 000001 		TLO	F,(QF)		;SIMULATE A $Q TYPED
  3056	013702	260 17 0 00 013770 		PUSHJ	P,SETUP
  3057	013703	260 17 0 00 014263 		PUSHJ	P,CRF
  3058	013704	260 17 0 00 013164 	SEAR1:	PUSHJ	P,FETCH
  3059						IFE	FTDEC20,<
  3060	013705	254 00 0 00 013721 		JRST	SEAR2B>
  3061						IFN	FTDEC20,<
  3062						 JRST	[MOVEI R,777	;FETCH FAILED, BUMP TO NEXT PAGE
  3063							IORB R,DEFV
  3064							JRST SEAR2A]>	;CONTINUE SEARCH
  3065	013706	603 00 0 00 000020 		TLNE	F,(LTF)		;CHECK FOR EFFECTIVE ADDRESS SEARCH
  3066	013707	254 00 0 00 013745 		JRST	EFFEC0
  3067	013710	444 05 0 00 016524 		EQV	T,WRD
  3068	013711	404 05 0 00 016613 		AND	T,MSK
  3069	013712	256 00 0 00 016357 	SEAR2G:	XCT	SEAR2		;(JUMPE T, OR JUMPN T,) TO SEAR3 IF FOUND
  3070	013713	350 02 0 00 016550 	SEAR2A:	AOS	R,DEFV		;GET NEXT LOCATION
  3071	013714	606 02 0 00 000777 		TRNN	R,777		;CHECK LISTEN ONLY ONCE PER PAGE
  3072	013715	260 17 0 00 014572 		PUSHJ	P,LISTEN	;ANYTHING TYPED?
  3073	013716	313 02 0 00 016551 		 CAMLE R,ULIMIT		;OR END OF SEARCH?
  3074	013717	254 00 0 00 013725 		JRST	SEARFN		;YES
  3075	013720	254 00 0 00 013704 		JRST	SEAR1		;NO, LOOK SOME MORE
  3076
  3077						IFE	FTDEC20,<
  3078	013721	201 02 0 00 377777 	SEAR2B:	MOVEI	R,400000-1	;MOVE UP TO HI SEGMENT
  3079	013722	437 02 0 00 016550 		IORB	R,DEFV		;PUT IN MEMORY TOO
  3080	013723	606 02 0 00 400000 		TRNN	R,400000	;ALREADY IN HI SEGMENT?
  3081	013724	254 00 0 00 013713 		JRST	SEAR2A>		;NO
  3082	013725	462 00 0 00 016531 	SEARFN:	SETCMM	LWT		;COMPLEMENT BITS BACK AND STOP SEARCH
  3083	013726	254 00 0 00 010006 		JRST	DD1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 102
KLDDT	MAC	 5-May-78 12:59		SEARCH LOGIC                                                                       SEQ 0087

  3084
  3085	013727	260 17 0 00 014572 	SEAR3:	PUSHJ	P,LISTEN	;ANY TYPEIN?
  3086	013730	334 00 0 00 000000 		 SKIPA			;NO
  3087	013731	254 00 0 00 013725 		JRST	SEARFN		;YES, TERMINATE SEARCH
  3088	013732	200 02 0 00 016550 		MOVE	R,DEFV
  3089	013733	260 17 0 00 013164 		PUSHJ	P,FETCH
  3090	013734	254 00 0 00 010166 		JRST	ERR
  3091	013735	621 00 0 00 004000 		TLZ	F,(STF)		;GET RID OF SUPPRESS TYPEOUT MODE
  3092	013736	200 05 0 00 016550 		MOVE	T,DEFV
  3093	013737	260 17 0 00 011261 		PUSHJ	P,PSHLLC	;PUSH OLD LOCATION COUNTER
  3094	013740	260 17 0 00 011132 		PUSHJ	P,LI1		;CALL REGISTER EXAMINATION LOGIC TO TYPE OUT
  3095	013741	260 17 0 00 014263 		PUSHJ	P,CRF
  3096	013742	462 00 0 00 016531 		SETCMM	LWT
  3097	013743	462 00 0 00 016673 		SETCMM	TEM
  3098	013744	254 00 0 00 013713 	SEAR4:	JRST  SEAR2A
  3099
  3100	013745	201 04 0 00 000100 	EFFEC0:	MOVEI	W,100
  3101	013746	202 04 0 00 016673 		MOVEM	W,TEM
  3102	013747	200 04 0 00 000005 	EFFEC1:	MOVE	W,T
  3103	013750	135 02 0 00 016133 		LDB	R,[POINT 4,T,17]	;GET IR FIELD
  3104	013751	322 02 0 00 013756 		JUMPE	R,EFFEC2
  3105	013752	260 17 0 00 013164 		PUSHJ	P,FETCH
  3106	013753	254 00 0 00 010166 		JRST	ERR
  3107	013754	553 00 0 00 000005 		HRRZS	T		;GET RID OF BITS IN LEFT IN ORDER
  3108	013755	271 05 0 04 000000 		ADDI	T,(W)		;  PREVENT AROV WHEN ADDING ADDRESSES
  3109	013756	540 02 0 00 000005 	EFFEC2:	HRR	R,T
  3110	013757	607 04 0 00 000020 		TLNN	W,20		;INDIRECT BIT CHECK
  3111	013760	254 00 0 00 013765 		JRST	EFFEC3
  3112	013761	372 00 0 00 016673 		SOSE,TEM
  3113	013762	260 17 0 00 013164 		PUSHJ	P,FETCH
  3114	013763	254 00 0 00 013744 		JRST	SEAR4
  3115	013764	254 00 0 00 013747 		JRST	EFFEC1
  3116	013765	444 05 0 00 016524 	EFFEC3:	EQV	T,WRD
  3117	013766	405 05 0 00 777777 		ANDI	T,777777
  3118	013767	254 00 0 00 013712 		JRST	SEAR2G
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 103
KLDDT	MAC	 5-May-78 12:59		SEARCH LOGIC                                                                       SEQ 0088

  3119
  3120	013770	607 00 0 00 000001 	SETUP:	TLNN	F,(QF)		;QUANTITY TYPED?
  3121						IFE	FTDEC20,<
  3122	013771	201 05 0 00 777777 		MOVEI	T,777777>	;NO, DEFAULT HIGH ADR IS TOP OF MEMORY
  3123						IFN	FTDEC20,<
  3124						IFN	FTEXEC,<
  3125						HRRZ	T,.JBFF>	;DEFAULT UPPER LIMIT
  3126						IFE	FTEXEC,<
  3127						MOVEI	T,777777>>
  3128	013772	552 05 0 00 016551 		HRRZM	T,ULIMIT	;SAVE LAST ADDRESS OF SEARCH
  3129	013773	553 02 0 00 016550 		HRRZS	R,DEFV		;GET 1ST ADDRESS
  3130	013774	607 00 0 00 001000 		TLNN	F,(FAF)		;WAS A 1ST ADR SPECIFIED?
  3131	013775	403 02 0 00 016550 		SETZB	R,DEFV		;NO, MAKE IT ZERO
  3132	013776	313 02 0 00 016551 		CAMLE	R,ULIMIT	;LIMITS IN A REASONABLE ORDER?
  3133	013777	254 00 0 00 010166 		JRST	ERR		;NO
  3134	014000	263 17 0 00 000000 		POPJ	P,		;YES, RETURN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 104
KLDDT	MAC	 5-May-78 12:59		SEARCH LOGIC                                                                       SEQ 0089

  3135
  3136	014001	607 00 0 00 010000 	ZERO:	TLNN	F,(CCF)
  3137	014002	254 00 0 00 010166 		JRST	ERR
  3138	014003	260 17 0 00 013770 		PUSHJ	P,SETUP
  3139	014004	550 03 1 00 016544 		HRRZ	S,@SYMP		;GET 1ST ADR OF SYMBOL TABLE
  3140	014005	574 06 1 00 016544 		HLRE	W1,@SYMP	;GET LENGTH OF SYM TABLE
  3141	014006	274 06 0 00 000003 		SUB	W1,S		;GET NEG OF LAST ADR
  3142	014007	213 00 0 00 000006 		MOVNS	W1		;GET POS LAST ADR
  3143	014010	201 05 0 00 000000 		MOVEI	T,0		;0 TO STORE IN MEMORY
  3144	014011	606 02 0 00 777760 	ZERO1:	TRNN	R,777760
  3145	014012	254 00 0 00 014027 		JRST	ZEROR		;OK TO ZERO AC'S
  3146						IFE	FTDEC20,<
  3147						IFN	FTEXEC,<
  3148	014013	331 00 0 00 016717 		SKPUSR
  3149						>
  3150						IFN	FTEXEC!FTFILE,<
  3151						JRST	[CAIGE R,XZLOW
  3152							MOVEI R,XZLOW	;IN EXEC MODE, DON'T ZERO 20-40
  3153	014014	254 00 0 00 016253 			JRST ZERO3 ] >
  3154						>
  3155						IFE	FTFILE,<
  3156	014015	305 02 0 00 000140 		CAIGE	R,ZLOW
  3157	014016	201 02 0 00 000140 		MOVEI	R,ZLOW		;DON'T ZERO 20 THRU ZLOW
  3158	014017	301 02 0 00 010000 	ZERO3:	CAIL	R,DDTX
  3159	014020	303 02 0 00 016773 		CAILE	R,DDTEND
  3160	014021	254 00 0 00 014023 		JRST	.+2
  3161	014022	201 02 0 00 016773 		MOVEI	R,DDTEND	;DON'T ZERO DDT
  3162						IFE	FTDEC20,<
  3163	014023	311 02 0 00 000003 		CAML	R,S
  3164	014024	313 02 0 00 000006 		CAMLE	R,W1>
  3165	014025	254 00 0 00 014027 		JRST	.+2
  3166	014026	550 02 0 00 000006 		HRRZ	R,W1		;DON'T ZERO SYMBOL TABLE
  3167						>
  3168						IFN	FTFILE,<
  3169					ZERO3:>
  3170	014027	313 02 0 00 016551 	ZEROR:	CAMLE	R,ULIMIT	;ABOVE LIMITS?
  3171	014030	254 00 0 00 010006 		JRST	DD1		;YES, STOP
  3172	014031	260 17 0 00 013112 		PUSHJ	P,DEPMEM	;DEPOSIT T
  3173						IFE	FTFILE,<
  3174	014032	664 02 0 00 377777 		 TROA R,377777		;
  3175	014033	344 02 0 00 014011 		AOJA	R,ZERO1
  3176	014034	606 02 0 00 400000 		TRNN	R,400000	;HI SEGMENT?
  3177	014035	344 02 0 00 014011 		AOJA	R,ZERO1		;NO, KEEP GOING
  3178						>
  3179	014036	254 00 0 00 010006 		JRST	DD1		;FINISH
  3180						IFN	FTFILE,<AOJA R,ZERO1>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 105
KLDDT	MAC	 5-May-78 12:59		SEARCH LOGIC                                                                       SEQ 0090

  3181
  3182					SUBTTL OUTPUT SUBROUTINES
  3183
  3184	014037				FTOC:				;NUMERIC OUTPUT SUBROUTINE
  3185	014037	550 06 0 00 000012 	TOC:	HRRZ	W1,ODF
  3186	014040	306 06 0 00 000010 		CAIN	W1,10		;IS OUPUT RADIX NOT OCTAL, OR
  3187	014041	607 05 0 00 777777 		TLNN	T,-1		;ARE THERE  NO LEFT HALF BITS?
  3188	014042	254 00 0 00 014051 		JRST	TOCA		;YES, DO NOTHING SPECIAL
  3189	014043	542 05 0 00 016360 		HRRM	T,TOCS		;NO, TYPE AS HALF WORD CONSTANT
  3190	014044	557 00 0 00 000005 		HLRZS	T		;GET LEFT HALF
  3191	014045	260 17 0 00 014054 		PUSHJ	P,TOC0		;TYPE LEFT HALF
  3192	014046	205 06 0 00 261300 		MOVSI	W1,(ASCII /,,/)
  3193	014047	260 17 0 00 014236 		PUSHJ	P,TEXT2		;TYPE ,,
  3194	014050	256 00 0 00 016360 		XCT	TOCS		;GET RIGHT HALF BACK
  3195	014051	550 06 0 00 000012 	TOCA:	HRRZ	W1,ODF		;IS OUTPUT RADIX DECIMAL?
  3196	014052	306 06 0 00 000012 		CAIN	W1,12
  3197	014053	254 00 0 00 014065 		JRST	TOC4		;YES,TYPE SIGNED WITH PERIOD
  3198	014054	246 05 0 00 777735 	TOC0:	LSHC	T,-43
  3199	014055	242 06 0 00 777777 		LSH	W1,-1		;W1=T+1
  3200	014056	235 05 1 00 000012 		DIVI	T,@ODF
  3201	014057	506 06 0 17 000000 		HRLM	W1,0(P)
  3202	014060	332 00 0 00 000005 		SKIPE	T
  3203	014061	260 17 0 00 014054 		PUSHJ	P,TOC0
  3204	014062	554 05 0 17 000000 		HLRZ	T,0(P)
  3205	014063	271 05 0 00 000060 		ADDI	T,"0"
  3206	014064	254 00 0 00 014533 		JRST	TOUT
  3207
  3208	014065	200 02 0 00 000005 	TOC4:	MOVE	A,T		;TYPE AS SIGNED DECIMAL INTEGER
  3209	014066	325 05 0 00 014071 		JUMPGE	T,TOC5
  3210	014067	201 05 0 00 000055 		MOVEI	T,"-"
  3211	014070	260 17 0 00 014533 		PUSHJ	P,TOUT
  3212	014071	260 17 0 00 014200 	TOC5:	PUSHJ	P,FP7		;DECIMAL PRINT ROUTINE
  3213	014072	201 05 0 00 000056 	TOC6:	MOVEI	T,"."
  3214	014073	254 00 0 00 014533 		JRST	TOUT
  3215
  3216					;SYMBOL OUTPUT SUBROUTINE
  3217
  3218	014074	552 06 0 00 016547 	SPT0:	HRRZM	W1,SPSAV	;SAVE POINTER TO TYPED SYM
  3219	014075				SPT:				;RADIX 50 SYMBOL PRINT
  3220	014075	135 05 0 00 016256 		LDB	T,[POINT 32,0(W1),35]	;GET SYMBOL
  3221	014076	231 05 0 00 000050 	SPT1:	IDIVI	T,50
  3222	014077	506 06 0 17 000000 		HRLM	W1,0(P)
  3223	014100	322 05 0 00 014102 		JUMPE	T,SPT2
  3224	014101	260 17 0 00 014076 		PUSHJ	P,SPT1
  3225	014102	554 05 0 17 000000 	SPT2:	HLRZ	T,0(P)
  3226	014103	322 05 0 00 010521 		JUMPE	T,CPOPJ		;FLUSH NULL CHARACTERS
  3227	014104	271 05 0 00 000257 		ADDI	T,260-1
  3228	014105	303 05 0 00 000271 		CAILE	T,271
  3229	014106	271 05 0 00 000007 		ADDI	T,301-272
  3230	014107	303 05 0 00 000332 		CAILE	T,332
  3231	014110	275 05 0 00 000070 		SUBI	T,334-244
  3232	014111	306 05 0 00 000243 		CAIN	T,243
  3233	014112	201 05 0 00 000256 		MOVEI	T,256
  3234	014113	254 00 0 00 014533 		JRST	TOUT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 106
KLDDT	MAC	 5-May-78 12:59		OUTPUT SUBROUTINES                                                                 SEQ 0091

  3235
  3236	014114				SYMD:				;$D ;DELETE LAST SYM & PRINT NEW
  3237	014114	550 02 0 00 016547 		HRRZ	R,SPSAV		;PICK UP POINTER TO LAST SYM
  3238	014115	322 02 0 00 010166 		JUMPE	R,ERR
  3239	014116	200 05 0 02 000000 		MOVE	T,(R)		;PICK UP SYMBOL
  3240	014117	661 05 0 00 400000 		TLO	T,(DELO)	;TURN ON "SUPPRESS OUTPUT" BIT
  3241	014120	260 17 0 00 013154 		PUSHJ	P,DSYMER	;STORE BACK IN SYMBOL TABLE
  3242	014121	200 05 0 00 016531 		MOVE	T,LWT
  3243	014122	254 00 0 00 013466 		JRST	CONSYM		;PRINT OUT NEXT BEST SYMBOL
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 107
KLDDT	MAC	 5-May-78 12:59		OUTPUT SUBROUTINES                                                                 SEQ 0092

  3244
  3245					;FLOATING POINT OUTPUT
  3246
  3247	014123	200 02 0 00 000005 	TFLOT:	MOVE	A,T
  3248	014124	325 02 0 00 014133 		JUMPGE	A, TFLOT1
  3249	014125	213 00 0 00 000002 		MOVNS	A
  3250	014126	255 00 0 00 000000 		JFCL			;PREVENT OVERFLOW MESSAGE
  3251									; FROM FORTRAN PROGRAMS
  3252	014127	201 05 0 00 000055 		MOVEI	T,"-"
  3253	014130	260 17 0 00 014533 		PUSHJ	P,TOUT
  3254	014131	623 02 0 00 400000 		TLZE	A,400000
  3255	014132	254 00 0 00 014142 		JRST	FP1A
  3256	014133	607 02 0 00 000400 	TFLOT1:	TLNN	A, 400
  3257	014134	254 00 0 00 014071 		JRST	TOC5		;IF UNNORMALIZED, TYPE AS DECIMAL INTEGER
  3258
  3259	014135	201 03 0 00 000000 	FP1:	MOVEI	B,0
  3260	014136	315 02 0 00 014225 		CAMGE	A,FT01
  3261	014137	254 00 0 00 014162 		JRST	FP4
  3262	014140	311 02 0 00 014213 		CAML	A,FT8
  3263	014141	344 03 0 00 014162 		AOJA	B,FP4
  3264	014142	201 04 0 00 000000 	FP1A:	MOVEI	C,0
  3265
  3266	014143	225 02 0 00 000400 	FP3:	MULI	A,400
  3267	014144	244 03 0 02 777535 		ASHC	B,-243(A)
  3268	014145	402 00 0 00 016674 		SETZM	TEM1		;INIT 8 DIGIT COUNTER
  3269	014146	332 02 0 00 000003 		SKIPE	A,B		;DON'T TYPE A LEADING 0
  3270	014147	260 17 0 00 014200 		PUSHJ	P,FP7		;PRINT INTEGER PART OF 8 DIGITS
  3271	014150	260 17 0 00 014072 		PUSHJ	P,TOC6		;PRINT DECIMAL POINT
  3272	014151	211 02 0 00 000010 		MOVNI	A,10
  3273	014152	270 02 0 00 016674 		ADD	A,TEM1
  3274	014153	200 06 0 00 000004 		MOVE	W1,C
  3275	014154	200 05 0 00 000006 	FP3A:	MOVE	T,W1
  3276	014155	225 05 0 00 000012 		MULI	T,12
  3277	014156	260 17 0 00 014207 		PUSHJ	P,FP7B
  3278	014157	332 00 0 00 000006 		SKIPE,W1
  3279	014160	341 02 0 00 014154 		AOJL	A,FP3A
  3280	014161	263 17 0 00 000000 		POPJ	P,
  3281
  3282	014162	211 04 0 00 000006 	FP4:	MOVNI	C,6
  3283	014163	201 07 0 00 000000 		MOVEI	W2,0
  3284	014164	240 07 0 00 000001 	FP4A:	ASH	W2,1
  3285	014165	256 00 0 03 014226 		XCT,FCP(B)
  3286	014166	254 00 0 00 014171 		JRST	FP4B
  3287	014167	164 02 1 03 014227 		FMPR	A,@FCP+1(B)
  3288	014170	435 07 0 00 000001 		IORI	W2,1
  3289	014171	346 04 0 00 014164 	FP4B:	AOJN	C,FP4A
  3290	014172	261 17 0 00 000007 		PUSH	P,W2		;SAVE EXPONENT
  3291	014173	261 17 0 03 014231 		PUSH	P,FSGN(B)	;SAVE "E+" OR "E-"
  3292	014174	260 17 0 00 014143 		PUSHJ	P,FP3		;PRINT OUT FFF.FFF PART OF NUMBER
  3293	014175	262 17 0 00 000006 		POP	P,W1		;GET "E+" OR "E-" BACK
  3294	014176	260 17 0 00 014234 		PUSHJ	P,TEXT
  3295	014177	262 17 0 00 000002 		POP	P,A		;GET EXPONENT BACK
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 108
KLDDT	MAC	 5-May-78 12:59		OUTPUT SUBROUTINES                                                                 SEQ 0093

  3296
  3297	014200	231 02 0 00 000012 	FP7:	IDIVI	A,12		;DECIMAL OUTPUT SUBROUTINE
  3298	014201	217 00 0 00 000003 		MOVMS	B		;MAKE POSITIVE
  3299	014202	350 00 0 00 016674 		AOS	TEM1
  3300	014203	506 03 0 17 000000 		HRLM	B,(P)
  3301	014204	322 02 0 00 014206 		JUMPE	A,FP7A1
  3302	014205	260 17 0 00 014200 		PUSHJ	P,FP7
  3303
  3304	014206	554 05 0 17 000000 	FP7A1:	HLRZ	T,(P)
  3305	014207	271 05 0 00 000260 	FP7B:	ADDI	T,260
  3306	014210	254 00 0 00 014533 		JRST	TOUT
  3307
  3308	014211	353473	426555			353473426555		;1.0E32
  3309	014212	266434	157116			266434157116		;1.0E16
  3310	014213	233575	360400		FT8:	233575360400		;1.0E8
  3311	014214	216470	400000			216470400000		;1.0E4
  3312	014215	207620	000000			207620000000		;1.0E2
  3313	014216	204500	000000			204500000000		;1.0E1
  3314	014217	201400	000000		FT:	201400000000		;1.0E0
  3315	014220	026637	304365			026637304365		;1.0E-32
  3316	014221	113715	126246			113715126246		;1.0E-16
  3317	014222	146527	461671			146527461671		;1.0E-8
  3318	014223	163643	334273			163643334273		;1.0E-4
  3319	014224	172507	534122			172507534122		;1.0E-2
  3320	014225	175631	463146		FT01:	175631463146		;1.0E-1
  3321			014226		FT0=FT01+1
  3322
  3323	014226	313 02 0 04 014226 	FCP:	CAMLE	A, FT0(C)
  3324	014227	315 02 0 04 014217 		CAMGE	A, FT(C)
  3325	014230	000 00 0 04 014226 		Z	FT0(C)
  3326
  3327	014231	105 055 000 000 000 	FSGN:	ASCII	.E-.
  3328	014232	105 053 000 000 000 		ASCII	.E+.
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 109
KLDDT	MAC	 5-May-78 12:59		OUTPUT SUBROUTINES                                                                 SEQ 0094

  3329
  3330	014233	200 06 0 00 000005 	TEXTT:	MOVE	W1,T
  3331	014234	607 06 0 00 774000 	TEXT:	TLNN	W1,774000	;LEFT JUSTIFIED UNLESS LEFT CHAR IS NULL
  3332	014235	242 06 0 00 000035 		LSH	W1,35
  3333	014236	201 05 0 00 000000 	TEXT2:	MOVEI	T,0		;7 BIT ASCII TEXT OUTPUT SUBROUTINE
  3334	014237	246 05 0 00 000007 		LSHC	T,7
  3335	014240	260 17 0 00 014533 		PUSHJ	P,TOUT
  3336	014241	326 06 0 00 014236 		JUMPN	W1,TEXT2
  3337	014242	263 17 0 00 000000 		POPJ	P,
  3338
  3339	014243	242 05 0 00 777742 	R50PNT:	LSH	T,-36		;RADIX 50 SYMBOL PRINTER
  3340	014244	620 05 0 00 000003 		TRZ	T,3
  3341	014245	260 17 0 00 014037 		PUSHJ	P,TOC
  3342	014246	260 17 0 00 014273 		PUSHJ	P,TSPC
  3343	014247	201 06 0 00 016531 		MOVEI	W1,LWT		;SETUP FOR SPT
  3344	014250	254 00 0 00 014075 		JRST	SPT
  3345
  3346	014251	211 07 0 00 000006 	SIXBP:	MOVNI	W2,6		;SIXBIT PRINTER
  3347	014252	200 06 0 00 016531 		MOVE	W1,LWT
  3348	014253	201 05 0 00 000000 	SIXBP1:	MOVEI	T,0
  3349	014254	245 05 0 00 000006 		ROTC	T,6
  3350	014255	271 05 0 00 000040 		ADDI	T,40
  3351	014256	260 17 0 00 014533 		PUSHJ	P,TOUT
  3352	014257	341 07 0 00 014253 		AOJL	W2,SIXBP1
  3353	014260	263 17 0 00 000000 		POPJ	P,
  3354
  3355	014261	201 05 0 00 000015 	CRN:	MOVEI	T,15		;CARRIAGE RETURN
  3356	014262	254 00 0 00 014533 		JRST	TOUT
  3357
  3358
  3359	014263	260 17 0 00 014261 	CRF:	PUSHJ	P,CRN
  3360	014264	201 05 0 00 000012 		MOVEI	T,12		;LINE FEED
  3361	014265	254 00 0 00 014533 		JRST	TOUT
  3362
  3363	014266				LCT: IFE FTDEC20,<
  3364	014266	201 05 0 00 000011 		MOVEI	T,11
  3365						IFN	FTEXEC,<
  3366	014267	335 00 0 00 016717 		SKPEXC	>
  3367	014270	254 00 0 00 014533 		JRST	TOUT>		;IN USER MODE, TYPE A TAB
  3368						IFN	FTEXEC!FTDEC20,<
  3369	014271	260 17 0 00 014273 		PUSHJ	P,TSPC
  3370	014272	260 17 0 00 014273 		PUSHJ	P,TSPC >
  3371
  3372	014273	201 05 0 00 000040 	TSPC:	MOVEI	T,40		;SPACE
  3373	014274	254 00 0 00 014533 		JRST	TOUT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 110
KLDDT	MAC	 5-May-78 12:59		OUTPUT SUBROUTINES                                                                 SEQ 0095

  3374
  3375	014275	201 02 0 00 014314 	BITO:	MOVEI	R,BITT		;BYTE OUTPUT SUBROUTINE
  3376	014276	336 00 0 00 016510 		SKIPN	OLDAR
  3377	014277	202 11 0 00 016510 		MOVEM	AR,OLDAR
  3378	014300	551 11 0 00 014037 		HRRZI	AR,TOC
  3379	014301	626 00 0 00 000001 		TRZN	F,Q2F
  3380	014302	254 00 0 00 010166 		JRST	ERR
  3381	014303	200 05 0 00 016525 		MOVE	T,WRD2
  3382	014304	202 05 0 00 016506 		MOVEM	T,SVBTS
  3383	014305	201 05 0 00 000044 		MOVEI	T,^D36
  3384	014306	230 05 0 00 016525 		IDIV	T,WRD2
  3385	014307	332 00 0 00 000006 		SKIPE	T+1
  3386	014310	271 05 0 00 000001 		ADDI	T,1
  3387	014311	202 05 0 00 016507 		MOVEM	T,SVBTS2
  3388	014312	550 10 0 00 000002 		HRRZ	SCH,R
  3389	014313	254 00 0 00 011375 		JRST	BASE1O
  3390
  3391	014314	200 05 0 00 016507 	BITT:	MOVE	T,SVBTS2
  3392	014315	202 05 0 00 016512 		MOVEM	T,SVBT2
  3393	014316	200 06 0 00 016531 		MOVE	T+1,LWT
  3394	014317	202 06 0 00 016511 		MOVEM	T+1,SVBT3
  3395	014320	261 17 0 00 016531 		PUSH	P,LWT
  3396	014321	201 05 0 00 000000 	BITT2:	MOVEI	T,0
  3397	014322	200 07 0 00 016506 		MOVE	T+2,SVBTS
  3398	014323	246 05 0 07 000000 		LSHC	T,(T+2)
  3399	014324	202 05 0 00 016531 		MOVEM	T,LWT
  3400	014325	202 06 0 00 016511 		MOVEM	T+1,SVBT3
  3401	014326	302 11 0 00 013574 		CAIE	AR,PADSO
  3402	014327	260 17 0 00 014051 		PUSHJ	P,TOCA
  3403	014330	302 11 0 00 014037 		CAIE	AR,TOC
  3404	014331	260 17 0 00 013473 		PUSHJ	P,PIN
  3405	014332	377 00 0 00 016512 		SOSG	SVBT2
  3406	014333	254 00 0 00 014340 		JRST	BITT4
  3407	014334	201 05 0 00 000054 		MOVEI	T,","
  3408	014335	260 17 0 00 014533 		PUSHJ	P,TOUT
  3409	014336	200 06 0 00 016511 		MOVE	T+1,SVBT3
  3410	014337	254 00 0 00 014321 		JRST	BITT2
  3411
  3412	014340	262 17 0 00 016531 	BITT4:	POP	P,LWT
  3413	014341	263 17 0 00 000000 		POPJ	P,
  3414					XLIST
  3415					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 115
KLDDT	MAC	 5-May-78 12:59		PUNCH PAPER TAPE LOGIC                                                             SEQ 0096

  3416
  3417					SUBTTL TELETYPE IO LOGIC
  3418
  3419						IFN	FTEXEC,<	;EXECUTIVE MODE TELETYPE I/O
  3420
  3421			000200			DTE==200
  3422			000142			DTEII=142		;DTE20 INTERRUPT INST
  3423			000143			DTEUNS=143		;UNUSED
  3424			000144			DTEEPW=144		;EXAMINE PROTECTION WORD
  3425			000145			DTEERW=145		;EXAMINE RELOCATION WORD
  3426			000146			DTEDPW=146		;DEPOSIT PROTECTION WORD
  3427			000147			DTEDRW=147		;DEPOSIT RELOCATION WORD
  3428			000444			DTEFLG=444
  3429			000447			DTET11=447
  3430			000450			DTEF11=450
  3431			000451			DTECMD=451
  3432			000453			DTEOPR=453
  3433			000455			DTEMTD=455
  3434			000456			DTEMTI=456
  3435			004000			.DTMTO==10B27
  3436			004400			.DTMMC==11B27
  3437			005000			.DTNMC==12B27
  3438
  3439			000004			DTEN==4			;MAX NUMBER OF DTE'S
  3440			020000			TO11DB==1B22		;TO 11 DOORBELL
  3441			001000			CL11PT==1B26		;CLEAR TO 10 DOORBELL
  3442			000010			PI0ENB==1B32		;PI CHANNEL 0 ENABLE
  3443			000020			PIENB==1B31		;ENABLE PI SETTING
  3444			100000			DTEPRV==1B20		;RESTRICTED BIT
  3445					;APR INTERNAL CLOCK SERVICE
  3446
  3447					;CONI/CONO MTR,
  3448
  3449			000024		MTR==024			;DEVICE CODE
  3450
  3451			400000		MTRLOD==1B18			;LOAD  BITS 21-23
  3452					;	19-20			;UNUSED, MBZ
  3453			040000		MTREPA==1B21			;ENABLE EXEC PI ACCOUNTING
  3454			020000		MTRENA==1B22			;ENABLE EXEC NON-PI ACCOUNTING
  3455			010000		MTRAMN==1B23			;ACCOUNTING METERS ON
  3456			004000		MTRTBF==1B24			;TIME BASE OFF
  3457			002000		MTRTBN==1B25			;TIME BASE ON
  3458			001000		MTRCTB==1B26			;CLEAR TIME BASE
  3459					;	27-32			;UNUSED, MBZ
  3460			000007		MTRPIA==7B35			;PI ASSIGNMENT
  3461
  3462					;CONI/CONO TIM
  3463
  3464			000020		TIM==020			;DEVICE ASSIGNMENT
  3465
  3466			400000		TIMCIC==1B18			;CLEAR INTERVAL COUNTER
  3467					;	19-20			;UNUSED, MBZ
  3468			040000		TIMITO==1B21			;INTERVAL TIMER ON
  3469			020000		TIMDON==1B22			;DONE/CLEAR DONE
  3470			010000		TIMICO==1B23			;COUNTER OVERFLOW
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 116
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0097

  3471
  3472					;GET TYPEIN CHARACTER - EXEC MODE
  3473
  3474	014342	260 17 0 00 014421 	XTIN:	PUSHJ	P,XLISTE	;TELETYPE CHARACTER INPUT
  3475	014343	254 00 0 00 014342 		 JRST .-1
  3476	014344	322 05 0 00 014342 		JUMPE	T,XTIN		;FILTER NULLS
  3477	014345	302 05 0 00 000175 		CAIE	T,175
  3478	014346	306 05 0 00 000176 		CAIN	T,176
  3479	014347	201 05 0 00 000033 		MOVEI	T,33		;CHANGE ALL ALT MODES TO NEW
  3480						IFN	FTDEC20&<^-FTEDIT>,<	;IF NO FANCY EDITING...
  3481						CAIE	T,"U"-100	;^U?
  3482						CAIN	T,177		;RUBOUT?
  3483						JRST	WRONG		;YES, TYPE XXX
  3484						>
  3485						IFE	FTDEC20&<^-FTEDIT>,<	;IF FANCY EDITING...
  3486	014350	302 05 0 00 000177 		CAIE	T,177		;DON'T ECHO EDIT CHARACTERS
  3487	014351	306 05 0 00 000025 		CAIN	T,"U"-100
  3488	014352	254 00 0 00 014363 		JRST	XTIN1
  3489	014353	302 05 0 00 000022 		CAIE	T,"R"-100
  3490	014354	306 05 0 00 000027 		CAIN	T,"W"-100
  3491	014355	254 00 0 00 014363 		JRST	XTIN1>
  3492	014356	306 05 0 00 000015 		CAIN	T,15		;CR?
  3493						JRST	[MOVEI T,12	;YES, PRESET LF FOR NEXT TIME
  3494							MOVEM T,XNXTCH
  3495							MOVEI T,15	;ECHO AND RETURN CR NOW
  3496	014357	254 00 0 00 016257 			JRST .+1]
  3497	014360	336 00 0 00 016361 		SKIPN	TEXINF		;DON'T ECHO TAB UNLESS TEXT INPUT
  3498	014361	302 05 0 00 000011 		CAIE	T,11
  3499	014362	260 17 0 00 014535 		PUSHJ	P,ECHO		;ECHO THE CHAR
  3500	014363	263 17 0 00 000000 	XTIN1:	POPJ	P,
  3501
  3502					;TYPEOUT CHARACTER FROM T
  3503
  3504	014364	335 00 0 00 016720 	XTOUT:	SKPNKL			;KL10?
  3505	014365	254 00 0 00 014402 		JRST	KLXTYO		;YES
  3506	014366	506 05 0 17 000000 		HRLM	T,(P)
  3507	014367	221 05 0 00 200401 		IMULI	T,200401	;GENERATE PARITY
  3508	014370	404 05 0 00 016263 		AND	T,[11111111]
  3509	014371	220 05 0 00 016263 		IMUL	T,[11111111]
  3510	014372	544 05 0 17 000000 		HLR	T,(P)
  3511	014373	603 05 0 00 000010 		TLNE	T,10
  3512	014374	640 05 0 00 000200 		TRC	T,200		;MAKE PARITY EVEN
  3513	014375	7 120 30 0 00 000020 		CONSZ	TTY,20
  3514	014376	254 00 0 00 014375 		JRST	.-1
  3515	014377	7 120 14 0 00 000005 		DATAO	TTY,T
  3516	014400	405 05 0 00 000177 		ANDI	T,177		;FLUSH PARITY
  3517	014401	263 17 0 00 000000 		POPJ	P,0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 117
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0098

  3518					XLIST
  3519					LIST
  3520	014402	261 17 0 00 000000 	KLXTYO:	PUSH	P,0
  3521	014403	200 00 0 00 000005 		MOVE	0,T
  3522	014404	260 17 0 00 014410 		PUSHJ	P,$DTEXX	;PRINT CHAR
  3523	014405	262 17 0 00 000000 		POP	P,0
  3524	014406	405 05 0 00 000177 		ANDI	T,177
  3525	014407	263 17 0 00 000000 		POPJ	P,
  3526
  3527	014410	260 17 0 00 014531 	$DTEXX:	PUSHJ	P,EBRIDX	;GET INDEX OF EBR IN TT2
  3528	014411	402 00 0 15 000444 		SETZM	DTEFLG(TT2)
  3529	014412	202 00 0 15 000451 		MOVEM	0,DTECMD(TT2)	;LOAD COMMAND CODE
  3530	014413	256 00 0 00 016606 		XCT	DING11		;RING -11 DOORBELL
  3531	014414	336 00 0 15 000444 		SKIPN	DTEFLG(TT2)
  3532	014415	254 00 0 00 014414 		JRST	.-1		;WAIT TILL DONE
  3533	014416	200 00 0 15 000450 		MOVE	0,DTEF11(TT2)
  3534	014417	402 00 0 15 000444 		SETZM	DTEFLG(TT2)
  3535	014420	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 118
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0099

  3536					;SKIP IF HAVE INPUT CHAR AND RETURN IT IN T
  3537
  3538	014421	332 05 0 00 016722 	XLISTE:	SKIPE	T,XNXTCH	;PRESET CHAR?
  3539						JRST	[SETZM XNXTCH	;YES, RETURN IT ONCE
  3540	014422	254 00 0 00 016264 			JRST XLIST1]
  3541						IFN	FTYANK,<
  3542						SKIPE	COMAND		;COMAND FILE?
  3543						JRST	XPTRIN		;YES, READ IT
  3544						>
  3545	014423	335 00 0 00 016720 		SKPNKL
  3546	014424	254 00 0 00 014432 		JRST	KLXLIS		;DO KL10 INPUT
  3547	014425	7 120 34 0 00 000040 		CONSO	TTY,40		;NO, LISTEN FOR TTY
  3548	014426	263 17 0 00 000000 		POPJ	P,
  3549	014427	7 120 04 0 00 000005 		DATAI	TTY,T
  3550	014430	405 05 0 00 000177 	XLIST1:	ANDI	T,177
  3551	014431	254 00 0 00 010520 		JRST	CPOPJ1
  3552					XLIST
  3553					LIST
  3554	014432	261 17 0 00 000000 	KLXLIS:	PUSH	P,0
  3555	014433	201 00 0 00 003400 		MOVEI	3400		;SETUP DDT MODE INPUT REQ CODE
  3556	014434	260 17 0 00 014410 		PUSHJ	P,$DTEXX	;REQUEST TTY INPUT FROM PDP-11
  3557	014435	202 00 0 00 000005 		MOVEM	0,T
  3558	014436	262 17 0 00 000000 		POP	P,0
  3559	014437	405 05 0 00 000177 		ANDI	T,177
  3560	014440	306 05 0 00 000003 		CAIN	T,003		;CONTROL C ?
  3561	014441	254 00 0 00 014445 		JRST	KLCC		;YES
  3562	014442	336 00 0 00 000005 		SKIPN	T		;ANY RESPONSE ?
  3563	014443	263 17 0 00 000000 		POPJ	P,		;NO, NON-SKIP RETURN
  3564	014444	254 00 0 00 014430 		JRST	XLIST1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 119
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0100

  3565	014445	200 05 0 00 016266 	KLCC:	MOVE	T,[JRST KLCC1]
  3566	014446	254 00 0 00 011557 		JRST	XEC0		;RESTORE BP'S ETC.
  3567
  3568	014447	7 000 20 0 00 000000 	KLCC1:	CONO	0,0		;CLEAR APR
  3569	014450	202 00 0 00 016773 		MOVEM	0,KLCC0#
  3570	014451	7 010 24 0 00 000000 		CONI	10,0
  3571	014452	606 00 0 00 600000 		TRNN	600000		;IS CACHE ON ?
  3572	014453	254 00 0 00 014457 		JRST	KLCC2		;NO
  3573	014454	7 014 10 0 00 000000 		BLKO	14,0		;YES, FLUSH CACHE
  3574	014455	7 000 30 0 00 200000 		CONSZ	0,200000
  3575	014456	254 00 0 00 014455 		JRST	.-1		;WAIT TILL BUSY GOES AWAY
  3576
  3577	014457	261 17 0 00 000015 	KLCC2:	PUSH	P,TT2
  3578	014460	260 17 0 00 014531 		PUSHJ	P,EBRIDX
  3579	014461	201 00 0 00 000403 		MOVEI	403
  3580	014462	202 00 0 15 000451 		MOVEM	DTECMD(TT2)	;END OF PROGRAM CALL
  3581	014463	262 17 0 00 000015 		POP	P,TT2
  3582	014464	200 00 0 00 016773 		MOVE	0,KLCC0
  3583	014465	256 00 0 00 016606 		XCT	DING11		;DOORBELL THE -11
  3584	014466	254 00 0 00 014466 		JRST	.		;HANG UP, -11 WILL ABORT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 120
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0101

  3585					;SAVE USER STATUS ('RETURN' TO DDT)
  3586
  3587	014467	335 00 0 00 016720 	XTTYRE:	SKPNKL
  3588	014470	254 00 0 00 014517 		JRST	LTTYRE		;DO KL10 SAVE STATUS
  3589	014471	332 00 0 00 016605 		SKIPE	SAVTTY		;ALREADY HAVE IT?
  3590	014472	254 00 0 00 014504 		JRST	TTY1		;YES
  3591	014473	7 120 24 0 00 016605 		CONI	TTY,SAVTTY	;SAVE PI ASSMT
  3592	014474	7 120 20 0 00 000000 		CONO	TTY,0		;SET PI ASSMT TO 0
  3593	014475	205 07 0 00 000001 		MOVSI	W2,(1000000)
  3594	014476	7 120 30 0 00 000120 		CONSZ	TTY,120		;WAIT FOR PREVIOUS ACTIVITY TO FINISH
  3595	014477	367 07 0 00 014476 		SOJG	W2,.-1		;BUT DON'T WAIT FOREVER
  3596	014500	7 120 24 0 00 000007 		CONI	TTY,W2		;UPDATE STATUS BITS
  3597	014501	137 07 0 00 016267 		DPB	W2,[POINT 15,SAVTTY,32]
  3598	014502	7 120 04 0 00 000007 		DATAI	TTY,W2
  3599	014503	506 07 0 00 016605 		HRLM	W2,SAVTTY
  3600	014504	7 120 20 0 00 003410 	TTY1:	CONO	TTY,3410	;INIT TTY FOR DDT
  3601	014505	263 17 0 00 000000 		POPJ	P,
  3602
  3603					;RESTORE USER STATUS ('LEAVE' DDT)
  3604
  3605	014506	335 00 0 00 016720 	XTTYLE:	SKPNKL
  3606	014507	254 00 0 00 014526 		JRST	LTTYLE		;DO KL10 RESTORE STATUS
  3607	014510	7 120 30 0 00 000120 		CONSZ	TTY,120		;WAIT FOR LAST OUTPUT
  3608	014511	254 00 0 00 014510 		JRST	.-1
  3609	014512	7 120 20 0 00 001200 		CONO	TTY,1200	;CLEAR DONE FLAGS
  3610	014513	200 05 0 00 016605 		MOVE	T,SAVTTY
  3611	014514	7 120 20 0 05 000000 		CONO	TTY,0(T)	;RESTORE USER STATE
  3612	014515	402 00 0 00 016605 		SETZM	SAVTTY		;NOTE USER STATE NOW IN EFFECT
  3613	014516	263 17 0 00 000000 		POPJ	P,
  3614
  3615	014517	402 00 0 00 000444 	LTTYRE:	SETZM	DTEFLG
  3616	014520	402 00 0 00 000447 		SETZM	DTET11
  3617	014521	402 00 0 00 000450 		SETZM	DTEF11
  3618	014522	200 05 0 00 000453 		MOVE	T,DTEOPR
  3619	014523	434 05 0 00 016270 		OR	T,[CONO 200,TO11DB]
  3620	014524	202 05 0 00 016606 		MOVEM	T,DING11
  3621	014525	263 17 0 00 000000 		POPJ	P,
  3622
  3623	014526	201 05 0 00 003000 	LTTYLE:	MOVEI	T,3000
  3624	014527	260 17 0 00 014402 		PUSHJ	P,KLXTYO
  3625	014530	254 00 0 00 014517 		JRST	LTTYRE
  3626
  3627	014531	402 00 0 00 000015 	EBRIDX:	SETZM	TT2
  3628	014532	263 17 0 00 000000 		POPJ	P,
  3629					XLIST
  3630					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 123
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0102

  3631
  3632					;TELETYPE OUTPUT - COMMON START POINT
  3633
  3634	014533	402 00 0 00 016367 	TOUT:	SETZM	CHINP		;RESET INPUT LINE
  3635	014534	402 00 0 00 016362 		SETZM	CHINC
  3636	014535	261 17 0 00 000005 	ECHO:	PUSH	P,T		;SAVE ORIG CHAR
  3637	014536	306 05 0 00 000033 		CAIN	T,33		;CONVERT ESC
  3638						JRST	[MOVEI T,"$"
  3639	014537	254 00 0 00 016271 			JRST ECHO1]
  3640	014540	302 05 0 00 000015 		CAIE	T,15		;CR OR LF?
  3641	014541	306 05 0 00 000012 		CAIN	T,12
  3642	014542	254 00 0 00 014555 		JRST	ECHO1		;YES, NO CONVERSION
  3643	014543	306 05 0 00 000007 		CAIN	T,"G"-100	;BELL?
  3644	014544	254 00 0 00 014555 		JRST	ECHO1		;NO CONVERSION
  3645	014545	306 05 0 00 000011 		CAIN	T,11		;TAB?
  3646						IFE	FTEXEC,<
  3647						JRST	ECHO1>		;NO CONVERSION OF TAB IN USER MODE
  3648						IFN	FTEXEC,<
  3649						JRST	[SKPEXC
  3650							JRST ECHO1	;DITTO
  3651							MOVEI T," "	;CONVERT TAB TO SPACES IN EXEC MODE
  3652							PUSHJ P,TOUT0
  3653							MOVEI T," "
  3654							PUSHJ P,TOUT0
  3655							MOVEI T," "
  3656	014546	254 00 0 00 016273 			JRST ECHO1]
  3657						>			;END FTEXEC
  3658	014547	301 05 0 00 000040 		CAIL	T,40		;CONTROL CHAR?
  3659	014550	254 00 0 00 014555 		JRST	ECHO1		;NO
  3660	014551	201 05 0 00 000136 		MOVEI	T,"^"		;YES, INDICATE
  3661	014552	260 17 0 00 014560 		PUSHJ	P,TOUT0
  3662	014553	200 05 0 17 000000 		MOVE	T,0(P)		;RECOVER ORIG CHAR
  3663	014554	271 05 0 00 000100 		ADDI	T,100		;CONVERT TO PRINTING EQUIVALENT
  3664	014555	260 17 0 00 014560 	ECHO1:	PUSHJ	P,TOUT0		;DO DEVICE-DEPENDENT OUTPUT
  3665	014556	262 17 0 00 000005 		POP	P,T
  3666	014557	263 17 0 00 000000 		POPJ	P,
  3667
  3668						IFE	FTDEC20,<
  3669		051000	000000		OPDEF TTCALL [51B8]
  3670
  3671	014560				TOUT0:
  3672	014560	331 00 0 00 016717 		IFN	FTEXEC,< SKPUSR
  3673	014561	254 00 0 00 014364 		JRST	XTOUT >
  3674						IFN	FTFILE,< SKIPE COMAND	;IS THERE A COMMAND FILE?
  3675						JRST	PUTCHR>		;YES 
  3676
  3677	014562	332 00 0 00 016721 		SKIPE	TOPS20
  3678	014563	254 00 0 00 014566 		JRST	.+3
  3679	014564	051 01 0 00 000005 		TTCALL	1,T		;OUTPUT A CHARACTER
  3680	014565	263 17 0 00 000000 		POPJ	P,
  3681	014566	250 01 0 00 000005 		EXCH	T1,T
  3682	014567	104 00 0 00 000074 		PBOUT
  3683	014570	250 01 0 00 000005 		EXCH	T1,T
  3684	014571	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 124
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0103

  3685
  3686	014572				LISTEN:
  3687	014572	331 00 0 00 016717 		IFN	FTEXEC,< SKPUSR
  3688	014573	254 00 0 00 014421 		JRST	XLISTE >
  3689						IFE	FTFILE,<
  3690						IFN	FTYANK,<
  3691						SKIPE	COMAND
  3692						JRST	PTRIN>>
  3693						IFN	FTFILE,<	;FILDDT?
  3694						SKIPE	COMAND		;STILL READING COMAND FILE?
  3695						POPJ	P,0		; IF YES, DO NOT LOOK FOR INPUT
  3696									; 1. SPEED UP FILDDT AND
  3697									; 2. ALLOW USER TO TYPE AHEAD
  3698									;  (ONE CONTROL C)
  3699						>
  3700	014574	373 00 0 00 016577 		SOSLE	LCNT		;TIME TO DO TTCALL
  3701	014575	263 17 0 00 000000 		POPJ	P,0		;NO--RETURN
  3702	014576	201 05 0 00 000012 		MOVEI	T,12		;YES--RESET COUNT
  3703	014577	202 05 0 00 016577 		MOVEM	T,LCNT		; ..
  3704	014600	332 00 0 00 016721 		SKIPE	TOPS20
  3705	014601	254 00 0 00 014605 		JRST	.+4
  3706	014602	051 02 0 00 000005 		TTCALL	2,T		;GET NEXT CHAR, NO IO WAIT
  3707	014603	263 17 0 00 000000 		POPJ	P,		;NO CHARACTER EXISTED, RETURN
  3708	014604	254 00 0 00 010520 		JRST	CPOPJ1		;CHARACTER WAS THERE, SKIP RETURN
  3709	014605	250 01 0 00 000005 		EXCH	T1,T
  3710	014606	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3711	014607	104 00 0 00 000102 		SIBE
  3712	014610	350 00 0 17 000000 		AOS	(P)
  3713	014611	250 01 0 00 000005 		EXCH	T1,T
  3714	014612	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 125
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0104

  3715						IFN	FTEXEC,<
  3716	014613	331 00 0 00 016717 	TTYRET:	SKPUSR
  3717	014614	254 00 0 00 014467 		JRST	XTTYRET
  3718	014615	336 00 0 00 016721 		SKIPN	TOPS20
  3719	014616	263 17 0 00 000000 		POPJ	P,
  3720	014617	332 00 0 00 016605 		SKIPE	SAVTTY		;ALREADY HAVE STATE ?
  3721	014620	254 00 0 00 014627 		JRST	TTYR1		;YES
  3722	014621	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3723	014622	104 00 0 00 000107 		RFMOD			;GET MODES
  3724	014623	202 02 0 00 016605 		MOVEM	T2,SAVTTY
  3725	014624	104 00 0 00 000112 		RFCOC			;GET CC MODES
  3726	014625	202 02 0 00 016607 		MOVEM	T2,SAVTT2
  3727	014626	202 03 0 00 016610 		MOVEM	T3,SAVTT3
  3728	014627	201 01 0 00 000100 	TTYR1:	MOVEI	T1,.PRIIN
  3729	014630	104 00 0 00 000107 		RFMOD
  3730	014631	620 02 0 00 770300 		TRZ	T2,TT%WAK+TT%DAM
  3731	014632	660 02 0 00 164100 		TRO	T2,TT%WKF+TT%WKN+TT%WKP+TT%ECO+01B29
  3732	014633	104 00 0 00 000110 		SFMOD
  3733	014634	200 02 0 00 014642 		MOVE	T2,TTYCC2
  3734	014635	200 03 0 00 014643 		MOVE	T3,TTYCC3
  3735	014636	104 00 0 00 000113 		SFCOC			;SETUP PROPER DDT MODES
  3736	014637	201 01 0 00 400000 		MOVEI	T1,.FHSLF
  3737	014640	104 00 0 00 000130 		DIR
  3738	014641	263 17 0 00 000000 		POPJ	P, >
  3739
  3740	014642	052531	553125		TTYCC2:	BYTE	(2)	0,1,1,1,1,1,1,2,1,2,3,1,1,2,1,1,1,1
  3741	014643	252525	652400		TTYCC3:	BYTE	(2)	1,1,1,1,1,1,1,1,1,3,1,1,1,1
  3742						IFE	FTEXEC,<TTYRET==CPOPJ>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 126
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0105

  3743	014644				TTYCLR:
  3744	014644	331 00 0 00 016717 		IFN	FTEXEC,< SKPUSR >
  3745	014645	263 17 0 00 000000 		POPJ	P,
  3746	014646	332 00 0 00 016721 		SKIPE	TOPS20
  3747	014647	254 00 0 00 014654 		JRST	.+5
  3748	014650	051 14 0 00 000000 		TTCALL	14,		;CLEAR ^O, SKIP ON INPUT CHARS
  3749	014651	263 17 0 00 000000 		 POPJ P,		;NO INPUT CHARS, OR EXEC MODE
  3750	014652	051 11 0 00 000000 		TTCALL	11,		;FLUSH ALL
  3751	014653	254 00 0 00 014662 		JRST	.+7
  3752	014654	201 01 0 00 000101 		MOVEI	1,.PRIOU
  3753	014655	104 00 0 00 000107 		RFMOD
  3754	014656	621 02 0 00 400000 		TLZ	2,(TT%OSP)
  3755	014657	104 00 0 00 000110 		SFMOD
  3756	014660	201 01 0 00 000100 		MOVEI	1,.PRIIN
  3757	014661	104 00 0 00 000100 		CFIBF
  3758	014662	260 17 0 00 014572 		PUSHJ	P,LISTEN
  3759	014663	255 00 0 00 000000 		 JFCL
  3760	014664	263 17 0 00 000000 		POPJ	P,		;WAITING INPUT CHARACTERS
  3761
  3762						IFN	FTEXEC,<
  3763	014665	331 00 0 00 016717 	TTYLEV:	SKPUSR
  3764	014666	254 00 0 00 014506 		JRST	XTTYLEV
  3765	014667	336 00 0 00 016721 		SKIPN	TOPS20
  3766	014670	263 17 0 00 000000 		POPJ	P,
  3767	014671	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3768	014672	200 02 0 00 016605 		MOVE	T2,SAVTTY
  3769	014673	104 00 0 00 000110 		SFMOD			;RESTORE MODES
  3770	014674	200 02 0 00 016607 		MOVE	T2,SAVTT2
  3771	014675	200 03 0 00 016610 		MOVE	T3,SAVTT3
  3772	014676	104 00 0 00 000113 		SFCOC			;RESTORE CC MODES
  3773	014677	201 01 0 00 400000 		MOVEI	1,.FHSLF
  3774	014700	335 00 0 00 016612 		SKIPGE	SAVSTS
  3775	014701	104 00 0 00 000126 		EIR
  3776	014702	402 00 0 00 016605 		SETZM	SAVTTY
  3777	014703	263 17 0 00 000000 		POPJ	P, >
  3778
  3779						IFE	FTEXEC,<TTYLEV==CPOPJ>
  3780						>			;END IFE FTDEC20
  3781
  3782	014704	354 00 0 00 016361 	TEXIN:	AOSA	TEXINF		;NOTE TEXT INPUT
  3783	014705	402 00 0 00 016361 	TIN:	SETZM	TEXINF		;NOTE NOT TEXT INPUT
  3784						IFN	FTDEC20&FTEXEC&<^-FTEDIT>,<
  3785						SKPUSR			;EXEC MODE?
  3786						JRST	XTIN>		;YES, SIMPLE INPUT
  3787	014706	375 00 0 00 016362 	TIN1:	SOSGE	CHINC		;CHARACTER LEFT IN LINE BUFFER?
  3788	014707	254 00 0 00 014712 		JRST	CHIN1		;NO, GO REFILL BUFFER
  3789	014710	134 05 0 00 016367 		ILDB	T,CHINP		;GET CHARACTER
  3790	014711	263 17 0 00 000000 		POPJ	P,
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 127
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0106

  3791					;REFILL LINE BUFFER WITH EDITING
  3792
  3793	014712	331 00 0 00 016717 	CHIN1:	SKPUSR			;EXEC MODE?
  3794	014713	254 00 0 00 014762 		JRST	XCHIN1		;YES, USE SIMULATION ROUTINES
  3795	014714	336 00 0 00 016721 		SKIPN	TOPS20
  3796	014715	254 00 0 00 014762 		JRST	XCHIN1		;TOPS-10
  3797	014716	332 01 0 00 016367 		SKIPE	T1,CHINP	;REINIT LINE?
  3798	014717	254 00 0 00 014724 		JRST	CHIN2		;NO
  3799	014720	201 01 0 00 000144 		MOVEI	T1,NLINBF*5	;YES, SETUP MAX CHAR COUNT
  3800	014721	202 01 0 00 016370 		MOVEM	T1,LINSPC
  3801	014722	200 01 0 00 016372 		MOVE	T1,LINBP	;SETUP POINTER
  3802	014723	202 01 0 00 016367 		MOVEM	T1,CHINP
  3803	014724	202 01 0 00 016374 	CHIN2:	MOVEM	T1,TEXTIB+.RDBKL	;SET BACKUP LIMIT
  3804	014725	337 00 0 00 016370 		SKIPG	LINSPC		;ROOM LEFT IN BUFFER?
  3805	014726	254 00 0 00 010166 		JRST	ERR		;NO, TOO MUCH TYPIN
  3806	014727	400 01 0 00 000000 		SETZ	T1,
  3807	014730	332 00 0 00 016363 		SKIPE	WAKALL		;WAKEUP ON EVERYTHING?
  3808	014731	201 01 0 00 015016 		MOVEI	T1,ONES4	;YES, USE WAKEUP TABLE
  3809	014732	202 01 0 00 016373 		MOVEM	T1,ETXTB
  3810	014733	261 17 0 00 016370 		PUSH	P,LINSPC	;SAVE CURRENT SPACE
  3811	014734	261 17 0 00 016367 		PUSH	P,CHINP		;AND POINTER
  3812	014735	336 00 0 00 016361 		SKIPN	TEXINF		;TEXT INPUT?
  3813	014736	260 17 0 00 015022 		PUSHJ	P,TTYTOF	;NO, SUPPRESS TAB ECHO
  3814	014737	201 01 0 00 016364 		MOVEI	T1,TEXTIB	;POINT TO ARG BLOCK
  3815	014740	104 00 0 00 000524 		TEXTI			;INPUT TO NEXT BREAK CHAR
  3816	014741	254 00 0 00 010166 		 JRST ERR		;BAD ARGS (IMPOSSIBLE)
  3817	014742	260 17 0 00 015024 		PUSHJ	P,TTYTON	;RESTORE NORMAL TAB ECHO
  3818	014743	262 17 0 00 016367 		POP	P,CHINP		;RESTORE POINTER TO CHARS JUST TYPED
  3819	014744	200 01 0 00 016365 		MOVE	T1,TEXTIB+.RDFLG	;GET FLAGS
  3820	014745	603 01 0 00 000030 		TXNE	T1,RD%BFE+RD%BLR	;DELETIONS?
  3821	014746	254 00 0 00 014753 		JRST	CHIN3		;YES
  3822	014747	262 17 0 00 000001 		POP	P,T1		;RECOVER OLD SPACE COUNT
  3823	014750	274 01 0 00 016370 		SUB	T1,LINSPC	;COMPUTE NUMBER CHARS JUST TYPED
  3824	014751	202 01 0 00 016362 		MOVEM	T1,CHINC	;SETUP COUNT
  3825	014752	254 00 0 00 014706 		JRST	TIN1		;GO RETURN NEXT CHAR
  3826
  3827					;USER HAS DELETED BACK INTO TEXT ALREADY PROCESSED, THEREFORE
  3828					;LINE MUST BE REPROCESSED FROM BEGINNING.  POSSIBLY ALL TEXT HAS BEEN
  3829					;DELETED.
  3830
  3831	014753	201 01 0 00 000144 	CHIN3:	MOVEI	T1,NLINBF*5	;COMPUTE NUMBER CHARS NOW IN LINE
  3832	014754	274 01 0 00 016370 		SUB	T1,LINSPC
  3833	014755	322 01 0 00 010163 		JUMPE	T1,WRONG	;JUMP IF WHOLE LINE DELETED
  3834	014756	202 01 0 00 016362 		MOVEM	T1,CHINC	;LINE NOT NULL, SETUP CHAR COUNT
  3835	014757	200 01 0 00 016372 		MOVE	T1,LINBP	;REINIT POINTER
  3836	014760	202 01 0 00 016367 		MOVEM	T1,CHINP
  3837	014761	254 00 0 00 010014 		JRST	DD2		;CLEAR WORLD AND REDO LINE
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 128
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0107

  3838
  3839						IFN	<^-FTDEC20>!<FTEXEC&FTEDIT>,<
  3840						IFNDEF	T1,<
  3841						T1==A
  3842						PURGT1==-1
  3843						>
  3844	014762	332 01 0 00 016367 	XCHIN1:	SKIPE	T1,CHINP	;REINIT LINE?
  3845	014763	254 00 0 00 014770 		JRST	XCHIN2		;NO
  3846	014764	201 01 0 00 000144 		MOVEI	T1,NLINBF*5	;YES, SETUP MAX CHAR COUNT
  3847	014765	202 01 0 00 016370 		MOVEM	T1,LINSPC
  3848	014766	200 01 0 00 016372 		MOVE	T1,LINBP	;SETUP POINTER
  3849	014767	202 01 0 00 016367 		MOVEM	T1,CHINP
  3850	014770	202 01 0 00 016371 	XCHIN2:	MOVEM	T1,LINDB	;SET BEGINNING OF DELETE BUFFER
  3851	014771	337 00 0 00 016370 		SKIPG	LINSPC		;ROOM LEFT IN BUFFER?
  3852	014772	254 00 0 00 010166 		JRST	ERR		;NO, TOO MUCH TYPIN
  3853	014773	201 01 0 00 000006 		MOVEI	T1,LINBP-TEXTIB	;SIZE OF BLOCK
  3854	014774	332 00 0 00 016363 		SKIPE	WAKALL		;WAKEUP ON EVERYTHING?
  3855	014775	201 01 0 00 000007 		MOVEI	T1,ETXTB-TEXTIB	;YES, INCLUDE WAKEUP TABLE
  3856	014776	202 01 0 00 016364 		MOVEM	T1,TEXTIB	;SET SIZE IN BLOCK
  3857	014777	261 17 0 00 016370 		PUSH	P,LINSPC	;SAVE CURRENT SPACE
  3858	015000	261 17 0 00 016367 		PUSH	P,CHINP		;AND POINTER
  3859	015001	201 01 0 00 016364 		MOVEI	T1,TEXTIB	;POINT TO ARG BLOCK
  3860	015002	260 17 0 00 015101 		PUSHJ	P,TXTI
  3861	015003	254 00 0 00 010166 		 JRST ERR		;BAD ARGS (IMPOSSIBLE)
  3862	015004	262 17 0 00 016367 		POP	P,CHINP		;RESTORE POINTER TO CHARS JUST TYPED
  3863	015005	262 17 0 00 000001 		POP	P,T1		;RECOVER OLD SPACE COUNT
  3864						IFN	FTYANK,<
  3865						AOSN	PTDFLG		;EOF ON COMMAND FILE
  3866						JRST	[SETZM CHINC
  3867							SETZM CHINP
  3868							JRST DD2]	;YES--GET BACK TO TOP LEVEL
  3869						>			;END FTYANK
  3870	015006	336 00 0 17 000000 		SKIPN	0(P)		;REPROCESS NEEDED?
  3871						JRST	[MOVEI T1,NLINBF*5
  3872							SUB T1,LINSPC	;YES, COMPUTE NUMBER CHARS IN LINE
  3873							JUMPE T1,WRONG	;JUMP IF WHOLE LINE DELETED
  3874							MOVEM T1,CHINC	;LINE NOT NULL, SETUP CHAR COUNT
  3875							MOVE T1,LINBP	;REINIT POINTER
  3876							MOVEM T1,CHINP
  3877	015007	254 00 0 00 016303 			JRST DD2]	;CLEAR WORLD AND REDO LINE
  3878	015010	274 01 0 00 016370 		SUB	T1,LINSPC	;COMPUTE NUMBER CHARS JUST TYPED
  3879						JUMPG	T1,[MOVEM T1,CHINC	;SETUP COUNT
  3880	015011	327 01 0 00 016312 			JRST TIN1]	;GO RETURN NEXT CHAR
  3881
  3882					;CONTINUED ON NEXT PAGE
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 129
KLDDT	MAC	 5-May-78 12:59		TELETYPE IO LOGIC                                                                  SEQ 0108

  3883
  3884					;USER HAS DELETED BACK INTO TEXT ALREADY PROCESSED, THEREFORE LINE
  3885					;MUST BE REPROCESSED FROM BEGINNING. POSSIBLY ALL TEXT HAS BEEN
  3886					;DELETED.
  3887
  3888	015012	260 17 0 00 015276 		PUSHJ	P,RDBKIN
  3889	015013	402 00 0 17 000000 		SETZM	0(P)		;REQUEST REPROCESS OF LINE
  3890	015014	200 01 0 00 016372 		MOVE	T1,LINBP	;RESET DELETE BOUNDARY TO BEGINNING OF LINE
  3891	015015	254 00 0 00 014770 		JRST	XCHIN2
  3892
  3893						IFDEF	PURGT1,<IFL PURGT1,< PURGE PURGT1,T1>>
  3894						>			;END IFN ^-FTDEC20...
  3895
  3896	015016	777777	777777		ONES4:	OCT	-1,-1,-1,-1	;WAKEUP MASK
  3897	015017	777777	777777
  3898	015020	777777	777777
  3899	015021	777777	777777
  3900
  3901					;ROUTINES TO TURN TAB ECHO ON/OFF
  3902
  3903	015022	200 01 0 00 014642 	TTYTOF:	MOVE	T1,TTYCC2	;NORMAL MODE WORD
  3904	015023	624 01 0 00 600000 		TRZA	T1,3B19		;TURN TAB OFF
  3905	015024	200 01 0 00 014642 	TTYTON:	MOVE	T1,TTYCC2
  3906	015025	261 17 0 00 000002 		PUSH	P,T2		;PRESERVE REGS
  3907	015026	261 17 0 00 000003 		PUSH	P,T3
  3908	015027	202 01 0 00 000002 		MOVEM	T1,T2
  3909	015030	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3910	015031	200 03 0 00 014643 		MOVE	T3,TTYCC3
  3911	015032	104 00 0 00 000113 		SFCOC			;SET CONTROL CHAR MODES
  3912	015033	262 17 0 00 000003 		POP	P,T3
  3913	015034	262 17 0 00 000002 		POP	P,T2
  3914	015035	263 17 0 00 000000 		POPJ	P,
  3915					XLIST
  3916					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 138
KLDDT	MAC	 5-May-78 12:59		DDT COMMAND FILE LOGIC                                                             SEQ 0109

  3917
  3918					SUBTTL DISPATCH TABLE
  3919
  3920	015036	30 14 0 02 015041 	BDISP:	POINT	12,DISP(R),11
  3921	015037	14 14 0 02 015041 		POINT	12,DISP(R),23
  3922	015040	00 14 0 02 015041 		POINT	12,DISP(R),35
  3923	015041				DISP:
  3924					DEFINE D (Z1,Z2,Z3)<
  3925						BYTE	(12) Z1-DDTOFS,Z2-DDTOFS,Z3-DDTOFS
  3926						IFN	<<Z1-DDTOFS>!<Z2-DDTOFS>!<Z3-DDTOFS>>&<-1,,770000>,
  3927						<PRINTX Z1, Z2, OR Z3 TOO LARGE FOR DISPATCH TABLE> >
  3928					;THIS MACRO PACKS 3 ADDRESSES INTO ONE WORD; EACH ADR IS 12 BITS
  3929
  3930			010166			IFE	FTYANK,<TAPIN=ERR>
  3931			010166			IFE	FTEXEC&FTPTP,< PUNCH==ERR
  3932			010166			BLKEND==ERR
  3933			010166			LOADER==ERR>
  3934						IFN	FTDEC20,<SETPAG==ERR>
  3935
  3936	015041	0166 0166 0166 		D (ERR,ERR,ERR);	(0)
  3937	015042	1540 0166 0166 		D (CNTRLZ,ERR,ERR);	(3)
  3938	015043	0166 0166 1157 		D (ERR,ERR,VARRW);	(6)
  3939	015044	1223 1127 0166 		D (TAB,LINEF,ERR);	(11)
  3940	015045	0166 1163 0166 		D (ERR,CARR,ERR);	(14)
  3941	015046	0166 0166 0166 		D (ERR,ERR,ERR);	(17)
  3942	015047	0166 0166 0166 		D (PUNCH,ERR,ERR);	(22)
  3943	015050	0166 0166 0166 		D (ERR,ERR,ERR);	(25)
  3944	015051	0166 0166 1540 		D (ERR,ERR,CNTRLZ);	(30)
  3945	015052	0453 0166 0166 		D (CONTROL,ERR,ERR);	(33)
  3946	015053	0166 0166 1101 		D (ERR,ERR,SPACE);	(36)
  3947	015054	1207 0764 1044 		D (SUPTYO,TEXI,ASSEM);	(41)
  3948	015055	0321 0322 0166 		D (DOLLAR,PERC,ERR);	(44)
  3949	015056	1042 1050 1105 		D (DIVD,LPRN,RPRN);	(47)
  3950	015057	1041 1046 1062 		D (MULT,PLUS,ACCF);	(52)
  3951	015060	1045 0417 1173 		D (MINUS,PERIOD,SLASH);	(55)
  3952	015061	0305 0305 0305 		D (NUM,NUM,NUM);	(60)
  3953	015062	0305 0305 0305 		D (NUM,NUM,NUM);	(63)
  3954	015063	0305 0305 0305 		D (NUM,NUM,NUM);	(66)
  3955	015064	0305 0663 1404 		D (NUM,TAG,SEMIC);	(71)
  3956	015065	1413 1406 1420 		D (FIRARG,EQUAL,ULIM);	(74)
  3957	015066	0233 1056 1363 		D (QUESTN,INDIRE,ABSA);	(77)
  3958	015067	3026 1355 4114 		D (BPS,CON,SYMD);	(102)
  3959	015070	3664 1353 1545 		D (EFFEC,SFLOT,GO);	(105)
  3960	015071	1352 0442 0166 		D (HWRDS,PILOC,BLKEND);	(110)
  3961	015072	0623 0166 3654 		D (KILL,LOADER,MASK);	(113)
  3962	015073	3667 4275 2641 		D (NWORD,BITO,PROCEDE);	(116)
  3963	015074	0444 1360 1354 		D (QUAN,RELA,SYMBOL);	(121)
  3964	015075	1344 0166 0166 		D (TEXO,SETPAG,ERR);	(124)
  3965	015076	3666 1553 0166 		D (WORD,XEC,TAPIN);	(127)
  3966	015077	4001 1177 1220 		D (ZERO,OCON,ICON);	(132)
  3967	015100	1203 1157 1407 		D (OSYM,VARRW,PSYM);	(135)
  3968
  3969					;THIS TABLE DOES NOT HAVE ENTRIES FOR CHARS .GE. 140; THESE
  3970					; ARE DETECTED AS ERRORS NEAR L21:
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 139
KLDDT	MAC	 5-May-78 12:59		DISPATCH TABLE                                                                     SEQ 0110

  3971
  3972					SUBTTL	FANCY TERMINAL INPUT LOGIC
  3973
  3974						IFN	^-FTDEC20!<FTEXEC&FTEDIT>,<
  3975	015101				TXTI:
  3976	015101	261 17 0 00 000002 	DOTXTI:	PUSH	P,A		;SAVE ALL AC'S USED
  3977	015102	261 17 0 00 000003 		PUSH	P,B
  3978	015103	261 17 0 00 000004 		PUSH	P,C
  3979	015104	261 17 0 00 000005 		PUSH	P,T
  3980	015105	261 17 0 00 000006 		PUSH	P,W1
  3981	015106	261 17 0 00 000007 		PUSH	P,W2
  3982	015107	200 06 0 00 016370 		MOVE	W1,LINSPC	;COUNT OF BYTES IN DESTINATION
  3983	015110	336 07 0 00 016371 		SKIPN	W2,LINDB	;WAS IT NON-ZERO?
  3984	015111	200 07 0 00 016367 		MOVE	W2,CHINP	;NO. USE DEFAULT
  3985
  3986					; VERIFY ALL OF THE STRING POINTERS
  3987
  3988	015112	200 02 0 00 016367 	RDTXT1:	MOVE	A,CHINP		;HAVE A DEST POINTER?
  3989	015113	260 17 0 00 015260 		PUSHJ	P,RDCBP		;YES. CHECK IT OUT
  3990	015114	202 02 0 00 016367 		MOVEM	A,CHINP		;GET CONVERTED POINTER
  3991	015115	336 02 0 00 016372 		SKIPN	A,LINBP		;HAVE A ^R BUFFER?
  3992	015116	254 00 0 00 015121 		JRST	RDTOPM		;NO. GO AROUND THEN
  3993	015117	260 17 0 00 015260 		PUSHJ	P,RDCBP		;YES. VERIFY IT
  3994	015120	202 02 0 00 016372 		MOVEM	A,LINBP		;STORE VERIFIED POINTER
  3995	015121	200 02 0 00 000007 	RDTOPM:	MOVE	A,W2		;GET TOP OF BUFFER
  3996	015122	260 17 0 00 015260 		PUSHJ	P,RDCBP		;VERIFY IT
  3997	015123	200 07 0 00 000002 		MOVE	W2,A		;ALL VERIFIED NOW
  3998	015124	323 06 0 00 015151 		JUMPLE	W1,WRAP0	;MAKE SURE COUNT HAS ROOM IN IT
  3999									; ..
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 140
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0111

  4000
  4001					;MAIN LOOP - DOES INPUT OF BYTE AND DISPATCH ON CHARACTER CLASS
  4002					;ACTION ROUTINES EXIT TO:
  4003					; INSRT - APPEND CHARACTER AND CONTINUE
  4004					; NINSRT - CONTINUE WITHOUT APPENDING CHARACTER
  4005					; DING - BUFFER NOW EMPTY, POSSIBLE RETURN TO USER
  4006					; WRAP, WRAP0 - RETURNS TO USER
  4007
  4008	015125	202 06 0 00 016370 	NINSRT:	MOVEM	W1,LINSPC	;STORE COUNT
  4009	015126	260 17 0 00 015223 		PUSHJ	P,RDBIN		;DO BIN
  4010	015127	200 02 0 00 000003 		MOVE	A,B		;SAVE BYTE
  4011	015130	231 03 0 00 000011 		IDIVI	B,CHRWRD	;SETUP TO GET CHAR CLASS
  4012	015131	135 03 0 04 015165 		LDB	B,CCBTAB(C)	;GET IT FROM BYTE TABLE
  4013	015132	231 03 0 00 000002 		IDIVI	B,2		;SETUP TO REF DISPATCH TABLE
  4014						JUMPE	C,[HLRZ T,DISPTC(B)	;GET LH ENTRY
  4015	015133	322 04 0 00 016314 			JRST .+2]
  4016	015134	550 05 0 03 015176 		HRRZ	T,DISPTC(B)	;GET RH ENTRY
  4017	015135	200 03 0 00 000002 		MOVE	B,A		;ROUTINES GET BYTE IN B
  4018	015136	254 00 0 05 000000 		JRST	0(T)		;DISPATCH TO ACTION ROUTINE
  4019
  4020					;RETURN FROM ACTION ROUTINE TO APPEND CHARACTER AND CONTINUE.
  4021					; B/ CHARACTER
  4022
  4023	015137	332 00 0 00 016363 	INSRT:	SKIPE	WAKALL		;BREAK ON EVERYTHING?
  4024	015140	254 00 0 00 015147 		JRST	WRAP		;YES. WRAP IT UP THEN
  4025	015141	136 03 0 00 016367 		IDPB	B,CHINP		;APPEND BYTE TO USER STRING
  4026	015142	367 06 0 00 015125 		SOJG	W1,NINSRT	;CONTINUE IF STILL HAVE COUNT
  4027	015143	254 00 0 00 015151 		JRST	WRAP0		;COUNT EXHAUSTED, RETURN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 141
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0112

  4028
  4029					;RETURNS TO USER.
  4030
  4031					;RETURN TO USER IF BUFFER EMPTY
  4032
  4033	015144	312 07 0 00 016367 	NDING:	CAME	W2,CHINP	;BUFFER EMPTY?
  4034	015145	254 00 0 00 015125 		JRST	NINSRT		;NO, GO GET MORE INPUT
  4035	015146	254 00 0 00 015151 		JRST	WRAP0
  4036
  4037					;APPEND LAST CHARACTER AND RETURN
  4038
  4039	015147	136 03 0 00 016367 	WRAP:	IDPB	B,CHINP		;APPEND BYTE
  4040	015150	275 06 0 00 000001 		SUBI	W1,1		;UPDATE COUNT
  4041
  4042					;STORE NULL ON STRING AND RETURN
  4043
  4044	015151	323 06 0 00 015155 	WRAP0:	JUMPLE	W1,WRAP1	;DON'T STORE NULL IF COUNT EXHAUSTED
  4045	015152	400 03 0 00 000000 		SETZ	B,
  4046	015153	200 02 0 00 016367 		MOVE	A,CHINP
  4047	015154	136 03 0 00 000002 		IDPB	B,A		;STORE NULL WITHOUT CHANGING USER PTR
  4048
  4049					;UPDATE USER VARIABLES AND RETURN
  4050
  4051	015155	202 06 0 00 016370 	WRAP1:	MOVEM	W1,LINSPC	;UPDATE USER'S BYTE COUNT
  4052	015156	262 17 0 00 000007 		POP	P,W2
  4053	015157	262 17 0 00 000006 		POP	P,W1
  4054	015160	262 17 0 00 000005 		POP	P,T
  4055	015161	262 17 0 00 000004 		POP	P,C
  4056	015162	262 17 0 00 000003 		POP	P,B
  4057	015163	262 17 0 00 000002 		POP	P,A
  4058	015164	254 00 0 00 010520 		JRST	CPOPJ1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 142
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0113

  4059
  4060					;PARAMETERS FOR CLASS TABLE
  4061
  4062			000004		CCBITS==4			;BITS/BYTE
  4063			000011		CHRWRD==^D36/CCBITS		;BYTES/WORD
  4064
  4065					;DEFINED CHARACTER CLASSES:
  4066
  4067			000000		TOP==0				;TOPS10 BREAK
  4068			000001		BRK==1				;REGULAR BREAK SET
  4069			000002		ZER==2				;NULL
  4070			000003		EOLC==3				;EOL
  4071			000004		PUN==4				;PUNCTUATION
  4072			000005		SAFE==5				;ALL OTHERS
  4073			000006		RUBO==6				;DELETE A CHARACTER
  4074			000007		RTYP==7				;RETYPE THE LINE
  4075			000010		KLL==10				;DELETE THE LINE
  4076			000011		KWRD==11			;DELETE A WORD
  4077			000012		RDCRC==12			;CARRIAGE RETURN
  4078			000013		RDQTC==13			;QUOTE CHARACTER
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 143
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0114

  4079
  4080					;TABLE OF BYTE PTRS TO REFERENCE CLASS TABLE
  4081
  4082			000003			XX==CCBITS-1
  4083						XALL
  4084					CCBTAB:	REPEAT	CHRWRD,<
  4085						 POINT CCBITS,CTBL(B),XX
  4086						 XX=XX+CCBITS>
  4087
  4088	015165	40 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4089			000007			 XX=XX+CCBITS
  4090
  4091	015166	34 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4092			000013			 XX=XX+CCBITS
  4093
  4094	015167	30 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4095			000017			 XX=XX+CCBITS
  4096
  4097	015170	24 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4098			000023			 XX=XX+CCBITS
  4099
  4100	015171	20 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4101			000027			 XX=XX+CCBITS
  4102
  4103	015172	14 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4104			000033			 XX=XX+CCBITS
  4105
  4106	015173	10 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4107			000037			 XX=XX+CCBITS
  4108
  4109	015174	04 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4110			000043			 XX=XX+CCBITS
  4111
  4112	015175	00 04 0 03 015204 		 POINT CCBITS,CTBL(B),XX
  4113			000047			 XX=XX+CCBITS
  4114						SALL
  4115
  4116					;CLASS DISPATCH TABLE
  4117
  4118	015176	015147	015147		DISPTC:	WRAP,,WRAP
  4119	015177	015324	015343			ZNULL,,EOL1
  4120	015200	015147	015137			WRAP,,INSRT
  4121	015201	015352	015434			DELC,,RTYPE
  4122	015202	015402	015411			DELIN,,KLWORD
  4123	015203	015327	015344			RDCR,,RDQT
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 144
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0115

  4124
  4125					;CHARACTER CLASS TABLE
  4126
  4127					DEFINE CCN (A,B)<
  4128						REPEAT	B,<
  4129						 CC1 (A)>>
  4130
  4131					DEFINE CC1 (C)<
  4132						QQ=QQ+CCBITS
  4133						IFG	QQ-^D35,<
  4134						 QW
  4135						 QW=0
  4136						 QQ=CCBITS-1>
  4137						QW=QW+<C>B<QQ>>
  4138
  4139			000000			QW==0
  4140		777777	777777			QQ==-1
  4141
  4142		100000	000000		CTBL:	CC1(ZER)		;0
  4143		110421	042000			CCN(PUN,6)		;1-6
  4144		110421	042000			CC1(TOP)		;7
  4145	015204	110421	042004			CCN(PUN,2)		;10-11
  4146		206000	000000			CC1(EOLC)		;12
  4147		206400	000000			CC1(PUN)		;VT
  4148		206400	000000			CC1(TOP)		;FF
  4149		206402	400000			CC1(RDCRC)		;CR
  4150		206402	442104			CCN(PUN,4)		;16-21 (^N-^Q)
  4151	015205	206402	442104			CC1(RTYP)		;^R
  4152		350400	000000			CCN(PUN,2)		;^S,^T
  4153		350440	000000			CC1(KLL)		;^U
  4154		350442	600000			CC1(RDQTC)		;^V
  4155		350442	710000			CC1(KWRD)		;^W
  4156		350442	712100			CCN(PUN,2)		;^X,^Y
  4157	015206	350442	712101			CCN(BRK,2)		;^Z,$
  4158		050421	000000			CCN(PUN,4)		;34-37
  4159	015207	050421	042104			CCN(PUN,^D16)		;40-/
  4160	015210	210421	042104
  4161	015211	210425	252525			CCN(SAFE,^D10)		;0-9
  4162	015212	252525	042104			CCN(PUN,7)		;:-@
  4163	015213	210525	252525			CCN(SAFE,^D26)		;A-Z
  4164	015214	252525	252525
  4165	015215	252525	252525
  4166		250421	042000			CCN(PUN,6)		;]-140
  4167	015216	250421	042125			CCN(SAFE,^D26)		;A-Z
  4168	015217	252525	252525
  4169	015220	252525	252525
  4170	015221	252525	252104			CCN(PUN,4)		;173-176
  4171		214000	000000			CC1(RUBO)		;177
  4172	015222	214000	000000			QW			;GET LAST WORD IN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 145
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0116

  4173
  4174					;LOCAL ROUTINES TO DO LOGICAL BIN AND BOUT.
  4175
  4176	015223	332 03 0 00 016375 	RDBIN:	SKIPE	B,SAVCHR	;WANT TO BACK UP?
  4177						JRST	[SETZM SAVCHR	;ONLY ONCE
  4178	015224	254 00 0 00 016316 			 POPJ P,0]	;RETURN
  4179						IFN	FTEXEC,<
  4180	015225	331 00 0 00 016717 		SKPUSR
  4181						JRST	[PUSH P,T	;SAVE T
  4182						   IFN FTYANK,<
  4183							SKIPE COMAND
  4184							PUSHJ P,XPTRIN>
  4185							PUSHJ P,XTIN	;GET A BYTE
  4186							MOVE B,T	;PUT IN CORRECT PLACE
  4187							POP P,T		;RESTORE T
  4188	015226	254 00 0 00 016320 			JRST RDBIN1]	;SKIP NEXT INST
  4189						>
  4190						IFN	FTDEC20,<HALT DDT>	;SHOULD NOT BE HERE IN USER MODE
  4191						IFE	FTDEC20,<
  4192						IFN	FTYANK,<
  4193						PUSH	P,T		;SAVE AN AC
  4194						SKIPE	COMAND		;COMMAND FILE OPEN?
  4195						PUSHJ	P,PTRIN		;READ COMMAND FILE
  4196						JRST	[MOVEI T," "	;ASSUME EOF
  4197							SKIPL PTDFLG	;WAS IT EOF?
  4198							INCHRW T	;NO--READ A BYTE
  4199							JRST .+1]	;CONTINUE
  4200						MOVE	B,T		;COPY BYTE
  4201						POP	P,T>		;RESTORE T
  4202	015227	332 00 0 00 016721 		SKIPE	TOPS20
  4203	015230	254 00 0 00 015233 		JRST	.+3
  4204	015231	051 00 0 00 000003 		IFE	FTYANK,<INCHRW B>>	;READ BYTE UNDER TOPS-10
  4205	015232	254 00 0 00 015237 		JRST	RDBIN1
  4206	015233	261 17 0 00 000001 		PUSH	P,1
  4207	015234	104 00 0 00 000073 		PBIN
  4208	015235	200 03 0 00 000001 		MOVE	B,1
  4209	015236	262 17 0 00 000001 		POP	P,1
  4210	015237	202 03 0 00 016376 	RDBIN1:	MOVEM	B,LASCHR	;SAVE LAST CHAR READ
  4211	015240	263 17 0 00 000000 		POPJ	P,0		;RETURN
  4212
  4213
  4214					;RDBOUT
  4215					; B/ BYTE
  4216					;	PUSHJ P,RDBOUT
  4217					; RETURN +1 ALWAYS
  4218
  4219	015241	261 17 0 00 000005 	RDBOUT:	PUSH	P,T		;SAVE AN AC
  4220	015242	261 17 0 00 016362 		PUSH	P,CHINC
  4221	015243	261 17 0 00 016367 		PUSH	P,CHINP
  4222	015244	200 05 0 00 000003 		MOVE	T,B		;SET FOR ECHO
  4223	015245	260 17 0 00 014533 		PUSHJ	P,TOUT		;TYPE IT
  4224	015246	262 17 0 00 016367 		POP	P,CHINP
  4225	015247	262 17 0 00 016362 		POP	P,CHINC
  4226	015250	262 17 0 00 000005 		POP	P,T
  4227	015251	263 17 0 00 000000 		POPJ	P,0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 146
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0117

  4228
  4229					;RDSOUT - OUTPUT STRING ALA RDBOUT
  4230					; B/ STRING PTR
  4231					;	PUSHJ P,RDSOUT
  4232					; RETURN +1 ALWAYS
  4233
  4234	015252	200 02 0 00 000003 	RDSOUT:	MOVE	A,B		;COPY POINTER
  4235	015253	260 17 0 00 015260 		PUSHJ	P,RDCBP
  4236	015254	134 03 0 00 000002 	RDSL:	ILDB	B,A
  4237	015255	322 03 0 00 010521 		JUMPE	B,CPOPJ		;EXIT ON NULL
  4238	015256	260 17 0 00 015241 		PUSHJ	P,RDBOUT
  4239	015257	254 00 0 00 015254 		JRST	RDSL
  4240
  4241					;CHECK BYTE POINTER GIVEN AS ARGUMENT
  4242					; A/ BYTE POINTER
  4243					;	PUSHJ P,RDCBP
  4244					; RETURN +1: OK, LH INITIALIZED IF NECESSARY
  4245
  4246	015260	554 03 0 00 000002 	RDCBP:	HLRZ	B,A		;GET LH
  4247	015261	306 03 0 00 777777 		CAIN	B,-1		;IS DEFAULT?
  4248	015262	505 02 0 00 440700 		HRLI	A,(<POINT 7,0>)	;YES, FILL IN 7-BIT
  4249	015263	135 03 0 00 016325 		LDB	B,[POINT 6,A,11]	;CHECK BYTE SIZE
  4250	015264	305 03 0 00 000007 		CAIGE	B,7		;7 OR GREATER?
  4251	015265	254 04 0 00 015265 		HALT	.		;BAD BYTE SIZE
  4252	015266	133 00 0 00 000002 		IBP	A		;INCR IT AND DECR IT ONCE SO WILL
  4253	015267	254 00 0 00 015460 		JRST	DBP		; BE IN KNOWN STATE FOR COMPARES
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 147
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0118

  4254
  4255					;LOCAL ROUTINES FOR EDITING FUNCTIONS
  4256
  4257					;DELETE CHARACTER FROM DESTINATION - BACKUP PTR AND CHECK
  4258					;FOR TOP OF BUFFER
  4259					;	PUSHJ P,BACK
  4260					; RETURN +1: AT TOP OF BUFFER, NO CHARACTER TO DELETE
  4261					; RETURN +2: CHARACTER DELETED
  4262
  4263	015270	316 07 0 00 016367 	BACK:	CAMN	W2,CHINP	;AT TOP OF BUFFER?
  4264	015271	263 17 0 00 000000 		POPJ	P,0		;YES
  4265	015272	200 02 0 00 016367 		MOVE	A,CHINP		;GET DEST PTR
  4266	015273	260 17 0 00 015460 		PUSHJ	P,DBP		;DECREMENT IT
  4267	015274	202 02 0 00 016367 		MOVEM	A,CHINP		;PUT IT BACK
  4268	015275	344 06 0 00 010520 		AOJA	W1,CPOPJ1	;UPDATE COUNT AND RETURN
  4269
  4270					;PUT BYTE BACK INTO SOURCE
  4271					; B/ BYTE
  4272					;	PUSHJ P,RDBKIN
  4273					; RETURN +1 ALWAYS
  4274
  4275	015276				RDBKIN:
  4276	015276	200 02 0 00 016376 	DOBKIN:	MOVE	A,LASCHR	;GET LAST BYTE READ
  4277	015277	202 02 0 00 016375 		MOVEM	A,SAVCHR	;MAKE NEXT BYTE READ
  4278	015300	263 17 0 00 000000 		POPJ	P,0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 148
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0119

  4279
  4280					;FIND BEGINNING OF CURRENT LINE.
  4281					;	PUSHJ P,FNDLIN
  4282					; RETURN +1: AT TOP OF BUFFER
  4283					; RETURN +2: A/ BACKED-UP BYTE PTR TO BEGINNING OF LINE
  4284					;	B/ BYTE COUNT CONSISTENT WITH CHINP IN A
  4285
  4286	015301	316 07 0 00 016367 	FNDLIN:	CAMN	W2,CHINP	;AT TOP OF BUFFER?
  4287	015302	263 17 0 00 000000 		POPJ	P,0		;YES
  4288	015303	261 17 0 00 016367 		PUSH	P,CHINP		;SAVE CURRENT LINE VARIABLES
  4289	015304	261 17 0 00 000006 		PUSH	P,W1
  4290	015305	200 02 0 00 016367 	FNDLN1:	MOVE	A,CHINP		;BACKUP ONE CHARACTER
  4291	015306	260 17 0 00 015460 		PUSHJ	P,DBP
  4292	015307	202 02 0 00 016367 		MOVEM	A,CHINP
  4293	015310	271 06 0 00 000001 		ADDI	W1,1
  4294	015311	316 07 0 00 016367 		CAMN	W2,CHINP	;NOW AT TOP OF BUFFER?
  4295	015312	254 00 0 00 015317 		JRST	FNDLN2		;YES, RETURN
  4296	015313	135 03 0 00 016367 		LDB	B,CHINP		;NO, LOOK AT NEXT CHAR TO BE DELETED
  4297	015314	306 03 0 00 000012 		CAIN	B,12		;EOL OR LF?
  4298	015315	254 00 0 00 015317 		JRST	FNDLN2		;YES, RETURN
  4299	015316	254 00 0 00 015305 		JRST	FNDLN1		;NO, KEEP LOOKING
  4300
  4301	015317	200 02 0 00 016367 	FNDLN2:	MOVE	A,CHINP		;RETURN NEW LINE VARIABLES
  4302	015320	200 03 0 00 000006 		MOVE	B,W1
  4303	015321	262 17 0 00 000006 		POP	P,W1		;RESTORE OLD LINE VARIABLES
  4304	015322	262 17 0 00 016367 		POP	P,CHINP
  4305	015323	254 00 0 00 010520 		JRST	CPOPJ1
  4306
  4307					;ACTION ROUTINES
  4308
  4309					;ZERO BYTE
  4310
  4311	015324	332 00 0 00 016363 	ZNULL:	SKIPE	WAKALL		;USER HAVE A MASK?
  4312	015325	254 00 0 00 015137 		JRST	INSRT		;YES. GO SEE ABOUT IT THEN
  4313	015326	254 00 0 00 015151 		JRST	WRAP0		;NO. ALWAYS BREAK THEN
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 149
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0120

  4314
  4315					;CARRIAGE RETURN - IF LINE FEED FOLLOWS, TREAT LIKE EOL
  4316
  4317	015327	305 06 0 00 000002 	RDCR:	CAIGE	W1,2		;ROOM FOR CR AND LF?
  4318						JRST	[PUSHJ P,RDBKIN	;NO, PUT THE CR BACK
  4319	015330	254 00 0 00 016326 			JRST WRAP0]	;WILL GET IT NEXT TIME
  4320	015331	260 17 0 00 015223 		PUSHJ	P,RDBIN		;GET THE NEXT CHAR
  4321	015332	306 03 0 00 000012 		CAIN	B,12		;LF?
  4322	015333	254 00 0 00 015337 		JRST	RDCR1		;YES, NORMAL NEWLINE
  4323	015334	260 17 0 00 015276 		PUSHJ	P,RDBKIN	;NO, PUT BACK THE SECOND BYTE
  4324	015335	201 03 0 00 000015 		MOVEI	B,15		;APPEND A REAL CR
  4325	015336	254 00 0 00 015147 		JRST	WRAP
  4326
  4327	015337	201 03 0 00 000015 	RDCR1:	MOVEI	B,15
  4328	015340	136 03 0 00 016367 		IDPB	B,CHINP		;APPEND CR
  4329	015341	370 00 0 00 000006 		SOS	W1
  4330	015342	201 03 0 00 000012 	RDCR2:	MOVEI	B,12
  4331	015343	254 00 0 00 015147 	EOL1:	JRST	WRAP		;YES
  4332
  4333					;QUOTE CHARACTER (^V) - INHIBITS EDITING ACTION OF FOLLOWING CHARACTER
  4334
  4335	015344	305 06 0 00 000002 	RDQT:	CAIGE	W1,2		; ROOM FOR BOTH?
  4336						JRST	[PUSHJ P,RDBKIN	; NO. BACK UP
  4337	015345	254 00 0 00 016326 			JRST WRAP0]	; AND WAIT FOR NEXT TIME
  4338	015346	136 03 0 00 016367 		IDPB	B,CHINP		;STORE QUOTE
  4339	015347	370 00 0 00 000006 		SOS	W1		; ONE LESS
  4340	015350	260 17 0 00 015223 		PUSHJ	P,RDBIN		;GET THE NEXT CHAR
  4341	015351	254 00 0 00 015147 		JRST	WRAP		;YES
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 150
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0121

  4342
  4343					;DELETE CHARACTER (RUBOUT)
  4344
  4345	015352	260 17 0 00 015270 	DELC:	PUSHJ	P,BACK		;BACKUP PTR
  4346	015353	254 00 0 00 015151 		 JRST WRAP0		;NOTHING LEFT IN BUFFER
  4347	015354	200 05 0 00 016367 		MOVE	T,CHINP
  4348	015355	134 03 0 00 000005 		ILDB	B,T		;GET CHAR JUST DELETED
  4349	015356	306 03 0 00 000012 		CAIN	B,12		;WAS IT LF?
  4350	015357	254 00 0 00 015370 		JRST	DELC2		;YES
  4351	015360	261 17 0 00 000003 		PUSH	P,B
  4352	015361	201 03 0 00 000134 		MOVEI	B,"\"
  4353	015362	260 17 0 00 015241 		PUSHJ	P,RDBOUT
  4354	015363	262 17 0 00 000003 		POP	P,B
  4355	015364	260 17 0 00 015241 		PUSHJ	P,RDBOUT	;TYPE IT OUT
  4356	015365	201 03 0 00 000134 		MOVEI	B,"\"		;INDICATE DELETION
  4357	015366	260 17 0 00 015241 		PUSHJ	P,RDBOUT
  4358	015367	254 00 0 00 015125 	DELC4:	JRST	NINSRT		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
  4359
  4360	015370	316 07 0 00 016367 	DELC2:	CAMN	W2,CHINP	;AT BEGINNING OF DEST BUFFER?
  4361	015371	254 00 0 00 015377 		JRST	DELC1		;YES
  4362	015372	135 03 0 00 016367 		LDB	B,CHINP		;NO, CHECK CHARACTER PRECEEDING LF
  4363	015373	302 03 0 00 000015 		CAIE	B,15		;A CR?
  4364	015374	254 00 0 00 015377 		JRST	DELC1		;NO, LEAVE IT ALONE
  4365	015375	260 17 0 00 015270 		PUSHJ	P,BACK		;YES, DELETE IT ALSO
  4366	015376	254 00 0 00 015147 		 JRST WRAP		;(CAN'T HAPPEN)
  4367	015377				DELC1:	HRROI	B,[ASCIZ /
  4368	015377	561 03 0 00 016330 	/]
  4369	015400	260 17 0 00 015252 		PUSHJ	P,RDSOUT	;DO CRLF WHEN DELETING EOL OR CRLF
  4370	015401	254 00 0 00 015367 		JRST	DELC4
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 151
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0122

  4371
  4372					;DELETE LINE (CONTROL-U)
  4373
  4374	015402	201 04 0 00 000000 	DELIN:	MOVEI	C,0
  4375	015403	260 17 0 00 015301 		PUSHJ	P,FNDLIN	;FIND BEGINNING OF LINE
  4376	015404	254 00 0 00 015144 		 JRST NDING		;NOTHING IN BUFFER
  4377	015405	135 04 0 00 016367 		LDB	C,CHINP		;GET LAST CHAR IN BUFFER
  4378	015406	202 02 0 00 016367 		MOVEM	A,CHINP		;SET LINE VARIABLES TO BEGINNING
  4379	015407	202 03 0 00 000006 		MOVEM	B,W1
  4380	015410	254 00 0 00 015144 		JRST	NDING		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
  4381
  4382					;DELETE WORD (CONTROL-W)
  4383
  4384	015411	260 17 0 00 015270 	KLWORD:	PUSHJ	P,BACK		;DELETE AT LEAST ONE CHARACTER
  4385	015412	254 00 0 00 015151 		 JRST WRAP0		;WASN'T ONE
  4386	015413	200 05 0 00 016367 		MOVE	T,CHINP
  4387	015414	134 03 0 00 000005 		ILDB	B,T		;GET CHAR JUST DELETED
  4388	015415	306 03 0 00 000012 		CAIN	B,12		;LF OR EOL?
  4389	015416	254 00 0 00 015427 		JRST	BWRD3		;YES, DON'T DELETE
  4390	015417	260 17 0 00 015270 	BWRD1:	PUSHJ	P,BACK		;DELETE NEXT CHARACTER
  4391	015420	254 00 0 00 015431 		 JRST BWRD2		;NO MORE LEFT
  4392	015421	200 05 0 00 016367 		MOVE	T,CHINP		;LOOK AT CHARACTER JUST DELETED
  4393	015422	134 03 0 00 000005 		ILDB	B,T
  4394	015423	231 03 0 00 000011 		IDIVI	B,CHRWRD	;GET ITS CHARACTER CLASS
  4395	015424	135 03 0 04 015165 		LDB	B,CCBTAB(C)
  4396	015425	306 03 0 00 000005 		CAIN	B,SAFE		;IS IT A WORD SEPARATOR?
  4397	015426	254 00 0 00 015417 		JRST	BWRD1		;KEEP DELETING
  4398	015427	133 00 0 00 016367 	BWRD3:	IBP	CHINP		;YES, KEEP THAT CHARACTER
  4399	015430	275 06 0 00 000001 		SUBI	W1,1
  4400	015431	201 03 0 00 000137 	BWRD2:	MOVEI	B,"_"		;INDICATE WORD DELETION
  4401	015432	260 17 0 00 015241 		PUSHJ	P,RDBOUT
  4402	015433	254 00 0 00 015125 		JRST	NINSRT		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 152
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0123

  4403
  4404					;RETYPE LINE (CONTROL-R)
  4405
  4406	015434	260 17 0 00 015436 	RTYPE:	PUSHJ	P,RTYPES	;DO THE WORK
  4407	015435	254 00 0 00 015125 		JRST	NINSRT
  4408
  4409					;SUBROUTINE TO RETYPE LINE
  4410
  4411	015436				RTYPES:	HRROI	B,[ASCIZ /
  4412	015436	561 03 0 00 016330 	/]
  4413	015437	260 17 0 00 015252 		PUSHJ	P,RDSOUT	;NON-DISPLAY, GET CLEAN LINE
  4414	015440	260 17 0 00 015301 		PUSHJ	P,FNDLIN	;FIND BEGINNING OF LINE
  4415	015441	200 02 0 00 000007 		 MOVE A,W2		;AT TOP OF BUFFER - USE IT
  4416	015442	200 05 0 00 000002 		MOVE	T,A		;SAVE PTR TO BEGINNING OF LINE
  4417	015443	312 05 0 00 000007 		CAME	T,W2		;BEG OF LINE IS TOP OF BUFFER?
  4418	015444	254 00 0 00 015453 		JRST	RTYP1		;NO, DON'T TYPE ^R BFR
  4419	015445	332 05 0 00 016372 		SKIPE	T,LINBP		;GET ^R BFR IF ANY
  4420	015446	316 05 0 00 000007 	RTYW1:	CAMN	T,W2		;UP TO TOP OF BFR?
  4421	015447	254 00 0 00 015452 		JRST	RTYP4		;YES, DONE WITH ^R BFR
  4422	015450	134 03 0 00 000005 		ILDB	B,T		;GET CHAR FROM ^R BFR
  4423						JUMPN	B,[PUSHJ P,RDBOUT	;TYPE IT
  4424	015451	326 03 0 00 016331 			JRST RTYW1]
  4425	015452	200 05 0 00 000007 	RTYP4:	MOVE	T,W2		;DONE WITH ^R BFR, NOW DO MAIN BFR
  4426	015453	316 05 0 00 016367 	RTYP1:	CAMN	T,CHINP		;BACK TO END OF LINE?
  4427	015454	263 17 0 00 000000 		POPJ	P,0		;YES
  4428	015455	134 03 0 00 000005 		ILDB	B,T		;NO, GET NEXT BYTE
  4429	015456	260 17 0 00 015241 		PUSHJ	P,RDBOUT	;TYPE IT
  4430	015457	254 00 0 00 015453 		JRST	RTYP1		;LOOP UNTIL AT END OF BUFFER
  4431
  4432					;DECREMENT BYTE POINTER
  4433					; A/ BYTE PTR
  4434					;	PUSHJ P,DBP
  4435					; RETURNS +1, CLOBBERS B AND C
  4436
  4437	015460	135 03 0 00 016333 	DBP:	LDB	B,[POINT 6,A,5]	;GET P
  4438	015461	135 04 0 00 016325 		LDB	C,[POINT 6,A,11]	;GET S
  4439	015462	270 03 0 00 000004 		ADD	B,C		;NEW P = P + S
  4440	015463	305 03 0 00 000044 		CAIGE	B,^D36		;NEW P .GE 36?
  4441	015464	254 00 0 00 015471 		JRST	DBP1		;NO, BYTE IS IN SAME WORD.
  4442	015465	541 02 0 02 777777 		HRRI	A,-1(A)		;DECREMENT ADDRESS
  4443	015466	201 03 0 00 000044 		MOVEI	B,^D36		;MAKE P = REMAINDER (36,S)
  4444	015467	230 03 0 00 000004 		IDIV	B,C
  4445	015470	201 03 0 04 000000 		MOVEI	B,0(C)
  4446	015471	137 03 0 00 016333 	DBP1:	DPB	B,[POINT 6,A,5]
  4447	015472	263 17 0 00 000000 		POPJ	P,0
  4448						>			;END IFN ^-FTDEC20...
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 153
KLDDT	MAC	 5-May-78 12:59		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0124

  4449
  4450					SUBTTL	OP DECODER
  4451
  4452					;DESCRIPTION OF OP DECODER FOR DDT:
  4453					;
  4454					;         THE ENTIRE INSTRUCTION SET FOR THE PDP-10 CAN BE COMPACTED INTO
  4455					;A SPACE MUCH SMALLER THAN ONE REGISTER FOR EVERY SYMBOL.  THIS OCCURS
  4456					;BECAUSE OF THE MACHINE ORGANIZATION AND INSTRUCTION MNEMONICS CHOSEN
  4457					;FOR THE PDP-10.  FOR EXAMPLE, IF BITS (0-2) OF AN INSTRUCTION EQUAL
  4458					;101(2) THE INSTRUCTION IS A HALF WORD INSTRUCTION AND AN "H" MAY
  4459					;BE ASSUMED. "T" MAY BE ASSUMED FOR ALL TEST INSTRUCTIONS (WHICH
  4460					;BEGIN WITH 110(2).
  4461					;
  4462					;      THE TABLE TBL IN DDT CONSISTS OF 9 BIT BYTES, 4 TO A WORD.
  4463					;THE NUMBERS IN THE BYTES HAVE THE FOLLOWING SIGNIFICANCE:
  4464					;0-37(8):	THIS IS A DISPATCH COMMAND FOR THE OP-DECODER INTERPRETER.
  4465					;	LET THE RIGHT MOST TWO BITS EQUAL N; LET THE NEXT 3 BITS
  4466					;	EQUAL P.
  4467					;
  4468					;	THE CONTENTS OF INST (INSTRUCTION) CONTAIN IN THE RIGHT
  4469					;	MOST NINE BITS THE BINARY FOR THE MACHINE INSTRUCTION.
  4470					;	P AND N REFER TO THE CONTENTS OF INST, AND THE OP DECODER
  4471					;	WILL PRODUCE AN ANSWER D GIVEN P, N, AND THE CONTENTS
  4472					;	OF INSTX N+1 GIVES THE NUMBER OF BITS IN INST; P GIVES THE
  4473					;	POSITION (FROM THE RIGHT EDGE) OF THE N+1 BITS.
  4474					;
  4475					;	EXAMPLE: P = 6
  4476					;	         N = 2
  4477					;
  4478					;;	C(INST) = .010 101 100(2)
  4479					;
  4480					;	THE RESULT = D = 010(2) = 2(8)
  4481					;
  4482					;	D IS USED AS A DISPATCH ON THE NEXT BYTES IN THE TABLE.
  4483					;	IF D = 5, 5 BYTES IN THE TABLE (DON'T COUNT THE BYTES WHICH
  4484					;	PRINT TEXT OR ARE THE EXTEND BYTE, 41-73(8))
  4485					;	ARE SKIPPED OVER AND THE 6TH BYTE RESUMES
  4486					;	THE INTERPRETATION.
  4487					;
  4488					;40(8) THIS IS A STOP CODE; WHEN THIS IS REACHED INTERPRETATION
  4489					;	IS FINISHED.
  4490					;41(8)-72(8) THE ALPHABET IS ENCODED INTO THIS RANGE.
  4491					;	41- A
  4492					;	42- B
  4493					;	72- Z
  4494					;	WHEN A BYTE IN THIS RANGE IS REACHED, ITS CORRESPONDING
  4495					;	LETTER IS TYPED.
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 154
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0125

  4496
  4497					;73(8) THIS IS THE "EXTEND" BYTE. THE NEXT BYTE IN THE TABLE
  4498					;	IS A TRANSFER BYTE BUT MUST HAVE THE ADDRESS EXTENDED
  4499					;	BY <1000-74*2+FIR.> FIRST.
  4500					;
  4501					;74(8)-777(8) THIS IS A TRANSFER BYTE.  IF THE BYTE IN THIS RANGE IS
  4502					;	CONSIDERED TO BE A, TRANSFER INTERPRETATION TO THE 
  4503					;	<A-74(8)+FIR.>RD BYTE IN THE TABLE.
  4504					;
  4505					;MACROS ASSEMBLE THE TABLE TBL:
  4506					; 1.   A NUMBER FOLLOWED BY ^ ASSEMBLES A DISPATCH BYTE.  THE FIRST
  4507					;	DIGIT IS THE POSITION; THE SECOND DIGIT IS THE SIZE.
  4508					; 2.   A POINT (.) ASSEMBLES A STOP CODE.
  4509					; 3.   A NAME FOLLOWED BY A SLASH ASSEMBLES A TRANSFER TO THE
  4510					;	SYMBOLICALLY NAMED BYTE.
  4511					; 4.   A STRING OF LETTERS TERMINATED BY A SPACE, COMMA, OR POINT,
  4512					;	ASSEMBLE INTO A STRING OF BYTES, EACH BYTE BEING ONE LETTER.
  4513					;
  4514					;EXAMPLE OF BINARY TO SYMBOLIC DECODING:
  4515					;	THE MACHINE CODE FOR JRST IS 254
  4516					;		INST    0  1  0  1  0  1  1  0  0
  4517					;	THE INTERPRETER STARTS WITH THE FIRST BYTE IN THE TABLE (63^).
  4518					;	THE RESULT OF APPLYING THIS TO C(INST) GIVES 2.  SKIPPING OVER
  4519					;	2 BYTES IN THE TABLE AND INTERPRETING THE THIRD RESULTS IN
  4520					;	HAK/ BEING INTERPRETED.  AT HAK:, THERE IS A 33^.  APPLYING
  4521					;	THIS TO C(INST) RESULTS IN 5 NON PRINTING BYTES BEING SKIPPED
  4522					;	OVER:
  4523					;		1.  MV/
  4524					;			MOV PRINTING TEXT
  4525					;		2.  MO/
  4526					;		3.  ML/
  4527					;		4.  DV/
  4528					;		5.  SH/
  4529					;
  4530					;H1/ IS THE NEXT BYTE INTERPRETER.  AT H1: 03^ IS FOUND SO
  4531					;4 BYTES ARE SKIPPED OVER:
  4532					;		EXC PRINTING TEXT
  4533					;		1.  S3/
  4534					;		BL PRINTING TEXT
  4535					;		T PRINTING TEXT
  4536					;		2.  .
  4537					;		3.  AO/
  4538					;		4.  AOB/
  4539					;		THE NEXT LETTERS JRS ARE TYPED OUT.  THEN T/ IS FOUND.  AT
  4540					;T; A T IS TYPED OUT; THEN A "." IS FOUND AND EVERYTHING STOPS.
  4541					;
  4542					;		THE TABLE IS ALSO USED GOING FROM SYMBOLIC TO BINARY BUT A
  4543					;	TREE SEARCH METHOD IS USED.
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 155
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0126

  4544
  4545					REPEAT 0,<
  4546					
  4547					DEFINE REDEF (XX)<
  4548					DEFINE INFO (AA,BB)<
  4549					AA XX'BB>>
  4550					
  4551					
  4552					DEFINE BYT9 (L)<
  4553					XLIST
  4554					REDEF %
  4555						ZZ==0
  4556						ZZZ==0
  4557						ZZM==1
  4558					
  4559						IRPC	L,<
  4560						Z=="L"
  4561						IFE	Z-":",<INFO <>,<==CLOC>
  4562							IFNDEF FIR.,<FIR.==CLOC>
  4563							IFGE CLOC+73-1000-FIR.,<PRINTX OPTABLE TOO LONG>
  4564							Z==0>
  4565						IFE	Z-"/",<IF1 <OUTP 1>
  4566							IF2,<INFO OUTP,+73-FIR.>
  4567							Z==0>
  4568						IFE	Z-"^",<OUTP <ZZ&70/2+ZZ&7-1>
  4569						Z==0>
  4570						IFE	<Z-",">*<Z-".">*<Z-40>,<IFN ZZZ,<
  4571									REPEAT 5,<ZZ==ZZZ&77
  4572										IFN ZZ,<OUTP ZZ>
  4573										ZZZ==ZZZ/100>>
  4574									IFE Z-".",<OUTP 40>
  4575									Z==0>
  4576						IFN	Z,<INFO REDEF,L
  4577						ZZ==ZZ*10+Z&7
  4578						ZZZ==ZZZ+<Z-40>*ZZM
  4579						ZZM==ZZM*100>
  4580						IFE	Z,<REDEF %
  4581						ZZ==0
  4582						ZZZ==0
  4583						ZZM==1>>
  4584					LIST>
  4585					
  4586					DEFINE OUTP (A)<
  4587						BINRY==BINRY*400+BINRY*400+A
  4588						BINC==BINC-1
  4589						IFE	BINC,<EXP BINRY
  4590							BINRY==0
  4591							BINC==4>
  4592						CLOC==CLOC+1>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 156
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0127

  4593					
  4594					TBL:				;OPDECODER BYTE TABLE
  4595						.XCREF			;KEEP THIS MESS OUT OF CREF
  4596					
  4597					BINRY==0
  4598					CLOC==0				;SET BYTE LOCATION COUNTER TO 0
  4599					BINC==4				;INIT BYTES/WORD COUNTER
  4600					
  4601					BYT9 <63^UUO/FLO/HAK/ACCP/BOOLE/H HWT/T ACBM/>
  4602					
  4603					;IO INSTRUCTIONS
  4604					BYT9 <21^BD/CON,11^OI/S,01^Z/O/>
  4605					BYT9 <BD:01^BLK,IO/DATA,IO:11^I/O/OI:01^O/I/>
  4606					
  4607					;UUOS
  4608					BYT9 <UUO:51^.,32^U40/U50/U60/21^U703/11^USET/01^>
  4609					BYT9 <LOOKU,P/ENTE,R/USET:USET,01^I/O/>
  4610					BYT9 <U40:03^CAL/INI T/.....,CALL I/>
  4611					BYT9 <U60:21^U603/01^IN,BPUT/OUT,BPUT:11^BU,F:F.,PU,T/>
  4612					BYT9 <U603:01^U6062/STAT,11^O:O.,Z:Z.,U6062:11^S,U62/G,U62:ETST,S/>
  4613					;BYTE AND FLOATING INSTRUCTIONS
  4614					
  4615					BYT9 <FLO:51^BYTE/F 32^ AD A/SB A/MP A/DV A:>
  4616					BYT9 <21^LMB/R,IMB/LMB:02^.,L:L.,M:M.,B:B.,BYTE:32^.,I110//,I120/,03^UF,PA/DF,N/>
  4617					BYT9 <FS C/IB P:P.,I LD/LD:LD B/I DP/DP:DP B/>
  4618					
  4619					;FWT,FIXED POINT ARITH,MISC.
  4620					
  4621					BYT9 <HAK:33^MV/MV:MOV MO/ML/DV/SH/H1/JP/>
  4622					BYT9 <21^ADD IMB/SU BIMB:B IMB:02^.,I:I.,M/B/MO:22^>
  4623					BYT9 <EIMS:E IMS/S IMS/N IMS/M IMS:02^.,I/M/S:S.,>
  4624					BYT9 <ML:21^I ML1/ML1:MUL IMB/DV:21^I DV1/DV1:>
  4625					BYT9 <DI DV2:V IMB/H1:03^EXC S3/BL T:T.,AO/AO:AOBJ,>
  4626					BYT9 <AOB/JRS T/JFC L/XC T/.AOB:01^P/N/>
  4627					BYT9 <JP:03^PU/PU:PUSH PUS/PO/PO:POP POP/JS,R:R.,>
  4628					BYT9 <JS P/JS PA:A.,JR PA/PUS:01^J:J..,POP:>
  4629					BYT9 <01^.,J/SH:02^A S2/ROT S1/L S2:S S3:H S1/21^JFF O/.,S1:21^.,C:C.,>
  4630					
  4631					;ARITH COMP,SKIP,JUMP
  4632					
  4633					BYT9 <ACCP:42^CA CA1/SJ/A JS/S JS:O 31^>
  4634					BYT9 <J COMP/S COMP/CA1:31^I COMP/M COMP/>
  4635					BYT9 <SJ:31^JUM PSJ/SKI PSJ:P COMP:>
  4636					BYT9 <03^.,L/E:E.,L E/PA/G E/N:N.,G.,>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 157
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0128

  4637					
  4638					;HALF WORDS
  4639					
  4640					BYT9 <HWT:51^HW1/21^R HW2/L HW2:R HW3/HW1:>
  4641					BYT9 <21^L HW4/R HW4:L HW3:32^IMS/Z IMS/O IMS/EIMS/>
  4642					
  4643					;TEST INSTRUCTIONS
  4644					
  4645					BYT9 <ACBM:31^AC1/01^D AC2/S AC2/AC1:01^R AC2/L,>
  4646					BYT9 <AC2:42^N EAN/Z EAN/C EAN/O EAN:12^.,E/PA/N/>
  4647					
  4648					
  4649					;BOOLEAN
  4650					
  4651					BYT9 <BOOLE:24^ST/AN:AND B2/AN/ST/AN/ST/>
  4652					BYT9 <X OR:OR B2/I OR/AN/EQ DV2/ST/OR/ST/OR/OR/>
  4653					BYT9 <ST:SET B2:24^Z IMB/IMB/CA:C TA/TM:M IMB/>
  4654					BYT9 <CM:C TM/TA:A IMB/IMB/IMB/CB:C BIMB/IMB/CA/>
  4655					BYT9 <CA/CM/CM/CB/O IMB/>
  4656					
  4657					;INSTRUCTION GROUP 120
  4658					BYT9 <I120:11^ DMOV/ 01^ FIX,FIX2/ 21^.,FLT,FIX2: 21^. R/>
  4659					BYT9 <DMOV:DMOV,01^ E,EM// N,EM:21^. M/>
  4660					
  4661					;MORE UUO'S
  4662					BYT9 <U50:03^OPE,N/TT,CAL:CAL L/...,RENAM,E/I,N/OU,T/>
  4663					BYT9 <U703:02^CLOS,E/RELEA,S/MTAP,E/UGET,F/>
  4664					
  4665					;INSTRUCTION GROUP 110 - DF ARITHMETIC
  4666					BYT9 <I110:21^DF DF// ., DF:02^AD.,SB.,M P/ DV.>
  4667					
  4668					REPEAT BINC,<BINRY==BINRY*400+BINRY*400>
  4669						IFN	BINRY,<EXP BINRY>
  4670						.CREF			;TURN CREF BACK ON
  4671						>			;END OF REPEAT 0
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 158
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0129

  4672
  4673					;THE FOLLOWING IS AN ALTERNATE SET OF MACROS FOR BUILDING THE OP
  4674					;TABLE.  THEY ASSEMBLE MUCH FASTER THAN THE ONES ABOVE. THEY ARE:
  4675					;.ADR - DECLARE TAG; .TRA - TRANSFER BYTE; .TRAX - EXTENDED TRANSFER
  4676					;BYTE; .DIS - DISPATCH BYTE; .TXT - TEXT BYTES; .END - TEXT BYTES
  4677					;FOLLOWED BY STOP BYTE.
  4678
  4679					DEFINE BYT9 (A) <
  4680						XLIST
  4681						IRP	A,<
  4682					A>
  4683						LIST>
  4684
  4685						IF1,<
  4686					
  4687					DEFINE .ADR (A) <
  4688					%'A== CLOC
  4689					FIR.== CLOC
  4690					DEFINE .ADR (B) <
  4691					%'B== CLOC
  4692					LASTB==CLOC+74-FIR.>>
  4693					
  4694					DEFINE .TRA (A)<CLOC==CLOC+1>
  4695					DEFINE .TRAX (A)<CLOC==CLOC+2>
  4696					
  4697					SYN .TRA, .DIS
  4698					
  4699					DEFINE .TXT (A) <
  4700						IFNB	<A>, <IRPC A,<CLOC==CLOC+1>>>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 159
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0130

  4701					DEFINE .END (A) <
  4702						IFNB	<A>, <IRPC A,<CLOC==CLOC+1>>
  4703					CLOC== CLOC+1>
  4704					
  4705						>			;END OF IF1
  4706						IF2,<
  4707
  4708					DEFINE .ADR (A)<IFN %'A-CLOC,<PRINTX PHASE ERR AT: %'A>>
  4709
  4710					DEFINE .TRA (A) <OUTP %'A+74-FIR.>
  4711
  4712					DEFINE .TRAX (A),<OUTP 73
  4713						OUTP	74+<Z1==%'A-FIR.-1000+74>
  4714						IFL	Z1,<PRINTX "A" TOO SMALL FOR .TRAX>>
  4715
  4716					DEFINE .DIS (A) <OUTP A&70/2+A&7-1>
  4717
  4718					DEFINE .TXT (A) <IFNB <A>,<IRPC A,<OUTP "A"-40>>>
  4719
  4720					DEFINE .END (A) <
  4721						IFNB	<A>, <IRPC A,<OUTP "A"-40>>
  4722					OUTP 40>
  4723
  4724					DEFINE OUTP (A)<
  4725						IFGE	<A>-1000,<PRINTX OPTABLE BYTE "A" TOO BIG>
  4726						IFE	<BINC==BINC-9>-^D27,<BINR1==A>
  4727						IFE	BINC-^D18,<BINR2==A>
  4728						IFE	BINC-9,<BINR3==A>
  4729						IFE	BINC,< BYTE (9) BINR1,BINR2,BINR3,<A>
  4730						BINC==^D36>
  4731					CLOC==CLOC+1 >
  4732						>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 160
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0131

  4733
  4734	015473				TBL:	.XCREF			;OPDECODER BYTE TABLE
  4735
  4736			000000		CLOC== 0			;SET BYTE LOCATION COUNTER TO 0
  4737			000044		BINC== ^D36			;INIT BYTES/WORD COUNTER
  4738
  4739					;**********THE ARGUMENT FOR THE FOLLOWING "BYT9" MACRO
  4740					;**************TERMINATES AT THE NEXT COMMENT WITH: **************
  4741
  4742						IFN	FTDEC20,<
  4743						BYT9	<
  4744					.DIS 63,.END,.TRA FLO,.TRA HAK,.TRA ACCP,.TRA BOOLE
  4745						.TXT H,.TRA HWT,.TXT T,.TRA ACBM>
  4746						>			;END FTDEC20
  4747
  4748						IFE	FTDEC20,<
  4749						BYT9	<
  4750					.DIS 63,.TRA UUO,.TRA FLO,.TRA HAK,.TRA ACCP,.TRA BOOLE
  4751						.TXT H,.TRA HWT,.TXT T,.TRA ACBM>
  4752						>			;END FTDEC20
  4753
  4754						BYT9	<
  4755					
  4756					;IO INSTRUCTIONS
  4757					
  4758					.DIS 21,.TRA BD,.TXT CON,.DIS 11,.TRA OI,.TXT S,.DIS 01,.TRA Z,.TRA O
  4759					.ADR BD,.DIS 01,.TXT BLK,.TRA IO,.TXT DATA,.ADR IO,.DIS 11,.TRA I,.TRA O
  4760						.ADR OI,.DIS 01,.TRA O,.TRA I
  4761					;UUOS
  4762					
  4763					.ADR UUO,.DIS 51,.END,.TXT,.DIS 32,.TRA U40,.TRAX U50,.TRA U60
  4764						.DIS 21,.TRAX U703,.DIS 11,.TRA USET,.DIS 01
  4765					.TXT LOOKU,.TRA P,.TXT ENTE,.TRA R,.ADR USET,.TXT USET,.DIS 01,.TRA I,.TRA O
  4766					.ADR U40,.DIS 03,.TRAX CAL,.TXT INI,.TRA T,.END,.END,.END,.END,.END,.TXT CALL,.TRA I
  4767					.ADR U60,.DIS 21,.TRA U603,.DIS 01,.TXT IN,.TRA BPUT,.TXT OUT
  4768						.ADR BPUT,.DIS 11,.TXT BU,.ADR F,.END F,.TXT,.TXT PU,.TRA T
  4769					.ADR U603,.DIS 01,.TRA U6062,.TXT STAT,.DIS 11,.ADR O,.END O,.TXT,.ADR Z,.END Z,.TXT
  4770						.ADR U6062,.DIS 11,.TXT S,.TRA U62,.TXT G,.ADR U62,.TXT ETST,.TRA S
  4771					
  4772					;BYTE AND FLOATING INSTRUCTIONS
  4773					
  4774					.ADR FLO,.DIS 51,.TRA BYTE,.TXT F,.DIS 32,.TXT,.TXT AD,.TRA A,.TXT SB
  4775						.TRA A,.TXT MP,.TRA A,.TXT DV,.ADR A
  4776					.DIS 21,.TRA LMB,.TXT R,.TRA IMB,.ADR LMB,.DIS 02,.END,.TXT
  4777						.ADR L,.END L,.TXT,.ADR M,.END M,.TXT
  4778					.ADR B,.END B,.TXT,.ADR BYTE,.DIS 32,.TRAX I100,.TRAX I110,.TRA I120,.TXT
  4779						.DIS 03,.TXT UF,.TRA PA,.TXT DF,.TRA N
  4780					.TXT FS,.TRA C,.TXT IB,.ADR P,.END P,.TXT,.TXT I,.TRA LD
  4781						.ADR LD,.TXT LD,.TRA B,.TXT I,.TRA DP,.ADR DP,.TXT DP,.TRA B
  4782					
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 161
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0132

  4783					
  4784					;FWT-FIXED POINT ARITH-MISC
  4785					
  4786					.ADR HAK,.DIS 33,.TRA MV,.ADR MV,.TXT MOV,.TRA MO,.TRA ML,.TRA DV
  4787						.TRA SH,.TRA H1,.TRA JP
  4788					.DIS 21,.TXT ADD,.TRA IMB,.TXT SU,.ADR BIMB,.TXT B,.ADR IMB,.DIS 02,.END,.TXT
  4789						.ADR I,.END I,.TXT,.TRA M,.TRA B,.ADR MO,.DIS 22
  4790					.ADR EIMS,.TXT E,.TRA IMS,.TXT S,.TRA IMS,.TXT N,.TRA IMS,.TXT M
  4791						.ADR IMS,.DIS 02,.END,.TXT,.TRA I,.TRA M,.ADR S,.END S,.TXT
  4792					.ADR ML,.DIS 21,.TXT I,.TRA ML1,.ADR ML1,.TXT MUL,.TRA IMB
  4793						.ADR DV,.DIS 21,.TXT I,.TRA DV1
  4794					.ADR DV1,.TXT DI,.ADR DV2,.TXT V,.TRA IMB,.ADR H1,.DIS 03,.TXT EXC,.TRA S3,.TXT BL
  4795						.ADR T,.END T,.TXT,.TRA AO,.ADR AO,.TXT AOBJ
  4796					.TRA AOB,.TXT JRS,.TRA T,.TXT JFC,.TRA L,.TXT XC,.TRA T,.TXT MA,.TRA P
  4797						.ADR AOB,.DIS 01,.TRA P,.TRA N
  4798					.ADR JP,.DIS 03,.TRA PU,.ADR PU,.TXT PUSH,.TRA PUS,.TRA PO
  4799						.ADR PO,.TXT POP,.TRA POP,.TXT JS,.ADR R,.END R,.TXT
  4800					.TXT JS,.TRA P,.TXT JS,.ADR PA,.END A,.TXT,.TXT JR,.TRA PA
  4801						.ADR PUS,.DIS 01,.ADR J,.END J,.END,.TXT,.ADR POP
  4802					.DIS 01,.END,.TXT,.TRA J,.ADR SH,.DIS 02,.TXT A,.TRA S2,.TXT ROT,.TRA S1,.TXT L
  4803						.ADR S2,.TXT S,.ADR S3,.TXT H,.TRA S1,.DIS 21,.TXT JFF,.TRA O,.END
  4804						.ADR S1,.DIS 21,.END,.TXT,.ADR C,.END C,.TXT
  4805					
  4806					;ARITH COMP-SKIP-JUMP
  4807					
  4808					.ADR ACCP,.DIS 42,.TXT CA,.TRA CA1,.TRA SJ,.TXT A,.TRA JS,.TXT S
  4809						.ADR JS,.TXT O,.DIS 31
  4810					.TXT J,.TRA COMP,.TXT S,.TRA COMP,.ADR CA1,.DIS 31,.TXT I,.TRA COMP,.TXT M,.TRA COMP
  4811					.ADR SJ,.DIS 31,.TXT JUM,.TRA PSJ,.TXT SKI,.ADR PSJ,.TXT P,.ADR COMP
  4812					.DIS 03,.END,.TXT,.TRA L,.ADR E,.END E,.TXT,.TXT L,.TRA E,.TRA PA,.TXT G,.TRA E
  4813						.ADR N,.END N,.TXT,.END G,.TXT
  4814					
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 162
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0133

  4815					
  4816					;HALF WORDS
  4817					
  4818					.ADR HWT,.DIS 51,.TRA HW1,.DIS 21,.TXT R,.TRA HW2,.TXT L,.ADR HW2,.TXT R,.TRA HW3
  4819					.ADR HW1,.DIS 21,.TXT L,.TRA HW4,.TXT R,.ADR HW4,.TXT L
  4820						.ADR HW3,.DIS 32,.TRA IMS,.TXT Z,.TRA IMS,.TXT O,.TRA IMS,.TRA EIMS
  4821					
  4822					;TEST INSTRUCTIONS
  4823					
  4824					.ADR ACBM,.DIS 31,.TRA AC1,.DIS 01,.TXT D,.TRA AC2,.TXT S,.TRA AC2
  4825						.ADR AC1,.DIS 01,.TXT R,.TRA AC2,.TXT L
  4826					.ADR AC2,.DIS 42,.TXT N,.TRA EAN,.TXT Z,.TRA EAN,.TXT C,.TRA EAN,.TXT O
  4827						.ADR EAN,.DIS 12,.END,.TXT,.TRA E,.TRA PA,.TRA N
  4828					
  4829					;BOOLEAN
  4830					
  4831					.ADR BOOLE,.DIS 24,.TRA ST,.ADR AN,.TXT AND,.TRA B2,.TRA AN,.TRA ST,.TRA AN,.TRA ST
  4832					.TXT X,.ADR OR,.TXT OR,.TRA B2,.TXT I,.TRA OR,.TRA AN,.TXT EQ
  4833						.TRA DV2,.TRA ST,.TRA OR,.TRA ST,.TRA OR,.TRA OR
  4834					.ADR ST,.TXT SET,.ADR B2,.DIS 24,.TXT Z,.TRA IMB,.TRA IMB
  4835						.ADR CA,.TXT C,.TRA TA,.ADR TM,.TXT M,.TRA IMB
  4836					.ADR CM,.TXT C,.TRA TM,.ADR TA,.TXT A,.TRA IMB,.TRA IMB,.TRA IMB
  4837						.ADR CB,.TXT C,.TRA BIMB,.TRA IMB,.TRA CA
  4838					.TRA CA,.TRA CM,.TRA CM,.TRA CB,.TXT O,.TRA IMB
  4839					
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 163
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0134

  4840					
  4841					;INSTRUCTION GROUP 120
  4842					.ADR I120,.DIS 11,.TRAX DMOV,.DIS 01,.TXT FIX,.TRAX FIX2,.DIS 21,.END EXTEND
  4843						.TXT FLT,.ADR FIX2,.DIS 21,.END,.TRA R
  4844					.ADR DMOV,.TXT DMOV,.DIS 01,.TXT E,.TRAX EM,.TXT N
  4845						.ADR EM,.DIS 21,.END,.TRA M
  4846					
  4847					;MORE UUO'S
  4848					
  4849					.ADR U50,.DIS 03,.TXT OPE,.TRA N,.TXT TT,.ADR CAL,.TXT CAL,.TRA L,.END,.END,.END
  4850						.TXT,.TXT RENAM,.TRA E,.TXT I,.TRA N,.TXT OU,.TRA T
  4851					.ADR U703,.DIS 02,.TXT CLOS,.TRA E,.TXT RELEA,.TRA S
  4852						.TXT MTAP,.TRA E,.TXT UGET,.TRA F
  4853					
  4854					;INSTRUCTION GROUP 110 - DF ARITHMETIC
  4855					.ADR I110,.DIS 21,.TXT DF,.TRAX DF,.TXT D,.TRAX FXDP,.ADR DF,.DIS 02
  4856						.END AD,.END SB,.TXT M,.TRA P,.END DV
  4857					
  4858					;KL10 FIXED POINT DOUBLE PRECISION OPERATIONS
  4859					.ADR FXDP,.DIS 02,.END ADD,.END SUB,.END MUL,.END DIV
  4860					
  4861					;OPCODES 100 TO 107 COME HERE
  4862					.ADR I100,.DIS 21,.END,.DIS 02,.END,.END ADJSP,.END,.END
  4863					;**********THIS TERMINATES THE "BYT9" MACRO ARGUMENT******
  4864						>
  4865
  4866						IF1,< BLOCK <CLOC+3>/4>
  4867	015715	040 040 060 000 		IF2,< IFN BINC-^D36,<BYTE (9) BINR1,BINR2,BINR3,0> >
  4868
  4869						IFNDEF	CLOC.,<CLOC.==CLOC>
  4870						IFN	CLOC.-CLOC,<PRINTX PHASE ERROR IN OPTABLE>
  4871
  4872						.CREF			;TURN CREF BACK ON
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 164
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0135

  4873
  4874	015716	44 11 0 00 015473 	BTAB:	POINT	9,TBL		;TABLE USED TO GET NEXT BYTE POINTER
  4875	015717	33 11 0 00 015473 		POINT	9,TBL,8		;FOR TRANSFER BYTE
  4876	015720	22 11 0 00 015473 		POINT	9,TBL,17
  4877	015721	11 11 0 00 015473 		POINT	9,TBL,26
  4878
  4879	015722	201 05 0 00 000000 	OPEVAL:	MOVEI	T,0		;EVALUATE FOR AN OP CODE
  4880	015723	136 05 0 00 016520 		IDPB	T,CHP		;INSERT NULL IN TEXT FOR SYMBOL
  4881	015724	202 17 0 00 016523 		MOVEM	P,SAVPDL
  4882	015725	624 00 0 00 000004 		TRZA	F,OUTF
  4883	015726	660 00 0 00 000004 	OPTYPE:	TRO	F,OUTF		;TYPE AN OPCODE SYMBOLICALLY
  4884	015727	242 05 0 00 777745 		LSH	T,-33
  4885	015730	202 05 0 00 016517 		MOVEM	T,INST		;GET OPCODE INTO RIGHT 9 BITS
  4886	015731	200 05 0 00 016051 		MOVE	T,[XWD 440700,TXT]
  4887	015732	202 05 0 00 016520 		MOVEM	T,CHP		;FOR OPEVAL,SETUP POINTER TO INPUT TEXT
  4888	015733	620 00 0 00 000002 		TRZ	F,ITF		;CLEAR INSTRUCTION TYPED FLAG
  4889	015734	403 02 0 00 000006 		CLEARB	R,W1
  4890	015735	200 07 0 00 015716 		MOVE	W2,BTAB
  4891	015736	134 05 0 00 000007 	DC1:	ILDB	T,W2		;GET NEXT BYTE IN TBL
  4892	015737	303 05 0 00 000040 		CAILE	T,40
  4893	015740	301 05 0 00 000074 		CAIL	T,74
  4894	015741	365 02 0 00 015736 		SOJGE	R,DC1		;SKIP OVER # BYTES = C(R)
  4895	015742	327 02 0 00 015736 		JUMPG	R,DC1		;SKIP OVER ALPHA TEXT (AND EXTEND BYTES) WITHOUT COUNTING
  4896	015743	275 05 0 00 000040 		SUBI	T,40
  4897	015744	322 05 0 00 015776 		JUMPE	T,DECX		;TRANSFER ON ASTOP CODE
  4898	015745	327 05 0 00 015756 		JUMPG	T,DC2
  4899	015746	137 05 0 00 016334 		DPB	T,[XWD 340500,PNTR]	;SETUP R ON A DISPATCH BYTE
  4900	015747	620 05 0 00 777774 		TRZ	T,-4
  4901	015750	350 00 0 00 000005 		AOS	T
  4902	015751	137 05 0 00 016335 		DPB	T,[XWD 300600,PNTR]
  4903	015752	606 00 0 00 000004 		TRNN	F,OUTF
  4904	015753	254 00 0 00 016015 		JRST	DC6		;FOR OPEVAL ONLY
  4905	015754	135 02 0 00 016516 		LDB	R,PNTR		;GET # BYTES TO SKIP OVER
  4906	015755	254 00 0 00 015736 		JRST	DC1
  4907
  4908	015756	571 05 0 05 777745 	DC2:	HRREI	T,-33(T)	;TOTAL SUBTRACTED NOW IS 73
  4909	015757	321 05 0 00 015770 		JUMPL	T,DECT		;TYPE OUT A LETTER
  4910	015760	327 05 0 00 015763 		JUMPG	T,DC3		;XFER IF BYTE .GE. 74
  4911	015761	134 05 0 00 000007 		ILDB	T,W2		;BYTE IS EXTEND BYTE (73), GET NEXT
  4912	015762	201 05 0 05 000611 		MOVEI	T,1000-74*2+1(T)	; BYTE AND ADD IN EXTENSION (-OFFSET)
  4913	015763	201 06 0 05 000024 	DC3:	MOVEI	W1,FIR.-1(T)	;BYTE IS AN XFER (1ST XFER IS 74)
  4914	015764	231 06 0 00 000004 		IDIVI	W1,4
  4915	015765	200 07 0 07 015716 		MOVE	W2,BTAB(W2)	;CALCULATE POINTER TO NEXT BYTE
  4916	015766	271 07 0 06 000000 		ADDI	W2,(W1)
  4917	015767	254 00 0 00 015736 		JRST	DC1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 165
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0136

  4918
  4919	015770	602 00 0 00 000004 	DECT:	TRNE	F,OUTF
  4920	015771	254 00 0 00 016041 		JRST	DC8		;TYPE OUT A LETTER
  4921	015772	134 06 0 00 016520 		ILDB	W1,CHP		;GET NEXT INPUT LETTER
  4922	015773	302 06 0 05 000133 		CAIE	W1,133(T)	;COMPARE WITH ASSUMED NEXT LETTER
  4923	015774	254 00 0 00 016002 		JRST	NOMAT		;DOESNT MATCH
  4924	015775	254 00 0 00 015736 		JRST	DC1		;MATCHES, TRY NEXT
  4925
  4926	015776	602 00 0 00 000004 	DECX:	TRNE	F,OUTF		;STOP (CODE 40) HAS BEEN SEEN
  4927	015777	263 17 0 00 000000 		POPJ	P,		;IF FOR OUTPUT, RETURN
  4928	016000	134 06 0 00 016520 		ILDB	W1,CHP		;GET NEXT INPUT CHAR IF ANY
  4929	016001	322 06 0 00 016031 		JUMPE	W1,DC7		;DOES # OF CHARS MATCH
  4930	016002	262 17 0 00 000002 	NOMAT:	POP	P,R		;NO, BACK UP AND TRY SOME MORE
  4931	016003	262 17 0 00 000007 		POP	P,W2
  4932	016004	262 17 0 00 016516 		POP	P,PNTR
  4933	016005	262 17 0 00 016520 		POP	P,CHP
  4934	016006	350 00 0 00 000002 	NOMAT1:	AOS	R		;ASSUME NEXT NUMBER FOR BIN VALUE
  4935	016007	137 02 0 00 016516 		DPB	R,PNTR		;STUFF INTO ANSWER
  4936	016010	135 02 0 00 016516 		LDB	R,PNTR
  4937	016011	326 02 0 00 016017 		JUMPN	R,DC6AA		;IF =0, BYTE WAS TOO BIG
  4938	016012	312 17 0 00 016523 		CAME	P,SAVPDL
  4939	016013	254 00 0 00 016002 		JRST	NOMAT		;NOT AT TOP LEVEL
  4940	016014	263 17 0 00 000000 		POPJ	P,		;UNDEFINED, FINALLY
  4941
  4942	016015	201 02 0 00 000000 	DC6:	MOVEI	R,0		;ASSUME 0 FOR INITIAL BINARY VALUE
  4943	016016	137 02 0 00 016516 		DPB	R,PNTR
  4944	016017	316 17 0 00 016523 	DC6AA:	CAMN	P,SAVPDL
  4945	016020	254 00 0 00 016024 		JRST	DC6BB
  4946	016021	135 05 0 17 777776 		LDB	T,-2(P)		;OLD VALUE OF PNTR
  4947	016022	312 05 0 17 000000 		CAME	T,(P)
  4948	016023	254 00 0 00 016006 		JRST	NOMAT1
  4949	016024	261 17 0 00 016520 	DC6BB:	PUSH	P,CHP
  4950	016025	261 17 0 00 016516 		PUSH	P,PNTR
  4951	016026	261 17 0 00 000007 		PUSH	P,W2
  4952	016027	261 17 0 00 000002 		PUSH	P,R
  4953	016030	254 00 0 00 015736 		JRST	DC1
  4954
  4955	016031	200 17 0 00 016523 	DC7:	MOVE	P,SAVPDL	;RESTORE PUSH DOWN POINTER
  4956	016032	200 05 0 00 016517 		MOVE	T,INST
  4957	016033	242 05 0 00 000033 		LSH	T,33		;PUSH BINARY INTO POSITION FOR OPEVAL
  4958	016034	135 02 0 00 016336 		LDB	R,[POINT 3,T,8]
  4959	016035	641 05 0 00 700000 		TLC	T,700000
  4960	016036	647 05 0 00 700000 		TLCN	T,700000
  4961	016037	137 02 0 00 016337 		DPB	R,[POINT 10,T,12]	;ONLY DONE FOR IO INSTRUCTIONS
  4962	016040	254 00 0 00 010520 		JRST	CPOPJ1		;SYMBOL FOUND, SKIP RETURN
  4963
  4964	016041	660 00 0 00 000002 	DC8:	TRO	F,ITF		;SET INSTRUCTION TYPED FLAG
  4965	016042	201 05 0 05 000133 		MOVEI	T,133(T)
  4966	016043	260 17 0 00 014533 		PUSHJ	P,TOUT		;OUTPUT A LETTER
  4967	016044	402 00 0 00 016547 		CLEARM	SPSAV		;SO $D WONT TRY TO DELETE OP CODES
  4968	016045	254 00 0 00 015736 		JRST	DC1
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 166
KLDDT	MAC	 5-May-78 12:59		OP DECODER                                                                         SEQ 0137

  4969
  4970					;*** LITERALS XLISTED ***
  4971
  4972						XLIST
  4973						LIST
  4974	016355				END.C:				;END OF CODE
  4975
  4976					SUBTTL VARIABLE STORAGE
  4977
  4978						IFN	FTDEC20,< IFDEF VARLOC,<
  4979					PHVAR:	PHASE	VARLOC>>	;PHASE VARIABLES FOR UDDT AND MDDT
  4980
  4981	016355				BEG.V:				;BEGINNING OF VARIABLES
  4982	016355	201 07 0 00 000000 	NM1A:	MOVEI	W2,0
  4983	016356	201 05 0 00 000000 	ACCCF:	MOVEI	T,.-.		;LEFT HALF OF A,,B
  4984	016357	322 05 0 00 013727 	SEAR2:	JUMPE	T,SEAR3		;OR JUMPN T
  4985	016360	201 05 0 00 000000 	TOCS:	MOVEI	T,.-.		;GET RIGHT HALF BACK
  4986
  4987					;VARIABLES FOR LINE BUFFER INPUT
  4988
  4989	016361	000000	000000		TEXINF:	0			;NON-0 FOR TEXT INPUT MODE
  4990	016362	000000	000000		CHINC:	0			;COUNT OF CHARACTERS
  4991	016363	000000	000000		WAKALL:	0			;NON-0 TO WAKEUP ON EVERYTHING
  4992					;*** DO NOT REORDER THE FOLLOWING ***
  4993	016364	000000	000010		TEXTIB:	10			;TEXTI ARG BLOCK - SIZE
  4994					;	IFN	FTDEC20,<
  4995	016365	715100	000000			RD%BRK+RD%TOP+RD%PUN+RD%RND+RD%JFN+RD%BBG+RD%SUI ;FLAGS
  4996	016366	000100	000101			.PRIIN,,.PRIOU		;INPUT/OUTPUT JFNS
  4997					;	>
  4998	016367	000000	000000		CHINP:	0			;POINTER TO NEXT CHAR
  4999	016370	000000	000000		LINSPC:	0			;FREE SPACE COUNT
  5000	016371	44 07 0 00 016377 	LINDB:	POINT	7,LINBF		;BEGINNING OF BUFFER
  5001	016372	44 07 0 00 016377 	LINBP:	POINT	7,LINBF		;BEGINNING OF ^R BUFFER
  5002	016373	000000	000000		ETXTB:	0			;WAKEUP TABLE (ALL ONES)
  5003	016374	000000	000000			0			;BACKUP LIMIT POINTER
  5004					;***END OF "DO NOT REORDER" BLOCK***
  5005
  5006						IFN	^-FTDEC20!<FTEXEC&FTEDIT>,<
  5007	016375	000000	000000		SAVCHR:	0			;PRESET RESULT FOR NEXT CALL TO RDBIN
  5008	016376	000000	000000		LASCHR:	0			;ANSWER FROM LAST CALL TO RDBIN
  5009						>
  5010
  5011			000024		NLINBF==^D20
  5012	016377				LINBF:	BLOCK	NLINBF		;LINE BUFFER
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 167
KLDDT	MAC	 5-May-78 12:59		VARIABLE STORAGE                                                                   SEQ 0138

  5013
  5014					SUBTTL	STORAGE -- $X LOGIC AND PATCH COMMAND
  5015
  5016						IFE	FTFILE,<
  5017					;VARIABLES USED IN $X LOGIC
  5018
  5019	016423	256 00 0 00 016424 	I.XCT:	XCT	I.NST
  5020	016424	000000	000000		I.NST:	0			;INSTRUCTION BEING EXECUTED
  5021	016425	000000	000000		SAV0:	0			;SAVES AC 0 IN SWAP ROUTINE
  5022	016426	000000	000000		XCTS:	0			;XCT DEPTH COUNTER
  5023	016427	000000	000000		I.NSTAC:0			;AC FIELD OF INST BEING EXECUTED
  5024	016430	000000	000000		I.NSTEA:0			;E FIELD OF INST BEING EXECUTED
  5025	016431	000000	000000		XTEM:	0			;$X REPEAT COUNTER
  5026	016432	000000	000000		I.NSTPC:0			;PC OF INST BEING EXECUTED
  5027	016433	000000	000000		FLAGS:	0			;SAVES DDT FLAG REGISTER
  5028	016434	000000	000000		LOCSAV:	0			;SAVES LOCATION OF INST BEING EXECUTED
  5029	016435	000000	000000		SAFETY:	0			;SAVES T
  5030						>			;END FTFILE
  5031
  5032					;VARIABLES FOR PATCH COMMAND
  5033
  5034	016436	000000	000000		PTLOC:	0			; SOURCE OF PATCH ADR ,, PATCH ADR
  5035	016437	000000	000000		PTLLC:	0			; BEFORE/AFTER FLAG ,, OLD LLOCO
  5036	016440	000000	000000		PTWRD:	0			; ORIGINAL WORD AT OLD LLOCO
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 168
KLDDT	MAC	 5-May-78 12:59		STORAGE -- $X LOGIC AND PATCH COMMAND                                              SEQ 0139

  5037
  5038					SUBTTL  STORAGE -- BREAKPOINTS
  5039						IFE	FTFILE,<
  5040	016441	000000	000000		SAVE:	0			;SAVE THE ACS AND PI SYSTEM
  5041	016442	254 00 0 00 012377 		JRST	SAVEG
  5042
  5043					BP1:	REPEAT	NBP,<
  5044						0			;JSR TO HERE FOR BREAKPOINT
  5045						JSA	T, BCOM
  5046						0			;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE
  5047	016443	000000	000000			>
  5048	016444	266 05 0 00 016473 
  5049	016445	000000	000000
  5050	016446	000000	000000
  5051	016447	266 05 0 00 016473 
  5052	016450	000000	000000
  5053	016451	000000	000000
  5054	016452	266 05 0 00 016473 
  5055	016453	000000	000000
  5056	016454	000000	000000
  5057	016455	266 05 0 00 016473 
  5058	016456	000000	000000
  5059	016457	000000	000000
  5060	016460	266 05 0 00 016473 
  5061	016461	000000	000000
  5062	016462	000000	000000
  5063	016463	266 05 0 00 016473 
  5064	016464	000000	000000
  5065	016465	000000	000000
  5066	016466	266 05 0 00 016473 
  5067	016467	000000	000000
  5068	016470	000000	000000
  5069	016471	266 05 0 00 016473 
  5070	016472	000000	000000
  5071
  5072			016445		B1INS=BP1+2
  5073			016470		BPN=.-3
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 169
KLDDT	MAC	 5-May-78 12:59		STORAGE -- BREAKPOINTS                                                             SEQ 0140

  5074
  5075	016473	000000	000000		BCOM:	0
  5076	016474	254 00 0 00 012546 		JRST	BCOMG
  5077	016475	332 00 0 00 000000 	BCOM3:	SKIPE	0		;ADDR MOD TO LOOK AT COND. INST.
  5078	016476	377 00 0 00 000000 	BCOM2:	SOSG	0		;ADDR MOD TO LOOK AT PROCEED COUNTER
  5079	016477	000000	012733		LEAV1:	XWD	0,LEAVG
  5080	016500	241 03 0 00 000000 	BREAK2:	ROT	S,.-.		;ROT BY # OF BREAK POINT
  5081	016501	551 02 0 00 011565 	PROC0:	HRRZI	R,XEC1		;MODIFIED TO ADDR OF BREAKPOINT
  5082	016502	000000	000000		LEAV:	0			;INSTRUCTION MODIFIED
  5083	016503	261 00 0 00 016473 	CPUSHP:	PUSH	.-.,BCOM	;GETS MODIFIED IN AC FIELD
  5084	016504	000000	000000		SWAP:	0
  5085	016505	254 00 0 00 012362 		JRST	SWAPG
  5086						>			;END IFE FTFILE
  5087
  5088	016506	000000	000000		SVBTS:	0
  5089	016507	000000	000000		SVBTS2:	0
  5090	016510	000000	000000		OLDAR:	0
  5091	016511	000000	000000		SVBT3:	0
  5092	016512	000000	000000		SVBT2:	0
  5093	016513				PSVBTS:	BLOCK	3
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 170
KLDDT	MAC	 5-May-78 12:59		STORAGE -- BREAKPOINTS                                                             SEQ 0141

  5094
  5095					SUBTTL	STORAGE -- SYMBOL TABLE LOGIC
  5096
  5097	016516	000000	016517		PNTR:	EXP	INST		;POINTER TO BITS IN INST
  5098	016517	000000	000000		INST:	0			;BINARY FOR INSTRUCTION
  5099	016520	000000	000000		CHP:	0			;CHAR POINTER INTO TXT, TXT+1
  5100	016521				TXT:	BLOCK	2		;STORE INPUT TEXT FOR OPEVAL
  5101	016523	000000	000000		SAVPDL:	0			;SAVE PUSH DOWN LIST POINTER
  5102	016524	000000	000000		WRD:	0
  5103	016525	000000	000000		WRD2:	0
  5104	016526	000000	000000		PRNC:	0
  5105
  5106	016527	000000	000000		FRASE:	0			;DONT CHANGE ORDER, SEE  SEARC+3
  5107	016530	000000	000000		SYL:	0
  5108	016531	000000	000000		LWT:	0
  5109	016532	000000	000000		TEM2:	0
  5110	016533				FRASE1:
  5111	016533	000000	000000		TEM3:	0
  5112	016534	000000	000000		DEN:	0
  5113
  5114	016535				SAVHSM:	BLOCK	1		;C(.JBHSM), USED BY EVAL, LOOK
  5115	016536	000000	000000		SEGNAM:	0			;THE HIGH SEGMENT NAME (OR 0)
  5116									;WHEN $: IS SUCCESSFULLY DONE
  5117	016537	000000	000000		PRGM:	0
  5118	016540	000000	000000		ESTUT:	0
  5119	016541	000000	000000		FSV:	0
  5120	016542	000000	000000		FH:	0
  5121	016543	000000	000000		SYM:	0
  5122						IFE	FTDEC20,<
  5123						IFE	FTFILE,<
  5124	016544	000 00 0 00 012463*	SYMP:	Z	.JBSYM		;POINTS TO LOW SEG SYM TABLE POINTER
  5125	016545	000 00 0 00 012465*	USYMP:	Z	.JBUSY		;POINTS TO UNDEF SYM TABLE POINTER
  5126						>
  5127						IFN	FTFILE,<
  5128					SYMP:	Z	FISPTR
  5129					USYMP:	Z	FIUPTR
  5130						>>
  5131						IFN	FTDEC20,<
  5132						IFN	FTEXEC,<
  5133					SYMP:	Z	.JBSYM
  5134					USYMP:	Z	.JBUSY>
  5135						IFE	FTEXEC,<
  5136					SYMP:	Z	.DDSYM
  5137					USYMP:	Z	.DDUSY
  5138						>
  5139					JDTFLG:	-1			;JOB DATA AREA VALID IF NON-0
  5140						>			;END IFN FTDEC20
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 171
KLDDT	MAC	 5-May-78 12:59		STORAGE -- SYMBOL TABLE LOGIC                                                      SEQ 0142

  5141
  5142	016546	000000	000000		SYMPNT:	0			;USED BY SYM TABLE SEARCHES
  5143	016547	000000	000000		SPSAV:	0			;POINTER TO LAST SYMBOL TYPED
  5144	016550	000000	000000		DEFV:	0
  5145	016551	000000	000000		ULIMIT:	0
  5146	016552	000000	000000		LLOC:	0
  5147	016553	000000	000000		LLOCO:	0
  5148	016554	000000	000000		SAVLP:	0			;POINTER TO SAVLOC TABLE
  5149			000020		NSAVTB==20			;SIZE OF SAVLOC TABLE (RING BUFFER)
  5150	016555				SAVLTB:	BLOCK	NSAVTB		;SAVLOC TABLE
  5151	016575	000000	000000		SYMORD:	0			;HOLDS ADDRESSES OF EVAL-OPEVAL ROUTINES
  5152									;SPECIFYING WHICH ORDER TO SEARCH THEM FOR SYMBOLS
  5153	016576	000000	000000		QLPNT:	0			;USED IN "QLIST" AS POINTER TO A SYMBOL
  5154	016577	000000	000012		LCNT:	12			;USED IN LISTEN
  5155	016600	000000	000000		SKPCT:	0			;SKIP COUNT FOR XCT
  5156	016601	000000	000000		EFAFLG:	0			;EFF ADR COMP MODE
  5157						IFN	FTEXEC!FTFILE,<
  5158					;EPTUPT:	0			;LH - EPT POINTER , RH - UPT POINTER
  5159						>
  5160						IFN	FTYANK,<
  5161					PTDFLG:	0			;EOF SEEN ON COMMAND FILE
  5162						>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 172
KLDDT	MAC	 5-May-78 12:59		STORAGE -- SYMBOL TABLE LOGIC                                                      SEQ 0143

  5163
  5164					SUBTTL	STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT
  5165
  5166						IFE	FTFILE,<
  5167	016602	000000	000000		SAVAPR:	0			;USED TO SAVE APR REGISTER IN EXEC MODE
  5168	016603	000000	000000		SAVPI:	0
  5169	016604	000000	001177			1177
  5170
  5171					;THESE LOCATIONS MUST BE IN ORDER - THEY ARE USED TO SAVE AND
  5172					;RESTORE THE STATE OF DTE FOR KL10
  5173
  5174	016605	000000	000000		SAVTTY:	0
  5175						IFN	FTEXEC,<
  5176					;SAVUNS:	0
  5177					;SAVEPW:	0
  5178					;SAVERW:	0
  5179					;SAVDPW:	0
  5180					;SAVDRW:	0
  5181
  5182					;SAVEBR:	0			;SAVED EXEC BASE REG
  5183					;MTRCNI:	0			;RESULT OF CONI MTR,
  5184					;TIMCNI:	0			;RESULT OF CONI TIM,
  5185					;MSTRDT:	0			;ID OF MASTER -11
  5186	016606	000000	000000		DING11:	0			;PROTOTYPE CONO WORD FOR DTE
  5187						>			;END IFN EDDT
  5188
  5189					;	IFN	FTDEC20,<
  5190	016607	000000	000000		SAVTT2:	0
  5191	016610	000000	000000		SAVTT3:	0
  5192	016611	000000	000000		LASTPG:	0
  5193	016612	000000	000000		SAVSTS:	0
  5194					;	>			;END IFN FTDEC20
  5195						>			;END IFE FTFILE
  5196	016613	777777	777777		MSK:	XWD	-1,-1
  5197						IFN	FTEXEC,<	;CELLS FOR TRACE FACILITY
  5198	016614	000000	000000		TRCON:	0			;ASSUMED AT $M+1
  5199	016615	000000	000000		TRCDMP:	0>			;ASSUMED AT $M+2
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 173
KLDDT	MAC	 5-May-78 12:59		STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT                                         SEQ 0144

  5200
  5201						IFE	FTFILE,<
  5202	016616	000000	000000		B1ADR:	0
  5203	016617	000000	000000		B1SKP:	0
  5204	016620	000000	000000		B1CNT:	0
  5205
  5206	016621	000000	000000		REPEAT NBP*3-3, < 0>
  5207	016622	000000	000000
  5208	016623	000000	000000
  5209	016624	000000	000000
  5210	016625	000000	000000
  5211	016626	000000	000000
  5212	016627	000000	000000
  5213	016630	000000	000000
  5214	016631	000000	000000
  5215	016632	000000	000000
  5216	016633	000000	000000
  5217	016634	000000	000000
  5218	016635	000000	000000
  5219	016636	000000	000000
  5220	016637	000000	000000
  5221	016640	000000	000000
  5222	016641	000000	000000
  5223	016642	000000	000000
  5224	016643	000000	000000
  5225	016644	000000	000000
  5226	016645	000000	000000
  5227
  5228			016643		BNADR=.-3
  5229	016646	000000	000000		AUTOPI:	0
  5230
  5231	016647				AC0:	BLOCK	17
  5232
  5233	016666	000000	000000		AC17:	0
  5234						>
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 174
KLDDT	MAC	 5-May-78 12:59		STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT                                         SEQ 0145

  5235
  5236					SUBTTL	STORAGE -- STATE VARIABLES
  5237
  5238	016667	000000	013473		SCHM:	EXP	PIN		;DO NOT CHANGE ORDER
  5239	016670	000000	013574		ARM:	EXP	PADSO
  5240	016671	000000	000010		ODFM:	EXP	10
  5241
  5242	016672	000000	000000		SARS:	0
  5243	016673	000000	000000		TEM:	0
  5244	016674	000000	000000		TEM1:	0
  5245
  5246			000020		NSYMCS==20			;SIZE OF SYMBOL TABLE CACHE
  5247	016675				SYMCSH:	BLOCK	NSYMCS		;SYMBOL TABLE CACHE
  5248	016715				SYMCSP:	BLOCK	1		;POINTER TO NEXT FREE ENTRY
  5249	016716				OLDSYM:	BLOCK	1		;REMEMBER CACHE SYMBOL TABLE
  5250						IFN	FTEXEC,<
  5251	016717	000000	000000		USRFLG:	0			;-1 IN USER MODE, 0 IN EXEC MODE
  5252	016720	000000	000000		KAFLG:	0			;0 FOR KI10; 1,,0 FOR KA10 OR PDP-6
  5253	016721	000000	000000		TOPS20:	0			;0 FOR TOPS10, -1 FOR TOPS20
  5254	016722	000000	000000		XNXTCH:	0			;PRESET INPUT CHAR AT XLISTE
  5255						>			;END IFN FTEXEC
  5256					XLIST
  5257					LIST
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 176
KLDDT	MAC	 5-May-78 12:59		STORAGE -- STATE VARIABLES                                                         SEQ 0146

  5258
  5259					SUBTTL	STORAGE -- PUSH DOWN LIST
  5260
  5261	016723				PDL:	BLOCK	LPDL		;STORAGE FOR PUSH DOWN LIST
  5262
  5263			016773		END.V==.
  5264						IFN	FTDEC20,< IFE FTEXEC,<
  5265					VAREND:				;END OF INITIALIZED VARIABLES AREA
  5266					.DDSYM:	0			;SYMTAB PTR (COPIED FROM .JBSYM USUALLY)
  5267					.DDUSY:	0			;UNDEF SYMTAB PTR (COPIED FROM .JBUSY " )
  5268					
  5269					SETRT1:	0			;SCRATCH FOR VARIABLE INITIALIZATION
  5270					END.V==.
  5271						DEPHASE
  5272						>>
  5273
  5274	016773				DDTEND:
  5275
  5276						IFDEF	VARLOC,< IFDEF RUNLOC,< IFDEF PHDDT,<
  5277						IFL	<VARLOC-RUNLOC>-<DDTEND-PHDDT>,<
  5278						PRINTX	?VARIABLES OVERLAP CODE
  5279						>>>>
  5280
  5281					DEFINE PRSIZE(CODEN,DATAN),<
  5282						IF2,< PRINTX [ CODEN WORDS CODE + DATAN WORDS DATA]
  5283						>>
  5284
  5285						RADIX	10
  5286						PRSIZE(\<END.C-DDT>,\<END.V-BEG.V>)
  5287						RADIX	8
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 177
KLDDT	MAC	 5-May-78 12:59		STORAGE -- PUSH DOWN LIST                                                          SEQ 0147

  5288
  5289					;THE FOLLOWING DEFINES CERTAIN SYMBOLS RELEVANT TO HARDWARE OR TO
  5290					;DDT ITSELF.  THESE ARE *NOT* NEEDED FOR THE ASSEMBLY OF DDT AND
  5291					;IN FACT MAY BE IN CONFLICT WITH DEFINITIONS WHICH ARE USED
  5292					;DURING ASSEMBLY (E.G. TTY).  HENCE, THESE DEFINITIONS ARE ASSEMBLED
  5293					;LAST AND ON PASS 2 ONLY.  THE SYMBOLS ARE ALL DECLARED INTERNAL
  5294					;SO THAT THEY WILL BE KEPT IN THE PROGRAM SYMBOL TABLE AFTER
  5295					;LOADING.  THESE SYMBOLS ARE THEN USED DURING DDT INSTRUCTION
  5296					;ASSEMBLY OR DEASSEMBLY ONLY.
  5297
  5298						IFE	FTDEC20,<	;DDT SYMTAB NEVER USED ON DEC20
  5299						IF2,<
  5300					DEFINE XP (SS,VV)<
  5301						SS=VV
  5302						INTERN	SS>
  5303
  5304			000000		OPDEF DDTINT [Z 0,]		;ADDRESS FLAG FOR INTERNAL REGISTERS
  5305
  5306					;DEFINE $ SYMBOLS INTERNAL TO DDT
  5307
  5308						IFE	FTFILE,<
  5309					RADIX 10
  5310
  5311					DEFINE DBPNT (Z.)<XP $'Z.'B,<DDTINT B1ADR+3*Z.-3>>
  5312
  5313			000000		ZZ==0
  5314					REPEAT NBP,<DBPNT \<ZZ==ZZ+1>>
  5315					RADIX 8
  5316
  5317					XP $M,<DDTINT MSK>
  5318					XP $I,<DDTINT SAVPI>
  5319						>			;END FTFILE
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 178
KLDDT	MAC	 5-May-78 12:59		STORAGE -- PUSH DOWN LIST                                                          SEQ 0148

  5320
  5321					;DEFINE I/O DEVICE MNEMONICS
  5322
  5323						IFN	FTEXEC,<
  5324
  5325					XP  PI,004B11
  5326					XP PAG,010B11
  5327					XP CCI,014B11
  5328					XP DLB,060B11
  5329					XP DLC,064B11
  5330					XP CLK,070B11
  5331					XP PTP,100B11
  5332					XP PTR,104B11
  5333					XP CDP,110B11
  5334					XP CDR,114B11
  5335					XP TTY,120B11
  5336					XP LPT,124B11
  5337					XP DIS,130B11
  5338					XP PLT,140B11
  5339					XP  CR,150B11
  5340					XP DSK,170B11
  5341					XP DTE,200B11
  5342					XP UTC,210B11
  5343					XP UTS,214B11
  5344					XP MTC,220B11
  5345					XP MTS,224B11
  5346					XP MTM,230B11
  5347					XP DLS,240B11
  5348					XP DPC,250B11
  5349					XP DCSA,300B11
  5350					XP DCSB,304B11
  5351					XP DTC,320B11
  5352					XP DTS,324B11
  5353					XP TMC,340B11
  5354					XP TMS,344B11 >
  5355
  5356					;DEFINE EXTENDED OPERATIONS
  5357
  5358						IFE	FTFILE,<
  5359					XP JOV,2554B11
  5360					XP JEN,2545B11
  5361					XP HALT,2542B11 >
  5362						>			;END IF2
  5363						>			;END IFE FTDEC20
KLDDT	DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12	MACRO %53(1020) 12:59  5-May-78 Page 179
KLDDT	MAC	 5-May-78 12:59		STORAGE -- PUSH DOWN LIST                                                          SEQ 0149

  5364
  5365					;ONLY STARTING ADDRESS FOR FILDDT AND VMDDT
  5366					;NO START ADDRESS FOR EXEC OR USER DDT
  5367					;BECAUSE USER PROGRAMS AND MONITOR ARE LOADED
  5368					;WITH EXEC OR USER DDT
  5369					;BUT STILL WANT TO BE STARTED AT THEIR OWN START ADDRESSES
  5370
  5371						REPEAT	0,<
  5372						IFN	FTVMX,<END MAKDDT>
  5373						IFN	FTFILE,<END DDT>
  5374					
  5375						IFE	FTEXEC,<
  5376						IFN	FTDEC20,<
  5377						IFE	FTMON,<
  5378						END	BLTDDT>>>	;UDDT HAS SPECIAL START ADR
  5379					>
  5380
  5381					;	END
  5382			010000			END	DDT		;KLDDT HAS START ADDRESS

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 016774
CPU TIME USED 00:31.529

68P CORE USED

A	   183#	  3208	  3247	  3248	  3249	  3254	  3256	  3260	  3262	  3266	  3267	  3269	  3272	  3273
	  3279	  3287	  3295	  3297	  3301	  3323	  3324	  3976	  3988	  3990	  3991	  3994	  3995	  3997     SEQ 0150
	  4010	  4017	  4046	  4047	  4057	  4234	  4236	  4246	  4248	  4249	  4252	  4265	  4267	  4276
	  4277	  4290	  4292	  4301	  4378	  4415	  4416	  4437	  4438	  4442	  4446
ABSA	  1306#	  3957	  3958
ABSDDT	    34#	    95	   157
AC0	  1714	  1781	  1805	  1828	  2058	  2064	  2128	  2129	  2215	  2247	  2259	  2318	  2344	  2392
	  2408	  2527	  2544	  2602	  2608	  5231#
AC17	  2127	  5233#
ACCCF	  1045	  1048	  4983#
ACCF	  1044#	  3950	  3951
ACCF1	  1047	  1057#
APR	  2729	  2731
APRID	   278#
AR	   190#	  1307	  1315	  2969	  3377	  3378	  3401	  3403
ARM	  5239#
ASSEM	   417	   431	   479	   485	  1027#	  3947	  3948
AUTOP	  2309	  2484#
AUTOPI	  2299	  2449	  2488	  2490	  5229#
B	   184#	  3259	  3263	  3267	  3269	  3285	  3287	  3291	  3298	  3300	  3977	  4010	  4011	  4012
	  4013	  4014	  4016	  4017	  4025	  4039	  4045	  4047	  4056	  4088	  4091	  4094	  4097	  4100
	  4103	  4106	  4109	  4112	  4176	  4186	  4204	  4208	  4210	  4222	  4234	  4236	  4237	  4246
	  4247	  4249	  4250	  4296	  4297	  4302	  4321	  4324	  4327	  4328	  4330	  4338	  4348	  4349
	  4351	  4352	  4354	  4356	  4362	  4363	  4367	  4379	  4387	  4388	  4393	  4394	  4395	  4396
	  4400	  4411	  4422	  4423	  4428	  4437	  4439	  4440	  4443	  4444	  4445	  4446
B1ADR	  2269	  2416	  2431	  2436	  2447	  2448	  2464	  2471	  2484	  5202#	  5314
B1CNT	  2236	  2238	  5204#
B1INS	  2234	  2419	  2431	  5072#
B1SKP	  2234	  2236	  5203#
BACK	  4263#	  4345	  4365	  4384	  4390
BASE1	  1301	  1314#
BASE1O	  1317#	  3389
BASE1S	  1308	  1316#
BASECH	  1304	  1310#
BCOM	  1741	  1744	  1973	  2240	  2281	  2321	  2370	  2372	  2373	  2374	  2383	  2390	  2395	  2406
	  5048	  5051	  5054	  5057	  5060	  5063	  5066	  5069	  5075#	  5083
BCOM2	  2237	  2244	  2277	  2303	  2307	  2325	  5078#
BCOM3	  2235	  2242	  2243	  2267	  2288	  2290	  2293	  2308	  5077#
BCOMG	  2233#	  5076
BDISP	   400	  3920#
BEG.V	  4981#	  5286
BITO	  3375#	  3962	  3963
BITT	  3375	  3391#
BITT2	  3396#	  3410
BITT4	  3406	  3412#
BLKEND	  3932#	  3960	  3961
BNADR	  2430	  2477	  5228#
BP1	  2238	  2415	  2416	  2419	  5043#	  5072
BPLUP	  2332	  2339	  2376#	  2401
BPLUP1	  2313	  2377#
BPN	  2424	  5073#
BPS	  2443#	  3958	  3959
BPS1	  2444	  2452#
BPS2	  2446	  2459#
BPS3	  2457	  2470#                                                                                                    SEQ 0151
BPS4	  2472#	  2478
BPS5	  2468	  2475	  2480#
BREAK	  2245	  2262#
BREAK1	  2291	  2296#
BREAK2	  2271	  2297	  5080#
BRK	  4068#	  4157	  4158
BTAB	  4874#	  4890	  4915
BWRD1	  4390#	  4397
BWRD2	  4391	  4400#
BWRD3	  4389	  4398#
C	   185#	  3264	  3274	  3282	  3289	  3323	  3324	  3325	  3978	  4012	  4014	  4055	  4374	  4377
	  4395	  4438	  4439	  4444	  4445
CARR	   447	  1138#	  3940	  3941
CARR1	  1140#
CCBITS	  4062#	  4063	  4082	  4088	  4089	  4091	  4092	  4094	  4095	  4097	  4098	  4100	  4101	  4103
	  4104	  4106	  4107	  4109	  4110	  4112	  4113	  4142	  4143	  4144	  4145	  4146	  4147	  4148
	  4149	  4150	  4151	  4152	  4153	  4154	  4155	  4156	  4157	  4158	  4159	  4160	  4161	  4162
	  4163	  4164	  4165	  4166	  4167	  4168	  4169	  4170	  4171
CCBTAB	  4012	  4084#	  4395
CCF	   222#	   373	   655	   660	   666	   824	  1147	  1318	  1336	  1342	  1378	  1403	  1541	  1548
	  1736	  1757	  1944	  1983	  1984	  2489	  3136
CCI	  5327#	  5327
CDP	  5333#	  5333
CDR	  5334#	  5334
CEFF	  1163	  1172	  1176	  1191#	  1209
CEFF1	  1196	  1204#
CEFF2	  1208	  1211#
CF	   229#	   373	   390	   551	   593	   660	   665	   875	   973	  1008	  1143	  1192	  1193	  1237
	  1336	  1342	  1403	  1549
CF1	   242#	   365	  1154	  1159	  1328	  1329	  2879
CHECKI	  1590	  1630	  1650	  1904	  1918#
CHEKIS	  1592	  1629	  1902#
CHIN1	  3788	  3793#
CHIN2	  3798	  3803#
CHIN3	  3821	  3831#
CHINC	  1141	  3635	  3787	  3824	  3834	  3874	  3879	  4220	  4225	  4990#
CHINP	  1140	  3634	  3789	  3797	  3802	  3811	  3818	  3836	  3844	  3849	  3858	  3862	  3876	  3984
	  3988	  3990	  4025	  4033	  4039	  4046	  4221	  4224	  4263	  4265	  4267	  4286	  4288	  4290
	  4292	  4294	  4296	  4301	  4304	  4328	  4338	  4347	  4360	  4362	  4377	  4378	  4386	  4392
	  4398	  4426	  4998#
CHKA1	  2680	  2691#
CHKA2	  2686	  2690#
CHKA20	  2622	  2672#
CHKA3	  2704	  2714	  2728#
CHKA4	  2626	  2674	  2698#
CHKA5	  2701	  2707	  2727#
CHKA6	  2712	  2715#
CHKA7	  2706	  2726#
CHKA8	  2709	  2729#
CHKADR	  2520	  2546	  2599	  2610	  2621#
CHKPAG	  2514	  2594	  2643#
CHP	   379	   584	  4880	  4887	  4921	  4928	  4933	  4949	  5099#
CHRWRD	  4011	  4063#	  4084	  4394                                                                                     SEQ 0152
CL11PT	  3441#
CLK	  5330#	  5330
CLRCSH	   785	  2555	  2869#
CNTRLZ	  1443#	  3937	  3938	  3944	  3945
COMF	   218#	  1046	  1352
CON	  1299#	  3958	  3959
CONSYM	  1117	  1331	  2028	  2874#	  3243
CONTRO	   665#	  3945	  3946
CONV6	  1010#
CPOPJ	   691	   692	   717#	   774	  2515	  2577	  2595	  2598	  2637	  2778	  2831	  2942	  3226	  4237
CPOPJ1	   716#	   869	  2525	  2528	  2540	  2545	  2552	  2604	  2609	  2615	  2824	  2833	  2849	  2864
	  3551	  3708	  4058	  4268	  4305	  4962
CPUSHP	  2381	  2387	  5083#
CR	  5339#	  5339
CRF	   333	   502	   516	   546	  1121	  1134	  1385	  1431	  1466	  1482	  1543	  1761	  1967	  1993
	  1997	  2310	  3057	  3095	  3359#
CRN	  1088	  3355#	  3359
CSHVER	   675	  2759	  2862#
CTBL	  4088	  4091	  4094	  4097	  4100	  4103	  4106	  4109	  4112	  4142#
DBL0	  1953	  2007#
DBLI	  1634	  1882#
DBP	  4253	  4266	  4291	  4437#
DBP1	  4441	  4446#
DC1	  4891#	  4894	  4895	  4906	  4917	  4924	  4953	  4968
DC2	  4898	  4908#
DC3	  4910	  4913#
DC6	  4904	  4942#
DC6AA	  4937	  4944#
DC6BB	  4945	  4949#
DC7	  4929	  4955#
DC8	  4920	  4964#
DCSA	  5349#	  5349
DCSB	  5350#	  5350
DD1	   333#	   468	   506	   535	  1213	  1479	  1483	  3083	  3171	  3179
DD1.5	   334#	  1145
DD2	   339#	   471	  1116	  3837	  3877
DDT	    37	   269	   320#	   326	  5286	  5382
DDTEND	   153	   264	  3159	  3161	  5274#
DDTOFS	   299#	   401	   402	   406	   417	   422	   431	   432	   434	   435	   447	   449	   450	   453
	   479	   485	  3936	  3937	  3938	  3939	  3940	  3941	  3942	  3943	  3944	  3945	  3946	  3947
	  3948	  3949	  3950	  3951	  3952	  3953	  3954	  3955	  3956	  3957	  3958	  3959	  3960	  3961
	  3962	  3963	  3964	  3965	  3966	  3967	  3968
DDTX	   153	   270	   302#	  3158
DEA	  1529#	  1840	  1963
DEA0	  1964	  2033#
DECT	  4909	  4919#
DECVER	     5#	    28
DECX	  4897	  4926#
DEF1	   881	   886#
DEF1A	   895	   902#
DEF2	   884	   903	   912#
DEF3	   920#	   944
DEF4	   924	   943#                                                                                                    SEQ 0153
DEF5	   936	   939#
DEF6	   940#	   946
DEF7	   927	   946#	   953
DEFIN	   874	   880#
DEFV	   878	   915	   931	   932	   950	  1338	  3070	  3079	  3088	  3092	  3129	  3131	  5144#
DELC	  4121	  4345#
DELC1	  4361	  4364	  4367#
DELC2	  4350	  4360#
DELC4	  4358#	  4370
DELI	   253#	   719	   825	  2767	  2786
DELIN	  4122	  4374#
DELO	   254#	   823	   825	  2767	  2786	  3240
DEN	   380	   557	   560	   575	   618	   632	  3050	  5112#
DEP1	  2517	  2522#
DEP2	  2547	  2550#
DEP4	  2518	  2521	  2529#
DEPAC	  2523	  2527#
DEPERR	  1377	  1384	  1410	  1416	  1422	  1430	  2455	  2557#
DEPM20	  2513	  2543#
DEPMEM	   999	  1281	  1284	  1679	  1818	  2400	  2421	  2433	  2511#	  2558	  3172
DEPRA	  1087	  1133	  1138	  1237#	  1404
DEPRA2	  1249#	  1261
DEPRA4	  1253#	  1269	  1271
DEPRA5	  1249	  1258	  1263#
DEPRS	  1171	  1175	  1241	  1264	  2500#
DEPSYM	   861	  1281	  2510#
DFAC	  1525#	  1687	  1698	  1840	  1849	  1882	  1917	  1952
DFLOT	  1612	  1839#
DING11	  3530	  3583	  3620	  5186#
DIS	  5337#	  5337
DISP	  3920	  3921	  3922	  3923#
DISPTC	  4014	  4016	  4118#
DIVD	  1024#	  3949	  3950
DLB	  5328#	  5328
DLC	  5329#	  5329
DLS	  5347#	  5347
DMEMER	   939	   951	  2505	  2558#
DMOV	  1614	  1617	  1840#
DOBKIN	  4276#
DOIT	  1610	  1702	  1747	  1799	  1865	  1883	  1890	  1898	  1911	  1922#
DOLLAR	   563#	  3948	  3949
DOTXTI	  3976#
DPC	  5348#	  5348
DPRS3	  1252	  1266#
DPRS4	  1268#	  1277	  1286
DSK	  5340#	  5340
DSYMER	   492	   498	   826	   865	   893	   907	   910	   914	   917	  2555#	  3241
DTC	  5351#	  5351
DTE	  3421#	  5341#	  5341
DTECMD	  3431#	  3529	  3580
DTEDPW	  3426#
DTEDRW	  3427#
DTEEPW	  3424#                                                                                                            SEQ 0154
DTEERW	  3425#
DTEF11	  3430#	  3533	  3617
DTEFLG	  3428#	  3528	  3531	  3534	  3615
DTEII	  3422#
DTEMTD	  3433#
DTEMTI	  3434#
DTEN	  3439#
DTEOPR	  3432#	  3618
DTEPRV	  3444#
DTET11	  3429#	  3616
DTEUNS	  3423#
DTS	  5352#	  5352
DVF	   220#	   372	   427	   429	  1024
EA	  1528#	  1700	  1815	  1878	  1889	  1896	  1910	  1920	  1961
EA0	  1962	  2037#
EA2	  2013	  2038#
EA6	  2029	  2043#
EBRIDX	  3527	  3578	  3627#
ECHO	  3499	  3636#
ECHO1	  3639	  3642	  3644	  3650	  3656	  3659	  3664#
EFAFLG	  1149	  1191	  5156#
EFFEC	  3042#	  3959	  3960
EFFEC0	  3066	  3100#
EFFEC1	  3102#	  3115
EFFEC2	  3104	  3109#
EFFEC3	  3111	  3116#
END.C	  4974#	  5286
END.V	  5263#	  5286
EOL1	  4119	  4331#
EOLC	  4070#	  4146
EQUAL	  1328#	  3956	  3957
ERR	   398	   418	   448	   454	   460#	   712	   819	   845	   872	   891	   929	   942	   948	   960
	  1000	  1016	  1070	  1109	  1312	  1347	  1354	  1357	  1369	  1375	  1402	  1436	  1445	  1459
	  1555	  1559	  1595	  1667	  1671	  1680	  1710	  1756	  1783	  1819	  2304	  2379	  2454	  2462
	  2479	  2559	  3048	  3090	  3106	  3133	  3137	  3238	  3380	  3805	  3816	  3852	  3861	  3930
	  3931	  3932	  3933	  3936	  3937	  3938	  3939	  3940	  3941	  3942	  3943	  3944	  3945	  3946
	  3947	  3948	  3949	  3964	  3965
ESTUT	   363	   444	   474	   476	   489	  5118#
ETXTB	  3809	  3855	  5002#
EVAL	   408	   409	   675#	   820	   880	  1356	  1362
EVAL2	   478	   689#	   837
EVAL3	   694#	   708
EVAL4	   696	   698	   701#	   720	   730
EVAL4A	   702	   708#
EVAL5	   713#	   723
EVAL6	   700	   718#
EVAL7	   725	   729#
EVALC1	   678#	   684
EVALC2	   683	   715#
EVALC3	   679	   684#
EVALC4	   676	   685#
F	   181#	   334	   364	   365	   366	   367	   372	   373	   390	   404	   419	   421	   427	   429
	   438	   441	   467	   480	   494	   503	   551	   565	   566	   568	   569	   571	   577	   590     SEQ 0155
	   593	   610	   614	   615	   621	   631	   634	   635	   636	   655	   659	   660	   665	   666
	   689	   697	   711	   722	   728	   818	   824	   871	   873	   875	   957	   962	   973	   994
	  1008	  1023	  1024	  1028	  1029	  1032	  1041	  1046	  1061	  1062	  1063	  1066	  1074	  1075
	  1076	  1079	  1082	  1101	  1104	  1114	  1115	  1143	  1147	  1152	  1154	  1157	  1159	  1160
	  1161	  1162	  1164	  1192	  1193	  1237	  1239	  1240	  1303	  1318	  1328	  1329	  1330	  1336
	  1339	  1342	  1344	  1346	  1352	  1353	  1355	  1378	  1403	  1453	  1461	  1541	  1548	  1549
	  1550	  1572	  1658	  1663	  1677	  1681	  1687	  1691	  1696	  1697	  1698	  1699	  1700	  1701
	  1706	  1708	  1735	  1736	  1754	  1757	  1780	  1784	  1794	  1798	  1812	  1815	  1816	  1820
	  1833	  1839	  1840	  1843	  1844	  1849	  1853	  1858	  1862	  1878	  1882	  1887	  1888	  1889
	  1896	  1897	  1902	  1903	  1906	  1907	  1908	  1909	  1910	  1915	  1916	  1917	  1918	  1919
	  1920	  1921	  1922	  1939	  1944	  1946	  1948	  1950	  1952	  1954	  1957	  1959	  1961	  1963
	  1966	  1983	  1984	  2025	  2027	  2038	  2043	  2195	  2305	  2443	  2445	  2456	  2458	  2465
	  2489	  2502	  2503	  2775	  2776	  2783	  2789	  2802	  2813	  2815	  2831	  2838	  2843	  2877
	  2879	  2892	  2903	  2908	  2940	  2960	  2999	  3028	  3042	  3047	  3054	  3055	  3065	  3091
	  3120	  3130	  3136	  3379	  4882	  4883	  4888	  4903	  4919	  4926	  4964
FAC	  1524#	  1658	  1663	  1700	  1701	  1794	  1798	  1812	  1833	  1858	  1882	  1888	  1889	  1908
	  1920	  1921	  1950
FAC0	  1951	  2012#
FAF	   225#	   366	   873	  1339	  3130
FCP	  3285	  3287	  3323#
FEF	   217#	   566	   569	   610	   962
FET1	  2597	  2601#
FET20	  2593	  2607#
FETCH	   349	   928	   947	  1107	  1199	  1207	  1270	  1374	  1558	  1709	  1782	  2312	  2338	  2417
	  2453	  2590#	  3058	  3089	  3105	  3113
FH	   606	   645	  5120#
FIR.	  4913
FIRARG	  1336#	  3956	  3957
FLA	  1530#	  1687	  1691	  1700	  1701	  1798	  1839	  1844	  1948
FLAFXE	  1619	  1844#
FLAGS	  1550	  1677	  1681	  1735	  1754	  1780	  1784	  1816	  1820	  1922	  1939	  1946	  1966	  2027
	  2038	  2043	  5027#
FLE	  1531#	  1687	  1691	  1700	  1701	  1839	  1843	  1957	  2025
FLG	  1526#	  1708	  1862	  1954
FLG0	  1955	  2017#
FLOAT	  1625	  1696#
FLOATI	  1701#
FNDLIN	  4286#	  4375	  4414
FNDLN1	  4290#	  4299
FNDLN2	  4295	  4298	  4301#
FP1	  3259#
FP1A	  3255	  3264#
FP3	  3266#	  3292
FP3A	  3275#	  3279
FP4	  3261	  3263	  3282#
FP4A	  3284#	  3289
FP4B	  3286	  3289#
FP7	  3212	  3270	  3297#	  3302
FP7A1	  3301	  3304#
FP7B	  2971	  3277	  3305#
FPF	   221#	   373	   551	   565	   566	   634	   636	   962
FRASE	   369	   433	   619	  1034	  1072	  3050	  3051	  5106#
FRASE1	   371	   426	   428	   430	  1035	  1071	  3033	  5110#                                                    SEQ 0156
FSGN	  3291	  3327#
FSV	   574	   623	  5119#
FT	   600	   620	  3314#	  3324
FT0	  3321#	  3323	  3325
FT01	   622	  3260	  3320#	  3321
FT8	  3262	  3310#
FTDEC2	   101	   112	   123	   172	   206	   262	   342	  1108	  1110	  1477	  1485	  2146	  2221	  2262
	  2511	  2590	  2620	  2716	  2725	  2927	  2976	  2978	  3059	  3061	  3077	  3121	  3123	  3146
	  3162	  3363	  3368	  3480	  3485	  3668	  3784	  3839	  3916	  3934	  3974	  4190	  4191	  4978
	  5006	  5122	  5131	  5264	  5298
FTEDIT	   103	   112	  3480	  3485	  3784	  3839	  3974	  5006
FTEXEC	    33#	    96	   112	   112#	   124	   126	   131	   146	   163	   267	   268	   272	   357	   742
	   791	   801	   889	  1443	  1577	  1657	  1724	  1725	  1752	  1940	  2080	  2117	  2138	  2174
	  2207	  2218	  2256	  2329	  2529	  2573	  2624	  2643	  2656	  2672	  2697	  2736	  2979	  2981
	  3147	  3150	  3365	  3368	  3419	  3646	  3648	  3672	  3687	  3715	  3742	  3744	  3762	  3779
	  3784	  3839	  3931	  3974	  4179	  5006	  5157	  5175	  5197	  5250	  5323
FTFILE	    98	   112	   119	   126	   151	   175	   263	   272	   301	   329	   355	   529	   650	   670
	   703	   740	   748	   755	   776	   779	   789	   798	   834	   887	   897	  1244	  1442	  1492
	  1498	  2078	  2495	  2509	  2562	  2591	  2618	  2749	  2806	  2875	  2979	  2981	  3030	  3036
	  3150	  3155	  3168	  3173	  3180	  3674	  3689	  3693	  3916	  5016	  5039	  5123	  5127	  5157
	  5166	  5201	  5257	  5308	  5358
FTMON	   102	   112	  1724	  1752	  1940
FTOC	  1096	  1153	  1298	  1299	  2880	  3184#
FTPTP	    97	   112	  3415	  3931
FTVMX	   100	   112	   151	   157	   295	   325
FTYANK	    99	   112	   303	  3541	  3690	  3864	  3916	  3930	  4182	  4192	  4204	  5160
FXAFLE	  1615	  1618	  1843#
GETH20	  2662	  2736#
GETHSO	  2576	  2633	  2656#
GETHSZ	  2738	  2746#
GLOBL	   250#	   491	   541	   721	   912	   922	  2788
GO	  1452#	  3959	  3960
HALT	  5361#	  5361
HFETCH	   358	   743	   759	   792	   802	   890	  2572#
HLFW	  1290	  1293	  1295	  1296	  2886	  2906	  2907	  2953#	  3011
HLFW1	  2959	  2964#
HWRDS	  1296#	  3960	  3961
I.JSA	  1648	  1803#
I.JSP	  1647	  1826#
I.JSR	  1646	  1810#
I.JSR2	  1806	  1815#
I.JSR4	  1822	  1832#
I.NST	  1560	  1563	  1564	  1568	  1571	  1678	  1742	  1746	  1772	  1775	  1791	  1793	  1864	  5019
	  5020#
I.NSTA	  1569	  1729	  2007	  2012	  5023#
I.NSTE	  1565	  1759	  1762	  1804	  1817	  1821	  1831	  1870	  1872	  2024	  2033	  2037	  5024#
I.NSTP	  1769	  1792	  5026#
I.XCT	  1753	  1925	  1942	  5019#
IAOBJ	  1638	  1649	  1858#
ICON	  1171#	  3966	  3967
IDFN	  1621	  1691#
IFSC	  1622	  1798#
IIPUSH	  1643	  1767#                                                                                                    SEQ 0157
IIXCT	  1641	  1751#
IIXCT1	  1758	  1762#
IJFCL	  1640	  1862#
IJFFO	  1633	  1849#
IJRST	  1639	  1706#
IJRST0	  1709#	  1720
IJRST1	  1713	  1718#
IJRST3	  1727	  1734	  1740#
IJSA	  2359	  2390#
IJSP	  2357	  2406#
IJSR	  2355	  2395#
IJSR2	  2393	  2399#
IJSR3	  2403#	  2411
IMM	  1527#	  1701	  1706	  1798	  1858	  1882	  1888	  1897	  1921	  1959
IMM0	  1960	  2023#
IMM1	  2019	  2027#
INDIRE	  1039#	  3957	  3958
INOUT	  2884	  3006#
INOUT2	  3020	  3021	  3023#
INSRT	  4023#	  4120	  4312
INSRT1	  2416#	  2425
INSRT3	  2418	  2423#
INSRTB	  1467	  2315	  2415#
INST	  4885	  4956	  5097	  5098#
IOTS	  1594	  1894#
IPOPJ	  1645	  1780#
IPOPJ2	  1776	  1791#
IPUSHJ	  2352	  2381#
ITF	   246#	   365	  2892	  2903	  4888	  4964
IUFA	  1620	  1687#
IXCT	  2337#	  2364	  2367
IXCT4	  2328#	  2362
IXCT41	  2330	  2335#
IXCT5	  2326	  2341#
IXCT51	  2344#
IXCT6	  2333	  2343	  2366	  2368#
IXS1	  1927	  1931#
IXS2	  1928	  1930#
JEN	  5360#	  5360
JMP	  1863	  1870#
JMPSKP	  1653	  1853#
JOV	  5359#	  5359
JRSPRC	  1731	  1735#
JUSTE	  1623	  1665	  1878#
JUSTI	  1660	  1897#
KAFLG	   166	   167	   168	   169	  2141	  2145	  5252#
KILL	   818#	  3961	  3962
KILL1	   821	   830#
KILL1A	   832#	   847
KILL2	   837#
KILRET	   451	   827#
KLCC	  3561	  3565#
KLCC0	  3569#	  3569	  3582                                                                                             SEQ 0158
KLCC1	  3565	  3568#
KLCC2	  3572	  3577#
KLL	  4075#	  4153
KLWORD	  4122	  4384#
KLXLIS	  3546	  3554#
KLXTYO	  3505	  3520#	  3624
KWRD	  4076#	  4155
L1	   373#	  1025
L1A	   374#	  1083
L1RPR	   375#	  1080
L2	   385#	   579	   585	   591	   661	   668
L21	   391	   396#
L212	   413#	   416
L213	   411	   415#
L4	   419#	   500	   611	   627
L5	   446	   449#
LASCHR	  4210	  4276	  5008#
LASTPG	  2173#	  2173	  2550	  2678	  2681	  2690	  5192#
LCNT	  3700	  3703	  5154#
LCT	   470	  1105	  2017	  2023	  2040	  2292	  3363#
LE1A	   561	   577#	   608
LE2	   578#	   648
LEAV	  2233	  2248	  2314	  2340	  2341	  2346	  2347	  2348	  2349	  2360	  2369	  2388	  2391	  2399
	  2402	  2403	  5082#
LEAV1	  2239	  2258	  2260	  5079#
LEAVG	  2369#	  5079
LET	   395	   565#
LET1	   570	   576#
LF1	   240#	   365	  1154	  1160	  1328	  1330	  2877
LI0	  1121#	  1182	  1389	  1411	  1417	  1423
LI1	  1090#	  1123	  1136	  1144	  1387	  1433	  2042	  2050	  2295	  3094
LI2	  1104#	  1169
LINBF	  5000	  5001	  5012#
LINBP	  3801	  3835	  3848	  3853	  3875	  3890	  3991	  3994	  4419	  5001#
LINDB	  3850	  3983	  5000#
LINEF	  1087#	  3939	  3940
LINSPC	  3800	  3804	  3810	  3823	  3832	  3847	  3851	  3857	  3872	  3878	  3982	  4008	  4051	  4999#
LIS	   341#	  1037
LIS0	   366#	  1348
LIS0A	   354	   361#
LIS0B	   352	   363#
LIS1	   369#	  1064	  1319
LIS2	   370#	  1030	  1042
LISTEN	  1980	  2298	  3072	  3085	  3686#	  3758
LLOC	   630	   982	  1089	  1091	  1122	  1135	  1142	  1167	  1179	  1222	  1230	  1407	  1412	  1418
	  1424	  2286	  2294	  5146#
LLOCO	   493	   877	   964	   979	   983	  1092	  1106	  1168	  1256	  1276	  1372	  2501	  5147#
LOADER	  3933#	  3961	  3962
LOCL	   251#
LOCSAV	  1539	  1557	  1974	  5028#
LOOK	  2758#	  2895	  2905	  2972	  3019
LOOK1	  2780#	  2811
LOOK2	  2797	  2802#                                                                                                    SEQ 0159
LOOK3	  2782	  2784	  2787	  2792	  2795	  2800	  2804#	  2837	  2841	  2844
LOOK3A	  2805	  2811#
LOOK4	  2814	  2818	  2830#
LOOK5	  2790	  2835#
LOOK6	  2838	  2842#
LOOKC1	  2763#	  2772
LOOKC2	  2760	  2773#
LOOKO1	  2815	  2819#
LOOKO2	  2770	  2821#
LOOKO3	  2828	  2848#
LOOKO4	  2771	  2847#
LPDL	   198#	   340	   464	   469	  2132	  2350	  5261
LPRN	   422	   424	  1032#	  3949	  3950
LPT	  5336#	  5336
LTF	   230#	   404	   503	   566	   568	   635	   818	   871	   962	  3042	  3065
LTTYLE	  3606	  3623#
LTTYRE	  3588	  3615#	  3625
LWT	   442	   656	   657	  1248	  1263	  1325	  2285	  2500	  2874	  2894	  2902	  2911	  2913	  2921
	  2925	  2926	  2941	  2958	  2964	  3017	  3082	  3096	  3242	  3343	  3347	  3393	  3395	  3399
	  3412	  5108#
MASK	  3028#	  3961	  3962
MASK1	  3029	  3037#
MASK2	  2466	  3032#
MCNVER	     6#	    28
MDLCLF	   237#	   689	   711	   728	  2775	  2802	  2813
MF	   233#	   419	   494	   571	   621	  1028	  1063	  1352
MINUS	   613	  1028#	  3951	  3952
MLF	   227#	   372	  1023
MONINI	  1598	  1670#
MONUAE	  1597	  1663#
MONUAI	  1599	  1601	  1658#
MONUE	  1600	  1602	  1604	  1606	  1608	  1661	  1664#
MONUI	  1603	  1605	  1607	  1659#
MSK	  3031	  3037	  3068	  5196#	  5317
MTC	  5344#	  5344
MTM	  5346#	  5346
MTR	  3449#
MTRAMN	  3455#
MTRCTB	  3458#
MTRENA	  3454#
MTREPA	  3453#
MTRLOD	  3451#
MTRPIA	  3460#
MTRTBF	  3456#
MTRTBN	  3457#
MTS	  5345#	  5345
MULDIV	  1631	  1915#
MULT	   401	  1023#	  3950	  3951
NAF	   243#	   367	  2908	  2940	  2960	  2999
NBP	   204#	  2461	  5043	  5206	  5314
NDING	  4033#	  4376	  4380
NINSRT	  4008#	  4026	  4034	  4358	  4402	  4407
NLINBF	  3799	  3831	  3846	  3871	  5011#	  5012                                                                     SEQ 0160
NM1	   552	   593#
NM1A	   596	   597	   646	  4982#
NM1A1	   599#	   603
NM1B	   601	   604#
NOMAT	  4923	  4930#	  4939
NOMAT1	  4934#	  4948
NOSKIP	  1740	  1873	  1936#
NPSYM	  1359	  1397#
NSAVTB	  1220	  1233	  5149#	  5150
NSYMCS	   677	  2762	  2853	  2871	  5246#	  5247
NUM	   550#	  3952	  3953	  3954	  3955	  3956
NUM1	   587#	   594
NWORD	  3045#	  3962	  3963
NXMKA	   200#	  2162	  2729	  2731
NXMKI	   201#
NXMKL	   202#
NXT0	  1976	  1980#
NXT1	  1981	  1984#
NXT1A	  1988	  1994#
NXT2	  1985	  1998#
NXTIT	  1945	  1971#
OCON	  1152#	  3966	  3967
ODF	   191#	   336	  1313	  2198	  3185	  3195	  3200
ODFM	  1320	  5240#
OLDAR	  1314	  1316	  3376	  3377	  5090#
OLDSYM	  2863	  2865	  5249#
ONES4	  3808	  3896#
OPEVAL	   408	   409	  4879#
OPTYPE	  2890	  3014	  4883#
OSYM	  1157#	  3967	  3968
OUTF	   245#	  4882	  4883	  4903	  4919	  4926
P	   182#	   323	   327	   333	   340	   349	   358	   385	   415	   451	   457	   464	   465	   466
	   469	   470	   478	   486	   492	   498	   502	   515	   516	   520	   539	   543	   545	   546
	   675	   685	   710	   714	   716	   717	   743	   757	   759	   762	   782	   785	   787	   792
	   795	   802	   811	   816	   820	   826	   837	   844	   861	   862	   865	   880	   890	   893
	   907	   910	   914	   917	   925	   928	   939	   940	   941	   947	   951	   966	   968	   971
	   981	   988	   996	   999	  1002	  1007	  1009	  1019	  1032	  1033	  1034	  1035	  1071	  1072
	  1073	  1074	  1087	  1088	  1093	  1103	  1105	  1107	  1121	  1133	  1134	  1138	  1139	  1163
	  1166	  1171	  1172	  1175	  1176	  1178	  1181	  1194	  1197	  1199	  1201	  1205	  1207	  1212
	  1222	  1223	  1224	  1235	  1238	  1250	  1253	  1257	  1270	  1284	  1331	  1356	  1362	  1374
	  1377	  1384	  1385	  1387	  1389	  1390	  1404	  1410	  1411	  1416	  1417	  1422	  1423	  1430
	  1431	  1433	  1435	  1466	  1467	  1474	  1481	  1482	  1543	  1558	  1679	  1709	  1760	  1761
	  1782	  1818	  1923	  1937	  1947	  1951	  1953	  1955	  1956	  1960	  1962	  1964	  1965	  1967
	  1980	  1992	  1993	  1995	  1997	  2017	  2023	  2028	  2039	  2040	  2041	  2042	  2044	  2048
	  2050	  2051	  2052	  2132	  2184	  2203	  2265	  2266	  2280	  2284	  2287	  2292	  2295	  2298
	  2309	  2310	  2312	  2315	  2338	  2350	  2376	  2400	  2417	  2421	  2426	  2433	  2438	  2453
	  2455	  2491	  2504	  2514	  2531	  2535	  2546	  2549	  2555	  2558	  2560	  2575	  2576	  2594
	  2610	  2613	  2631	  2632	  2633	  2636	  2640	  2646	  2654	  2659	  2669	  2675	  2676	  2677
	  2684	  2687	  2692	  2693	  2694	  2728	  2733	  2747	  2759	  2773	  2820	  2825	  2827	  2846
	  2847	  2848	  2856	  2862	  2872	  2890	  2895	  2898	  2905	  2910	  2916	  2918	  2920	  2924
	  2939	  2944	  2946	  2950	  2961	  2963	  2972	  2975	  2990	  2993	  2995	  3014	  3015	  3019
	  3025	  3056	  3057	  3058	  3072	  3085	  3089	  3093	  3094	  3095	  3105	  3113	  3134	  3138
	  3172	  3191	  3193	  3201	  3203	  3204	  3211	  3212	  3222	  3224	  3225	  3241	  3253	  3270     SEQ 0161
	  3271	  3277	  3280	  3290	  3291	  3292	  3293	  3294	  3295	  3300	  3302	  3304	  3335	  3337
	  3341	  3342	  3351	  3353	  3359	  3369	  3370	  3395	  3402	  3404	  3408	  3412	  3413	  3474
	  3499	  3500	  3506	  3510	  3517	  3520	  3522	  3523	  3525	  3527	  3535	  3548	  3554	  3556
	  3558	  3563	  3577	  3578	  3581	  3601	  3613	  3621	  3624	  3628	  3636	  3652	  3654	  3661
	  3662	  3664	  3665	  3666	  3680	  3684	  3701	  3707	  3712	  3714	  3719	  3738	  3745	  3749
	  3758	  3760	  3766	  3777	  3790	  3810	  3811	  3813	  3817	  3818	  3822	  3857	  3858	  3860
	  3862	  3863	  3870	  3888	  3889	  3906	  3907	  3912	  3913	  3914	  3976	  3977	  3978	  3979
	  3980	  3981	  3989	  3993	  3996	  4009	  4052	  4053	  4054	  4055	  4056	  4057	  4178	  4181
	  4185	  4187	  4206	  4209	  4211	  4219	  4220	  4221	  4223	  4224	  4225	  4226	  4227	  4235
	  4238	  4264	  4266	  4278	  4287	  4288	  4289	  4291	  4303	  4304	  4318	  4320	  4323	  4336
	  4340	  4345	  4351	  4353	  4354	  4355	  4357	  4365	  4369	  4375	  4384	  4390	  4401	  4406
	  4413	  4414	  4423	  4427	  4429	  4447	  4881	  4927	  4930	  4931	  4932	  4933	  4938	  4940
	  4944	  4946	  4947	  4949	  4950	  4951	  4952	  4955	  4966
PA%EX	  2611
PAD	  1093	  2287	  2916	  2946	  2950	  2961	  2968#
PAD1	  2997#
PADS1A	  2995#	  3004
PADS3	  2973	  2985	  2988	  2998#
PADS3A	  2939	  2999#
PADS3B	  3002#	  3008
PADSO	  1305	  2971#	  3401	  5239
PAG	  5326#	  5326
PC%USR	  2683
PCHSYM	  1360	  1394#	  1397
PDL	   340	   464	   469	  2132	  2350	  5261#
PERC	   564#	  3948	  3949
PERIOD	   630#	  3951	  3952
PFULI1	  2893	  2896	  2897	  2900#
PI	  2083	  2084	  2122	  2124	  2226	  2227	  5325#	  5325
PI0ENB	  3442#
PI3A	  2917	  2919#	  3022	  3026
PI4	  2912	  2921#	  3018
PI7	  2940#	  2951
PI8	  2935	  2938	  2950#
PIENB	  3443#
PILOC	   651#	  3960	  3961
PIN	  1098	  1158	  1297	  1298	  2049	  2882#	  3404	  5238
PIN2	  2904	  2908#
PINST	  1760	  1995	  2048#
PLT	  5338#	  5338
PLUS	   612	  1027	  1029#	  3950	  3951
PM%CPY	  2548
PM%RD	  2612
PM%WT	  2548
PNAME	   252#	   523	   681	   695	   813	   883	  2781
PNAMEF	   238#	   689	   697	   722	  2775	  2783	  2789
PNTR	  4899	  4902	  4905	  4932	  4935	  4936	  4943	  4950	  5097#
POPLC1	  1232	  1235#
POPLLC	  1228#	  1238
POW2	   624#	   628
POWER	   405	   610#
POWF	   239#	   614	   615
PRGM	   753	   771	   773	   784	   805	  5117#                                                                    SEQ 0162
PRNC	   339	   452	   482	  1036	  1069	  5104#
PROC0	  1538	  1553	  1743	  1767	  1773	  1786	  1803	  1810	  1826	  1832	  1871	  1929	  1930	  1931
	  1971	  1986	  1994	  2289	  2311	  5081#
PROC1	  2252	  2255	  2318#
PROC2	  2316	  2323#
PROCD1	  1737	  2301	  2310#
PROCED	  2303#	  3962	  3963
PSHLLC	   981	  1166	  1178	  1219#	  2284	  3093
PSVBTS	   337	  1321	  1322	  5093#
PSYM	  1329#	  3967	  3968
PTCH	  1337	  1352#
PTCH1	  1360#	  1363
PTCH2	  1366	  1368#
PTCH3	  1381	  1385#
PTCH4	  1358	  1367#
PTCHE	  1343	  1401#
PTCHE1	  1406	  1412#
PTF	   228#	  1023	  1024	  1029	  1063	  1075	  1352
PTLLC	  1373	  1379	  1380	  1388	  1405	  1414	  1420	  1427	  5035#
PTLOC	  1370	  1371	  1382	  1386	  1401	  1425	  1428	  1434	  5034#
PTP	  5331#	  5331
PTR	  5332#	  5332
PTWRD	  1376	  1383	  1409	  5036#
PUN	  4071#	  4143	  4145	  4146	  4147	  4150	  4152	  4156	  4158	  4159	  4160	  4161	  4162	  4163
	  4166	  4170	  4171
PUNCH	  3931#	  3942	  3943
PURGT1	  3893
Q2F	   247#	   365	   590	   957	  1303	  2445	  2456	  3379
QF	   234#	   441	   577	   636	   659	  1041	  1061	  1066	  1079	  1082	  1152	  1157	  1164	  1240
	  1346	  1355	  1453	  1461	  1549	  1736	  2305	  2443	  2503	  3028	  3047	  3055	  3120
QLIST	   504	   520#
QLIST1	   521#
QLIST2	   522#	   534
QLIST3	   527#	   538	   548
QLIST4	   528	   534#
QLIST6	   524	   537#
QLIST7	   542	   546#
QLPNT	   521	   526	   537	   540	   547	  5153#
QQ	  4140#	  4142	  4142#	  4143	  4143#	  4144	  4144#	  4145	  4145#	  4146#	  4146	  4147	  4147#	  4148
	  4148#	  4149	  4149#	  4150	  4150#	  4151	  4151#	  4152#	  4152	  4153	  4153#	  4154	  4154#	  4155
	  4155#	  4156	  4156#	  4157	  4157#	  4158#	  4158	  4159	  4159#	  4160#	  4160	  4161#	  4161	  4162#
	  4162	  4163#	  4163	  4164#	  4164	  4165#	  4165	  4166#	  4166	  4167	  4167#	  4168#	  4168	  4169#
	  4169	  4170#	  4170	  4171#	  4171
QUAN	   655#	  3963	  3964
QUAN1	   653	   658#	   963	   980	   984
QUAN2	   659#	   970
QUANIN	   652#	  3034
QUANSW	   657#
QUEST1	   506#	   518
QUEST2	   510#	   512
QUEST4	   514	   517#
QUESTN	   502#	  3957	  3958
QW	  4139#	  4142	  4142#	  4143	  4143#	  4144	  4144#	  4145	  4145#	  4146#	  4146	  4147	  4147#	  4148     SEQ 0163
	  4148#	  4149	  4149#	  4150	  4150#	  4151	  4152#	  4152	  4153	  4153#	  4154	  4154#	  4155	  4155#
	  4156	  4156#	  4157	  4157#	  4158#	  4158	  4159	  4159#	  4160#	  4160	  4161#	  4161	  4162#	  4162
	  4163#	  4163	  4164#	  4164	  4165#	  4165	  4166#	  4166	  4167	  4167#	  4168#	  4168	  4169#	  4169
	  4170#	  4170	  4171#	  4171	  4172
R	   183#	   348	   356	   396	   399	   400	   443	   474	   475	   488	   489	   497	   505	   506
	   507	   513	   517	   522	   526	   527	   528	   530	   531	   533	   598	   600	   605	   606
	   607	   678	   680	   692	   694	   701	   702	   704	   705	   707	   709	   713	   715	   718
	   727	   729	   741	   758	   761	   763	   769	   770	   771	   772	   773	   774	   775	   777
	   786	   788	   790	   794	   797	   800	   809	   812	   814	   815	   822	   830	   832	   846
	   864	   866	   882	   886	   888	   894	   900	   901	   904	   905	   908	   911	   916	   918
	   920	   923	   925	   926	   930	   933	   940	   943	   946	   952	   978	   979	   982	   983
	   998	  1044	  1048	  1049	  1052	  1053	  1106	  1198	  1201	  1202	  1203	  1206	  1242	  1249
	  1250	  1251	  1253	  1254	  1260	  1266	  1268	  1269	  1275	  1279	  1290	  1293	  1295	  1296
	  1297	  1298	  1299	  1300	  1305	  1306	  1307	  1364	  1365	  1367	  1371	  1372	  1373	  1382
	  1407	  1408	  1412	  1413	  1418	  1419	  1425	  1426	  1427	  1432	  1553	  1554	  1557	  1676
	  1712	  1713	  1714	  1718	  1762	  1781	  1817	  2308	  2335	  2336	  2360	  2399	  2416	  2432
	  2452	  2467	  2470	  2471	  2472	  2474	  2476	  2477	  2480	  2481	  2482	  2484	  2485	  2487
	  2501	  2522	  2524	  2527	  2536	  2543	  2544	  2551	  2578	  2601	  2602	  2603	  2607	  2608
	  2614	  2628	  2634	  2639	  2648	  2676	  2692	  2699	  2710	  2730	  2762	  2763	  2772	  2778
	  2780	  2785	  2793	  2798	  2803	  2804	  2805	  2807	  2808	  2810	  2835	  2839	  2842	  2863
	  2865	  2941	  2942	  2945	  3009	  3010	  3012	  3013	  3044	  3045	  3046	  3070	  3071	  3073
	  3078	  3079	  3080	  3088	  3103	  3104	  3109	  3129	  3131	  3132	  3144	  3151	  3152	  3156
	  3157	  3158	  3159	  3161	  3163	  3164	  3166	  3170	  3174	  3175	  3176	  3177	  3237	  3238
	  3239	  3375	  3388	  3920	  3921	  3922	  4889	  4894	  4895	  4905	  4930	  4934	  4935	  4936
	  4937	  4942	  4943	  4952	  4958	  4961	  5081
R50PNT	  1295	  3339#
RD%BBG	  4995
RD%BFE	  3820
RD%BLR	  3820
RD%BRK	  4995
RD%JFN	  4995
RD%PUN	  4995
RD%RND	  4995
RD%SUI	  4995
RD%TOP	  4995
RDBIN	  4009	  4176#	  4320	  4340
RDBIN1	  4188	  4205	  4210#
RDBKIN	  3888	  4275#	  4318	  4323	  4336
RDBOUT	  4219#	  4238	  4353	  4355	  4357	  4401	  4423	  4429
RDCBP	  3989	  3993	  3996	  4235	  4246#
RDCR	  4123	  4317#
RDCR1	  4322	  4327#
RDCR2	  4330#
RDCRC	  4077#	  4149
RDEACC	   285#
RDERA	   280#
RDMACC	   284#
RDPERF	   282#
RDQT	  4123	  4335#
RDQTC	  4078#	  4154
RDSL	  4236#	  4239
RDSOUT	  4234#	  4369	  4413
RDTIME	   283#                                                                                                            SEQ 0164
RDTOPM	  3992	  3995#
RDTXT1	  3988#
RELA	  1303#	  3963	  3964
REMOV1	  2431#	  2437
REMOVB	   323	  1474	  2265	  2376	  2430#
REMUN	   844	   859#	   941	  1257
RESTOR	  1469	  2201#	  2368	  2386	  2404
RESTR2	  2209	  2215#
RESTR3	  2220	  2228#
RET	   469#	   806	   827	   838	   920	  1150	  1323	  1332	  2300	  2450	  3038
ROF	   231#	   334	   364	   366	   467	   480	   994	  1104	  1114	  1239	  1353	  2502
RPRN	   449	  1066#	  3949	  3950
RPRN1	  1077	  1081#
RTYP	  4074#	  4152
RTYP1	  4418	  4426#	  4430
RTYP4	  4421	  4425#
RTYPE	  4121	  4406#
RTYPES	  4406	  4411#
RTYW1	  4420#	  4424
RUBO	  4073#	  4171
S	   184#	   476	   477	   534	   677	   678	   684	   691	   708	   747	   750	   752	   832	   833
	   859	   860	   863	   867	   868	   904	   906	   909	   911	   931	   932	   934	   935	   937
	   938	   949	   952	  1266	  1275	  1276	  1314	  1315	  1317	  1320	  1321	  1322	  2296	  2299
	  2415	  2416	  2419	  2420	  2423	  2424	  2430	  2431	  2432	  2435	  2436	  2486	  2487	  2488
	  2490	  2811	  3139	  3141	  3163	  5080
SAF	   224#	   366	  1344	  3054
SAFE	  4072#	  4161	  4162	  4163	  4164	  4165	  4166	  4167	  4168	  4169	  4170	  4396
SAFETY	  1562	  1566	  5029#
SARS	  2104	  2115	  2120	  2125	  2181	  2196	  2217	  5242#
SAV0	  2059	  2069	  5021#
SAV11	  2119	  2125#
SAV12	  2158	  2160	  2166	  2184#
SAV2	  2176	  2183#
SAV20	  2148	  2173#
SAV3	  2121	  2124#
SAV5	  2126	  2132#
SAVAPR	  2165	  2222	  5167#
SAVCHR	  4176	  4177	  4277	  5007#
SAVE	   322	  1473	  2116	  2130	  2199	  2202	  2206	  2229	  2264	  2319	  2377	  5040#
SAVEG	  2079#	  5041
SAVEG1	  2082	  2085#
SAVEG2	  2100	  2106#
SAVHSM	   531	   705	   745	   777	   835	  2808	  5114#
SAVLP	  1219	  1221	  1228	  1231	  1234	  5148#
SAVLTB	  1223	  1229	  5150#
SAVPDL	  4881	  4938	  4944	  4955	  5101#
SAVPI	   651	  1768	  1771	  1811	  1814	  1827	  1830	  2018	  2061	  2063	  2102	  2122	  2123	  2124
	  2131	  2204	  2210	  2213	  2227	  2282	  2322	  2382	  2385	  2396	  2398	  2407	  2410	  5168#
	  5318
SAVSTS	  2182#	  2182	  3774	  5193#
SAVTT2	  3726	  3770	  5190#
SAVTT3	  3727	  3771	  5191#
SAVTTY	  3589	  3591	  3597	  3599	  3610	  3612	  3720	  3724	  3768	  3776	  5174#                            SEQ 0165
SBDIAG	   281#
SCH	   189#	   335	  1095	  1096	  1098	  1153	  1158	  1300	  1317	  1326	  1947	  1949	  1956	  1958
	  1965	  2048	  2049	  2051	  2197	  2878	  3388
SCHM	   335	  1095	  1317	  2197	  5238#
SEAR1	  3058#	  3075
SEAR2	  3046	  3069	  4984#
SEAR2A	  3070#	  3081	  3098
SEAR2B	  3060	  3078#
SEAR2G	  3069#	  3118
SEAR3	  3085#	  4984
SEAR4	  3098#	  3114
SEARFN	  3074	  3082#	  3087
SEGNAM	   760	   763	   804	  5115#
SEMIC	  1325#	  3955	  3956
SET	  1589	  1591	  1906#
SETEA	  1624	  1636	  1642	  1644	  1652	  1692	  1841	  1845	  1877	  1920#
SETI	  1609	  1611	  1613	  1616	  1632	  1635	  1637	  1651	  1921#
SETN2	   788	   805#
SETNAM	   784#	   876
SETPAG	  1436#	  3964	  3965
SETSB1	   809#	   815
SETSUB	   787	   795	   814#
SETUP	  3056	  3120#	  3138
SF	   232#	   373	   421	   565	   566	   577	   631	   636	   659	  1076	  1079
SFLOT	  1297#	  3959	  3960
SIXBP	  1293	  3346#
SIXBP1	  3348#	  3352
SKP	  1854	  1877#	  1905
SKPCT	  1468	  1471	  1472	  1476	  5155#
SLAS1	  1165	  1168#	  1173
SLAS2	  1148	  1155	  1162#
SLASH	  1147#	  3951	  3952
SLASH2	  1163#
SPAC1	  1055	  1059	  1062#
SPACE	   406	   434	  1061#	  3946	  3947
SPSAV	  3218	  3237	  4967	  5143#
SPT	   515	  3219#	  3344
SPT0	  2825	  2847	  2990	  3218#
SPT1	   539	  3221#	  3224
SPT2	  3223	  3225#
STADD	   258#	   496
STF	   223#	   364	   366	  1101	  1115	  1161	  1162	  1549	  3091
STLH	   259#	   933
STNEG	   260#	   495	   930
SUPTYO	  1161#	  3947	  3948
SVBT2	  3392	  3405	  5092#
SVBT3	  3394	  3400	  3409	  5091#
SVBTS	   337	   338	  1321	  3382	  3397	  5088#
SVBTS2	  3387	  3391	  5089#
SWAP	  1561	  1567	  1924	  1936	  2060	  2062	  2070	  5084#
SWAPG	  2058#	  5085
SWAPL	  2065#	  2068
SWPIA	   287#                                                                                                            SEQ 0166
SWPIO	   290#
SWPUA	   289#
SWPUO	   292#
SWPVA	   288#
SWPVO	   291#
SYL	   374	   403	   553	   556	   572	   573	   607	   633	   658	   967	   976	  1078	  5107#
SYM	   375	   490	   525	   581	   582	   682	   699	   810	   913	   921	   961	  1361	  5121#
SYMBOL	  1298#	  3963	  3964
SYMCSH	   678	  2763	  2855	  2869	  2871	  5247#
SYMCSI	   714	  2820	  2846	  2852#
SYMCSP	  2852	  2854	  5248#
SYMD	  3236#	  3958	  3959
SYMORD	   410	   413	  5151#
SYMP	   353	   533	   707	   747	   767	   775	   786	   886	   901	  2152	  2810	  3139	  3140	  5124#
SYMPNT	   690	   709	   724	   729	  2769	  2774	  2796	  2803	  2812	  2821	  2830	  2992	  5142#
SYMS2	   765	   769#
SYMS4	   754	   764	   775#
SYMS5	   768	   776#
SYMSET	   520	   685	   740#	  2773	  2862
T	   186#	   335	   336	   337	   338	   351	   352	   353	   359	   360	   361	   362	   363	   370
	   371	   376	   377	   378	   379	   386	   387	   389	   392	   393	   396	   397	   403	   408
	   409	   410	   413	   414	   415	   420	   426	   428	   430	   433	   437	   439	   440	   442
	   484	   490	   491	   493	   495	   496	   499	   507	   511	   522	   523	   525	   540	   541
	   544	   550	   555	   559	   561	   563	   564	   567	   576	   582	   583	   584	   587	   588
	   589	   604	   608	   623	   626	   630	   632	   633	   637	   638	   639	   640	   642	   644
	   645	   647	   651	   656	   657	   658	   680	   681	   682	   694	   695	   696	   699	   715
	   718	   719	   721	   724	   726	   727	   744	   745	   749	   750	   753	   756	   757	   760
	   761	   762	   767	   769	   770	   772	   794	   803	   804	   809	   810	   813	   822	   823
	   825	   860	   863	   882	   883	   892	   894	   906	   909	   912	   913	   915	   921	   922
	   923	   935	   937	   938	   949	   950	   958	   959	   961	   964	   965	   967	   969	   976
	   977	   987	   996	   997	  1002	  1010	  1011	  1013	  1014	  1015	  1017	  1018	  1044	  1049
	  1053	  1054	  1057	  1058	  1067	  1068	  1078	  1081	  1089	  1091	  1092	  1094	  1097	  1099
	  1102	  1122	  1135	  1142	  1167	  1168	  1177	  1179	  1180	  1195	  1197	  1198	  1202	  1203
	  1204	  1206	  1248	  1254	  1255	  1256	  1263	  1274	  1278	  1291	  1292	  1294	  1310	  1311
	  1313	  1325	  1338	  1345	  1360	  1361	  1365	  1368	  1370	  1376	  1383	  1386	  1409	  1414
	  1415	  1420	  1421	  1424	  1426	  1428	  1429	  1432	  1447	  1449	  1452	  1457	  1458	  1462
	  1463	  1465	  1469	  1536	  1537	  1538	  1539	  1551	  1552	  1560	  1562	  1563	  1564	  1565
	  1566	  1570	  1571	  1572	  1573	  1574	  1575	  1678	  1682	  1711	  1712	  1714	  1715	  1716
	  1717	  1718	  1733	  1740	  1741	  1742	  1743	  1744	  1745	  1746	  1759	  1767	  1768	  1769
	  1770	  1771	  1772	  1773	  1774	  1775	  1785	  1786	  1787	  1791	  1792	  1793	  1803	  1804
	  1805	  1810	  1811	  1821	  1822	  1826	  1827	  1828	  1829	  1830	  1831	  1832	  1863	  1864
	  1870	  1871	  1872	  1941	  1942	  1971	  1972	  1977	  1978	  1986	  1987	  1989	  1994	  2007
	  2008	  2012	  2018	  2024	  2026	  2037	  2039	  2041	  2097	  2101	  2102	  2103	  2106	  2107
	  2108	  2109	  2130	  2131	  2139	  2140	  2141	  2142	  2143	  2144	  2151	  2152	  2155	  2156
	  2161	  2162	  2163	  2164	  2165	  2177	  2180	  2182	  2197	  2198	  2202	  2204	  2205	  2206
	  2210	  2211	  2212	  2213	  2233	  2234	  2235	  2236	  2237	  2238	  2239	  2240	  2247	  2248
	  2249	  2250	  2251	  2253	  2254	  2257	  2258	  2259	  2267	  2268	  2269	  2270	  2271	  2279
	  2281	  2282	  2283	  2285	  2286	  2288	  2289	  2290	  2291	  2293	  2294	  2306	  2307	  2314
	  2318	  2321	  2322	  2331	  2332	  2333	  2340	  2341	  2342	  2346	  2347	  2349	  2351	  2354
	  2356	  2358	  2361	  2363	  2364	  2365	  2368	  2382	  2383	  2384	  2385	  2386	  2390	  2391
	  2392	  2395	  2396	  2402	  2403	  2409	  2410	  2419	  2420	  2431	  2447	  2449	  2452	  2459
	  2460	  2461	  2463	  2464	  2467	  2470	  2473	  2480	  2500	  2524	  2527	  2536	  2544	  2551
	  2577	  2578	  2602	  2603	  2608	  2614	  2632	  2635	  2636	  2658	  2663	  2664	  2665	  2666     SEQ 0167
	  2667	  2668	  2746	  2758	  2761	  2764	  2777	  2785	  2791	  2794	  2822	  2823	  2826	  2832
	  2836	  2874	  2882	  2883	  2885	  2886	  2888	  2894	  2901	  2902	  2911	  2912	  2922	  2925
	  2943	  2945	  2947	  2958	  2959	  2964	  2968	  2971	  2982	  2989	  2991	  2994	  2996	  2998
	  3000	  3002	  3003	  3006	  3007	  3009	  3012	  3013	  3016	  3017	  3018	  3023	  3024	  3031
	  3037	  3043	  3045	  3049	  3050	  3051	  3052	  3053	  3067	  3068	  3092	  3102	  3103	  3107
	  3108	  3109	  3116	  3117	  3122	  3128	  3143	  3187	  3189	  3190	  3198	  3200	  3202	  3204
	  3205	  3208	  3209	  3210	  3213	  3220	  3221	  3223	  3225	  3226	  3227	  3228	  3229	  3230
	  3231	  3232	  3233	  3239	  3240	  3242	  3247	  3252	  3275	  3276	  3304	  3305	  3330	  3333
	  3334	  3339	  3340	  3348	  3349	  3350	  3355	  3360	  3364	  3372	  3381	  3382	  3383	  3384
	  3385	  3386	  3387	  3391	  3392	  3393	  3394	  3396	  3397	  3398	  3399	  3400	  3407	  3409
	  3476	  3477	  3478	  3479	  3486	  3487	  3489	  3490	  3492	  3493	  3494	  3495	  3498	  3506
	  3507	  3508	  3509	  3510	  3511	  3512	  3515	  3516	  3521	  3524	  3538	  3549	  3550	  3557
	  3559	  3560	  3562	  3565	  3610	  3611	  3618	  3619	  3620	  3623	  3636	  3637	  3638	  3640
	  3641	  3643	  3645	  3651	  3653	  3655	  3658	  3660	  3662	  3663	  3665	  3679	  3681	  3683
	  3702	  3703	  3706	  3709	  3713	  3789	  3979	  4014	  4016	  4018	  4054	  4181	  4186	  4187
	  4219	  4222	  4226	  4347	  4348	  4386	  4387	  4392	  4393	  4416	  4417	  4419	  4420	  4422
	  4425	  4426	  4428	  4879	  4880	  4884	  4885	  4886	  4887	  4891	  4892	  4893	  4896	  4897
	  4898	  4899	  4900	  4901	  4902	  4908	  4909	  4910	  4911	  4912	  4913	  4922	  4946	  4947
	  4956	  4957	  4958	  4959	  4960	  4961	  4965	  4983	  4984	  4985	  5048	  5051	  5054	  5057
	  5060	  5063	  5066	  5069
T1	   209#	  2178	  2682	  2683	  2684	  2687	  2688	  3681	  3683	  3709	  3710	  3713	  3722	  3728
	  3736	  3767	  3797	  3799	  3800	  3801	  3802	  3803	  3806	  3808	  3809	  3814	  3819	  3820
	  3822	  3823	  3824	  3831	  3832	  3833	  3834	  3835	  3836	  3840	  3844	  3846	  3847	  3848
	  3849	  3850	  3853	  3855	  3856	  3859	  3863	  3871	  3872	  3873	  3874	  3875	  3876	  3878
	  3879	  3890	  3903	  3904	  3905	  3908	  3909
T2	   210#	  2675	  2677	  2678	  2679	  2681	  2690	  2691	  2693	  3724	  3726	  3730	  3731	  3733
	  3768	  3770	  3906	  3908	  3913
T3	   211#	  3727	  3734	  3771	  3907	  3910	  3912
TAB	  1175#	  3939	  3940
TAG	   871#	  3955	  3956
TAPIN	  3930#	  3965	  3966
TBL	  4734#	  4874	  4875	  4876	  4877
TELL	  1834	  1939#
TEM	   377	   578	   965	   978	   998	  1001	  1465	  1470	  2086	  2096	  2097	  2109	  2758	  2761
	  2777	  2986	  2989	  2996	  2998	  3002	  3023	  3097	  3101	  3112	  5243#
TEM1	  2324	  2337	  3268	  3273	  3299	  5244#
TEM2	  5109#
TEM3	  5111#
TESTS	  1593	  1887#
TEXI	   957#	  3947	  3948
TEXI2	   976#	   989	   995
TEXI3	   986	   993#
TEXI4	   972#	  1003
TEXIN	   968	  1007	  3782#
TEXIN0	   966	   988	  1007#
TEXIN1	   971	  1008#
TEXINF	  3497	  3782	  3783	  3812	  4989#
TEXO	  1290#	  3964	  3965
TEXT	   457	   465	  1212	  2920	  3294	  3331#
TEXT2	   327	  1481	  1992	  2280	  2963	  3193	  3333#	  3336
TEXTIB	  3803	  3814	  3819	  3853	  3855	  3856	  3859	  4993#
TEXTT	  1181	  1290	  3330#
TFLOT	  1296	  1297	  1949	  1958	  3247#                                                                            SEQ 0168
TFLOT1	  3248	  3256#
TIF	   219#	   438	  1062	  1352
TIM	  3464#
TIMCIC	  3466#
TIMDON	  3469#
TIMICO	  3470#
TIMITO	  3468#
TIN	   385	  1139	  3783#
TIN1	  3787#	  3825	  3880
TMC	  5353#	  5353
TMS	  5354#	  5354
TO11DB	  3440#	  3619
TOC	  1305	  1306	  2918	  2997	  3001	  3025	  3185#	  3341	  3378	  3403
TOC0	  3191	  3198#	  3203
TOC4	  3197	  3208#
TOC5	  3209	  3212#	  3257
TOC6	  3213#	  3271
TOCA	  3188	  3195#	  3402
TOCS	  3189	  3194	  4985#
TOP	  4067#	  4144	  4148
TOPS20	  2087	  2095	  2099	  2147	  2512	  2592	  2621	  2661	  3677	  3704	  3718	  3746	  3765	  3795
	  4202	  5253#
TOUT	   486	   545	  1103	  2827	  2924	  2944	  2948	  2993	  2995	  3206	  3211	  3214	  3234	  3253
	  3306	  3335	  3351	  3356	  3361	  3367	  3373	  3408	  3634#	  4223	  4966
TOUT0	  3652	  3654	  3661	  3664	  3671#
TRCDMP	  2083	  5199#
TRCON	  2081	  2225	  2226	  5198#
TRPENB	   213#
TSPC	   543	  2910	  3015	  3342	  3369	  3370	  3372#
TT	   192#	  1219	  1220	  1221	  1223	  1228	  1229	  1230	  1231	  1232	  1233	  1234	  1475	  1476
	  1478	  2303	  2304	  2547	  2548	  2611	  2612	  2623	  2628	  2634	  2635	  2637	  2638	  2639
	  2691	  2699	  2700	  2702	  2703	  2705	  2710	  2711	  2713	  2715	  2730
TT%DAM	  3730
TT%ECO	  3731
TT%OSP	  3754
TT%WAK	  3730
TT%WKF	  3731
TT%WKN	  3731
TT%WKP	  3731
TT1	   193#	  1280	  1281	  1284	  2515	  2516	  2518	  2520	  2533	  2534	  2537	  2538	  2595	  2596
	  2598	  2599	  2629	  2641	  2644	  2648	  2649	  2650	  2651	  2652	  2653	  2726	  2727	  2732
	  2869	  2870	  2871
TT2	   194#	  3528	  3529	  3531	  3533	  3534	  3577	  3580	  3581	  3627
TTY	  3513	  3515	  3547	  3549	  3591	  3592	  3594	  3596	  3598	  3600	  3607	  3609	  3611	  5335#
	  5335
TTY1	  3590	  3600#
TTYCC2	  3733	  3740#	  3903	  3905
TTYCC3	  3734	  3741#	  3910
TTYCLR	   466	  2000	  2266	  3743#
TTYLEV	  1923	  2203	  3763#
TTYR1	  3721	  3728#
TTYRET	  1937	  2184	  3716#
TTYTOF	  3813	  3903#                                                                                                    SEQ 0169
TTYTON	  3817	  3905#
TXT	   378	  4886	  5100#
TXTI	  3860	  3975#
ULIM	  1342#	  3956	  3957
ULIM1	  1340	  1346#
ULIMIT	  1345	  3053	  3073	  3128	  3132	  3170	  5145#
UND1	   414	   474#
UNDEF	   463#	   475	   481	   483	   793	   797	   831
USRFLG	   164	   165	  2108	  5251#
USRUUO	  1596	  1668	  1676#
USYMP	   348	   350	   351	   362	   445	   505	   508	   830	   846	   859	   868	   902	   905	   908
	   918	  1242	  1243	  2156	  5125#
UTC	  5342#	  5342
UTS	  5343#	  5343
VARLOC	  5276
VARRW	  1133#	  3938	  3939	  3967	  3968
W	   185#	   400	   401	   402	   406	   417	   422	   431	   432	   434	   435	   447	   449	   450
	   453	   479	   485	   553	   554	   555	   556	   557	   558	   559	   560	   580	   581	   612
	   613	   616	   799	   805	   814	   877	   878	   972	   975	   977	   997	  1039	  1040	  1251
	  1252	  1268	  1274	  1278	  1359	  1360	  1363	  1364	  2323	  2324	  2397	  2398	  2406	  2407
	  2408	  2472	  2473	  2793	  2794	  2795	  2798	  2799	  2800	  2816	  2817	  2839	  2840	  2841
	  2913	  2914	  2915	  2926	  2933	  2934	  2937	  3032	  3033	  3100	  3101	  3102	  3108	  3110
W1	   187#	   326	   444	   445	   456	   460	   463	   508	   510	   511	   513	   572	   573	   574
	   595	   600	   603	   604	   605	   620	   622	   626	   628	   641	   643	   644	   713	   972
	   974	   985	   987	   993	  1050	  1051	  1052	  1211	  1243	  1480	  1568	  1569	  1707	  1711
	  1716	  1719	  1729	  1730	  1732	  1753	  1781	  1805	  1813	  1814	  1828	  1877	  1894	  1895
	  1972	  1973	  1974	  1977	  1978	  1987	  1989	  1990	  1991	  2272	  2278	  2279	  2348	  2364
	  2381	  2392	  2408	  2763	  2764	  2766	  2769	  2770	  2817	  2819	  2821	  2822	  2823	  2832
	  2840	  2842	  2845	  2855	  2919	  2921	  2923	  2936	  2962	  2974	  3140	  3141	  3142	  3164
	  3166	  3185	  3186	  3192	  3195	  3196	  3199	  3201	  3218	  3220	  3222	  3274	  3275	  3278
	  3293	  3330	  3331	  3332	  3336	  3343	  3347	  3980	  3982	  3998	  4008	  4026	  4040	  4044
	  4051	  4053	  4268	  4289	  4293	  4302	  4303	  4317	  4329	  4335	  4339	  4379	  4399	  4889
	  4913	  4914	  4916	  4921	  4922	  4928	  4929
W2	   188#	   599	   601	   602	   618	   624	   625	   627	  2766	  2767	  2780	  2781	  2782	  2786
	  2788	  2796	  2799	  2812	  2816	  2835	  2836	  2837	  2844	  2852	  2853	  2854	  2855	  2974
	  2984	  2986	  2987	  3283	  3284	  3288	  3290	  3346	  3352	  3593	  3595	  3596	  3597	  3598
	  3599	  3981	  3983	  3984	  3995	  3997	  4033	  4052	  4263	  4286	  4294	  4360	  4415	  4417
	  4420	  4425	  4890	  4891	  4911	  4915	  4916	  4931	  4951	  4982
WAKALL	   341	   667	  3807	  3854	  4023	  4311	  4991#
WORD	  3044#	  3965	  3966
WRAP	  4024	  4039#	  4118	  4120	  4325	  4331	  4341	  4366
WRAP0	  3998	  4027	  4035	  4044#	  4313	  4319	  4337	  4346	  4385
WRAP1	  4044	  4051#
WRD	   368	   407	   437	   439	   440	  1033	  1040	  1050	  1054	  1057	  1058	  1073	  1081	  3049
	  3067	  3116	  5102#
WRD2	   381	   587	   589	   958	  1291	  1310	  2459	  3381	  3384	  5103#
WRFIL	   279#
WRONG	   456#	  3833	  3873
WRONG1	   461	   464#
WRONG2	   458	   467#
WRPAE	   286#
XCHIN1	  3794	  3796	  3844#
XCHIN2	  3845	  3850#	  3891                                                                                             SEQ 0170
XCTS	  1552	  1755	  5022#
XEC	  1454	  1461#	  3965	  3966
XEC0	  1450	  1465#	  3566
XEC1	  1471#	  1554	  5081
XJBSYM	   127#
XJBUSY	   128#
XLIST1	  3540	  3550#	  3564
XLISTE	  3474	  3538#	  3688
XNXTCH	  3494	  3538	  3539	  5254#
XTEM	  1536	  1540	  1542	  1547	  1556	  1975	  1982	  1996	  1998	  5025#
XTIN	  3474#	  3476	  4185
XTIN1	  3488	  3491	  3500#
XTOUT	  3504#	  3673
XTTYLE	  3605#	  3764
XTTYRE	  3587#	  3717
XX	  4082#	  4088	  4089	  4089#	  4091	  4092	  4092#	  4094	  4095	  4095#	  4097	  4098	  4098#	  4100
	  4101	  4101#	  4103	  4104	  4104#	  4106	  4107	  4107#	  4109	  4110	  4110#	  4112	  4113	  4113#
XZLOW	   129#	  3151	  3152
ZER	  4069#	  4142
ZERO	  3136#	  3966	  3967
ZERO1	  3144#	  3175	  3177
ZERO3	  3153	  3158#
ZEROR	  3145	  3170#
ZLOW	   141#	  3156	  3157
ZNULL	  4119	  4311#
ZZ	  5313#	  5314	  5314#
$1B	  5314#	  5314
$2B	  5314#	  5314
$3B	  5314#	  5314
$4B	  5314#	  5314
$5B	  5314#	  5314
$6B	  5314#	  5314
$7B	  5314#	  5314
$8B	  5314#	  5314
$DTEXX	  3522	  3527#	  3556
$EDITN	    79#	    81
$I	  5318#	  5318
$M	  5317#	  5317
$VERSN	    80#	    81
$X	  1464	  1536#
$X00	  1537	  1543#
$X01	  1547#	  1999
$X02	  1558#	  1763
$XO3	  1560#	  1683
$XQUIT	  1979	  1982#
$XTBL	  1573	  1575	  1589#
%DDTVR	    81#	   119
..TX1	  3820#	  3820	  3821
..TX2	  3820#	  3820	  3821
.DTMMC	  3436#
.DTMTO	  3435#
.DTNMC	  3437#
.FHSLF	  2178	  2688	  3736	  3773                                                                                     SEQ 0171
.GTUPM	   160#	  2663
.JBDA	   121#	  1368
.JBDDT	   143	   144#	   152
.JBFF	   121#	  1364
.JBHNM	   121#	   758	   800
.JBHRL	   121#	  2630	  2638
.JBHSM	   121#	   356	   741	   790	   888
.JBREL	   121#	  2623
.JBSA	   121#	  1457
.JBSYM	   121#	  2151	  5124
.JBUSY	   121#	  2155	  5125
.JBVER	   143	   145#
.PRIIN	  3710	  3722	  3728	  3756	  3767	  3909	  4996
.PRIOU	  3752	  4996
.PSECT	  3820	  3821
.RDBKL	  3803
.RDFLG	  3819

BYT9	  4679#
CALL	   116#	  1597                                                                                                     SEQ 0172
CC1	  4131#	  4142	  4143	  4144	  4145	  4146	  4147	  4148	  4149	  4150	  4151	  4152	  4153	  4154
	  4155	  4156	  4157	  4158	  4159	  4160	  4161	  4162	  4163	  4164	  4165	  4166	  4167	  4168
	  4169	  4170	  4171
CCN	  4127#	  4143	  4145	  4150	  4152	  4156	  4157	  4158	  4159	  4161	  4162	  4163	  4166	  4167
	  4170
CFIBF	  3757
D	  3924#	  3936	  3937	  3938	  3939	  3940	  3941	  3942	  3943	  3944	  3945	  3946	  3947	  3948
	  3949	  3950	  3951	  3952	  3953	  3954	  3955	  3956	  3957	  3958	  3959	  3960	  3961	  3962
	  3963	  3964	  3965	  3966	  3967
DBPNT	  5311#	  5314
DDTINT	  5304#	  5314	  5317	  5318
DIR	  3737
EIR	  3775
GETTAB	  2092	  2664
HALTF	  1449
INCHRW	  4204
JSYS	   117
MRPAC	   117#	  2685
OD	   274#	   278	   279	   280	   281	   282	   283	   284	   285	   286	   287	   288	   289	   290
	   291	   292
OUTP	  4724#
PAGE.	   159#	  2651
PBIN	  4207
PBOUT	  3682
PRSIZE	  5281#	  5286
RFCOC	  3725
RFMOD	  3723	  3729	  3753
RPACS	  2689
SETUWP	  2534	  2538
SFCOC	  3735	  3772	  3911
SFMOD	  3732	  3755	  3769
SIBE	  3711
SKPEXC	   165#	   357	   742	   791	   801	   889	  1659	  1664	  1670	  1726	  2118	  2157	  2208	  2219
	  3366	  3649
SKPIR	  2179
SKPKA	   166#	  1666	  2159
SKPKI	   167#	  2708
SKPKL	   168#
SKPNKL	   169#	  2698	  3504	  3545	  3587	  3605
SKPUSR	   164#	  1444	  2175	  2329	  2530	  2625	  2645	  2657	  2673	  2737	  3148	  3672	  3687	  3716
	  3744	  3763	  3793	  4180
TEXTI	  3815
TTCALL	  1600	  3669#	  3679	  3706	  3748	  3750
TXNE	  3820
XP	  5300#	  5314	  5317	  5318	  5325	  5326	  5327	  5328	  5329	  5330	  5331	  5332	  5333	  5334
	  5335	  5336	  5337	  5338	  5339	  5340	  5341	  5342	  5343	  5344	  5345	  5346	  5347	  5348
	  5349	  5350	  5351	  5352	  5353	  5354	  5359	  5360	  5361
..N	   108#	   112
..TX	  3820
.ADR	  4708#
.DIS	  4716#
.END	  4720#
.TRA	  4710#                                                                                                            SEQ 0173
.TRAX	  4712#
.TXT	  4718#