Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/smddt.seq
There are no other files named smddt.seq in the archive.
;DSQDB
                                                                                                                           SEQ 0001






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

	PRODUCT CODE:		AH-F483C-DD

	DIAGNOSTIC CODE:	DSQDB

	PRODUCT NAME:	 	DSQDBC0 DECSYSTEM 2020 DIAGNOSTICS DDT

	VERSION:		0.3

	DATE RELEASED:		APRIL 1979

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 1978, 1979

	        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-DSQDB.TXT (SMDDT)
						PAGE 2                                                                     SEQ 0002

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

	1.0	ABSTRACT

	2.0	HELP FILE

	3.0	HISTORY FILE

	4.0	LISTING
					MAINDEC-10-DSQDB.TXT (SMDDT)
						PAGE 3                                                                     SEQ 0003

1.0	ABSTRACT

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

	SMDDT IS A DERIVITIVE OF THIS WITH THE APPROPRIATE CHANGES
	MADE FOR OPERATION ON THE KS-10 PROCESSOR.

2.0	HELP FILE

3.0	HISTORY FILE

4.0	LISTING
		HISTORY FILE FOR SMDDT                                                                                     SEQ 0004
		----------------------

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

CODE:		MAINDEC-10-SMDDT

TITLE:		DECSYSTEM 2020 DIAGNOSTICS DDT

VERSION:	0.2

DATE:		DECEMBER 1978

REASON:		UPDATED TO CORRECT A PROBLEM WITH EXECUTING KS10 IOT'S.
		ADDED MAINTENANCE MODE OPERATION.
---------------------------------------------------------------

VERSION:	0.1

DATE:		MARCH 1978

REASON:		ORIGINAL RELEASE OF THIS PROGRAM FOR KS-10.
---------------------------------------------------------------
;SMDDT.HLP	VER 0.2		DECEMBER 1978
                                                                                                                           SEQ 0005
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
;SMDDT.HLP	VER 0.1		MARCH 1978
                                                                                                                           SEQ 0006
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
;SMDDT.HLP	VER 0.1		MARCH 1978
                                                                                                                           SEQ 0007
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
;SMDDT.HLP	VER 0.1		MARCH 1978
                                                                                                                           SEQ 0008
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

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 SMDDT.HLP]
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 1
SMDDT	MAC	29-Nov-78 13:26	                                                                                           SEQ 0009

     1					;MAINDEC-10-SMDDT
     2
     3			000000		MCNVER=0
     4			000002		DECVER=2
     5
     6
     7					TITLE	SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2
     8
     9
    10					;FIXED PROBLEM WITH KS-10 I/O INST AC FIELD TYPEIN, FEB 2,1978
    11					;FIXED PROBLEM WITH VARIABLE HIGHER THAN 17000, DEC 29,1977
    12					;MODIFIED EXEC TTY OUTPUT TO NOT CLEAR APR ASG, DEC 1,1977
    13					;MODIFIED FROM KLDDT FOR THE KS-10
    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					;SM10 EXEC MODE OPERATION CHANGED TO CONFORM TO DIAGNOSTICS PROCEDURES
    19					;modified to output <cr><cr> for a single <cr>, 22 sep 77
    20
    21
    22					;COPYRIGHT 1978
    23					;DIGITAL EQUIPMENT CORPORATION
    24					;MARLBORO, MASS. 01752
    25
    26					;JOHN R. KIRCHOFF
    27
    28	000137					LOC	137
    29	000137	000000	000002		MCNVER,,DECVER
    30
    31					NOSYM
    32					SALL
    33
    34		777777	777777		FTEXEC==-1
    35		010000	000000		ABSDDT==10000,,0
    36
    37	000441					LOC	441
    38	000441	254 00 0 00 010000 		JRST	DDT		;EPT DDT START ADDRESS
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 2
SMDDT	MAC	29-Nov-78 13:26		DEFINITIONS                                                                        SEQ 0010

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

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

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

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

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

   263						IFE	FTDEC20,<
   264						IFE	FTFILE,<
   265						INTERN	DDTEND		;DECLARE END OF DDT AS INTERNAL, FOR
   266									; USER TO SEE (USER MODE) AND ONCE ONLY CODE
   267									; (MONITOR)
   268						IFE	FTEXEC,< ENTRY DDT>
   269						IFN	FTEXEC,<
   270						INTERNAL DDT
   271						ENTRY	DDTX>>		;NEEDED BY MONITOR
   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					;*CONSOLE TTY COMUNICATIONS
   295		264000	014440		OPDEF	CTYINI	[JSR	$TYINI]	;INITIALIZATION
   296		264000	014452		OPDEF	CTYCLR	[JSR	$TYCLR]	;CLEAR
   297		264000	014454		OPDEF	CTYTYI	[JSR	$CYTYI]	;INPUT
   298		264000	014530		OPDEF	CTYTYO	[JSR	$CYTYO]	;OUTPUT
   299		264000	014465		OPDEF	KTYTYI	[JSR	$KYTYI]	;INPUT
   300		264000	014543		OPDEF	KTYTYO	[JSR	$KYTYO]	;OUTPUT
   301		264000	014476		OPDEF	BTYTYI	[JSR	$BYTYI]	;INPUT
   302		264000	014556		OPDEF	BTYTYO	[JSR	$BYTYO]	;OUTPUT
   303			000031		$80STAT=31		;8080 STATUS WORD
   304		000020	000000		$80MM=	1B13		;MAINTENANCE MODE BIT
   305			000032		$80CIW=	32		;8080 TO KS-10 INPUT WORD
   306			000033		$80COW=	33		;KS-10 TO 8080 OUTPUT WORD
   307			000034		$80KIW=	34		;8080 TO KS-10 INPUT WORD - KLINIK
   308			000035		$80KOW=	35		;KS-10 TO 8080 OUTPUT WORD - KLINIK
   309			000400		$80CHR=	1B27		;CHAR AVAILABLE BIT
   310			012000		$80INT=	012000		;INTERRUPT 8080
   311					XLIST
   312					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 11
SMDDT	MAC	29-Nov-78 13:26		WRITE DDT.VMX                                                                      SEQ 0016

   313
   314					SUBTTL	START DDT
   315
   316	010000				DDTOFS:				;OFFSET BASE FOR DISPATCH TABLES
   317
   318						IFE	FTFILE,<
   319	010000				DDTX:
   320						IFN	FTYANK,<
   321						SETZM	COMAND		;INDICATE NO COMMAND FILE IF STARTING BY DDT COMMAND
   322						>
   323						REPEAT	0,<
   324					DDT: IFN FTDEC20&<^-FTEXEC>,<
   325						JRST	.+2		;SKIP SYMTAB PTRS
   326						Z	.DDSYM
   327						JUMP	.DDUSY
   328						MOVEM	T,SETRT1	;SAVE AN AC
   329						MOVE	T,BP1+1
   330						CAMN	T,[JSA T,BCOM]	;VARIABLES AREA INITIALIZED?
   331						JRST	DDTIN1		;YES
   332						MOVE	T,[PHVAR,,VARLOC]	;NO, DO IT
   333						BLT	T,VAREND-1
   334					DDTIN1:	MOVE	T,SETRT1	;RESTORE SCRATCH AC
   335						>			;END IFN FTDEC20...
   336					>
   337	010000	254 00 0 00 010002 	DDT:	JRST	.+2
   338	010001	104 104 124 000 000 		ASCII	/DDT/
   339	010002	264 00 0 00 016512 		JSR	SAVE
   340	010003	260 17 0 00 013011 		 PUSHJ P,REMOVB
   341						IFN	FTEXEC!FTDEC20,<
   342	010004	200 06 0 00 016116 		MOVE	W1,[ASCII /DDT/]
   343						IFN	FTEXEC,<
   344	010005	331 00 0 00 017022 		SKPUSR
   345	010006	200 06 0 00 016117 		MOVE	W1,[ASCII /EDDT/]
   346						>
   347					IFN FTMON,<
   348						MOVE	W1,[ASCIZ/MDDT/]	;IF TOPS-20 MDDT, SAY "MDDT"
   349						>
   350	010007	260 17 0 00 014266 		PUSHJ	P,TEXT2		;TYPE MESSAGE SAYING WHICH DDT
   351						>			;END FTEXEC!FTDEC20
   352						>			;END FTFILE
   353
   354						IFN	FTVMX,<		;IF THIS IS VMDDT
   355						MOVE	W1,[ASCII "VMDDT"]	;PREPARE TO SAY VMDDT
   356						PUSHJ	P,TEXT2		;PRINT THE MESSAGE
   357						>			;END VMDDT SWITCH
   358					XLIST
   359					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 23
SMDDT	MAC	29-Nov-78 13:26		FILDDT -- COMMAND SCANNER                                                          SEQ 0017

   360
   361					SUBTTL	DDT COMMAND PARSER
   362
   363	010010	260 17 0 00 014313 	DD1:	PUSHJ	P,CRF
   364	010011	621 00 0 00 000010 	DD1.5:	TLZ	F,(ROF)		;CLOSE ANY OPEN REGISTER
   365	010012	200 05 0 00 016120 		MOVE	T,[XWD SCHM,SCH]
   366	010013	251 05 0 00 000012 		BLT	T,ODF		;LOAD ACS
   367	010014	204 05 0 00 016121 		MOVS	T,[SVBTS,,PSVBTS]
   368	010015	251 05 0 00 016561 		BLT	T,SVBTS+2
   369	010016	402 00 0 00 016577 	DD2:	CLEARM	PRNC		;PARENTHESES COUNT
   370	010017	200 17 0 00 016122 		MOVE	P,[IOWD LPDL,PDL]
   371	010020	402 00 0 00 016433 	LIS:	SETZM	WAKALL		;SET WAKEUP SET TO PUNCT AND CTRLS
   372						IFN	FTDEC20,<
   373						MOVEI	R,.JBSYM	;VALIDATE JOB DATA AREA - CHECK .JBSYM
   374						PUSHJ	P,FETCH
   375						 SETZ T,		;CAN'T REF PAGE 0, NO JOBDAT
   376						SKIPL	T		;VALID SYMTAB PTR?
   377						SETZM	JDTFLG#>		;NO, NOTE NO JOBDAT
   378	010021	335 02 1 00 016616 		SKIPGE	R,@USYMP	;GET UND SYM PTR, OK?
   379	010022	260 17 0 00 013160 		PUSHJ	P,FETCH		;MAYBE, SEE IF CAN REFERENCE IT
   380	010023	402 00 1 00 016616 		 SETZM @USYMP		;NO GOOD, FLUSH IT
   381	010024	200 05 1 00 016616 		MOVE	T,@USYMP	;GET UNDEF SYMBOL POINTER
   382	010025	321 05 0 00 010037 		JUMPL	T,LIS0B		;IF POINTER OK, TRANSFER
   383	010026	335 05 1 00 016615 		SKIPGE	T,@SYMP		;IF POINTER NOT OK, USE .JBSYM ADR
   384	010027	254 00 0 00 010035 		JRST	LIS0A		; SO LONG AS IT IS NEGATIVE
   385						IFE	FTFILE,<
   386	010030	201 02 0 00 000000*		MOVEI	R,.JBHSM	;IF LO ADR NOT OK, TRY HIGH
   387	010031	335 00 0 00 017022 		IFN	FTEXEC,<SKPEXC>	; UNLESS IN EXEC MODE
   388	010032	260 17 0 00 013154 		PUSHJ	P,HFETCH>	;GET HIGH SYM TABLE POINTER
   389	010033	201 05 0 00 000000 		 MOVEI T,0		;IT DOESN'T EXIST
   390	010034	327 05 0 00 010033 		JUMPG	T,.-1		;IF POINTER .G. 0, GIVE 0 RESULT
   391	010035	553 00 0 00 000005 	LIS0A:	HRRZS	T		;USE ADR OF SYM TABLE TO INIT
   392	010036	202 05 1 00 016616 		MOVEM	T,@USYMP	;  UNDEFINED SYM TABLE POINTER
   393	010037	202 05 0 00 016611 	LIS0B:	MOVEM	T,ESTUT		;INIT UNDEFINED SYM ASSEMBLER
   394	010040	621 00 0 00 773767 		TLZ	F,(-1B17-ROF-STF)	;CLEAR FLAGS EXCEPT ROF, STF
   395	010041	620 00 0 00 002403 		TRZ	F,LF1+CF1+ITF+Q2F	;CLEAR FLAGS
   396	010042	621 00 0 00 770767 	LIS0:	TLZ	F,(-1B17-ROF-STF-FAF-SAF)	;CLEAR FLAGS EXCEPT ...
   397	010043	620 00 0 00 000200 		TRZ	F,NAF		; ..
   398	010044	402 00 0 00 016575 		SETZM	WRD
   399	010045	402 00 0 00 016600 	LIS1:	SETZM	FRASE
   400	010046	201 05 0 00 000001 	LIS2:	MOVEI	T,1
   401	010047	202 05 0 00 016604 		MOVEM	T,FRASE1
   402	010050	621 00 0 00 040200 		TLZ	F,(MLF+DVF)
   403	010051	621 00 0 00 030044 	L1:	TLZ	F,(CF+CCF+SF+FPF)	;TURN OFF CONTROL, SYL, PERIOD FLAG
   404	010052	402 00 0 00 016601 	L1A:	SETZM	SYL
   405	010053	402 00 0 00 016614 	L1RPR:	SETZM	SYM
   406	010054	201 05 0 00 000006 		MOVEI	T,6
   407	010055	202 05 0 00 016756 		MOVEM	T,TEM		;INIT SYMBOL COUNTER
   408	010056	200 05 0 00 016123 		MOVE	T,[POINT 7,TXT]
   409	010057	202 05 0 00 016571 		MOVEM	T,CHP		;SETUP FOR OPEVAL SYMBOL
   410	010060	402 00 0 00 016605 		SETZM	DEN
   411	010061	402 00 0 00 016576 		SETZM	WRD2
   412
   413					;CONTINUED ON NEXT PAGE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 24
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0018

   414
   415	010062	260 17 0 00 014755 	L2:	PUSHJ	P,TIN		;PICK UP CHARACTER
   416	010063	301 05 0 00 000141 		CAIL	T,"A"+40	;LOWER CASE A
   417	010064	303 05 0 00 000172 		CAILE	T,"Z"+40	;LOWER CASE Z
   418	010065	254 00 0 00 010067 		JRST	.+2
   419	010066	640 05 0 00 000040 		TRC	T,40		;CHANGE LOWER CASE TO UPPER CASE
   420	010067	603 00 0 00 000040 		TLNE	F,(CF)		;CONTROL FLAG
   421	010070	254 00 0 00 010075 		JRST	L21
   422	010071	307 05 0 00 000132 		CAIG	T,"Z"		;Z
   423	010072	305 05 0 00 000101 		CAIGE	T,"A"		;A
   424	010073	254 00 0 00 010075 		JRST	.+2
   425	010074	254 00 0 00 010325 		JRST	LET
   426	010075	200 02 0 00 000005 	L21:	MOVE	R,T
   427	010076	303 05 0 00 000137 		CAILE	T,137		;DISPATCH TABLE HAS ENTRIES ONLY .LE. 137
   428	010077	254 00 0 00 010170 		JRST	ERR
   429	010100	231 02 0 00 000003 		IDIVI	R,3		;REMAINDER GIVES COLUMN, QUOTIENT GIVES ROW
   430	010101	135 04 0 03 015106 		LDB	W,BDISP(R+1)	;GET 12 BIT ADDRESS FROM DISPATCH TABLE
   431	010102	305 04 0 00 001043 		CAIGE	W,MULT-DDTOFS	;FIRST EVAL ROUTINE
   432	010103	254 00 0 04 010000 		JRST	DDTOFS(W)
   433	010104	200 05 0 00 016601 		MOVE	T,SYL
   434	010105	627 00 0 00 000020 		TLZN	F,(LTF)
   435	010106	254 00 0 00 010377 		JRST	POWER
   436	010107	306 04 0 00 001110 		CAIN	W,SPACE-DDTOFS	;IS TERMINATOR A SPACE?
   437	010110	332 00 0 00 016575 		SKIPE	WRD		;IS CONSTRUCTED WORD SO FAR ZERO?
   438	010111	334 05 0 00 016124 		SKIPA	T,[OPEVAL,,EVAL]	;SEARCH EVAL 1ST IFF: -SPACE .OR. (WRD).NE.0
   439	010112	204 05 0 00 016124 		MOVS	T,[OPEVAL,,EVAL]	;SEARCH OPEVAL 1ST IFF: SPACE .AND. (WRD)=0
   440	010113	202 05 0 00 016646 		MOVEM	T,SYMORD	;SAVE SYMBOL TABLE SEARCH ORDER
   441	010114	254 00 0 00 010117 		JRST	L213
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 25
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0019

   442
   443	010115	557 05 0 00 016646 	L212:	HLRZS	T,SYMORD	;GET ADDRESS OF THE OTHER LOOKUP ROUTINE
   444	010116	322 05 0 00 010203 		JUMPE	T,UND1		;IF ADR=0, THEN SYMBOL UNDEFINED
   445	010117	260 17 0 05 000000 	L213:	PUSHJ	P,(T)		;CALL OPEVAL OR EVAL
   446	010120	254 00 0 00 010115 		 JRST L212		;SYMBOL NOT FOUND
   447	010121	306 04 0 00 001046 		CAIN	W,ASSEM-DDTOFS	;DEFINED SYMBOL FOLLOWED BY #?
   448	010122	254 00 0 00 010170 		JRST	ERR		;IF DEFINED, DON'T ALLOW #
   449	010123	623 00 0 00 000002 	L4:	TLZE	F,(MF)
   450	010124	210 05 0 00 000005 		MOVN	T,T
   451	010125	607 00 0 00 000004 		TLNN	F,(SF)
   452	010126	302 04 0 00 001052 		CAIE	W,LPRN-DDTOFS
   453	010127	254 00 0 00 010131 		JRST	.+2
   454	010130	254 00 0 00 011052 		JRST	LPRN
   455
   456	010131	250 05 0 00 016604 		EXCH	T,FRASE1
   457	010132	607 00 0 00 040000 		TLNN	F,(DVF)
   458	010133	223 05 0 00 016604 		IMULB	T,FRASE1
   459	010134	623 00 0 00 040000 		TLZE	F,(DVF)
   460	010135	233 05 0 00 016604 		IDIVB	T,FRASE1
   461	010136	305 04 0 00 001046 		CAIGE	W,ASSEM-DDTOFS
   462	010137	254 00 0 04 010000 		JRST	DDTOFS(W)	;MULTIPLY OR DIVIDE
   463	010140	273 05 0 00 016600 		ADDB	T,FRASE
   464	010141	305 04 0 00 001110 		CAIGE	W,SPACE-DDTOFS
   465	010142	254 00 0 04 010000 		JRST	DDTOFS(W)	; + - @ ,
   466
   467	010143	270 05 0 00 016575 		ADD	T,WRD
   468	010144	603 00 0 00 100000 		TLNE	F,(TIF)		;TRUNCATE INDICATOR FLAG
   469	010145	500 05 0 00 016575 		HLL	T,WRD		;TRUNCATE
   470	010146	202 05 0 00 016575 		MOVEM	T,WRD
   471	010147	607 00 0 00 000001 		TLNN	F,(QF)
   472	010150	200 05 0 00 016602 		MOVE	T,LWT
   473	010151	402 00 0 00 000002 		SETZM	R
   474	010152	200 06 0 00 016611 		MOVE	W1,ESTUT
   475	010153	316 06 1 00 016616 		CAMN	W1,@USYMP	;IF THERE ARE ANY UNDEFINED SYMBOLS IN
   476	010154	254 00 0 00 010157 		JRST	L5		;THE CURRENT EXPRESSION, ANYTHING EXCEPT
   477	010155	303 04 0 00 001172 		CAILE	W,CARR-DDTOFS	;FURTHER EXPRESSION INPUT, OR DEPOSITING
   478	010156	254 00 0 00 010170 		JRST	ERR		;  INTO MEMORY IS ILLEGAL
   479	010157	307 04 0 00 001114 	L5:	CAIG	W,RPRN-DDTOFS
   480	010160	254 00 0 04 010000 		JRST	DDTOFS(W)
   481	010161	261 17 0 00 010636 		PUSH	P,KILRET	;WHEN INSIDE ( ), CURRENT EXPRESSION
   482	010162	336 00 0 00 016577 		SKIPN	PRNC		;INVALID FOR ANYTHING OTHER
   483	010163	254 00 0 04 010000 		JRST	DDTOFS(W)	;  THAN MORE EXPRESSION INPUT
   484	010164	254 00 0 00 010170 		JRST	ERR
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 26
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0020

   485
   486	010165	200 06 0 00 016125 	WRONG:	MOVE	W1,[ASCII /XXX/]
   487	010166	260 17 0 00 014264 		PUSHJ	P,TEXT
   488	010167	254 00 0 00 010176 		JRST	WRONG2
   489
   490	010170	205 06 0 00 374160 	ERR:	MOVSI	W1,(BYTE (7)"?","G"-100)	;QUESTION-DING
   491	010171	254 00 0 00 010173 		JRST	WRONG1
   492
   493	010172	201 06 0 00 000125 	UNDEF:	MOVEI	W1,"U"
   494	010173	200 17 0 00 016122 	WRONG1:	MOVE	P,[IOWD LPDL,PDL]
   495	010174	260 17 0 00 014264 		PUSHJ	P,TEXT
   496	010175	260 17 0 00 014714 		PUSHJ	P,TTYCLR	;CLEAR INPUT BUFFER
   497	010176	607 00 0 00 000010 	WRONG2:	TLNN	F,(ROF)		;REGISTER OPEN?
   498	010177	254 00 0 00 010010 		JRST	DD1		;NO, CRLF.  OTHERWISE, FALL INTO RET
   499	010200	200 17 0 00 016122 	RET:	MOVE	P,[IOWD LPDL,PDL]
   500	010201	260 17 0 00 014316 		PUSHJ	P,LCT		;COMMON RETURN FOR TAB;,JRST LIS
   501	010202	254 00 0 00 010016 		JRST	DD2
   502
   503
   504	010203	200 02 0 00 016611 	UND1:	MOVE	R,ESTUT		;UNDEFINED SYM ASSEMBLER
   505	010204	322 02 0 00 010172 		JUMPE	R,UNDEF		;UNDEFINED IF NO UNDEF SYM TABLE
   506	010205	574 03 0 00 016611 		HLRE	S,ESTUT
   507	010206	240 03 0 00 777777 		ASH	S,-1		;SETUP EVAL END TEST
   508	010207	260 17 0 00 010474 		PUSHJ	P,EVAL2
   509	010210	306 04 0 00 001046 		CAIN	W,ASSEM-DDTOFS
   510	010211	607 00 0 00 000010 		TLNN	F,(ROF)
   511	010212	254 00 0 00 010172 		JRST	UNDEF
   512	010213	332 00 0 00 016577 		SKIPE	PRNC
   513	010214	254 00 0 00 010172 		JRST	UNDEF
   514	010215	201 05 0 00 000043 		MOVEI	T,"#"
   515	010216	302 04 0 00 001046 		CAIE	W,ASSEM-DDTOFS
   516	010217	260 17 0 00 014600 		PUSHJ	P,TOUT
   517
   518	010220	210 02 0 00 016126 		MOVN	R,[XWD 2,2]
   519	010221	273 02 0 00 016611 		ADDB	R,ESTUT
   520	010222	200 05 0 00 016614 		MOVE	T,SYM
   521	010223	661 05 0 00 040000 		TLO	T,(GLOBL)
   522	010224	260 17 0 00 013150 		PUSHJ	P,DSYMER	;DEPOSIT AND TYPE ? IF IT FAILS
   523	010225	550 05 0 00 016624 		HRRZ	T,LLOCO
   524	010226	603 00 0 00 000002 		TLNE	F,(MF)
   525	010227	661 05 0 00 020000 		TLO	T,(STNEG)	;SET FLAG TO SHOW SUBTRACTIVE REQUEST
   526	010230	661 05 0 00 400000 		TLO	T,(STADD)	;SET FLAG TO SHOW UNCHAINED REQUEST
   527	010231	271 02 0 00 000001 		ADDI	R,1
   528	010232	260 17 0 00 013150 		PUSHJ	P,DSYMER
   529	010233	201 05 0 00 000000 		MOVEI	T,0
   530	010234	254 00 0 00 010123 		JRST	L4
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 27
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0021

   531
   532	010235	260 17 0 00 014313 	QUESTN:	PUSHJ	P,CRF		;HERE FOR "?"
   533	010236	603 00 0 00 000020 		TLNE	F,(LTF)		;HAS A SYMBOL BEEN TYPED?
   534	010237	254 00 0 00 010255 		JRST	QLIST		;NO
   535	010240	200 02 1 00 016616 		MOVE	R,@USYMP	;YES, LIST UNDEFINED SYMBOLS
   536	010241	325 02 0 00 010010 	QUEST1:	JUMPGE	R,DD1
   537	010242	200 05 0 02 000000 		MOVE	T, (R)
   538	010243	334 06 1 00 016616 		SKIPA	W1,@USYMP
   539
   540	010244	270 06 0 00 016126 	QUEST2:	ADD	W1,[XWD 2,2]
   541	010245	312 05 0 06 000000 		CAME	T,(W1)
   542	010246	254 00 0 00 010244 		JRST	QUEST2
   543	010247	312 02 0 00 000006 		CAME	R,W1
   544	010250	254 00 0 00 010253 		JRST	QUEST4
   545	010251	260 17 0 00 014125 		PUSHJ	P,SPT
   546	010252	260 17 0 00 014313 		PUSHJ	P,CRF
   547	010253	270 02 0 00 016126 	QUEST4:	ADD	R,[XWD 2,2]
   548	010254	254 00 0 00 010241 		JRST	QUEST1
   549
   550	010255	260 17 0 00 010541 	QLIST:	PUSHJ	P,SYMSET	;LIST REFERENCES TO THE SYMBOL
   551	010256	402 00 0 00 016647 	QLIST1:	SETZM	QLPNT		;ZERO FLAG SHOWING REFERENCE
   552	010257	200 05 0 02 000000 	QLIST2:	MOVE	T,(R)		;PICK UP SYMBOL
   553	010260	627 05 0 00 740000 		TLZN	T,(PNAME)	;A PROGRAM NAME?
   554	010261	254 00 0 00 010273 		JRST	QLIST6		;YES
   555	010262	316 05 0 00 016614 		CAMN	T,SYM		;NO, IS AN OCCURANCE FOUND?
   556	010263	552 02 0 00 016647 		HRRZM	R,QLPNT		;YES, REMEMBER WHERE
   557	010264	253 02 0 00 010265 	QLIST3:	AOBJN	R,.+1		;LOOK THRU TABLE
   558	010265	253 02 0 00 010271 		AOBJN	R,QLIST4	;END OF TABLE SEGMENT?
   559						IFE	FTFILE,<
   560	010266	606 02 0 00 400000 		TRNN	R,1B18		;YES, WRAP AROUND
   561	010267	331 02 0 00 016606 		SKIPL	R,SAVHSM
   562						>
   563	010270	200 02 1 00 016615 		MOVE	R,@SYMP
   564	010271	343 03 0 00 010257 	QLIST4:	AOJLE	S,QLIST2	;THRU SEARCHING?
   565	010272	254 00 0 00 010010 		JRST	DD1		;YES
   566
   567	010273	336 00 0 00 016647 	QLIST6:	SKIPN	QLPNT		;FOUND THE SYMBOL?
   568	010274	254 00 0 00 010264 		JRST	QLIST3		;NO
   569	010275	260 17 0 00 014126 		PUSHJ	P,SPT1		;YES, PRINT THE PROGRAM NAME
   570	010276	200 05 1 00 016647 		MOVE	T,@QLPNT	;GET THE SYMBOL BACK AND
   571	010277	607 05 0 00 040000 		TLNN	T,(GLOBL)	; TEST FOR A GLOBAL SYMBOL
   572	010300	254 00 0 00 010304 		JRST	QLIST7		;NOT GLOBAL
   573	010301	260 17 0 00 014323 		PUSHJ	P,TSPC		;IS GLOBAL, TYPE " G"
   574	010302	201 05 0 00 000107 		MOVEI	T,"G"
   575	010303	260 17 0 00 014600 		PUSHJ	P,TOUT
   576	010304	260 17 0 00 014313 	QLIST7:	PUSHJ	P,CRF
   577	010305	402 00 0 00 016647 		SETZM	QLPNT		;RESET FLAG
   578	010306	254 00 0 00 010264 		JRST	QLIST3		; AND SEARCH THE NEXT SET OF SYMBOLS
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 28
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0022

   579
   580	010307	405 05 0 00 000017 	NUM:	ANDI	T,17		;T HOLDS CHARACTER
   581	010310	603 00 0 00 020040 		TLNE	F,(CF+FPF)
   582	010311	254 00 0 00 010357 		JRST	NM1
   583	010312	200 04 0 00 016601 		MOVE	W,SYL
   584	010313	242 04 0 00 000003 		LSH	W,3
   585	010314	270 04 0 00 000005 		ADD	W,T
   586	010315	202 04 0 00 016601 		MOVEM	W,SYL
   587	010316	200 04 0 00 016605 		MOVE	W,DEN
   588	010317	221 04 0 00 000012 		IMULI	W,12		;CONVERT TO DECIMAL
   589	010320	270 04 0 00 000005 		ADD	W,T
   590	010321	202 04 0 00 016605 		MOVEM	W,DEN
   591	010322	344 05 0 00 010341 		AOJA	T,LE1A
   592
   593	010323	334 05 0 00 016127 	DOLLAR:	SKIPA	T,[46+101-13]	;RADIX 50 $ TO BE
   594	010324	201 05 0 00 000135 	PERC:	MOVEI	T,47+101-13	;PERCENT SIGN
   595	010325	641 00 0 00 020004 	LET:	TLC	F,(SF+FPF)	;EXPONENT IFF (LTF)'*(FEF)'*(T=105)*(SF)*(FPF)=1
   596	010326	627 00 0 00 420024 		TLZN	F,(LTF+FEF+SF+FPF)
   597	010327	302 05 0 00 000105 		CAIE	T,105		; E
   598	010330	665 00 0 00 000020 		TLOA	F,(LTF)
   599	010331	665 00 0 00 400000 		TLOA	F,(FEF)
   600	010332	254 00 0 00 010340 		JRST	LET1
   601	010333	627 00 0 00 000002 		TLZN	F,(MF)
   602	010334	334 06 0 00 016601 		SKIPA	W1,SYL
   603	010335	210 06 0 00 016601 		MOVN	W1,SYL
   604	010336	202 06 0 00 016612 		MOVEM	W1,FSV
   605	010337	402 00 0 00 016605 		CLEARM	DEN
   606	010340	275 05 0 00 000066 	LET1:	SUBI	T,101-13	;FORM RADIX 50 SYMBOL
   607	010341	661 00 0 00 000005 	LE1A:	TLO	F,(SF+QF)
   608	010342	375 00 0 00 016756 	LE2:	SOSGE	TEM		;IGNORE CHARACS AFTER 6
   609	010343	254 00 0 00 010062 		JRST	L2
   610	010344	201 04 0 00 000050 		MOVEI	W,50
   611	010345	222 04 0 00 016614 		IMULM	W,SYM		;MULTIPLY BY RADIX 50
   612	010346	272 05 0 00 016614 		ADDM	T,SYM		;  AND ADD NEW CHAR INTO SYM
   613	010347	201 05 0 05 000066 		MOVEI	T,"A"-13(T)	;CONVERT LETTERS BACK TO ASCII
   614	010350	136 05 0 00 016571 		IDPB	T,CHP
   615	010351	254 00 0 00 010062 		JRST	L2
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 29
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0023

   616
   617	010352	250 05 0 00 016576 	NUM1:	EXCH	T,WRD2		;FORM NUMBER AFTER $
   618	010353	221 05 0 00 000012 		IMULI	T,12
   619	010354	272 05 0 00 016576 		ADDM	T,WRD2
   620	010355	660 00 0 00 000001 		TRO	F,Q2F
   621	010356	254 00 0 00 010062 		JRST	L2
   622
   623	010357	603 00 0 00 000040 	NM1:	TLNE	F,(CF)
   624	010360	254 00 0 00 010352 		JRST	NUM1
   625	010361	201 06 0 00 000006 		MOVEI	W1,6		;FORM FLOATING POINT NUMBER
   626	010362	350 00 0 00 016425 		AOS	NM1A
   627	010363	256 00 0 00 016425 		XCT	NM1A		;MOVEI W2,..
   628	010364	205 02 0 00 201400 		MOVSI	R,201400
   629	010365	622 07 0 00 000001 	NM1A1:	TRZE	W2,1
   630	010366	164 02 0 06 014247 		FMPR	R,FT(W1)
   631	010367	322 07 0 00 010372 		JUMPE	W2,NM1B
   632	010370	242 07 0 00 777777 		LSH	W2,-1
   633	010371	367 06 0 00 010365 		SOJG	W1,NM1A1
   634	010372	205 06 0 05 211000 	NM1B:	MOVSI	W1,211000(T)
   635	010373	164 02 0 00 000006 		FMPR	R,W1		;COMPUTE VALUE OF NEW DIGIT
   636	010374	147 02 0 00 016613 		FADRB	R,FH		;ADD VALUE INTO FLOATING NO.
   637	010375	202 02 0 00 016601 		MOVEM	R,SYL
   638	010376	344 05 0 00 010341 		AOJA	T,LE1A
   639
   640	010377	607 00 0 00 400000 	POWER:	TLNN	F,(FEF)
   641	010400	254 00 0 00 010123 		JRST	L4		;NO EXPONENT
   642	010401	302 04 0 00 011050 		CAIE	W,PLUS
   643	010402	306 04 0 00 011047 		CAIN	W,MINUS
   644	010403	662 00 0 00 004000 		TROE	F,POWF
   645	010404	624 00 0 00 004000 		TRZA	F,POWF
   646	010405	254 00 0 04 000000 		JRST	(W)		; E+-
   647
   648	010406	200 07 0 00 016605 		MOVE	W2,DEN
   649	010407	402 00 0 00 016600 		CLEARM	FRASE
   650	010410	201 06 0 00 014246 		MOVEI	W1,FT-1
   651	010411	623 00 0 00 000002 		TLZE	F,(MF)
   652	010412	201 06 0 00 014255 		MOVEI	W1,FT01
   653	010413	334 05 0 00 016612 		SKIPA	T,FSV
   654	010414	242 07 0 00 777777 	POW2:	LSH	W2,-1
   655	010415	622 07 0 00 000001 		TRZE	W2,1
   656	010416	164 05 0 06 000000 		FMPR	T,(W1)
   657	010417	322 07 0 00 010123 		JUMPE	W2,L4
   658	010420	364 06 0 00 010414 		SOJA	W1,POW2
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 30
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0024

   659
   660	010421	200 05 0 00 016623 	PERIOD:	MOVE	T,LLOC
   661	010422	603 00 0 00 000004 		TLNE	F,(SF)		;SYLLABLE STARTED
   662	010423	200 05 0 00 016605 		MOVE	T,DEN
   663	010424	202 05 0 00 016601 		MOVEM	T,SYL
   664	010425	603 00 0 00 020000 		TLNE	F,(FPF)		;HAS A PERIOD BEEN SEEN BEFORE?
   665	010426	661 00 0 00 000020 		TLO	F,(LTF)		;YES, TWO PERIODS MAKES A SYMBOL
   666	010427	667 00 0 00 020005 		TLON	F,(FPF+SF+QF)
   667	010430	201 05 0 00 000000 		MOVEI	T,0
   668	010431	231 05 0 00 000400 		IDIVI	T,400
   669	010432	332 00 0 00 000005 		SKIPE	T
   670	010433	641 05 0 00 243000 		TLC	T,243000
   671	010434	641 06 0 00 233000 		TLC	W1,233000
   672	010435	140 05 0 00 016130 		FAD	T,[0]		;NORMALIZE T AND W1
   673	010436	140 06 0 00 016130 		FAD	W1,[0]
   674	010437	144 05 0 00 000006 		FADR	T,W1
   675	010440	202 05 0 00 016613 		MOVEM	T,FH
   676	010441	513 00 0 00 016425 		HLLZS	NM1A
   677	010442	201 05 0 00 000045 		MOVEI	T,45		;RADIX 50 PERIOD
   678	010443	254 00 0 00 010342 		JRST	LE2
   679
   680						IFE	FTFILE,<
   681	010444	201 05 0 00 016655 	PILOC:	MOVEI	T,SAVPI>	;GET ADDRESS FOR $I
   682	010445				QUANIN:;TLO T,(DDTINT)		;(FUTURE) FLAG DDT INTERNAL REGISTERS
   683	010445	254 00 0 00 010451 		JRST	QUAN1
   684
   685	010446	607 00 0 00 010000 	QUAN:	TLNN	F,(CCF)		;$Q OR $$Q, WHICH?
   686	010447	334 05 0 00 016602 		SKIPA	T,LWT		;$Q STRAIGHT
   687	010450	204 05 0 00 016602 	QUANSW:	MOVS	T,LWT		;$$Q SWAPPED (ALSO FOR $V)
   688	010451	202 05 0 00 016601 	QUAN1:	MOVEM	T,SYL
   689	010452	661 00 0 00 000005 	QUAN2:	TLO	F,(SF+QF)	;WRD,SYL STARTED
   690	010453	621 00 0 00 010040 		TLZ	F,(CF+CCF)
   691	010454	254 00 0 00 010062 		JRST	L2
   692
   693					;HERE WHEN ESC TYPED
   694
   695	010455	663 00 0 00 000040 	CONTRO:	TLOE	F,(CF)
   696	010456	661 00 0 00 010000 		TLO	F,(CCF)
   697	010457	476 00 0 00 016433 		SETOM	WAKALL		;SET WAKEUP ON EVERYTHING
   698	010460	254 00 0 00 010062 		JRST	L2
   699
   700						IFN	FTFILE,<PILOC==ERR>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 31
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND PARSER                                                                 SEQ 0025

   701
   702					SUBTTL SYMBOL TABLE LOGIC
   703					;SYMBOL EVALUATION ROUTINE
   704
   705	010461	260 17 0 00 013452 	EVAL:	PUSHJ	P,CSHVER	;GO SEE IF CACHE IS USEFUL
   706	010462	254 00 0 00 010473 		 JRST EVALC4		;ITS NOT. GO DO OLD STYLE LOOKUP
   707	010463	205 03 0 00 777740 		MOVSI	S,-NSYMCS	;SCAN SYMBOL CACHE FIRST
   708	010464	336 02 0 03 016760 	EVALC1:	SKIPN	R,SYMCSH(S)	;GET POINTER
   709	010465	254 00 0 00 010472 		JRST	EVALC3		;NOT IN USE
   710	010466	200 05 0 02 000000 		MOVE	T,0(R)		;GET SYM
   711	010467	621 05 0 00 740000 		TLZ	T,(PNAME)	;FLUSH BITS
   712	010470	316 05 0 00 016614 		CAMN	T,SYM		;SAME?
   713	010471	254 00 0 00 010521 		JRST	EVALC2		;YES, DONE
   714	010472	253 03 0 00 010464 	EVALC3:	AOBJN	S,EVALC1	;KEEP LOOKING
   715	010473	260 17 0 00 010541 	EVALC4:	PUSHJ	P,SYMSET	;SET UP SYM TABLE POINTER AND COUNT
   716
   717					;CERTAIN CALLS ENTER HERE WITH S AND R ALREADY SETUP
   718
   719	010474	620 00 0 00 030000 	EVAL2:	TRZ	F,PNAMEF!MDLCLF	;CLEAR FLAGS FOR EVAL
   720	010475	402 00 0 00 016617 		SETZM	SYMPNT		;CLEAR LOCAL SYM POINTER
   721	010476	322 03 0 00 010523 		JUMPE	S,CPOPJ		;XFER IF SYM TABLE EMPTY
   722	010477	325 02 0 00 010523 		JUMPGE	R,CPOPJ		;XFER IF POINTER NOT VALID
   723
   724	010500	200 05 0 02 000000 	EVAL3:	MOVE	T,0(R)		;GET SYM FROM SYM TABLE
   725	010501	627 05 0 00 740000 		TLZN	T,(PNAME)	;PROGRAM NAME? ALSO CLEAR THE FLAGS
   726						JRST	[JUMPE T,EVAL4	;YES, IGNORE IF SYMBOL IS NULL
   727							TRO F,PNAMEF	;SET PROGRAM NAME FLAG
   728	010502	254 00 0 00 016131 			JRST EVAL4]
   729	010503	316 05 0 00 016614 		CAMN	T,SYM		;SYMBOL MATCH?
   730	010504	254 00 0 00 010524 		JRST	EVAL6		;YES
   731	010505	253 02 0 00 010506 	EVAL4:	AOBJN	R,.+1		;NO VALID MATCH, CONTINUE LOOKING
   732	010506	253 02 0 00 010512 		AOBJN	R,EVAL4A	;POINTER EXPIRED?
   733						IFE	FTFILE,<
   734	010507	606 02 0 00 400000 		TRNN	R,1B18		;TEST FOR HIGH SEGMENT SYM TABLE
   735	010510	331 02 0 00 016606 		SKIPL	R,SAVHSM	;WAS LOW SEG, GET HIGH SEG POINTER, IF ANY
   736						>
   737	010511	200 02 1 00 016615 		MOVE	R,@SYMP		;WRAP AROUND TO LOW SEG END OF TABLE
   738	010512	343 03 0 00 010500 	EVAL4A:	AOJLE	S,EVAL3		;TRANSFER IF ANY SYMBOLS LEFT
   739	010513	336 02 0 00 016617 		SKIPN	R,SYMPNT	;SEARCH FINISHED, ANY LOCAL SYMS OUTSIDE
   740	010514	263 17 0 00 000000 		POPJ	P,		;CURRENT PROGRAM AREA?
   741	010515	602 00 0 00 020000 		TRNE	F,MDLCLF	;YES, WITH A UNIQUE VALUE?
   742	010516	254 00 0 00 010170 		JRST	ERR		;NO, AMBIGIOUS
   743	010517	550 06 0 00 000002 	EVAL5:	HRRZ	W1,R
   744	010520	260 17 0 00 013445 		PUSHJ	P,SYMCSI	;ADD SYM TO CACHE
   745	010521	200 05 0 02 000001 	EVALC2:	MOVE	T,1(R)		;GET VALUE OF SYMBOL
   746	010522	350 00 0 17 000000 	CPOPJ1:	AOS	(P)		;FOUND SYMBOL, SKIP
   747	010523	263 17 0 00 000000 	CPOPJ:	POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 32
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0026

   748	010524	200 05 0 02 000000 	EVAL6:	MOVE	T,(R)		;SYM MATCHES, GET FLAGS BACK
   749	010525	603 05 0 00 200000 		TLNE	T,(DELI)	;IS SYMBOL DELETED FOR INPUT?
   750	010526	254 00 0 00 010505 		JRST	EVAL4		;YES
   751	010527	607 05 0 00 040000 		TLNN	T,(GLOBL)	;GLOBAL SYMS VALID ANYWHERE
   752	010530	606 00 0 00 010000 		TRNN	F,PNAMEF	;HAS SECOND PROGRAM TABLE BEEN STARTED?
   753	010531	254 00 0 00 010517 		JRST	EVAL5		;LOCALS ALWAYS VALID IN CURRENT PROGRAM
   754	010532	336 05 0 00 016617 		SKIPN	T,SYMPNT	;LOCAL OUTSIDE OF CURRENT PROGRAM
   755	010533	254 00 0 00 010537 		JRST	EVAL7		;YES, AND THE 1ST ONE OF THEM
   756	010534	200 05 0 05 000001 		MOVE	T,1(T)		;GET VALUE OF PREVIOUS LOCAL
   757	010535	312 05 0 02 000001 		CAME	T,1(R)		;IS IT THE SAME VALUE?
   758	010536	660 00 0 00 020000 		TRO	F,MDLCLF	;NO, MULTIPLY DEFINED
   759	010537	202 02 0 00 016617 	EVAL7:	MOVEM	R,SYMPNT	;SAVE POINTER TO THIS LOCAL
   760	010540	254 00 0 00 010505 		JRST	EVAL4		;CONTINUE LOOKING FOR GLOBALS
   761
   762					;BIT 40 - DELETE OUTPUT
   763					; 20 - DELETE INPUT
   764					; 10 - LOCAL
   765					; 04 -GLOBAL
   766					; NO BITS - PROGRAM NAME
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 33
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0027

   767
   768					;SYMBOL TABLE POINTER AND COUNT SET UP ROUTINE
   769
   770	010541				SYMSET:	IFE	FTFILE,<
   771	010541	201 02 0 00 010030*		MOVEI	R,.JBHSM	;TRY TO GET HIGH SEG SYM TABLE POINTER
   772	010542	335 00 0 00 017022 		IFN	FTEXEC,<SKPEXC>	;NO HI SYM TABLE POINTER IN EXEC MODE
   773	010543	260 17 0 00 013154 		PUSHJ	P,HFETCH
   774	010544	201 05 0 00 000000 		 MOVEI T,0		;NO HIGH SEGMENT
   775	010545	202 05 0 00 016606 		MOVEM	T,SAVHSM	;SAVE HIGH SEG POINTER (OR 0)
   776						>
   777	010546	510 03 1 00 016615 		HLLZ	S,@SYMP		;GET WORD COUNT FOR LOW SEG TABLE
   778						IFE	FTFILE,<
   779	010547	335 00 0 00 000005 		SKIPGE	T		;IF .JBHSM .GT. 0, INVALID
   780	010550	270 03 0 00 000005 		ADD	S,T		;ADD WORD COUNT FOR HIGH SEG TABLE
   781						>
   782	010551	240 03 0 00 777755 		ASH	S,-^D19		;PUSH TO RIGHT HALF AND DIVIDE BY 2
   783	010552	331 05 0 00 016610 		SKIPL	T,PRGM		;GET $: POINTER, GOOD ONLY IF .LT. 0
   784	010553	254 00 0 00 010566 		JRST	SYMS4		;NOT GOOD, USE .JBSYM
   785						IFE	FTFILE,<
   786	010554	602 05 0 00 400000 		TRNE	T,1B18		;POINTER FROM .JBSYM OR .JBHSM?
   787						JRST	[PUSH  P,T	;SAVE T
   788							 MOVEI R,.JBHNM	;NAME WORD
   789							 PUSHJ P,HFETCH	;GET FROM HISEG
   790							   SETCM T,SEGNAM ;SHOULD NEVER FAIL
   791							 MOVE  R,T	;SAVE IN BETTER AC
   792							 POP   P,T	;RESTORE T
   793							 CAME  R,SEGNAM	;SAME HISEG?
   794							 JRST  SYMS4	;NO
   795	010555	254 00 0 00 016134 			 JRST  SYMS2]	;YES
   796						>
   797	010556	331 05 1 00 016615 		SKIPL	T,@SYMP		;PRGM CAME FROM .JBSYM
   798	010557	254 00 0 00 010567 		JRST	SYMS5		;.JBSYM POINTER INVALID
   799	010560	574 02 0 00 000005 	SYMS2:	HLRE	R,T		;GET NEGATIVE LENGTH
   800	010561	274 05 0 00 000002 		SUB	T,R		;GET LAST ADR OF TABLE
   801	010562	204 02 0 00 016610 		MOVS	R,PRGM		;GET NEG. LENGTH FOR $: POINTER
   802	010563	270 02 0 00 000005 		ADD	R,T		; AND CALCULATE STARTING ADR
   803	010564	500 02 0 00 016610 		HLL	R,PRGM		; AND SET UP TABLE LENGTH
   804	010565	321 02 0 00 010523 		JUMPL	R,CPOPJ		;NO, POINTER IS OK AS LONG AS IT IS .LT. 0
   805	010566	331 02 1 00 016615 	SYMS4:	SKIPL	R,@SYMP		;SET UP POINTER INTO LOW SEG TABLE
   806	010567				SYMS5:	IFE	FTFILE,<
   807	010567	200 02 0 00 016606 		MOVE	R,SAVHSM	;LOW SEG POINTER BAD, TRY HI SEG
   808						>
   809						IFN	FTFILE,<
   810						MOVEI	R,0
   811						>
   812	010570	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 34
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0028

   813
   814	010571	402 00 0 00 016610 	SETNAM:	SETZM	PRGM		;FORGET OLD PROGRAM
   815	010572	260 17 0 00 013456 		PUSHJ	P,CLRCSH	;CLEAR SYMBOL CACHE
   816	010573	335 02 1 00 016615 		SKIPGE	R,@SYMP		;LOOK UP PROGRAM NAME FOR $:
   817	010574	260 17 0 00 010622 		PUSHJ	P,SETSUB	;SEARCH LO SEG SYM TABLE
   818	010575	321 02 0 00 010613 		JUMPL	R,SETN2		;XFER IF NAME FOUND
   819						IFE	FTFILE,<
   820	010576	201 02 0 00 010541*		MOVEI	R,.JBHSM
   821	010577	335 00 0 00 017022 		IFN	FTEXEC,<SKPEXC>	;NO HI SYM TABLE POINTER IN EXEC MODE
   822	010600	260 17 0 00 013154 		PUSHJ	P,HFETCH	;GET .JBHSM
   823	010601	254 00 0 00 010172 		 JRST UNDEF		;NO HI SEG, NAME$: UNDEFINED
   824	010602	335 02 0 00 000005 		SKIPGE	R,T		;IS HI SEG POINTER GOOD?
   825	010603	260 17 0 00 010622 		PUSHJ	P,SETSUB	;YES, LOOK THRU HI SYM TABLE
   826						>
   827	010604	325 02 0 00 010172 		JUMPGE	R,UNDEF		;UNDEFINED IF NOT IN HI SEG
   828						IFE	FTFILE,<
   829	010605	541 04 0 00 400000 		HRRI	W,1B18		;SET FLAG SHOWING HI SEGMENT
   830	010606	201 02 0 00 000000*		MOVEI	R,.JBHNM	;GET ADR OF HI SEG PROGRAM NAME
   831	010607	335 00 0 00 017022 		IFN	FTEXEC,<SKPEXC>
   832	010610	260 17 0 00 013154 		PUSHJ	P,HFETCH	;  AND GO GET THE NAME
   833	010611	201 05 0 00 000000 		 MOVEI T,0		;NO HI SEG NAME, OR EXEC MODE
   834	010612	202 05 0 00 016607 		MOVEM	T,SEGNAM >	;SAVE HI SEG NAME
   835	010613	202 04 0 00 016610 	SETN2:	MOVEM	W,PRGM		;SAVE -WC IN LH, HISEG=1 FLAG IN RH
   836	010614	254 00 0 00 010200 		JRST	RET		;DONE, THANK YOU
   837
   838									;SUBROUTINE TO SEARCH A SYM TABLE FOR A PROGRAM NAME
   839	010615	200 05 0 02 000000 	SETSB1:	MOVE	T,(R)		;ENTRY POINT IS "SETSUB"
   840	010616	316 05 0 00 016614 		CAMN	T,SYM		;MATCH FOR PROGRAM NAME?
   841	010617	263 17 0 00 000000 		POPJ	P,		;YES, RETURN WITH "ANSWER" IN W
   842	010620	270 02 0 00 016126 		ADD	R,[2,,2]	;GO TO NEXT ENTRY
   843	010621	607 05 0 00 740000 		TLNN	T,(PNAME)	;WAS LAST ENTRY A PROG NAME?
   844	010622	510 04 0 00 000002 	SETSUB:	HLLZ	W,R		;(ENTRY POINT) YES, SAVE POINTER TO HERE
   845	010623	321 02 0 00 010615 		JUMPL	R,SETSB1	;XFER IF ANY SYMBOLS LEFT
   846	010624	263 17 0 00 000000 		POPJ	P,		;SEARCH FAILED, RETURN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 35
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0029

   847
   848	010625	607 00 0 00 000020 	KILL:	TLNN	F,(LTF)		;DELETE SYMBOLS
   849	010626	254 00 0 00 010170 		JRST	ERR
   850	010627	260 17 0 00 010461 		PUSHJ	P,EVAL
   851	010630	254 00 0 00 010637 		JRST	KILL1
   852	010631	200 05 0 02 000000 		MOVE	T,(R)		;GET SYM WITH FLAGS
   853	010632	661 05 0 00 400000 		TLO	T,(DELO)	;ASSUME DELETE OUTPUT
   854	010633	603 00 0 00 010000 		TLNE	F,(CCF)		;$$K?
   855	010634	205 05 0 00 637777 		MOVSI	T,(DELO!DELI!37777B17)	;MAKE SYM IMPOSSIBLE LOCAL, DELETED IN AND OUT
   856	010635	260 17 0 00 013150 		PUSHJ	P,DSYMER	;DEPOSIT IF LEGAL, ELSE ?
   857	010636	254 00 0 00 010200 	KILRET:	JRST	RET		;USED AS A CONSTANT
   858
   859
   860	010637	331 02 1 00 016616 	KILL1:	SKIPL	R,@USYMP	;REMOVE UNDEFINED SYMS
   861	010640	254 00 0 00 010172 		JRST	UNDEF
   862	010641	574 03 0 00 000002 	KILL1A:	HLRE	S,R		;GET LENGTH OF UNDEFINED TABLE, AND
   863	010642	240 03 0 00 777777 		ASH	S,-1		;DIVIDE BY 2 TO GET # OF ENTRIES
   864						IFE	FTFILE,<
   865	010643	402 00 0 00 016606 		SETZM	SAVHSM		;LOOK ONLY IN LOW SEG
   866						>
   867	010644	260 17 0 00 010474 	KILL2:	PUSHJ	P,EVAL2
   868	010645	254 00 0 00 010200 		JRST	RET
   869					REPEAT 0,<			;IF ASSEMBLED OUT, DON'T ZERO CHAINED ADDRESSES
   870						PUSH	P,R
   871						SKIPL	R,1(R)		;CHAINED REQUEST?
   872						JRST	KILL4		;YES
   873					KILL3:	POP	P,R >
   874	010646	260 17 0 00 010652 		PUSHJ	P,REMUN
   875	010647	254 00 0 00 010170 		 JRST ERR		;CAN'T MODIFY SYMTAB
   876	010650	200 02 1 00 016616 		MOVE	R,@USYMP	;START TABLE SEARCH OVER
   877	010651	254 00 0 00 010641 		JRST	KILL1A
   878
   879					REPEAT 0,<			;IF ASSEMBLED OUT, DON'T ZERO CHAINED ADDRESSES
   880					KILL4A:	SKIPE	R,S		;GET CHAIN ADR, STOP IF 0
   881					KILL4:	PUSHJ	P,FETCH		;GET NEXT ADR OF CHAIN
   882						 JRST KILL3		;FAILED, QUIT SEARCHING LIST
   883						HRRZ	S,T		;SAVE CHAIN POINTER
   884						HLLZS	T		;GET RID OF CHAIN ADDRESS, AND
   885						PUSHJ	P,DEPMEM	;  DEPOSIT BACK INTO MEMORY
   886						 JFCL			;IGNORE IF WRITE LOCKED SEG
   887						JRST	KILL4A >
   888
   889	010652	200 03 1 00 016616 	REMUN:	MOVE	S,@USYMP	;REMOVE ONE UNDEFINED SYMBOL
   890	010653	200 05 0 03 000000 		MOVE	T,(S)		;MOVE SYMBOL 2 LOCATIONS
   891	010654	260 17 0 00 013106 		PUSHJ	P,DEPSYM
   892	010655	263 17 0 00 000000 		 POPJ P,		;CAN'T MODIFY SYMTAB
   893	010656	200 05 0 03 000001 		MOVE	T,1(S)
   894	010657	271 02 0 00 000001 		ADDI	R,1
   895	010660	260 17 0 00 013150 		PUSHJ	P,DSYMER
   896	010661	275 02 0 00 000001 		SUBI	R,1
   897	010662	200 03 0 00 016126 		MOVE	S,[2,,2]
   898	010663	273 03 1 00 016616 		ADDB	S,@USYMP
   899	010664	254 00 0 00 010522 		JRST	CPOPJ1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 36
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0030

   900
   901	010665	607 00 0 00 000020 	TAG:	TLNN	F,(LTF)		; NO LETTERS IS ERROR
   902	010666	254 00 0 00 010170 		JRST	ERR		; GO SAY ERROR
   903	010667	603 00 0 00 001000 		TLNE	F,(FAF)		; DEFINE SYMBOLS
   904	010670	254 00 0 00 010675 		JRST	DEFIN		;A.LT.B:
   905	010671	603 00 0 00 000040 		TLNE	F,(CF)		;DEFINE SYMBOL AS OPEN REGISTER
   906	010672	254 00 0 00 010571 		JRST	SETNAM
   907	010673	200 04 0 00 016624 		MOVE	W,LLOCO
   908	010674	552 04 0 00 016621 		HRRZM	W,DEFV
   909
   910	010675	260 17 0 00 010461 	DEFIN:	PUSHJ	P,EVAL		;DEFINED SYMBOL?
   911	010676	254 00 0 00 010702 		JRST	DEF1		;NO - DEFINE
   912	010677	200 05 0 02 000000 		MOVE	T,0(R)		;YES, GET FLAGS FOR SYMBOL TYPE
   913	010700	603 05 0 00 740000 		TLNE	T,(PNAME)	;PROGRAM NAME?
   914	010701	254 00 0 00 010720 		JRST	DEF2		;NO, REDEFINE SYMBOL
   915
   916	010702	331 02 1 00 016615 	DEF1:	SKIPL	R,@SYMP		;DEFINE A NEW SYMBOL
   917						IFE	FTFILE,<
   918						JRST	[MOVEI R,.JBHSM
   919							IFN FTEXEC,<SKPEXC> ;NO HI SYM POINTER IN EXEC MODE
   920							PUSHJ P,HFETCH	;GET HI SEG SYM POINTER
   921							 JRST ERR	;THERE IS NO SYM POINTER ANYWHERE
   922							SUB T,[2,,2]	;MAKE ROOM FOR ANOTHER ENTRY
   923							PUSHJ P,DSYMER	; AND STORE IT BACK
   924							MOVE R,T
   925	010703	254 00 0 00 016145 			JRST DEF1A]
   926						>
   927						IFN	FTFILE,<
   928						JRST	ERR
   929						>
   930	010704	274 02 0 00 016126 		SUB	R,[2,,2]
   931	010705	202 02 1 00 016615 		MOVEM	R,@SYMP		;DECREMENT LO SEG SYM POINTER
   932	010706	331 00 1 00 016616 	DEF1A:	SKIPL	@USYMP		;DOES AN UNDEFINED TABLE EXIST?
   933	010707	254 00 0 00 010720 		JRST	DEF2		;NO
   934	010710	200 03 0 00 000002 		MOVE	S,R
   935	010711	370 02 1 00 016616 		SOS	R,@USYMP	;MOVE HI NUMBERED ENTRY ON UNDEFINED
   936	010712	200 05 0 03 000001 		MOVE	T,1(S)		;  TABLE TO LOW END
   937	010713	260 17 0 00 013150 		PUSHJ	P,DSYMER
   938	010714	370 02 1 00 016616 		SOS	R,@USYMP	;SAME FOR SECOND WORD
   939	010715	200 05 0 03 000000 		MOVE	T,(S)
   940	010716	260 17 0 00 013150 		PUSHJ	P,DSYMER
   941	010717	200 02 0 00 000003 		MOVE	R,S		;GET DEFINED SYM POINTER BACK
   942	010720	205 05 0 00 040000 	DEF2:	MOVSI	T,(GLOBL)
   943	010721	437 05 0 00 016614 		IORB	T,SYM
   944	010722	260 17 0 00 013150 		PUSHJ	P,DSYMER
   945	010723	200 05 0 00 016621 		MOVE	T,DEFV
   946	010724	201 02 0 02 000001 		MOVEI	R,1(R)
   947	010725	260 17 0 00 013150 		PUSHJ	P,DSYMER
   948	010726	200 02 1 00 016616 		MOVE	R,@USYMP
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 37
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0031

   949
   950	010727	325 02 0 00 010200 	DEF3:	JUMPGE	R,RET		;PATCH IN VALUE FOR UNDEF SYM ENTRY
   951	010730	200 05 0 00 016614 		MOVE	T,SYM
   952	010731	661 05 0 00 040000 		TLO	T,(GLOBL)	;UNDEFINED TABLE HAS GLOBAL ENTRIES
   953	010732	312 05 0 02 000000 		CAME	T,(R)
   954	010733	254 00 0 00 010754 		JRST	DEF4
   955	010734	261 17 0 00 000002 		PUSH	P,R		;SAVE POINTER INTO UNDEF TABLE
   956	010735	331 02 0 02 000001 		SKIPL	R,1(R)		;IS ENTRY AN ADDITIVE REQUEST?
   957	010736	254 00 0 00 010756 		JRST	DEF7		;NO, CHAINED IN RIGHT HALF
   958	010737	260 17 0 00 013160 		PUSHJ	P,FETCH		;GET OBJECT CELL
   959	010740	254 00 0 00 010170 		 JRST ERR
   960	010741	607 02 0 00 020000 		TLNN	R,(STNEG)	;ADDITIVE OR SUBTRACTIVE?
   961	010742	334 03 0 00 016621 		SKIPA	S,DEFV		;ADDITIVE
   962	010743	210 03 0 00 016621 		MOVN	S,DEFV		;SUBTRACTIVE
   963	010744	603 02 0 00 200000 		TLNE	R,(STLH)	;RIGHT OR LEFT HALF?
   964						JRST	[HRLZS S	;LEFT HALF
   965							ADD T,S		;ADD INTO LEFT HALF
   966	010745	254 00 0 00 016155 			JRST DEF5]
   967	010746	270 03 0 00 000005 		ADD	S,T		;RIGHT HALF, ADD HALVES
   968	010747	540 05 0 00 000003 		HRR	T,S		;  AND REPLACE RIGHT HALF
   969	010750	260 17 0 00 013151 	DEF5:	PUSHJ	P,DMEMER	;STORE RESULT BACK INTO MEMORY
   970	010751	262 17 0 00 000002 	DEF6:	POP	P,R		;GET UNDEF TABLE POINTER BACK
   971	010752	260 17 0 00 010652 		PUSHJ	P,REMUN
   972	010753	254 00 0 00 010170 		 JRST ERR		;CAN'T MODIFY SYMTAB
   973	010754	270 02 0 00 016126 	DEF4:	ADD	R,[XWD 2,2]	;REMOVE THE NOW DEFINED SYMBOL
   974	010755	254 00 0 00 010727 		JRST	DEF3
   975
   976	010756	322 02 0 00 010751 	DEF7:	JUMPE	R,DEF6		;JUMP IF ALL DONE
   977	010757	260 17 0 00 013160 		PUSHJ	P,FETCH		;GET OBJECT CELL
   978	010760	254 00 0 00 010170 		 JRST ERR
   979	010761	550 03 0 00 000005 		HRRZ	S,T		;SAVE CHAIN POINTER
   980	010762	540 05 0 00 016621 		HRR	T,DEFV		;REPLACE WITH NEW VALUE
   981	010763	260 17 0 00 013151 		PUSHJ	P,DMEMER	; AND STORE BACK INTO MEMORY
   982	010764	550 02 0 00 000003 		HRRZ	R,S		;LOOP TO END
   983	010765	254 00 0 00 010756 		JRST	DEF7		;  OF CHAIN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 38
SMDDT	MAC	29-Nov-78 13:26		SYMBOL TABLE LOGIC                                                                 SEQ 0032

   984
   985					SUBTTL	TEXT COMMANDS (" AND $")
   986
   987	010766	622 00 0 00 000001 	TEXI:	TRZE	F,Q2F		;QUANT AFTER $ ?
   988						JRST	[MOVE T,WRD2	;YES
   989							CAIE T,5	; $5" ?
   990							JRST ERR	;NO, ONLY CASE KNOWN
   991							MOVE T,SYM	;YES, TAKE PREVIOUS SYL AS RADIX50
   992							TLZ F,(FPF+FEF+LTF) ;REINIT SYL
   993	010767	254 00 0 00 016160 			JRST QUAN1]
   994	010770	550 05 0 00 016624 		HRRZ	T,LLOCO		;GET ADR OF OPEN REG
   995	010771	202 05 0 00 016756 		MOVEM	T,TEM		;SAVE IT FOR LOCAL USE
   996	010772	260 17 0 00 011026 		PUSHJ	P,TEXIN0	;GET TERMINATOR
   997	010773	202 05 0 00 016601 		MOVEM	T,SYL		;SAVE TERMINATOR
   998	010774	260 17 0 00 014754 		PUSHJ	P,TEXIN		;GET FIRST CHARACTER
   999	010775	306 05 0 00 000033 		CAIN	T,33		;ESC?
  1000	010776	254 00 0 00 010452 		JRST	QUAN2		;YES, EQUALS ONE ASCII/SIXBIT CHAR
  1001	010777	260 17 0 00 011027 		PUSHJ	P,TEXIN1	;CONVERT TO SIXBIT IF NECESSARY
  1002	011000	200 06 0 00 016166 	TEXI4:	MOVE	W1,[POINT 7,W]	;SETUP TO BUILD WORD IN W
  1003	011001	603 00 0 00 000040 		TLNE	F,(CF)		;SIXBIT?
  1004	011002	505 06 0 00 440600 		HRLI	W1,(POINT 6,0)	;YES, MODIFY BYTE POINTER
  1005	011003	201 04 0 00 000000 		MOVEI	W,0		;INIT WORD TO 0
  1006	011004	316 05 0 00 016601 	TEXI2:	CAMN	T,SYL		;REACHED TERMINATOR?
  1007						JRST	[MOVE T,W	;GET LAST WORD
  1008							HRRZ R,TEM
  1009							CAMN R,LLOCO	;MULTIPLE-WORD INPUT?
  1010							JRST QUAN1	;NO, JUST RETURN QUANTITY
  1011							PUSHJ P,PSHLLC	;YES, SAVE OLD LOC
  1012							MOVEM R,LLOC	;SET LOC TO END OF INPUT
  1013							MOVEM R,LLOCO
  1014	011005	254 00 0 00 016167 			JRST QUAN1]	;GO USE AS QUANTITY
  1015	011006	607 06 0 00 760000 		TLNN	W1,(76B5)	;ROOM FOR ANOTHER BYTE IN WORD?
  1016	011007	254 00 0 00 011013 		JRST	TEXI3		;NO
  1017	011010	136 05 0 00 000006 		IDPB	T,W1		;YES, STORE IT
  1018	011011	260 17 0 00 011026 		PUSHJ	P,TEXIN0	;GET ANOTHER INPUT CHARACTER
  1019	011012	254 00 0 00 011004 		JRST	TEXI2
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 39
SMDDT	MAC	29-Nov-78 13:26		TEXT COMMANDS (" AND $")                                                           SEQ 0033

  1020
  1021					;HERE WHEN WORD FULL
  1022
  1023	011013	205 06 0 00 440000 	TEXI3:	MOVSI	W1,(POINT 0,0)
  1024	011014	607 00 0 00 000010 		TLNN	F,(ROF)		;REGISTER OPEN?
  1025	011015	254 00 0 00 011004 		JRST	TEXI2		;NO, LOSE ANY ADDITIONAL INPUT
  1026	011016	261 17 0 00 000005 		PUSH	P,T		;SAVE CHARACTER
  1027	011017	200 05 0 00 000004 		MOVE	T,W		;GET FULL WORD
  1028	011020	550 02 0 00 016756 		HRRZ	R,TEM		;GET LOC OF NEXT REGISTER
  1029	011021	260 17 0 00 013106 		PUSHJ	P,DEPMEM	;STORE WORD
  1030	011022	254 00 0 00 010170 		 JRST ERR		;CAN'T
  1031	011023	350 00 0 00 016756 		AOS	TEM		;BUMP LOC
  1032	011024	262 17 0 00 000005 		POP	P,T		;RECOVER CHARACTER
  1033	011025	254 00 0 00 011000 		JRST	TEXI4		;GO REINIT WORD AND CONTINUE INPUT
  1034
  1035					;GET INPUT CHARACTER, CONVERT TO SIXBIT IF NECESSARY
  1036
  1037	011026	260 17 0 00 014754 	TEXIN0:	PUSHJ	P,TEXIN		;GET CHAR
  1038	011027	607 00 0 00 000040 	TEXIN1:	TLNN	F,(CF)		;SIXBIT MODE?
  1039	011030	263 17 0 00 000000 		POPJ	P,		;NO
  1040	011031	301 05 0 00 000141 	CONV6:	CAIL	T,"A"+40	;IS CHAR BETWEEN LOWER CASE "A" AND
  1041	011032	303 05 0 00 000172 		CAILE	T,"Z"+40	; LOWER CASE "Z"?
  1042	011033	334 00 0 00 000000 		SKIPA			;NO
  1043	011034	640 05 0 00 000040 		TRC	T,40		;YES, CONVERT TO UPPER CASE
  1044	011035	301 05 0 00 000040 		CAIL	T," "		;IS CHAR IN SIXBIT SET?
  1045	011036	303 05 0 00 000137 		CAILE	T,"_"
  1046	011037	254 00 0 00 010170 		JRST	ERR		;NO
  1047	011040	405 05 0 00 000077 		ANDI	T,77		;YES, MASK TO 6 BITS
  1048	011041	640 05 0 00 000040 		TRC	T,40		;CONVERT TO SIXBIT FORM
  1049	011042	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 40
SMDDT	MAC	29-Nov-78 13:26		TEXT COMMANDS (" AND $")                                                           SEQ 0034

  1050
  1051					;***ROUTINES BEYOND HERE EVALUATE THEIR ARGUMENT***
  1052
  1053	011043	665 00 0 00 000300 	MULT:	TLOA	F,(PTF+MLF)	;*
  1054	011044	661 00 0 00 040100 	DIVD:	TLO	F,(DVF+PTF)	;SINGLE QUOTE
  1055	011045	254 00 0 00 010051 		JRST	L1
  1056
  1057	011046	254 00 0 00 011050 	ASSEM:	JRST	PLUS		;#
  1058	011047	661 00 0 00 000002 	MINUS:	TLO	F,(MF)
  1059	011050	661 00 0 00 000100 	PLUS:	TLO	F,(PTF)
  1060	011051	254 00 0 00 010046 		JRST	LIS2
  1061
  1062	011052	261 17 0 00 000000 	LPRN:	PUSH	P,F		;RECURSE FOR OPEN PAREN
  1063	011053	261 17 0 00 016575 		PUSH	P,WRD
  1064	011054	261 17 0 00 016600 		PUSH	P,FRASE
  1065	011055	261 17 0 00 016604 		PUSH	P,FRASE1
  1066	011056	350 00 0 00 016577 		AOS,PRNC
  1067	011057	254 00 0 00 010020 		JRST	LIS
  1068
  1069	011060	515 04 0 00 000020 	INDIRE:	HRLZI	W,20		;@
  1070	011061	437 04 0 00 016575 		IORB	W,WRD
  1071	011062	661 00 0 00 000001 		TLO	F,(QF)
  1072	011063	254 00 0 00 010046 		JRST	LIS2
  1073
  1074	011064	200 02 0 00 000005 	ACCF:	MOVE	R,T		;COMMA PROCESSOR
  1075	011065	256 00 0 00 016426 		XCT	ACCCF		;MOVEI T,..
  1076	011066	663 00 0 00 200000 		TLOE	F,(COMF)	;COMMA TYPED BEFORE?
  1077	011067	254 00 0 00 011105 		JRST	ACCF1		;YES
  1078	011070	542 02 0 00 016426 		HRRM	R,ACCCF		;NO, SAVE LEFT HALF OF A,,B
  1079	011071	510 05 0 00 000002 		HLLZ	T,R
  1080	011072	135 06 0 00 016177 		LDB	W1,[POINT 3,WRD,2]	;CHECK FOR IO INSTRUCTION
  1081	011073	231 06 0 00 000007 		IDIVI	W1,7
  1082	011074	242 02 0 06 000027 		LSH	R,27(W1)
  1083	011075	135 06 0 00 016200 		LDB	W1,[POINT 9,WRD,8]
  1084	011076	301 06 0 00 000710 		CAIL	W1,710		;KS-10 I/O INSTRUCTION ?
  1085	011077	303 06 0 00 000727 		CAILE	W1,727
  1086	011100	254 00 0 00 011102 		JRST	.+2
  1087	011101	242 02 0 00 777777 		LSH	R,-1		;YES, CORRECT AC FIELD
  1088	011102	270 05 0 00 000002 		ADD	T,R
  1089	011103	273 05 0 00 016575 		ADDB	T,WRD
  1090	011104	254 00 0 00 011111 		JRST	SPAC1
  1091
  1092	011105	270 05 0 00 016575 	ACCF1:	ADD	T,WRD		; FOR ",," GET LEFT HALF TOGETHER
  1093	011106	516 05 0 00 016575 		HRLZM	T,WRD		; AND PUT IT IN LEFT HALF
  1094	011107	254 00 0 00 011111 		JRST	SPAC1
  1095
  1096	011110	603 00 0 00 000001 	SPACE:	TLNE	F,(QF)
  1097	011111	661 00 0 00 100000 	SPAC1:	TLO	F,(TIF)
  1098	011112	621 00 0 00 000102 		TLZ	F,(MF+PTF)
  1099	011113	254 00 0 00 010045 		JRST	LIS1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 41
SMDDT	MAC	29-Nov-78 13:26		TEXT COMMANDS (" AND $")                                                           SEQ 0035

  1100
  1101	011114	607 00 0 00 000001 	RPRN:	TLNN	F,(QF)		;)
  1102	011115	201 05 0 00 000000 		MOVEI	T,0
  1103	011116	204 05 0 00 000005 		MOVS	T,T
  1104	011117	375 00 0 00 016577 		SOSGE,PRNC
  1105	011120	254 00 0 00 010170 		JRST	ERR
  1106	011121	262 17 0 00 016604 		POP	P,FRASE1
  1107	011122	262 17 0 00 016600 		POP	P,FRASE
  1108	011123	262 17 0 00 016575 		POP	P,WRD
  1109	011124	262 17 0 00 000000 		POP	P,F
  1110	011125	603 00 0 00 000100 		TLNE	F,(PTF)
  1111	011126	603 00 0 00 000004 		TLNE	F,(SF)
  1112	011127	254 00 0 00 011133 		JRST	RPRN1
  1113	011130	202 05 0 00 016601 		MOVEM	T,SYL
  1114	011131	661 00 0 00 000005 		TLO	F,(QF+SF)
  1115	011132	254 00 0 00 010053 		JRST	L1RPR
  1116	011133	273 05 0 00 016575 	RPRN1:	ADDB	T,WRD
  1117	011134	661 00 0 00 000001 		TLO	F,(QF)
  1118	011135	254 00 0 00 010052 		JRST	L1A
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 42
SMDDT	MAC	29-Nov-78 13:26		TEXT COMMANDS (" AND $")                                                           SEQ 0036

  1119
  1120					SUBTTL REGISTER EXAMINATION LOGIC
  1121
  1122	011136	260 17 0 00 011306 	LINEF:	PUSHJ	P,DEPRA		;NEXT REGISTER
  1123	011137	260 17 0 00 014311 		PUSHJ	P,CRN		;DO CR ONLY
  1124	011140	350 05 0 00 016623 		AOS	T,LLOC		;BUMP LOC
  1125	011141				LI1:				;PUSHJ P,LINCHK		;TRUNCATE ADRS (UNLESS INSIDE DDT)
  1126	011141	552 05 0 00 016623 		HRRZM	T,LLOC
  1127	011142	552 05 0 00 016624 		HRRZM	T,LLOCO
  1128	011143	260 17 0 00 013566 		PUSHJ	P,PAD
  1129	011144	201 05 0 00 000057 		MOVEI	T,"/"
  1130	011145	312 10 0 00 016752 		CAME	SCH,SCHM	;TEMP MODE SAME AS PERM?
  1131						JRST	[CAIN SCH,FTOC	;NO, CONSTANT?
  1132							MOVEI T,"["	;YES
  1133							CAIN SCH,PIN	;INSTRUCTION?
  1134							MOVEI T,"]"	;YES
  1135	011146	254 00 0 00 016201 			JRST .+1]	;USE APPROPRIATE INDICATION
  1136	011147	603 00 0 00 004000 		TLNE	F,(STF)
  1137	011150	201 05 0 00 000041 		MOVEI	T,"!"
  1138	011151	260 17 0 00 014600 		PUSHJ	P,TOUT
  1139	011152	621 00 0 00 000010 	LI2:	TLZ	F,(ROF)
  1140	011153	260 17 0 00 014316 		PUSHJ	P,LCT
  1141	011154	200 02 0 00 016624 		MOVE	R,LLOCO
  1142	011155	260 17 0 00 013160 		PUSHJ	P,FETCH
  1143						IFE	FTDEC20,<
  1144	011156	254 00 0 00 010170 		JRST	ERR>
  1145						IFN	FTDEC20,<
  1146						 JRST	[TLO F,(ROF)	;SAY REGISTER OPENED
  1147							MOVEI W1,"?"	;BUT ONLY TYPE "?"
  1148							JRST TEXT]>
  1149	011157	661 00 0 00 000010 		TLO	F,(ROF)
  1150	011160	603 00 0 00 004000 		TLNE	F,(STF)
  1151	011161	254 00 0 00 010016 		JRST	DD2
  1152	011162	254 00 0 00 013462 		JRST	CONSYM		;RETURN IS A POPJ
  1153
  1154					;CRLF AND OPEN NEXT REGISTER SUBROUTINE
  1155
  1156	011163	260 17 0 00 014313 	LI0:	PUSHJ	P,CRF
  1157	011164	350 05 0 00 016623 		AOS	T,LLOC
  1158	011165	254 00 0 00 011141 		JRST	LI1
  1159
  1160						REPEAT	0,<
  1161					LINCHK:	CAML	T,[DDTINT SAVPI]	;TRUNCATE ADDRESSES
  1162						CAMLE	T,[DDTINT BNADR+2]
  1163						HRRZS	T
  1164						MOVEM	T,LLOC
  1165						MOVEM	T,LLOCO
  1166						POPJ	P,
  1167						>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 43
SMDDT	MAC	29-Nov-78 13:26		REGISTER EXAMINATION LOGIC                                                         SEQ 0037

  1168	011166	260 17 0 00 011306 	VARRW:	PUSHJ	P,DEPRA		;^
  1169	011167	260 17 0 00 014313 		PUSHJ	P,CRF
  1170	011170	370 05 0 00 016623 		SOS	T,LLOC
  1171	011171	254 00 0 00 011141 		JRST	LI1
  1172
  1173	011172	260 17 0 00 011306 	CARR:	PUSHJ	P,DEPRA		;CLOSE REGISTER
  1174	011173	260 17 0 00 014755 		PUSHJ	P,TIN		;GLOBBLE UP FOLLOWING LINEFEED
  1175	011174	402 00 0 00 016437 	CARR1:	SETZM	CHINP		;REINIT INPUT LINE
  1176	011175	402 00 0 00 016432 		SETZM	CHINC
  1177	011176	550 05 0 00 016623 		HRRZ	T,LLOC		;GET CURRENT LOC
  1178	011177	603 00 0 00 000040 		TLNE	F,(CF)		; $ PRECEEDED?
  1179	011200	254 00 0 00 011141 		JRST	LI1		;YES, GO OPEN REGISTER
  1180	011201	254 00 0 00 010011 		JRST	DD1.5
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 44
SMDDT	MAC	29-Nov-78 13:26		REGISTER EXAMINATION LOGIC                                                         SEQ 0038

  1181
  1182	011202	607 00 0 00 010000 	SLASH:	TLNN	F,(CCF)		; $$/ ?
  1183	011203	254 00 0 00 011217 		JRST	SLAS2		;NO
  1184	011204	462 00 0 00 016652 		SETCMM	EFAFLG		;YES, COMPLEMENT EFF ADR FLAG
  1185	011205	254 00 0 00 010200 		JRST	RET		;OPEN NO REGISTER
  1186
  1187	011206	603 00 0 00 000001 	OCON:	TLNE	F,(QF)		;QUANT TYPED?
  1188	011207	201 10 0 00 014067 		MOVEI	SCH,FTOC	;YES, CHANGE TEMP MODE TO CONSTANT
  1189	011210	660 00 0 00 002400 		TRO	F,LF1+CF1	;OPEN AS CONSTANT
  1190	011211	254 00 0 00 011217 		JRST	SLAS2		;TYPE
  1191
  1192	011212	603 00 0 00 000001 	OSYM:	TLNE	F,(QF)		;QUANT TYPED?
  1193	011213	201 10 0 00 013467 		MOVEI	SCH,PIN		;YES, CHANGE TEMP MODE TO INSTRUCTION
  1194	011214	620 00 0 00 000400 		TRZ	F,CF1		;OPEN SYMBOLICALLY
  1195	011215	664 00 0 00 002000 		TROA	F,LF1
  1196	011216	665 00 0 00 004000 	SUPTYO:	TLOA	F,(STF)		;SUPPRESS TYPEOUT
  1197	011217	621 00 0 00 004000 	SLAS2:	TLZ	F,(STF)		;TYPE OUT NOT SUPPRESSED
  1198	011220	260 17 0 00 011242 	SLASH2:	PUSHJ	P,CEFF		;COMPUTE EFF ADR
  1199	011221	607 00 0 00 000001 		TLNN	F,(QF)		;WAS ANY QUANTITY TYPED?
  1200	011222	254 00 0 00 011225 		JRST	SLAS1		;NO. DO NOT CHANGE MAIN SEQUENCE
  1201	011223	260 17 0 00 011270 		PUSHJ	P,PSHLLC	;PUSH OLD SEQUENCE
  1202	011224	552 05 0 00 016623 		HRRZM	T,LLOC		;SETUP NEW SEQUENCE
  1203	011225	552 05 0 00 016624 	SLAS1:	HRRZM	T,LLOCO
  1204	011226	254 00 0 00 011152 		JRST	LI2
  1205
  1206	011227	260 17 0 00 013100 	ICON:	PUSHJ	P,DEPRS		;BACKSLASH
  1207	011230	260 17 0 00 011242 		PUSHJ	P,CEFF		;COMPUTE EFF ADR
  1208	011231	254 00 0 00 011225 		JRST	SLAS1
  1209
  1210	011232	260 17 0 00 013100 	TAB:	PUSHJ	P,DEPRS		;OPEN REGISTER OF Q
  1211	011233	260 17 0 00 011242 		PUSHJ	P,CEFF		;COMPUTE EFF ADR
  1212	011234	201 05 0 05 777777 		MOVEI	T,-1(T)
  1213	011235	260 17 0 00 011270 		PUSHJ	P,PSHLLC	;PUSH OLD SEQUENCE
  1214	011236	202 05 0 00 016623 		MOVEM	T,LLOC		;SETUP NEW SEQUENCE
  1215	011237	561 05 0 00 700000 		HRROI	T,700000	;3 RUBOUTS
  1216	011240	260 17 0 00 014263 		PUSHJ	P,TEXTT
  1217	011241	254 00 0 00 011163 		JRST	LI0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 45
SMDDT	MAC	29-Nov-78 13:26		REGISTER EXAMINATION LOGIC                                                         SEQ 0039

  1218
  1219					;ROUTINE TO COMPUTE EFFECTIVE ADDRESS OF QUANTITY IN T.  COMPUTATION
  1220					;IS PERFORMED USING USER PROGRAM VARIABLES.
  1221					; T/ QUANTITY
  1222					;	PUSHJ P,CEFF
  1223					; RETURN +1 ALWAYS, T/ EFFECTIVE ADDRESS IN RH
  1224					;PRINTS "??" AND BOMBS OUT IF INDIRECT WORD NOT ACCESSIBLE
  1225
  1226	011242	332 00 0 00 016652 	CEFF:	SKIPE	EFAFLG		;PERMANENT MODE CHANGED?
  1227	011243	641 00 0 00 000040 		TLC	F,(CF)		;YES, COMPLEMENT EFFECT OF ESC
  1228	011244	627 00 0 00 000040 		TLZN	F,(CF)		;ESC BEFORE COMMAND?
  1229	011245	263 17 0 00 000000 		POPJ	P,		;NO, USE RH ONLY
  1230	011246	607 05 0 00 000017 		TLNN	T,17		;INDEXING?
  1231	011247	254 00 0 00 011257 		JRST	CEFF1		;NO
  1232	011250	261 17 0 00 000005 		PUSH	P,T		;YES, SAVE QUANTITY
  1233	011251	135 02 0 00 016206 		LDB	R,[POINT 4,T,17]	;GET INDEX ADDRESS
  1234	011252	260 17 0 00 013160 		PUSHJ	P,FETCH		;FETCH CONTENTS OF XR
  1235	011253	255 00 0 00 000000 		 JFCL			;ASSUME AC'S ALWAYS ACCESSABLE
  1236	011254	262 17 0 00 000002 		POP	P,R		;RECOVER ORIGINAL QUANTITY
  1237	011255	270 05 0 00 000002 		ADD	T,R		;T=Y+C(XR)
  1238	011256	500 05 0 00 000002 		HLL	T,R		;KEEP ORIGINAL LH
  1239	011257	607 05 0 00 000020 	CEFF1:	TLNN	T,(Z @0)	;HAVE INDIRECTION?
  1240	011260	263 17 0 00 000000 		POPJ	P,		;NO, DONE
  1241	011261	550 02 0 00 000005 		HRRZ	R,T		;YES, GET INDIRECT ADDRESS
  1242	011262	260 17 0 00 013160 		PUSHJ	P,FETCH		;FETCH CONTENTS
  1243	011263	254 00 0 00 011265 		 JRST CEFF2		;FETCH FAILED
  1244	011264	254 00 0 00 011242 		JRST	CEFF		;REPEAT USING INDIRECT WORD
  1245
  1246	011265	205 06 0 00 375760 	CEFF2:	MOVSI	W1,(ASCII /??/)	;INDIRECT FETCH FAILED
  1247	011266	260 17 0 00 014264 		PUSHJ	P,TEXT		;PRINT LOSS INDICATION
  1248	011267	254 00 0 00 010010 		JRST	DD1		;LEAVE REGISTER NOT OPEN, DO CRLF, ETC.
  1249
  1250					;ROUTINES TO HANDLE RING BUFFER OF LOCATIONS
  1251
  1252					;'PUSH' CURRENT LOCATION
  1253
  1254	011270	350 13 0 00 016625 	PSHLLC:	AOS	TT,SAVLP	;BUMP POINTER
  1255	011271	301 13 0 00 000020 		CAIL	TT,NSAVTB	;AT END OF TABLE?
  1256	011272	403 13 0 00 016625 		SETZB	TT,SAVLP	;YES, WRAPAROUND
  1257	011273	261 17 0 00 016623 		PUSH	P,LLOC		;GET CURRENT LOCATION
  1258	011274	262 17 0 13 016626 		POP	P,SAVLTB(TT)	;ADD IT TO TABLE
  1259	011275	263 17 0 00 000000 		POPJ	P,
  1260
  1261					;'POP' CURRENT LOCATION
  1262
  1263	011276	200 13 0 00 016625 	POPLLC:	MOVE	TT,SAVLP	;GET POINTER
  1264	011277	200 13 0 13 016626 		MOVE	TT,SAVLTB(TT)	;REMOVE FROM TABLE
  1265	011300	202 13 0 00 016623 		MOVEM	TT,LLOC		;SET AS CURRENT LOC
  1266	011301	370 13 0 00 016625 		SOS	TT,SAVLP	;DECREMENT PTR
  1267	011302	325 13 0 00 011305 		JUMPGE	TT,POPLC1	;AT TOP OF TABLE?
  1268	011303	201 13 0 00 000017 		MOVEI	TT,NSAVTB-1	;YES, WRAPAROUND
  1269	011304	202 13 0 00 016625 		MOVEM	TT,SAVLP
  1270	011305	263 17 0 00 000000 	POPLC1:	POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 46
SMDDT	MAC	29-Nov-78 13:26		REGISTER EXAMINATION LOGIC                                                         SEQ 0040

  1271
  1272	011306	603 00 0 00 000040 	DEPRA:	TLNE	F,(CF)		;$ PRECEEDED?
  1273	011307	260 17 0 00 011276 		PUSHJ	P,POPLLC	;YES, POP OLD SEQUENCE
  1274	011310	603 00 0 00 000010 		TLNE	F,(ROF)		;IF REGISTER IS BEING CHANGED
  1275	011311	607 00 0 00 000001 		TLNN	F,(QF)		;REMOVE ALL PREVIOUS UNDEFINED
  1276	011312	254 00 0 00 013100 		JRST	DEPRS		;SYMBOL REFERENCES TO IT
  1277	011313	200 02 1 00 016616 		MOVE	R,@USYMP	;GET POINTER TO ALL OLD UNDEF ITEMS
  1278	011314	202 06 1 00 016616 		MOVEM	W1,@USYMP	;INCLUDE THE NEW ITEMS IN UNDEF LIST
  1279						IFN	FTFILE,<
  1280						SKIPN	CRASHS		;SEE IF /M
  1281						JRST	DEPRS		;YES--NO UNDEF FIXUPS
  1282						>
  1283	011315	202 05 0 00 016602 		MOVEM	T,LWT		;SAVE T IN LWT, DEPRS DOES IT ANYWAY
  1284	011316	325 02 0 00 011331 	DEPRA2:	JUMPGE	R,DEPRA5	;IF JOBUSY SYM TABLE EDITED, STOP
  1285	011317	261 17 0 00 000002 		PUSH	P,R
  1286	011320	200 04 0 02 000001 		MOVE	W,1(R)		;GET FLAGS AND POINTER
  1287	011321	327 04 0 00 011333 		JUMPG	W,DPRS3		;1B0=0 IMPLIES CHAINING
  1288	011322	262 17 0 00 000002 	DEPRA4:	POP	P,R
  1289	011323	550 05 0 02 000001 		HRRZ	T,1(R)		;GET ADDRESS OF FIXUP
  1290	011324	332 00 0 00 000005 		SKIPE	T		;DELETE ENTRY IF ADR=0, OR
  1291	011325	316 05 0 00 016624 		CAMN	T,LLOCO		; IF ADR IS BEING CHANGED
  1292						JRST	[PUSHJ P,REMUN	;REMOVE ENTRY FROM JOBUSY
  1293							 JRST DEPRA5	;FAILED, NO UNDEF FIXUPS
  1294	011326	254 00 0 00 016207 			JRST .+1]
  1295	011327	270 02 0 00 016126 		ADD	R,[2,,2]	;CONTINUE SEARCHING TABLE
  1296	011330	254 00 0 00 011316 		JRST	DEPRA2
  1297
  1298	011331	200 05 0 00 016602 	DEPRA5:	MOVE	T,LWT		;RESTORE QUANTITY
  1299	011332	254 00 0 00 013100 		JRST	DEPRS		;DO THE STORE
  1300
  1301	011333	561 03 0 02 000001 	DPRS3:	HRROI	S,1(R)		;GET 1ST CHAIN ADR FROM JOBUSY TABLE
  1302									;  AND SET FLAG TO USE DEPSYM FIRST TIME
  1303	011334	550 02 0 00 000004 	DPRS4:	HRRZ	R,W		;GET NEXT ADR (AFTER ADR IN S)
  1304	011335	322 02 0 00 011322 		JUMPE	R,DEPRA4	;STOP ON 0 ADR
  1305	011336	260 17 0 00 013160 		PUSHJ	P,FETCH		;GET CONTENTS OF ADR IN R
  1306	011337	254 00 0 00 011322 		 JRST DEPRA4		;****UNDEFINED SYMBOL TABLE OR FIXUP
  1307									; CHAIN POINTS TO ILL. MEM. TRY
  1308									; TO CONTINUE.
  1309	011340	250 05 0 00 000004 		EXCH	T,W
  1310	011341	250 03 0 00 000002 		EXCH	S,R
  1311	011342	312 03 0 00 016624 		CAME	S,LLOCO		;IS THIS WORD BEING CHANGED?
  1312	011343	254 00 0 00 011334 		JRST	DPRS4		;NO, CONTINUE SEARCHING LIST
  1313	011344	540 05 0 00 000004 		HRR	T,W		;PATCH CHAIN ADR AROUND ITEM
  1314	011345	607 02 0 00 777777 		TLNN	R,-1		;SEE IF NEED TO USE DEPSYM
  1315	011346	634 14 0 00 000014 		TDZA	TT1,TT1		;NO--USE DEPMEM
  1316	011347	201 14 0 00 000000 		MOVEI	TT1,DEPSYM-DEPMEM	;YES.  NOTE THAT R CAME FROM S
  1317									;  WHICH HAS -1 IN LH FIRST TIME AROUND
  1318									;  LOOP AND 0 OTHER TIMES.
  1319	011350	260 17 0 14 013106 		PUSHJ	P,DEPMEM(TT1)	;CALL EITHER DEPMEM OR DEPSYM
  1320	011351	254 04 0 00 011351 		 HALT .
  1321	011352	254 00 0 00 011334 		JRST	DPRS4		;CONTINUE DOWN CHAIN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 47
SMDDT	MAC	29-Nov-78 13:26		REGISTER EXAMINATION LOGIC                                                         SEQ 0041

  1322
  1323					SUBTTL MODE CONTROL SWITCHES
  1324
  1325	011353	201 02 0 00 000504 	TEXO:	MOVEI	R,TEXTT-HLFW	;$T ASSUME 7 BIT ASCII
  1326	011354	200 05 0 00 016576 		MOVE	T,WRD2
  1327	011355	306 05 0 00 000006 		CAIN	T,6		;CHECK FOR $6T
  1328	011356	201 02 0 00 000522 		MOVEI	R,SIXBP-HLFW	;SET MODE SWITCH FOR SIXBIT
  1329	011357	306 05 0 00 000005 		CAIN	T,5		;CHECK FOR $5T
  1330	011360	201 02 0 00 000514 		MOVEI	R,R50PNT-HLFW	;SET MODE SWITCH FOR RADIX 50
  1331	011361	271 02 0 00 777404 	HWRDS:	ADDI	R,HLFW-TFLOT	;H
  1332	011362	271 02 0 00 000464 	SFLOT:	ADDI	R,TFLOT-PIN	;F
  1333	011363	271 02 0 00 777400 	SYMBOL:	ADDI	R,PIN-FTOC	;S
  1334	011364	271 02 0 00 014067 	CON:	ADDI	R,FTOC		;C
  1335	011365	552 02 0 00 000010 		HRRZM	R,SCH
  1336	011366	254 00 0 00 011401 		JRST	BASE1
  1337
  1338	011367	622 00 0 00 000001 	RELA:	TRZE	F,Q2F		;CHANGE ADDRESS MODE TO RELATIVE
  1339	011370	254 00 0 00 011375 		JRST	BASECH
  1340	011371	201 02 0 00 777501 		MOVEI	R,PADSO-TOC
  1341	011372	271 02 0 00 014067 	ABSA:	ADDI	R,TOC		;A
  1342	011373	552 02 0 00 000011 		HRRZM	R,AR
  1343	011374	254 00 0 00 011403 		JRST	BASE1S
  1344
  1345	011375	200 05 0 00 016576 	BASECH:	MOVE	T,WRD2		;$NR  CHANGE OUTPUT RADIX TO N, N .GT. 1
  1346	011376	305 05 0 00 000002 		CAIGE	T,2
  1347	011377	254 00 0 00 010170 		JRST	ERR
  1348	011400	552 05 0 00 000012 		HRRZM	T,ODF
  1349	011401	332 03 0 00 016561 	BASE1:	SKIPE	S,OLDAR
  1350	011402	200 11 0 00 000003 		MOVE	AR,S
  1351	011403	402 00 0 00 016561 	BASE1S:	SETZM	OLDAR
  1352	011404	204 03 0 00 016120 	BASE1O:	MOVS	S,[XWD SCHM,SCH]
  1353	011405	607 00 0 00 010000 		TLNN	F,(CCF)
  1354	011406	254 00 0 00 010045 		JRST	LIS1
  1355	011407	251 03 0 00 016754 		BLT	S,ODFM		;WITH $$, MAKE MODES PERMANENT
  1356	011410	200 03 0 00 016121 		MOVE	S,[SVBTS,,PSVBTS]
  1357	011411	251 03 0 00 016566 		BLT	S,PSVBTS+2
  1358	011412	254 00 0 00 010200 		JRST	RET
  1359
  1360	011413	202 05 0 00 016602 	SEMIC:	MOVEM	T,LWT		;SEMICOLON TYPES IN CURRENT MODE
  1361	011414	254 00 1 00 000010 		JRST	@SCH
  1362
  1363	011415	664 00 0 00 002400 	EQUAL:	TROA	F,LF1+CF1	;=
  1364	011416	620 00 0 00 000400 	PSYM:	TRZ	F,CF1		;@
  1365	011417	660 00 0 00 002000 		TRO	F,LF1
  1366	011420	260 17 0 00 013462 		PUSHJ	P,CONSYM
  1367	011421	254 00 0 00 010200 		JRST	RET
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 48
SMDDT	MAC	29-Nov-78 13:26		MODE CONTROL SWITCHES                                                              SEQ 0042

  1368
  1369					;OPEN ANGBKT, CLOSE ANGBKT
  1370
  1371	011422	603 00 0 00 010040 	FIRARG:	TLNE	F,(CF+CCF)	;$ PRECEEDED?
  1372	011423	254 00 0 00 011436 		JRST	PTCH		;YES, PATCH COMMAND
  1373	011424	202 05 0 00 016621 		MOVEM	T,DEFV		;NO, SET FIRST ARG
  1374	011425	661 00 0 00 001000 		TLO	F,(FAF)
  1375	011426	254 00 0 00 011433 		JRST	ULIM1
  1376
  1377	011427	603 00 0 00 010040 	ULIM:	TLNE	F,(CF+CCF)	;$ PRECEEDED?
  1378	011430	254 00 0 00 011504 		JRST	PTCHE		;YES, PATCH END COMMAND
  1379	011431	661 00 0 00 002000 		TLO	F,(SAF)		;NO, SET SECOND ARG
  1380	011432	552 05 0 00 016622 		HRRZM	T,ULIMIT
  1381	011433	607 00 0 00 000001 	ULIM1:	TLNN	F,(QF)
  1382	011434	254 00 0 00 010170 		JRST	ERR
  1383	011435	254 00 0 00 010042 		JRST	LIS0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 49
SMDDT	MAC	29-Nov-78 13:26		MODE CONTROL SWITCHES                                                              SEQ 0043

  1384
  1385					SUBTTL	PATCH COMMAND  -- PATCH BEGIN
  1386
  1387	011436	607 00 0 00 300102 	PTCH:	TLNN	F,(TIF+COMF+PTF+MF)	;EXPRESSION TYPED?
  1388	011437	607 00 0 00 000010 		TLNN	F,(ROF)		;NO REGISTER OPEN?
  1389	011440	254 00 0 00 010170 		JRST	ERR		;YES, ERROR
  1390	011441	603 00 0 00 000001 		TLNE	F,(QF)		;ANYTHING TYPED?
  1391						JRST	[PUSHJ P,EVAL	;YES, LOOKUP SYMBOL
  1392							 JRST ERR	;STRANGE TYPEIN, LOSE
  1393	011442	254 00 0 00 016212 			JRST PTCH4]	;FOUND, USE VALUE AS PATCH LOC
  1394	011443	205 04 0 00 777775 		MOVSI	W,-NPSYM	;SETUP TO SCAN PATCH SYMBOLS
  1395	011444	200 05 0 04 011501 	PTCH1:	MOVE	T,PCHSYM(W)	;GET A POSSIBLITY
  1396	011445	202 05 0 00 016614 		MOVEM	T,SYM		;SET IT UP FOR EVAL
  1397	011446	260 17 0 00 010461 		PUSHJ	P,EVAL		;TRY TO FIND VALUE
  1398	011447	253 04 0 00 011444 		 AOBJN W,PTCH1		;NOT FOUND, TRY NEXT SYMBOL
  1399						JUMPGE	W,[MOVEI R,.JBFF	;NONE OF THE SYMBOLS EXIST, USE .JBFF
  1400							HRRZ T,0(R)
  1401	011450	325 04 0 00 016215 			JRST PTCH2]
  1402	011451	201 02 0 02 000001 	PTCH4:	MOVEI	R,1(R)		;POINT TO VALUE WORD
  1403	011452	305 05 0 00 000000*	PTCH2:	CAIGE	T,.JBDA		;HAVE REASONABLE PATCH ADDRESS?
  1404	011453	254 00 0 00 010170 		JRST	ERR		;NO
  1405	011454	552 05 0 00 016507 		HRRZM	T,PTLOC		;YES, SAVE IT
  1406	011455	506 02 0 00 016507 		HRLM	R,PTLOC		;SAVE WHERE IT CAME FROM
  1407	011456	550 02 0 00 016624 		HRRZ	R,LLOCO		;LOC OF OPEN REGISTER
  1408	011457	552 02 0 00 016510 		HRRZM	R,PTLLC		;SAVE IT
  1409	011460	260 17 0 00 013160 		PUSHJ	P,FETCH		;GET CONTENTS
  1410	011461	254 00 0 00 010170 		 JRST ERR		;FETCH FAILED
  1411	011462	202 05 0 00 016511 		MOVEM	T,PTWRD		;SAVE ORIGINAL WORD
  1412	011463	260 17 0 00 013151 		PUSHJ	P,DEPERR	;BE SURE IT CAN BE CHANGED, ERR IF NOT
  1413	011464	603 00 0 00 010000 		TLNE	F,(CCF)		;SAVE BEFORE/AFTER FLAG
  1414	011465	563 00 0 00 016510 		HRROS	PTLLC		;0 MEANS BEFORE, 1 (NEGATIVE) MEANS AFTER
  1415	011466	331 00 0 00 016510 		SKIPL	PTLLC		;PATCH AFTER?
  1416	011467	254 00 0 00 011473 		JRST	PTCH3		;NO
  1417	011470	550 02 0 00 016507 		HRRZ	R,PTLOC		;YES, MOVE INSTRUCTION TO PTLOC NOW
  1418	011471	200 05 0 00 016511 		MOVE	T,PTWRD
  1419	011472	260 17 0 00 013151 		PUSHJ	P,DEPERR	;STORE IT
  1420	011473	260 17 0 00 014313 	PTCH3:	PUSHJ	P,CRF		;OPEN REG AT PTLOC AND PRINT CONTENTS
  1421	011474	550 05 0 00 016507 		HRRZ	T,PTLOC
  1422	011475	260 17 0 00 011141 		PUSHJ	P,LI1
  1423	011476	335 00 0 00 016510 		SKIPGE	PTLLC		;PATCH AFTER?
  1424	011477	260 17 0 00 011163 		PUSHJ	P,LI0		;YES, OPEN SECOND LOC IN PATCH AREA
  1425	011500	263 17 0 00 000000 		POPJ	P,		;DONE FOR NOW
  1426
  1427					;TABLE OF SYMBOLS IDENTIFYING PATCH AREAS
  1428
  1429	011501	000400	615632		PCHSYM:	RADIX50	0,PATCH		;ANOTHER LIKELY POSSIBILITY
  1430	011502	000400	617555			RADIX50	0,PAT..		;USUAL LINK10 SYMBOL
  1431	011503	000000	122126			RADIX50	0,PAT		;TOPS-10 SYMBOL
  1432			000003		NPSYM==.-PCHSYM
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 50
SMDDT	MAC	29-Nov-78 13:26		PATCH COMMAND  -- PATCH BEGIN                                                      SEQ 0044

  1433
  1434					SUBTTL	PATCH COMMAND -- PATCH END
  1435
  1436	011504	336 00 0 00 016507 	PTCHE:	SKIPN	PTLOC		;PATCH IN PROGRESS?
  1437	011505	254 00 0 00 010170 		JRST	ERR		;NO, ERROR
  1438	011506	621 00 0 00 010040 		TLZ	F,(CF+CCF)	;FLUSH FLAGS BEFORE DEPRA
  1439	011507	260 17 0 00 011306 		PUSHJ	P,DEPRA		;STORE LAST WORD IF ANY
  1440	011510	335 00 0 00 016510 		SKIPGE	PTLLC		;PATCH BEFORE?
  1441	011511	254 00 0 00 011517 		JRST	PTCHE1		;NO
  1442	011512	550 02 0 00 016623 		HRRZ	R,LLOC		;YES, MOVE ORIG INSTRUCTION NOW
  1443	011513	350 00 0 00 000002 		AOS	R		;MOVE IT TO NEXT LOC
  1444	011514	200 05 0 00 016511 		MOVE	T,PTWRD
  1445	011515	260 17 0 00 013151 		PUSHJ	P,DEPERR	;STORE IT
  1446	011516	260 17 0 00 011163 		PUSHJ	P,LI0		;OPEN FOR USER TO SEE
  1447	011517	550 02 0 00 016623 	PTCHE1:	HRRZ	R,LLOC		;STORE JUMPA 1,ORIG+1
  1448	011520	350 00 0 00 000002 		AOS	R		; IN NEXT LOC
  1449	011521	550 05 0 00 016510 		HRRZ	T,PTLLC
  1450	011522	270 05 0 00 016220 		ADD	T,[JUMPA 1,1]
  1451	011523	260 17 0 00 013151 		PUSHJ	P,DEPERR
  1452	011524	260 17 0 00 011163 		PUSHJ	P,LI0		;OPEN FOR USER TO SEE
  1453	011525	550 02 0 00 016623 		HRRZ	R,LLOC		;STORE JUMPA 2,ORIG+2
  1454	011526	350 00 0 00 000002 		AOS	R		; IN NEXT LOC
  1455	011527	550 05 0 00 016510 		HRRZ	T,PTLLC
  1456	011530	270 05 0 00 016221 		ADD	T,[JUMPA 2,2]
  1457	011531	260 17 0 00 013151 		PUSHJ	P,DEPERR
  1458	011532	260 17 0 00 011163 		PUSHJ	P,LI0		;OPEN FOR USER TO SEE
  1459	011533	350 05 0 00 016623 		AOS	T,LLOC		;GET NEXT FREE PATCH LOC
  1460	011534	554 02 0 00 016507 		HLRZ	R,PTLOC		;UPDATE WORD THAT PATLOC CAME FROM
  1461	011535	542 05 0 02 000000 		HRRM	T,0(R)
  1462	011536	550 02 0 00 016510 		HRRZ	R,PTLLC		;GET ORIG ADDRESS
  1463	011537	550 05 0 00 016507 		HRRZ	T,PTLOC		;PUT JUMPA PATCH INTO IT
  1464	011540	505 05 0 00 324000 		HRLI	T,(JUMPA 0,)
  1465	011541	260 17 0 00 013151 		PUSHJ	P,DEPERR
  1466	011542	260 17 0 00 014313 		PUSHJ	P,CRF
  1467	011543	550 05 0 00 000002 		HRRZ	T,R		;NOW OPEN ORIG REGISTER FOR USER TO SEE
  1468	011544	260 17 0 00 011141 		PUSHJ	P,LI1
  1469	011545	402 00 0 00 016507 		SETZM	PTLOC		;SAY NO PATCH IN PROGRESS
  1470	011546	263 17 0 00 000000 		POPJ	P,		;DONE
  1471
  1472			010170		SETPAG==ERR
  1473					XLIST
  1474					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 52
SMDDT	MAC	29-Nov-78 13:26		GO AND EXECUTE LOGIC                                                               SEQ 0045

  1475					SUBTTL GO AND EXECUTE LOGIC
  1476
  1477						IFE	FTFILE,<
  1478	011547				CNTRLZ:	IFN	FTEXEC,<
  1479	011547	331 00 0 00 017022 		SKPUSR			;SEE IF USER MODE
  1480	011550	254 00 0 00 010170 		JRST	ERR>		;NO--ERROR  
  1481					;	IFE	FTDEC20,<
  1482	011551	200 05 0 00 016222 		MOVE	T,[CALLI 1,12]	;>	;GET MONRET
  1483	011552	332 00 0 00 017077 		SKIPE	TOPS20
  1484					;	IFN	FTDEC20,<
  1485	011553	200 05 0 00 016223 		MOVE	T,[HALTF]	;>	;HALT THIS FORK
  1486	011554	254 00 0 00 011567 		JRST	XEC0		;GO EXECUTE IT
  1487
  1488	011555	505 05 0 00 254000 	GO:	HRLI	T,(JRST)	;G
  1489	011556	663 00 0 00 000001 		TLOE	F,(QF)		;DID USER TYPE AN ARG TO $G?
  1490	011557	254 00 0 00 011563 		JRST	XEC		;YES, GO DO IT
  1491					XLIST
  1492					LIST
  1493	011560	540 05 0 00 000000*		HRR	T,.JBSA
  1494	011561	606 05 0 00 777777 		TRNN	T,-1		;WAS C(.JBSA) NONZERO?
  1495	011562	254 00 0 00 010170 		JRST	ERR		;NO, SO ERROR
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 53
SMDDT	MAC	29-Nov-78 13:26		GO AND EXECUTE LOGIC                                                               SEQ 0046

  1496
  1497	011563	607 00 0 00 000001 	XEC:	TLNN	F,(QF)		;SKIP IF QUANTITY TYPED
  1498	011564	634 05 0 00 000005 		TDZA	T,T		;MAKE SURE COUNT IS ZERO
  1499	011565	607 05 0 00 777000 		TLNN	T,777000	;SKIP IF VALID INSTRUCTION
  1500	011566	254 00 0 00 011611 		JRST	$X		;GOTO SINGLE STEP EXECUTE ROUTINE
  1501	011567	202 05 0 00 016756 	XEC0:	MOVEM	T,TEM
  1502	011570	260 17 0 00 014313 		PUSHJ	P,CRF
  1503	011571	260 17 0 00 012775 		PUSHJ	P,INSRTB
  1504	011572	402 00 0 00 016651 		SETZM	SKPCT		;INIT SKIP COUNT
  1505	011573	265 05 0 00 012516 		JSP	T,RESTORE
  1506	011574	256 00 0 00 016756 		XCT	TEM
  1507	011575	350 00 0 00 016651 	XEC1:	 AOS SKPCT		;NOTE NOSKIP, SKIP, DOUBLE SKIP
  1508	011576	350 00 0 00 016651 		 AOS SKPCT
  1509	011577	264 00 0 00 016512 		JSR	SAVE		;SAVE CONTEXT
  1510	011600	260 17 0 00 013011 		 PUSHJ P,REMOVB		;REMOVE BRKPTS
  1511	011601	201 13 0 00 000003 		MOVEI	TT,3
  1512	011602	274 13 0 00 016651 		SUB	TT,SKPCT	;COMPUTE AMOUNT OF PC INCREMENT
  1513						IFE	FTDEC20,<
  1514	011603	307 13 0 00 000001 		CAIG	TT,1		;INSTRUCTION SKIPPED?
  1515	011604	254 00 0 00 010010 		JRST	DD1		;NO
  1516	011605	200 06 0 00 016224 		MOVE	W1,[ASCII "<SKP>"]	;MAKE SURE IT IS CLEAR
  1517	011606	260 17 0 00 014266 		PUSHJ	P,TEXT2		; THAT THIS WAS A SKIP
  1518	011607	260 17 0 00 014313 		PUSHJ	P,CRF		;TYPE 2 CR-LFEEDS
  1519	011610	254 00 0 00 010010 		JRST	DD1
  1520						>
  1521						IFN	FTDEC20,<
  1522						MOVEI	W1,"$"
  1523						PUSHJ	P,TEXT		;PRINT $ FOR EACH INCREMENT
  1524						SOJG	TT,.-2
  1525						JRST	DD1>
  1526						>
  1527
  1528						IFN	FTFILE,<
  1529					BCOM==<XEC==<GO==ERR>>
  1530						>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 54
SMDDT	MAC	29-Nov-78 13:26		GO AND EXECUTE LOGIC                                                               SEQ 0047

  1531
  1532					SUBTTL	SINGLE STEP EXECUTE LOGIC
  1533
  1534						IFE	FTFILE,<
  1535
  1536					;$X IS A  FEATURE THAT OPERATES AS FOLLOWS:
  1537					;	$X OR N$X OR $$X OR N$$X, WHERE N .LT. 2^27, WILL DISPATCH TO
  1538					;	THIS CODE.  THE FOLLOWING ACTIONS WILL BE PERFORMED:
  1539					;
  1540					;   $X EXECUTE A SINGLE INSTRUCTION, THEN INCREMENT THE PC.  THE
  1541					;	OPERANDS TO THE INSTRUCTION WILL BE PRINTED OUT AS THEY
  1542					;	EXIST **AFTER** EXECUTION OF THE INSTRUCTION.  AN EXTRA
  1543					;	LINE FEED WILL BE PRINTED IF THE INSTRUCTION SKIPPED OR
  1544					;	JUMPED.  THE NEXT INSTRUCTION WILL THEN BE PRINTED.
  1545					;	$P WILL ALWAYS DO THE RIGHT THING AFTER ANY NUMBER OF $X'S.
  1546					;
  1547					;  N$X REPEAT THE $X CYCLE N TIMES.
  1548					;
  1549					; N$$X SAME AS N$X EXCEPT THAT ALL PRINTOUT IS SUPPRESSED FOR
  1550					;	ALL BUT THE LAST $X CYCLE.
  1551					;
  1552					;  $$X PERFORM A NON-PRINTING $X CYCLE UNTIL THE PC REACHES EITHER
  1553					;	.+1 OR .+2; I.E. UNTIL ONE OF THE NEXT 2 INSTRUCTIONS IS
  1554					;	EXECUTED.  THIS IS USEFUL FOR TREATING A SUBROUTINE CALL
  1555					;	AS A SINGLE INSTRUCTION FOR THE PURPOSES OF $X.
  1556
  1557
  1558					;FLAGS USED IN $X LOGIC ONLY
  1559
  1560			000001			FAC== 1			;SIGNALS AC TO BE PRINTED
  1561			000002			DFAC== 2		;SIGNALS INST THAT USES 2 AC'S
  1562			000004			FLG== 4			;INST MODIFIES FLAGS (JRST,JFCL)
  1563			000010			IMM== 10		;SIGNALS IMMEDIATE MODE INST
  1564			000020			EA== 20			;SIGNALS MEMORY REFERENCE INST
  1565			000040			DEA== 40		;SIGNALS INST THAT REFERENCES 2 MEM LOCS
  1566			000100			FLA== 100		;SIGNALS FLOATING AC OPERAND
  1567			000200			FLE== 200		;SIGNALS FLOATING MEM OPERAND
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 55
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0048

  1568
  1569					;COME HERE FROM $X COMMAND, WITH T SET TO ZERO IF NO QUANTITY WAS
  1570					;   TYPED.
  1571
  1572	011611	202 05 0 00 016502 	$X:	MOVEM	T,XTEM		;STORE REPETITION COUNT
  1573	011612	327 05 0 00 011620 		JUMPG	T,$X00		;JUMP IF POSITIVE COUNT
  1574	011613	550 05 0 00 016552 		HRRZ	T,PROC0		;ZERO, FETCH CURRENT PC
  1575	011614	202 05 0 00 016505 		MOVEM	T,LOCSAV	;AND REMEMBER IT
  1576	011615	476 00 0 00 016502 		SETOM	XTEM		;SET REPETITION COUNT NEGATIVE
  1577	011616	607 00 0 00 010000 		TLNN	F,(CCF)		;$$X WITH NO ARG?
  1578	011617	213 00 0 00 016502 		MOVNS	XTEM		;NO, ONLY $X. TREAT AS 1$X
  1579	011620	260 17 0 00 014313 	$X00:	PUSHJ	P,CRF		;OUTPUT CRLF TO START
  1580
  1581					;HERE ON REPEATED $X CYCLES
  1582
  1583	011621	376 00 0 00 016502 	$X01:	SOSN	XTEM		;DECREMENT AND TEST COUNTER
  1584	011622	621 00 0 00 010000 		TLZ	F,(CCF)		;CLEAR $$ FLAG TO END REPETITIONS
  1585	011623	621 00 0 00 004041 		TLZ	F,(QF!CF!STF)	;TURN OFF QUANT, $, ! FLAGS
  1586	011624	202 00 0 00 016504 		MOVEM	F,FLAGS		;SAVE REGULAR DDT FLAGS
  1587	011625	551 05 0 00 000100 		HRRZI	T,100		;SETUP MAX XCT DEPTH
  1588	011626	552 05 0 00 016477 		HRRZM	T,XCTS
  1589	011627	550 02 0 00 016552 		HRRZ	R,PROC0		;FETCH ADR OF CURRENT INST
  1590	011630	306 02 0 00 011575 		CAIN	R,XEC1		;JUST HIT BREAKPOINT OR DID $X LAST?
  1591	011631	254 00 0 00 010170 		JRST	ERR		;NO, JUST ENTERED DDT, SO ERROR
  1592	011632	331 00 0 00 016502 		SKIPL	XTEM		;INDEFINITE $$X BEING EXECUTED?
  1593	011633	202 02 0 00 016505 		MOVEM	R,LOCSAV	;NO, REMEMBER OLD PC FOR THIS INST
  1594	011634	260 17 0 00 013160 	$X02:	PUSHJ	P,FETCH		;FETCH CURRENT INSTRUCTION
  1595	011635	254 00 0 00 010170 		 JRST ERR		;ERROR
  1596	011636	202 05 0 00 016474 	$XO3:	MOVEM	T,I.NST		;STORE CURRENT INSTRUCTION
  1597	011637	202 05 0 00 016475 		MOVEM	T,I.SM10	;SAVE INCASE SM IOT
  1598	011640	264 00 0 00 016555 		JSR	SWAP		;SWAP TO USER CONTEXT
  1599	011641	202 05 0 00 016506 		MOVEM	T,SAFETY	;SAVE T
  1600	011642	201 05 1 00 016474 		MOVEI	T,@I.NST	;COMPUTE EFFECTIVE ADR OF INST
  1601	011643	137 05 0 00 016225 		DPB	T,[POINT 23,I.NST,35]	;STORE COMPUTED ADR IN CURRENT INST
  1602	011644	552 05 0 00 016501 		HRRZM	T,I.NSTEA	;REMEMBER IT AGAIN
  1603	011645	200 05 0 00 016506 		MOVE	T,SAFETY	;RESTORE T
  1604	011646	264 00 0 00 016555 		JSR	SWAP		;SWAP BACK TO DDT CONTEXT
  1605	011647	135 06 0 00 016226 		LDB	W1,[POINT 4,I.NST,12]	;EXTRACT AC FIELD
  1606	011650	202 06 0 00 016500 		MOVEM	W1,I.NSTAC	;STORE IT AWAY
  1607	011651	205 05 0 00 777000 		MOVSI	T,777000	;MASK FOR OPCODE
  1608	011652	404 05 0 00 016474 		AND	T,I.NST		;FETCH OPCODE
  1609	011653	554 00 0 00 000005 		HLRZ	F,T		;SAVE IN RH FOR LATER
  1610	011654	313 05 0 05 011657 		CAMLE	T,$XTBL(T)	;IN RANGE OF CURRENT TABLE ENTRY?
  1611	011655	344 05 0 00 011654 		AOJA	T,.-1		;NO, KEEP SEARCHING
  1612	011656	254 00 1 05 011657 		JRST	@$XTBL(T)	;YES, DISPATCH
  1613
  1614						IFE	FTEXEC,<
  1615						MONUI== JUSTI		;IF USER DDT, TREAT MONITOR UUOS
  1616						MONUE== JUSTE		;  AS HARDWARE INSTRUCTIONS
  1617						MONUAI==SETI
  1618						MONUAE==SETEA
  1619						MONINI==ERR		;CANNOT TRACE INIT
  1620						>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 56
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0049

  1621
  1622					;OPCODE DISPATCH TABLE.
  1623					;   LH OF EACH ENTRY CONTAINS LARGEST OPCODE COVERED BY THAT ENTRY,
  1624					;   RH CONTAINS DISPATCH ADDRESS.
  1625
  1626	011657	403 00 0 00 012225 	$XTBL:	SETZB	SET		; 400-403  SETZX
  1627	011660	473 00 0 00 012236 		ORCBB	CHECKI		; 404-473  ALL LOGICAL EXCEPT SETX
  1628	011661	477 00 0 00 012225 		SETOB	SET		; 474-477  SETOX
  1629	011662	577 00 0 00 012221 		HLRES	CHEKIS		; 500-577  HALFWORD
  1630	011663	677 00 0 00 012202 		TSON	TESTS		; 600-677  TEST CLASS
  1631	011664	707000	012214			707000,,IOTS		; 700-707  I/O INSTRUCTIONS
  1632	011665	727000	012206			727000,,SMIOTS		; 710-727  SM-10 UNIBUS I/O		*** SM10
  1633	011666	777000	012214			777000,,IOTS		; 730-777  I/O INSTRUCTIONS
  1634	011667	000000	010170			0 ,, ERR		;     000  ALWAYS ILLEGAL
  1635	011670	037000	011773			037000,,USRUUO		; 001-037  USER UUOS
  1636	011671	040 00 0 00 011763 		CALL	MONUAE		;     040  CALL
  1637	011672	041 00 0 00 011771 		INIT	MONINI		;     041  INIT
  1638	011673	047 00 0 00 011757 		CALLI	MONUAI		; 042-047  UNDEFINED AND CALLI
  1639	011674	051 00 0 00 011764 		TTCALL	MONUE		; 050-051  OPEN,TTCALL
  1640	011675	054000	011757			054000,,MONUAI		; 052-054  UNDEFINED
  1641	011676	057 00 0 00 011764 		OUT	MONUE		; 055-057  RENAME,IN,OUT
  1642	011677	061 00 0 00 011760 		STATO	MONUI		; 060-061  SETSTS,STATO
  1643	011700	062 00 0 00 011764 		GETSTS	MONUE		;     062  GETSTS
  1644	011701	065 00 0 00 011760 		OUTBUF	MONUI		; 063-065  STATZ,INBUF,OUTBUF
  1645	011702	067 00 0 00 011764 		OUTPUT	MONUE		; 066-067  INPUT,OUTPUT
  1646	011703	075 00 0 00 011760 		USETO	MONUI		; 070-075  CLOSE,RELEAS,MTAPE,UGETF,USETI,USETO
  1647	011704	077 00 0 00 011764 		ENTER	MONUE		; 076-077  LOOKUP,ENTER
  1648	011705	103000	012241			103000,,SETI		; 100-103  UNDEFINED
  1649	011706	104000	012242			104000,,DOIT		;     104  JSYS
  1650	011707	107000	012241			107000,,SETI		; 105-107  UNDEFINED
  1651	011710	113 00 0 00 012154 		DFDV	DFLOT		; 110-113  DFAD,DFSB,DFMP,DFDV		*** KI10
  1652	011711	117000	012241			117000,,SETI		; 114-117  UNDEFINED
  1653	011712	121 00 0 00 012155 		DMOVN	DMOV		; 120-121  DMOVE,DMOVN			*** KI10
  1654	011713	122 00 0 00 012157 		FIX	FXAFLE		;     122  FIX				*** KI10
  1655	011714	123000	012241			123000,,SETI		;     123  UNDEFINED
  1656	011715	125 00 0 00 012155 		DMOVNM	DMOV		; 124-125  DMOVEM,DMOVNM		*** KI10
  1657	011716	126 00 0 00 012157 		FIXR	FXAFLE		;     126  FIXR				*** KI10
  1658	011717	127 00 0 00 012160 		FLTR	FLAFXE		;     127  FLTR				*** KI10
  1659	011720	130 00 0 00 012003 		UFA	IUFA		;     130  UFA
  1660	011721	131 00 0 00 012004 		DFN	IDFN		;     131  DFN
  1661	011722	132 00 0 00 012120 		FSC	IFSC		;     132  FSC
  1662	011723	133 00 0 00 012177 		IBP	JUSTE		;     133  IBP
  1663	011724	137 00 0 00 012240 		DPB	SETEA		; 134-137  XLDB,XDPB
  1664	011725	177 00 0 00 012006 		FDVRB	FLOAT		; 140-177  FADXX,FSBXX,FMPXX,FDVXX
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 57
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0050

  1665
  1666					;CONTINUATION OF OPCODE DISPATCH TABLE.
  1667
  1668	011726	217 00 0 00 012221 		MOVMS	CHEKIS		; 200-217  MOVXX
  1669	011727	223 00 0 00 012236 		IMULB	CHECKI		; 220-223  IMULX
  1670	011730	237 00 0 00 012233 		DIVB	MULDIV		; 224-237  MULX,XDIVX
  1671	011731	242 00 0 00 012241 		LSH	SETI		; 240-242  ASH,ROT,LSH
  1672	011732	243 00 0 00 012162 		JFFO	IJFFO		;     243  JFFO
  1673	011733	246 00 0 00 012200 		LSHC	DBLI		; 244-246  ASHC,ROTC,LSHC
  1674	011734	247000	012241			247000,,SETI		;     247  UNDEFINED
  1675	011735	250 00 0 00 012240 		EXCH	SETEA		;     250  EXCH
  1676	011736	251 00 0 00 012241 		BLT	SETI		;     251  BLT
  1677	011737	253 00 0 00 012165 		AOBJN	IAOBJ		; 252-253  AOBJP,AOBJN
  1678	011740	254 00 0 00 012015 		JRST	IJRST		;     254  JRST
  1679	011741	255 00 0 00 012166 		JFCL	IJFCL		;     255  JFCL
  1680	011742	256 00 0 00 012057 		XCT	IIXCT		;     256  XCT
  1681	011743	257 00 0 00 012240 		MAP	SETEA		;     257  MAP				*** KI10
  1682	011744	260 00 0 00 012072 		PUSHJ	IIPUSHJ		;     260  PUSHJ
  1683	011745	262 00 0 00 012240 		POP	SETEA		; 261-262  PUSH,POP
  1684	011746	263 00 0 00 012104 		POPJ	IPOPJ		;     263  POPJ
  1685	011747	264 00 0 00 012126 		JSR	I.JSR		;     264  JSR
  1686	011750	265 00 0 00 012143 		JSP	I.JSP		;     265  JSP
  1687	011751	266 00 0 00 012122 		JSA	I.JSA		;     266  JSA
  1688	011752	267 00 0 00 012165 		JRA	IAOBJ		;     267  JRA
  1689	011753	277 00 0 00 012236 		SUBB	CHECKI		; 270-277  ADDX,SUBX
  1690	011754	307 00 0 00 012241 		CAIG	SETI		; 300-307  CAIXX
  1691	011755	317 00 0 00 012240 		CAMG	SETEA		; 310-317  CAMXX
  1692	011756	377 00 0 00 012163 		SOSG	JMPSKP		; 320-377  JUMPXX,SKIPXX,AOJXX,AOSXX,SOJXX,SOSXX
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 58
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0051

  1693
  1694					;MONITOR UUO HANDLER
  1695
  1696						IFN	FTEXEC,<
  1697	011757	661 00 0 00 000001 	MONUAI:	TLO	F,FAC		;REMEMBER TO PRINT AC
  1698	011760	335 00 0 00 017022 	MONUI:	SKPEXC			;SKIP IF EXEC MODE
  1699	011761	254 00 0 00 012217 		JRST	JUSTI		;USER MODE, TREAT UUO AS SINGLE INST
  1700	011762	254 00 0 00 011764 		JRST	MONUE		;EXEC MODE, TRACE THE UUO
  1701
  1702	011763	661 00 0 00 000001 	MONUAE:	TLO	F,FAC		;REMEMBER TO PRINT AC
  1703	011764	335 00 0 00 017022 	MONUE:	SKPEXC			;SKIP IF EXEC MODE
  1704	011765	254 00 0 00 012177 		JRST	JUSTE		;USER MODE, TREAT UUO AS SINGLE INST
  1705	011766	337 00 0 00 017023 		SKPKA			;CAN SIMULATE ON A KA
  1706	011767	254 00 0 00 010170 		JRST	ERR		;PUNT ON A KL OR KI
  1707	011770	254 00 0 00 011773 		JRST	USRUUO		;EXEC MODE, TRACE THE UUO
  1708
  1709	011771	335 00 0 00 017022 	MONINI:	SKPEXC			;SKIP IF EXEC MODE
  1710	011772	254 00 0 00 010170 		JRST	ERR		;USER MODE, CAN'T FOLLOW AN INIT
  1711									;EXEC MODE, TRACE NORMALLY
  1712						>
  1713					;USER UUO HANDLER
  1714
  1715	011773	201 02 0 00 000040 	USRUUO:	MOVEI	R,40		;SETUP JOBUUO
  1716	011774	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE REGULAR FLAGS
  1717	011775	200 05 0 00 016474 		MOVE	T,I.NST		;FETCH INST WITH EFF ADR COMPUTED
  1718	011776	260 17 0 00 013106 		PUSHJ	P,DEPMEM	;STORE USER UUO IN JOBUUO
  1719	011777	254 00 0 00 010170 		 JRST ERR		;ERROR
  1720	012000	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE $X FLAGS
  1721	012001	200 05 0 00 016227 		MOVE	T,[XCT 41]	;PRETEND INSTRUCTION WAS AN XCT
  1722	012002	254 00 0 00 011636 		JRST	$XO3
  1723
  1724					;INTERPRET UFA
  1725
  1726	012003	665 00 0 00 000302 	IUFA:	TLOA	F,FLA+FLE+DFAC	;REMEMBER FLTG PT, USES 2 AC'S
  1727
  1728					;INTERPRET DFN
  1729
  1730	012004	661 00 0 00 000300 	IDFN:	TLO	F,FLA!FLE	;DFN, REMEMBER AC AND E FLOAT
  1731	012005	254 00 0 00 012240 		JRST	SETEA
  1732
  1733					;INTERPRET FLOATING POINT INSTRUCTIONS
  1734
  1735	012006	405 00 0 00 007000 	FLOAT:	ANDI	F,7000		;FLOATING PT, GET MODE
  1736	012007	306 00 0 00 001000 		CAIN	F,1000		;LONG MODE?
  1737	012010	665 00 0 00 000002 		TLOA	F,DFAC		;YES, PRINT 2 AC'S
  1738	012011	302 00 0 00 005000 		CAIE	F,5000		;IMMEDIATE MODE?
  1739	012012	665 00 0 00 000321 		TLOA	F,FLA+FLE+FAC+EA	;NO, PRINT AC AND E BOTH FLOATING
  1740	012013	661 00 0 00 000311 	FLOATI:	TLO	F,FLA+FLE+FAC+IMM	;YES, PRINT AC AND E IMMEDIATE FLTG
  1741	012014	254 00 0 00 012242 		JRST	DOIT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 59
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0052

  1742
  1743					;INTERPRET JRST
  1744
  1745	012015	661 00 0 00 000010 	IJRST:	TLO	F,IMM		;REMEMBER TO PRINT E
  1746	012016	602 06 0 00 000002 		TRNE	W1,2		;IS INSTRUCTION JRSTF?
  1747	012017	661 00 0 00 000004 		TLO	F,FLG		;YES, REMEMBER TO PRINT FLAGS
  1748	012020	260 17 0 00 013160 	IJRST0:	PUSHJ	P,FETCH		;FETCH INST OR INDIRECT WORD
  1749	012021	254 00 0 00 010170 		 JRST ERR		;ERROR
  1750	012022	200 06 0 00 000005 		MOVE	W1,T		;COPY INTO W1
  1751	012023	135 02 0 00 016206 		LDB	R,[POINT 4,T,17]	;LOAD INDEX FIELD
  1752	012024	322 02 0 00 012031 		JUMPE	R,IJRST1	;JUMP IF NO INDEXING TO PERFORM
  1753	012025	200 05 0 02 016732 		MOVE	T,AC0(R)	;FETCH CONTENTS OF INDEX REGISTER
  1754	012026	621 05 0 00 000037 		TLZ	T,(Z @(17))	;CLEAR I AND X FIELDS IN INDEX REG
  1755	012027	271 05 0 06 000000 		ADDI	T,(W1)		;COMPUTE INDEXED ADDRESS
  1756	012030	621 05 0 00 000037 		TLZ	T,(Z @(17))	;CLEAR ANY OVERFLOW
  1757	012031	201 02 0 05 000000 	IJRST1:	MOVEI	R,(T)		;COPY RESULTING ADDRESS
  1758	012032	603 06 0 00 000020 		TLNE	W1,(@)		;INDIRECT?
  1759	012033	254 00 0 00 012020 		JRST	IJRST0		;YES, FOLLOW NEXT LEVEL OF INDIRECTION
  1760
  1761					;LH OF T NOW CONTAINS FLAGS THAT WILL BE RESTORED
  1762
  1763						IFN	FTEXEC!FTMON,<
  1764						IFN	FTEXEC,<	;DEC20 MONITOR DDT DOESN'T HAVE SKPEXC
  1765	012034	335 00 0 00 017022 		SKPEXC			;NOW IN EXEC MODE?
  1766	012035	254 00 0 00 012047 		JRST	IJRST3		;NO, USER MODE
  1767						>
  1768	012036	200 06 0 00 016500 		MOVE	W1,I.NSTAC	;YES, FETCH AC FIELD OF JRST INST
  1769	012037	602 06 0 00 000001 		TRNE	W1,1		;JUMP TO USER MODE?
  1770	012040	254 00 0 00 012044 		JRST	JRSPRC		;YES, CAN'T TRACE. GO DO $P
  1771	012041	602 06 0 00 000002 		TRNE	W1,2		;JRSTF?
  1772	012042	607 05 0 00 010000 		TLNN	T,(1B5)		;YES, GOING TO ENTER USER MODE?
  1773	012043	254 00 0 00 012047 		JRST	IJRST3		;NO TO EITHER, HANDLE NORMALLY
  1774	012044	250 00 0 00 016504 	JRSPRC:	EXCH	F,FLAGS		; $X OPERATION IMPOSSIBLE. RESTORE FLAGS
  1775	012045	621 00 0 00 010001 		TLZ	F,(QF+CCF)	;CLEAR QUANT AND $$ FLAGS
  1776	012046	254 00 0 00 012644 		JRST	PROCD1		;AND EXECUTE $P TO GO INTO USER MODE
  1777						>
  1778
  1779	012047	541 05 0 00 012253 	IJRST3:	HRRI	T,NOSKIP	;MODIFY THE JRST EFFECTIVE ADR
  1780	012050	202 05 0 00 016544 		MOVEM	T,BCOM		;STORE NEW FLAGS,,NOSKIP
  1781	012051	200 05 0 00 016474 		MOVE	T,I.NST		;FETCH INST AGAIN
  1782	012052	542 05 0 00 016552 		HRRM	T,PROC0		;STORE EFF ADR AS NEW PC
  1783	012053	541 05 0 00 016544 		HRRI	T,BCOM		;TURN INTO JRST @BCOM
  1784	012054	661 05 0 00 000020 		TLO	T,(@)
  1785	012055	202 05 0 00 016474 		MOVEM	T,I.NST		;AND STORE
  1786	012056	254 00 0 00 012242 		JRST	DOIT		;DO IT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 60
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0053

  1787
  1788					;INTERPRET XCT
  1789
  1790	012057				IIXCT:
  1791						IFN	FTEXEC!FTMON,<
  1792	012057	137 06 0 00 016230 		DPB	W1,[POINT 4,I.XCT,12]>	; USE IN XCT PAGED
  1793	012060	200 00 0 00 016504 		MOVE	F,FLAGS		;GET BACK NORMAL DDT FLAGS
  1794	012061	377 00 0 00 016477 		SOSG	XCTS		;CHECK XCT COUNTER
  1795	012062	254 00 0 00 010170 		JRST	ERR		;ERROR - DEPTH EXCEEDED
  1796	012063	603 00 0 00 010000 		TLNE	F,(CCF)		;$$X?
  1797	012064	254 00 0 00 012070 		JRST	IIXCT1		;YES, DON'T PRINT ANYTHING
  1798	012065	550 05 0 00 016501 		HRRZ	T,I.NSTEA	;GET EFF ADR OF XCT
  1799	012066	260 17 0 00 012376 		PUSHJ	P,PINST		;PRINT INST BEING XCT'ED
  1800	012067	260 17 0 00 014313 		PUSHJ	P,CRF		;OUTPUT CRLF AFTER INST
  1801	012070	550 02 0 00 016501 	IIXCT1:	HRRZ	R,I.NSTEA	;GET EFF ADR OF XCT AGAIN
  1802	012071	254 00 0 00 011634 		JRST	$X02		;PROCESS EXECUTED INST
  1803
  1804					;INTERPRET PUSHJ
  1805
  1806	012072	350 05 0 00 016552 	IIPUSHJ:AOS T,PROC0		;GET CURRENT PC +1
  1807	012073	500 05 0 00 016655 		HLL	T,SAVPI		;PUT FLAGS IN LH
  1808	012074	202 05 0 00 016503 		MOVEM	T,I.NSTPC	;STORE AWAY TO BE STACKED
  1809	012075	205 05 0 00 020000 		MOVSI	T,(1B4)		;CLEAR BIS FLAG IN NEW PC WORD
  1810	012076	412 05 0 00 016655 		ANDCAM	T,SAVPI
  1811	012077	370 05 0 00 016474 		SOS	T,I.NST		;GET EFF ADR OF PUSHJ, -1 TO FOOL DOIT
  1812	012100	542 05 0 00 016552 		HRRM	T,PROC0		;STORE NEW PC -1
  1813	012101	515 05 0 00 001000 		HRLZI	T,(<PUSH>-<PUSHJ>)	;WANT TO TURN PUSHJ INTO A PUSH
  1814	012102	137 05 0 00 016231 		DPB	T,[POINT 5,I.NST,17]	;CLEAR I AND AC FIELD
  1815	012103	254 00 0 00 012114 		JRST	IPOPJ2		;REST OF CODE COMMON WITH POPJ
  1816
  1817					;INTERPRET POPJ
  1818
  1819	012104	250 00 0 00 016504 	IPOPJ:	EXCH	F,FLAGS		;POPJ, RESTORE NORMAL DDT FLAGS
  1820	012105	550 02 0 06 016732 		HRRZ	R,AC0(W1)	;FETCH CONTENTS OF CORRECT USER AC
  1821	012106	260 17 0 00 013160 		PUSHJ	P,FETCH		;FETCH PCWORD IT POINTS TO
  1822	012107	254 00 0 00 010170 		 JRST ERR		;ERROR
  1823	012110	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE $X FLAGS
  1824	012111	541 05 0 05 777777 		HRRI	T,-1(T)		;DECREMENT PC TO FOOL CODE AT DOIT
  1825	012112	542 05 0 00 016552 		HRRM	T,PROC0		;STORE AS CURRENT PC
  1826	012113	515 05 0 00 777000 		HRLZI	T,(<POP>-<POPJ>)	;SETUP TO TURN POPJ INTO POP
  1827
  1828					;COMMON CODE FOR PUSHJ, POPJ
  1829
  1830	012114	272 05 0 00 016474 	IPOPJ2:	ADDM	T,I.NST		;TURN PUSHJ INTO PUSH OR POPJ INTO POP
  1831	012115	551 05 0 00 016503 		HRRZI	T,I.NSTPC	;SETUP ADR OF PC WORD FOR PUSHJ
  1832	012116	542 05 0 00 016474 		HRRM	T,I.NST
  1833	012117	665 00 0 00 000001 		TLOA	F,FAC		;REMEMBER TO PRINT AC
  1834
  1835					;INTERPRET FSC
  1836
  1837	012120	661 00 0 00 000111 	IFSC:	TLO	F,FAC+FLA+IMM	;FLOATING AC, FIXED IMMEDIATE E
  1838	012121	254 00 0 00 012242 		JRST	DOIT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 61
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0054

  1839
  1840					;INTERPRET JSA
  1841
  1842	012122	350 05 0 00 016552 	I.JSA:	AOS	T,PROC0		;JSA, SETUP RETURN PC
  1843	012123	504 05 0 00 016501 		HRL	T,I.NSTEA	;PUT EFF ADR IN LH LIKE JSA DOES
  1844	012124	250 05 0 06 016732 		EXCH	T,AC0(W1)	;STORE IN USER AC, GET OLD CONTENTS
  1845	012125	254 00 0 00 012133 		JRST	I.JSR2		;STORE OLD CONTENTS LIKE JSR, THEN JUMP
  1846
  1847					;INTERPRET JSR
  1848
  1849	012126	350 05 0 00 016552 	I.JSR:	AOS	T,PROC0		;JSR, GET CURRENT PC
  1850	012127	500 05 0 00 016655 		HLL	T,SAVPI		;SETUP LH OF PC WORD
  1851	012130	661 00 0 00 000001 		TLO	F,FAC		;REMEMBER NOT TO PRINT AC FIELD
  1852	012131	205 06 0 00 020000 		MOVSI	W1,(1B4)	;CLEAR BIS FLAG IN NEW PC WORD
  1853	012132	412 06 0 00 016655 		ANDCAM	W1,SAVPI
  1854	012133	661 00 0 00 000020 	I.JSR2:	TLO	F,EA		;PRINT E NORMALLY
  1855	012134	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE NORMAL DDT FLAGS
  1856	012135	550 02 0 00 016501 		HRRZ	R,I.NSTEA	;FETCH EFF ADR OF JSR OR JSA
  1857	012136	260 17 0 00 013106 		PUSHJ	P,DEPMEM	;STORE PC WORD
  1858	012137	254 00 0 00 010170 		 JRST ERR		;ERROR
  1859	012140	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE $X FLAGS
  1860	012141	550 05 0 00 016501 		HRRZ	T,I.NSTEA	;GET EFF ADR AGAIN
  1861	012142	344 05 0 00 012151 		AOJA	T,I.JSR4	;INC PAST STORED PC WORD
  1862
  1863					;INTERPRET JSP
  1864
  1865	012143	350 05 0 00 016552 	I.JSP:	AOS	T,PROC0		;JSP, SETUP RETURN PC
  1866	012144	500 05 0 00 016655 		HLL	T,SAVPI		;SETUP LH OF PC WORD
  1867	012145	202 05 0 06 016732 		MOVEM	T,AC0(W1)	;STORE IN USER AC
  1868	012146	205 05 0 00 020000 		MOVSI	T,(1B4)		;CLEAR BIS FLAG IN NEW PC WORD
  1869	012147	412 05 0 00 016655 		ANDCAM	T,SAVPI
  1870	012150	550 05 0 00 016501 		HRRZ	T,I.NSTEA	;GET BACK EFF ADR
  1871	012151	542 05 0 00 016552 	I.JSR4:	HRRM	T,PROC0		;STORE NEW PC
  1872	012152	641 00 0 00 000001 		TLC	F,FAC		;REMEMBER TO PRINT AC
  1873	012153	254 00 0 00 012256 		JRST	TELL		;GO PERFORM PRINTOUT
  1874
  1875
  1876					;INTERPRET KI10 INSTRUCTIONS
  1877
  1878	012154	661 00 0 00 000300 	DFLOT:	TLO	F,FLA+FLE	;REMEMBER THAT AC AND E ARE FLOATING
  1879	012155	661 00 0 00 000042 	DMOV:	TLO	F,DFAC+DEA	;REMEMBER AC AND E BOTH DOUBLE
  1880	012156	254 00 0 00 012240 		JRST	SETEA
  1881
  1882	012157	665 00 0 00 000200 	FXAFLE:	TLOA	F,FLE		;REMEMBER THAT E FLOATS (FIX,FIXR)
  1883	012160	661 00 0 00 000100 	FLAFXE:	TLO	F,FLA		;REMEMBER THAT AC FLAOATS (FLTR)
  1884	012161	254 00 0 00 012240 		JRST	SETEA
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 62
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0055

  1885
  1886					;INTERPRET JFFO
  1887
  1888	012162	661 00 0 00 000002 	IJFFO:	TLO	F,DFAC		;REMEMBER JFFO USES 2 AC'S
  1889
  1890					;INTERPRET JUMP AND SKIP INSTRUCTIONS
  1891
  1892	012163	602 00 0 00 010000 	JMPSKP:	TRNE	F,10000		;JUMP/SKIP, WHICH IS IT?
  1893	012164	254 00 0 00 012176 		JRST	SKP		;SKIP CLASS
  1894
  1895					;INTERPRET AOBJN AND AOBJP
  1896
  1897	012165	665 00 0 00 000011 	IAOBJ:	TLOA	F,FAC+IMM	;HANDLE AS IMMEDIATE MODE INST WITH AC
  1898
  1899					;INTERPRET JFCL
  1900
  1901	012166	661 00 0 00 000004 	IJFCL:	TLO	F,FLG		;REMEMBER TO PRINT FLAGS
  1902	012167	201 05 0 00 012172 		MOVEI	T,JMP		;JUMP CLASS OR AOBJ, COME BACK TO $X
  1903	012170	542 05 0 00 016474 		HRRM	T,I.NST		;STORE MODIFIED INST
  1904	012171	254 00 0 00 012242 		JRST	DOIT		;GO EXECUTE CONDITIONAL INST
  1905
  1906					;HERE AFTER EXECUTING CONDITIONAL JUMP INSTRUCTION THAT ACTUALLY
  1907					;   DOES JUMP
  1908
  1909	012172	250 05 0 00 016501 	JMP:	EXCH	T,I.NSTEA	;SAVE T, GET EFF ADR OF JUMP
  1910	012173	542 05 0 00 016552 		HRRM	T,PROC0		;STORE EFF ADR AS NEW PC
  1911	012174	250 05 0 00 016501 		EXCH	T,I.NSTEA
  1912	012175	254 00 0 00 012253 		JRST	NOSKIP		;NOW DO PRINTOUT
  1913
  1914					;HERE FOR ALL SKIP INSTRUCTIONS
  1915
  1916	012176	326 06 0 00 012240 	SKP:	JUMPN	W1,SETEA	;SKIP CLASS - AC FIELD ZERO?
  1917	012177	665 00 0 00 000020 	JUSTE:	TLOA	F,EA		;YES, JUST PRINT E
  1918
  1919					;INTERPRET SHIFT COMBINED INSTRUCTIONS
  1920
  1921	012200	661 00 0 00 000013 	DBLI:	TLO	F,FAC+DFAC+IMM	;REMEMBER 2 AC'S USED, IMMEDIATE
  1922	012201	254 00 0 00 012242 		JRST	DOIT		;EXECUTE NORMALLY
  1923
  1924					;INTERPRET TEST CLASS INSTRUCTIONS
  1925
  1926	012202	606 00 0 00 010000 	TESTS:	TRNN	F,10000		;SKIP ON TD OR TS BUT NOT ON TR OR TL
  1927	012203	665 00 0 00 000011 		TLOA	F,FAC+IMM	;IMMEDIATE MODE
  1928	012204	661 00 0 00 000021 		TLO	F,FAC+EA	;NORMAL MODE
  1929	012205	254 00 0 00 012242 		JRST	DOIT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 63
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0056

  1930
  1931					;I/O INSTRUCTIONS
  1932
  1933	012206	661 00 0 00 000001 	SMIOTS:	TLO	F,FAC		;TREAT SM-10 UNIBUS I/O AS AC
  1934	012207	261 17 0 00 000000 		PUSH	P,F
  1935	012210	200 00 0 00 016475 		MOVE	F,I.SM10
  1936	012211	202 00 0 00 016474 		MOVEM	F,I.NST
  1937	012212	262 17 0 00 000000 		POP	P,F
  1938	012213	254 00 0 00 012242 		JRST	DOIT
  1939
  1940	012214	602 06 0 00 000004 	IOTS:	TRNE	W1,4		;SKIP IF BLKI,DATAI,BLKO,DATAO
  1941	012215	306 06 0 00 000005 		CAIN	W1,5		;SKIP IF NOT CONI
  1942	012216	665 00 0 00 000020 		TLOA	F,EA		;MEM REF INSTRUCTION
  1943	012217	661 00 0 00 000010 	JUSTI:	TLO	F,IMM		;IMMEDIATE INST
  1944	012220	254 00 0 00 012242 		JRST	DOIT
  1945
  1946					;ALL PATHS CONVERGE HERE
  1947
  1948	012221	640 00 0 00 003000 	CHEKIS:	TRC	F,3000		;HERE TO TEST FOR IMMEDIATE OR SELF MODE
  1949	012222	642 00 0 00 003000 		TRCE	F,3000		;SKIP IF SELF MODE
  1950	012223	254 00 0 00 012236 		JRST	CHECKI		;NO, CHECK IMMEDIATE
  1951	012224	254 00 0 00 012176 		JRST	SKP		;YES, GO TEST FOR NONZERO AC FIELD
  1952	012225	405 00 0 00 003000 	SET:	ANDI	F,3000		;HERE FOR SETZX,SETOX
  1953	012226	302 00 0 00 002000 		CAIE	F,2000		;SETZM,SETOM?
  1954	012227	661 00 0 00 000001 		TLO	F,FAC		;NO, AC IS ALWAYS AFFECTED
  1955	012230	602 00 0 00 002000 		TRNE	F,2000		;SETZM,SETZB,SETOM,SETOB?
  1956	012231	661 00 0 00 000020 		TLO	F,EA		;YES, MEM IS ALWAYS AFFECTED
  1957	012232	254 00 0 00 012242 		JRST	DOIT
  1958
  1959					;FIXED POINT MULTIPLY AND DIVIDE (NOT INCLUDING IMULX)
  1960
  1961	012233	405 00 0 00 003000 	MULDIV:	ANDI	F,3000		;MASK MODE BITS
  1962	012234	302 00 0 00 002000 		CAIE	F,2000		;TO MEMORY ONLY?
  1963	012235	661 00 0 00 000002 		TLO	F,DFAC		;NO, INST USES 2 AC'S
  1964	012236	602 00 0 00 001000 	CHECKI:	TRNE	F,1000		;TEST FOR IMMEDIATE MODE INST
  1965	012237	602 00 0 00 002000 		TRNE	F,2000
  1966	012240	665 00 0 00 000021 	SETEA:	TLOA	F,FAC+EA	;MEM REF INSTRUCTION
  1967	012241	661 00 0 00 000011 	SETI:	TLO	F,FAC+IMM	;IMMEDIATE MODE INSTRUCTION
  1968	012242	250 00 0 00 016504 	DOIT:	EXCH	F,FLAGS		;RESTORE NORMAL DDT FLAGS
  1969	012243	260 17 0 00 014735 		PUSHJ	P,TTYLEV	;RESTORE STATUS OF CTY (EXEC MODE)
  1970	012244	264 00 0 00 016555 		JSR	SWAP		;SWAP TO USER CONTEXT
  1971	012245	256 00 0 00 016473 		XCT	I.XCT		;EXECUTE THE INSTRUCTION (IF IN EXEC MODE
  1972									; ON A KI10 THIS MAY BE EXECUTIVE XCT)
  1973	012246	254 00 0 00 012252 		 JRST IXS1		;NO SKIP, INCREMENT PC ONCE
  1974	012247	254 00 0 00 012251 		 JRST IXS2		;SKIP, INCREMENT PC TWICE
  1975	012250	350 00 0 00 016552 		AOS	PROC0		;DOUBLE SKIP, INCREMENT PC THRICE
  1976	012251	350 00 0 00 016552 	IXS2:	AOS	PROC0
  1977	012252	350 00 0 00 016552 	IXS1:	AOS	PROC0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 64
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0057

  1978
  1979					;HERE AFTER SIMULATING OR EXECUTING INSTRUCTION.
  1980					;  PERFORM REQUIRED PRINTOUT.
  1981
  1982	012253	264 00 0 00 016555 	NOSKIP:	JSR	SWAP		;RESTORE DDT CONTEXT
  1983	012254	260 17 0 00 014663 		PUSHJ	P,TTYRET	;RESTORE DDT TTY MODES
  1984	012255	254 00 0 00 012257 		JRST	.+2
  1985	012256	250 00 0 00 016504 	TELL:	EXCH	F,FLAGS		;GET DDT'S FLAGS
  1986						IFN	FTEXEC!FTMON,<
  1987	012257	201 05 0 00 000000 		MOVEI	T,0		;CLEAR THE AC FIELD OF I.XCT
  1988	012260	137 05 0 00 016230 		DPB	T,[POINT 4,I.XCT,12]	;SO NEXT INSTRUCTION HAPPENS OK
  1989						>
  1990	012261	603 00 0 00 010000 		TLNE	F,(CCF)		;IF $$X, DON'T PRINT ANYTHING
  1991	012262	254 00 0 00 012311 		JRST	NXTIT
  1992	012263	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE $X'S FLAGS
  1993	012264	261 17 0 00 000010 		PUSH	P,SCH		;SAVE CURRENT OUTPUT MODE
  1994	012265	603 00 0 00 000100 		TLNE	F,FLA		;FLOATING AC?
  1995	012266	201 10 0 00 014153 		MOVEI	SCH,TFLOT	;YES, SETUP TO OUTPUT IN FLOATING PT
  1996	012267	603 00 0 00 000001 		TLNE	F,FAC		;AC TO BE PRINTED?
  1997	012270	260 17 0 00 012351 		PUSHJ	P,FAC0		;YES, DO IT
  1998	012271	603 00 0 00 000002 		TLNE	F,DFAC		;INST USE 2 AC'S?
  1999	012272	260 17 0 00 012347 		PUSHJ	P,DBL0		;YES, PRINT LOW-ORDER AC
  2000	012273	603 00 0 00 000004 		TLNE	F,FLG		;INSTRUCTION ACCESS THE FLAGS?
  2001	012274	260 17 0 00 012353 		PUSHJ	P,FLG0		;YES, PRINT FLAGS
  2002	012275	200 10 0 17 000000 		MOVE	SCH,(P)		;RESTORE OLD MODE
  2003	012276	603 00 0 00 000200 		TLNE	F,FLE		;FLOATING MEMORY OPERAND?
  2004	012277	201 10 0 00 014153 		MOVEI	SCH,TFLOT	;YES, SETUP FLTG OUTPUT
  2005	012300	603 00 0 00 000010 		TLNE	F,IMM		;IMMEDIATE MODE?
  2006	012301	260 17 0 00 012356 		PUSHJ	P,IMM0		;YES, JUST PRINT E
  2007	012302	603 00 0 00 000020 		TLNE	F,EA		;MEM REF INST?
  2008	012303	260 17 0 00 012366 		PUSHJ	P,EA0		;YES, PRINT C(E)
  2009	012304	603 00 0 00 000040 		TLNE	F,DEA		;DOUBLE-WORD MEM OPERAND?
  2010	012305	260 17 0 00 012365 		PUSHJ	P,DEA0		;YES, OUTPUT 2ND WORD
  2011	012306	262 17 0 00 000010 		POP	P,SCH		;RESTORE CURRENT OUTPUT MODE
  2012	012307	250 00 0 00 016504 		EXCH	F,FLAGS		;RESTORE DDT FLAGS
  2013	012310	260 17 0 00 014313 		PUSHJ	P,CRF		;OUTPUT CRLF
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 65
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0058

  2014
  2015					;NOW TEST WHETHER TO CONTINUE, AND PRINT NEXT INST IF REQUIRED.
  2016
  2017	012311	550 05 0 00 016552 	NXTIT:	HRRZ	T,PROC0		;FETCH NEW PC
  2018	012312	201 06 0 05 000001 		MOVEI	W1,1(T)		;COMPUTE PC+1
  2019	012313	552 06 0 00 016544 		HRRZM	W1,BCOM		;STORE FOR $P
  2020	012314	550 06 0 00 016505 		HRRZ	W1,LOCSAV	;FETCH OLD PC
  2021	012315	331 00 0 00 016502 		SKIPL	XTEM		;INDEFINITE $$X IN PROGRESS?
  2022	012316	254 00 0 00 012322 		JRST	NXT0		;NO
  2023	012317	302 05 0 06 000001 		CAIE	T,1(W1)		;YES, ARE WE NOW AT OLD PC +1?
  2024	012320	306 05 0 06 000002 		CAIN	T,2(W1)		;  OR +2?
  2025	012321	254 00 0 00 012324 		JRST	$XQUIT		;YES, STOP ITERATION NOW
  2026	012322	260 17 0 00 014642 	NXT0:	PUSHJ	P,LISTEN	;NO, HAS USER TYPED ANYTHING?
  2027	012323	254 00 0 00 012326 		 JRST NXT1		;NO, CONTINUE
  2028	012324	402 00 0 00 016502 	$XQUIT:	SETZM	XTEM		;YES, STOP ITERATION BY ZEROING COUNTER
  2029	012325	621 00 0 00 010000 		TLZ	F,(CCF)		;  AND CLEARING CONTROL FLAG
  2030	012326	603 00 0 00 010000 	NXT1:	TLNE	F,(CCF)		;$$ STILL IN EFFECT?
  2031	012327	254 00 0 00 012344 		JRST	NXT2		;YES, DON'T PRINT ANYTHING
  2032	012330	550 05 0 00 016552 		HRRZ	T,PROC0		;NO, GET CURRENT PC AGAIN
  2033	012331	306 05 0 06 000001 		CAIN	T,1(W1)		;DOES IT EQUAL OLD PC +1?
  2034	012332	254 00 0 00 012340 		JRST	NXT1A		;YES--JUST CONTINUE
  2035	012333	306 05 0 06 000002 		CAIN	T,2(W1)		;SKIP OR JUMP
  2036	012334	334 06 0 00 016224 		SKIPA	W1,[ASCII "<SKP>"]	;SKIP
  2037	012335	200 06 0 00 016232 		MOVE	W1,[ASCII "<JMP>"]	;JUMP
  2038	012336	260 17 0 00 014266 		PUSHJ	P,TEXT2		;SAY SKIP OR JUMP
  2039	012337	260 17 0 00 014313 		PUSHJ	P,CRF		;ADD CRLF
  2040	012340	550 05 0 00 016552 	NXT1A:	HRRZ	T,PROC0		;FETCH CURRENT PC AGAIN
  2041	012341	260 17 0 00 012376 		PUSHJ	P,PINST		;PRINT INSTRUCTION ABOUT TO BE EXECUTED
  2042	012342	332 00 0 00 016502 		SKIPE	XTEM		;ARE WE STILL LOOPING?
  2043	012343	260 17 0 00 014313 		PUSHJ	P,CRF		;YES, PRINT CRLF AFTER INST
  2044	012344	332 00 0 00 016502 	NXT2:	SKIPE	XTEM		;SKIP IF REPEAT COUNTER IS ZERO
  2045	012345	254 00 0 00 011621 		JRST	$X01		;NONZERO, REPEAT $X CYCLE AGAIN
  2046	012346	254 00 0 00 014714 		JRST	TTYCLR		;ZERO, FLUSH ANY WAITING INPUT CHARACTERS
  2047									;   AND RETURN FROM $X INSTRUCTION
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 66
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0059

  2048
  2049					;OUTPUT ROUTINES
  2050
  2051					;ROUTINE TO PRINT SECOND ACCUMULATOR
  2052
  2053	012347	350 05 0 00 016500 	DBL0:	AOS	T,I.NSTAC	;INCREMENT AC NUMBER
  2054	012350	624 05 0 00 777760 		TRZA	T,777760	;ENSURE 17 WRAPS AROUND TO 0
  2055
  2056					;ROUTINE TO PRINT CONTENTS OF ACCUMULATOR
  2057
  2058	012351	200 05 0 00 016500 	FAC0:	MOVE	T,I.NSTAC	;FETCH AC NUMBER
  2059	012352	254 00 0 00 012367 		JRST	EA2
  2060
  2061					;ROUTINE TO PRINT THE FLAGS
  2062
  2063	012353	260 17 0 00 014316 	FLG0:	PUSHJ	P,LCT		;PRINT TAB
  2064	012354	554 05 0 00 016655 		HLRZ	T,SAVPI		;GET LH OF PC WORD
  2065	012355	254 00 0 00 012362 		JRST	IMM1		;PRINT FLAGS
  2066
  2067					;ROUTINE TO PRINT JUST E FOR AN IMMEDIATE MODE INSTRUCTION
  2068
  2069	012356	260 17 0 00 014316 	IMM0:	PUSHJ	P,LCT		;PRINT TAB
  2070	012357	550 05 0 00 016501 		HRRZ	T,I.NSTEA	;FETCH E
  2071	012360	603 00 0 00 000200 		TLNE	F,FLE		;FLTG PT MEM OPERAND?
  2072	012361	204 05 0 00 000005 		MOVS	T,T		;YES, IMMEDIATE SWAPS HALVES
  2073	012362	250 00 0 00 016504 	IMM1:	EXCH	F,FLAGS		;RESTORE DDT FLAGS
  2074	012363	260 17 0 00 013462 		PUSHJ	P,CONSYM	;OUTPUT CONTENTS OF T
  2075	012364	254 00 0 00 012374 		JRST	EA6		;RESTORE $X FLAGS AND RETURN
  2076
  2077					;ROUTINE TO PRINT 2ND MEMORY OPERAND
  2078
  2079	012365	350 00 0 00 016501 	DEA0:	AOS	I.NSTEA		;INC TO ADR OF 2ND OPERAND
  2080
  2081					;ROUTINE TO PRINT MEMORY OPERAND
  2082
  2083	012366	200 05 0 00 016501 	EA0:	MOVE	T,I.NSTEA	;FETCH ADR OF MEM OPERAND
  2084	012367	250 00 0 00 016504 	EA2:	EXCH	F,FLAGS		;HERE FROM DBL0,FAC0
  2085	012370	261 17 0 00 000005 		PUSH	P,T		;SAVE ARG
  2086	012371	260 17 0 00 014316 		PUSHJ	P,LCT		;OUTPUT TAB
  2087	012372	262 17 0 00 000005 		POP	P,T		;RESTORE ADR OF LOC TO BE PRINTED
  2088	012373	260 17 0 00 011141 		PUSHJ	P,LI1		;PRINT ADR/ CONTENTS
  2089	012374	250 00 0 00 016504 	EA6:	EXCH	F,FLAGS		;RESTORE $X FLAGS
  2090	012375	263 17 0 00 000000 		POPJ	P,
  2091
  2092					;ROUTINE TO PRINT INSTRUCTION ALWAYS IN SYMBOLIC DESPITE CURRENT MODE
  2093
  2094	012376	261 17 0 00 000010 	PINST:	PUSH	P,SCH		;SAVE CURRENT OUTPUT MODE
  2095	012377	201 10 0 00 013467 		MOVEI	SCH,PIN		;SET TO PRINT SYMBOLIC INST MODE
  2096	012400	260 17 0 00 011141 		PUSHJ	P,LI1		;OUTPUT INST
  2097	012401	262 17 0 00 000010 		POP	P,SCH		;RESTORE CURRENT MODE
  2098	012402	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 67
SMDDT	MAC	29-Nov-78 13:26		SINGLE STEP EXECUTE LOGIC                                                          SEQ 0060

  2099
  2100					;ROUTINE TO SWAP BETWEEN DDT AND USER CONTEXTS.
  2101					;   AC'S AND FLAGS ARE SWAPPED, BUT BREAKPOINTS AND OTHER STUFF
  2102					;   ARE NOT TOUCHED, SINCE CONTROL IS EXPECTED TO RETURN TO DDT SOON.
  2103
  2104	012403	250 00 0 00 016732 	SWAPG:	EXCH	0,AC0		;SWAP AC 0
  2105	012404	202 00 0 00 016476 		MOVEM	0,SAV0		;SAVE 0 FOR WORK
  2106	012405	510 00 0 00 016555 		HLLZ	0,SWAP		;GET CURRENT FLAGS
  2107	012406	544 00 0 00 016655 		HLR	0,SAVPI		;GET SAVED FLAGS
  2108	012407	506 00 0 00 016555 		HRLM	0,SWAP		;SWITCH FLAGS
  2109	012410	502 00 0 00 016655 		HLLM	0,SAVPI
  2110	012411	200 00 0 00 016233 		MOVE	0,[EXCH 1,AC0+1]	;SETUP INST FOR SWAPPING AC'S
  2111	012412	256 00 0 00 000000 	SWAPL:	XCT	0		;SWAP AN AC
  2112	012413	270 00 0 00 016234 		ADD	0,[Z 1,1]	;INC AC AND MEM FIELDS
  2113	012414	607 00 0 00 001000 		TLNN	0,1000		;AC 20 REACHED?
  2114	012415	254 00 0 00 012412 		JRST	SWAPL		;NO, LOOP
  2115	012416	200 00 0 00 016476 		MOVE	0,SAV0		;YES, RESTORE SAVED AC
  2116	012417	254 02 1 00 016555 		JRSTF	@SWAP		;RETURN, RESTORING NEW FLAGS
  2117						>			;END IFE FTFILE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 68
SMDDT	MAC	29-Nov-78 13:26		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0061

  2118					SUBTTL ENTER AND LEAVE DDT LOGIC
  2119
  2120					;SKIPS IF CONTEXT ALREADY SAVED
  2121
  2122						IFE	FTFILE,<
  2123	012420				SAVEG:				;SAVE THE ACS AND PI SYSTEM
  2124						IFN	FTEXEC,<
  2125					;	SKIPN	TRCON		;TRACE FACILITY IN USE?
  2126					;	JRST	SAVEG1		;NO
  2127					;	DATAI	PI,TRCDMP	;YES, DUMP CURRENT POINTER
  2128					;	DATAO	PI,[0]		;TURN IT OFF
  2129	012420				SAVEG1:
  2130	012420	202 00 0 00 016756 		MOVEM	0,TEM
  2131	012421	402 00 0 00 017077 		SETZM	TOPS20#
  2132	012422	265 00 0 00 012423 		JSP	0,.+1
  2133	012423	607 00 0 00 010000 		TLNN	0,(1B5)
  2134	012424	254 00 0 00 012432 		JRST	.+6
  2135	012425	200 00 0 00 016235 		MOVE	[112,,11]
  2136	012426	047 00 0 00 000041 		GETTAB
  2137	012427	310 00 0 00 000000 		CAM
  2138	012430	306 00 0 00 040000 		CAIN	40000
  2139	012431	476 00 0 00 017077 		SETOM	TOPS20
  2140	012432	200 00 0 00 016756 		MOVE	0,TEM
  2141	012433	202 05 0 00 016756 		MOVEM	T,TEM		;FREE AN AC
  2142					;	IFE	FTDEC20,<
  2143	012434	332 00 0 00 017077 		SKIPE	TOPS20
  2144	012435	254 00 0 00 012442 		JRST	SAVEG2
  2145	012436	265 05 0 00 012437 		JSP	T,.+1		;GET USR FLAG
  2146	012437	430 05 0 00 016655 		XOR	T,SAVPI		;COMPARE WITH OLD USR FLAG(LAST DDT EXIT)
  2147	012440	603 05 0 00 010000 		TLNE	T,(1B5)		;SAME?
  2148	012441	402 00 0 00 016755 		SETZM	SARS	;>		;NO, SAVE AC'S AND PC FOR EXIT
  2149									; SO EXEC/USER MODE FLOP RESTORED AS ENTERED
  2150	012442	265 05 0 00 012443 	SAVEG2:	JSP	T,.+1		;GET PC WORD AGAIN
  2151	012443	241 05 0 00 000005 		ROT	T,5		;ROTATE USER MODE BIT TO SIGN
  2152	012444	202 05 0 00 017022 		MOVEM	T,USRFLG	; AND SAVE IT
  2153	012445	200 05 0 00 016756 		MOVE	T,TEM		;RESTORE THE AC 
  2154						>			;END FTEXEC
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 69
SMDDT	MAC	29-Nov-78 13:26		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0062

  2155					;NOW SAVE USER STATUSES AND MODES AND SETUP DDT MODES.  DON'T SAVE
  2156					;MODES IF ALREADY SAVED (I.E. WHEN REENTERING DDT), BUT DO SET DDT
  2157					;MODES IN CASE THEY WERE CHANGED.
  2158
  2159	012446	332 00 0 00 016755 		SKIPE	SARS		;ALREADY SAVED?
  2160	012447	350 00 0 00 016512 		AOS	SAVE		;YES, SKIP RETURN
  2161						IFN	FTEXEC,<
  2162	012450	335 00 0 00 017022 		SKPEXC
  2163	012451	254 00 0 00 012457 		JRST	SAV11
  2164	012452	332 00 0 00 016755 		SKIPE	SARS		;ALREADY SAVED?
  2165	012453	254 00 0 00 012456 		JRST	SAV3		;YES
  2166	012454	7 004 24 0 00 016655 		CONI	PI,SAVPI
  2167	012455	553 00 0 00 016656 		HRRZS	SAVPI+1
  2168	012456	7 004 20 1 00 016656 	SAV3:	CONO	PI, @SAVPI+1>
  2169	012457	332 00 0 00 016755 	SAV11:	SKIPE	SARS		;ALREADY SAVED?
  2170	012460	254 00 0 00 012466 		JRST	SAV5		;YES
  2171	012461	202 17 0 00 016751 		MOVEM	17,AC17		;SAVE ACS
  2172	012462	551 17 0 00 016732 		HRRZI	17,AC0
  2173	012463	251 17 0 00 016750 		BLT	17,AC0+16
  2174	012464	200 05 0 00 016512 		MOVE	T,SAVE		;SAVE PC FLAGS
  2175	012465	502 05 0 00 016655 		HLLM	T, SAVPI
  2176	012466	200 17 0 00 016122 	SAV5:	MOVE	P,[IOWD LPDL,PDL]	;SETUP STACK
  2177									; ..
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 70
SMDDT	MAC	29-Nov-78 13:26		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0063

  2178
  2179					;IF EDDT, DETERMINE PROCESSOR TYPE.
  2180					;IF UDDT, DETERMINE MONITOR TYPE.
  2181					;IF SM-10, KAFLG SET TO -1 AS IF KL10.
  2182
  2183						IFN	FTEXEC,<
  2184					;	MOVNI	T,1		;LOAD T WITH ALL ONES
  2185					;	AOBJN	T,.+1		;ADD ONE TO BOTH HALFS
  2186					;	MOVEM	T,KAFLG		;0 MEANS KI10; 1,,0 MEANS KA10
  2187					;	SETZ	T,		;TEST FOR KL10
  2188					;	BLT	T,0		;NOP BLT
  2189					;	CAMN	T,[1,,1]	;KL WILL STORE POINTER AS 1,,1
  2190	012467	476 00 0 00 017023 		SETOM	KAFLG		;A KL10
  2191						IFE	FTDEC20,<
  2192	012470	332 00 0 00 017077 		SKIPE	TOPS20
  2193	012471	254 00 0 00 012477 		JRST	SAV20
  2194					;	HRRI	T,XJBSYM	;GET EXEC SYMBOL POINTER ADR
  2195					;	SKPEXC			;EXEC MODE?
  2196	012472	541 05 0 00 000000*		HRRI	T,.JBSYM	;NO, GET USER MODE SYM POINTER ADR
  2197	012473	542 05 0 00 016615 		HRRM	T,SYMP		; AND SAVE IT
  2198					;	HRRI	T,XJBUSY	;GET EXEC UNDEF SYM TABLE POINTER ADR
  2199					;	SKPEXC			;EXEC MODE?
  2200	012474	541 05 0 00 000000*		HRRI	T,.JBUSY	;NO, GET USER MODE UNDEF SYM POINTER ADR
  2201	012475	542 05 0 00 016616 		HRRM	T,USYMP		; AND SAVE RESULTING ADR
  2202					;	SKPEXC
  2203	012476	254 00 0 00 012510 		JRST	SAV12		;TRANSFER IF IN USER MODE
  2204					;	SKPKA			;IS THIS A KA10?
  2205					;	JRST	SAV12		;NO--LEAVE APR ALONE
  2206					;	CONI	T		;GET APR FLAGS
  2207					;	TRNE	T,NXMKA		;TEST NXM FLAG AND
  2208					;	TLO	T,(1B0)		;  MOVE IT TO BIT 0
  2209					;	TLZ	T,37		;FLUSH I AND X SO INDIRECT WORKS
  2210					;	MOVEM	T,SAVAPR	;SAVE STATE OF APR REGISTER
  2211					;	JRST	SAV12
  2212						>>			;END IFN EDDT
  2213									; ..
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 71
SMDDT	MAC	29-Nov-78 13:26		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0064

  2214
  2215					;SAVE STATE AND SETUP DDT MODES...
  2216
  2217					;	IFN	FTDEC20,<
  2218	012477	476 00 0 00 016674 	SAV20:	SETOM	LASTPG#		;FORGET LAST PAGE ACCESS
  2219						IFN	FTEXEC,<
  2220	012500	331 00 0 00 017022 		SKPUSR
  2221	012501	254 00 0 00 012510 		JRST	SAV2>
  2222	012502	205 05 0 00 400000 		MOVSI	T,(1B0)
  2223	012503	201 01 0 00 400000 		MOVEI	T1,.FHSLF
  2224	012504	104 00 0 00 000127 		SKPIR			;PSI SYSTEM ON?
  2225	012505	400 05 0 00 000000 		 SETZ T,		;NO
  2226	012506	336 00 0 00 016755 		SKIPN	SARS		;SKIP IF ALREADY HAVE SAVED STATUS
  2227	012507	202 05 0 00 016675 		MOVEM	T,SAVSTS#	;REMEMBER STATUS
  2228	012510				SAV2:	;>				;END IFN FTDEC20
  2229	012510	260 17 0 00 014663 	SAV12:	PUSHJ	P,TTYRET	;INITIALIZE TTY
  2230						REPEAT	0,<		;WAIT FOR 5.3 RELEASE FOR THIS TEST
  2231						IFN	FTYANK,<SKPEXC	;IF IN USER MODE, RETURNING FROM $G,$P
  2232						SKIPN	COMAND		;AND A COMMAND FILE WAS OPEN
  2233						JRST	SAV6
  2234						MOVEIT	T,CM		;MAKE SURE A RELEASE HASN'T BEEN DONE
  2235						CALLI	T,4		;DEVCHR
  2236						TRNN	T,200000	;DEVICE PAT STILL INITED?
  2237						SETZM	COMAND		;NO, DONT READ ANY MORE
  2238					SAV6:	>			;END IFN FTYANK
  2239						>			;END OF REPEAT 0 CONDITIONAL
  2240	012511	201 00 0 00 000000 		MOVEI	F,0		;INIT FLAG REGISTER
  2241	012512	476 00 0 00 016755 		SETOM	SARS		;FLAG PROTECTING SAVED REGISTERS
  2242	012513	200 05 0 00 016120 		MOVE	T,[XWD SCHM,SCH]
  2243	012514	251 05 0 00 000012 		BLT	T,ODF		;LOAD THE ACS WITH MODE SWITCHES
  2244	012515	254 00 1 00 016512 		JRST	@SAVE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 72
SMDDT	MAC	29-Nov-78 13:26		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0065

  2245
  2246	012516				RESTOR:				;RESTORE ACS AND PI SYSTEM
  2247	012516	542 05 0 00 016512 		HRRM	T,SAVE
  2248	012517	260 17 0 00 014735 		PUSHJ	P,TTYLEV	;RESTORE STATUS OF CONSOL TTY (EXEC MODE)
  2249	012520	200 05 0 00 016655 		MOVE	T,SAVPI
  2250	012521	621 05 0 00 010037 		TLZ	T,010037	;DON'T TRY TO RESTORE USER MODE FLAG
  2251	012522	502 05 0 00 016512 		HLLM	T, SAVE
  2252						IFN	FTEXEC,<
  2253	012523	335 00 0 00 017022 		SKPEXC
  2254	012524	254 00 0 00 012531 		JRST	RESTR2
  2255	012525	404 05 0 00 016656 		AND	T, SAVPI+1
  2256	012526	435 05 0 00 002000 		IORI	T, 2000		;TURN ON CHANNELS
  2257	012527	620 05 0 00 001000 		TRZ	T,1000		;MAKE SURE WE DON'T ASK FOR BOTH
  2258	012530	552 05 0 00 016655 		HRRZM	T, SAVPI
  2259						>			;END FTEXEC
  2260	012531	515 17 0 00 016732 	RESTR2:	HRLZI	17,AC0
  2261	012532	251 17 0 00 000017 		BLT	17,17
  2262	012533	402 00 0 00 016755 		SETZM	SARS
  2263						IFN	FTEXEC,<
  2264	012534	335 00 0 00 017022 		SKPEXC
  2265	012535	254 00 0 00 012541 		JRST	RESTR3		;TRANSFER IF IN USER MODE
  2266						IFE	FTDEC20,<
  2267	012536	335 00 0 00 016654 		SKIPGE	SAVAPR		;WANT NXM SET?
  2268	012537	203 00 0 00 777777 		MOVES	777777		;YES--ASSUME KA-10
  2269						>
  2270					;	SKIPE	TRCON		;TRACE FACILITY ON?
  2271					;	DATAO	PI,TRCON	;YES, START TRACING
  2272	012540	7 004 20 1 00 016655 		CONO	PI,@SAVPI
  2273	012541				RESTR3:>
  2274	012541	254 02 1 00 016512 		JRST	2,@SAVE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 73
SMDDT	MAC	29-Nov-78 13:26		ENTER AND LEAVE DDT LOGIC                                                          SEQ 0066

  2275
  2276					SUBTTL BREAK POINT LOGIC
  2277
  2278	012542	262 05 0 00 016553 	BCOMG:	POP	T,LEAV		;MOVE INSTRUCTION TO LEAV
  2279	012543	201 05 0 05 000165 		MOVEI	T,B1SKP-B1INS+1(T)
  2280	012544	542 05 0 00 016546 		HRRM	T,BCOM3		;CONDITIONAL BREAK SETUP
  2281	012545	201 05 0 05 000001 		MOVEI	T,B1CNT-B1SKP(T)
  2282	012546	542 05 0 00 016547 		HRRM	T,BCOM2		;PROCEED COUNTER SETUP
  2283	012547	200 05 0 05 777611 		MOVE	T,BP1-B1CNT(T)	;GET PC WORD
  2284	012550	502 05 0 00 016550 		HLLM	T,LEAV1		;SAVE FLAGS FOR RESTORING
  2285	012551	250 05 0 00 016544 		EXCH	T,BCOM		; ALSO SAVE PC WORD IN BCOM
  2286
  2287	012552	256 00 0 00 016546 		XCT	BCOM3		;(SKIPE) CONDITIONAL BPT SETUP?
  2288	012553	256 00 1 00 016546 		XCT	@BCOM3		;YES, XCT IT
  2289	012554	256 00 0 00 016547 		XCT	BCOM2		;(SOSG) PROCEED COUNTER NOW 0?
  2290	012555	254 00 0 00 012573 		JRST	BREAK
  2291
  2292	012556	202 05 0 00 016737 		MOVEM	T,AC0+T
  2293	012557	135 05 0 00 016236 		LDB	T,[POINT 9,LEAV,8]	;GET INSTRUCTION
  2294	012560	301 05 0 00 000264 		CAIL	T,264		;JSR
  2295	012561	303 05 0 00 000266 		CAILE	T,266		;JSA,JSP
  2296	012562	606 05 0 00 000700 		TRNN	T,700		;UUO
  2297	012563	254 00 0 00 012653 		JRST	PROC1		;MUST BE INTERPRETED
  2298	012564	302 05 0 00 000260 		CAIE	T,260		;PUSHJ
  2299	012565	306 05 0 00 000256 		CAIN	T,256		;XCT
  2300	012566	254 00 0 00 012653 		JRST	PROC1		;MUST BE INTERPRETED
  2301						IFN	FTEXEC,<
  2302	012567	205 05 0 00 010000 		MOVSI	T,010000	;DON'T TRY TO RESTORE USER MODE BIT
  2303	012570	412 05 0 00 016550 		ANDCAM	T,LEAV1 >
  2304	012571	200 05 0 00 016737 		MOVE	T,AC0+T
  2305	012572	254 02 1 00 016550 		JRST	2,@LEAV1	;RESTORE FLAGS, GO TO LEAVG
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 74
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0067

  2306
  2307					BREAK: IFN FTDEC20,<
  2308						SETZM	SARS>		;BE SURE TO SAVE ACS ON BKPT
  2309	012573	264 00 0 00 016512 		JSR	SAVE		;SAVE THE WORLD
  2310	012574	260 17 0 00 013011 		 PUSHJ P,REMOVB		;REMOVE BREAKPOINTS
  2311	012575	260 17 0 00 014714 		PUSHJ	P,TTYCLR	;FLUSH WAITING TTY CHARACTERS FOR INPUT
  2312	012576	370 05 0 00 016546 		SOS	T,BCOM3
  2313	012577	553 00 0 00 000005 		HRRZS	T		;GET ADR OF CONDITIONAL BREAK INST
  2314	012600	275 05 0 00 016676 		SUBI	T,B1ADR-3	;CHANGE TO ADDRESS OF $0B
  2315	012601	231 05 0 00 000003 		IDIVI	T,3		;QUOTIENT IS BREAK POINT NUMBER
  2316	012602	542 05 0 00 016551 		HRRM	T,BREAK2	;SAVE BREAK POINT #
  2317	012603	200 06 0 00 016237 		MOVE	W1,[BYTE (7) "$","0","B",76,0]	;PRELIMINARY TYPEOUT MESSAGE
  2318					REPEAT 0,<IFN FTEXEC,<
  2319						SKPUSR
  2320						TRC	W1,7_^D15	;IN EXEC MODE, TYPE "$NEG"
  2321						>>
  2322	012604	337 00 1 00 016547 		SKIPG	@BCOM2		;TEST PROCEED COUNTER
  2323	012605	660 06 0 00 000174 		TRO	W1,76_1		;CHANGE T TO /$0BGG/
  2324	012606	137 05 0 00 016240 		DPB	T,[POINT 4,W1,13]	;INSERT BREAK POINT # IN MESSAGE
  2325	012607	260 17 0 00 014266 		PUSHJ	P,TEXT2
  2326	012610	200 05 0 00 016544 		MOVE	T,BCOM
  2327	012611	502 05 0 00 016655 		HLLM	T, SAVPI	;SAVE PROCESSOR FLAGS
  2328	012612	201 05 0 05 777777 		MOVEI	T,-1(T)
  2329	012613	260 17 0 00 011270 		PUSHJ	P,PSHLLC	;PUSH OLD SEQUENCE
  2330	012614	202 05 0 00 016602 		MOVEM	T,LWT		;BKPT ADR BECOMES LAST WORD TYPED
  2331	012615	202 05 0 00 016623 		MOVEM	T,LLOC		;BKPT ADR BECOMES CURRENT LOC
  2332	012616	260 17 0 00 013566 		PUSHJ	P,PAD		;TYPE PC AT BREAK
  2333	012617	550 05 1 00 016546 		HRRZ	T,@BCOM3
  2334	012620	542 05 0 00 016552 		HRRM	T,PROC0		;SETUP ADDRESS OF BREAK
  2335	012621	554 05 1 00 016546 		HLRZ	T,@BCOM3
  2336	012622	322 05 0 00 012627 		JUMPE	T,BREAK1	;TEST FOR REGISTER TO EXAMINE
  2337	012623	260 17 0 00 014316 		PUSHJ	P,LCT		;PRINT TAB
  2338	012624	554 05 1 00 016546 		HLRZ	T,@BCOM3
  2339	012625	202 05 0 00 016623 		MOVEM	T,LLOC		;EXAMINE ADR BECOMES CURRENT LOC
  2340	012626	260 17 0 00 011141 		PUSHJ	P,LI1		;EXAMINE REGISTER C($NB)LEFT
  2341	012627	205 03 0 00 400000 	BREAK1:	MOVSI	S,400000
  2342	012630	256 00 0 00 016551 		XCT	BREAK2		;ROT BY # OF BREAK POINT
  2343	012631	260 17 0 00 014642 		PUSHJ	P,LISTEN	;DONT PROCEED IF TTY KEY HIT
  2344	012632	616 03 0 00 016731 		TDNN	S,AUTOPI	;DONT PROCEED IF NOT AUTOMATIC
  2345	012633	254 00 0 00 010200 		JRST	RET		;DONT PROCEED
  2346	012634	254 00 0 00 012644 		JRST	PROCD1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 75
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0068

  2347
  2348	012635	550 13 0 00 016547 	PROCED:	HRRZ	TT,BCOM2	;SEE IF PROCEED POSSIBLE
  2349	012636	322 13 0 00 010170 		JUMPE	TT,ERR		;JUMP IF NOT SETUP
  2350	012637	607 00 0 00 000001 		TLNN	F,(QF)		;N$P	;PROCEED AT A BREAKPOINT
  2351	012640	201 05 0 00 000001 		MOVEI	T,1
  2352	012641	202 05 1 00 016547 		MOVEM	T,@BCOM2
  2353	012642	550 02 0 00 016546 		HRRZ	R,BCOM3
  2354	012643	260 17 0 00 013070 		PUSHJ	P,AUTOP
  2355	012644	260 17 0 00 014313 	PROCD1:	PUSHJ	P,CRF
  2356	012645	256 00 0 00 016552 		XCT	PROC0		;(HRRZI) GET ADR OF BPT
  2357	012646	260 17 0 00 013160 		PUSHJ	P,FETCH
  2358	012647	254 00 0 00 012736 		JRST	BPLUP1		;ONLY GET HERE IF MEMORY SHRANK
  2359	012650	202 05 0 00 016553 		MOVEM	T,LEAV
  2360	012651	260 17 0 00 012775 		PUSHJ	P,INSRTB
  2361	012652	254 00 0 00 012660 		JRST	PROC2
  2362
  2363	012653	200 05 0 00 016737 	PROC1:	MOVE	T,AC0+T
  2364	012654	264 00 0 00 016512 		JSR	SAVE
  2365	012655	255 00 0 00 000000 		 JFCL
  2366	012656	200 05 0 00 016544 		MOVE	T,BCOM		;STORE FLAGS WHERE "RESTORE"
  2367	012657	502 05 0 00 016655 		HLLM	T,SAVPI		;  CAN FIND THEM
  2368	012660	201 04 0 00 000100 	PROC2:	MOVEI	W,100
  2369	012661	202 04 0 00 016757 		MOVEM	W,TEM1		;SETUP MAX LOOP COUNT
  2370	012662	513 00 0 00 016547 		HLLZS	BCOM2		;CLEAR FLAG, PREVENT SECOND $P
  2371	012663	254 00 0 00 012677 		JRST	IXCT5
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 76
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0069

  2372
  2373	012664				IXCT4:
  2374	012664	331 00 0 00 017022 		IFN	FTEXEC,< SKPUSR
  2375	012665	254 00 0 00 012671 		JRST	IXCT41>		;INIT NOT SPECIAL CASE IN EXEC MODE 
  2376	012666	275 05 0 00 000041 		SUBI	T,041		;IS UUO "INIT"?
  2377	012667	322 05 0 00 012735 		JUMPE	T,BPLUP
  2378	012670	345 05 0 00 012726 		AOJGE	T,IXCT6		;DONT PROCEED FOR INIT
  2379									;DONT INTERPRET FOR SYSTEM UUOS
  2380	012671	202 02 0 00 000040 	IXCT41:	MOVEM	R,40		;INTERPRET FOR NON-SYSTEM UUOS
  2381	012672	201 02 0 00 000041 		MOVEI	R,41
  2382	012673	371 00 0 00 016757 	IXCT:	SOSL	TEM1
  2383	012674	260 17 0 00 013160 		PUSHJ	P,FETCH
  2384	012675	254 00 0 00 012735 		JRST	BPLUP		;BREAKPOINT LOOPING OR FETCH FAILED
  2385	012676	202 05 0 00 016553 		MOVEM	T,LEAV
  2386	012677	135 05 0 00 016236 	IXCT5:	LDB	T,[POINT 9,LEAV,8]	;GET INSTRUCTION
  2387	012700	306 05 0 00 000254 		CAIN	T,254		;DON'T DO ANYTHING TO JRST
  2388	012701	254 00 0 00 012726 		JRST	IXCT6
  2389	012702	515 17 0 00 016732 	IXCT51:	HRLZI	17,AC0
  2390	012703	251 17 0 00 000017 		BLT	17,17
  2391	012704	201 05 1 00 016553 		MOVEI	T,@LEAV
  2392	012705	137 05 0 00 016241 		DPB	T,[POINT 23,LEAV,35]	;STORE EFFECTIVE ADDRESS
  2393	012706	135 06 0 00 016242 		LDB	W1,[POINT 4,LEAV,12]	;PICK UP AC FIELD
  2394	012707	135 05 0 00 016236 		LDB	T,[POINT 9,LEAV,8]	;PICK UP INSTRUCTION FIELD
  2395	012710	200 17 0 00 016122 		MOVE	P,[IOWD LPDL,PDL]
  2396	012711	306 05 0 00 000260 		CAIN	T,260
  2397	012712	254 00 0 00 012741 		JRST  IPUSHJ		;INTERPRET PUSHJ
  2398
  2399	012713	306 05 0 00 000264 		CAIN	T,264
  2400	012714	254 00 0 00 012755 		JRST	IJSR		;INTERPRET JSR
  2401	012715	306 05 0 00 000265 		CAIN	T,265
  2402	012716	254 00 0 00 012767 		JRST	IJSP		;INTERPRET JSP
  2403	012717	306 05 0 00 000266 		CAIN	T,266
  2404	012720	254 00 0 00 012751 		JRST	IJSA		;INTERPRET JSA
  2405	012721	200 02 0 00 016553 		MOVE	R,LEAV
  2406	012722	606 05 0 00 000700 		TRNN	T,700
  2407	012723	254 00 0 00 012664 		JRST	IXCT4		;INTERPRET UUO
  2408	012724	306 05 0 00 000256 		CAIN	T,256
  2409						JSP	T,[JUMPE W1,IXCT	;INTERPRET XCT IF AC = 0
  2410							TLNN T,(1B5)	;AC FIELD NOT 0 - IN EXEC MODE?
  2411							JRST IXCT6	;YES, DON'T INTERPRET MAPPED XCT
  2412	012725	265 05 0 00 016243 			JRST IXCT]	;NO,  INTERPRET. IGNORE AC FIELD
  2413	012726	265 05 0 00 012516 	IXCT6:	JSP	T,RESTORE
  2414	012727	256 00 0 00 016553 	LEAVG:	XCT	LEAV		;DO BPT INSTRUCTION
  2415	012730	254 00 1 00 016544 		 JRST @BCOM
  2416	012731	334 00 0 00 000000 		 SKIPA			;SINGLE SKIP
  2417	012732	350 00 0 00 016544 		AOS	BCOM		;DOUBLE SKIP
  2418	012733	350 00 0 00 016544 		AOS	BCOM
  2419	012734	254 00 1 00 016544 		JRST	@BCOM
  2420
  2421	012735	260 17 0 00 013011 	BPLUP:	PUSHJ	P,REMOVB	;BREAKPOINT PROCEED ERROR
  2422	012736	264 00 0 00 016512 	BPLUP1:	JSR	SAVE
  2423	012737	255 00 0 00 000000 		 JFCL
  2424	012740	254 00 0 00 010170 		JRST	ERR
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 77
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0070

  2425
  2426	012741	137 06 0 00 016247 	IPUSHJ:	DPB	W1,[POINT 4,CPUSHP,12]	;STORE AC FIELD INTO A PUSH
  2427	012742	500 05 0 00 016655 		HLL	T,SAVPI		;PICK UP FLAGS
  2428	012743	502 05 0 00 016544 		HLLM	T,BCOM		;SET UP THE OLD PC WORD
  2429	012744	205 05 0 00 020000 		MOVSI	T,(1B4)		;TURN OFF BIS FLAG IN NEW PC WORD
  2430	012745	412 05 0 00 016655 		ANDCAM	T,SAVPI
  2431	012746	265 05 0 00 012516 		JSP	T,RESTORE	;RESTORE THE MACHINE STATE
  2432	012747	256 00 0 00 016554 		XCT	CPUSHP		;(PUSH ..,BCOM)
  2433	012750	254 00 1 00 016553 		JRST	@LEAV		;JUMP TO "E" OF THE PUSHJ
  2434
  2435	012751	200 05 0 00 016544 	IJSA:	MOVE	T,BCOM		;INTERPRET JSA
  2436	012752	504 05 0 00 016553 		HRL	T,LEAV
  2437	012753	250 05 0 06 016732 		EXCH	T,AC0(W1)
  2438	012754	254 00 0 00 012761 		JRST	IJSR2
  2439
  2440	012755	200 05 0 00 016544 	IJSR:	MOVE	T,BCOM		;INTERPRET JSR
  2441	012756	500 05 0 00 016655 		HLL	T,SAVPI		;SET UP THE OLD PC WORD
  2442	012757	205 04 0 00 020000 		MOVSI	W,(1B4)		;TURN OFF BIS IN NEW PC WORD
  2443	012760	412 04 0 00 016655 		ANDCAM	W,SAVPI
  2444	012761	200 02 0 00 016553 	IJSR2:	MOVE	R,LEAV
  2445	012762	260 17 0 00 013106 		PUSHJ	P,DEPMEM
  2446	012763	254 00 0 00 012735 		 JRST BPLUP		;ERROR, CAN'T STORE
  2447	012764	354 05 0 00 016553 		AOSA	T,LEAV
  2448	012765	200 05 0 00 016553 	IJSR3:	MOVE	T,LEAV
  2449	012766	254 00 0 00 012516 		JRST	RESTORE
  2450
  2451	012767	200 04 0 00 016544 	IJSP:	MOVE	W,BCOM		;INTERPRET JSP
  2452	012770	500 04 0 00 016655 		HLL	W,SAVPI		;PICK UP PC WORD FLAGS
  2453	012771	202 04 0 06 016732 		MOVEM	W,AC0(W1)	;INSERT OLD PC WORD INTO AC
  2454	012772	205 05 0 00 020000 		MOVSI	T,(1B4)		;TURN OFF BIS FLAG IN NEW PC WORD
  2455	012773	412 05 0 00 016655 		ANDCAM	T,SAVPI
  2456	012774	254 00 0 00 012765 		JRST	IJSR3
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 78
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0071

  2457
  2458					;INSERT BREAKPOINTS
  2459
  2460	012775	200 03 0 00 016250 	INSRTB:	MOVE	S,[JSR BP1]
  2461	012776	332 02 0 03 000165 	INSRT1:	SKIPE	R,B1ADR-BP1(S)
  2462	012777	260 17 0 00 013160 		PUSHJ	P,FETCH
  2463	013000	254 00 0 00 013005 		JRST	INSRT3
  2464	013001	202 05 0 03 000002 		MOVEM	T,B1INS-BP1(S)
  2465	013002	200 05 0 00 000003 		MOVE	T,S
  2466	013003	260 17 0 00 013106 		PUSHJ	P,DEPMEM
  2467	013004	255 00 0 00 000000 		 JFCL			;HERE ONLY IF CAN'T WRITE IN HIGH SEG
  2468	013005	271 03 0 00 000003 	INSRT3:	ADDI	S,3
  2469	013006	317 03 0 00 016251 		CAMG	S,[JSR BPN]
  2470	013007	254 00 0 00 012776 		JRST	INSRT1
  2471	013010	263 17 0 00 000000 		POPJ	P,
  2472
  2473					;REMOVE BREAKPOINTS
  2474
  2475	013011	201 03 0 00 016726 	REMOVB:	MOVEI	S,BNADR
  2476	013012	200 05 0 03 777615 	REMOV1:	MOVE	T,B1INS-B1ADR(S)
  2477	013013	332 02 0 03 000000 		SKIPE	R,(S)
  2478	013014	260 17 0 00 013106 		PUSHJ	P,DEPMEM
  2479	013015	255 00 0 00 000000 		 JFCL			;HERE ONLY IF NO WRITE IN HIGH SEG
  2480	013016	275 03 0 00 000003 		SUBI	S,3
  2481	013017	301 03 0 00 016701 		CAIL	S,B1ADR
  2482	013020	254 00 0 00 013012 		JRST	REMOV1
  2483	013021	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 79
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0072

  2484
  2485					;ALL $B COMMANDS GET HERE IN FORM: <A>$<N>B
  2486
  2487
  2488	013022	623 00 0 00 000001 	BPS:	TLZE	F,(QF)		;HAS <A> BEEN TYPED?
  2489	013023	254 00 0 00 013032 		JRST	BPS1		;YES
  2490	013024	622 00 0 00 000001 		TRZE	F,Q2F		;NO, HAS <N> BEEN TYPED?
  2491	013025	254 00 0 00 013041 		JRST	BPS2		;YES
  2492	013026	200 05 0 00 016252 		MOVE	T,[XWD B1ADR,B1ADR+1]	;NO, COMMAND IS $B - CLEAR ALL BREAKPOINTS
  2493	013027	402 00 0 00 016701 		CLEARM	B1ADR
  2494	013030	251 05 0 00 016731 		BLT	T,AUTOPI	;CLEAR OUT ALL BREAKPOINTS AND AUTO PROCEED REGISTER
  2495	013031	254 00 0 00 010200 		JRST	RET
  2496
  2497	013032	200 02 0 00 000005 	BPS1:	MOVE	R,T
  2498	013033	260 17 0 00 013160 		PUSHJ	P,FETCH		;CAN BREAKPOINT BE INSERTED HERE?
  2499	013034	254 00 0 00 010170 		 JRST ERR		;NO
  2500	013035	260 17 0 00 013151 		PUSHJ	P,DEPERR	; AGAIN NO
  2501	013036	626 00 0 00 000001 		TRZN	F,Q2F		;HAS <N> BEEN TYPED?
  2502	013037	254 00 0 00 013053 		JRST	BPS3		;NO
  2503	013040	660 00 0 00 000002 		TRO	F,2		;YES, PROCESS THE COMMAND A$NB
  2504	013041	200 05 0 00 016576 	BPS2:	MOVE	T,WRD2
  2505	013042	301 05 0 00 000001 		CAIL	T,1
  2506	013043	303 05 0 00 000010 		CAILE	T,NBP
  2507	013044	254 00 0 00 010170 		JRST	ERR
  2508	013045	221 05 0 00 000003 		IMULI	T,3
  2509	013046	271 05 0 00 016676 		ADDI	T,B1ADR-3
  2510	013047	626 00 0 00 000002 		TRZN	F,2
  2511	013050	254 00 0 00 013660 		JRST	MASK2
  2512	013051	250 02 0 00 000005 		EXCH	R,T
  2513	013052	254 00 0 00 013065 		JRST	BPS5
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 80
SMDDT	MAC	29-Nov-78 13:26		BREAK POINT LOGIC                                                                  SEQ 0073

  2514
  2515	013053	200 05 0 00 000002 	BPS3:	MOVE	T,R		;PUT THE BREAKPOINT ADR BACK IN T
  2516	013054	201 02 0 00 016701 		MOVEI	R,B1ADR		;PROCESS THE COMMAND A$B
  2517	013055	550 04 0 02 000000 	BPS4:	HRRZ	W,(R)
  2518	013056	302 04 0 05 000000 		CAIE	W,(T)
  2519	013057	336 00 0 02 000000 		SKIPN	(R)
  2520	013060	254 00 0 00 013065 		JRST	BPS5
  2521	013061	271 02 0 00 000003 		ADDI	R,3
  2522	013062	307 02 0 00 016726 		CAIG	R,BNADR
  2523	013063	254 00 0 00 013055 		JRST	BPS4
  2524	013064	254 00 0 00 010170 		JRST	ERR
  2525	013065	202 05 0 02 000000 	BPS5:	MOVEM	T,(R)
  2526	013066	402 00 0 02 000001 		SETZM	1(R)
  2527	013067	402 00 0 02 000002 		SETZM	2(R)
  2528
  2529	013070	275 02 0 00 016701 	AUTOP:	SUBI	R,B1ADR		;AUTO PROCEED SETUP SUBROUTINE
  2530	013071	231 02 0 00 000003 		IDIVI	R,3
  2531	013072	201 03 0 00 000001 		MOVEI	S,1
  2532	013073	242 03 0 02 000000 		LSH	S,(R)
  2533	013074	412 03 0 00 016731 		ANDCAM	S,AUTOPI
  2534	013075	603 00 0 00 010000 		TLNE	F,(CCF)
  2535	013076	436 03 0 00 016731 		IORM	S,AUTOPI
  2536	013077	263 17 0 00 000000 		POPJ	P,
  2537
  2538						>			;END FTFILE
  2539
  2540						IFN	FTFILE,<BPS==<PROCEDE==ERR>>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 81
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0074

  2541					SUBTTL MEMORY MANAGER SUBROUTINES
  2542
  2543					;DEPOSIT INTO MEMORY SUBROUTINE
  2544
  2545	013100	202 05 0 00 016602 	DEPRS:	MOVEM	T,LWT		;DEPOSIT REGISTER AND SAVE AS LWT
  2546	013101	200 02 0 00 016624 		MOVE	R,LLOCO		;QUAN TYPED IN REGIS EXAM
  2547	013102	623 00 0 00 000010 		TLZE	F,(ROF)
  2548	013103	607 00 0 00 000001 		TLNN	F,(QF)
  2549	013104	263 17 0 00 000000 		POPJ	P,0
  2550	013105	254 00 0 00 013151 		JRST	DMEMER
  2551
  2552					;DEPOSIT INTO MEMORY SUBROUTINE
  2553
  2554						IFE	FTFILE,<
  2555	013106				DEPSYM:
  2556	013106				DEPMEM:	IFE	FTDEC20,<
  2557	013106	332 00 0 00 017077 		SKIPE	TOPS20
  2558	013107	254 00 0 00 013137 		JRST	DEPM20
  2559	013110	260 17 0 00 013230 		PUSHJ	P,CHKPAG	;GET PAGE ACCESS BITS INTO TT1
  2560	013111	321 14 0 00 010523 		JUMPL	TT1,CPOPJ	;ILLEGAL ADDRESS IF NEGATIVE
  2561	013112	603 14 0 00 200000 		TLNE	TT1,(1B1)	;IS PAGE KNOWN TO BE WRITEABLE?
  2562	013113	254 00 0 00 013117 		JRST	DEP1		;YES--GO DO THE DEPOSIT RIGHT AWAY
  2563	013114	326 14 0 00 013125 		JUMPN	TT1,DEP4	;IF WE KNOW ANYTHING THEN IT MUST BE
  2564									; A WRITE LOCKED HISEG
  2565	013115	265 14 0 00 013205 		JSP	TT1,CHKADR	;LEGAL ADDRESS?
  2566	013116	254 00 0 00 013125 		JRST	DEP4		;YES BUT IN HI SEGMENT
  2567	013117	606 02 0 00 777760 	DEP1:	TRNN	R,777760
  2568	013120	254 00 0 00 013123 		JRST	DEPAC		;DEPOSIT IN AC
  2569	013121	202 05 0 02 000000 		MOVEM	T,(R)
  2570	013122	254 00 0 00 010522 		JRST	CPOPJ1		;SKIP RETURN
  2571
  2572	013123	202 05 0 02 016732 	DEPAC:	MOVEM	T,AC0(R)	;DEPOSIT IN AC
  2573	013124	254 00 0 00 010522 		JRST	CPOPJ1		;SKIP RETURN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 82
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0075

  2574	013125				DEP4:	IFN	FTEXEC,<
  2575	013125	331 00 0 00 017022 		SKPUSR			;IN EXEC MODE WE CAN NOT DO
  2576	013126	263 17 0 00 000000 		POPJ	P,0		; SETUWP -- INDICATE ERROR
  2577						>
  2578	013127	201 14 0 00 000000 		MOVEI	TT1,0
  2579	013130	047 14 0 00 000036 		SETUWP	TT1,		;IS HI SEGMENT PROTECTED? TURN OFF
  2580	013131	263 17 0 00 000000 		 POPJ P,		;PROTECTED, NO SKIP RETURN
  2581	013132	202 05 0 02 000000 		MOVEM	T,(R)		;STORE WORD IN HI SEGMENT
  2582	013133	602 14 0 00 000001 		TRNE	TT1,1		;WAS WRITE PROTECT ON?
  2583	013134	047 14 0 00 000036 		SETUWP	TT1,		;YES, TURN IT BACK ON
  2584	013135	255 00 0 00 000000 		 JFCL
  2585	013136	254 00 0 00 010522 		JRST	CPOPJ1		;SKIP RETURN
  2586					;	>			;END IFE FTDEC20
  2587					;	IFN	FTDEC20,<	;DEPSYM, DEPMEM FOR DEC20
  2588	013137	606 02 0 00 777760 	DEPM20:	TRNN	R,777760	;AC?
  2589						JRST	[MOVEM T,AC0(R)	;YES, DO IT
  2590	013140	254 00 0 00 016253 			JRST CPOPJ1]
  2591	013141	260 17 0 00 013205 		PUSHJ	P,CHKADR	;GET ACCESS
  2592	013142	322 13 0 00 013145 		JUMPE	TT,DEP2		;EMPTY PAGE OK
  2593	013143	607 13 0 00 040400 		TLNN	TT,(PM%WT+PM%CPY)	;WRITE OR COPY-WRITE?
  2594	013144	263 17 0 00 000000 		POPJ	P,		;NO, FAIL
  2595	013145	476 00 0 00 016674 	DEP2:	SETOM	LASTPG		;WRITE MAY CHANGE ACCESS
  2596	013146	202 05 0 02 000000 		MOVEM	T,0(R)		;DO IT
  2597	013147	254 00 0 00 010522 		JRST	CPOPJ1
  2598					;	>			;END IFN FTDEC20
  2599
  2600	013150	260 17 0 00 013456 	DSYMER:	PUSHJ	P,CLRCSH	;DEPOSIT FOR SYM TABLE ROUTINES
  2601						>			;END IFE FTFILE
  2602	013151				DEPERR:
  2603	013151	260 17 0 00 013106 	DMEMER:	PUSHJ	P,DEPMEM	;DEPOSIT AND GO TO ERR IF IT FAILS
  2604	013152	254 00 0 00 010170 		 JRST ERR
  2605	013153	263 17 0 00 000000 		POPJ	P,
  2606					XLIST
  2607					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 87
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0076

  2608					;FETCH FROM MEMORY SUBROUTINE
  2609
  2610					;HFETCH GETS A WORD FROM THE HISEG GIVEN AN OFFSET INTO THE SEGMENT
  2611					;CALL WITH:
  2612					;	R = HISEG OFFSET
  2613					;	PUSHJ P,HFETCH
  2614					;	  NO HISEG RETURN
  2615					;	HERE WITH WORD IN T
  2616					;
  2617	013154				HFETCH:
  2618						IFN	FTEXEC,<
  2619					;	SKPUSR			;NO HISEG SYMBOLS IN EXEC MODE (OR SMDDT)
  2620	013154	263 17 0 00 000000 		POPJ	P,0>		; ..
  2621	013155	260 17 0 00 013242 		PUSHJ	P,GETHSO	;GET START OF HISEG
  2622	013156	322 05 0 00 010523 		JUMPE	T,CPOPJ		;EXIT IF NONE
  2623	013157	270 02 0 00 000005 		ADD	R,T		;RELOCATE
  2624					;FALL INTO FETCH
  2625
  2626					;SUBROTINE GET A WORD FROM MEMORY
  2627					;CALL WITH:
  2628					;	R = JUNK,,ADDRESS
  2629					;	PUSHJ  P,FETCH
  2630					;	  HERE IF ADDRESS IS NOT VALID
  2631					;	HERE WITH WORD IN T AND R UNCHANGED
  2632					;	
  2633					;AC'S TT1 AND TT2 CHANGED
  2634
  2635	013160				FETCH: IFE FTDEC20,<
  2636						IFE	FTFILE,<
  2637	013160	332 00 0 00 017077 		SKIPE	TOPS20
  2638	013161	254 00 0 00 013175 		JRST	FET20
  2639	013162	260 17 0 00 013230 		PUSHJ	P,CHKPAG	;GET ACCESS BITS FOR PAGE
  2640	013163	321 14 0 00 010523 		JUMPL	TT1,CPOPJ	;ERROR IF PAGE DOES NOT EXIST
  2641	013164	603 14 0 00 100000 		TLNE	TT1,(1B2)	;IS PAGE READABLE?
  2642	013165	254 00 0 00 013171 		JRST	FET1		;YES--GO READ IT
  2643	013166	326 14 0 00 010523 		JUMPN	TT1,CPOPJ	;EXIT IF KNOW CONCEALED
  2644	013167	265 14 0 00 013205 		JSP	TT1,CHKADR	;LEGAL ADDRESS?
  2645	013170	255 00 0 00 000000 		JFCL			;HIGH OR LOW OK FOR FETCH
  2646	013171	606 02 0 00 777760 	FET1:	TRNN	R,777760	;ACCUMULATOR?
  2647	013172	334 05 0 02 016732 		SKIPA	T,AC0(R)	;YES
  2648	013173	200 05 0 02 000000 		MOVE	T,(R)		;NO
  2649	013174	254 00 0 00 010522 		JRST	CPOPJ1>		;SKIP RETURN ONLY FOR LEGAL ADDRESS 
  2650					;	>			;END OF IFE FTDEC20
  2651					;	IFN	FTDEC20,<	;FETCH FOR DEC20
  2652	013175	606 02 0 00 777760 	FET20:	TRNN	R,777760	;AC?
  2653						JRST	[MOVE T,AC0(R)	;YES, DO IT
  2654	013176	254 00 0 00 016255 			JRST CPOPJ1]
  2655	013177	260 17 0 00 013205 		PUSHJ	P,CHKADR	;GET ACCESS
  2656	013200	603 13 0 00 020000 		TLNE	TT,(PA%EX)	;EXISTS?
  2657	013201	607 13 0 00 100000 		TLNN	TT,(PM%RD)	;HAVE READ?
  2658	013202	263 17 0 00 000000 		POPJ	P,		;NO, FAIL
  2659	013203	200 05 0 02 000000 		MOVE	T,0(R)		;YES, DO IT
  2660	013204	254 00 0 00 010522 		JRST	CPOPJ1
  2661					;	>			;END IFN FTDEC20
  2662					XLIST
  2663					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 90
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0077

  2664
  2665						IFE	FTDEC20,<
  2666	013205	332 00 0 00 017077 	CHKADR:	SKIPE	TOPS20
  2667	013206	254 00 0 00 013255 		JRST	CHKA20
  2668	013207	550 13 0 00 000000*		HRRZ	TT,.JBREL	;GET HIGHEST ADDRESS IN LOW SEGMENT
  2669						IFN	FTEXEC,<
  2670	013210	331 00 0 00 017022 		SKPUSR
  2671	013211	254 00 0 00 013301 		JRST	CHKA4		;DO MAP IN EXEC MODE
  2672						>
  2673	013212	301 13 0 02 000000 		CAIL	TT,(R)		;CHECK FOR WITHIN LOW SEGMENT
  2674	013213	254 00 0 14 000001 		JRST	1(TT1)		;ADDRESS IS OK IN LOW SEGMENT, SKIP RETURN
  2675	013214	336 00 0 00 000000*		SKIPN	.JBHRL		;ANY HISEG?
  2676	013215	263 17 0 00 000000 		POPJ	P,0		;NO--ERROR
  2677	013216	261 17 0 00 000005 		PUSH	P,T		;SAVE T
  2678	013217	260 17 0 00 013242 		PUSHJ	P,GETHSO	;GET START OF HISEG
  2679	013220	550 13 0 00 000002 		HRRZ	TT,R		;COPY DESIRED ADDRESS
  2680	013221	274 13 0 00 000005 		SUB	TT,T		;GET OFFSET INTO HISEG
  2681	013222	262 17 0 00 000005 		POP	P,T
  2682	013223	321 13 0 00 010523 		JUMPL	TT,CPOPJ	;MUST BE POSITIVE
  2683	013224	550 13 0 00 013214*		HRRZ	TT,.JBHRL	;TOP OF HISEG
  2684	013225	305 13 0 02 000000 		CAIGE	TT,(R)		;IS ADDRESS TOO BIG?
  2685	013226	263 17 0 00 000000 		POPJ	P,0		;YES--ERROR
  2686	013227	254 00 0 14 000000 		JRST	(TT1)		;NO--INDICATE HISEG
  2687
  2688	013230				CHKPAG:	IFN	FTEXEC,<
  2689	013230	201 14 0 00 000000 		MOVEI	TT1,0		;PRESET UNKNOWN ANSWER
  2690	013231	331 00 0 00 017022 		SKPUSR			;SKIP IF IN USER MODE
  2691	013232	263 17 0 00 000000 		POPJ	P,0		;DO NOT DO UUO'S IN EXEC MODE
  2692						>
  2693	013233	550 14 0 00 000002 		HRRZ	TT1,R		;COPY ADDRESS
  2694	013234	242 14 0 00 777767 		LSH	TT1,-9		;SHIFT LEFT 9 BITS
  2695	013235	505 14 0 00 000006 		HRLI	TT1,6		;FUNCTION TO GET ACCESS BITS
  2696	013236	047 14 0 00 000145 		PAGE. TT1,		;ASK THE MONITOR
  2697	013237	634 14 0 00 000014 		 TDZA TT1,TT1		;RETURN ZERO IF UNKNOWN
  2698	013240	660 14 0 00 000001 		TRO	TT1,1		;MAKE SURE NON-ZERO IF UUO WON
  2699	013241	263 17 0 00 000000 		POPJ	P,0		;ELSE RETURN GOOD STUFF
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 91
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0078

  2700
  2701	013242				GETHSO:	IFN	FTEXEC,<
  2702	013242	331 00 0 00 017022 		SKPUSR
  2703						JRST	[MOVEI T,400000
  2704	013243	254 00 0 00 016257 			 POPJ  P,0]
  2705						>
  2706	013244	332 00 0 00 017077 		SKIPE	TOPS20
  2707	013245	254 00 0 00 013323 		JRST	GETH20
  2708	013246	200 05 0 00 016261 		MOVE	T,[-2,,.GTUPM]
  2709	013247	047 05 0 00 000041 		GETTAB	T,
  2710	013250	201 05 0 00 000000 		 MOVEI T,0
  2711	013251	554 05 0 00 000005 		HLRZ	T,T
  2712	013252	305 05 0 00 000777 		CAIGE	T,777
  2713	013253	201 05 0 00 400000 		MOVEI	T,400000
  2714	013254	263 17 0 00 000000 		POPJ	P,
  2715					;	>			;END IFE FTDEC20
  2716					;	IFN	FTDEC20,<
  2717	013255				CHKA20:	IFN	FTEXEC,<
  2718	013255	331 00 0 00 017022 		SKPUSR
  2719	013256	254 00 0 00 013301 		JRST	CHKA4>
  2720	013257	261 17 0 00 000002 		PUSH	P,T2
  2721	013260	261 17 0 00 000002 		PUSH	P,R
  2722	013261	550 02 0 17 000000 		HRRZ	T2,0(P)		;GET DESIRED ADDRESS
  2723	013262	430 02 0 00 016674 		XOR	T2,LASTPG	;COMPARE WITH LAST ONE TESTED
  2724	013263	606 02 0 00 777000 		TRNN	T2,777000	;SAME PAGE?
  2725	013264	254 00 0 00 013275 		JRST	CHKA1		;YES, ALREADY HAVE ACCESS
  2726	013265	432 02 0 00 016674 		XORM	T2,LASTPG	;NO, SET NEW LAST PAGE
  2727	013266	265 01 0 00 013267 		JSP	T1,.+1		;GET USER FLAG
  2728	013267	607 01 0 00 010000 		TLNN	T1,(PC%USR)	;IN USER MODE?
  2729						JRST	[HRRZ T1,0(P)	;NO, MONITOR. GET ADDRESS
  2730							MRPAC		;READ MONITOR PAGE ACCESS
  2731	013270	254 00 0 00 016262 			JRST CHKA2]	;RETURN IT
  2732	013271	135 01 0 00 016265 		LDB	T1,[POINT 9,0(P),26]	;GET PAGE NUMBER
  2733	013272	505 01 0 00 400000 		HRLI	T1,.FHSLF
  2734	013273	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  2735	013274	502 02 0 00 016674 	CHKA2:	HLLM	T2,LASTPG	;SAVE ACCESS WITH ADDRESS
  2736	013275	510 13 0 00 000002 	CHKA1:	HLLZ	TT,T2		;RETURN ACCESS IN TT
  2737	013276	262 17 0 00 000002 		POP	P,R
  2738	013277	262 17 0 00 000002 		POP	P,T2
  2739	013300	263 17 0 00 000000 		POPJ	P,
  2740					;	>			;END FTDEC20
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 92
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0079

  2741
  2742						IFN	FTEXEC,<
  2743	013301	335 00 0 00 017023 	CHKA4:	SKPNKL			;KL10?
  2744						JRST	[MAP TT,0(R)	;YES, GET PAGING DATA
  2745							TLNN TT,(1B8)	;MAPPED REF?
  2746							JRST CHKA5	;NO, ALLOW IT
  2747							TLNN TT,(1B1)	;HARD PAGE FAIL?
  2748							TLNN TT,(1B2)	;OR NO ACCESS?
  2749							JRST CHKA3	;YES
  2750							TLNN TT,(1B3+1B4) ;WRITE ALLOWED?
  2751							JRST CHKA7	;NO
  2752	013302	254 00 0 00 016266 			JRST CHKA5]	;YES
  2753	013303	332 00 0 00 017023 		SKPKI			;KI10?
  2754	013304	254 00 0 00 013316 		JRST	CHKA8		;NO, NO MAP INSTRUCTION
  2755	013305	257 13 0 02 000000 		MAP	TT,0(R)		;GET ACCESS BITS FOR PAGE
  2756	013306	606 13 0 00 400000 		TRNN	TT,1B18		;PAGE FAIL?
  2757	013307	254 00 0 00 013312 		JRST	CHKA6		;NO, GO INSPECT DATA
  2758	013310	602 13 0 00 020000 		TRNE	TT,1B22		;YES, HAVE MATCH?
  2759	013311	254 00 0 00 013315 		JRST	CHKA3		;NO, PAGE HAS NO ACCESS
  2760	013312	606 13 0 00 120000 	CHKA6:	TRNN	TT,1B20+1B22	;WRITABLE OR NO MATCH? (UNMAPPED REF)
  2761						IFN	FTDEC20,<
  2762					CHKA7:	SKIPA	TT,[PM%RD+PA%EX]	;NO
  2763					CHKA8:
  2764					CHKA5:	MOVSI	TT,(PM%RD+PM%WT+PA%EX)	;YES
  2765						POPJ	P,
  2766					
  2767					CHKA3:	MOVSI	TT,(1B5)	;SAY NO ACCESS
  2768						POPJ	P,
  2769						>
  2770						IFE	FTDEC20,<
  2771	013313	254 00 0 14 000000 	CHKA7:	JRST	(TT1)		;CAN NOT WRITE -- INDICATE HISEG
  2772	013314	254 00 0 14 000001 	CHKA5:	JRST	1(TT1)		;CAN WRITE -- INDICATE LOWSEG
  2773	013315	263 17 0 00 000000 	CHKA3:	POPJ	P,0		;PAGE FAIL -- INDICATE ERROR
  2774	013316	7 000 20 0 00 010000 	CHKA8:	CONO	APR,NXMKA	;CLEAR NXM FLAG
  2775	013317	200 13 0 02 000000 		MOVE	TT,(R)		;SEE IF NXM SETS
  2776	013320	7 000 34 0 00 010000 		CONSO	APR,NXMKA	;TEST NXM FLAG
  2777	013321	254 00 0 14 000001 		JRST	1(TT1)		;OK
  2778	013322	263 17 0 00 000000 		POPJ	P,0		;ERROR
  2779						>>			;END FTEXEC AND FTDEC20
  2780					;	IFN	FTDEC20,<
  2781	013323				GETH20:	IFN	FTEXEC,<
  2782	013323	331 00 0 00 017022 		SKPUSR
  2783	013324	254 00 0 00 013325 		JRST	GETHSZ>		;NO HIGHSEG IN EXEC MODE
  2784					;	SKIPN	JDTFLG#		;JOB DATA AREA VALID?
  2785					;	JRST	GETHSZ		;NO, ASSUME NO HIGHSEG
  2786					;	MOVE	T,.JBHSO	;CHECK SPECIAL LOSEG CELL
  2787					;	LSH	T,^D9		;MAKE PAGE INTO ADDRESS
  2788					;	SKIPN	T		;BUT IF NOTHING SETUP,
  2789					;	MOVEI	T,400000	;ASSUME USUAL
  2790					;	SKIPN	.JBHRL		;ANY HIGHSEG?
  2791	013325	400 05 0 00 000000 	GETHSZ:	SETZ	T,		;NO, SAY NO HIGHSEG
  2792	013326	263 17 0 00 000000 		POPJ	P,		;	>;END IFN FTDEC20
  2793					XLIST
  2794					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 94
SMDDT	MAC	29-Nov-78 13:26		MEMORY MANAGER SUBROUTINES                                                         SEQ 0080

  2795
  2796					SUBTTL BINARY TO SYMBOLIC CONVERSION
  2797
  2798					;	PUSHJ P,LOOK		;AC T CONTAINS BINARY TO BE INTERPRETED
  2799					;	  RETURN 1		;NOTHING AT ALL FOUND THAT'S USEFUL
  2800					;	  RETURN 2		;SOMETHING FOUND, BUT NO EXACT MATCH
  2801					;	  RETURN 3		;EXACT MATCH FOUND AND PRINTED
  2802
  2803	013327	202 05 0 00 016756 	LOOK:	MOVEM	T,TEM		;SAVE VALUE BEING LOOKED UP
  2804	013330	260 17 0 00 013452 		PUSHJ	P,CSHVER	;SEE IF CACHE IS USEFUL
  2805	013331	254 00 0 00 013341 		 JRST LOOKC2		;ITS NOT. DO IT THE OLD WAY
  2806	013332	200 05 0 00 016756 		MOVE	T,TEM		;RECOVER VALUE
  2807	013333	205 02 0 00 777740 		MOVSI	R,-NSYMCS	;CHECK SYMBOL CACHE FIRST
  2808	013334	332 06 0 02 016760 	LOOKC1:	SKIPE	W1,SYMCSH(R)	;GET POINTER AND CHECK IN USE
  2809	013335	312 05 0 06 000001 		CAME	T,1(W1)		;VALUE SAME?
  2810	013336	334 00 0 00 000000 		SKIPA			;NO. DON'T LOOK AT IT THEN
  2811						JRST	[MOVE W2,0(W1)	;CHECK SYMBOL
  2812							TLNE W2,(DELI+DELO) ;DELETED?
  2813							JRST .+1	;YES, IGNORE IT
  2814							MOVEM W1,SYMPNT	;GOOD ONE
  2815							JUMPL W1,LOOKO2	;WAS OUTSIDE LOCAL
  2816	013337	254 00 0 00 016277 			JRST LOOKO4]	;WAS GLOBAL OR PROGRAM
  2817	013340	253 02 0 00 013334 		AOBJN	R,LOOKC1
  2818	013341	260 17 0 00 010541 	LOOKC2:	PUSHJ	P,SYMSET	;SET UP SYM SEARCH POINTER AND COUNT
  2819	013342	402 00 0 00 016617 		SETZM	SYMPNT		;INIT "OUTSIDE LOCAL" FLAG
  2820	013343	620 00 0 00 030000 		TRZ	F,MDLCLF!PNAMEF	;INIT FLAGS
  2821	013344	621 00 0 00 400000 		TLZ	F,(1B0)		;CLEAR SYMBOL TYPED FLAG
  2822	013345	200 05 0 00 016756 		MOVE	T,TEM		;RESTORE VALUE BEING LOOKED UP
  2823	013346	325 02 0 00 010523 		JUMPGE	R,CPOPJ		;RETURN, NOTHING FOUND
  2824
  2825	013347	200 07 0 02 000000 	LOOK1:	MOVE	W2,(R)		;GET FLAGS FOR SYMBOL
  2826	013350	607 07 0 00 740000 		TLNN	W2,(PNAME)	;PROGRAM NAME?
  2827						JRST	[JUMPE W2,LOOK3	;YES, IGNORE NULL PROGRAM NAMES
  2828							TRO F,PNAMEF	;SET PROGRAM NAME FLAG
  2829	013351	254 00 0 00 016305 			JRST LOOK3]	;GET NEXT SYMBOL
  2830	013352	311 05 0 02 000001 		CAML	T,1(R)		;VALUE TOO LARGE?
  2831	013353	603 07 0 00 600000 		TLNE	W2,(DELI!DELO)	;DELETED?
  2832	013354	254 00 0 00 013374 		JRST	LOOK3		;YES, GET NEXT SYMBOL
  2833	013355	607 07 0 00 040000 		TLNN	W2,(GLOBL)	;NOT PROGRAM NAME. GLOBAL SYMBOL?
  2834	013356	606 00 0 00 010000 		TRNN	F,PNAMEF	;LOCAL SYMBOL. INSIDE SPECIFIED PROGRAM?
  2835	013357	254 00 0 00 013426 		JRST	LOOK5		;CHECK FOR BEST VALUE SO FAR
  2836	013360	305 05 0 00 000020 		CAIGE	T,20		;QUANT IS IN AC RANGE?
  2837	013361	254 00 0 00 013374 		JRST	LOOK3		;YES, IGNORE OUTSIDE LOCALS
  2838	013362	200 04 0 02 000001 		MOVE	W,1(R)		;GET VALUE
  2839	013363	430 04 0 00 000005 		XOR	W,T		;COMPARE
  2840	013364	321 04 0 00 013374 		JUMPL	W,LOOK3		;REJECT IF SIGNS DIFFERENT
  2841	013365	336 07 0 00 016617 		SKIPN	W2,SYMPNT	;HAVE ANY OUTSIDE LOCAL NOW?
  2842	013366	254 00 0 00 013372 		JRST	LOOK2		;NO, USE THIS ONE
  2843	013367	200 04 0 02 000001 		MOVE	W,1(R)		;COMPARE VALUES
  2844	013370	274 04 0 07 000001 		SUB	W,1(W2)
  2845	013371	323 04 0 00 013374 		JUMPLE	W,LOOK3		;REJECT UNLESS BETTER
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 95
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0081

  2846
  2847	013372	620 00 0 00 020000 	LOOK2:	TRZ	F,MDLCLF	;NOTE NO AMBIGUITY NOW
  2848	013373	552 02 0 00 016617 		HRRZM	R,SYMPNT	;SAVE POINTER TO SYMBOL
  2849	013374	253 02 0 00 013375 	LOOK3:	AOBJN	R,.+1
  2850	013375	253 02 0 00 013401 		AOBJN	R,LOOK3A	;ADVANCE POINTER TO NEXT SYM. ANY LEFT?
  2851						IFE	FTFILE,<
  2852	013376	606 02 0 00 400000 		TRNN	R,1B18		;HIGH SEGMENT SEARCH?
  2853	013377	331 02 0 00 016606 		SKIPL	R,SAVHSM	;NO, SEARCH HIGH SEG TABLE , IF ANY
  2854						>
  2855	013400	200 02 1 00 016615 		MOVE	R,@SYMP		;NO, WRAP AROUND END OF TABLE
  2856	013401	343 03 0 00 013347 	LOOK3A:	AOJLE	S,LOOK1		;TRANSFER IF MORE SYMBOLS TO LOOK AT
  2857	013402	332 07 0 00 016617 		SKIPE	W2,SYMPNT	;OUTSIDE LOCALS FOUND?
  2858	013403	602 00 0 00 020000 		TRNE	F,MDLCLF	;THAT ARE NOT MULTIPLY SYMBOLED?
  2859	013404	254 00 0 00 013422 		JRST	LOOK4		;NO
  2860	013405	325 00 0 00 013411 		JUMPGE	F,LOOKO1	;JUMP IF NO REGULAR SYMBOL FOUND
  2861	013406	200 04 0 07 000001 		MOVE	W,1(W2)		;GET OUTSIDE LOCAL VALUE
  2862	013407	317 04 0 06 000001 		CAMG	W,1(W1)		;BETTER THAN REGULAR SYM VALUE?
  2863	013410	254 00 0 00 013422 		JRST	LOOK4		;NO, USE REGULAR SYM
  2864	013411	505 06 0 00 400000 	LOOKO1:	HRLI	W1,(1B0)	;FLAG OUTSIDE LOCAL
  2865	013412	260 17 0 00 013445 		PUSHJ	P,SYMCSI	;ADD TO SYMBOL CACHE
  2866	013413	200 06 0 00 016617 	LOOKO2:	MOVE	W1,SYMPNT	;PICK UP POINTER TO SYMBOL
  2867	013414	312 05 0 06 000001 		CAME	T,1(W1)		;VALUE IDENTICAL?
  2868						JRST	[SUB T,1(W1)	;NO, COMPUTE DIFFERENCE
  2869	013415	254 00 0 00 016310 			JRST CPOPJ1]	;RETURN INEXACT
  2870	013416	260 17 0 00 014124 		PUSHJ	P,SPT0		;YES, TYPE IT OUT
  2871	013417	201 05 0 00 000043 		MOVEI	T,"#"
  2872	013420	260 17 0 00 014600 		PUSHJ	P,TOUT		;TYPE # TO SHOW POSSIBLE AMBIGUITY
  2873	013421	254 00 0 00 013443 		JRST	LOOKO3		;DOUBLE SKIP RETURN
  2874
  2875	013422	402 00 0 00 016617 	LOOK4:	SETZM	SYMPNT		;FORGET ANY OUTSIDE LOCAL SEEN
  2876	013423	325 00 0 00 010523 		JUMPGE	F,CPOPJ		;RETURN 1 IF NO GOOD SYMBOLS FOUND
  2877	013424	274 05 0 06 000001 		SUB	T,1(W1)		;SOMETHING FOUND, CALCULATE HOW FAR OFF
  2878	013425	254 00 0 00 010522 		JRST	CPOPJ1		;RETURN 2, SOMETHING FOUND BUT NOT EXACT
  2879
  2880	013426	200 07 0 02 000001 	LOOK5:	MOVE	W2,1(R)		;GET VALUE FROM TABLE
  2881	013427	430 07 0 00 000005 		XOR	W2,T		;COMPARE SIGNS
  2882	013430	321 07 0 00 013374 		JUMPL	W2,LOOK3	;REJECT IF SIGNS DIFFERENT
  2883	013431	325 00 0 00 013435 		JUMPGE	F,LOOK6		;TRANSFER IF NOTHING FOUND YET
  2884	013432	200 04 0 02 000001 		MOVE	W,1(R)		;GET VALUE FROM TABLE
  2885	013433	274 04 0 06 000001 		SUB	W,1(W1)		;COMPARE WITH BEST VALUE SO FAR
  2886	013434	323 04 0 00 013374 		JUMPLE	W,LOOK3		;REJECT IF WORSE
  2887	013435	540 06 0 00 000002 	LOOK6:	HRR	W1,R		;SAVE AS BEST VALUES SO FAR
  2888	013436	661 00 0 00 400000 		TLO	F,(1B0)		;SET FLAG SHOWING SOMETHING FOUND
  2889	013437	326 07 0 00 013374 		JUMPN	W2,LOOK3	;IF NOT PERFECT, CONTINUE LOOKING
  2890	013440	505 06 0 00 000000 		HRLI	W1,0		;FLAG GLOBAL OR PROGRAM LOCAL
  2891	013441	260 17 0 00 013445 		PUSHJ	P,SYMCSI	;ADD TO SYMBOL CACHE
  2892	013442	260 17 0 00 014124 	LOOKO4:	PUSHJ	P,SPT0		;PERFECT, TYPE IT OUT
  2893	013443	350 00 0 17 000000 	LOOKO3:	AOS	(P)		;SKIP TWICE
  2894	013444	254 00 0 00 010522 		JRST	CPOPJ1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 96
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0082

  2895					;ADD SYMBOL TO SYMBOL CACHE
  2896
  2897	013445	350 07 0 00 017020 	SYMCSI:	AOS	W2,SYMCSP	;ROUND-ROBIN INSERT
  2898	013446	301 07 0 00 000040 		CAIL	W2,NSYMCS	;WRAPAROUND?
  2899	013447	403 07 0 00 017020 		SETZB	W2,SYMCSP	;YES
  2900	013450	202 06 0 07 016760 		MOVEM	W1,SYMCSH(W2)	;STORE POINTER
  2901	013451	263 17 0 00 000000 		POPJ	P,
  2902
  2903
  2904					;VERIFY CACHE IS NOW USEFUL, I.E. IT POINTS TO THE PROPER SYMBOL
  2905					;TABLE
  2906
  2907	013452	260 17 0 00 010541 	CSHVER:	PUSHJ	P,SYMSET	;GET CURRENT POINTERS
  2908	013453	316 02 0 00 017021 		CAMN	R,OLDSYM	;SAME AS PREVIOUS?
  2909	013454	254 00 0 00 010522 		JRST	CPOPJ1		;YES. GO USE IT
  2910	013455	202 02 0 00 017021 		MOVEM	R,OLDSYM	;SAVE CURRENT SYMBOL POINTER
  2911									; AND FALL THROUGH TO FLUSH CACHE
  2912					;CLEAR SYMBOL CACHE
  2913
  2914	013456	200 14 0 00 016312 	CLRCSH:	MOVE	TT1,[SYMCSH,,SYMCSH+1]
  2915	013457	402 00 0 14 777777 		SETZM	-1(TT1)
  2916	013460	251 14 0 00 017017 		BLT	TT1,SYMCSH+NSYMCS-1
  2917	013461	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 97
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0083

  2918
  2919	013462	202 05 0 00 016602 	CONSYM:	MOVEM	T,LWT
  2920						IFN	FTFILE,<
  2921						MOVEM	T,POKER+1>	;STORE FOR /P/M LOGIC
  2922	013463	606 00 0 00 002000 		TRNN	F,LF1
  2923	013464	254 00 1 00 000010 		JRST	@SCH		;PIN OR FTOC
  2924	013465	602 00 0 00 000400 		TRNE	F,CF1
  2925	013466	254 00 0 00 014067 		JRST  FTOC
  2926
  2927	013467	641 05 0 00 700000 	PIN:	TLC	T,700000	;PRINT INSTRUCTION
  2928	013470	647 05 0 00 700000 		TLCN	T,700000
  2929	013471	254 00 0 00 013623 		JRST	INOUT		;IN-OUT INSTRUCTION OR NEG NUM
  2930	013472	404 05 0 00 016313 		AND	T,[XWD 777000,0]	;EXTRACT OPCODE BITS
  2931	013473	322 05 0 00 013557 		JUMPE	T,HLFW		;TYPE AS HALF WORDS
  2932					;	IFN	FTDEC20,<
  2933	013474	603 05 0 00 700000 		TLNE	T,(700B8)	;NO BUILT-IN OPCODES .L. 100
  2934					;>
  2935	013475	260 17 0 00 015776 		PUSHJ	P,OPTYPE
  2936					;	IFN	FTDEC20,<
  2937	013476	602 00 0 00 000002 		TRNE	F,ITF		;INSTRUCTION TYPED?
  2938	013477	254 00 0 00 013505 		JRST	PFULI1		;YES
  2939	013500	200 05 0 00 016602 		MOVE	T,LWT		;NO, GET WORD
  2940	013501	260 17 0 00 013327 		PUSHJ	P,LOOK		;TRY FOR FULL WORD MATCH
  2941	013502	254 00 0 00 013505 		 JRST PFULI1		;NOT FOUND
  2942	013503	254 00 0 00 013505 		 JRST PFULI1		;CLOSE IS NOT GOOD ENOUGH
  2943	013504	263 17 0 00 000000 		POPJ	P,		;FOUND AND PRINTED
  2944
  2945	013505				PFULI1:	;>
  2946	013505	205 05 0 00 777000 		MOVSI	T,777000
  2947	013506	404 05 0 00 016602 		AND	T,LWT
  2948	013507	602 00 0 00 000002 		TRNE	F,ITF		;HAS INSTRUCTION BEEN TYPED?
  2949	013510	254 00 0 00 013514 		JRST	PIN2		;YES
  2950	013511	260 17 0 00 013327 		PUSHJ	P,LOOK		;NO, LOOK IN SYMBOL TABLE
  2951	013512	254 00 0 00 013557 		 JRST HLFW		;NOTHING FOUND, OUTPUT AS HALFWORDS
  2952	013513	254 00 0 00 013557 		 JRST HLFW		;NO EXACT MATCH, OUTPUT AS HALFWORDS
  2953	013514	660 00 0 00 000200 	PIN2:	  TRO F,NAF		;EXACT MATCH TYPED, ALLOW NEG ADDRESSES
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 98
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0084

  2954
  2955	013515	260 17 0 00 014323 		PUSHJ	P,TSPC
  2956	013516	135 05 0 00 016314 		LDB	T,[XWD 270400,LWT]	;GET AC FIELD
  2957	013517	322 05 0 00 013527 		JUMPE	T,PI4
  2958	013520	554 04 0 00 016602 		HLRZ	W,LWT
  2959	013521	301 04 0 00 254000 		CAIL	W,(JRST)
  2960	013522	303 04 0 00 256777 		CAILE	W,256777	;IS INST BETWEEN JRST AND XCT?
  2961						JRST	[PUSHJ P,PAD	;NO, PRINT SYMBOLIC AC
  2962	013523	254 00 0 00 016315 			JRST PI3A]
  2963	013524	260 17 0 00 014067 		PUSHJ	P,TOC		;YES, PRINT NUMERIC AC
  2964	013525	201 06 0 00 000054 	PI3A:	MOVEI	W1,","
  2965	013526	260 17 0 00 014264 		PUSHJ	P,TEXT
  2966	013527	200 06 0 00 016602 	PI4:	MOVE	W1,LWT
  2967	013530	201 05 0 00 000100 		MOVEI	T,"@"
  2968	013531	603 06 0 00 000020 		TLNE	W1,20		;CHECK FOR INDIRECT BIT
  2969	013532	260 17 0 00 014600 		PUSHJ	P,TOUT
  2970	013533	550 05 0 00 016602 		HRRZ	T,LWT
  2971	013534	135 04 0 00 016317 		LDB	W,[XWD 331100,LWT]	;INSTRUCTION BITS
  2972						IFN	FTDEC20,<
  2973						MOVE	W1,W		;GET COPY
  2974						TRC	W1,600
  2975						TRNN	W1,710		;IS INST TRXX OR TLXX?
  2976						JRST	[PUSHJ P,TOC	;YES, PRINT ADDRESS NUMERIC
  2977							JRST PI7]>	;END IFN FTDEC20
  2978	013535	301 04 0 00 000240 		CAIL	W,240
  2979	013536	303 04 0 00 000247 		CAILE	W,247
  2980	013537	254 00 0 00 013555 		JRST	PI8		;ALL (EXCEPT ASH,ROT,LSH) HAVE SYMBOLIC ADRS
  2981	013540	607 06 0 00 000020 		TLNN	W1,20
  2982	013541	306 04 0 00 000243 		CAIN	W,<JFFO>_-33
  2983	013542	254 00 0 00 013555 		JRST	PI8		;JFFO AND @ GET SYMBOLIC ADDRESSES
  2984	013543	260 17 0 00 013615 		PUSHJ	P,PADS3A	;ONLY ABSOLUTE ADDRESSING FOR LSH, ASH, AND ROT
  2985	013544	620 00 0 00 000200 	PI7:	TRZ	F,NAF
  2986	013545	135 02 0 00 016320 		LDB	R,[XWD 220400,LWT]	;INDEX REGISTER CHECK
  2987	013546	322 02 0 00 010523 		JUMPE	R,CPOPJ		;EXIT
  2988	013547	201 05 0 00 000050 		MOVEI	T,"("
  2989	013550	260 17 0 00 014600 		PUSHJ	P,TOUT
  2990	013551	200 05 0 00 000002 		MOVE	T,R
  2991	013552	260 17 0 00 013566 		PUSHJ	P,PAD
  2992	013553	201 05 0 00 000051 		MOVEI	T,")"
  2993	013554	254 00 0 00 014600 		JRST	TOUT		;EXIT
  2994
  2995	013555	260 17 0 00 013566 	PI8:	PUSHJ	P,PAD
  2996	013556	254 00 0 00 013544 		JRST	PI7
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 99
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0085

  2997
  2998					HLFW:	REPEAT	0,< MOVE T,LWT
  2999						CAML	T,[DDTINT SAVPI]
  3000						CAMLE	T,[DDTINT BNADR+2]
  3001						SKIPA
  3002						JRST	PAD>
  3003	013557	554 05 0 00 016602 		HLRZ	T,LWT		;PRINT AS HALF WORDS
  3004	013560	322 05 0 00 013565 		JUMPE	T,HLFW1		;TYPE ONLY RIGHT ADR IF LEFT ADR=0
  3005	013561	660 00 0 00 000200 		TRO	F,NAF		;ALLOW NEGATIVE ADDRESSES
  3006	013562	260 17 0 00 013566 		PUSHJ	P,PAD
  3007	013563	205 06 0 00 261300 		MOVSI	W1,(ASCII /,,/)
  3008	013564	260 17 0 00 014266 		PUSHJ	P,TEXT2		;TYPE ,,
  3009	013565	550 05 0 00 016602 	HLFW1:	HRRZ	T,LWT
  3010
  3011					;PRINT ADDRESSES (ARG USUALLY 18 BITS BUT CAN BE 36 BITS)
  3012
  3013	013566	405 05 0 00 777777 	PAD:	ANDI	T,-1
  3014	013567	254 00 1 00 000011 		JRST	@AR		;PADSO OR PAD1
  3015
  3016	013570	322 05 0 00 014237 	PADSO:	JUMPE	T,FP7B		;PRINT A ZERO
  3017	013571	260 17 0 00 013327 		PUSHJ	P,LOOK
  3018	013572	254 00 0 00 013614 		 JRST PADS3		;NOTHING FOUND, TYPE NUMERIC
  3019	013573	334 07 0 06 000001 		 SKIPA W2,1(W1)		;SOMETHING FOUND, GET VALUE
  3020	013574	263 17 0 00 000000 		 POPJ P,		;EXACT MATCH FOUND AND TYPED
  3021						IFN	FTDEC20,<
  3022						CAIGE	T,1000>
  3023						IFE	FTDEC20,<
  3024						IFE	FTEXEC!FTFILE,<
  3025						CAIGE	T,100>		;IN USER MODE, PRINT NUMERIC IF SYMBOL OFF
  3026						IFN	FTEXEC!FTFILE,<
  3027	013575	305 05 0 00 000200 		CAIGE	T,200>		;  BY 100(8) OR MORE- 200(8) FOR SMDDT
  3028						>
  3029	013576	305 07 0 00 030000 		CAIGE	W2,30000	;PRINT ADRS .LT. 30000 NUMERICALLY (SMDDT)
  3030	013577	254 00 0 00 013614 		JRST	PADS3		;PRINT ADDRESS NUMERICALLY
  3031	013600	200 07 0 00 016756 		MOVE	W2,TEM		;GET ORIGINAL QUANTITY
  3032	013601	301 07 0 00 777700 		CAIL	W2,-100		;ADDRESS BETWEEN -100 AND -1?
  3033	013602	254 00 0 00 013614 		JRST	PADS3		;YES, PRINT NUMERICALLY
  3034	013603	202 05 0 00 016756 		MOVEM	T,TEM
  3035	013604	260 17 0 00 014124 		PUSHJ	P,SPT0
  3036	013605	201 05 0 00 000043 		MOVEI	T,"#"
  3037	013606	332 00 0 00 016617 		SKIPE	SYMPNT		;SYMBOL IS OUTSIDE LOCAL?
  3038	013607	260 17 0 00 014600 		PUSHJ	P,TOUT		;YES, FLAG
  3039	013610	201 05 0 00 000053 		MOVEI	T,"+"
  3040	013611	260 17 0 00 014600 	PADS1A:	PUSHJ	P,TOUT
  3041	013612	550 05 0 00 016756 		HRRZ	T,TEM
  3042	013613	254 00 0 00 014067 	PAD1:	JRST	TOC		;EXIT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 100
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0086

  3043	013614	200 05 0 00 016756 	PADS3:	MOVE	T,TEM
  3044	013615	602 00 0 00 000200 	PADS3A:	TRNE	F,NAF
  3045	013616	305 05 0 00 776000 		CAIGE	T,776000
  3046	013617	254 00 0 00 014067 		JRST	TOC
  3047	013620	212 05 0 00 016756 	PADS3B:	MOVNM	T,TEM
  3048	013621	201 05 0 00 000055 		MOVEI	T,"-"
  3049	013622	254 00 0 00 013611 		JRST	PADS1A
  3050
  3051	013623	650 05 0 00 016321 	INOUT:	TDC	T,[XWD -1,400000]	;IO INSTRUCTION OR NEG NUM
  3052	013624	656 05 0 00 016321 		TDCN	T,[XWD -1,400000]
  3053	013625	254 00 0 00 013620 		JRST	PADS3B		;TYPE AS NEG NUM
  3054	013626	135 02 0 00 016322 		LDB	R,[POINT 6,T,5]		;GET HI-ORDER OP CODE BITS
  3055	013627	306 02 0 00 000071 		CAIN	R,71		;OP CODE 71X ?
  3056	013630	254 00 0 00 013665 		JRST	SMINOUT		;YES, SM-10 I/O
  3057	013631	306 02 0 00 000072 		CAIN	R,72		;OP CODE 72X ?
  3058	013632	254 00 0 00 013665 		JRST	SMINOUT		;YES, SM-10 I/O
  3059	013633	135 02 0 00 016323 		LDB	R,[POINT 7,T,9]	;PICK OUT IO DEVICE BITS
  3060	013634	301 02 0 00 000160 		CAIL	R,700_-2	;IF DEVICE .L. 700, THEN TYPE
  3061	013635	254 00 0 00 013557 		JRST	HLFW		;TYPE AS HALF WORDS
  3062	013636	135 02 0 00 016324 		LDB	R,[POINT 3,T,12]
  3063	013637	137 02 0 00 016325 		DPB	R,[POINT 6,T,8]	;MOVE IO BITS OVER FOR OP DECODER
  3064	013640	260 17 0 00 015776 		PUSHJ	P,OPTYPE
  3065	013641	260 17 0 00 014323 		PUSHJ	P,TSPC
  3066	013642	205 05 0 00 077400 		MOVSI	T,077400
  3067	013643	404 05 0 00 016602 		AND	T,LWT
  3068	013644	322 05 0 00 013527 		JUMPE	T,PI4
  3069	013645	260 17 0 00 013327 		PUSHJ	P,LOOK		;LOOK FOR DEVICE NUMBER
  3070	013646	254 00 0 00 013651 		 JRST INOUT2		;NOTHING FOUND, PRINT AS OCTAL
  3071	013647	254 00 0 00 013651 		 JRST INOUT2		;NO EXACT MATCH, PRINT AS OCTAL
  3072	013650	254 00 0 00 013525 		 JRST PI3A		;EXACT MATCH TYPED
  3073	013651	200 05 0 00 016756 	INOUT2:	MOVE	T,TEM
  3074	013652	242 05 0 00 777750 		LSH	T,-30
  3075	013653	260 17 0 00 014067 		PUSHJ	P,TOC
  3076	013654	254 00 0 00 013525 		JRST	PI3A
  3077
  3078	013655	603 00 0 00 000001 	MASK:	TLNE	F,(QF)
  3079	013656	254 00 0 00 013663 		JRST	MASK1
  3080						IFE	FTFILE,<
  3081	013657	201 05 0 00 016676 		MOVEI	T,MSK
  3082	013660	201 04 0 00 000001 	MASK2:	MOVEI	W,1
  3083	013661	202 04 0 00 016604 		MOVEM	W,FRASE1
  3084	013662	254 00 0 00 010445 		JRST	QUANIN
  3085						>
  3086						IFN	FTFILE,<JRST ERR>
  3087	013663	202 05 0 00 016676 	MASK1:	MOVEM	T,MSK
  3088	013664	254 00 0 00 010200 		JRST	RET
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 101
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0087

  3089					;SM-10 I/O INSTRUCTION PRINT
  3090
  3091	013665	261 17 0 00 000006 	SMINOUT:PUSH	P,W1
  3092	013666	261 17 0 00 000007 		PUSH	P,W2
  3093	013667	135 02 0 00 016326 		LDB	R,[POINT 4,T,8]	;GET INST BITS
  3094	013670	402 00 0 00 017076 		SETZM	SMIOB#
  3095	013671	626 02 0 00 000010 		TRZN	R,10		;SM-10 BYTE I/O INST ?
  3096	013672	476 00 0 00 017076 		SETOM	SMIOB		;YES
  3097	013673	200 05 0 02 013703 		MOVE	T,SMTABLE(R)	;GET ASCII I/O CODE
  3098	013674	260 17 0 00 014263 		PUSHJ	P,TEXTT		;PRINT IT
  3099	013675	201 05 0 00 000102 		MOVEI	T,"B"
  3100	013676	332 00 0 00 017076 		SKIPE	SMIOB
  3101	013677	260 17 0 00 014600 		PUSHJ	P,TOUT		;IF I/O BYTE, PRINT "B"
  3102	013700	262 17 0 00 000007 		POP	P,W2
  3103	013701	262 17 0 00 000006 		POP	P,W1
  3104	013702	254 00 0 00 013514 		JRST	PIN2
  3105
  3106	013703	124 111 117 105 000 	SMTABLE:ASCII/TIOE/
  3107	013704	124 111 117 116 000 		ASCII/TION/
  3108	013705	122 104 111 117 000 		ASCII/RDIO/
  3109	013706	127 122 111 117 000 		ASCII/WRIO/
  3110	013707	102 123 111 117 000 		ASCII/BSIO/
  3111	013710	102 103 111 117 000 		ASCII/BCIO/
  3112	013711	125 116 104 105 106 		ASCII/UNDEF/
  3113	013712	125 116 104 105 106 		ASCII/UNDEF/
  3114	013713	125 116 104 105 106 		ASCII/UNDEF/
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 102
SMDDT	MAC	29-Nov-78 13:26		BINARY TO SYMBOLIC CONVERSION                                                      SEQ 0088

  3115
  3116					SUBTTL SEARCH LOGIC
  3117
  3118	013714	661 00 0 00 000020 	EFFEC:	TLO	F,(LTF)
  3119	013715	550 05 0 00 000005 		HRRZ	T,T
  3120	013716	201 02 0 00 774000 	WORD:	MOVEI	R,322000-326000	;JUMPE-JUMPN
  3121	013717	271 02 0 00 326240 	NWORD:	ADDI	R,326000+40*T	;JUMPN T,
  3122	013720	506 02 0 00 016427 		HRLM	R,SEAR2
  3123	013721	627 00 0 00 000001 		TLZN	F,(QF)
  3124	013722	254 00 0 00 010170 		JRST	ERR
  3125	013723	452 05 0 00 016575 		SETCAM	T,WRD
  3126	013724	205 05 0 00 777772 		MOVSI	T,FRASE-DEN-1	;PREVENT TYPE OUT OF DDT PARTS
  3127	013725	462 00 0 05 016600 		SETCMM	FRASE(T)
  3128	013726	253 05 0 00 013725 		AOBJN	T,.-1
  3129	013727	200 05 0 00 016622 		MOVE	T,ULIMIT
  3130	013730	603 00 0 00 002000 		TLNE	F,(SAF)
  3131	013731	661 00 0 00 000001 		TLO	F,(QF)		;SIMULATE A $Q TYPED
  3132	013732	260 17 0 00 014020 		PUSHJ	P,SETUP
  3133	013733	260 17 0 00 014313 		PUSHJ	P,CRF
  3134	013734	260 17 0 00 013160 	SEAR1:	PUSHJ	P,FETCH
  3135						IFE	FTDEC20,<
  3136	013735	254 00 0 00 013751 		JRST	SEAR2B>
  3137						IFN	FTDEC20,<
  3138						 JRST	[MOVEI R,777	;FETCH FAILED, BUMP TO NEXT PAGE
  3139							IORB R,DEFV
  3140							JRST SEAR2A]>	;CONTINUE SEARCH
  3141	013736	603 00 0 00 000020 		TLNE	F,(LTF)		;CHECK FOR EFFECTIVE ADDRESS SEARCH
  3142	013737	254 00 0 00 013775 		JRST	EFFEC0
  3143	013740	444 05 0 00 016575 		EQV	T,WRD
  3144	013741	404 05 0 00 016676 		AND	T,MSK
  3145	013742	256 00 0 00 016427 	SEAR2G:	XCT	SEAR2		;(JUMPE T, OR JUMPN T,) TO SEAR3 IF FOUND
  3146	013743	350 02 0 00 016621 	SEAR2A:	AOS	R,DEFV		;GET NEXT LOCATION
  3147	013744	606 02 0 00 000777 		TRNN	R,777		;CHECK LISTEN ONLY ONCE PER PAGE
  3148	013745	260 17 0 00 014642 		PUSHJ	P,LISTEN	;ANYTHING TYPED?
  3149	013746	313 02 0 00 016622 		 CAMLE R,ULIMIT		;OR END OF SEARCH?
  3150	013747	254 00 0 00 013755 		JRST	SEARFN		;YES
  3151	013750	254 00 0 00 013734 		JRST	SEAR1		;NO, LOOK SOME MORE
  3152
  3153						IFE	FTDEC20,<
  3154	013751	201 02 0 00 377777 	SEAR2B:	MOVEI	R,400000-1	;MOVE UP TO HI SEGMENT
  3155	013752	437 02 0 00 016621 		IORB	R,DEFV		;PUT IN MEMORY TOO
  3156	013753	606 02 0 00 400000 		TRNN	R,400000	;ALREADY IN HI SEGMENT?
  3157	013754	254 00 0 00 013743 		JRST	SEAR2A>		;NO
  3158	013755	462 00 0 00 016602 	SEARFN:	SETCMM	LWT		;COMPLEMENT BITS BACK AND STOP SEARCH
  3159	013756	254 00 0 00 010010 		JRST	DD1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 103
SMDDT	MAC	29-Nov-78 13:26		SEARCH LOGIC                                                                       SEQ 0089

  3160
  3161	013757	260 17 0 00 014642 	SEAR3:	PUSHJ	P,LISTEN	;ANY TYPEIN?
  3162	013760	334 00 0 00 000000 		 SKIPA			;NO
  3163	013761	254 00 0 00 013755 		JRST	SEARFN		;YES, TERMINATE SEARCH
  3164	013762	200 02 0 00 016621 		MOVE	R,DEFV
  3165	013763	260 17 0 00 013160 		PUSHJ	P,FETCH
  3166	013764	254 00 0 00 010170 		JRST	ERR
  3167	013765	621 00 0 00 004000 		TLZ	F,(STF)		;GET RID OF SUPPRESS TYPEOUT MODE
  3168	013766	200 05 0 00 016621 		MOVE	T,DEFV
  3169	013767	260 17 0 00 011270 		PUSHJ	P,PSHLLC	;PUSH OLD LOCATION COUNTER
  3170	013770	260 17 0 00 011141 		PUSHJ	P,LI1		;CALL REGISTER EXAMINATION LOGIC TO TYPE OUT
  3171	013771	260 17 0 00 014313 		PUSHJ	P,CRF
  3172	013772	462 00 0 00 016602 		SETCMM	LWT
  3173	013773	462 00 0 00 016756 		SETCMM	TEM
  3174	013774	254 00 0 00 013743 	SEAR4:	JRST  SEAR2A
  3175
  3176	013775	201 04 0 00 000100 	EFFEC0:	MOVEI	W,100
  3177	013776	202 04 0 00 016756 		MOVEM	W,TEM
  3178	013777	200 04 0 00 000005 	EFFEC1:	MOVE	W,T
  3179	014000	135 02 0 00 016206 		LDB	R,[POINT 4,T,17]	;GET IR FIELD
  3180	014001	322 02 0 00 014006 		JUMPE	R,EFFEC2
  3181	014002	260 17 0 00 013160 		PUSHJ	P,FETCH
  3182	014003	254 00 0 00 010170 		JRST	ERR
  3183	014004	553 00 0 00 000005 		HRRZS	T		;GET RID OF BITS IN LEFT IN ORDER
  3184	014005	271 05 0 04 000000 		ADDI	T,(W)		;  PREVENT AROV WHEN ADDING ADDRESSES
  3185	014006	540 02 0 00 000005 	EFFEC2:	HRR	R,T
  3186	014007	607 04 0 00 000020 		TLNN	W,20		;INDIRECT BIT CHECK
  3187	014010	254 00 0 00 014015 		JRST	EFFEC3
  3188	014011	372 00 0 00 016756 		SOSE,TEM
  3189	014012	260 17 0 00 013160 		PUSHJ	P,FETCH
  3190	014013	254 00 0 00 013774 		JRST	SEAR4
  3191	014014	254 00 0 00 013777 		JRST	EFFEC1
  3192	014015	444 05 0 00 016575 	EFFEC3:	EQV	T,WRD
  3193	014016	405 05 0 00 777777 		ANDI	T,777777
  3194	014017	254 00 0 00 013742 		JRST	SEAR2G
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 104
SMDDT	MAC	29-Nov-78 13:26		SEARCH LOGIC                                                                       SEQ 0090

  3195
  3196	014020	607 00 0 00 000001 	SETUP:	TLNN	F,(QF)		;QUANTITY TYPED?
  3197						IFE	FTDEC20,<
  3198	014021	201 05 0 00 777777 		MOVEI	T,777777>	;NO, DEFAULT HIGH ADR IS TOP OF MEMORY
  3199						IFN	FTDEC20,<
  3200						IFN	FTEXEC,<
  3201						HRRZ	T,.JBFF>	;DEFAULT UPPER LIMIT
  3202						IFE	FTEXEC,<
  3203						MOVEI	T,777777>>
  3204	014022	552 05 0 00 016622 		HRRZM	T,ULIMIT	;SAVE LAST ADDRESS OF SEARCH
  3205	014023	553 02 0 00 016621 		HRRZS	R,DEFV		;GET 1ST ADDRESS
  3206	014024	607 00 0 00 001000 		TLNN	F,(FAF)		;WAS A 1ST ADR SPECIFIED?
  3207	014025	403 02 0 00 016621 		SETZB	R,DEFV		;NO, MAKE IT ZERO
  3208	014026	313 02 0 00 016622 		CAMLE	R,ULIMIT	;LIMITS IN A REASONABLE ORDER?
  3209	014027	254 00 0 00 010170 		JRST	ERR		;NO
  3210	014030	263 17 0 00 000000 		POPJ	P,		;YES, RETURN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 105
SMDDT	MAC	29-Nov-78 13:26		SEARCH LOGIC                                                                       SEQ 0091

  3211
  3212	014031	607 00 0 00 010000 	ZERO:	TLNN	F,(CCF)
  3213	014032	254 00 0 00 010170 		JRST	ERR
  3214	014033	260 17 0 00 014020 		PUSHJ	P,SETUP
  3215	014034	550 03 1 00 016615 		HRRZ	S,@SYMP		;GET 1ST ADR OF SYMBOL TABLE
  3216	014035	574 06 1 00 016615 		HLRE	W1,@SYMP	;GET LENGTH OF SYM TABLE
  3217	014036	274 06 0 00 000003 		SUB	W1,S		;GET NEG OF LAST ADR
  3218	014037	213 00 0 00 000006 		MOVNS	W1		;GET POS LAST ADR
  3219	014040	201 05 0 00 000000 		MOVEI	T,0		;0 TO STORE IN MEMORY
  3220	014041	606 02 0 00 777760 	ZERO1:	TRNN	R,777760
  3221	014042	254 00 0 00 014057 		JRST	ZEROR		;OK TO ZERO AC'S
  3222						IFE	FTDEC20,<
  3223						IFN	FTEXEC,<
  3224	014043	331 00 0 00 017022 		SKPUSR
  3225						>
  3226						IFN	FTEXEC!FTFILE,<
  3227						JRST	[CAIGE R,XZLOW
  3228							MOVEI R,XZLOW	;IN EXEC MODE, DON'T ZERO 20-40
  3229	014044	254 00 0 00 016327 			JRST ZERO3 ] >
  3230						>
  3231						IFE	FTFILE,<
  3232	014045	305 02 0 00 000140 		CAIGE	R,ZLOW
  3233	014046	201 02 0 00 000140 		MOVEI	R,ZLOW		;DON'T ZERO 20 THRU ZLOW
  3234	014047	301 02 0 00 010000 	ZERO3:	CAIL	R,DDTX
  3235	014050	303 02 0 00 017075 		CAILE	R,DDTEND
  3236	014051	254 00 0 00 014053 		JRST	.+2
  3237	014052	201 02 0 00 017075 		MOVEI	R,DDTEND	;DON'T ZERO DDT
  3238						IFE	FTDEC20,<
  3239	014053	311 02 0 00 000003 		CAML	R,S
  3240	014054	313 02 0 00 000006 		CAMLE	R,W1>
  3241	014055	254 00 0 00 014057 		JRST	.+2
  3242	014056	550 02 0 00 000006 		HRRZ	R,W1		;DON'T ZERO SYMBOL TABLE
  3243						>
  3244						IFN	FTFILE,<
  3245					ZERO3:>
  3246	014057	313 02 0 00 016622 	ZEROR:	CAMLE	R,ULIMIT	;ABOVE LIMITS?
  3247	014060	254 00 0 00 010010 		JRST	DD1		;YES, STOP
  3248	014061	260 17 0 00 013106 		PUSHJ	P,DEPMEM	;DEPOSIT T
  3249						IFE	FTFILE,<
  3250	014062	664 02 0 00 377777 		 TROA R,377777		;
  3251	014063	344 02 0 00 014041 		AOJA	R,ZERO1
  3252	014064	606 02 0 00 400000 		TRNN	R,400000	;HI SEGMENT?
  3253	014065	344 02 0 00 014041 		AOJA	R,ZERO1		;NO, KEEP GOING
  3254						>
  3255	014066	254 00 0 00 010010 		JRST	DD1		;FINISH
  3256						IFN	FTFILE,<AOJA R,ZERO1>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 106
SMDDT	MAC	29-Nov-78 13:26		SEARCH LOGIC                                                                       SEQ 0092

  3257
  3258					SUBTTL OUTPUT SUBROUTINES
  3259
  3260	014067				FTOC:				;NUMERIC OUTPUT SUBROUTINE
  3261	014067	550 06 0 00 000012 	TOC:	HRRZ	W1,ODF
  3262	014070	306 06 0 00 000010 		CAIN	W1,10		;IS OUPUT RADIX NOT OCTAL, OR
  3263	014071	607 05 0 00 777777 		TLNN	T,-1		;ARE THERE  NO LEFT HALF BITS?
  3264	014072	254 00 0 00 014101 		JRST	TOCA		;YES, DO NOTHING SPECIAL
  3265	014073	542 05 0 00 016430 		HRRM	T,TOCS		;NO, TYPE AS HALF WORD CONSTANT
  3266	014074	557 00 0 00 000005 		HLRZS	T		;GET LEFT HALF
  3267	014075	260 17 0 00 014104 		PUSHJ	P,TOC0		;TYPE LEFT HALF
  3268	014076	205 06 0 00 261300 		MOVSI	W1,(ASCII /,,/)
  3269	014077	260 17 0 00 014266 		PUSHJ	P,TEXT2		;TYPE ,,
  3270	014100	256 00 0 00 016430 		XCT	TOCS		;GET RIGHT HALF BACK
  3271	014101	550 06 0 00 000012 	TOCA:	HRRZ	W1,ODF		;IS OUTPUT RADIX DECIMAL?
  3272	014102	306 06 0 00 000012 		CAIN	W1,12
  3273	014103	254 00 0 00 014115 		JRST	TOC4		;YES,TYPE SIGNED WITH PERIOD
  3274	014104	246 05 0 00 777735 	TOC0:	LSHC	T,-43
  3275	014105	242 06 0 00 777777 		LSH	W1,-1		;W1=T+1
  3276	014106	235 05 1 00 000012 		DIVI	T,@ODF
  3277	014107	506 06 0 17 000000 		HRLM	W1,0(P)
  3278	014110	332 00 0 00 000005 		SKIPE	T
  3279	014111	260 17 0 00 014104 		PUSHJ	P,TOC0
  3280	014112	554 05 0 17 000000 		HLRZ	T,0(P)
  3281	014113	271 05 0 00 000060 		ADDI	T,"0"
  3282	014114	254 00 0 00 014600 		JRST	TOUT
  3283
  3284	014115	200 02 0 00 000005 	TOC4:	MOVE	A,T		;TYPE AS SIGNED DECIMAL INTEGER
  3285	014116	325 05 0 00 014121 		JUMPGE	T,TOC5
  3286	014117	201 05 0 00 000055 		MOVEI	T,"-"
  3287	014120	260 17 0 00 014600 		PUSHJ	P,TOUT
  3288	014121	260 17 0 00 014230 	TOC5:	PUSHJ	P,FP7		;DECIMAL PRINT ROUTINE
  3289	014122	201 05 0 00 000056 	TOC6:	MOVEI	T,"."
  3290	014123	254 00 0 00 014600 		JRST	TOUT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 107
SMDDT	MAC	29-Nov-78 13:26		OUTPUT SUBROUTINES                                                                 SEQ 0093

  3291					;SYMBOL OUTPUT SUBROUTINE
  3292
  3293	014124	552 06 0 00 016620 	SPT0:	HRRZM	W1,SPSAV	;SAVE POINTER TO TYPED SYM
  3294	014125				SPT:				;RADIX 50 SYMBOL PRINT
  3295	014125	135 05 0 00 016332 		LDB	T,[POINT 32,0(W1),35]	;GET SYMBOL
  3296	014126	231 05 0 00 000050 	SPT1:	IDIVI	T,50
  3297	014127	506 06 0 17 000000 		HRLM	W1,0(P)
  3298	014130	322 05 0 00 014132 		JUMPE	T,SPT2
  3299	014131	260 17 0 00 014126 		PUSHJ	P,SPT1
  3300	014132	554 05 0 17 000000 	SPT2:	HLRZ	T,0(P)
  3301	014133	322 05 0 00 010523 		JUMPE	T,CPOPJ		;FLUSH NULL CHARACTERS
  3302	014134	271 05 0 00 000257 		ADDI	T,260-1
  3303	014135	303 05 0 00 000271 		CAILE	T,271
  3304	014136	271 05 0 00 000007 		ADDI	T,301-272
  3305	014137	303 05 0 00 000332 		CAILE	T,332
  3306	014140	275 05 0 00 000070 		SUBI	T,334-244
  3307	014141	306 05 0 00 000243 		CAIN	T,243
  3308	014142	201 05 0 00 000256 		MOVEI	T,256
  3309	014143	254 00 0 00 014600 		JRST	TOUT
  3310
  3311	014144				SYMD:				;$D ;DELETE LAST SYM & PRINT NEW
  3312	014144	550 02 0 00 016620 		HRRZ	R,SPSAV		;PICK UP POINTER TO LAST SYM
  3313	014145	322 02 0 00 010170 		JUMPE	R,ERR
  3314	014146	200 05 0 02 000000 		MOVE	T,(R)		;PICK UP SYMBOL
  3315	014147	661 05 0 00 400000 		TLO	T,(DELO)	;TURN ON "SUPPRESS OUTPUT" BIT
  3316	014150	260 17 0 00 013150 		PUSHJ	P,DSYMER	;STORE BACK IN SYMBOL TABLE
  3317	014151	200 05 0 00 016602 		MOVE	T,LWT
  3318	014152	254 00 0 00 013462 		JRST	CONSYM		;PRINT OUT NEXT BEST SYMBOL
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 108
SMDDT	MAC	29-Nov-78 13:26		OUTPUT SUBROUTINES                                                                 SEQ 0094

  3319
  3320					;FLOATING POINT OUTPUT
  3321
  3322	014153	200 02 0 00 000005 	TFLOT:	MOVE	A,T
  3323	014154	325 02 0 00 014163 		JUMPGE	A, TFLOT1
  3324	014155	213 00 0 00 000002 		MOVNS	A
  3325	014156	255 00 0 00 000000 		JFCL			;PREVENT OVERFLOW MESSAGE
  3326									; FROM FORTRAN PROGRAMS
  3327	014157	201 05 0 00 000055 		MOVEI	T,"-"
  3328	014160	260 17 0 00 014600 		PUSHJ	P,TOUT
  3329	014161	623 02 0 00 400000 		TLZE	A,400000
  3330	014162	254 00 0 00 014172 		JRST	FP1A
  3331	014163	607 02 0 00 000400 	TFLOT1:	TLNN	A, 400
  3332	014164	254 00 0 00 014121 		JRST	TOC5		;IF UNNORMALIZED, TYPE AS DECIMAL INTEGER
  3333
  3334	014165	201 03 0 00 000000 	FP1:	MOVEI	B,0
  3335	014166	315 02 0 00 014255 		CAMGE	A,FT01
  3336	014167	254 00 0 00 014212 		JRST	FP4
  3337	014170	311 02 0 00 014243 		CAML	A,FT8
  3338	014171	344 03 0 00 014212 		AOJA	B,FP4
  3339	014172	201 04 0 00 000000 	FP1A:	MOVEI	C,0
  3340
  3341	014173	225 02 0 00 000400 	FP3:	MULI	A,400
  3342	014174	244 03 0 02 777535 		ASHC	B,-243(A)
  3343	014175	402 00 0 00 016757 		SETZM	TEM1		;INIT 8 DIGIT COUNTER
  3344	014176	332 02 0 00 000003 		SKIPE	A,B		;DON'T TYPE A LEADING 0
  3345	014177	260 17 0 00 014230 		PUSHJ	P,FP7		;PRINT INTEGER PART OF 8 DIGITS
  3346	014200	260 17 0 00 014122 		PUSHJ	P,TOC6		;PRINT DECIMAL POINT
  3347	014201	211 02 0 00 000010 		MOVNI	A,10
  3348	014202	270 02 0 00 016757 		ADD	A,TEM1
  3349	014203	200 06 0 00 000004 		MOVE	W1,C
  3350	014204	200 05 0 00 000006 	FP3A:	MOVE	T,W1
  3351	014205	225 05 0 00 000012 		MULI	T,12
  3352	014206	260 17 0 00 014237 		PUSHJ	P,FP7B
  3353	014207	332 00 0 00 000006 		SKIPE,W1
  3354	014210	341 02 0 00 014204 		AOJL	A,FP3A
  3355	014211	263 17 0 00 000000 		POPJ	P,
  3356
  3357	014212	211 04 0 00 000006 	FP4:	MOVNI	C,6
  3358	014213	201 07 0 00 000000 		MOVEI	W2,0
  3359	014214	240 07 0 00 000001 	FP4A:	ASH	W2,1
  3360	014215	256 00 0 03 014256 		XCT,FCP(B)
  3361	014216	254 00 0 00 014221 		JRST	FP4B
  3362	014217	164 02 1 03 014257 		FMPR	A,@FCP+1(B)
  3363	014220	435 07 0 00 000001 		IORI	W2,1
  3364	014221	346 04 0 00 014214 	FP4B:	AOJN	C,FP4A
  3365	014222	261 17 0 00 000007 		PUSH	P,W2		;SAVE EXPONENT
  3366	014223	261 17 0 03 014261 		PUSH	P,FSGN(B)	;SAVE "E+" OR "E-"
  3367	014224	260 17 0 00 014173 		PUSHJ	P,FP3		;PRINT OUT FFF.FFF PART OF NUMBER
  3368	014225	262 17 0 00 000006 		POP	P,W1		;GET "E+" OR "E-" BACK
  3369	014226	260 17 0 00 014264 		PUSHJ	P,TEXT
  3370	014227	262 17 0 00 000002 		POP	P,A		;GET EXPONENT BACK
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 109
SMDDT	MAC	29-Nov-78 13:26		OUTPUT SUBROUTINES                                                                 SEQ 0095

  3371
  3372	014230	231 02 0 00 000012 	FP7:	IDIVI	A,12		;DECIMAL OUTPUT SUBROUTINE
  3373	014231	217 00 0 00 000003 		MOVMS	B		;MAKE POSITIVE
  3374	014232	350 00 0 00 016757 		AOS	TEM1
  3375	014233	506 03 0 17 000000 		HRLM	B,(P)
  3376	014234	322 02 0 00 014236 		JUMPE	A,FP7A1
  3377	014235	260 17 0 00 014230 		PUSHJ	P,FP7
  3378
  3379	014236	554 05 0 17 000000 	FP7A1:	HLRZ	T,(P)
  3380	014237	271 05 0 00 000260 	FP7B:	ADDI	T,260
  3381	014240	254 00 0 00 014600 		JRST	TOUT
  3382
  3383	014241	353473	426555			353473426555		;1.0E32
  3384	014242	266434	157116			266434157116		;1.0E16
  3385	014243	233575	360400		FT8:	233575360400		;1.0E8
  3386	014244	216470	400000			216470400000		;1.0E4
  3387	014245	207620	000000			207620000000		;1.0E2
  3388	014246	204500	000000			204500000000		;1.0E1
  3389	014247	201400	000000		FT:	201400000000		;1.0E0
  3390	014250	026637	304365			026637304365		;1.0E-32
  3391	014251	113715	126246			113715126246		;1.0E-16
  3392	014252	146527	461671			146527461671		;1.0E-8
  3393	014253	163643	334273			163643334273		;1.0E-4
  3394	014254	172507	534122			172507534122		;1.0E-2
  3395	014255	175631	463146		FT01:	175631463146		;1.0E-1
  3396			014256		FT0=FT01+1
  3397
  3398	014256	313 02 0 04 014256 	FCP:	CAMLE	A, FT0(C)
  3399	014257	315 02 0 04 014247 		CAMGE	A, FT(C)
  3400	014260	000 00 0 04 014256 		Z	FT0(C)
  3401
  3402	014261	105 055 000 000 000 	FSGN:	ASCII	.E-.
  3403	014262	105 053 000 000 000 		ASCII	.E+.
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 110
SMDDT	MAC	29-Nov-78 13:26		OUTPUT SUBROUTINES                                                                 SEQ 0096

  3404
  3405	014263	200 06 0 00 000005 	TEXTT:	MOVE	W1,T
  3406	014264	607 06 0 00 774000 	TEXT:	TLNN	W1,774000	;LEFT JUSTIFIED UNLESS LEFT CHAR IS NULL
  3407	014265	242 06 0 00 000035 		LSH	W1,35
  3408	014266	201 05 0 00 000000 	TEXT2:	MOVEI	T,0		;7 BIT ASCII TEXT OUTPUT SUBROUTINE
  3409	014267	246 05 0 00 000007 		LSHC	T,7
  3410	014270	260 17 0 00 014600 		PUSHJ	P,TOUT
  3411	014271	326 06 0 00 014266 		JUMPN	W1,TEXT2
  3412	014272	263 17 0 00 000000 		POPJ	P,
  3413
  3414	014273	242 05 0 00 777742 	R50PNT:	LSH	T,-36		;RADIX 50 SYMBOL PRINTER
  3415	014274	620 05 0 00 000003 		TRZ	T,3
  3416	014275	260 17 0 00 014067 		PUSHJ	P,TOC
  3417	014276	260 17 0 00 014323 		PUSHJ	P,TSPC
  3418	014277	201 06 0 00 016602 		MOVEI	W1,LWT		;SETUP FOR SPT
  3419	014300	254 00 0 00 014125 		JRST	SPT
  3420
  3421	014301	211 07 0 00 000006 	SIXBP:	MOVNI	W2,6		;SIXBIT PRINTER
  3422	014302	200 06 0 00 016602 		MOVE	W1,LWT
  3423	014303	201 05 0 00 000000 	SIXBP1:	MOVEI	T,0
  3424	014304	245 05 0 00 000006 		ROTC	T,6
  3425	014305	271 05 0 00 000040 		ADDI	T,40
  3426	014306	260 17 0 00 014600 		PUSHJ	P,TOUT
  3427	014307	341 07 0 00 014303 		AOJL	W2,SIXBP1
  3428	014310	263 17 0 00 000000 		POPJ	P,
  3429
  3430	014311	201 05 0 00 000015 	CRN:	MOVEI	T,15		;CARRIAGE RETURN
  3431	014312	254 00 0 00 014600 		JRST	TOUT
  3432
  3433
  3434	014313	260 17 0 00 014311 	CRF:	PUSHJ	P,CRN
  3435	014314	201 05 0 00 000012 		MOVEI	T,12		;LINE FEED
  3436	014315	254 00 0 00 014600 		JRST	TOUT
  3437
  3438	014316				LCT: IFE FTDEC20,<
  3439	014316	201 05 0 00 000011 		MOVEI	T,11
  3440						IFN	FTEXEC,<
  3441	014317	335 00 0 00 017022 		SKPEXC	>
  3442	014320	254 00 0 00 014600 		JRST	TOUT>		;IN USER MODE, TYPE A TAB
  3443						IFN	FTEXEC!FTDEC20,<
  3444	014321	260 17 0 00 014323 		PUSHJ	P,TSPC
  3445	014322	260 17 0 00 014323 		PUSHJ	P,TSPC >
  3446
  3447	014323	201 05 0 00 000040 	TSPC:	MOVEI	T,40		;SPACE
  3448	014324	254 00 0 00 014600 		JRST	TOUT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 111
SMDDT	MAC	29-Nov-78 13:26		OUTPUT SUBROUTINES                                                                 SEQ 0097

  3449
  3450	014325	201 02 0 00 014344 	BITO:	MOVEI	R,BITT		;BYTE OUTPUT SUBROUTINE
  3451	014326	336 00 0 00 016561 		SKIPN	OLDAR
  3452	014327	202 11 0 00 016561 		MOVEM	AR,OLDAR
  3453	014330	551 11 0 00 014067 		HRRZI	AR,TOC
  3454	014331	626 00 0 00 000001 		TRZN	F,Q2F
  3455	014332	254 00 0 00 010170 		JRST	ERR
  3456	014333	200 05 0 00 016576 		MOVE	T,WRD2
  3457	014334	202 05 0 00 016557 		MOVEM	T,SVBTS
  3458	014335	201 05 0 00 000044 		MOVEI	T,^D36
  3459	014336	230 05 0 00 016576 		IDIV	T,WRD2
  3460	014337	332 00 0 00 000006 		SKIPE	T+1
  3461	014340	271 05 0 00 000001 		ADDI	T,1
  3462	014341	202 05 0 00 016560 		MOVEM	T,SVBTS2
  3463	014342	550 10 0 00 000002 		HRRZ	SCH,R
  3464	014343	254 00 0 00 011404 		JRST	BASE1O
  3465
  3466	014344	200 05 0 00 016560 	BITT:	MOVE	T,SVBTS2
  3467	014345	202 05 0 00 016563 		MOVEM	T,SVBT2
  3468	014346	200 06 0 00 016602 		MOVE	T+1,LWT
  3469	014347	202 06 0 00 016562 		MOVEM	T+1,SVBT3
  3470	014350	261 17 0 00 016602 		PUSH	P,LWT
  3471	014351	201 05 0 00 000000 	BITT2:	MOVEI	T,0
  3472	014352	200 07 0 00 016557 		MOVE	T+2,SVBTS
  3473	014353	246 05 0 07 000000 		LSHC	T,(T+2)
  3474	014354	202 05 0 00 016602 		MOVEM	T,LWT
  3475	014355	202 06 0 00 016562 		MOVEM	T+1,SVBT3
  3476	014356	302 11 0 00 013570 		CAIE	AR,PADSO
  3477	014357	260 17 0 00 014101 		PUSHJ	P,TOCA
  3478	014360	302 11 0 00 014067 		CAIE	AR,TOC
  3479	014361	260 17 0 00 013467 		PUSHJ	P,PIN
  3480	014362	377 00 0 00 016563 		SOSG	SVBT2
  3481	014363	254 00 0 00 014370 		JRST	BITT4
  3482	014364	201 05 0 00 000054 		MOVEI	T,","
  3483	014365	260 17 0 00 014600 		PUSHJ	P,TOUT
  3484	014366	200 06 0 00 016562 		MOVE	T+1,SVBT3
  3485	014367	254 00 0 00 014351 		JRST	BITT2
  3486
  3487	014370	262 17 0 00 016602 	BITT4:	POP	P,LWT
  3488	014371	263 17 0 00 000000 		POPJ	P,
  3489					XLIST
  3490					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 116
SMDDT	MAC	29-Nov-78 13:26		PUNCH PAPER TAPE LOGIC                                                             SEQ 0098

  3491
  3492					SUBTTL TELETYPE IO LOGIC
  3493
  3494						IFN	FTEXEC,<	;EXECUTIVE MODE TELETYPE I/O
  3495
  3496					;APR INTERNAL CLOCK SERVICE
  3497
  3498					;CONI/CONO MTR,
  3499
  3500			000024		MTR==024			;DEVICE CODE
  3501
  3502			400000		MTRLOD==1B18			;LOAD  BITS 21-23
  3503					;	19-20			;UNUSED, MBZ
  3504			040000		MTREPA==1B21			;ENABLE EXEC PI ACCOUNTING
  3505			020000		MTRENA==1B22			;ENABLE EXEC NON-PI ACCOUNTING
  3506			010000		MTRAMN==1B23			;ACCOUNTING METERS ON
  3507			004000		MTRTBF==1B24			;TIME BASE OFF
  3508			002000		MTRTBN==1B25			;TIME BASE ON
  3509			001000		MTRCTB==1B26			;CLEAR TIME BASE
  3510					;	27-32			;UNUSED, MBZ
  3511			000007		MTRPIA==7B35			;PI ASSIGNMENT
  3512
  3513					;CONI/CONO TIM
  3514
  3515			000020		TIM==020			;DEVICE ASSIGNMENT
  3516
  3517			400000		TIMCIC==1B18			;CLEAR INTERVAL COUNTER
  3518					;	19-20			;UNUSED, MBZ
  3519			040000		TIMITO==1B21			;INTERVAL TIMER ON
  3520			020000		TIMDON==1B22			;DONE/CLEAR DONE
  3521			010000		TIMICO==1B23			;COUNTER OVERFLOW
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 117
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0099

  3522
  3523					;GET TYPEIN CHARACTER - EXEC MODE
  3524
  3525	014372	260 17 0 00 014421 	XTIN:	PUSHJ	P,XLISTE	;TELETYPE CHARACTER INPUT
  3526	014373	254 00 0 00 014372 		 JRST .-1
  3527	014374	322 05 0 00 014372 		JUMPE	T,XTIN		;FILTER NULLS
  3528	014375	302 05 0 00 000175 		CAIE	T,175
  3529	014376	306 05 0 00 000176 		CAIN	T,176
  3530	014377	201 05 0 00 000033 		MOVEI	T,33		;CHANGE ALL ALT MODES TO NEW
  3531						IFN	FTDEC20&<^-FTEDIT>,<	;IF NO FANCY EDITING...
  3532						CAIE	T,"U"-100	;^U?
  3533						CAIN	T,177		;RUBOUT?
  3534						JRST	WRONG		;YES, TYPE XXX
  3535						>
  3536						IFE	FTDEC20&<^-FTEDIT>,<	;IF FANCY EDITING...
  3537	014400	302 05 0 00 000177 		CAIE	T,177		;DON'T ECHO EDIT CHARACTERS
  3538	014401	306 05 0 00 000025 		CAIN	T,"U"-100
  3539	014402	254 00 0 00 014413 		JRST	XTIN1
  3540	014403	302 05 0 00 000022 		CAIE	T,"R"-100
  3541	014404	306 05 0 00 000027 		CAIN	T,"W"-100
  3542	014405	254 00 0 00 014413 		JRST	XTIN1>
  3543	014406	306 05 0 00 000015 		CAIN	T,15		;CR?
  3544						JRST	[MOVEI T,12	;YES, PRESET LF FOR NEXT TIME
  3545							MOVEM T,XNXTCH
  3546							MOVEI T,15	;ECHO AND RETURN CR NOW
  3547	014407	254 00 0 00 016333 			JRST .+1]
  3548	014410	336 00 0 00 016431 		SKIPN	TEXINF		;DON'T ECHO TAB UNLESS TEXT INPUT
  3549	014411	302 05 0 00 000011 		CAIE	T,11
  3550	014412	260 17 0 00 014602 		PUSHJ	P,ECHO		;ECHO THE CHAR
  3551	014413	263 17 0 00 000000 	XTIN1:	POPJ	P,
  3552
  3553					;TYPEOUT CHARACTER FROM T
  3554					XLIST
  3555					LIST
  3556	014414	261 17 0 00 000000 	XTOUT:	PUSH	P,0
  3557	014415	200 00 0 00 000005 		MOVE	0,T
  3558	014416	264 00 0 00 014556 		BTYTYO			;OUTPUT CHAR
  3559	014417	262 17 0 00 000000 		POP	P,0
  3560	014420	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 119
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0100

  3561					;SKIP IF HAVE INPUT CHAR AND RETURN IT IN T
  3562
  3563	014421	332 05 0 00 017024 	XLISTE:	SKIPE	T,XNXTCH	;PRESET CHAR?
  3564						JRST	[SETZM XNXTCH	;YES, RETURN IT ONCE
  3565	014422	254 00 0 00 016337 			JRST XLIST1]
  3566						IFN	FTYANK,<
  3567						SKIPE	COMAND		;COMAND FILE?
  3568						JRST	XPTRIN		;YES, READ IT
  3569						>
  3570					XLIST
  3571					LIST
  3572	014423	261 17 0 00 000000 		PUSH	P,0
  3573	014424	264 00 0 00 014476 		BTYTYI			;GET CHAR
  3574	014425	262 17 0 00 000000 		POP	P,0
  3575	014426	263 17 0 00 000000 		POPJ	P,		;NONE AVAILABLE
  3576
  3577	014427	200 05 0 00 000000 		MOVE	T,0
  3578	014430	262 17 0 00 000000 		POP	P,0
  3579	014431	405 05 0 00 000177 	XLIST1:	ANDI	T,177		;MASK TO 7 BITS
  3580	014432	306 05 0 00 000003 		CAIN	T,003		;CONTROL C ?
  3581	014433	254 00 0 00 014435 		JRST	SMCC		;YES
  3582	014434	254 00 0 00 010522 		JRST	CPOPJ1		;CHAR FOUND, RETURN +2
  3583
  3584	014435	200 05 0 00 016341 	SMCC:	MOVE	T,[JRST	SMCC1]
  3585	014436	254 00 0 00 011567 		JRST	XEC0		;RESTORE BP'S ETC.
  3586
  3587	014437	254 00 0 00 020000 	SMCC1:	JRST 20000		;NOW GO TO "SMMON"
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 121
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0101

  3588					;CONSOLE TTY COMMUNICATIONS
  3589
  3590	014440	000000	000000		$TYINI:	0
  3591	014441	402 00 0 00 000032 		SETZM	$80CIW		;CLEAR INPUT WORD
  3592	014442	402 00 0 00 000033 		SETZM	$80COW		;CLEAR OUTPUT WORD
  3593	014443	402 00 0 00 000034 		SETZM	$80KIW		;CLEAR INPUT WORD
  3594	014444	402 00 0 00 000035 		SETZM	$80KOW		;CLEAR OUTPUT WORD
  3595	014445	402 00 0 00 017075 		SETZM	MMFLAG#
  3596	014446	200 00 0 00 000031 		MOVE	0,$80STAT	;GET CONSOLE STATUS WORD
  3597	014447	603 00 0 00 000020 		TLNE	0,($80MM)	;MAINTENANCE MODE BIT SET ?
  3598	014450	476 00 0 00 017075 		SETOM	MMFLAG		;YES, SET TTY IN MAINT MODE
  3599	014451	254 00 1 00 014440 		JRST	@$TYINI
  3600
  3601	014452	000000	000000		$TYCLR:	0
  3602	014453	254 00 1 00 014452 		JRST	@$TYCLR		;NOTHING REQUIRED
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 122
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0102

  3603
  3604	014454	000000	000000		$CYTYI:	0
  3605	014455	200 00 0 00 000032 		MOVE	0,$80CIW	;GET INPUT WORD
  3606	014456	606 00 0 00 000400 		TRNN	0,$80CHR	;CHAR FLAG BIT SET ?
  3607	014457	254 00 1 00 014454 		JRST	@$CYTYI		;NO
  3608
  3609	014460	402 00 0 00 000032 		SETZM	$80CIW		;CLEAR INPUT WORD
  3610	014461	405 00 0 00 000177 		ANDI	0,177
  3611
  3612	014462	350 00 0 00 014454 		AOS	$CYTYI
  3613	014463	350 00 0 00 014454 		AOS	$CYTYI
  3614	014464	254 00 1 00 014454 		JRST	@$CYTYI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3615
  3616	014465	000000	000000		$KYTYI:	0
  3617	014466	200 00 0 00 000034 		MOVE	0,$80KIW	;GET INPUT WORD
  3618	014467	606 00 0 00 000400 		TRNN	0,$80CHR	;CHAR FLAG BIT SET ?
  3619	014470	254 00 1 00 014465 		JRST	@$KYTYI		;NO
  3620
  3621	014471	402 00 0 00 000034 		SETZM	$80KIW		;CLEAR INPUT WORD
  3622	014472	405 00 0 00 000177 		ANDI	0,177
  3623
  3624	014473	350 00 0 00 014465 		AOS	$KYTYI
  3625	014474	350 00 0 00 014465 		AOS	$KYTYI
  3626	014475	254 00 1 00 014465 		JRST	@$KYTYI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3627
  3628	014476	000000	000000		$BYTYI:	0
  3629	014477	264 00 0 00 014454 		CTYTYI			;ANY CTY INPUT ?
  3630	014500	254 00 0 00 014505 		JRST	.+5		;NO
  3631	014501	254 04 0 00 014501 		HALT	.
  3632	014502	350 00 0 00 014476 		AOS	$BYTYI
  3633	014503	350 00 0 00 014476 		AOS	$BYTYI
  3634	014504	254 00 1 00 014476 		JRST	@$BYTYI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3635	014505	264 00 0 00 014465 		KTYTYI			;ANY KLINIK INPUT ?
  3636	014506	254 00 1 00 014476 		JRST	@$BYTYI		;NO
  3637	014507	254 04 0 00 014507 		HALT	.
  3638	014510	254 00 0 00 014502 		JRST	.-6
  3639
  3640	014511	000000	000000		$COMTI:	0
  3641	014512	332 00 0 00 017075 		SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  3642	014513	254 00 0 00 014522 		JRST	.+7		;YES
  3643
  3644	014514	264 00 0 00 014454 		CTYTYI			;ANY CTY INPUT ?
  3645	014515	254 00 1 00 014511 		JRST	@$COMTI		;NO
  3646	014516	254 04 0 00 014516 		HALT	.
  3647	014517	350 00 0 00 014511 		AOS	$COMTI
  3648	014520	350 00 0 00 014511 		AOS	$COMTI
  3649	014521	254 00 1 00 014511 		JRST	@$COMTI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3650
  3651	014522	264 00 0 00 014465 		KTYTYI			;ANY KLINIK INPUT ?
  3652	014523	254 00 1 00 014511 		JRST	@$COMTI		;NO
  3653	014524	254 04 0 00 014524 		HALT	.
  3654	014525	350 00 0 00 014511 		AOS	$COMTI
  3655	014526	350 00 0 00 014511 		AOS	$COMTI
  3656	014527	254 00 1 00 014511 		JRST	@$COMTI		;DOUBLE SKIP RETURN, CHAR IN AC0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 123
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0103

  3657
  3658	014530	000000	000000		$CYTYO:	0
  3659	014531	660 00 0 00 000400 		TRO	0,$80CHR	;SET FLAG BIT
  3660	014532	202 00 0 00 000033 		MOVEM	0,$80COW	;PUT IN COMM AREA
  3661	014533	7 000 24 0 00 000000 		CONI	APR,0		;GET PRESENT APR
  3662	014534	405 00 0 00 000007 		ANDI	7		;KEEP PI ASSIGNMENT
  3663	014535	660 00 0 00 012000 		TRO	$80INT		;SET INTERRUPT 8080
  3664	014536	7 000 20 1 00 000000 		CONO	APR,@0		;INTERRUPT 8080
  3665	014537	200 00 0 00 000033 		MOVE	0,$80COW	;GET OUTPUT WORD
  3666	014540	602 00 0 00 000400 		TRNE	0,$80CHR	;8080 SENT THIS CHAR ?
  3667	014541	254 00 0 00 014537 		JRST	.-2		;NO, WAIT
  3668	014542	254 00 1 00 014530 		JRST	@$CYTYO		;YES
  3669
  3670	014543	000000	000000		$KYTYO:	0
  3671	014544	660 00 0 00 000400 		TRO	0,$80CHR	;SET FLAG BIT
  3672	014545	202 00 0 00 000035 		MOVEM	0,$80KOW	;PUT IN COMM AREA
  3673	014546	7 000 24 0 00 000000 		CONI	APR,0		;GET PRESENT APR
  3674	014547	405 00 0 00 000007 		ANDI	7		;KEEP PI ASSIGNMENT
  3675	014550	660 00 0 00 012000 		TRO	$80INT		;SET INTERRUPT 8080
  3676	014551	7 000 20 1 00 000000 		CONO	APR,@0		;INTERRUPT 8080
  3677	014552	200 00 0 00 000035 		MOVE	0,$80KOW	;GET OUTPUT WORD
  3678	014553	602 00 0 00 000400 		TRNE	0,$80CHR	;8080 SENT THIS CHAR ?
  3679	014554	254 00 0 00 014552 		JRST	.-2		;NO, WAIT
  3680	014555	254 00 1 00 014543 		JRST	@$KYTYO		;YES
  3681
  3682	014556	000000	000000		$BYTYO:	0
  3683	014557	202 00 0 00 017100 		MOVEM	0,$BYTYC#	;SAVE OUTPUT CHAR
  3684	014560	264 00 0 00 014530 		CTYTYO			;OUTPUT CHAR TO CTY
  3685	014561	200 00 0 00 017100 		MOVE	0,$BYTYC	;GET OUTPUT CHAR
  3686	014562	332 00 0 00 017075 		SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  3687	014563	264 00 0 00 014543 		KTYTYO			;YES, OUTPUT CHAR TO KLINIK
  3688	014564	254 00 1 00 014556 		JRST	@$BYTYO
  3689
  3690	014565	000000	000000		$COMTO:	0
  3691	014566	332 00 0 00 017075 		SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  3692	014567	254 00 0 00 014572 		JRST	.+3		;YES
  3693	014570	264 00 0 00 014530 		CTYTYO			;OUTPUT CHAR TO CTY
  3694	014571	254 00 1 00 014565 		JRST	@$COMTO
  3695	014572	264 00 0 00 014543 		KTYTYO			;OUTPUT CHAR TO KLINIK
  3696	014573	254 00 1 00 014565 		JRST	@$COMTO
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 124
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0104

  3697					;SAVE USER STATUS ('RETURN' TO DDT)
  3698
  3699					XLIST
  3700					LIST
  3701	014574	264 00 0 00 014440 	XTTYRE:	CTYINI			;INIT CTY
  3702	014575	263 17 0 00 000000 		POPJ	P,
  3703
  3704					;RESTORE USER STATUS ('LEAVE' DDT)
  3705
  3706					XLIST
  3707					LIST
  3708	014576	264 00 0 00 014452 	XTTYLE:	CTYCLR
  3709	014577	263 17 0 00 000000 		POPJ	P,
  3710					XLIST
  3711					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 127
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0105

  3712					;TELETYPE OUTPUT - COMMON START POINT
  3713
  3714	014600	402 00 0 00 016437 	TOUT:	SETZM	CHINP		;RESET INPUT LINE
  3715	014601	402 00 0 00 016432 		SETZM	CHINC
  3716	014602	261 17 0 00 000005 	ECHO:	PUSH	P,T		;SAVE ORIG CHAR
  3717	014603	306 05 0 00 000033 		CAIN	T,33		;CONVERT ESC
  3718						JRST	[MOVEI T,"$"
  3719	014604	254 00 0 00 016342 			JRST ECHO1]
  3720	014605	306 05 0 00 000015 		CAIn	T,15		;CR ?
  3721	014606	254 00 0 00 014626 		jrst	echo2		;yes, output <cr><cr>
  3722	014607	306 05 0 00 000012 		CAIN	T,12
  3723	014610	254 00 0 00 014623 		JRST	ECHO1		;YES, NO CONVERSION
  3724	014611	306 05 0 00 000007 		CAIN	T,"G"-100	;BELL?
  3725	014612	254 00 0 00 014623 		JRST	ECHO1		;NO CONVERSION
  3726	014613	306 05 0 00 000011 		CAIN	T,11		;TAB?
  3727						IFE	FTEXEC,<
  3728						JRST	ECHO1>		;NO CONVERSION OF TAB IN USER MODE
  3729						IFN	FTEXEC,<
  3730						JRST	[SKPEXC
  3731							JRST ECHO1	;DITTO
  3732							MOVEI T," "	;CONVERT TAB TO SPACES IN EXEC MODE
  3733							PUSHJ P,TOUT0
  3734							MOVEI T," "
  3735							PUSHJ P,TOUT0
  3736							MOVEI T," "
  3737	014614	254 00 0 00 016344 			JRST ECHO1]
  3738						>			;END FTEXEC
  3739	014615	301 05 0 00 000040 		CAIL	T,40		;CONTROL CHAR?
  3740	014616	254 00 0 00 014623 		JRST	ECHO1		;NO
  3741	014617	201 05 0 00 000136 		MOVEI	T,"^"		;YES, INDICATE
  3742	014620	260 17 0 00 014630 		PUSHJ	P,TOUT0
  3743	014621	200 05 0 17 000000 		MOVE	T,0(P)		;RECOVER ORIG CHAR
  3744	014622	271 05 0 00 000100 		ADDI	T,100		;CONVERT TO PRINTING EQUIVALENT
  3745	014623	260 17 0 00 014630 	ECHO1:	PUSHJ	P,TOUT0		;DO DEVICE-DEPENDENT OUTPUT
  3746	014624	262 17 0 00 000005 		POP	P,T
  3747	014625	263 17 0 00 000000 		POPJ	P,
  3748	014626	260 17 0 00 014630 	echo2:	pushj	p,tout0
  3749	014627	254 00 0 00 014623 		jrst	echo1
  3750
  3751						IFE	FTDEC20,<
  3752		051000	000000		OPDEF TTCALL [51B8]
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 128
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0106

  3753	014630	331 00 0 00 017022 	TOUT0:	IFN	FTEXEC,< SKPUSR
  3754	014631	254 00 0 00 014414 		JRST	XTOUT >
  3755						IFN	FTFILE,< SKIPE COMAND	;IS THERE A COMMAND FILE?
  3756						JRST	PUTCHR>		;YES 
  3757
  3758	014632	332 00 0 00 017077 		SKIPE	TOPS20
  3759	014633	254 00 0 00 014636 		JRST	.+3
  3760	014634	051 01 0 00 000005 		TTCALL	1,T		;OUTPUT A CHARACTER
  3761	014635	263 17 0 00 000000 		POPJ	P,
  3762	014636	250 01 0 00 000005 		EXCH	T1,T
  3763	014637	104 00 0 00 000074 		PBOUT
  3764	014640	250 01 0 00 000005 		EXCH	T1,T
  3765	014641	263 17 0 00 000000 		POPJ	P,
  3766
  3767	014642	331 00 0 00 017022 	LISTEN:	IFN	FTEXEC,< SKPUSR
  3768	014643	254 00 0 00 014421 		JRST	XLISTE >
  3769						IFE	FTFILE,<
  3770						IFN	FTYANK,<
  3771						SKIPE	COMAND
  3772						JRST	PTRIN>>
  3773						IFN	FTFILE,<	;FILDDT?
  3774						SKIPE	COMAND		;STILL READING COMAND FILE?
  3775						POPJ	P,0		; IF YES, DO NOT LOOK FOR INPUT
  3776									; 1. SPEED UP FILDDT AND
  3777									; 2. ALLOW USER TO TYPE AHEAD
  3778									;  (ONE CONTROL C)
  3779						>
  3780	014644	373 00 0 00 016650 		SOSLE	LCNT		;TIME TO DO TTCALL
  3781	014645	263 17 0 00 000000 		POPJ	P,0		;NO--RETURN
  3782	014646	201 05 0 00 000012 		MOVEI	T,12		;YES--RESET COUNT
  3783	014647	202 05 0 00 016650 		MOVEM	T,LCNT		; ..
  3784	014650	332 00 0 00 017077 		SKIPE	TOPS20
  3785	014651	254 00 0 00 014655 		JRST	.+4
  3786	014652	051 02 0 00 000005 		TTCALL	2,T		;GET NEXT CHAR, NO IO WAIT
  3787	014653	263 17 0 00 000000 		POPJ	P,		;NO CHARACTER EXISTED, RETURN
  3788	014654	254 00 0 00 010522 		JRST	CPOPJ1		;CHARACTER WAS THERE, SKIP RETURN
  3789	014655	250 01 0 00 000005 		EXCH	T1,T
  3790	014656	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3791	014657	104 00 0 00 000102 		SIBE
  3792	014660	350 00 0 17 000000 		AOS	(P)
  3793	014661	250 01 0 00 000005 		EXCH	T1,T
  3794	014662	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 129
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0107

  3795						IFN	FTEXEC,<
  3796	014663	331 00 0 00 017022 	TTYRET:	SKPUSR
  3797	014664	254 00 0 00 014574 		JRST	XTTYRET
  3798	014665	336 00 0 00 017077 		SKIPN	TOPS20
  3799	014666	263 17 0 00 000000 		POPJ	P,
  3800	014667	332 00 0 00 016657 		SKIPE	SAVTTY		;ALREADY HAVE STATE ?
  3801	014670	254 00 0 00 014677 		JRST	TTYR1		;YES
  3802	014671	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3803	014672	104 00 0 00 000107 		RFMOD			;GET MODES
  3804	014673	202 02 0 00 016657 		MOVEM	T2,SAVTTY
  3805	014674	104 00 0 00 000112 		RFCOC			;GET CC MODES
  3806	014675	202 02 0 00 016672 		MOVEM	T2,SAVTT2
  3807	014676	202 03 0 00 016673 		MOVEM	T3,SAVTT3
  3808	014677	201 01 0 00 000100 	TTYR1:	MOVEI	T1,.PRIIN
  3809	014700	104 00 0 00 000107 		RFMOD
  3810	014701	620 02 0 00 770300 		TRZ	T2,TT%WAK+TT%DAM
  3811	014702	660 02 0 00 164100 		TRO	T2,TT%WKF+TT%WKN+TT%WKP+TT%ECO+01B29
  3812	014703	104 00 0 00 000110 		SFMOD
  3813	014704	200 02 0 00 014712 		MOVE	T2,TTYCC2
  3814	014705	200 03 0 00 014713 		MOVE	T3,TTYCC3
  3815	014706	104 00 0 00 000113 		SFCOC			;SETUP PROPER DDT MODES
  3816	014707	201 01 0 00 400000 		MOVEI	T1,.FHSLF
  3817	014710	104 00 0 00 000130 		DIR
  3818	014711	263 17 0 00 000000 		POPJ	P, >
  3819
  3820	014712	052531	553125		TTYCC2:	BYTE	(2)	0,1,1,1,1,1,1,2,1,2,3,1,1,2,1,1,1,1
  3821	014713	252525	652400		TTYCC3:	BYTE	(2)	1,1,1,1,1,1,1,1,1,3,1,1,1,1
  3822						IFE	FTEXEC,<TTYRET==CPOPJ>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 130
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0108

  3823	014714				TTYCLR:
  3824	014714	331 00 0 00 017022 		IFN	FTEXEC,< SKPUSR >
  3825	014715	263 17 0 00 000000 		POPJ	P,
  3826	014716	332 00 0 00 017077 		SKIPE	TOPS20
  3827	014717	254 00 0 00 014724 		JRST	.+5
  3828	014720	051 14 0 00 000000 		TTCALL	14,		;CLEAR ^O, SKIP ON INPUT CHARS
  3829	014721	263 17 0 00 000000 		 POPJ P,		;NO INPUT CHARS, OR EXEC MODE
  3830	014722	051 11 0 00 000000 		TTCALL	11,		;FLUSH ALL
  3831	014723	254 00 0 00 014732 		JRST	.+7
  3832	014724	201 01 0 00 000101 		MOVEI	1,.PRIOU
  3833	014725	104 00 0 00 000107 		RFMOD
  3834	014726	621 02 0 00 400000 		TLZ	2,(TT%OSP)
  3835	014727	104 00 0 00 000110 		SFMOD
  3836	014730	201 01 0 00 000100 		MOVEI	1,.PRIIN
  3837	014731	104 00 0 00 000100 		CFIBF
  3838	014732	260 17 0 00 014642 		PUSHJ	P,LISTEN
  3839	014733	255 00 0 00 000000 		 JFCL
  3840	014734	263 17 0 00 000000 		POPJ	P,		;WAITING INPUT CHARACTERS
  3841
  3842						IFN	FTEXEC,<
  3843	014735	331 00 0 00 017022 	TTYLEV:	SKPUSR
  3844	014736	254 00 0 00 014576 		JRST	XTTYLEV
  3845	014737	336 00 0 00 017077 		SKIPN	TOPS20
  3846	014740	263 17 0 00 000000 		POPJ	P,
  3847	014741	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3848	014742	200 02 0 00 016657 		MOVE	T2,SAVTTY
  3849	014743	104 00 0 00 000110 		SFMOD			;RESTORE MODES
  3850	014744	200 02 0 00 016672 		MOVE	T2,SAVTT2
  3851	014745	200 03 0 00 016673 		MOVE	T3,SAVTT3
  3852	014746	104 00 0 00 000113 		SFCOC			;RESTORE CC MODES
  3853	014747	201 01 0 00 400000 		MOVEI	1,.FHSLF
  3854	014750	335 00 0 00 016675 		SKIPGE	SAVSTS
  3855	014751	104 00 0 00 000126 		EIR
  3856	014752	402 00 0 00 016657 		SETZM	SAVTTY
  3857	014753	263 17 0 00 000000 		POPJ	P, >
  3858
  3859						IFE	FTEXEC,<TTYLEV==CPOPJ>
  3860						>			;END IFE FTDEC20
  3861
  3862	014754	354 00 0 00 016431 	TEXIN:	AOSA	TEXINF		;NOTE TEXT INPUT
  3863	014755	402 00 0 00 016431 	TIN:	SETZM	TEXINF		;NOTE NOT TEXT INPUT
  3864						IFN	FTDEC20&FTEXEC&<^-FTEDIT>,<
  3865						SKPUSR			;EXEC MODE?
  3866						JRST	XTIN>		;YES, SIMPLE INPUT
  3867	014756	375 00 0 00 016432 	TIN1:	SOSGE	CHINC		;CHARACTER LEFT IN LINE BUFFER?
  3868	014757	254 00 0 00 014762 		JRST	CHIN1		;NO, GO REFILL BUFFER
  3869	014760	134 05 0 00 016437 		ILDB	T,CHINP		;GET CHARACTER
  3870	014761	263 17 0 00 000000 		POPJ	P,
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 131
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0109

  3871					;REFILL LINE BUFFER WITH EDITING
  3872
  3873	014762	331 00 0 00 017022 	CHIN1:	SKPUSR			;EXEC MODE?
  3874	014763	254 00 0 00 015032 		JRST	XCHIN1		;YES, USE SIMULATION ROUTINES
  3875	014764	336 00 0 00 017077 		SKIPN	TOPS20
  3876	014765	254 00 0 00 015032 		JRST	XCHIN1		;TOPS-10
  3877
  3878	014766	332 01 0 00 016437 		SKIPE	T1,CHINP	;REINIT LINE?
  3879	014767	254 00 0 00 014774 		JRST	CHIN2		;NO
  3880	014770	201 01 0 00 000144 		MOVEI	T1,NLINBF*5	;YES, SETUP MAX CHAR COUNT
  3881	014771	202 01 0 00 016440 		MOVEM	T1,LINSPC
  3882	014772	200 01 0 00 016442 		MOVE	T1,LINBP	;SETUP POINTER
  3883	014773	202 01 0 00 016437 		MOVEM	T1,CHINP
  3884	014774	202 01 0 00 016444 	CHIN2:	MOVEM	T1,TEXTIB+.RDBKL	;SET BACKUP LIMIT
  3885	014775	337 00 0 00 016440 		SKIPG	LINSPC		;ROOM LEFT IN BUFFER?
  3886	014776	254 00 0 00 010170 		JRST	ERR		;NO, TOO MUCH TYPIN
  3887	014777	400 01 0 00 000000 		SETZ	T1,
  3888	015000	332 00 0 00 016433 		SKIPE	WAKALL		;WAKEUP ON EVERYTHING?
  3889	015001	201 01 0 00 015066 		MOVEI	T1,ONES4	;YES, USE WAKEUP TABLE
  3890	015002	202 01 0 00 016443 		MOVEM	T1,ETXTB
  3891	015003	261 17 0 00 016440 		PUSH	P,LINSPC	;SAVE CURRENT SPACE
  3892	015004	261 17 0 00 016437 		PUSH	P,CHINP		;AND POINTER
  3893	015005	336 00 0 00 016431 		SKIPN	TEXINF		;TEXT INPUT?
  3894	015006	260 17 0 00 015072 		PUSHJ	P,TTYTOF	;NO, SUPPRESS TAB ECHO
  3895	015007	201 01 0 00 016434 		MOVEI	T1,TEXTIB	;POINT TO ARG BLOCK
  3896	015010	104 00 0 00 000524 		TEXTI			;INPUT TO NEXT BREAK CHAR
  3897	015011	254 00 0 00 010170 		 JRST ERR		;BAD ARGS (IMPOSSIBLE)
  3898	015012	260 17 0 00 015074 		PUSHJ	P,TTYTON	;RESTORE NORMAL TAB ECHO
  3899	015013	262 17 0 00 016437 		POP	P,CHINP		;RESTORE POINTER TO CHARS JUST TYPED
  3900	015014	200 01 0 00 016435 		MOVE	T1,TEXTIB+.RDFLG	;GET FLAGS
  3901	015015	603 01 0 00 000030 		TXNE	T1,RD%BFE+RD%BLR	;DELETIONS?
  3902	015016	254 00 0 00 015023 		JRST	CHIN3		;YES
  3903	015017	262 17 0 00 000001 		POP	P,T1		;RECOVER OLD SPACE COUNT
  3904	015020	274 01 0 00 016440 		SUB	T1,LINSPC	;COMPUTE NUMBER CHARS JUST TYPED
  3905	015021	202 01 0 00 016432 		MOVEM	T1,CHINC	;SETUP COUNT
  3906	015022	254 00 0 00 014756 		JRST	TIN1		;GO RETURN NEXT CHAR
  3907
  3908					;USER HAS DELETED BACK INTO TEXT ALREADY PROCESSED, THEREFORE
  3909					;LINE MUST BE REPROCESSED FROM BEGINNING.  POSSIBLY ALL TEXT HAS BEEN
  3910					;DELETED.
  3911
  3912	015023	201 01 0 00 000144 	CHIN3:	MOVEI	T1,NLINBF*5	;COMPUTE NUMBER CHARS NOW IN LINE
  3913	015024	274 01 0 00 016440 		SUB	T1,LINSPC
  3914	015025	322 01 0 00 010165 		JUMPE	T1,WRONG	;JUMP IF WHOLE LINE DELETED
  3915	015026	202 01 0 00 016432 		MOVEM	T1,CHINC	;LINE NOT NULL, SETUP CHAR COUNT
  3916	015027	200 01 0 00 016442 		MOVE	T1,LINBP	;REINIT POINTER
  3917	015030	202 01 0 00 016437 		MOVEM	T1,CHINP
  3918	015031	254 00 0 00 010016 		JRST	DD2		;CLEAR WORLD AND REDO LINE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 132
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0110

  3919
  3920						IFN	<^-FTDEC20>!<FTEXEC&FTEDIT>,<
  3921						IFNDEF	T1,<
  3922						T1==A
  3923						PURGT1==-1
  3924						>
  3925	015032	332 01 0 00 016437 	XCHIN1:	SKIPE	T1,CHINP	;REINIT LINE?
  3926	015033	254 00 0 00 015040 		JRST	XCHIN2		;NO
  3927	015034	201 01 0 00 000144 		MOVEI	T1,NLINBF*5	;YES, SETUP MAX CHAR COUNT
  3928	015035	202 01 0 00 016440 		MOVEM	T1,LINSPC
  3929	015036	200 01 0 00 016442 		MOVE	T1,LINBP	;SETUP POINTER
  3930	015037	202 01 0 00 016437 		MOVEM	T1,CHINP
  3931	015040	202 01 0 00 016441 	XCHIN2:	MOVEM	T1,LINDB	;SET BEGINNING OF DELETE BUFFER
  3932	015041	337 00 0 00 016440 		SKIPG	LINSPC		;ROOM LEFT IN BUFFER?
  3933	015042	254 00 0 00 010170 		JRST	ERR		;NO, TOO MUCH TYPIN
  3934	015043	201 01 0 00 000006 		MOVEI	T1,LINBP-TEXTIB	;SIZE OF BLOCK
  3935	015044	332 00 0 00 016433 		SKIPE	WAKALL		;WAKEUP ON EVERYTHING?
  3936	015045	201 01 0 00 000007 		MOVEI	T1,ETXTB-TEXTIB	;YES, INCLUDE WAKEUP TABLE
  3937	015046	202 01 0 00 016434 		MOVEM	T1,TEXTIB	;SET SIZE IN BLOCK
  3938	015047	261 17 0 00 016440 		PUSH	P,LINSPC	;SAVE CURRENT SPACE
  3939	015050	261 17 0 00 016437 		PUSH	P,CHINP		;AND POINTER
  3940	015051	201 01 0 00 016434 		MOVEI	T1,TEXTIB	;POINT TO ARG BLOCK
  3941	015052	260 17 0 00 015151 		PUSHJ	P,TXTI
  3942	015053	254 00 0 00 010170 		 JRST ERR		;BAD ARGS (IMPOSSIBLE)
  3943	015054	262 17 0 00 016437 		POP	P,CHINP		;RESTORE POINTER TO CHARS JUST TYPED
  3944	015055	262 17 0 00 000001 		POP	P,T1		;RECOVER OLD SPACE COUNT
  3945						IFN	FTYANK,<
  3946						AOSN	PTDFLG		;EOF ON COMMAND FILE
  3947						JRST	[SETZM CHINC
  3948							SETZM CHINP
  3949							JRST DD2]	;YES--GET BACK TO TOP LEVEL
  3950						>			;END FTYANK
  3951	015056	336 00 0 17 000000 		SKIPN	0(P)		;REPROCESS NEEDED?
  3952						JRST	[MOVEI T1,NLINBF*5
  3953							SUB T1,LINSPC	;YES, COMPUTE NUMBER CHARS IN LINE
  3954							JUMPE T1,WRONG	;JUMP IF WHOLE LINE DELETED
  3955							MOVEM T1,CHINC	;LINE NOT NULL, SETUP CHAR COUNT
  3956							MOVE T1,LINBP	;REINIT POINTER
  3957							MOVEM T1,CHINP
  3958	015057	254 00 0 00 016354 			JRST DD2]	;CLEAR WORLD AND REDO LINE
  3959	015060	274 01 0 00 016440 		SUB	T1,LINSPC	;COMPUTE NUMBER CHARS JUST TYPED
  3960						JUMPG	T1,[MOVEM T1,CHINC	;SETUP COUNT
  3961	015061	327 01 0 00 016363 			JRST TIN1]	;GO RETURN NEXT CHAR
  3962
  3963					;CONTINUED ON NEXT PAGE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 133
SMDDT	MAC	29-Nov-78 13:26		TELETYPE IO LOGIC                                                                  SEQ 0111

  3964
  3965					;USER HAS DELETED BACK INTO TEXT ALREADY PROCESSED, THEREFORE LINE
  3966					;MUST BE REPROCESSED FROM BEGINNING. POSSIBLY ALL TEXT HAS BEEN
  3967					;DELETED.
  3968
  3969	015062	260 17 0 00 015346 		PUSHJ	P,RDBKIN
  3970	015063	402 00 0 17 000000 		SETZM	0(P)		;REQUEST REPROCESS OF LINE
  3971	015064	200 01 0 00 016442 		MOVE	T1,LINBP	;RESET DELETE BOUNDARY TO BEGINNING OF LINE
  3972	015065	254 00 0 00 015040 		JRST	XCHIN2
  3973
  3974						IFDEF	PURGT1,<IFL PURGT1,< PURGE PURGT1,T1>>
  3975						>			;END IFN ^-FTDEC20...
  3976
  3977	015066	777777	777777		ONES4:	OCT	-1,-1,-1,-1	;WAKEUP MASK
  3978	015067	777777	777777
  3979	015070	777777	777777
  3980	015071	777777	777777
  3981					;ROUTINES TO TURN TAB ECHO ON/OFF
  3982
  3983	015072	200 01 0 00 014712 	TTYTOF:	MOVE	T1,TTYCC2	;NORMAL MODE WORD
  3984	015073	624 01 0 00 600000 		TRZA	T1,3B19		;TURN TAB OFF
  3985	015074	200 01 0 00 014712 	TTYTON:	MOVE	T1,TTYCC2
  3986	015075	261 17 0 00 000002 		PUSH	P,T2		;PRESERVE REGS
  3987	015076	261 17 0 00 000003 		PUSH	P,T3
  3988	015077	202 01 0 00 000002 		MOVEM	T1,T2
  3989	015100	201 01 0 00 000100 		MOVEI	T1,.PRIIN
  3990	015101	200 03 0 00 014713 		MOVE	T3,TTYCC3
  3991	015102	104 00 0 00 000113 		SFCOC			;SET CONTROL CHAR MODES
  3992	015103	262 17 0 00 000003 		POP	P,T3
  3993	015104	262 17 0 00 000002 		POP	P,T2
  3994	015105	263 17 0 00 000000 		POPJ	P,
  3995					XLIST
  3996					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 142
SMDDT	MAC	29-Nov-78 13:26		DDT COMMAND FILE LOGIC                                                             SEQ 0112

  3997
  3998					SUBTTL DISPATCH TABLE
  3999
  4000	015106	30 14 0 02 015111 	BDISP:	POINT	12,DISP(R),11
  4001	015107	14 14 0 02 015111 		POINT	12,DISP(R),23
  4002	015110	00 14 0 02 015111 		POINT	12,DISP(R),35
  4003	015111				DISP:
  4004					DEFINE D (Z1,Z2,Z3)<
  4005						BYTE	(12) Z1-DDTOFS,Z2-DDTOFS,Z3-DDTOFS
  4006						IFN	<<Z1-DDTOFS>!<Z2-DDTOFS>!<Z3-DDTOFS>>&<-1,,770000>,
  4007						<PRINTX Z1, Z2, OR Z3 TOO LARGE FOR DISPATCH TABLE> >
  4008					;THIS MACRO PACKS 3 ADDRESSES INTO ONE WORD; EACH ADR IS 12 BITS
  4009
  4010			010170			IFE	FTYANK,<TAPIN=ERR>
  4011			010170			IFE	FTEXEC&FTPTP,< PUNCH==ERR
  4012			010170			BLKEND==ERR
  4013			010170			LOADER==ERR>
  4014						IFN	FTDEC20,<SETPAG==ERR>
  4015
  4016	015111	0170 0170 0170 		D (ERR,ERR,ERR);	(0)
  4017	015112	1547 0170 0170 		D (CNTRLZ,ERR,ERR);	(3)
  4018	015113	0170 0170 1166 		D (ERR,ERR,VARRW);	(6)
  4019	015114	1232 1136 0170 		D (TAB,LINEF,ERR);	(11)
  4020	015115	0170 1172 0170 		D (ERR,CARR,ERR);	(14)
  4021	015116	0170 0170 0170 		D (ERR,ERR,ERR);	(17)
  4022	015117	0170 0170 0170 		D (PUNCH,ERR,ERR);	(22)
  4023	015120	0170 0170 0170 		D (ERR,ERR,ERR);	(25)
  4024	015121	0170 0170 1547 		D (ERR,ERR,CNTRLZ);	(30)
  4025	015122	0455 0170 0170 		D (CONTROL,ERR,ERR);	(33)
  4026	015123	0170 0170 1110 		D (ERR,ERR,SPACE);	(36)
  4027	015124	1216 0766 1046 		D (SUPTYO,TEXI,ASSEM);	(41)
  4028	015125	0323 0324 0170 		D (DOLLAR,PERC,ERR);	(44)
  4029	015126	1044 1052 1114 		D (DIVD,LPRN,RPRN);	(47)
  4030	015127	1043 1050 1064 		D (MULT,PLUS,ACCF);	(52)
  4031	015130	1047 0421 1202 		D (MINUS,PERIOD,SLASH);	(55)
  4032	015131	0307 0307 0307 		D (NUM,NUM,NUM);	(60)
  4033	015132	0307 0307 0307 		D (NUM,NUM,NUM);	(63)
  4034	015133	0307 0307 0307 		D (NUM,NUM,NUM);	(66)
  4035	015134	0307 0665 1413 		D (NUM,TAG,SEMIC);	(71)
  4036	015135	1422 1415 1427 		D (FIRARG,EQUAL,ULIM);	(74)
  4037	015136	0235 1060 1372 		D (QUESTN,INDIRE,ABSA);	(77)
  4038	015137	3022 1364 4144 		D (BPS,CON,SYMD);	(102)
  4039	015140	3714 1362 1555 		D (EFFEC,SFLOT,GO);	(105)
  4040	015141	1361 0444 0170 		D (HWRDS,PILOC,BLKEND);	(110)
  4041	015142	0625 0170 3655 		D (KILL,LOADER,MASK);	(113)
  4042	015143	3717 4325 2635 		D (NWORD,BITO,PROCEDE);	(116)
  4043	015144	0446 1367 1363 		D (QUAN,RELA,SYMBOL);	(121)
  4044	015145	1353 0170 0170 		D (TEXO,SETPAG,ERR);	(124)
  4045	015146	3716 1563 0170 		D (WORD,XEC,TAPIN);	(127)
  4046	015147	4031 1206 1227 		D (ZERO,OCON,ICON);	(132)
  4047	015150	1212 1166 1416 		D (OSYM,VARRW,PSYM);	(135)
  4048
  4049					;THIS TABLE DOES NOT HAVE ENTRIES FOR CHARS .GE. 140; THESE
  4050					; ARE DETECTED AS ERRORS NEAR L21:
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 143
SMDDT	MAC	29-Nov-78 13:26		DISPATCH TABLE                                                                     SEQ 0113

  4051
  4052					SUBTTL	FANCY TERMINAL INPUT LOGIC
  4053
  4054						IFN	^-FTDEC20!<FTEXEC&FTEDIT>,<
  4055	015151				TXTI:
  4056	015151	261 17 0 00 000002 	DOTXTI:	PUSH	P,A		;SAVE ALL AC'S USED
  4057	015152	261 17 0 00 000003 		PUSH	P,B
  4058	015153	261 17 0 00 000004 		PUSH	P,C
  4059	015154	261 17 0 00 000005 		PUSH	P,T
  4060	015155	261 17 0 00 000006 		PUSH	P,W1
  4061	015156	261 17 0 00 000007 		PUSH	P,W2
  4062	015157	200 06 0 00 016440 		MOVE	W1,LINSPC	;COUNT OF BYTES IN DESTINATION
  4063	015160	336 07 0 00 016441 		SKIPN	W2,LINDB	;WAS IT NON-ZERO?
  4064	015161	200 07 0 00 016437 		MOVE	W2,CHINP	;NO. USE DEFAULT
  4065
  4066					; VERIFY ALL OF THE STRING POINTERS
  4067
  4068	015162	200 02 0 00 016437 	RDTXT1:	MOVE	A,CHINP		;HAVE A DEST POINTER?
  4069	015163	260 17 0 00 015330 		PUSHJ	P,RDCBP		;YES. CHECK IT OUT
  4070	015164	202 02 0 00 016437 		MOVEM	A,CHINP		;GET CONVERTED POINTER
  4071	015165	336 02 0 00 016442 		SKIPN	A,LINBP		;HAVE A ^R BUFFER?
  4072	015166	254 00 0 00 015171 		JRST	RDTOPM		;NO. GO AROUND THEN
  4073	015167	260 17 0 00 015330 		PUSHJ	P,RDCBP		;YES. VERIFY IT
  4074	015170	202 02 0 00 016442 		MOVEM	A,LINBP		;STORE VERIFIED POINTER
  4075	015171	200 02 0 00 000007 	RDTOPM:	MOVE	A,W2		;GET TOP OF BUFFER
  4076	015172	260 17 0 00 015330 		PUSHJ	P,RDCBP		;VERIFY IT
  4077	015173	200 07 0 00 000002 		MOVE	W2,A		;ALL VERIFIED NOW
  4078	015174	323 06 0 00 015221 		JUMPLE	W1,WRAP0	;MAKE SURE COUNT HAS ROOM IN IT
  4079									; ..
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 144
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0114

  4080
  4081					;MAIN LOOP - DOES INPUT OF BYTE AND DISPATCH ON CHARACTER CLASS
  4082					;ACTION ROUTINES EXIT TO:
  4083					; INSRT - APPEND CHARACTER AND CONTINUE
  4084					; NINSRT - CONTINUE WITHOUT APPENDING CHARACTER
  4085					; DING - BUFFER NOW EMPTY, POSSIBLE RETURN TO USER
  4086					; WRAP, WRAP0 - RETURNS TO USER
  4087
  4088	015175	202 06 0 00 016440 	NINSRT:	MOVEM	W1,LINSPC	;STORE COUNT
  4089	015176	260 17 0 00 015273 		PUSHJ	P,RDBIN		;DO BIN
  4090	015177	200 02 0 00 000003 		MOVE	A,B		;SAVE BYTE
  4091	015200	231 03 0 00 000011 		IDIVI	B,CHRWRD	;SETUP TO GET CHAR CLASS
  4092	015201	135 03 0 04 015235 		LDB	B,CCBTAB(C)	;GET IT FROM BYTE TABLE
  4093	015202	231 03 0 00 000002 		IDIVI	B,2		;SETUP TO REF DISPATCH TABLE
  4094						JUMPE	C,[HLRZ T,DISPTC(B)	;GET LH ENTRY
  4095	015203	322 04 0 00 016365 			JRST .+2]
  4096	015204	550 05 0 03 015246 		HRRZ	T,DISPTC(B)	;GET RH ENTRY
  4097	015205	200 03 0 00 000002 		MOVE	B,A		;ROUTINES GET BYTE IN B
  4098	015206	254 00 0 05 000000 		JRST	0(T)		;DISPATCH TO ACTION ROUTINE
  4099
  4100					;RETURN FROM ACTION ROUTINE TO APPEND CHARACTER AND CONTINUE.
  4101					; B/ CHARACTER
  4102
  4103	015207	332 00 0 00 016433 	INSRT:	SKIPE	WAKALL		;BREAK ON EVERYTHING?
  4104	015210	254 00 0 00 015217 		JRST	WRAP		;YES. WRAP IT UP THEN
  4105	015211	136 03 0 00 016437 		IDPB	B,CHINP		;APPEND BYTE TO USER STRING
  4106	015212	367 06 0 00 015175 		SOJG	W1,NINSRT	;CONTINUE IF STILL HAVE COUNT
  4107	015213	254 00 0 00 015221 		JRST	WRAP0		;COUNT EXHAUSTED, RETURN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 145
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0115

  4108
  4109					;RETURNS TO USER.
  4110
  4111					;RETURN TO USER IF BUFFER EMPTY
  4112
  4113	015214	312 07 0 00 016437 	NDING:	CAME	W2,CHINP	;BUFFER EMPTY?
  4114	015215	254 00 0 00 015175 		JRST	NINSRT		;NO, GO GET MORE INPUT
  4115	015216	254 00 0 00 015221 		JRST	WRAP0
  4116
  4117					;APPEND LAST CHARACTER AND RETURN
  4118
  4119	015217	136 03 0 00 016437 	WRAP:	IDPB	B,CHINP		;APPEND BYTE
  4120	015220	275 06 0 00 000001 		SUBI	W1,1		;UPDATE COUNT
  4121
  4122					;STORE NULL ON STRING AND RETURN
  4123
  4124	015221	323 06 0 00 015225 	WRAP0:	JUMPLE	W1,WRAP1	;DON'T STORE NULL IF COUNT EXHAUSTED
  4125	015222	400 03 0 00 000000 		SETZ	B,
  4126	015223	200 02 0 00 016437 		MOVE	A,CHINP
  4127	015224	136 03 0 00 000002 		IDPB	B,A		;STORE NULL WITHOUT CHANGING USER PTR
  4128
  4129					;UPDATE USER VARIABLES AND RETURN
  4130
  4131	015225	202 06 0 00 016440 	WRAP1:	MOVEM	W1,LINSPC	;UPDATE USER'S BYTE COUNT
  4132	015226	262 17 0 00 000007 		POP	P,W2
  4133	015227	262 17 0 00 000006 		POP	P,W1
  4134	015230	262 17 0 00 000005 		POP	P,T
  4135	015231	262 17 0 00 000004 		POP	P,C
  4136	015232	262 17 0 00 000003 		POP	P,B
  4137	015233	262 17 0 00 000002 		POP	P,A
  4138	015234	254 00 0 00 010522 		JRST	CPOPJ1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 146
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0116

  4139
  4140					;PARAMETERS FOR CLASS TABLE
  4141
  4142			000004		CCBITS==4			;BITS/BYTE
  4143			000011		CHRWRD==^D36/CCBITS		;BYTES/WORD
  4144
  4145					;DEFINED CHARACTER CLASSES:
  4146
  4147			000000		TOP==0				;TOPS10 BREAK
  4148			000001		BRK==1				;REGULAR BREAK SET
  4149			000002		ZER==2				;NULL
  4150			000003		EOLC==3				;EOL
  4151			000004		PUN==4				;PUNCTUATION
  4152			000005		SAFE==5				;ALL OTHERS
  4153			000006		RUBO==6				;DELETE A CHARACTER
  4154			000007		RTYP==7				;RETYPE THE LINE
  4155			000010		KLL==10				;DELETE THE LINE
  4156			000011		KWRD==11			;DELETE A WORD
  4157			000012		RDCRC==12			;CARRIAGE RETURN
  4158			000013		RDQTC==13			;QUOTE CHARACTER
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 147
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0117

  4159
  4160					;TABLE OF BYTE PTRS TO REFERENCE CLASS TABLE
  4161
  4162			000003			XX==CCBITS-1
  4163						XALL
  4164					CCBTAB:	REPEAT	CHRWRD,<
  4165						 POINT CCBITS,CTBL(B),XX
  4166						 XX=XX+CCBITS>
  4167
  4168	015235	40 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4169			000007			 XX=XX+CCBITS
  4170
  4171	015236	34 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4172			000013			 XX=XX+CCBITS
  4173
  4174	015237	30 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4175			000017			 XX=XX+CCBITS
  4176
  4177	015240	24 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4178			000023			 XX=XX+CCBITS
  4179
  4180	015241	20 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4181			000027			 XX=XX+CCBITS
  4182
  4183	015242	14 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4184			000033			 XX=XX+CCBITS
  4185
  4186	015243	10 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4187			000037			 XX=XX+CCBITS
  4188
  4189	015244	04 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4190			000043			 XX=XX+CCBITS
  4191
  4192	015245	00 04 0 03 015254 		 POINT CCBITS,CTBL(B),XX
  4193			000047			 XX=XX+CCBITS
  4194						SALL
  4195
  4196					;CLASS DISPATCH TABLE
  4197
  4198	015246	015217	015217		DISPTC:	WRAP,,WRAP
  4199	015247	015374	015413			ZNULL,,EOL1
  4200	015250	015217	015207			WRAP,,INSRT
  4201	015251	015422	015504			DELC,,RTYPE
  4202	015252	015452	015461			DELIN,,KLWORD
  4203	015253	015377	015414			RDCR,,RDQT
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 148
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0118

  4204
  4205					;CHARACTER CLASS TABLE
  4206
  4207					DEFINE CCN (A,B)<
  4208						REPEAT	B,<
  4209						 CC1 (A)>>
  4210
  4211					DEFINE CC1 (C)<
  4212						QQ=QQ+CCBITS
  4213						IFG	QQ-^D35,<
  4214						 QW
  4215						 QW=0
  4216						 QQ=CCBITS-1>
  4217						QW=QW+<C>B<QQ>>
  4218
  4219			000000			QW==0
  4220		777777	777777			QQ==-1
  4221
  4222		100000	000000		CTBL:	CC1(ZER)		;0
  4223		110421	042000			CCN(PUN,6)		;1-6
  4224		110421	042000			CC1(TOP)		;7
  4225	015254	110421	042004			CCN(PUN,2)		;10-11
  4226		206000	000000			CC1(EOLC)		;12
  4227		206400	000000			CC1(PUN)		;VT
  4228		206400	000000			CC1(TOP)		;FF
  4229		206402	400000			CC1(RDCRC)		;CR
  4230		206402	442104			CCN(PUN,4)		;16-21 (^N-^Q)
  4231	015255	206402	442104			CC1(RTYP)		;^R
  4232		350400	000000			CCN(PUN,2)		;^S,^T
  4233		350440	000000			CC1(KLL)		;^U
  4234		350442	600000			CC1(RDQTC)		;^V
  4235		350442	710000			CC1(KWRD)		;^W
  4236		350442	712100			CCN(PUN,2)		;^X,^Y
  4237	015256	350442	712101			CCN(BRK,2)		;^Z,$
  4238		050421	000000			CCN(PUN,4)		;34-37
  4239	015257	050421	042104			CCN(PUN,^D16)		;40-/
  4240	015260	210421	042104
  4241	015261	210425	252525			CCN(SAFE,^D10)		;0-9
  4242	015262	252525	042104			CCN(PUN,7)		;:-@
  4243	015263	210525	252525			CCN(SAFE,^D26)		;A-Z
  4244	015264	252525	252525
  4245	015265	252525	252525
  4246		250421	042000			CCN(PUN,6)		;]-140
  4247	015266	250421	042125			CCN(SAFE,^D26)		;A-Z
  4248	015267	252525	252525
  4249	015270	252525	252525
  4250	015271	252525	252104			CCN(PUN,4)		;173-176
  4251		214000	000000			CC1(RUBO)		;177
  4252	015272	214000	000000			QW			;GET LAST WORD IN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 149
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0119

  4253
  4254					;LOCAL ROUTINES TO DO LOGICAL BIN AND BOUT.
  4255
  4256	015273	332 03 0 00 016445 	RDBIN:	SKIPE	B,SAVCHR	;WANT TO BACK UP?
  4257						JRST	[SETZM SAVCHR	;ONLY ONCE
  4258	015274	254 00 0 00 016367 			 POPJ P,0]	;RETURN
  4259						IFN	FTEXEC,<
  4260	015275	331 00 0 00 017022 		SKPUSR
  4261						JRST	[PUSH P,T	;SAVE T
  4262						   IFN FTYANK,<
  4263							SKIPE COMAND
  4264							PUSHJ P,XPTRIN>
  4265							PUSHJ P,XTIN	;GET A BYTE
  4266							MOVE B,T	;PUT IN CORRECT PLACE
  4267							POP P,T		;RESTORE T
  4268	015276	254 00 0 00 016371 			JRST RDBIN1]	;SKIP NEXT INST
  4269						>
  4270						IFN	FTDEC20,<HALT DDT>	;SHOULD NOT BE HERE IN USER MODE
  4271						IFE	FTDEC20,<
  4272						IFN	FTYANK,<
  4273						PUSH	P,T		;SAVE AN AC
  4274						SKIPE	COMAND		;COMMAND FILE OPEN?
  4275						PUSHJ	P,PTRIN		;READ COMMAND FILE
  4276						JRST	[MOVEI T," "	;ASSUME EOF
  4277							SKIPL PTDFLG	;WAS IT EOF?
  4278							INCHRW T	;NO--READ A BYTE
  4279							JRST .+1]	;CONTINUE
  4280						MOVE	B,T		;COPY BYTE
  4281						POP	P,T>		;RESTORE T
  4282	015277	332 00 0 00 017077 		SKIPE	TOPS20
  4283	015300	254 00 0 00 015303 		JRST	.+3
  4284	015301	051 00 0 00 000003 		IFE	FTYANK,<INCHRW B>>	;READ BYTE UNDER TOPS-10
  4285	015302	254 00 0 00 015307 		JRST	RDBIN1
  4286	015303	261 17 0 00 000001 		PUSH	P,1
  4287	015304	104 00 0 00 000073 		PBIN
  4288	015305	200 03 0 00 000001 		MOVE	B,1
  4289	015306	262 17 0 00 000001 		POP	P,1
  4290	015307	202 03 0 00 016446 	RDBIN1:	MOVEM	B,LASCHR	;SAVE LAST CHAR READ
  4291	015310	263 17 0 00 000000 		POPJ	P,0		;RETURN
  4292
  4293
  4294					;RDBOUT
  4295					; B/ BYTE
  4296					;	PUSHJ P,RDBOUT
  4297					; RETURN +1 ALWAYS
  4298
  4299	015311	261 17 0 00 000005 	RDBOUT:	PUSH	P,T		;SAVE AN AC
  4300	015312	261 17 0 00 016432 		PUSH	P,CHINC
  4301	015313	261 17 0 00 016437 		PUSH	P,CHINP
  4302	015314	200 05 0 00 000003 		MOVE	T,B		;SET FOR ECHO
  4303	015315	260 17 0 00 014600 		PUSHJ	P,TOUT		;TYPE IT
  4304	015316	262 17 0 00 016437 		POP	P,CHINP
  4305	015317	262 17 0 00 016432 		POP	P,CHINC
  4306	015320	262 17 0 00 000005 		POP	P,T
  4307	015321	263 17 0 00 000000 		POPJ	P,0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 150
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0120

  4308
  4309					;RDSOUT - OUTPUT STRING ALA RDBOUT
  4310					; B/ STRING PTR
  4311					;	PUSHJ P,RDSOUT
  4312					; RETURN +1 ALWAYS
  4313
  4314	015322	200 02 0 00 000003 	RDSOUT:	MOVE	A,B		;COPY POINTER
  4315	015323	260 17 0 00 015330 		PUSHJ	P,RDCBP
  4316	015324	134 03 0 00 000002 	RDSL:	ILDB	B,A
  4317	015325	322 03 0 00 010523 		JUMPE	B,CPOPJ		;EXIT ON NULL
  4318	015326	260 17 0 00 015311 		PUSHJ	P,RDBOUT
  4319	015327	254 00 0 00 015324 		JRST	RDSL
  4320
  4321					;CHECK BYTE POINTER GIVEN AS ARGUMENT
  4322					; A/ BYTE POINTER
  4323					;	PUSHJ P,RDCBP
  4324					; RETURN +1: OK, LH INITIALIZED IF NECESSARY
  4325
  4326	015330	554 03 0 00 000002 	RDCBP:	HLRZ	B,A		;GET LH
  4327	015331	306 03 0 00 777777 		CAIN	B,-1		;IS DEFAULT?
  4328	015332	505 02 0 00 440700 		HRLI	A,(<POINT 7,0>)	;YES, FILL IN 7-BIT
  4329	015333	135 03 0 00 016376 		LDB	B,[POINT 6,A,11]	;CHECK BYTE SIZE
  4330	015334	305 03 0 00 000007 		CAIGE	B,7		;7 OR GREATER?
  4331	015335	254 04 0 00 015335 		HALT	.		;BAD BYTE SIZE
  4332	015336	133 00 0 00 000002 		IBP	A		;INCR IT AND DECR IT ONCE SO WILL
  4333	015337	254 00 0 00 015530 		JRST	DBP		; BE IN KNOWN STATE FOR COMPARES
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 151
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0121

  4334
  4335					;LOCAL ROUTINES FOR EDITING FUNCTIONS
  4336
  4337					;DELETE CHARACTER FROM DESTINATION - BACKUP PTR AND CHECK
  4338					;FOR TOP OF BUFFER
  4339					;	PUSHJ P,BACK
  4340					; RETURN +1: AT TOP OF BUFFER, NO CHARACTER TO DELETE
  4341					; RETURN +2: CHARACTER DELETED
  4342
  4343	015340	316 07 0 00 016437 	BACK:	CAMN	W2,CHINP	;AT TOP OF BUFFER?
  4344	015341	263 17 0 00 000000 		POPJ	P,0		;YES
  4345	015342	200 02 0 00 016437 		MOVE	A,CHINP		;GET DEST PTR
  4346	015343	260 17 0 00 015530 		PUSHJ	P,DBP		;DECREMENT IT
  4347	015344	202 02 0 00 016437 		MOVEM	A,CHINP		;PUT IT BACK
  4348	015345	344 06 0 00 010522 		AOJA	W1,CPOPJ1	;UPDATE COUNT AND RETURN
  4349
  4350					;PUT BYTE BACK INTO SOURCE
  4351					; B/ BYTE
  4352					;	PUSHJ P,RDBKIN
  4353					; RETURN +1 ALWAYS
  4354
  4355	015346				RDBKIN:
  4356	015346	200 02 0 00 016446 	DOBKIN:	MOVE	A,LASCHR	;GET LAST BYTE READ
  4357	015347	202 02 0 00 016445 		MOVEM	A,SAVCHR	;MAKE NEXT BYTE READ
  4358	015350	263 17 0 00 000000 		POPJ	P,0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 152
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0122

  4359
  4360					;FIND BEGINNING OF CURRENT LINE.
  4361					;	PUSHJ P,FNDLIN
  4362					; RETURN +1: AT TOP OF BUFFER
  4363					; RETURN +2: A/ BACKED-UP BYTE PTR TO BEGINNING OF LINE
  4364					;	B/ BYTE COUNT CONSISTENT WITH CHINP IN A
  4365
  4366	015351	316 07 0 00 016437 	FNDLIN:	CAMN	W2,CHINP	;AT TOP OF BUFFER?
  4367	015352	263 17 0 00 000000 		POPJ	P,0		;YES
  4368	015353	261 17 0 00 016437 		PUSH	P,CHINP		;SAVE CURRENT LINE VARIABLES
  4369	015354	261 17 0 00 000006 		PUSH	P,W1
  4370	015355	200 02 0 00 016437 	FNDLN1:	MOVE	A,CHINP		;BACKUP ONE CHARACTER
  4371	015356	260 17 0 00 015530 		PUSHJ	P,DBP
  4372	015357	202 02 0 00 016437 		MOVEM	A,CHINP
  4373	015360	271 06 0 00 000001 		ADDI	W1,1
  4374	015361	316 07 0 00 016437 		CAMN	W2,CHINP	;NOW AT TOP OF BUFFER?
  4375	015362	254 00 0 00 015367 		JRST	FNDLN2		;YES, RETURN
  4376	015363	135 03 0 00 016437 		LDB	B,CHINP		;NO, LOOK AT NEXT CHAR TO BE DELETED
  4377	015364	306 03 0 00 000012 		CAIN	B,12		;EOL OR LF?
  4378	015365	254 00 0 00 015367 		JRST	FNDLN2		;YES, RETURN
  4379	015366	254 00 0 00 015355 		JRST	FNDLN1		;NO, KEEP LOOKING
  4380
  4381	015367	200 02 0 00 016437 	FNDLN2:	MOVE	A,CHINP		;RETURN NEW LINE VARIABLES
  4382	015370	200 03 0 00 000006 		MOVE	B,W1
  4383	015371	262 17 0 00 000006 		POP	P,W1		;RESTORE OLD LINE VARIABLES
  4384	015372	262 17 0 00 016437 		POP	P,CHINP
  4385	015373	254 00 0 00 010522 		JRST	CPOPJ1
  4386
  4387					;ACTION ROUTINES
  4388
  4389					;ZERO BYTE
  4390
  4391	015374	332 00 0 00 016433 	ZNULL:	SKIPE	WAKALL		;USER HAVE A MASK?
  4392	015375	254 00 0 00 015207 		JRST	INSRT		;YES. GO SEE ABOUT IT THEN
  4393	015376	254 00 0 00 015221 		JRST	WRAP0		;NO. ALWAYS BREAK THEN
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 153
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0123

  4394
  4395					;CARRIAGE RETURN - IF LINE FEED FOLLOWS, TREAT LIKE EOL
  4396
  4397	015377	305 06 0 00 000002 	RDCR:	CAIGE	W1,2		;ROOM FOR CR AND LF?
  4398						JRST	[PUSHJ P,RDBKIN	;NO, PUT THE CR BACK
  4399	015400	254 00 0 00 016377 			JRST WRAP0]	;WILL GET IT NEXT TIME
  4400	015401	260 17 0 00 015273 		PUSHJ	P,RDBIN		;GET THE NEXT CHAR
  4401	015402	306 03 0 00 000012 		CAIN	B,12		;LF?
  4402	015403	254 00 0 00 015407 		JRST	RDCR1		;YES, NORMAL NEWLINE
  4403	015404	260 17 0 00 015346 		PUSHJ	P,RDBKIN	;NO, PUT BACK THE SECOND BYTE
  4404	015405	201 03 0 00 000015 		MOVEI	B,15		;APPEND A REAL CR
  4405	015406	254 00 0 00 015217 		JRST	WRAP
  4406
  4407	015407	201 03 0 00 000015 	RDCR1:	MOVEI	B,15
  4408	015410	136 03 0 00 016437 		IDPB	B,CHINP		;APPEND CR
  4409	015411	370 00 0 00 000006 		SOS	W1
  4410	015412	201 03 0 00 000012 	RDCR2:	MOVEI	B,12
  4411	015413	254 00 0 00 015217 	EOL1:	JRST	WRAP		;YES
  4412
  4413					;QUOTE CHARACTER (^V) - INHIBITS EDITING ACTION OF FOLLOWING CHARACTER
  4414
  4415	015414	305 06 0 00 000002 	RDQT:	CAIGE	W1,2		; ROOM FOR BOTH?
  4416						JRST	[PUSHJ P,RDBKIN	; NO. BACK UP
  4417	015415	254 00 0 00 016377 			JRST WRAP0]	; AND WAIT FOR NEXT TIME
  4418	015416	136 03 0 00 016437 		IDPB	B,CHINP		;STORE QUOTE
  4419	015417	370 00 0 00 000006 		SOS	W1		; ONE LESS
  4420	015420	260 17 0 00 015273 		PUSHJ	P,RDBIN		;GET THE NEXT CHAR
  4421	015421	254 00 0 00 015217 		JRST	WRAP		;YES
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 154
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0124

  4422
  4423					;DELETE CHARACTER (RUBOUT)
  4424
  4425	015422	260 17 0 00 015340 	DELC:	PUSHJ	P,BACK		;BACKUP PTR
  4426	015423	254 00 0 00 015221 		 JRST WRAP0		;NOTHING LEFT IN BUFFER
  4427	015424	200 05 0 00 016437 		MOVE	T,CHINP
  4428	015425	134 03 0 00 000005 		ILDB	B,T		;GET CHAR JUST DELETED
  4429	015426	306 03 0 00 000012 		CAIN	B,12		;WAS IT LF?
  4430	015427	254 00 0 00 015440 		JRST	DELC2		;YES
  4431	015430	261 17 0 00 000003 		PUSH	P,B
  4432	015431	201 03 0 00 000134 		MOVEI	B,"\"
  4433	015432	260 17 0 00 015311 		PUSHJ	P,RDBOUT
  4434	015433	262 17 0 00 000003 		POP	P,B
  4435	015434	260 17 0 00 015311 		PUSHJ	P,RDBOUT	;TYPE IT OUT
  4436	015435	201 03 0 00 000134 		MOVEI	B,"\"		;INDICATE DELETION
  4437	015436	260 17 0 00 015311 		PUSHJ	P,RDBOUT
  4438	015437	254 00 0 00 015175 	DELC4:	JRST	NINSRT		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
  4439
  4440	015440	316 07 0 00 016437 	DELC2:	CAMN	W2,CHINP	;AT BEGINNING OF DEST BUFFER?
  4441	015441	254 00 0 00 015447 		JRST	DELC1		;YES
  4442	015442	135 03 0 00 016437 		LDB	B,CHINP		;NO, CHECK CHARACTER PRECEEDING LF
  4443	015443	302 03 0 00 000015 		CAIE	B,15		;A CR?
  4444	015444	254 00 0 00 015447 		JRST	DELC1		;NO, LEAVE IT ALONE
  4445	015445	260 17 0 00 015340 		PUSHJ	P,BACK		;YES, DELETE IT ALSO
  4446	015446	254 00 0 00 015217 		 JRST WRAP		;(CAN'T HAPPEN)
  4447	015447				DELC1:	HRROI	B,[ASCIZ /
  4448	015447	561 03 0 00 016401 	/]
  4449	015450	260 17 0 00 015322 		PUSHJ	P,RDSOUT	;DO CRLF WHEN DELETING EOL OR CRLF
  4450	015451	254 00 0 00 015437 		JRST	DELC4
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 155
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0125

  4451
  4452					;DELETE LINE (CONTROL-U)
  4453
  4454	015452	201 04 0 00 000000 	DELIN:	MOVEI	C,0
  4455	015453	260 17 0 00 015351 		PUSHJ	P,FNDLIN	;FIND BEGINNING OF LINE
  4456	015454	254 00 0 00 015214 		 JRST NDING		;NOTHING IN BUFFER
  4457	015455	135 04 0 00 016437 		LDB	C,CHINP		;GET LAST CHAR IN BUFFER
  4458	015456	202 02 0 00 016437 		MOVEM	A,CHINP		;SET LINE VARIABLES TO BEGINNING
  4459	015457	202 03 0 00 000006 		MOVEM	B,W1
  4460	015460	254 00 0 00 015214 		JRST	NDING		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
  4461
  4462					;DELETE WORD (CONTROL-W)
  4463
  4464	015461	260 17 0 00 015340 	KLWORD:	PUSHJ	P,BACK		;DELETE AT LEAST ONE CHARACTER
  4465	015462	254 00 0 00 015221 		 JRST WRAP0		;WASN'T ONE
  4466	015463	200 05 0 00 016437 		MOVE	T,CHINP
  4467	015464	134 03 0 00 000005 		ILDB	B,T		;GET CHAR JUST DELETED
  4468	015465	306 03 0 00 000012 		CAIN	B,12		;LF OR EOL?
  4469	015466	254 00 0 00 015477 		JRST	BWRD3		;YES, DON'T DELETE
  4470	015467	260 17 0 00 015340 	BWRD1:	PUSHJ	P,BACK		;DELETE NEXT CHARACTER
  4471	015470	254 00 0 00 015501 		 JRST BWRD2		;NO MORE LEFT
  4472	015471	200 05 0 00 016437 		MOVE	T,CHINP		;LOOK AT CHARACTER JUST DELETED
  4473	015472	134 03 0 00 000005 		ILDB	B,T
  4474	015473	231 03 0 00 000011 		IDIVI	B,CHRWRD	;GET ITS CHARACTER CLASS
  4475	015474	135 03 0 04 015235 		LDB	B,CCBTAB(C)
  4476	015475	306 03 0 00 000005 		CAIN	B,SAFE		;IS IT A WORD SEPARATOR?
  4477	015476	254 00 0 00 015467 		JRST	BWRD1		;KEEP DELETING
  4478	015477	133 00 0 00 016437 	BWRD3:	IBP	CHINP		;YES, KEEP THAT CHARACTER
  4479	015500	275 06 0 00 000001 		SUBI	W1,1
  4480	015501	201 03 0 00 000137 	BWRD2:	MOVEI	B,"_"		;INDICATE WORD DELETION
  4481	015502	260 17 0 00 015311 		PUSHJ	P,RDBOUT
  4482	015503	254 00 0 00 015175 		JRST	NINSRT		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 156
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0126

  4483
  4484					;RETYPE LINE (CONTROL-R)
  4485
  4486	015504	260 17 0 00 015506 	RTYPE:	PUSHJ	P,RTYPES	;DO THE WORK
  4487	015505	254 00 0 00 015175 		JRST	NINSRT
  4488
  4489					;SUBROUTINE TO RETYPE LINE
  4490
  4491	015506				RTYPES:	HRROI	B,[ASCIZ /
  4492	015506	561 03 0 00 016401 	/]
  4493	015507	260 17 0 00 015322 		PUSHJ	P,RDSOUT	;NON-DISPLAY, GET CLEAN LINE
  4494	015510	260 17 0 00 015351 		PUSHJ	P,FNDLIN	;FIND BEGINNING OF LINE
  4495	015511	200 02 0 00 000007 		 MOVE A,W2		;AT TOP OF BUFFER - USE IT
  4496	015512	200 05 0 00 000002 		MOVE	T,A		;SAVE PTR TO BEGINNING OF LINE
  4497	015513	312 05 0 00 000007 		CAME	T,W2		;BEG OF LINE IS TOP OF BUFFER?
  4498	015514	254 00 0 00 015523 		JRST	RTYP1		;NO, DON'T TYPE ^R BFR
  4499	015515	332 05 0 00 016442 		SKIPE	T,LINBP		;GET ^R BFR IF ANY
  4500	015516	316 05 0 00 000007 	RTYW1:	CAMN	T,W2		;UP TO TOP OF BFR?
  4501	015517	254 00 0 00 015522 		JRST	RTYP4		;YES, DONE WITH ^R BFR
  4502	015520	134 03 0 00 000005 		ILDB	B,T		;GET CHAR FROM ^R BFR
  4503						JUMPN	B,[PUSHJ P,RDBOUT	;TYPE IT
  4504	015521	326 03 0 00 016402 			JRST RTYW1]
  4505	015522	200 05 0 00 000007 	RTYP4:	MOVE	T,W2		;DONE WITH ^R BFR, NOW DO MAIN BFR
  4506	015523	316 05 0 00 016437 	RTYP1:	CAMN	T,CHINP		;BACK TO END OF LINE?
  4507	015524	263 17 0 00 000000 		POPJ	P,0		;YES
  4508	015525	134 03 0 00 000005 		ILDB	B,T		;NO, GET NEXT BYTE
  4509	015526	260 17 0 00 015311 		PUSHJ	P,RDBOUT	;TYPE IT
  4510	015527	254 00 0 00 015523 		JRST	RTYP1		;LOOP UNTIL AT END OF BUFFER
  4511
  4512					;DECREMENT BYTE POINTER
  4513					; A/ BYTE PTR
  4514					;	PUSHJ P,DBP
  4515					; RETURNS +1, CLOBBERS B AND C
  4516
  4517	015530	135 03 0 00 016404 	DBP:	LDB	B,[POINT 6,A,5]	;GET P
  4518	015531	135 04 0 00 016376 		LDB	C,[POINT 6,A,11]	;GET S
  4519	015532	270 03 0 00 000004 		ADD	B,C		;NEW P = P + S
  4520	015533	305 03 0 00 000044 		CAIGE	B,^D36		;NEW P .GE 36?
  4521	015534	254 00 0 00 015541 		JRST	DBP1		;NO, BYTE IS IN SAME WORD.
  4522	015535	541 02 0 02 777777 		HRRI	A,-1(A)		;DECREMENT ADDRESS
  4523	015536	201 03 0 00 000044 		MOVEI	B,^D36		;MAKE P = REMAINDER (36,S)
  4524	015537	230 03 0 00 000004 		IDIV	B,C
  4525	015540	201 03 0 04 000000 		MOVEI	B,0(C)
  4526	015541	137 03 0 00 016404 	DBP1:	DPB	B,[POINT 6,A,5]
  4527	015542	263 17 0 00 000000 		POPJ	P,0
  4528						>			;END IFN ^-FTDEC20...
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 157
SMDDT	MAC	29-Nov-78 13:26		FANCY TERMINAL INPUT LOGIC                                                         SEQ 0127

  4529
  4530					SUBTTL	OP DECODER
  4531
  4532					;DESCRIPTION OF OP DECODER FOR DDT:
  4533					;
  4534					;         THE ENTIRE INSTRUCTION SET FOR THE PDP-10 CAN BE COMPACTED INTO
  4535					;A SPACE MUCH SMALLER THAN ONE REGISTER FOR EVERY SYMBOL.  THIS OCCURS
  4536					;BECAUSE OF THE MACHINE ORGANIZATION AND INSTRUCTION MNEMONICS CHOSEN
  4537					;FOR THE PDP-10.  FOR EXAMPLE, IF BITS (0-2) OF AN INSTRUCTION EQUAL
  4538					;101(2) THE INSTRUCTION IS A HALF WORD INSTRUCTION AND AN "H" MAY
  4539					;BE ASSUMED. "T" MAY BE ASSUMED FOR ALL TEST INSTRUCTIONS (WHICH
  4540					;BEGIN WITH 110(2).
  4541					;
  4542					;      THE TABLE TBL IN DDT CONSISTS OF 9 BIT BYTES, 4 TO A WORD.
  4543					;THE NUMBERS IN THE BYTES HAVE THE FOLLOWING SIGNIFICANCE:
  4544					;0-37(8):	THIS IS A DISPATCH COMMAND FOR THE OP-DECODER INTERPRETER.
  4545					;	LET THE RIGHT MOST TWO BITS EQUAL N; LET THE NEXT 3 BITS
  4546					;	EQUAL P.
  4547					;
  4548					;	THE CONTENTS OF INST (INSTRUCTION) CONTAIN IN THE RIGHT
  4549					;	MOST NINE BITS THE BINARY FOR THE MACHINE INSTRUCTION.
  4550					;	P AND N REFER TO THE CONTENTS OF INST, AND THE OP DECODER
  4551					;	WILL PRODUCE AN ANSWER D GIVEN P, N, AND THE CONTENTS
  4552					;	OF INSTX N+1 GIVES THE NUMBER OF BITS IN INST; P GIVES THE
  4553					;	POSITION (FROM THE RIGHT EDGE) OF THE N+1 BITS.
  4554					;
  4555					;	EXAMPLE: P = 6
  4556					;	         N = 2
  4557					;
  4558					;;	C(INST) = .010 101 100(2)
  4559					;
  4560					;	THE RESULT = D = 010(2) = 2(8)
  4561					;
  4562					;	D IS USED AS A DISPATCH ON THE NEXT BYTES IN THE TABLE.
  4563					;	IF D = 5, 5 BYTES IN THE TABLE (DON'T COUNT THE BYTES WHICH
  4564					;	PRINT TEXT OR ARE THE EXTEND BYTE, 41-73(8))
  4565					;	ARE SKIPPED OVER AND THE 6TH BYTE RESUMES
  4566					;	THE INTERPRETATION.
  4567					;
  4568					;40(8) THIS IS A STOP CODE; WHEN THIS IS REACHED INTERPRETATION
  4569					;	IS FINISHED.
  4570					;41(8)-72(8) THE ALPHABET IS ENCODED INTO THIS RANGE.
  4571					;	41- A
  4572					;	42- B
  4573					;	72- Z
  4574					;	WHEN A BYTE IN THIS RANGE IS REACHED, ITS CORRESPONDING
  4575					;	LETTER IS TYPED.
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 158
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0128

  4576
  4577					;73(8) THIS IS THE "EXTEND" BYTE. THE NEXT BYTE IN THE TABLE
  4578					;	IS A TRANSFER BYTE BUT MUST HAVE THE ADDRESS EXTENDED
  4579					;	BY <1000-74*2+FIR.> FIRST.
  4580					;
  4581					;74(8)-777(8) THIS IS A TRANSFER BYTE.  IF THE BYTE IN THIS RANGE IS
  4582					;	CONSIDERED TO BE A, TRANSFER INTERPRETATION TO THE 
  4583					;	<A-74(8)+FIR.>RD BYTE IN THE TABLE.
  4584					;
  4585					;MACROS ASSEMBLE THE TABLE TBL:
  4586					; 1.   A NUMBER FOLLOWED BY ^ ASSEMBLES A DISPATCH BYTE.  THE FIRST
  4587					;	DIGIT IS THE POSITION; THE SECOND DIGIT IS THE SIZE.
  4588					; 2.   A POINT (.) ASSEMBLES A STOP CODE.
  4589					; 3.   A NAME FOLLOWED BY A SLASH ASSEMBLES A TRANSFER TO THE
  4590					;	SYMBOLICALLY NAMED BYTE.
  4591					; 4.   A STRING OF LETTERS TERMINATED BY A SPACE, COMMA, OR POINT,
  4592					;	ASSEMBLE INTO A STRING OF BYTES, EACH BYTE BEING ONE LETTER.
  4593					;
  4594					;EXAMPLE OF BINARY TO SYMBOLIC DECODING:
  4595					;	THE MACHINE CODE FOR JRST IS 254
  4596					;		INST    0  1  0  1  0  1  1  0  0
  4597					;	THE INTERPRETER STARTS WITH THE FIRST BYTE IN THE TABLE (63^).
  4598					;	THE RESULT OF APPLYING THIS TO C(INST) GIVES 2.  SKIPPING OVER
  4599					;	2 BYTES IN THE TABLE AND INTERPRETING THE THIRD RESULTS IN
  4600					;	HAK/ BEING INTERPRETED.  AT HAK:, THERE IS A 33^.  APPLYING
  4601					;	THIS TO C(INST) RESULTS IN 5 NON PRINTING BYTES BEING SKIPPED
  4602					;	OVER:
  4603					;		1.  MV/
  4604					;			MOV PRINTING TEXT
  4605					;		2.  MO/
  4606					;		3.  ML/
  4607					;		4.  DV/
  4608					;		5.  SH/
  4609					;
  4610					;H1/ IS THE NEXT BYTE INTERPRETER.  AT H1: 03^ IS FOUND SO
  4611					;4 BYTES ARE SKIPPED OVER:
  4612					;		EXC PRINTING TEXT
  4613					;		1.  S3/
  4614					;		BL PRINTING TEXT
  4615					;		T PRINTING TEXT
  4616					;		2.  .
  4617					;		3.  AO/
  4618					;		4.  AOB/
  4619					;		THE NEXT LETTERS JRS ARE TYPED OUT.  THEN T/ IS FOUND.  AT
  4620					;T; A T IS TYPED OUT; THEN A "." IS FOUND AND EVERYTHING STOPS.
  4621					;
  4622					;		THE TABLE IS ALSO USED GOING FROM SYMBOLIC TO BINARY BUT A
  4623					;	TREE SEARCH METHOD IS USED.
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 159
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0129

  4624
  4625					REPEAT 0,<
  4626					
  4627					DEFINE REDEF (XX)<
  4628					DEFINE INFO (AA,BB)<
  4629					AA XX'BB>>
  4630					
  4631					
  4632					DEFINE BYT9 (L)<
  4633					XLIST
  4634					REDEF %
  4635						ZZ==0
  4636						ZZZ==0
  4637						ZZM==1
  4638					
  4639						IRPC	L,<
  4640						Z=="L"
  4641						IFE	Z-":",<INFO <>,<==CLOC>
  4642							IFNDEF FIR.,<FIR.==CLOC>
  4643							IFGE CLOC+73-1000-FIR.,<PRINTX OPTABLE TOO LONG>
  4644							Z==0>
  4645						IFE	Z-"/",<IF1 <OUTP 1>
  4646							IF2,<INFO OUTP,+73-FIR.>
  4647							Z==0>
  4648						IFE	Z-"^",<OUTP <ZZ&70/2+ZZ&7-1>
  4649						Z==0>
  4650						IFE	<Z-",">*<Z-".">*<Z-40>,<IFN ZZZ,<
  4651									REPEAT 5,<ZZ==ZZZ&77
  4652										IFN ZZ,<OUTP ZZ>
  4653										ZZZ==ZZZ/100>>
  4654									IFE Z-".",<OUTP 40>
  4655									Z==0>
  4656						IFN	Z,<INFO REDEF,L
  4657						ZZ==ZZ*10+Z&7
  4658						ZZZ==ZZZ+<Z-40>*ZZM
  4659						ZZM==ZZM*100>
  4660						IFE	Z,<REDEF %
  4661						ZZ==0
  4662						ZZZ==0
  4663						ZZM==1>>
  4664					LIST>
  4665					
  4666					DEFINE OUTP (A)<
  4667						BINRY==BINRY*400+BINRY*400+A
  4668						BINC==BINC-1
  4669						IFE	BINC,<EXP BINRY
  4670							BINRY==0
  4671							BINC==4>
  4672						CLOC==CLOC+1>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 160
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0130

  4673					
  4674					TBL:				;OPDECODER BYTE TABLE
  4675						.XCREF			;KEEP THIS MESS OUT OF CREF
  4676					
  4677					BINRY==0
  4678					CLOC==0				;SET BYTE LOCATION COUNTER TO 0
  4679					BINC==4				;INIT BYTES/WORD COUNTER
  4680					
  4681					BYT9 <63^UUO/FLO/HAK/ACCP/BOOLE/H HWT/T ACBM/>
  4682					
  4683					;IO INSTRUCTIONS
  4684					BYT9 <21^BD/CON,11^OI/S,01^Z/O/>
  4685					BYT9 <BD:01^BLK,IO/DATA,IO:11^I/O/OI:01^O/I/>
  4686					
  4687					;UUOS
  4688					BYT9 <UUO:51^.,32^U40/U50/U60/21^U703/11^USET/01^>
  4689					BYT9 <LOOKU,P/ENTE,R/USET:USET,01^I/O/>
  4690					BYT9 <U40:03^CAL/INI T/.....,CALL I/>
  4691					BYT9 <U60:21^U603/01^IN,BPUT/OUT,BPUT:11^BU,F:F.,PU,T/>
  4692					BYT9 <U603:01^U6062/STAT,11^O:O.,Z:Z.,U6062:11^S,U62/G,U62:ETST,S/>
  4693					;BYTE AND FLOATING INSTRUCTIONS
  4694					
  4695					BYT9 <FLO:51^BYTE/F 32^ AD A/SB A/MP A/DV A:>
  4696					BYT9 <21^LMB/R,IMB/LMB:02^.,L:L.,M:M.,B:B.,BYTE:32^.,I110//,I120/,03^UF,PA/DF,N/>
  4697					BYT9 <FS C/IB P:P.,I LD/LD:LD B/I DP/DP:DP B/>
  4698					
  4699					;FWT,FIXED POINT ARITH,MISC.
  4700					
  4701					BYT9 <HAK:33^MV/MV:MOV MO/ML/DV/SH/H1/JP/>
  4702					BYT9 <21^ADD IMB/SU BIMB:B IMB:02^.,I:I.,M/B/MO:22^>
  4703					BYT9 <EIMS:E IMS/S IMS/N IMS/M IMS:02^.,I/M/S:S.,>
  4704					BYT9 <ML:21^I ML1/ML1:MUL IMB/DV:21^I DV1/DV1:>
  4705					BYT9 <DI DV2:V IMB/H1:03^EXC S3/BL T:T.,AO/AO:AOBJ,>
  4706					BYT9 <AOB/JRS T/JFC L/XC T/.AOB:01^P/N/>
  4707					BYT9 <JP:03^PU/PU:PUSH PUS/PO/PO:POP POP/JS,R:R.,>
  4708					BYT9 <JS P/JS PA:A.,JR PA/PUS:01^J:J..,POP:>
  4709					BYT9 <01^.,J/SH:02^A S2/ROT S1/L S2:S S3:H S1/21^JFF O/.,S1:21^.,C:C.,>
  4710					
  4711					;ARITH COMP,SKIP,JUMP
  4712					
  4713					BYT9 <ACCP:42^CA CA1/SJ/A JS/S JS:O 31^>
  4714					BYT9 <J COMP/S COMP/CA1:31^I COMP/M COMP/>
  4715					BYT9 <SJ:31^JUM PSJ/SKI PSJ:P COMP:>
  4716					BYT9 <03^.,L/E:E.,L E/PA/G E/N:N.,G.,>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 161
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0131

  4717					
  4718					;HALF WORDS
  4719					
  4720					BYT9 <HWT:51^HW1/21^R HW2/L HW2:R HW3/HW1:>
  4721					BYT9 <21^L HW4/R HW4:L HW3:32^IMS/Z IMS/O IMS/EIMS/>
  4722					
  4723					;TEST INSTRUCTIONS
  4724					
  4725					BYT9 <ACBM:31^AC1/01^D AC2/S AC2/AC1:01^R AC2/L,>
  4726					BYT9 <AC2:42^N EAN/Z EAN/C EAN/O EAN:12^.,E/PA/N/>
  4727					
  4728					
  4729					;BOOLEAN
  4730					
  4731					BYT9 <BOOLE:24^ST/AN:AND B2/AN/ST/AN/ST/>
  4732					BYT9 <X OR:OR B2/I OR/AN/EQ DV2/ST/OR/ST/OR/OR/>
  4733					BYT9 <ST:SET B2:24^Z IMB/IMB/CA:C TA/TM:M IMB/>
  4734					BYT9 <CM:C TM/TA:A IMB/IMB/IMB/CB:C BIMB/IMB/CA/>
  4735					BYT9 <CA/CM/CM/CB/O IMB/>
  4736					
  4737					;INSTRUCTION GROUP 120
  4738					BYT9 <I120:11^ DMOV/ 01^ FIX,FIX2/ 21^.,FLT,FIX2: 21^. R/>
  4739					BYT9 <DMOV:DMOV,01^ E,EM// N,EM:21^. M/>
  4740					
  4741					;MORE UUO'S
  4742					BYT9 <U50:03^OPE,N/TT,CAL:CAL L/...,RENAM,E/I,N/OU,T/>
  4743					BYT9 <U703:02^CLOS,E/RELEA,S/MTAP,E/UGET,F/>
  4744					
  4745					;INSTRUCTION GROUP 110 - DF ARITHMETIC
  4746					BYT9 <I110:21^DF DF// ., DF:02^AD.,SB.,M P/ DV.>
  4747					
  4748					REPEAT BINC,<BINRY==BINRY*400+BINRY*400>
  4749						IFN	BINRY,<EXP BINRY>
  4750						.CREF			;TURN CREF BACK ON
  4751						>			;END OF REPEAT 0
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 162
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0132

  4752
  4753					;THE FOLLOWING IS AN ALTERNATE SET OF MACROS FOR BUILDING THE OP
  4754					;TABLE.  THEY ASSEMBLE MUCH FASTER THAN THE ONES ABOVE. THEY ARE:
  4755					;.ADR - DECLARE TAG; .TRA - TRANSFER BYTE; .TRAX - EXTENDED TRANSFER
  4756					;BYTE; .DIS - DISPATCH BYTE; .TXT - TEXT BYTES; .END - TEXT BYTES
  4757					;FOLLOWED BY STOP BYTE.
  4758
  4759					DEFINE BYT9 (A) <
  4760						XLIST
  4761						IRP	A,<
  4762					A>
  4763						LIST>
  4764
  4765						IF1,<
  4766					
  4767					DEFINE .ADR (A) <
  4768					%'A== CLOC
  4769					FIR.== CLOC
  4770					DEFINE .ADR (B) <
  4771					%'B== CLOC
  4772					LASTB==CLOC+74-FIR.>>
  4773					
  4774					DEFINE .TRA (A)<CLOC==CLOC+1>
  4775					DEFINE .TRAX (A)<CLOC==CLOC+2>
  4776					
  4777					SYN .TRA, .DIS
  4778					
  4779					DEFINE .TXT (A) <
  4780						IFNB	<A>, <IRPC A,<CLOC==CLOC+1>>>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 163
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0133

  4781					DEFINE .END (A) <
  4782						IFNB	<A>, <IRPC A,<CLOC==CLOC+1>>
  4783					CLOC== CLOC+1>
  4784					
  4785						>			;END OF IF1
  4786						IF2,<
  4787
  4788					DEFINE .ADR (A)<IFN %'A-CLOC,<PRINTX PHASE ERR AT: %'A>>
  4789
  4790					DEFINE .TRA (A) <OUTP %'A+74-FIR.>
  4791
  4792					DEFINE .TRAX (A),<OUTP 73
  4793						OUTP	74+<Z1==%'A-FIR.-1000+74>
  4794						IFL	Z1,<PRINTX "A" TOO SMALL FOR .TRAX>>
  4795
  4796					DEFINE .DIS (A) <OUTP A&70/2+A&7-1>
  4797
  4798					DEFINE .TXT (A) <IFNB <A>,<IRPC A,<OUTP "A"-40>>>
  4799
  4800					DEFINE .END (A) <
  4801						IFNB	<A>, <IRPC A,<OUTP "A"-40>>
  4802					OUTP 40>
  4803
  4804					DEFINE OUTP (A)<
  4805						IFGE	<A>-1000,<PRINTX OPTABLE BYTE "A" TOO BIG>
  4806						IFE	<BINC==BINC-9>-^D27,<BINR1==A>
  4807						IFE	BINC-^D18,<BINR2==A>
  4808						IFE	BINC-9,<BINR3==A>
  4809						IFE	BINC,< BYTE (9) BINR1,BINR2,BINR3,<A>
  4810						BINC==^D36>
  4811					CLOC==CLOC+1 >
  4812						>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 164
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0134

  4813
  4814	015543				TBL:	.XCREF			;OPDECODER BYTE TABLE
  4815
  4816			000000		CLOC== 0			;SET BYTE LOCATION COUNTER TO 0
  4817			000044		BINC== ^D36			;INIT BYTES/WORD COUNTER
  4818
  4819					;**********THE ARGUMENT FOR THE FOLLOWING "BYT9" MACRO
  4820					;**************TERMINATES AT THE NEXT COMMENT WITH: **************
  4821
  4822						IFN	FTDEC20,<
  4823						BYT9	<
  4824					.DIS 63,.END,.TRA FLO,.TRA HAK,.TRA ACCP,.TRA BOOLE
  4825						.TXT H,.TRA HWT,.TXT T,.TRA ACBM>
  4826						>			;END FTDEC20
  4827
  4828						IFE	FTDEC20,<
  4829						BYT9	<
  4830					.DIS 63,.TRA UUO,.TRA FLO,.TRA HAK,.TRA ACCP,.TRA BOOLE
  4831						.TXT H,.TRA HWT,.TXT T,.TRA ACBM>
  4832						>			;END FTDEC20
  4833
  4834						BYT9	<
  4835					
  4836					;IO INSTRUCTIONS
  4837					
  4838					.DIS 21,.TRA BD,.TXT CON,.DIS 11,.TRA OI,.TXT S,.DIS 01,.TRA Z,.TRA O
  4839					.ADR BD,.DIS 01,.TXT BLK,.TRA IO,.TXT DATA,.ADR IO,.DIS 11,.TRA I,.TRA O
  4840						.ADR OI,.DIS 01,.TRA O,.TRA I
  4841					;UUOS
  4842					
  4843					.ADR UUO,.DIS 51,.END,.TXT,.DIS 32,.TRA U40,.TRAX U50,.TRA U60
  4844						.DIS 21,.TRAX U703,.DIS 11,.TRA USET,.DIS 01
  4845					.TXT LOOKU,.TRA P,.TXT ENTE,.TRA R,.ADR USET,.TXT USET,.DIS 01,.TRA I,.TRA O
  4846					.ADR U40,.DIS 03,.TRAX CAL,.TXT INI,.TRA T,.END,.END,.END,.END,.END,.TXT CALL,.TRA I
  4847					.ADR U60,.DIS 21,.TRA U603,.DIS 01,.TXT IN,.TRA BPUT,.TXT OUT
  4848						.ADR BPUT,.DIS 11,.TXT BU,.ADR F,.END F,.TXT,.TXT PU,.TRA T
  4849					.ADR U603,.DIS 01,.TRA U6062,.TXT STAT,.DIS 11,.ADR O,.END O,.TXT,.ADR Z,.END Z,.TXT
  4850						.ADR U6062,.DIS 11,.TXT S,.TRA U62,.TXT G,.ADR U62,.TXT ETST,.TRA S
  4851					
  4852					;BYTE AND FLOATING INSTRUCTIONS
  4853					
  4854					.ADR FLO,.DIS 51,.TRA BYTE,.TXT F,.DIS 32,.TXT,.TXT AD,.TRA A,.TXT SB
  4855						.TRA A,.TXT MP,.TRA A,.TXT DV,.ADR A
  4856					.DIS 21,.TRA LMB,.TXT R,.TRA IMB,.ADR LMB,.DIS 02,.END,.TXT
  4857						.ADR L,.END L,.TXT,.ADR M,.END M,.TXT
  4858					.ADR B,.END B,.TXT,.ADR BYTE,.DIS 32,.TRAX I100,.TRAX I110,.TRA I120,.TXT
  4859						.DIS 03,.TXT UF,.TRA PA,.TXT DF,.TRA N
  4860					.TXT FS,.TRA C,.TXT IB,.ADR P,.END P,.TXT,.TXT I,.TRA LD
  4861						.ADR LD,.TXT LD,.TRA B,.TXT I,.TRA DP,.ADR DP,.TXT DP,.TRA B
  4862					
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 165
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0135

  4863					
  4864					;FWT-FIXED POINT ARITH-MISC
  4865					
  4866					.ADR HAK,.DIS 33,.TRA MV,.ADR MV,.TXT MOV,.TRA MO,.TRA ML,.TRA DV
  4867						.TRA SH,.TRA H1,.TRA JP
  4868					.DIS 21,.TXT ADD,.TRA IMB,.TXT SU,.ADR BIMB,.TXT B,.ADR IMB,.DIS 02,.END,.TXT
  4869						.ADR I,.END I,.TXT,.TRA M,.TRA B,.ADR MO,.DIS 22
  4870					.ADR EIMS,.TXT E,.TRA IMS,.TXT S,.TRA IMS,.TXT N,.TRA IMS,.TXT M
  4871						.ADR IMS,.DIS 02,.END,.TXT,.TRA I,.TRA M,.ADR S,.END S,.TXT
  4872					.ADR ML,.DIS 21,.TXT I,.TRA ML1,.ADR ML1,.TXT MUL,.TRA IMB
  4873						.ADR DV,.DIS 21,.TXT I,.TRA DV1
  4874					.ADR DV1,.TXT DI,.ADR DV2,.TXT V,.TRA IMB,.ADR H1,.DIS 03,.TXT EXC,.TRA S3,.TXT BL
  4875						.ADR T,.END T,.TXT,.TRA AO,.ADR AO,.TXT AOBJ
  4876					.TRA AOB,.TXT JRS,.TRA T,.TXT JFC,.TRA L,.TXT XC,.TRA T,.TXT MA,.TRA P
  4877						.ADR AOB,.DIS 01,.TRA P,.TRA N
  4878					.ADR JP,.DIS 03,.TRA PU,.ADR PU,.TXT PUSH,.TRA PUS,.TRA PO
  4879						.ADR PO,.TXT POP,.TRA POP,.TXT JS,.ADR R,.END R,.TXT
  4880					.TXT JS,.TRA P,.TXT JS,.ADR PA,.END A,.TXT,.TXT JR,.TRA PA
  4881						.ADR PUS,.DIS 01,.ADR J,.END J,.END,.TXT,.ADR POP
  4882					.DIS 01,.END,.TXT,.TRA J,.ADR SH,.DIS 02,.TXT A,.TRA S2,.TXT ROT,.TRA S1,.TXT L
  4883						.ADR S2,.TXT S,.ADR S3,.TXT H,.TRA S1,.DIS 21,.TXT JFF,.TRA O,.END
  4884						.ADR S1,.DIS 21,.END,.TXT,.ADR C,.END C,.TXT
  4885					
  4886					;ARITH COMP-SKIP-JUMP
  4887					
  4888					.ADR ACCP,.DIS 42,.TXT CA,.TRA CA1,.TRA SJ,.TXT A,.TRA JS,.TXT S
  4889						.ADR JS,.TXT O,.DIS 31
  4890					.TXT J,.TRA COMP,.TXT S,.TRA COMP,.ADR CA1,.DIS 31,.TXT I,.TRA COMP,.TXT M,.TRA COMP
  4891					.ADR SJ,.DIS 31,.TXT JUM,.TRA PSJ,.TXT SKI,.ADR PSJ,.TXT P,.ADR COMP
  4892					.DIS 03,.END,.TXT,.TRA L,.ADR E,.END E,.TXT,.TXT L,.TRA E,.TRA PA,.TXT G,.TRA E
  4893						.ADR N,.END N,.TXT,.END G,.TXT
  4894					
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 166
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0136

  4895					
  4896					;HALF WORDS
  4897					
  4898					.ADR HWT,.DIS 51,.TRA HW1,.DIS 21,.TXT R,.TRA HW2,.TXT L,.ADR HW2,.TXT R,.TRA HW3
  4899					.ADR HW1,.DIS 21,.TXT L,.TRA HW4,.TXT R,.ADR HW4,.TXT L
  4900						.ADR HW3,.DIS 32,.TRA IMS,.TXT Z,.TRA IMS,.TXT O,.TRA IMS,.TRA EIMS
  4901					
  4902					;TEST INSTRUCTIONS
  4903					
  4904					.ADR ACBM,.DIS 31,.TRA AC1,.DIS 01,.TXT D,.TRA AC2,.TXT S,.TRA AC2
  4905						.ADR AC1,.DIS 01,.TXT R,.TRA AC2,.TXT L
  4906					.ADR AC2,.DIS 42,.TXT N,.TRA EAN,.TXT Z,.TRA EAN,.TXT C,.TRA EAN,.TXT O
  4907						.ADR EAN,.DIS 12,.END,.TXT,.TRA E,.TRA PA,.TRA N
  4908					
  4909					;BOOLEAN
  4910					
  4911					.ADR BOOLE,.DIS 24,.TRA ST,.ADR AN,.TXT AND,.TRA B2,.TRA AN,.TRA ST,.TRA AN,.TRA ST
  4912					.TXT X,.ADR OR,.TXT OR,.TRA B2,.TXT I,.TRA OR,.TRA AN,.TXT EQ
  4913						.TRA DV2,.TRA ST,.TRA OR,.TRA ST,.TRA OR,.TRA OR
  4914					.ADR ST,.TXT SET,.ADR B2,.DIS 24,.TXT Z,.TRA IMB,.TRA IMB
  4915						.ADR CA,.TXT C,.TRA TA,.ADR TM,.TXT M,.TRA IMB
  4916					.ADR CM,.TXT C,.TRA TM,.ADR TA,.TXT A,.TRA IMB,.TRA IMB,.TRA IMB
  4917						.ADR CB,.TXT C,.TRA BIMB,.TRA IMB,.TRA CA
  4918					.TRA CA,.TRA CM,.TRA CM,.TRA CB,.TXT O,.TRA IMB
  4919					
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 167
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0137

  4920					
  4921					;INSTRUCTION GROUP 120
  4922					.ADR I120,.DIS 11,.TRAX DMOV,.DIS 01,.TXT FIX,.TRAX FIX2,.DIS 21,.END EXTEND
  4923						.TXT FLT,.ADR FIX2,.DIS 21,.END,.TRA R
  4924					.ADR DMOV,.TXT DMOV,.DIS 01,.TXT E,.TRAX EM,.TXT N
  4925						.ADR EM,.DIS 21,.END,.TRA M
  4926					
  4927					;MORE UUO'S
  4928					
  4929					.ADR U50,.DIS 03,.TXT OPE,.TRA N,.TXT TT,.ADR CAL,.TXT CAL,.TRA L,.END,.END,.END
  4930						.TXT,.TXT RENAM,.TRA E,.TXT I,.TRA N,.TXT OU,.TRA T
  4931					.ADR U703,.DIS 02,.TXT CLOS,.TRA E,.TXT RELEA,.TRA S
  4932						.TXT MTAP,.TRA E,.TXT UGET,.TRA F
  4933					
  4934					;INSTRUCTION GROUP 110 - DF ARITHMETIC
  4935					.ADR I110,.DIS 21,.TXT DF,.TRAX DF,.TXT D,.TRAX FXDP,.ADR DF,.DIS 02
  4936						.END AD,.END SB,.TXT M,.TRA P,.END DV
  4937					
  4938					;KL10 FIXED POINT DOUBLE PRECISION OPERATIONS
  4939					.ADR FXDP,.DIS 02,.END ADD,.END SUB,.END MUL,.END DIV
  4940					
  4941					;OPCODES 100 TO 107 COME HERE
  4942					.ADR I100,.DIS 21,.END,.DIS 02,.END,.END ADJSP,.END,.END
  4943					;**********THIS TERMINATES THE "BYT9" MACRO ARGUMENT******
  4944						>
  4945
  4946						IF1,< BLOCK <CLOC+3>/4>
  4947	015765	040 040 060 000 		IF2,< IFN BINC-^D36,<BYTE (9) BINR1,BINR2,BINR3,0> >
  4948
  4949						IFNDEF	CLOC.,<CLOC.==CLOC>
  4950						IFN	CLOC.-CLOC,<PRINTX PHASE ERROR IN OPTABLE>
  4951
  4952						.CREF			;TURN CREF BACK ON
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 168
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0138

  4953
  4954	015766	44 11 0 00 015543 	BTAB:	POINT	9,TBL		;TABLE USED TO GET NEXT BYTE POINTER
  4955	015767	33 11 0 00 015543 		POINT	9,TBL,8		;FOR TRANSFER BYTE
  4956	015770	22 11 0 00 015543 		POINT	9,TBL,17
  4957	015771	11 11 0 00 015543 		POINT	9,TBL,26
  4958
  4959	015772	201 05 0 00 000000 	OPEVAL:	MOVEI	T,0		;EVALUATE FOR AN OP CODE
  4960	015773	136 05 0 00 016571 		IDPB	T,CHP		;INSERT NULL IN TEXT FOR SYMBOL
  4961	015774	202 17 0 00 016574 		MOVEM	P,SAVPDL
  4962	015775	624 00 0 00 000004 		TRZA	F,OUTF
  4963	015776	660 00 0 00 000004 	OPTYPE:	TRO	F,OUTF		;TYPE AN OPCODE SYMBOLICALLY
  4964	015777	242 05 0 00 777745 		LSH	T,-33
  4965	016000	202 05 0 00 016570 		MOVEM	T,INST		;GET OPCODE INTO RIGHT 9 BITS
  4966	016001	200 05 0 00 016123 		MOVE	T,[XWD 440700,TXT]
  4967	016002	202 05 0 00 016571 		MOVEM	T,CHP		;FOR OPEVAL,SETUP POINTER TO INPUT TEXT
  4968	016003	620 00 0 00 000002 		TRZ	F,ITF		;CLEAR INSTRUCTION TYPED FLAG
  4969	016004	403 02 0 00 000006 		CLEARB	R,W1
  4970	016005	200 07 0 00 015766 		MOVE	W2,BTAB
  4971	016006	134 05 0 00 000007 	DC1:	ILDB	T,W2		;GET NEXT BYTE IN TBL
  4972	016007	303 05 0 00 000040 		CAILE	T,40
  4973	016010	301 05 0 00 000074 		CAIL	T,74
  4974	016011	365 02 0 00 016006 		SOJGE	R,DC1		;SKIP OVER # BYTES = C(R)
  4975	016012	327 02 0 00 016006 		JUMPG	R,DC1		;SKIP OVER ALPHA TEXT (AND EXTEND BYTES) WITHOUT COUNTING
  4976	016013	275 05 0 00 000040 		SUBI	T,40
  4977	016014	322 05 0 00 016046 		JUMPE	T,DECX		;TRANSFER ON ASTOP CODE
  4978	016015	327 05 0 00 016026 		JUMPG	T,DC2
  4979	016016	137 05 0 00 016405 		DPB	T,[XWD 340500,PNTR]	;SETUP R ON A DISPATCH BYTE
  4980	016017	620 05 0 00 777774 		TRZ	T,-4
  4981	016020	350 00 0 00 000005 		AOS	T
  4982	016021	137 05 0 00 016406 		DPB	T,[XWD 300600,PNTR]
  4983	016022	606 00 0 00 000004 		TRNN	F,OUTF
  4984	016023	254 00 0 00 016065 		JRST	DC6		;FOR OPEVAL ONLY
  4985	016024	135 02 0 00 016567 		LDB	R,PNTR		;GET # BYTES TO SKIP OVER
  4986	016025	254 00 0 00 016006 		JRST	DC1
  4987
  4988	016026	571 05 0 05 777745 	DC2:	HRREI	T,-33(T)	;TOTAL SUBTRACTED NOW IS 73
  4989	016027	321 05 0 00 016040 		JUMPL	T,DECT		;TYPE OUT A LETTER
  4990	016030	327 05 0 00 016033 		JUMPG	T,DC3		;XFER IF BYTE .GE. 74
  4991	016031	134 05 0 00 000007 		ILDB	T,W2		;BYTE IS EXTEND BYTE (73), GET NEXT
  4992	016032	201 05 0 05 000611 		MOVEI	T,1000-74*2+1(T)	; BYTE AND ADD IN EXTENSION (-OFFSET)
  4993	016033	201 06 0 05 000024 	DC3:	MOVEI	W1,FIR.-1(T)	;BYTE IS AN XFER (1ST XFER IS 74)
  4994	016034	231 06 0 00 000004 		IDIVI	W1,4
  4995	016035	200 07 0 07 015766 		MOVE	W2,BTAB(W2)	;CALCULATE POINTER TO NEXT BYTE
  4996	016036	271 07 0 06 000000 		ADDI	W2,(W1)
  4997	016037	254 00 0 00 016006 		JRST	DC1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 169
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0139

  4998
  4999	016040	602 00 0 00 000004 	DECT:	TRNE	F,OUTF
  5000	016041	254 00 0 00 016111 		JRST	DC8		;TYPE OUT A LETTER
  5001	016042	134 06 0 00 016571 		ILDB	W1,CHP		;GET NEXT INPUT LETTER
  5002	016043	302 06 0 05 000133 		CAIE	W1,133(T)	;COMPARE WITH ASSUMED NEXT LETTER
  5003	016044	254 00 0 00 016052 		JRST	NOMAT		;DOESNT MATCH
  5004	016045	254 00 0 00 016006 		JRST	DC1		;MATCHES, TRY NEXT
  5005
  5006	016046	602 00 0 00 000004 	DECX:	TRNE	F,OUTF		;STOP (CODE 40) HAS BEEN SEEN
  5007	016047	263 17 0 00 000000 		POPJ	P,		;IF FOR OUTPUT, RETURN
  5008	016050	134 06 0 00 016571 		ILDB	W1,CHP		;GET NEXT INPUT CHAR IF ANY
  5009	016051	322 06 0 00 016101 		JUMPE	W1,DC7		;DOES # OF CHARS MATCH
  5010	016052	262 17 0 00 000002 	NOMAT:	POP	P,R		;NO, BACK UP AND TRY SOME MORE
  5011	016053	262 17 0 00 000007 		POP	P,W2
  5012	016054	262 17 0 00 016567 		POP	P,PNTR
  5013	016055	262 17 0 00 016571 		POP	P,CHP
  5014	016056	350 00 0 00 000002 	NOMAT1:	AOS	R		;ASSUME NEXT NUMBER FOR BIN VALUE
  5015	016057	137 02 0 00 016567 		DPB	R,PNTR		;STUFF INTO ANSWER
  5016	016060	135 02 0 00 016567 		LDB	R,PNTR
  5017	016061	326 02 0 00 016067 		JUMPN	R,DC6AA		;IF =0, BYTE WAS TOO BIG
  5018	016062	312 17 0 00 016574 		CAME	P,SAVPDL
  5019	016063	254 00 0 00 016052 		JRST	NOMAT		;NOT AT TOP LEVEL
  5020	016064	263 17 0 00 000000 		POPJ	P,		;UNDEFINED, FINALLY
  5021
  5022	016065	201 02 0 00 000000 	DC6:	MOVEI	R,0		;ASSUME 0 FOR INITIAL BINARY VALUE
  5023	016066	137 02 0 00 016567 		DPB	R,PNTR
  5024	016067	316 17 0 00 016574 	DC6AA:	CAMN	P,SAVPDL
  5025	016070	254 00 0 00 016074 		JRST	DC6BB
  5026	016071	135 05 0 17 777776 		LDB	T,-2(P)		;OLD VALUE OF PNTR
  5027	016072	312 05 0 17 000000 		CAME	T,(P)
  5028	016073	254 00 0 00 016056 		JRST	NOMAT1
  5029	016074	261 17 0 00 016571 	DC6BB:	PUSH	P,CHP
  5030	016075	261 17 0 00 016567 		PUSH	P,PNTR
  5031	016076	261 17 0 00 000007 		PUSH	P,W2
  5032	016077	261 17 0 00 000002 		PUSH	P,R
  5033	016100	254 00 0 00 016006 		JRST	DC1
  5034
  5035	016101	200 17 0 00 016574 	DC7:	MOVE	P,SAVPDL	;RESTORE PUSH DOWN POINTER
  5036	016102	200 05 0 00 016570 		MOVE	T,INST
  5037	016103	242 05 0 00 000033 		LSH	T,33		;PUSH BINARY INTO POSITION FOR OPEVAL
  5038	016104	135 02 0 00 016407 		LDB	R,[POINT 3,T,8]
  5039	016105	641 05 0 00 700000 		TLC	T,700000
  5040	016106	647 05 0 00 700000 		TLCN	T,700000
  5041	016107	137 02 0 00 016410 		DPB	R,[POINT 10,T,12]	;ONLY DONE FOR IO INSTRUCTIONS
  5042	016110	254 00 0 00 010522 		JRST	CPOPJ1		;SYMBOL FOUND, SKIP RETURN
  5043
  5044	016111	660 00 0 00 000002 	DC8:	TRO	F,ITF		;SET INSTRUCTION TYPED FLAG
  5045	016112	201 05 0 05 000133 		MOVEI	T,133(T)
  5046	016113	260 17 0 00 014600 		PUSHJ	P,TOUT		;OUTPUT A LETTER
  5047	016114	402 00 0 00 016620 		CLEARM	SPSAV		;SO $D WONT TRY TO DELETE OP CODES
  5048	016115	254 00 0 00 016006 		JRST	DC1
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 170
SMDDT	MAC	29-Nov-78 13:26		OP DECODER                                                                         SEQ 0140

  5049
  5050					;*** LITERALS XLISTED ***
  5051
  5052						XLIST
  5053						LIST
  5054	016425				END.C:				;END OF CODE
  5055
  5056					SUBTTL VARIABLE STORAGE
  5057
  5058						IFN	FTDEC20,< IFDEF VARLOC,<
  5059					PHVAR:	PHASE	VARLOC>>	;PHASE VARIABLES FOR UDDT AND MDDT
  5060
  5061	016425				BEG.V:				;BEGINNING OF VARIABLES
  5062	016425	201 07 0 00 000000 	NM1A:	MOVEI	W2,0
  5063	016426	201 05 0 00 000000 	ACCCF:	MOVEI	T,.-.		;LEFT HALF OF A,,B
  5064	016427	322 05 0 00 013757 	SEAR2:	JUMPE	T,SEAR3		;OR JUMPN T
  5065	016430	201 05 0 00 000000 	TOCS:	MOVEI	T,.-.		;GET RIGHT HALF BACK
  5066
  5067					;VARIABLES FOR LINE BUFFER INPUT
  5068
  5069	016431	000000	000000		TEXINF:	0			;NON-0 FOR TEXT INPUT MODE
  5070	016432	000000	000000		CHINC:	0			;COUNT OF CHARACTERS
  5071	016433	000000	000000		WAKALL:	0			;NON-0 TO WAKEUP ON EVERYTHING
  5072					;*** DO NOT REORDER THE FOLLOWING ***
  5073	016434	000000	000010		TEXTIB:	10			;TEXTI ARG BLOCK - SIZE
  5074					;	IFN	FTDEC20,<
  5075	016435	715100	000000			RD%BRK+RD%TOP+RD%PUN+RD%RND+RD%JFN+RD%BBG+RD%SUI ;FLAGS
  5076	016436	000100	000101			.PRIIN,,.PRIOU		;INPUT/OUTPUT JFNS
  5077					;	>
  5078	016437	000000	000000		CHINP:	0			;POINTER TO NEXT CHAR
  5079	016440	000000	000000		LINSPC:	0			;FREE SPACE COUNT
  5080	016441	44 07 0 00 016447 	LINDB:	POINT	7,LINBF		;BEGINNING OF BUFFER
  5081	016442	44 07 0 00 016447 	LINBP:	POINT	7,LINBF		;BEGINNING OF ^R BUFFER
  5082	016443	000000	000000		ETXTB:	0			;WAKEUP TABLE (ALL ONES)
  5083	016444	000000	000000			0			;BACKUP LIMIT POINTER
  5084					;***END OF "DO NOT REORDER" BLOCK***
  5085
  5086						IFN	^-FTDEC20!<FTEXEC&FTEDIT>,<
  5087	016445	000000	000000		SAVCHR:	0			;PRESET RESULT FOR NEXT CALL TO RDBIN
  5088	016446	000000	000000		LASCHR:	0			;ANSWER FROM LAST CALL TO RDBIN
  5089						>
  5090
  5091			000024		NLINBF==^D20
  5092	016447				LINBF:	BLOCK	NLINBF		;LINE BUFFER
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 171
SMDDT	MAC	29-Nov-78 13:26		VARIABLE STORAGE                                                                   SEQ 0141

  5093
  5094					SUBTTL	STORAGE -- $X LOGIC AND PATCH COMMAND
  5095
  5096						IFE	FTFILE,<
  5097					;VARIABLES USED IN $X LOGIC
  5098
  5099	016473	256 00 0 00 016474 	I.XCT:	XCT	I.NST
  5100	016474	000000	000000		I.NST:	0			;INSTRUCTION BEING EXECUTED
  5101	016475	000000	000000		I.SM10:	0
  5102	016476	000000	000000		SAV0:	0			;SAVES AC 0 IN SWAP ROUTINE
  5103	016477	000000	000000		XCTS:	0			;XCT DEPTH COUNTER
  5104	016500	000000	000000		I.NSTAC:0			;AC FIELD OF INST BEING EXECUTED
  5105	016501	000000	000000		I.NSTEA:0			;E FIELD OF INST BEING EXECUTED
  5106	016502	000000	000000		XTEM:	0			;$X REPEAT COUNTER
  5107	016503	000000	000000		I.NSTPC:0			;PC OF INST BEING EXECUTED
  5108	016504	000000	000000		FLAGS:	0			;SAVES DDT FLAG REGISTER
  5109	016505	000000	000000		LOCSAV:	0			;SAVES LOCATION OF INST BEING EXECUTED
  5110	016506	000000	000000		SAFETY:	0			;SAVES T
  5111						>			;END FTFILE
  5112
  5113					;VARIABLES FOR PATCH COMMAND
  5114
  5115	016507	000000	000000		PTLOC:	0			; SOURCE OF PATCH ADR ,, PATCH ADR
  5116	016510	000000	000000		PTLLC:	0			; BEFORE/AFTER FLAG ,, OLD LLOCO
  5117	016511	000000	000000		PTWRD:	0			; ORIGINAL WORD AT OLD LLOCO
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 172
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- $X LOGIC AND PATCH COMMAND                                              SEQ 0142

  5118
  5119					SUBTTL  STORAGE -- BREAKPOINTS
  5120						IFE	FTFILE,<
  5121	016512	000000	000000		SAVE:	0			;SAVE THE ACS AND PI SYSTEM
  5122	016513	254 00 0 00 012420 		JRST	SAVEG
  5123
  5124					BP1:	REPEAT	NBP,<
  5125						0			;JSR TO HERE FOR BREAKPOINT
  5126						JSA	T, BCOM
  5127						0			;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE
  5128	016514	000000	000000			>
  5129	016515	266 05 0 00 016544 
  5130	016516	000000	000000
  5131	016517	000000	000000
  5132	016520	266 05 0 00 016544 
  5133	016521	000000	000000
  5134	016522	000000	000000
  5135	016523	266 05 0 00 016544 
  5136	016524	000000	000000
  5137	016525	000000	000000
  5138	016526	266 05 0 00 016544 
  5139	016527	000000	000000
  5140	016530	000000	000000
  5141	016531	266 05 0 00 016544 
  5142	016532	000000	000000
  5143	016533	000000	000000
  5144	016534	266 05 0 00 016544 
  5145	016535	000000	000000
  5146	016536	000000	000000
  5147	016537	266 05 0 00 016544 
  5148	016540	000000	000000
  5149	016541	000000	000000
  5150	016542	266 05 0 00 016544 
  5151	016543	000000	000000
  5152
  5153			016516		B1INS=BP1+2
  5154			016541		BPN=.-3
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 173
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- BREAKPOINTS                                                             SEQ 0143

  5155
  5156	016544	000000	000000		BCOM:	0
  5157	016545	254 00 0 00 012542 		JRST	BCOMG
  5158	016546	332 00 0 00 000000 	BCOM3:	SKIPE	0		;ADDR MOD TO LOOK AT COND. INST.
  5159	016547	377 00 0 00 000000 	BCOM2:	SOSG	0		;ADDR MOD TO LOOK AT PROCEED COUNTER
  5160	016550	000000	012727		LEAV1:	XWD	0,LEAVG
  5161	016551	241 03 0 00 000000 	BREAK2:	ROT	S,.-.		;ROT BY # OF BREAK POINT
  5162	016552	551 02 0 00 011575 	PROC0:	HRRZI	R,XEC1		;MODIFIED TO ADDR OF BREAKPOINT
  5163	016553	000000	000000		LEAV:	0			;INSTRUCTION MODIFIED
  5164	016554	261 00 0 00 016544 	CPUSHP:	PUSH	.-.,BCOM	;GETS MODIFIED IN AC FIELD
  5165	016555	000000	000000		SWAP:	0
  5166	016556	254 00 0 00 012403 		JRST	SWAPG
  5167						>			;END IFE FTFILE
  5168
  5169	016557	000000	000000		SVBTS:	0
  5170	016560	000000	000000		SVBTS2:	0
  5171	016561	000000	000000		OLDAR:	0
  5172	016562	000000	000000		SVBT3:	0
  5173	016563	000000	000000		SVBT2:	0
  5174	016564				PSVBTS:	BLOCK	3
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 174
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- BREAKPOINTS                                                             SEQ 0144

  5175
  5176					SUBTTL	STORAGE -- SYMBOL TABLE LOGIC
  5177
  5178	016567	000000	016570		PNTR:	EXP	INST		;POINTER TO BITS IN INST
  5179	016570	000000	000000		INST:	0			;BINARY FOR INSTRUCTION
  5180	016571	000000	000000		CHP:	0			;CHAR POINTER INTO TXT, TXT+1
  5181	016572				TXT:	BLOCK	2		;STORE INPUT TEXT FOR OPEVAL
  5182	016574	000000	000000		SAVPDL:	0			;SAVE PUSH DOWN LIST POINTER
  5183	016575	000000	000000		WRD:	0
  5184	016576	000000	000000		WRD2:	0
  5185	016577	000000	000000		PRNC:	0
  5186
  5187	016600	000000	000000		FRASE:	0			;DONT CHANGE ORDER, SEE  SEARC+3
  5188	016601	000000	000000		SYL:	0
  5189	016602	000000	000000		LWT:	0
  5190	016603	000000	000000		TEM2:	0
  5191	016604				FRASE1:
  5192	016604	000000	000000		TEM3:	0
  5193	016605	000000	000000		DEN:	0
  5194
  5195	016606				SAVHSM:	BLOCK	1		;C(.JBHSM), USED BY EVAL, LOOK
  5196	016607	000000	000000		SEGNAM:	0			;THE HIGH SEGMENT NAME (OR 0)
  5197									;WHEN $: IS SUCCESSFULLY DONE
  5198	016610	000000	000000		PRGM:	0
  5199	016611	000000	000000		ESTUT:	0
  5200	016612	000000	000000		FSV:	0
  5201	016613	000000	000000		FH:	0
  5202	016614	000000	000000		SYM:	0
  5203						IFE	FTDEC20,<
  5204						IFE	FTFILE,<
  5205	016615	000 00 0 00 012472*	SYMP:	Z	.JBSYM		;POINTS TO LOW SEG SYM TABLE POINTER
  5206	016616	000 00 0 00 012474*	USYMP:	Z	.JBUSY		;POINTS TO UNDEF SYM TABLE POINTER
  5207						>
  5208						IFN	FTFILE,<
  5209					SYMP:	Z	FISPTR
  5210					USYMP:	Z	FIUPTR
  5211						>>
  5212						IFN	FTDEC20,<
  5213						IFN	FTEXEC,<
  5214					SYMP:	Z	.JBSYM
  5215					USYMP:	Z	.JBUSY>
  5216						IFE	FTEXEC,<
  5217					SYMP:	Z	.DDSYM
  5218					USYMP:	Z	.DDUSY
  5219						>
  5220					JDTFLG:	-1			;JOB DATA AREA VALID IF NON-0
  5221						>			;END IFN FTDEC20
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 175
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- SYMBOL TABLE LOGIC                                                      SEQ 0145

  5222
  5223	016617	000000	000000		SYMPNT:	0			;USED BY SYM TABLE SEARCHES
  5224	016620	000000	000000		SPSAV:	0			;POINTER TO LAST SYMBOL TYPED
  5225	016621	000000	000000		DEFV:	0
  5226	016622	000000	000000		ULIMIT:	0
  5227	016623	000000	000000		LLOC:	0
  5228	016624	000000	000000		LLOCO:	0
  5229	016625	000000	000000		SAVLP:	0			;POINTER TO SAVLOC TABLE
  5230			000020		NSAVTB==20			;SIZE OF SAVLOC TABLE (RING BUFFER)
  5231	016626				SAVLTB:	BLOCK	NSAVTB		;SAVLOC TABLE
  5232	016646	000000	000000		SYMORD:	0			;HOLDS ADDRESSES OF EVAL-OPEVAL ROUTINES
  5233									;SPECIFYING WHICH ORDER TO SEARCH THEM FOR SYMBOLS
  5234	016647	000000	000000		QLPNT:	0			;USED IN "QLIST" AS POINTER TO A SYMBOL
  5235	016650	000000	000012		LCNT:	12			;USED IN LISTEN
  5236	016651	000000	000000		SKPCT:	0			;SKIP COUNT FOR XCT
  5237	016652	000000	000000		EFAFLG:	0			;EFF ADR COMP MODE
  5238						IFN	FTEXEC!FTFILE,<
  5239	016653	000000	000000		EPTUPT:	0			;LH - EPT POINTER , RH - UPT POINTER
  5240						>
  5241						IFN	FTYANK,<
  5242					PTDFLG:	0			;EOF SEEN ON COMMAND FILE
  5243						>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 176
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- SYMBOL TABLE LOGIC                                                      SEQ 0146

  5244
  5245					SUBTTL	STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT
  5246
  5247						IFE	FTFILE,<
  5248	016654	000000	000000		SAVAPR:	0			;USED TO SAVE APR REGISTER IN EXEC MODE
  5249	016655	000000	000000		SAVPI:	0
  5250	016656	000000	001177			1177
  5251
  5252					;THESE LOCATIONS MUST BE IN ORDER - THEY ARE USED TO SAVE AND
  5253					;RESTORE THE STATE OF DTE FOR KL10
  5254
  5255	016657	000000	000000		SAVTTY:	0
  5256						IFN	FTEXEC,<
  5257	016660	000000	000000		SAVUNS:	0
  5258	016661	000000	000000		SAVEPW:	0
  5259	016662	000000	000000		SAVERW:	0
  5260	016663	000000	000000		SAVDPW:	0
  5261	016664	000000	000000		SAVDRW:	0
  5262
  5263	016665	000000	000000		SAVEBR:	0			;SAVED EXEC BASE REG
  5264	016666	000000	000000		MTRCNI:	0			;RESULT OF CONI MTR,
  5265	016667	000000	000000		TIMCNI:	0			;RESULT OF CONI TIM,
  5266	016670	000000	000000		MSTRDT:	0			;ID OF MASTER -11
  5267	016671	000000	000000		DING11:	0			;PROTOTYPE CONO WORD FOR DTE
  5268						>			;END IFN EDDT
  5269
  5270					;	IFN	FTDEC20,<
  5271	016672	000000	000000		SAVTT2:	0
  5272	016673	000000	000000		SAVTT3:	0
  5273	016674	000000	000000		LASTPG:	0
  5274	016675	000000	000000		SAVSTS:	0
  5275					;	>			;END IFN FTDEC20
  5276						>			;END IFE FTFILE
  5277	016676	777777	777777		MSK:	XWD	-1,-1
  5278						IFN	FTEXEC,<	;CELLS FOR TRACE FACILITY
  5279	016677	000000	000000		TRCON:	0			;ASSUMED AT $M+1
  5280	016700	000000	000000		TRCDMP:	0>			;ASSUMED AT $M+2
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 177
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT                                         SEQ 0147

  5281
  5282						IFE	FTFILE,<
  5283	016701	000000	000000		B1ADR:	0
  5284	016702	000000	000000		B1SKP:	0
  5285	016703	000000	000000		B1CNT:	0
  5286
  5287	016704	000000	000000		REPEAT NBP*3-3, < 0>
  5288	016705	000000	000000
  5289	016706	000000	000000
  5290	016707	000000	000000
  5291	016710	000000	000000
  5292	016711	000000	000000
  5293	016712	000000	000000
  5294	016713	000000	000000
  5295	016714	000000	000000
  5296	016715	000000	000000
  5297	016716	000000	000000
  5298	016717	000000	000000
  5299	016720	000000	000000
  5300	016721	000000	000000
  5301	016722	000000	000000
  5302	016723	000000	000000
  5303	016724	000000	000000
  5304	016725	000000	000000
  5305	016726	000000	000000
  5306	016727	000000	000000
  5307	016730	000000	000000
  5308
  5309			016726		BNADR=.-3
  5310	016731	000000	000000		AUTOPI:	0
  5311
  5312	016732				AC0:	BLOCK	17
  5313
  5314	016751	000000	000000		AC17:	0
  5315						>
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 178
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT                                         SEQ 0148

  5316
  5317					SUBTTL	STORAGE -- STATE VARIABLES
  5318
  5319	016752	000000	013467		SCHM:	EXP	PIN		;DO NOT CHANGE ORDER
  5320	016753	000000	013570		ARM:	EXP	PADSO
  5321	016754	000000	000010		ODFM:	EXP	10
  5322
  5323	016755	000000	000000		SARS:	0
  5324	016756	000000	000000		TEM:	0
  5325	016757	000000	000000		TEM1:	0
  5326
  5327			000040		NSYMCS==40			;SIZE OF SYMBOL TABLE CACHE
  5328	016760				SYMCSH:	BLOCK	NSYMCS		;SYMBOL TABLE CACHE
  5329	017020				SYMCSP:	BLOCK	1		;POINTER TO NEXT FREE ENTRY
  5330	017021				OLDSYM:	BLOCK	1		;REMEMBER CACHE SYMBOL TABLE
  5331						IFN	FTEXEC,<
  5332	017022	000000	000000		USRFLG:	0			;-1 IN USER MODE, 0 IN EXEC MODE
  5333	017023	000000	000000		KAFLG:	0			;0 FOR KI10; 1,,0 FOR KA10 OR PDP-6
  5334	017024	000000	000000		XNXTCH:	0			;PRESET INPUT CHAR AT XLISTE
  5335						>			;END IFN FTEXEC
  5336					XLIST
  5337					LIST
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 180
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- STATE VARIABLES                                                         SEQ 0149

  5338
  5339					SUBTTL	STORAGE -- PUSH DOWN LIST
  5340
  5341	017025				PDL:	BLOCK	LPDL		;STORAGE FOR PUSH DOWN LIST
  5342
  5343			017075		END.V==.
  5344						IFN	FTDEC20,< IFE FTEXEC,<
  5345					VAREND:				;END OF INITIALIZED VARIABLES AREA
  5346					.DDSYM:	0			;SYMTAB PTR (COPIED FROM .JBSYM USUALLY)
  5347					.DDUSY:	0			;UNDEF SYMTAB PTR (COPIED FROM .JBUSY " )
  5348					
  5349					SETRT1:	0			;SCRATCH FOR VARIABLE INITIALIZATION
  5350					END.V==.
  5351						DEPHASE
  5352						>>
  5353
  5354	017075				DDTEND:
  5355
  5356						IFDEF	VARLOC,< IFDEF RUNLOC,< IFDEF PHDDT,<
  5357						IFL	<VARLOC-RUNLOC>-<DDTEND-PHDDT>,<
  5358						PRINTX	?VARIABLES OVERLAP CODE
  5359						>>>>
  5360
  5361					DEFINE PRSIZE(CODEN,DATAN),<
  5362						IF2,< PRINTX [ CODEN WORDS CODE + DATAN WORDS DATA]
  5363						>>
  5364
  5365						RADIX	10
  5366						PRSIZE(\<END.C-DDT>,\<END.V-BEG.V>)
  5367						RADIX	8
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 181
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- PUSH DOWN LIST                                                          SEQ 0150

  5368
  5369					;THE FOLLOWING DEFINES CERTAIN SYMBOLS RELEVANT TO HARDWARE OR TO
  5370					;DDT ITSELF.  THESE ARE *NOT* NEEDED FOR THE ASSEMBLY OF DDT AND
  5371					;IN FACT MAY BE IN CONFLICT WITH DEFINITIONS WHICH ARE USED
  5372					;DURING ASSEMBLY (E.G. TTY).  HENCE, THESE DEFINITIONS ARE ASSEMBLED
  5373					;LAST AND ON PASS 2 ONLY.  THE SYMBOLS ARE ALL DECLARED INTERNAL
  5374					;SO THAT THEY WILL BE KEPT IN THE PROGRAM SYMBOL TABLE AFTER
  5375					;LOADING.  THESE SYMBOLS ARE THEN USED DURING DDT INSTRUCTION
  5376					;ASSEMBLY OR DEASSEMBLY ONLY.
  5377
  5378						IFE	FTDEC20,<	;DDT SYMTAB NEVER USED ON DEC20
  5379						IF2,<
  5380					DEFINE XP (SS,VV)<
  5381						SS=VV
  5382						INTERN	SS>
  5383
  5384			000000		OPDEF DDTINT [Z 0,]		;ADDRESS FLAG FOR INTERNAL REGISTERS
  5385
  5386					;DEFINE $ SYMBOLS INTERNAL TO DDT
  5387
  5388						IFE	FTFILE,<
  5389					RADIX 10
  5390
  5391					DEFINE DBPNT (Z.)<XP $'Z.'B,<DDTINT B1ADR+3*Z.-3>>
  5392
  5393			000000		ZZ==0
  5394					REPEAT NBP,<DBPNT \<ZZ==ZZ+1>>
  5395					RADIX 8
  5396
  5397					XP $M,<DDTINT MSK>
  5398					XP $I,<DDTINT SAVPI>
  5399						>			;END FTFILE
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 182
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- PUSH DOWN LIST                                                          SEQ 0151

  5400
  5401					;DEFINE I/O DEVICE MNEMONICS
  5402
  5403						IFN	FTEXEC,<
  5404
  5405					XP  PI,004B11
  5406					XP PAG,010B11
  5407					XP CCI,014B11
  5408					XP DLB,060B11
  5409					XP DLC,064B11
  5410					XP CLK,070B11
  5411					XP PTP,100B11
  5412					XP PTR,104B11
  5413					XP CDP,110B11
  5414					XP CDR,114B11
  5415					XP TTY,120B11
  5416					XP LPT,124B11
  5417					XP DIS,130B11
  5418					XP PLT,140B11
  5419					XP  CR,150B11
  5420					XP DSK,170B11
  5421					XP DTE,200B11
  5422					XP UTC,210B11
  5423					XP UTS,214B11
  5424					XP MTC,220B11
  5425					XP MTS,224B11
  5426					XP MTM,230B11
  5427					XP DLS,240B11
  5428					XP DPC,250B11
  5429					XP DCSA,300B11
  5430					XP DCSB,304B11
  5431					XP DTC,320B11
  5432					XP DTS,324B11
  5433					XP TMC,340B11
  5434					XP TMS,344B11 >
  5435
  5436					;DEFINE EXTENDED OPERATIONS
  5437
  5438						IFE	FTFILE,<
  5439					XP JOV,2554B11
  5440					XP JEN,2545B11
  5441					XP HALT,2542B11 >
  5442						>			;END IF2
  5443						>			;END IFE FTDEC20
SMDDT	DECSYSTEM 2020 DIAGNOSTICS DDT, VERSION 0.2	MACRO %53(1020) 09:22  1-Dec-78 Page 183
SMDDT	MAC	29-Nov-78 13:26		STORAGE -- PUSH DOWN LIST                                                          SEQ 0152

  5444
  5445					;ONLY STARTING ADDRESS FOR FILDDT AND VMDDT
  5446					;NO START ADDRESS FOR EXEC OR USER DDT
  5447					;BECAUSE USER PROGRAMS AND MONITOR ARE LOADED
  5448					;WITH EXEC OR USER DDT
  5449					;BUT STILL WANT TO BE STARTED AT THEIR OWN START ADDRESSES
  5450
  5451						REPEAT	0,<
  5452						IFN	FTVMX,<END MAKDDT>
  5453						IFN	FTFILE,<END DDT>
  5454					
  5455						IFE	FTEXEC,<
  5456						IFN	FTDEC20,<
  5457						IFE	FTMON,<
  5458						END	BLTDDT>>>	;UDDT HAS SPECIAL START ADR
  5459					>
  5460
  5461					;	END
  5462			010000			END	DDT		;SMDDT HAS START ADDRESS

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 017101
CPU TIME USED 00:37.050

68P CORE USED

A	   184#	  3284	  3322	  3323	  3324	  3329	  3331	  3335	  3337	  3341	  3342	  3344	  3347	  3348
	  3354	  3362	  3370	  3372	  3376	  3398	  3399	  4056	  4068	  4070	  4071	  4074	  4075	  4077     SEQ 0153
	  4090	  4097	  4126	  4127	  4137	  4314	  4316	  4326	  4328	  4329	  4332	  4345	  4347	  4356
	  4357	  4370	  4372	  4381	  4458	  4495	  4496	  4517	  4518	  4522	  4526
ABSA	  1341#	  4037	  4038
ABSDDT	    35#	    96	   158
AC0	  1753	  1820	  1844	  1867	  2104	  2110	  2172	  2173	  2260	  2292	  2304	  2363	  2389	  2437
	  2453	  2572	  2589	  2647	  2653	  5312#
AC17	  2171	  5314#
ACCCF	  1075	  1078	  5063#
ACCF	  1074#	  4030	  4031
ACCF1	  1077	  1092#
APR	  2774	  2776	  3661	  3664	  3673	  3676
APRID	   278#
AR	   191#	  1342	  1350	  3014	  3452	  3453	  3476	  3478
ARM	  5320#
ASSEM	   447	   461	   509	   515	  1057#	  4027	  4028
AUTOP	  2354	  2529#
AUTOPI	  2344	  2494	  2533	  2535	  5310#
B	   185#	  3334	  3338	  3342	  3344	  3360	  3362	  3366	  3373	  3375	  4057	  4090	  4091	  4092
	  4093	  4094	  4096	  4097	  4105	  4119	  4125	  4127	  4136	  4168	  4171	  4174	  4177	  4180
	  4183	  4186	  4189	  4192	  4256	  4266	  4284	  4288	  4290	  4302	  4314	  4316	  4317	  4326
	  4327	  4329	  4330	  4376	  4377	  4382	  4401	  4404	  4407	  4408	  4410	  4418	  4428	  4429
	  4431	  4432	  4434	  4436	  4442	  4443	  4447	  4459	  4467	  4468	  4473	  4474	  4475	  4476
	  4480	  4491	  4502	  4503	  4508	  4517	  4519	  4520	  4523	  4524	  4525	  4526
B1ADR	  2314	  2461	  2476	  2481	  2492	  2493	  2509	  2516	  2529	  5283#	  5394
B1CNT	  2281	  2283	  5285#
B1INS	  2279	  2464	  2476	  5153#
B1SKP	  2279	  2281	  5284#
BACK	  4343#	  4425	  4445	  4464	  4470
BASE1	  1336	  1349#
BASE1O	  1352#	  3464
BASE1S	  1343	  1351#
BASECH	  1339	  1345#
BCOM	  1780	  1783	  2019	  2285	  2326	  2366	  2415	  2417	  2418	  2419	  2428	  2435	  2440	  2451
	  5129	  5132	  5135	  5138	  5141	  5144	  5147	  5150	  5156#	  5164
BCOM2	  2282	  2289	  2322	  2348	  2352	  2370	  5159#
BCOM3	  2280	  2287	  2288	  2312	  2333	  2335	  2338	  2353	  5158#
BCOMG	  2278#	  5157
BDISP	   430	  4000#
BEG.V	  5061#	  5366
BITO	  3450#	  4042	  4043
BITT	  3450	  3466#
BITT2	  3471#	  3485
BITT4	  3481	  3487#
BLKEND	  4012#	  4040	  4041
BNADR	  2475	  2522	  5309#
BP1	  2283	  2460	  2461	  2464	  5124#	  5153
BPLUP	  2377	  2384	  2421#	  2446
BPLUP1	  2358	  2422#
BPN	  2469	  5154#
BPS	  2488#	  4038	  4039
BPS1	  2489	  2497#
BPS2	  2491	  2504#
BPS3	  2502	  2515#                                                                                                    SEQ 0154
BPS4	  2517#	  2523
BPS5	  2513	  2520	  2525#
BREAK	  2290	  2307#
BREAK1	  2336	  2341#
BREAK2	  2316	  2342	  5161#
BRK	  4148#	  4237	  4238
BTAB	  4954#	  4970	  4995
BWRD1	  4470#	  4477
BWRD2	  4471	  4480#
BWRD3	  4469	  4478#
C	   186#	  3339	  3349	  3357	  3364	  3398	  3399	  3400	  4058	  4092	  4094	  4135	  4454	  4457
	  4475	  4518	  4519	  4524	  4525
CARR	   477	  1173#	  4020	  4021
CARR1	  1175#
CCBITS	  4142#	  4143	  4162	  4168	  4169	  4171	  4172	  4174	  4175	  4177	  4178	  4180	  4181	  4183
	  4184	  4186	  4187	  4189	  4190	  4192	  4193	  4222	  4223	  4224	  4225	  4226	  4227	  4228
	  4229	  4230	  4231	  4232	  4233	  4234	  4235	  4236	  4237	  4238	  4239	  4240	  4241	  4242
	  4243	  4244	  4245	  4246	  4247	  4248	  4249	  4250	  4251
CCBTAB	  4092	  4164#	  4475
CCF	   224#	   403	   685	   690	   696	   854	  1182	  1353	  1371	  1377	  1413	  1438	  1577	  1584
	  1775	  1796	  1990	  2029	  2030	  2534	  3212
CCI	  5407#	  5407
CDP	  5413#	  5413
CDR	  5414#	  5414
CEFF	  1198	  1207	  1211	  1226#	  1244
CEFF1	  1231	  1239#
CEFF2	  1243	  1246#
CF	   231#	   403	   420	   581	   623	   690	   695	   905	  1003	  1038	  1178	  1227	  1228	  1272
	  1371	  1377	  1438	  1585
CF1	   244#	   395	  1189	  1194	  1363	  1364	  2924
CHECKI	  1627	  1669	  1689	  1950	  1964#
CHEKIS	  1629	  1668	  1948#
CHIN1	  3868	  3873#
CHIN2	  3879	  3884#
CHIN3	  3902	  3912#
CHINC	  1176	  3715	  3867	  3905	  3915	  3955	  3960	  4300	  4305	  5070#
CHINP	  1175	  3714	  3869	  3878	  3883	  3892	  3899	  3917	  3925	  3930	  3939	  3943	  3957	  4064
	  4068	  4070	  4105	  4113	  4119	  4126	  4301	  4304	  4343	  4345	  4347	  4366	  4368	  4370
	  4372	  4374	  4376	  4381	  4384	  4408	  4418	  4427	  4440	  4442	  4457	  4458	  4466	  4472
	  4478	  4506	  5078#
CHKA1	  2725	  2736#
CHKA2	  2731	  2735#
CHKA20	  2667	  2717#
CHKA3	  2749	  2759	  2773#
CHKA4	  2671	  2719	  2743#
CHKA5	  2746	  2752	  2772#
CHKA6	  2757	  2760#
CHKA7	  2751	  2771#
CHKA8	  2754	  2774#
CHKADR	  2565	  2591	  2644	  2655	  2666#
CHKPAG	  2559	  2639	  2688#
CHP	   409	   614	  4960	  4967	  5001	  5008	  5013	  5029	  5180#
CHRWRD	  4091	  4143#	  4164	  4474                                                                                     SEQ 0155
CLK	  5410#	  5410
CLRCSH	   815	  2600	  2914#
CNTRLZ	  1478#	  4017	  4018	  4024	  4025
COMF	   220#	  1076	  1387
CON	  1334#	  4038	  4039
CONSYM	  1152	  1366	  2074	  2919#	  3318
CONTRO	   695#	  4025	  4026
CONV6	  1040#
CPOPJ	   721	   722	   747#	   804	  2560	  2622	  2640	  2643	  2682	  2823	  2876	  2987	  3301	  4317
CPOPJ1	   746#	   899	  2570	  2573	  2585	  2590	  2597	  2649	  2654	  2660	  2869	  2878	  2894	  2909
	  3582	  3788	  4138	  4348	  4385	  5042
CPUSHP	  2426	  2432	  5164#
CR	  5419#	  5419
CRF	   363	   532	   546	   576	  1156	  1169	  1420	  1466	  1502	  1518	  1579	  1800	  2013	  2039
	  2043	  2355	  3133	  3171	  3434#
CRN	  1123	  3430#	  3434
CSHVER	   705	  2804	  2907#
CTBL	  4168	  4171	  4174	  4177	  4180	  4183	  4186	  4189	  4192	  4222#
DBL0	  1999	  2053#
DBLI	  1673	  1921#
DBP	  4333	  4346	  4371	  4517#
DBP1	  4521	  4526#
DC1	  4971#	  4974	  4975	  4986	  4997	  5004	  5033	  5048
DC2	  4978	  4988#
DC3	  4990	  4993#
DC6	  4984	  5022#
DC6AA	  5017	  5024#
DC6BB	  5025	  5029#
DC7	  5009	  5035#
DC8	  5000	  5044#
DCSA	  5429#	  5429
DCSB	  5430#	  5430
DD1	   363#	   498	   536	   565	  1248	  1515	  1519	  3159	  3247	  3255
DD1.5	   364#	  1180
DD2	   369#	   501	  1151	  3918	  3958
DDT	    38	   270	   337#	  5366	  5462
DDTEND	   154	   265	  3235	  3237	  5354#
DDTOFS	   316#	   431	   432	   436	   447	   452	   461	   462	   464	   465	   477	   479	   480	   483
	   509	   515	  4016	  4017	  4018	  4019	  4020	  4021	  4022	  4023	  4024	  4025	  4026	  4027
	  4028	  4029	  4030	  4031	  4032	  4033	  4034	  4035	  4036	  4037	  4038	  4039	  4040	  4041
	  4042	  4043	  4044	  4045	  4046	  4047	  4048
DDTX	   154	   271	   319#	  3234
DEA	  1565#	  1879	  2009
DEA0	  2010	  2079#
DECT	  4989	  4999#
DECVER	     4#	    29
DECX	  4977	  5006#
DEF1	   911	   916#
DEF1A	   925	   932#
DEF2	   914	   933	   942#
DEF3	   950#	   974
DEF4	   954	   973#
DEF5	   966	   969#                                                                                                    SEQ 0156
DEF6	   970#	   976
DEF7	   957	   976#	   983
DEFIN	   904	   910#
DEFV	   908	   945	   961	   962	   980	  1373	  3146	  3155	  3164	  3168	  3205	  3207	  5225#
DELC	  4201	  4425#
DELC1	  4441	  4444	  4447#
DELC2	  4430	  4440#
DELC4	  4438#	  4450
DELI	   255#	   749	   855	  2812	  2831
DELIN	  4202	  4454#
DELO	   256#	   853	   855	  2812	  2831	  3315
DEN	   410	   587	   590	   605	   648	   662	  3126	  5193#
DEP1	  2562	  2567#
DEP2	  2592	  2595#
DEP4	  2563	  2566	  2574#
DEPAC	  2568	  2572#
DEPERR	  1412	  1419	  1445	  1451	  1457	  1465	  2500	  2602#
DEPM20	  2558	  2588#
DEPMEM	  1029	  1316	  1319	  1718	  1857	  2445	  2466	  2478	  2556#	  2603	  3248
DEPRA	  1122	  1168	  1173	  1272#	  1439
DEPRA2	  1284#	  1296
DEPRA4	  1288#	  1304	  1306
DEPRA5	  1284	  1293	  1298#
DEPRS	  1206	  1210	  1276	  1299	  2545#
DEPSYM	   891	  1316	  2555#
DFAC	  1561#	  1726	  1737	  1879	  1888	  1921	  1963	  1998
DFLOT	  1651	  1878#
DING11	  5267#
DIS	  5417#	  5417
DISP	  4000	  4001	  4002	  4003#
DISPTC	  4094	  4096	  4198#
DIVD	  1054#	  4029	  4030
DLB	  5408#	  5408
DLC	  5409#	  5409
DLS	  5427#	  5427
DMEMER	   969	   981	  2550	  2603#
DMOV	  1653	  1656	  1879#
DOBKIN	  4356#
DOIT	  1649	  1741	  1786	  1838	  1904	  1922	  1929	  1938	  1944	  1957	  1968#
DOLLAR	   593#	  4028	  4029
DOTXTI	  4056#
DPC	  5428#	  5428
DPRS3	  1287	  1301#
DPRS4	  1303#	  1312	  1321
DSK	  5420#	  5420
DSYMER	   522	   528	   856	   895	   923	   937	   940	   944	   947	  2600#	  3316
DTC	  5431#	  5431
DTE	  5421#	  5421
DTS	  5432#	  5432
DVF	   222#	   402	   457	   459	  1054
EA	  1564#	  1739	  1854	  1917	  1928	  1942	  1956	  1966	  2007
EA0	  2008	  2083#
EA2	  2059	  2084#                                                                                                    SEQ 0157
EA6	  2075	  2089#
ECHO	  3550	  3716#
ECHO1	  3719	  3723	  3725	  3731	  3737	  3740	  3745#	  3749
ECHO2	  3721	  3748#
EFAFLG	  1184	  1226	  5237#
EFFEC	  3118#	  4039	  4040
EFFEC0	  3142	  3176#
EFFEC1	  3178#	  3191
EFFEC2	  3180	  3185#
EFFEC3	  3187	  3192#
END.C	  5054#	  5366
END.V	  5343#	  5366
EOL1	  4199	  4411#
EOLC	  4150#	  4226
EPTUPT	  5239#
EQUAL	  1363#	  4036	  4037
ERR	   428	   448	   478	   484	   490#	   742	   849	   875	   902	   921	   959	   972	   978	   990
	  1030	  1046	  1105	  1144	  1347	  1382	  1389	  1392	  1404	  1410	  1437	  1472	  1480	  1495
	  1591	  1595	  1634	  1706	  1710	  1719	  1749	  1795	  1822	  1858	  2349	  2424	  2499	  2507
	  2524	  2604	  3124	  3166	  3182	  3209	  3213	  3313	  3455	  3886	  3897	  3933	  3942	  4010
	  4011	  4012	  4013	  4016	  4017	  4018	  4019	  4020	  4021	  4022	  4023	  4024	  4025	  4026
	  4027	  4028	  4029	  4044	  4045
ESTUT	   393	   474	   504	   506	   519	  5199#
ETXTB	  3890	  3936	  5082#
EVAL	   438	   439	   705#	   850	   910	  1391	  1397
EVAL2	   508	   719#	   867
EVAL3	   724#	   738
EVAL4	   726	   728	   731#	   750	   760
EVAL4A	   732	   738#
EVAL5	   743#	   753
EVAL6	   730	   748#
EVAL7	   755	   759#
EVALC1	   708#	   714
EVALC2	   713	   745#
EVALC3	   709	   714#
EVALC4	   706	   715#
F	   182#	   364	   394	   395	   396	   397	   402	   403	   420	   434	   449	   451	   457	   459
	   468	   471	   497	   510	   524	   533	   581	   595	   596	   598	   599	   601	   607	   620
	   623	   640	   644	   645	   651	   661	   664	   665	   666	   685	   689	   690	   695	   696
	   719	   727	   741	   752	   758	   848	   854	   901	   903	   905	   987	   992	  1003	  1024
	  1038	  1053	  1054	  1058	  1059	  1062	  1071	  1076	  1096	  1097	  1098	  1101	  1109	  1110
	  1111	  1114	  1117	  1136	  1139	  1149	  1150	  1178	  1182	  1187	  1189	  1192	  1194	  1195
	  1196	  1197	  1199	  1227	  1228	  1272	  1274	  1275	  1338	  1353	  1363	  1364	  1365	  1371
	  1374	  1377	  1379	  1381	  1387	  1388	  1390	  1413	  1438	  1489	  1497	  1577	  1584	  1585
	  1586	  1609	  1697	  1702	  1716	  1720	  1726	  1730	  1735	  1736	  1737	  1738	  1739	  1740
	  1745	  1747	  1774	  1775	  1793	  1796	  1819	  1823	  1833	  1837	  1851	  1854	  1855	  1859
	  1872	  1878	  1879	  1882	  1883	  1888	  1892	  1897	  1901	  1917	  1921	  1926	  1927	  1928
	  1933	  1934	  1935	  1936	  1937	  1942	  1943	  1948	  1949	  1952	  1953	  1954	  1955	  1956
	  1961	  1962	  1963	  1964	  1965	  1966	  1967	  1968	  1985	  1990	  1992	  1994	  1996	  1998
	  2000	  2003	  2005	  2007	  2009	  2012	  2029	  2030	  2071	  2073	  2084	  2089	  2240	  2350
	  2488	  2490	  2501	  2503	  2510	  2534	  2547	  2548	  2820	  2821	  2828	  2834	  2847	  2858
	  2860	  2876	  2883	  2888	  2922	  2924	  2937	  2948	  2953	  2985	  3005	  3044	  3078	  3118
	  3123	  3130	  3131	  3141	  3167	  3196	  3206	  3212	  3454	  4962	  4963	  4968	  4983	  4999     SEQ 0158
	  5006	  5044
FAC	  1560#	  1697	  1702	  1739	  1740	  1833	  1837	  1851	  1872	  1897	  1921	  1927	  1928	  1933
	  1954	  1966	  1967	  1996
FAC0	  1997	  2058#
FAF	   227#	   396	   903	  1374	  3206
FCP	  3360	  3362	  3398#
FEF	   219#	   596	   599	   640	   992
FET1	  2642	  2646#
FET20	  2638	  2652#
FETCH	   379	   958	   977	  1142	  1234	  1242	  1305	  1409	  1594	  1748	  1821	  2357	  2383	  2462
	  2498	  2635#	  3134	  3165	  3181	  3189
FH	   636	   675	  5201#
FIR.	  4993
FIRARG	  1371#	  4036	  4037
FLA	  1566#	  1726	  1730	  1739	  1740	  1837	  1878	  1883	  1994
FLAFXE	  1658	  1883#
FLAGS	  1586	  1716	  1720	  1774	  1793	  1819	  1823	  1855	  1859	  1968	  1985	  1992	  2012	  2073
	  2084	  2089	  5108#
FLE	  1567#	  1726	  1730	  1739	  1740	  1878	  1882	  2003	  2071
FLG	  1562#	  1747	  1901	  2000
FLG0	  2001	  2063#
FLOAT	  1664	  1735#
FLOATI	  1740#
FNDLIN	  4366#	  4455	  4494
FNDLN1	  4370#	  4379
FNDLN2	  4375	  4378	  4381#
FP1	  3334#
FP1A	  3330	  3339#
FP3	  3341#	  3367
FP3A	  3350#	  3354
FP4	  3336	  3338	  3357#
FP4A	  3359#	  3364
FP4B	  3361	  3364#
FP7	  3288	  3345	  3372#	  3377
FP7A1	  3376	  3379#
FP7B	  3016	  3352	  3380#
FPF	   223#	   403	   581	   595	   596	   664	   666	   992
FRASE	   399	   463	   649	  1064	  1107	  3126	  3127	  5187#
FRASE1	   401	   456	   458	   460	  1065	  1106	  3083	  5191#
FSGN	  3366	  3402#
FSV	   604	   653	  5200#
FT	   630	   650	  3389#	  3399
FT0	  3396#	  3398	  3400
FT01	   652	  3335	  3395#	  3396
FT8	  3337	  3385#
FTDEC2	   102	   113	   124	   173	   208	   263	   341	   372	  1143	  1145	  1513	  1521	  2191	  2266
	  2307	  2556	  2635	  2665	  2761	  2770	  2972	  3021	  3023	  3135	  3137	  3153	  3197	  3199
	  3222	  3238	  3438	  3443	  3531	  3536	  3751	  3864	  3920	  3996	  4014	  4054	  4270	  4271
	  5058	  5086	  5203	  5212	  5344	  5378
FTEDIT	   104	   113	  3531	  3536	  3864	  3920	  4054	  5086
FTEXEC	    34#	    97	   113	   113#	   125	   127	   132	   147	   164	   268	   269	   272	   341	   343
	   387	   772	   821	   831	   919	  1478	  1614	  1696	  1763	  1764	  1791	  1986	  2124	  2161
	  2183	  2219	  2252	  2263	  2301	  2374	  2574	  2618	  2669	  2688	  2701	  2717	  2742	  2781     SEQ 0159
	  3024	  3026	  3223	  3226	  3440	  3443	  3494	  3727	  3729	  3753	  3767	  3795	  3822	  3824
	  3842	  3859	  3864	  3920	  4011	  4054	  4259	  5086	  5238	  5256	  5278	  5331	  5403
FTFILE	    99	   113	   120	   127	   152	   176	   264	   272	   318	   359	   385	   559	   680	   700
	   733	   770	   778	   785	   806	   809	   819	   828	   864	   917	   927	  1279	  1477	  1528
	  1534	  2122	  2540	  2554	  2607	  2636	  2663	  2794	  2851	  2920	  3024	  3026	  3080	  3086
	  3226	  3231	  3244	  3249	  3256	  3755	  3769	  3773	  3996	  5096	  5120	  5204	  5208	  5238
	  5247	  5282	  5337	  5388	  5438
FTMON	   103	   113	   347	  1763	  1791	  1986
FTOC	  1131	  1188	  1333	  1334	  2925	  3260#
FTPTP	    98	   113	  3490	  4011
FTVMX	   101	   113	   152	   158	   312	   354
FTYANK	   100	   113	   320	  3566	  3770	  3945	  3996	  4010	  4262	  4272	  4284	  5241
FXAFLE	  1654	  1657	  1882#
GETH20	  2707	  2781#
GETHSO	  2621	  2678	  2701#
GETHSZ	  2783	  2791#
GLOBL	   252#	   521	   571	   751	   942	   952	  2833
GO	  1488#	  4039	  4040
HALT	  5441#	  5441
HFETCH	   388	   773	   789	   822	   832	   920	  2617#
HLFW	  1325	  1328	  1330	  1331	  2931	  2951	  2952	  2998#	  3061
HLFW1	  3004	  3009#
HWRDS	  1331#	  4040	  4041
I.JSA	  1687	  1842#
I.JSP	  1686	  1865#
I.JSR	  1685	  1849#
I.JSR2	  1845	  1854#
I.JSR4	  1861	  1871#
I.NST	  1596	  1600	  1601	  1605	  1608	  1717	  1781	  1785	  1811	  1814	  1830	  1832	  1903	  1936
	  5099	  5100#
I.NSTA	  1606	  1768	  2053	  2058	  5104#
I.NSTE	  1602	  1798	  1801	  1843	  1856	  1860	  1870	  1909	  1911	  2070	  2079	  2083	  5105#
I.NSTP	  1808	  1831	  5107#
I.SM10	  1597	  1935	  5101#
I.XCT	  1792	  1971	  1988	  5099#
IAOBJ	  1677	  1688	  1897#
ICON	  1206#	  4046	  4047
IDFN	  1660	  1730#
IFSC	  1661	  1837#
IIPUSH	  1682	  1806#
IIXCT	  1680	  1790#
IIXCT1	  1797	  1801#
IJFCL	  1679	  1901#
IJFFO	  1672	  1888#
IJRST	  1678	  1745#
IJRST0	  1748#	  1759
IJRST1	  1752	  1757#
IJRST3	  1766	  1773	  1779#
IJSA	  2404	  2435#
IJSP	  2402	  2451#
IJSR	  2400	  2440#
IJSR2	  2438	  2444#
IJSR3	  2448#	  2456                                                                                                     SEQ 0160
IMM	  1563#	  1740	  1745	  1837	  1897	  1921	  1927	  1943	  1967	  2005
IMM0	  2006	  2069#
IMM1	  2065	  2073#
INDIRE	  1069#	  4037	  4038
INOUT	  2929	  3051#
INOUT2	  3070	  3071	  3073#
INSRT	  4103#	  4200	  4392
INSRT1	  2461#	  2470
INSRT3	  2463	  2468#
INSRTB	  1503	  2360	  2460#
INST	  4965	  5036	  5178	  5179#
IOTS	  1631	  1633	  1940#
IPOPJ	  1684	  1819#
IPOPJ2	  1815	  1830#
IPUSHJ	  2397	  2426#
ITF	   248#	   395	  2937	  2948	  4968	  5044
IUFA	  1659	  1726#
IXCT	  2382#	  2409	  2412
IXCT4	  2373#	  2407
IXCT41	  2375	  2380#
IXCT5	  2371	  2386#
IXCT51	  2389#
IXCT6	  2378	  2388	  2411	  2413#
IXS1	  1973	  1977#
IXS2	  1974	  1976#
JEN	  5440#	  5440
JMP	  1902	  1909#
JMPSKP	  1692	  1892#
JOV	  5439#	  5439
JRSPRC	  1770	  1774#
JUSTE	  1662	  1704	  1917#
JUSTI	  1699	  1943#
KAFLG	   167	   168	   169	   170	  2190	  5333#
KILL	   848#	  4041	  4042
KILL1	   851	   860#
KILL1A	   862#	   877
KILL2	   867#
KILRET	   481	   857#
KLL	  4155#	  4233
KLWORD	  4202	  4464#
KWRD	  4156#	  4235
L1	   403#	  1055
L1A	   404#	  1118
L1RPR	   405#	  1115
L2	   415#	   609	   615	   621	   691	   698
L21	   421	   426#
L212	   443#	   446
L213	   441	   445#
L4	   449#	   530	   641	   657
L5	   476	   479#
LASCHR	  4290	  4356	  5088#
LASTPG	  2218#	  2218	  2595	  2723	  2726	  2735	  5273#
LCNT	  3780	  3783	  5235#                                                                                            SEQ 0161
LCT	   500	  1140	  2063	  2069	  2086	  2337	  3438#
LE1A	   591	   607#	   638
LE2	   608#	   678
LEAV	  2278	  2293	  2359	  2385	  2386	  2391	  2392	  2393	  2394	  2405	  2414	  2433	  2436	  2444
	  2447	  2448	  5163#
LEAV1	  2284	  2303	  2305	  5160#
LEAVG	  2414#	  5160
LET	   425	   595#
LET1	   600	   606#
LF1	   242#	   395	  1189	  1195	  1363	  1365	  2922
LI0	  1156#	  1217	  1424	  1446	  1452	  1458
LI1	  1125#	  1158	  1171	  1179	  1422	  1468	  2088	  2096	  2340	  3170
LI2	  1139#	  1204
LINBF	  5080	  5081	  5092#
LINBP	  3882	  3916	  3929	  3934	  3956	  3971	  4071	  4074	  4499	  5081#
LINDB	  3931	  4063	  5080#
LINEF	  1122#	  4019	  4020
LINSPC	  3881	  3885	  3891	  3904	  3913	  3928	  3932	  3938	  3953	  3959	  4062	  4088	  4131	  5079#
LIS	   371#	  1067
LIS0	   396#	  1383
LIS0A	   384	   391#
LIS0B	   382	   393#
LIS1	   399#	  1099	  1354
LIS2	   400#	  1060	  1072
LISTEN	  2026	  2343	  3148	  3161	  3767#	  3838
LLOC	   660	  1012	  1124	  1126	  1157	  1170	  1177	  1202	  1214	  1257	  1265	  1442	  1447	  1453
	  1459	  2331	  2339	  5227#
LLOCO	   523	   907	   994	  1009	  1013	  1127	  1141	  1203	  1291	  1311	  1407	  2546	  5228#
LOADER	  4013#	  4041	  4042
LOCL	   253#
LOCSAV	  1575	  1593	  2020	  5109#
LOOK	  2803#	  2940	  2950	  3017	  3069
LOOK1	  2825#	  2856
LOOK2	  2842	  2847#
LOOK3	  2827	  2829	  2832	  2837	  2840	  2845	  2849#	  2882	  2886	  2889
LOOK3A	  2850	  2856#
LOOK4	  2859	  2863	  2875#
LOOK5	  2835	  2880#
LOOK6	  2883	  2887#
LOOKC1	  2808#	  2817
LOOKC2	  2805	  2818#
LOOKO1	  2860	  2864#
LOOKO2	  2815	  2866#
LOOKO3	  2873	  2893#
LOOKO4	  2816	  2892#
LPDL	   199#	   370	   494	   499	  2176	  2395	  5341
LPRN	   452	   454	  1062#	  4029	  4030
LPT	  5416#	  5416
LTF	   232#	   434	   533	   596	   598	   665	   848	   901	   992	  3118	  3141
LWT	   472	   686	   687	  1283	  1298	  1360	  2330	  2545	  2919	  2939	  2947	  2956	  2958	  2966
	  2970	  2971	  2986	  3003	  3009	  3067	  3158	  3172	  3317	  3418	  3422	  3468	  3470	  3474
	  3487	  5189#
MASK	  3078#	  4041	  4042                                                                                             SEQ 0162
MASK1	  3079	  3087#
MASK2	  2511	  3082#
MCNVER	     3#	    29
MDLCLF	   239#	   719	   741	   758	  2820	  2847	  2858
MF	   235#	   449	   524	   601	   651	  1058	  1098	  1387
MINUS	   643	  1058#	  4031	  4032
MLF	   229#	   402	  1053
MMFLAG	  3595#	  3595	  3598	  3641	  3686	  3691
MONINI	  1637	  1709#
MONUAE	  1636	  1702#
MONUAI	  1638	  1640	  1697#
MONUE	  1639	  1641	  1643	  1645	  1647	  1700	  1703#
MONUI	  1642	  1644	  1646	  1698#
MSK	  3081	  3087	  3144	  5277#	  5397
MSTRDT	  5266#
MTC	  5424#	  5424
MTM	  5426#	  5426
MTR	  3500#
MTRAMN	  3506#
MTRCNI	  5264#
MTRCTB	  3509#
MTRENA	  3505#
MTREPA	  3504#
MTRLOD	  3502#
MTRPIA	  3511#
MTRTBF	  3507#
MTRTBN	  3508#
MTS	  5425#	  5425
MULDIV	  1670	  1961#
MULT	   431	  1053#	  4030	  4031
NAF	   245#	   397	  2953	  2985	  3005	  3044
NBP	   206#	  2506	  5124	  5287	  5394
NDING	  4113#	  4456	  4460
NINSRT	  4088#	  4106	  4114	  4438	  4482	  4487
NLINBF	  3880	  3912	  3927	  3952	  5091#	  5092
NM1	   582	   623#
NM1A	   626	   627	   676	  5062#
NM1A1	   629#	   633
NM1B	   631	   634#
NOMAT	  5003	  5010#	  5019
NOMAT1	  5014#	  5028
NOSKIP	  1779	  1912	  1982#
NPSYM	  1394	  1432#
NSAVTB	  1255	  1268	  5230#	  5231
NSYMCS	   707	  2807	  2898	  2916	  5327#	  5328
NUM	   580#	  4032	  4033	  4034	  4035	  4036
NUM1	   617#	   624
NWORD	  3121#	  4042	  4043
NXMKA	   201#	  2774	  2776
NXMKI	   202#
NXMKL	   203#
NXMKS	   204#
NXT0	  2022	  2026#                                                                                                    SEQ 0163
NXT1	  2027	  2030#
NXT1A	  2034	  2040#
NXT2	  2031	  2044#
NXTIT	  1991	  2017#
OCON	  1187#	  4046	  4047
ODF	   192#	   366	  1348	  2243	  3261	  3271	  3276
ODFM	  1355	  5321#
OLDAR	  1349	  1351	  3451	  3452	  5171#
OLDSYM	  2908	  2910	  5330#
ONES4	  3889	  3977#
OPEVAL	   438	   439	  4959#
OPTYPE	  2935	  3064	  4963#
OSYM	  1192#	  4047	  4048
OUTF	   247#	  4962	  4963	  4983	  4999	  5006
P	   183#	   340	   350	   363	   370	   379	   388	   415	   445	   481	   487	   494	   495	   496
	   499	   500	   508	   516	   522	   528	   532	   545	   546	   550	   569	   573	   575	   576
	   705	   715	   740	   744	   746	   747	   773	   787	   789	   792	   812	   815	   817	   822
	   825	   832	   841	   846	   850	   856	   867	   874	   891	   892	   895	   910	   920	   923
	   937	   940	   944	   947	   955	   958	   969	   970	   971	   977	   981	   996	   998	  1001
	  1011	  1018	  1026	  1029	  1032	  1037	  1039	  1049	  1062	  1063	  1064	  1065	  1106	  1107
	  1108	  1109	  1122	  1123	  1128	  1138	  1140	  1142	  1156	  1168	  1169	  1173	  1174	  1198
	  1201	  1206	  1207	  1210	  1211	  1213	  1216	  1229	  1232	  1234	  1236	  1240	  1242	  1247
	  1257	  1258	  1259	  1270	  1273	  1285	  1288	  1292	  1305	  1319	  1366	  1391	  1397	  1409
	  1412	  1419	  1420	  1422	  1424	  1425	  1439	  1445	  1446	  1451	  1452	  1457	  1458	  1465
	  1466	  1468	  1470	  1502	  1503	  1510	  1517	  1518	  1579	  1594	  1718	  1748	  1799	  1800
	  1821	  1857	  1934	  1937	  1969	  1983	  1993	  1997	  1999	  2001	  2002	  2006	  2008	  2010
	  2011	  2013	  2026	  2038	  2039	  2041	  2043	  2063	  2069	  2074	  2085	  2086	  2087	  2088
	  2090	  2094	  2096	  2097	  2098	  2176	  2229	  2248	  2310	  2311	  2325	  2329	  2332	  2337
	  2340	  2343	  2354	  2355	  2357	  2360	  2383	  2395	  2421	  2445	  2462	  2466	  2471	  2478
	  2483	  2498	  2500	  2536	  2549	  2559	  2576	  2580	  2591	  2594	  2600	  2603	  2605	  2620
	  2621	  2639	  2655	  2658	  2676	  2677	  2678	  2681	  2685	  2691	  2699	  2704	  2714	  2720
	  2721	  2722	  2729	  2732	  2737	  2738	  2739	  2773	  2778	  2792	  2804	  2818	  2865	  2870
	  2872	  2891	  2892	  2893	  2901	  2907	  2917	  2935	  2940	  2943	  2950	  2955	  2961	  2963
	  2965	  2969	  2984	  2989	  2991	  2995	  3006	  3008	  3017	  3020	  3035	  3038	  3040	  3064
	  3065	  3069	  3075	  3091	  3092	  3098	  3101	  3102	  3103	  3132	  3133	  3134	  3148	  3161
	  3165	  3169	  3170	  3171	  3181	  3189	  3210	  3214	  3248	  3267	  3269	  3277	  3279	  3280
	  3287	  3288	  3297	  3299	  3300	  3316	  3328	  3345	  3346	  3352	  3355	  3365	  3366	  3367
	  3368	  3369	  3370	  3375	  3377	  3379	  3410	  3412	  3416	  3417	  3426	  3428	  3434	  3444
	  3445	  3470	  3477	  3479	  3483	  3487	  3488	  3525	  3550	  3551	  3556	  3559	  3560	  3572
	  3574	  3575	  3578	  3702	  3709	  3716	  3733	  3735	  3742	  3743	  3745	  3746	  3747	  3748
	  3761	  3765	  3781	  3787	  3792	  3794	  3799	  3818	  3825	  3829	  3838	  3840	  3846	  3857
	  3870	  3891	  3892	  3894	  3898	  3899	  3903	  3938	  3939	  3941	  3943	  3944	  3951	  3969
	  3970	  3986	  3987	  3992	  3993	  3994	  4056	  4057	  4058	  4059	  4060	  4061	  4069	  4073
	  4076	  4089	  4132	  4133	  4134	  4135	  4136	  4137	  4258	  4261	  4265	  4267	  4286	  4289
	  4291	  4299	  4300	  4301	  4303	  4304	  4305	  4306	  4307	  4315	  4318	  4344	  4346	  4358
	  4367	  4368	  4369	  4371	  4383	  4384	  4398	  4400	  4403	  4416	  4420	  4425	  4431	  4433
	  4434	  4435	  4437	  4445	  4449	  4455	  4464	  4470	  4481	  4486	  4493	  4494	  4503	  4507
	  4509	  4527	  4961	  5007	  5010	  5011	  5012	  5013	  5018	  5020	  5024	  5026	  5027	  5029
	  5030	  5031	  5032	  5035	  5046
PA%EX	  2656
PAD	  1128	  2332	  2961	  2991	  2995	  3006	  3013#
PAD1	  3042#
PADS1A	  3040#	  3049                                                                                                     SEQ 0164
PADS3	  3018	  3030	  3033	  3043#
PADS3A	  2984	  3044#
PADS3B	  3047#	  3053
PADSO	  1340	  3016#	  3476	  5320
PAG	  5406#	  5406
PC%USR	  2728
PCHSYM	  1395	  1429#	  1432
PDL	   370	   494	   499	  2176	  2395	  5341#
PERC	   594#	  4028	  4029
PERIOD	   660#	  4031	  4032
PFULI1	  2938	  2941	  2942	  2945#
PI	  2166	  2168	  2272	  5405#	  5405
PI3A	  2962	  2964#	  3072	  3076
PI4	  2957	  2966#	  3068
PI7	  2985#	  2996
PI8	  2980	  2983	  2995#
PILOC	   681#	  4040	  4041
PIN	  1133	  1193	  1332	  1333	  2095	  2927#	  3479	  5319
PIN2	  2949	  2953#	  3104
PINST	  1799	  2041	  2094#
PLT	  5418#	  5418
PLUS	   642	  1057	  1059#	  4030	  4031
PM%CPY	  2593
PM%RD	  2657
PM%WT	  2593
PNAME	   254#	   553	   711	   725	   843	   913	  2826
PNAMEF	   240#	   719	   727	   752	  2820	  2828	  2834
PNTR	  4979	  4982	  4985	  5012	  5015	  5016	  5023	  5030	  5178#
POPLC1	  1267	  1270#
POPLLC	  1263#	  1273
POW2	   654#	   658
POWER	   435	   640#
POWF	   241#	   644	   645
PRGM	   783	   801	   803	   814	   835	  5198#
PRNC	   369	   482	   512	  1066	  1104	  5185#
PROC0	  1574	  1589	  1782	  1806	  1812	  1825	  1842	  1849	  1865	  1871	  1910	  1975	  1976	  1977
	  2017	  2032	  2040	  2334	  2356	  5162#
PROC1	  2297	  2300	  2363#
PROC2	  2361	  2368#
PROCD1	  1776	  2346	  2355#
PROCED	  2348#	  4042	  4043
PSHLLC	  1011	  1201	  1213	  1254#	  2329	  3169
PSVBTS	   367	  1356	  1357	  5174#
PSYM	  1364#	  4047	  4048
PTCH	  1372	  1387#
PTCH1	  1395#	  1398
PTCH2	  1401	  1403#
PTCH3	  1416	  1420#
PTCH4	  1393	  1402#
PTCHE	  1378	  1436#
PTCHE1	  1441	  1447#
PTF	   230#	  1053	  1054	  1059	  1098	  1110	  1387
PTLLC	  1408	  1414	  1415	  1423	  1440	  1449	  1455	  1462	  5116#                                            SEQ 0165
PTLOC	  1405	  1406	  1417	  1421	  1436	  1460	  1463	  1469	  5115#
PTP	  5411#	  5411
PTR	  5412#	  5412
PTWRD	  1411	  1418	  1444	  5117#
PUN	  4151#	  4223	  4225	  4226	  4227	  4230	  4232	  4236	  4238	  4239	  4240	  4241	  4242	  4243
	  4246	  4250	  4251
PUNCH	  4011#	  4022	  4023
PURGT1	  3974
Q2F	   249#	   395	   620	   987	  1338	  2490	  2501	  3454
QF	   236#	   471	   607	   666	   689	  1071	  1096	  1101	  1114	  1117	  1187	  1192	  1199	  1275
	  1381	  1390	  1489	  1497	  1585	  1775	  2350	  2488	  2548	  3078	  3123	  3131	  3196
QLIST	   534	   550#
QLIST1	   551#
QLIST2	   552#	   564
QLIST3	   557#	   568	   578
QLIST4	   558	   564#
QLIST6	   554	   567#
QLIST7	   572	   576#
QLPNT	   551	   556	   567	   570	   577	  5234#
QQ	  4220#	  4222	  4222#	  4223	  4223#	  4224	  4224#	  4225	  4225#	  4226#	  4226	  4227	  4227#	  4228
	  4228#	  4229	  4229#	  4230	  4230#	  4231	  4231#	  4232#	  4232	  4233	  4233#	  4234	  4234#	  4235
	  4235#	  4236	  4236#	  4237	  4237#	  4238#	  4238	  4239	  4239#	  4240#	  4240	  4241#	  4241	  4242#
	  4242	  4243#	  4243	  4244#	  4244	  4245#	  4245	  4246#	  4246	  4247	  4247#	  4248#	  4248	  4249#
	  4249	  4250#	  4250	  4251#	  4251
QUAN	   685#	  4043	  4044
QUAN1	   683	   688#	   993	  1010	  1014
QUAN2	   689#	  1000
QUANIN	   682#	  3084
QUANSW	   687#
QUEST1	   536#	   548
QUEST2	   540#	   542
QUEST4	   544	   547#
QUESTN	   532#	  4037	  4038
QW	  4219#	  4222	  4222#	  4223	  4223#	  4224	  4224#	  4225	  4225#	  4226#	  4226	  4227	  4227#	  4228
	  4228#	  4229	  4229#	  4230	  4230#	  4231	  4232#	  4232	  4233	  4233#	  4234	  4234#	  4235	  4235#
	  4236	  4236#	  4237	  4237#	  4238#	  4238	  4239	  4239#	  4240#	  4240	  4241#	  4241	  4242#	  4242
	  4243#	  4243	  4244#	  4244	  4245#	  4245	  4246#	  4246	  4247	  4247#	  4248#	  4248	  4249#	  4249
	  4250#	  4250	  4251#	  4251	  4252
R	   184#	   378	   386	   426	   429	   430	   473	   504	   505	   518	   519	   527	   535	   536
	   537	   543	   547	   552	   556	   557	   558	   560	   561	   563	   628	   630	   635	   636
	   637	   708	   710	   722	   724	   731	   732	   734	   735	   737	   739	   743	   745	   748
	   757	   759	   771	   788	   791	   793	   799	   800	   801	   802	   803	   804	   805	   807
	   816	   818	   820	   824	   827	   830	   839	   842	   844	   845	   852	   860	   862	   876
	   894	   896	   912	   916	   918	   924	   930	   931	   934	   935	   938	   941	   946	   948
	   950	   953	   955	   956	   960	   963	   970	   973	   976	   982	  1008	  1009	  1012	  1013
	  1028	  1074	  1078	  1079	  1082	  1087	  1088	  1141	  1233	  1236	  1237	  1238	  1241	  1277
	  1284	  1285	  1286	  1288	  1289	  1295	  1301	  1303	  1304	  1310	  1314	  1325	  1328	  1330
	  1331	  1332	  1333	  1334	  1335	  1340	  1341	  1342	  1399	  1400	  1402	  1406	  1407	  1408
	  1417	  1442	  1443	  1447	  1448	  1453	  1454	  1460	  1461	  1462	  1467	  1589	  1590	  1593
	  1715	  1751	  1752	  1753	  1757	  1801	  1820	  1856	  2353	  2380	  2381	  2405	  2444	  2461
	  2477	  2497	  2512	  2515	  2516	  2517	  2519	  2521	  2522	  2525	  2526	  2527	  2529	  2530
	  2532	  2546	  2567	  2569	  2572	  2581	  2588	  2589	  2596	  2623	  2646	  2647	  2648	  2652
	  2653	  2659	  2673	  2679	  2684	  2693	  2721	  2737	  2744	  2755	  2775	  2807	  2808	  2817     SEQ 0166
	  2823	  2825	  2830	  2838	  2843	  2848	  2849	  2850	  2852	  2853	  2855	  2880	  2884	  2887
	  2908	  2910	  2986	  2987	  2990	  3054	  3055	  3057	  3059	  3060	  3062	  3063	  3093	  3095
	  3097	  3120	  3121	  3122	  3146	  3147	  3149	  3154	  3155	  3156	  3164	  3179	  3180	  3185
	  3205	  3207	  3208	  3220	  3227	  3228	  3232	  3233	  3234	  3235	  3237	  3239	  3240	  3242
	  3246	  3250	  3251	  3252	  3253	  3312	  3313	  3314	  3450	  3463	  4000	  4001	  4002	  4969
	  4974	  4975	  4985	  5010	  5014	  5015	  5016	  5017	  5022	  5023	  5032	  5038	  5041	  5162
R50PNT	  1330	  3414#
RD%BBG	  5075
RD%BFE	  3901
RD%BLR	  3901
RD%BRK	  5075
RD%JFN	  5075
RD%PUN	  5075
RD%RND	  5075
RD%SUI	  5075
RD%TOP	  5075
RDBIN	  4089	  4256#	  4400	  4420
RDBIN1	  4268	  4285	  4290#
RDBKIN	  3969	  4355#	  4398	  4403	  4416
RDBOUT	  4299#	  4318	  4433	  4435	  4437	  4481	  4503	  4509
RDCBP	  4069	  4073	  4076	  4315	  4326#
RDCR	  4203	  4397#
RDCR1	  4402	  4407#
RDCR2	  4410#
RDCRC	  4157#	  4229
RDEACC	   285#
RDERA	   280#
RDMACC	   284#
RDPERF	   282#
RDQT	  4203	  4415#
RDQTC	  4158#	  4234
RDSL	  4316#	  4319
RDSOUT	  4314#	  4449	  4493
RDTIME	   283#
RDTOPM	  4072	  4075#
RDTXT1	  4068#
RELA	  1338#	  4043	  4044
REMOV1	  2476#	  2482
REMOVB	   340	  1510	  2310	  2421	  2475#
REMUN	   874	   889#	   971	  1292
RESTOR	  1505	  2246#	  2413	  2431	  2449
RESTR2	  2254	  2260#
RESTR3	  2265	  2273#
RET	   499#	   836	   857	   868	   950	  1185	  1358	  1367	  2345	  2495	  3088
ROF	   233#	   364	   394	   396	   497	   510	  1024	  1139	  1149	  1274	  1388	  2547
RPRN	   479	  1101#	  4029	  4030
RPRN1	  1112	  1116#
RTYP	  4154#	  4232
RTYP1	  4498	  4506#	  4510
RTYP4	  4501	  4505#
RTYPE	  4201	  4486#
RTYPES	  4486	  4491#
RTYW1	  4500#	  4504                                                                                                     SEQ 0167
RUBO	  4153#	  4251
S	   185#	   506	   507	   564	   707	   708	   714	   721	   738	   777	   780	   782	   862	   863
	   889	   890	   893	   897	   898	   934	   936	   939	   941	   961	   962	   964	   965	   967
	   968	   979	   982	  1301	  1310	  1311	  1349	  1350	  1352	  1355	  1356	  1357	  2341	  2344
	  2460	  2461	  2464	  2465	  2468	  2469	  2475	  2476	  2477	  2480	  2481	  2531	  2532	  2533
	  2535	  2856	  3215	  3217	  3239	  5161
SAF	   226#	   396	  1379	  3130
SAFE	  4152#	  4241	  4242	  4243	  4244	  4245	  4246	  4247	  4248	  4249	  4250	  4476
SAFETY	  1599	  1603	  5110#
SARS	  2148	  2159	  2164	  2169	  2226	  2241	  2262	  5323#
SAV0	  2105	  2115	  5102#
SAV11	  2163	  2169#
SAV12	  2203	  2229#
SAV2	  2221	  2228#
SAV20	  2193	  2218#
SAV3	  2165	  2168#
SAV5	  2170	  2176#
SAVAPR	  2267	  5248#
SAVCHR	  4256	  4257	  4357	  5087#
SAVDPW	  5260#
SAVDRW	  5261#
SAVE	   339	  1509	  2160	  2174	  2244	  2247	  2251	  2274	  2309	  2364	  2422	  5121#
SAVEBR	  5263#
SAVEG	  2123#	  5122
SAVEG1	  2129#
SAVEG2	  2144	  2150#
SAVEPW	  5258#
SAVERW	  5259#
SAVHSM	   561	   735	   775	   807	   865	  2853	  5195#
SAVLP	  1254	  1256	  1263	  1266	  1269	  5229#
SAVLTB	  1258	  1264	  5231#
SAVPDL	  4961	  5018	  5024	  5035	  5182#
SAVPI	   681	  1807	  1810	  1850	  1853	  1866	  1869	  2064	  2107	  2109	  2146	  2166	  2167	  2168
	  2175	  2249	  2255	  2258	  2272	  2327	  2367	  2427	  2430	  2441	  2443	  2452	  2455	  5249#
	  5398
SAVSTS	  2227#	  2227	  3854	  5274#
SAVTT2	  3806	  3850	  5271#
SAVTT3	  3807	  3851	  5272#
SAVTTY	  3800	  3804	  3848	  3856	  5255#
SAVUNS	  5257#
SBDIAG	   281#
SCH	   190#	   365	  1130	  1131	  1133	  1188	  1193	  1335	  1352	  1361	  1993	  1995	  2002	  2004
	  2011	  2094	  2095	  2097	  2242	  2923	  3463
SCHM	   365	  1130	  1352	  2242	  5319#
SEAR1	  3134#	  3151
SEAR2	  3122	  3145	  5064#
SEAR2A	  3146#	  3157	  3174
SEAR2B	  3136	  3154#
SEAR2G	  3145#	  3194
SEAR3	  3161#	  5064
SEAR4	  3174#	  3190
SEARFN	  3150	  3158#	  3163
SEGNAM	   790	   793	   834	  5196#                                                                                    SEQ 0168
SEMIC	  1360#	  4035	  4036
SET	  1626	  1628	  1952#
SETEA	  1663	  1675	  1681	  1683	  1691	  1731	  1880	  1884	  1916	  1966#
SETI	  1648	  1650	  1652	  1655	  1671	  1674	  1676	  1690	  1967#
SETN2	   818	   835#
SETNAM	   814#	   906
SETPAG	  1472#	  4044	  4045
SETSB1	   839#	   845
SETSUB	   817	   825	   844#
SETUP	  3132	  3196#	  3214
SF	   234#	   403	   451	   595	   596	   607	   661	   666	   689	  1111	  1114
SFLOT	  1332#	  4039	  4040
SIXBP	  1328	  3421#
SIXBP1	  3423#	  3427
SKP	  1893	  1916#	  1951
SKPCT	  1504	  1507	  1508	  1512	  5236#
SLAS1	  1200	  1203#	  1208
SLAS2	  1183	  1190	  1197#
SLASH	  1182#	  4031	  4032
SLASH2	  1198#
SMCC	  3581	  3584#
SMCC1	  3584	  3587#
SMINOU	  3056	  3058	  3091#
SMIOB	  3094#	  3094	  3096	  3100
SMIOTS	  1632	  1933#
SMTABL	  3097	  3106#
SPAC1	  1090	  1094	  1097#
SPACE	   436	   464	  1096#	  4026	  4027
SPSAV	  3293	  3312	  5047	  5224#
SPT	   545	  3294#	  3419
SPT0	  2870	  2892	  3035	  3293#
SPT1	   569	  3296#	  3299
SPT2	  3298	  3300#
STADD	   260#	   526
STF	   225#	   394	   396	  1136	  1150	  1196	  1197	  1585	  3167
STLH	   261#	   963
STNEG	   262#	   525	   960
SUPTYO	  1196#	  4027	  4028
SVBT2	  3467	  3480	  5173#
SVBT3	  3469	  3475	  3484	  5172#
SVBTS	   367	   368	  1356	  3457	  3472	  5169#
SVBTS2	  3462	  3466	  5170#
SWAP	  1598	  1604	  1970	  1982	  2106	  2108	  2116	  5165#
SWAPG	  2104#	  5166
SWAPL	  2111#	  2114
SWPIA	   287#
SWPIO	   290#
SWPUA	   289#
SWPUO	   292#
SWPVA	   288#
SWPVO	   291#
SYL	   404	   433	   583	   586	   602	   603	   637	   663	   688	   997	  1006	  1113	  5188#
SYM	   405	   520	   555	   611	   612	   712	   729	   840	   943	   951	   991	  1396	  5202#            SEQ 0169
SYMBOL	  1333#	  4043	  4044
SYMCSH	   708	  2808	  2900	  2914	  2916	  5328#
SYMCSI	   744	  2865	  2891	  2897#
SYMCSP	  2897	  2899	  5329#
SYMD	  3311#	  4038	  4039
SYMORD	   440	   443	  5232#
SYMP	   383	   563	   737	   777	   797	   805	   816	   916	   931	  2197	  2855	  3215	  3216	  5205#
SYMPNT	   720	   739	   754	   759	  2814	  2819	  2841	  2848	  2857	  2866	  2875	  3037	  5223#
SYMS2	   795	   799#
SYMS4	   784	   794	   805#
SYMS5	   798	   806#
SYMSET	   550	   715	   770#	  2818	  2907
T	   187#	   365	   366	   367	   368	   381	   382	   383	   389	   390	   391	   392	   393	   400
	   401	   406	   407	   408	   409	   416	   417	   419	   422	   423	   426	   427	   433	   438
	   439	   440	   443	   444	   445	   450	   456	   458	   460	   463	   467	   469	   470	   472
	   514	   520	   521	   523	   525	   526	   529	   537	   541	   552	   553	   555	   570	   571
	   574	   580	   585	   589	   591	   593	   594	   597	   606	   612	   613	   614	   617	   618
	   619	   634	   638	   653	   656	   660	   662	   663	   667	   668	   669	   670	   672	   674
	   675	   677	   681	   686	   687	   688	   710	   711	   712	   724	   725	   726	   729	   745
	   748	   749	   751	   754	   756	   757	   774	   775	   779	   780	   783	   786	   787	   790
	   791	   792	   797	   799	   800	   802	   824	   833	   834	   839	   840	   843	   852	   853
	   855	   890	   893	   912	   913	   922	   924	   936	   939	   942	   943	   945	   951	   952
	   953	   965	   967	   968	   979	   980	   988	   989	   991	   994	   995	   997	   999	  1006
	  1007	  1017	  1026	  1027	  1032	  1040	  1041	  1043	  1044	  1045	  1047	  1048	  1074	  1079
	  1088	  1089	  1092	  1093	  1102	  1103	  1113	  1116	  1124	  1126	  1127	  1129	  1132	  1134
	  1137	  1157	  1170	  1177	  1202	  1203	  1212	  1214	  1215	  1230	  1232	  1233	  1237	  1238
	  1239	  1241	  1283	  1289	  1290	  1291	  1298	  1309	  1313	  1326	  1327	  1329	  1345	  1346
	  1348	  1360	  1373	  1380	  1395	  1396	  1400	  1403	  1405	  1411	  1418	  1421	  1444	  1449
	  1450	  1455	  1456	  1459	  1461	  1463	  1464	  1467	  1482	  1485	  1488	  1493	  1494	  1498
	  1499	  1501	  1505	  1572	  1573	  1574	  1575	  1587	  1588	  1596	  1597	  1599	  1600	  1601
	  1602	  1603	  1607	  1608	  1609	  1610	  1611	  1612	  1717	  1721	  1750	  1751	  1753	  1754
	  1755	  1756	  1757	  1772	  1779	  1780	  1781	  1782	  1783	  1784	  1785	  1798	  1806	  1807
	  1808	  1809	  1810	  1811	  1812	  1813	  1814	  1824	  1825	  1826	  1830	  1831	  1832	  1842
	  1843	  1844	  1849	  1850	  1860	  1861	  1865	  1866	  1867	  1868	  1869	  1870	  1871	  1902
	  1903	  1909	  1910	  1911	  1987	  1988	  2017	  2018	  2023	  2024	  2032	  2033	  2035	  2040
	  2053	  2054	  2058	  2064	  2070	  2072	  2083	  2085	  2087	  2141	  2145	  2146	  2147	  2150
	  2151	  2152	  2153	  2174	  2175	  2196	  2197	  2200	  2201	  2222	  2225	  2227	  2242	  2243
	  2247	  2249	  2250	  2251	  2255	  2256	  2257	  2258	  2278	  2279	  2280	  2281	  2282	  2283
	  2284	  2285	  2292	  2293	  2294	  2295	  2296	  2298	  2299	  2302	  2303	  2304	  2312	  2313
	  2314	  2315	  2316	  2324	  2326	  2327	  2328	  2330	  2331	  2333	  2334	  2335	  2336	  2338
	  2339	  2351	  2352	  2359	  2363	  2366	  2367	  2376	  2377	  2378	  2385	  2386	  2387	  2391
	  2392	  2394	  2396	  2399	  2401	  2403	  2406	  2408	  2409	  2410	  2413	  2427	  2428	  2429
	  2430	  2431	  2435	  2436	  2437	  2440	  2441	  2447	  2448	  2454	  2455	  2464	  2465	  2476
	  2492	  2494	  2497	  2504	  2505	  2506	  2508	  2509	  2512	  2515	  2518	  2525	  2545	  2569
	  2572	  2581	  2589	  2596	  2622	  2623	  2647	  2648	  2653	  2659	  2677	  2680	  2681	  2703
	  2708	  2709	  2710	  2711	  2712	  2713	  2791	  2803	  2806	  2809	  2822	  2830	  2836	  2839
	  2867	  2868	  2871	  2877	  2881	  2919	  2927	  2928	  2930	  2931	  2933	  2939	  2946	  2947
	  2956	  2957	  2967	  2970	  2988	  2990	  2992	  3003	  3004	  3009	  3013	  3016	  3027	  3034
	  3036	  3039	  3041	  3043	  3045	  3047	  3048	  3051	  3052	  3054	  3059	  3062	  3063	  3066
	  3067	  3068	  3073	  3074	  3081	  3087	  3093	  3097	  3099	  3119	  3121	  3125	  3126	  3127
	  3128	  3129	  3143	  3144	  3168	  3178	  3179	  3183	  3184	  3185	  3192	  3193	  3198	  3204
	  3219	  3263	  3265	  3266	  3274	  3276	  3278	  3280	  3281	  3284	  3285	  3286	  3289	  3295
	  3296	  3298	  3300	  3301	  3302	  3303	  3304	  3305	  3306	  3307	  3308	  3314	  3315	  3317     SEQ 0170
	  3322	  3327	  3350	  3351	  3379	  3380	  3405	  3408	  3409	  3414	  3415	  3423	  3424	  3425
	  3430	  3435	  3439	  3447	  3456	  3457	  3458	  3459	  3460	  3461	  3462	  3466	  3467	  3468
	  3469	  3471	  3472	  3473	  3474	  3475	  3482	  3484	  3527	  3528	  3529	  3530	  3537	  3538
	  3540	  3541	  3543	  3544	  3545	  3546	  3549	  3557	  3563	  3577	  3579	  3580	  3584	  3716
	  3717	  3718	  3720	  3722	  3724	  3726	  3732	  3734	  3736	  3739	  3741	  3743	  3744	  3746
	  3760	  3762	  3764	  3782	  3783	  3786	  3789	  3793	  3869	  4059	  4094	  4096	  4098	  4134
	  4261	  4266	  4267	  4299	  4302	  4306	  4427	  4428	  4466	  4467	  4472	  4473	  4496	  4497
	  4499	  4500	  4502	  4505	  4506	  4508	  4959	  4960	  4964	  4965	  4966	  4967	  4971	  4972
	  4973	  4976	  4977	  4978	  4979	  4980	  4981	  4982	  4988	  4989	  4990	  4991	  4992	  4993
	  5002	  5026	  5027	  5036	  5037	  5038	  5039	  5040	  5041	  5045	  5063	  5064	  5065	  5129
	  5132	  5135	  5138	  5141	  5144	  5147	  5150
T1	   211#	  2223	  2727	  2728	  2729	  2732	  2733	  3762	  3764	  3789	  3790	  3793	  3802	  3808
	  3816	  3847	  3878	  3880	  3881	  3882	  3883	  3884	  3887	  3889	  3890	  3895	  3900	  3901
	  3903	  3904	  3905	  3912	  3913	  3914	  3915	  3916	  3917	  3921	  3925	  3927	  3928	  3929
	  3930	  3931	  3934	  3936	  3937	  3940	  3944	  3952	  3953	  3954	  3955	  3956	  3957	  3959
	  3960	  3971	  3983	  3984	  3985	  3988	  3989
T2	   212#	  2720	  2722	  2723	  2724	  2726	  2735	  2736	  2738	  3804	  3806	  3810	  3811	  3813
	  3848	  3850	  3986	  3988	  3993
T3	   213#	  3807	  3814	  3851	  3987	  3990	  3992
TAB	  1210#	  4019	  4020
TAG	   901#	  4035	  4036
TAPIN	  4010#	  4045	  4046
TBL	  4814#	  4954	  4955	  4956	  4957
TELL	  1873	  1985#
TEM	   407	   608	   995	  1008	  1028	  1031	  1501	  1506	  2130	  2140	  2141	  2153	  2803	  2806
	  2822	  3031	  3034	  3041	  3043	  3047	  3073	  3173	  3177	  3188	  5324#
TEM1	  2369	  2382	  3343	  3348	  3374	  5325#
TEM2	  5190#
TEM3	  5192#
TESTS	  1630	  1926#
TEXI	   987#	  4027	  4028
TEXI2	  1006#	  1019	  1025
TEXI3	  1016	  1023#
TEXI4	  1002#	  1033
TEXIN	   998	  1037	  3862#
TEXIN0	   996	  1018	  1037#
TEXIN1	  1001	  1038#
TEXINF	  3548	  3862	  3863	  3893	  5069#
TEXO	  1325#	  4044	  4045
TEXT	   487	   495	  1247	  2965	  3369	  3406#
TEXT2	   350	  1517	  2038	  2325	  3008	  3269	  3408#	  3411
TEXTIB	  3884	  3895	  3900	  3934	  3936	  3937	  3940	  5073#
TEXTT	  1216	  1325	  3098	  3405#
TFLOT	  1331	  1332	  1995	  2004	  3322#
TFLOT1	  3323	  3331#
TIF	   221#	   468	  1097	  1387
TIM	  3515#
TIMCIC	  3517#
TIMCNI	  5265#
TIMDON	  3520#
TIMICO	  3521#
TIMITO	  3519#
TIN	   415	  1174	  3863#                                                                                            SEQ 0171
TIN1	  3867#	  3906	  3961
TMC	  5433#	  5433
TMS	  5434#	  5434
TOC	  1340	  1341	  2963	  3042	  3046	  3075	  3261#	  3416	  3453	  3478
TOC0	  3267	  3274#	  3279
TOC4	  3273	  3284#
TOC5	  3285	  3288#	  3332
TOC6	  3289#	  3346
TOCA	  3264	  3271#	  3477
TOCS	  3265	  3270	  5065#
TOP	  4147#	  4224	  4228
TOPS20	  1483	  2131#	  2131	  2139	  2143	  2192	  2557	  2637	  2666	  2706	  3758	  3784	  3798	  3826
	  3845	  3875	  4282
TOUT	   516	   575	  1138	  2872	  2969	  2989	  2993	  3038	  3040	  3101	  3282	  3287	  3290	  3309
	  3328	  3381	  3410	  3426	  3431	  3436	  3442	  3448	  3483	  3714#	  4303	  5046
TOUT0	  3733	  3735	  3742	  3745	  3748	  3753#
TRCDMP	  5280#
TRCON	  5279#
TRPENB	   215#
TSPC	   573	  2955	  3065	  3417	  3444	  3445	  3447#
TT	   193#	  1254	  1255	  1256	  1258	  1263	  1264	  1265	  1266	  1267	  1268	  1269	  1511	  1512
	  1514	  2348	  2349	  2592	  2593	  2656	  2657	  2668	  2673	  2679	  2680	  2682	  2683	  2684
	  2736	  2744	  2745	  2747	  2748	  2750	  2755	  2756	  2758	  2760	  2775
TT%DAM	  3810
TT%ECO	  3811
TT%OSP	  3834
TT%WAK	  3810
TT%WKF	  3811
TT%WKN	  3811
TT%WKP	  3811
TT1	   194#	  1315	  1316	  1319	  2560	  2561	  2563	  2565	  2578	  2579	  2582	  2583	  2640	  2641
	  2643	  2644	  2674	  2686	  2689	  2693	  2694	  2695	  2696	  2697	  2698	  2771	  2772	  2777
	  2914	  2915	  2916
TT2	   195#
TTY	  5415#	  5415
TTYCC2	  3813	  3820#	  3983	  3985
TTYCC3	  3814	  3821#	  3990
TTYCLR	   496	  2046	  2311	  3823#
TTYLEV	  1969	  2248	  3843#
TTYR1	  3801	  3808#
TTYRET	  1983	  2229	  3796#
TTYTOF	  3894	  3983#
TTYTON	  3898	  3985#
TXT	   408	  4966	  5181#
TXTI	  3941	  4055#
ULIM	  1377#	  4036	  4037
ULIM1	  1375	  1381#
ULIMIT	  1380	  3129	  3149	  3204	  3208	  3246	  5226#
UND1	   444	   504#
UNDEF	   493#	   505	   511	   513	   823	   827	   861
USRFLG	   165	   166	  2152	  5332#
USRUUO	  1635	  1707	  1715#
USYMP	   378	   380	   381	   392	   475	   535	   538	   860	   876	   889	   898	   932	   935	   938     SEQ 0172
	   948	  1277	  1278	  2201	  5206#
UTC	  5422#	  5422
UTS	  5423#	  5423
VARLOC	  5356
VARRW	  1168#	  4018	  4019	  4047	  4048
W	   186#	   430	   431	   432	   436	   447	   452	   461	   462	   464	   465	   477	   479	   480
	   483	   509	   515	   583	   584	   585	   586	   587	   588	   589	   590	   610	   611	   642
	   643	   646	   829	   835	   844	   907	   908	  1002	  1005	  1007	  1027	  1069	  1070	  1286
	  1287	  1303	  1309	  1313	  1394	  1395	  1398	  1399	  2368	  2369	  2442	  2443	  2451	  2452
	  2453	  2517	  2518	  2838	  2839	  2840	  2843	  2844	  2845	  2861	  2862	  2884	  2885	  2886
	  2958	  2959	  2960	  2971	  2978	  2979	  2982	  3082	  3083	  3176	  3177	  3178	  3184	  3186
W1	   188#	   342	   345	   474	   475	   486	   490	   493	   538	   540	   541	   543	   602	   603
	   604	   625	   630	   633	   634	   635	   650	   652	   656	   658	   671	   673	   674	   743
	  1002	  1004	  1015	  1017	  1023	  1080	  1081	  1082	  1083	  1084	  1085	  1246	  1278	  1516
	  1605	  1606	  1746	  1750	  1755	  1758	  1768	  1769	  1771	  1792	  1820	  1844	  1852	  1853
	  1867	  1916	  1940	  1941	  2018	  2019	  2020	  2023	  2024	  2033	  2035	  2036	  2037	  2317
	  2323	  2324	  2393	  2409	  2426	  2437	  2453	  2808	  2809	  2811	  2814	  2815	  2862	  2864
	  2866	  2867	  2868	  2877	  2885	  2887	  2890	  2900	  2964	  2966	  2968	  2981	  3007	  3019
	  3091	  3103	  3216	  3217	  3218	  3240	  3242	  3261	  3262	  3268	  3271	  3272	  3275	  3277
	  3293	  3295	  3297	  3349	  3350	  3353	  3368	  3405	  3406	  3407	  3411	  3418	  3422	  4060
	  4062	  4078	  4088	  4106	  4120	  4124	  4131	  4133	  4348	  4369	  4373	  4382	  4383	  4397
	  4409	  4415	  4419	  4459	  4479	  4969	  4993	  4994	  4996	  5001	  5002	  5008	  5009
W2	   189#	   629	   631	   632	   648	   654	   655	   657	  2811	  2812	  2825	  2826	  2827	  2831
	  2833	  2841	  2844	  2857	  2861	  2880	  2881	  2882	  2889	  2897	  2898	  2899	  2900	  3019
	  3029	  3031	  3032	  3092	  3102	  3358	  3359	  3363	  3365	  3421	  3427	  4061	  4063	  4064
	  4075	  4077	  4113	  4132	  4343	  4366	  4374	  4440	  4495	  4497	  4500	  4505	  4970	  4971
	  4991	  4995	  4996	  5011	  5031	  5062
WAKALL	   371	   697	  3888	  3935	  4103	  4391	  5071#
WORD	  3120#	  4045	  4046
WRAP	  4104	  4119#	  4198	  4200	  4405	  4411	  4421	  4446
WRAP0	  4078	  4107	  4115	  4124#	  4393	  4399	  4417	  4426	  4465
WRAP1	  4124	  4131#
WRD	   398	   437	   467	   469	   470	  1063	  1070	  1080	  1083	  1089	  1092	  1093	  1108	  1116
	  3125	  3143	  3192	  5183#
WRD2	   411	   617	   619	   988	  1326	  1345	  2504	  3456	  3459	  5184#
WRFIL	   279#
WRONG	   486#	  3914	  3954
WRONG1	   491	   494#
WRONG2	   488	   497#
WRPAE	   286#
XCHIN1	  3874	  3876	  3925#
XCHIN2	  3926	  3931#	  3972
XCTS	  1588	  1794	  5103#
XEC	  1490	  1497#	  4045	  4046
XEC0	  1486	  1501#	  3585
XEC1	  1507#	  1590	  5162
XJBSYM	   128#
XJBUSY	   129#
XLIST1	  3565	  3579#
XLISTE	  3525	  3563#	  3768
XNXTCH	  3545	  3563	  3564	  5334#
XTEM	  1572	  1576	  1578	  1583	  1592	  2021	  2028	  2042	  2044	  5106#
XTIN	  3525#	  3527	  4265                                                                                             SEQ 0173
XTIN1	  3539	  3542	  3551#
XTOUT	  3556#	  3754
XTTYLE	  3708#	  3844
XTTYRE	  3701#	  3797
XX	  4162#	  4168	  4169	  4169#	  4171	  4172	  4172#	  4174	  4175	  4175#	  4177	  4178	  4178#	  4180
	  4181	  4181#	  4183	  4184	  4184#	  4186	  4187	  4187#	  4189	  4190	  4190#	  4192	  4193	  4193#
XZLOW	   130#	  3227	  3228
ZER	  4149#	  4222
ZERO	  3212#	  4046	  4047
ZERO1	  3220#	  3251	  3253
ZERO3	  3229	  3234#
ZEROR	  3221	  3246#
ZLOW	   142#	  3232	  3233
ZNULL	  4199	  4391#
ZZ	  5393#	  5394	  5394#
$1B	  5394#	  5394
$2B	  5394#	  5394
$3B	  5394#	  5394
$4B	  5394#	  5394
$5B	  5394#	  5394
$6B	  5394#	  5394
$7B	  5394#	  5394
$80CHR	   309#	  3606	  3618	  3659	  3666	  3671	  3678
$80CIW	   305#	  3591	  3605	  3609
$80COW	   306#	  3592	  3660	  3665
$80INT	   310#	  3663	  3675
$80KIW	   307#	  3593	  3617	  3621
$80KOW	   308#	  3594	  3672	  3677
$80MM	   304#	  3597
$80STA	   303#	  3596
$8B	  5394#	  5394
$BYTYC	  3683#	  3683	  3685
$BYTYI	   301	  3628#	  3632	  3633	  3634	  3636
$BYTYO	   302	  3682#	  3688
$COMTI	  3640#	  3645	  3647	  3648	  3649	  3652	  3654	  3655	  3656
$COMTO	  3690#	  3694	  3696
$CYTYI	   297	  3604#	  3607	  3612	  3613	  3614
$CYTYO	   298	  3658#	  3668
$EDITN	    80#	    82
$I	  5398#	  5398
$KYTYI	   299	  3616#	  3619	  3624	  3625	  3626
$KYTYO	   300	  3670#	  3680
$M	  5397#	  5397
$TYCLR	   296	  3601#	  3602
$TYINI	   295	  3590#	  3599
$VERSN	    81#	    82
$X	  1500	  1572#
$X00	  1573	  1579#
$X01	  1583#	  2045
$X02	  1594#	  1802
$XO3	  1596#	  1722
$XQUIT	  2025	  2028#
$XTBL	  1610	  1612	  1626#                                                                                            SEQ 0174
%DDTVR	    82#	   120
..TX1	  3901#	  3901	  3902
..TX2	  3901#	  3901	  3902
.FHSLF	  2223	  2733	  3816	  3853
.GTUPM	   161#	  2708
.JBDA	   122#	  1403
.JBDDT	   144	   145#	   153
.JBFF	   122#	  1399
.JBHNM	   122#	   788	   830
.JBHRL	   122#	  2675	  2683
.JBHSM	   122#	   386	   771	   820	   918
.JBREL	   122#	  2668
.JBSA	   122#	  1493
.JBSYM	   122#	  2196	  5205
.JBUSY	   122#	  2200	  5206
.JBVER	   144	   146#
.PRIIN	  3790	  3802	  3808	  3836	  3847	  3989	  5076
.PRIOU	  3832	  5076
.PSECT	  3901	  3902
.RDBKL	  3884
.RDFLG	  3900

BTYTYI	   301#	  3573
BTYTYO	   302#	  3558                                                                                                     SEQ 0175
BYT9	  4759#
CALL	   117#	  1636
CC1	  4211#	  4222	  4223	  4224	  4225	  4226	  4227	  4228	  4229	  4230	  4231	  4232	  4233	  4234
	  4235	  4236	  4237	  4238	  4239	  4240	  4241	  4242	  4243	  4244	  4245	  4246	  4247	  4248
	  4249	  4250	  4251
CCN	  4207#	  4223	  4225	  4230	  4232	  4236	  4237	  4238	  4239	  4241	  4242	  4243	  4246	  4247
	  4250
CFIBF	  3837
CTYCLR	   296#	  3708
CTYINI	   295#	  3701
CTYTYI	   297#	  3629	  3644
CTYTYO	   298#	  3684	  3693
D	  4004#	  4016	  4017	  4018	  4019	  4020	  4021	  4022	  4023	  4024	  4025	  4026	  4027	  4028
	  4029	  4030	  4031	  4032	  4033	  4034	  4035	  4036	  4037	  4038	  4039	  4040	  4041	  4042
	  4043	  4044	  4045	  4046	  4047
DBPNT	  5391#	  5394
DDTINT	  5384#	  5394	  5397	  5398
DIR	  3817
EIR	  3855
GETTAB	  2136	  2709
HALTF	  1485
INCHRW	  4284
JSYS	   118
KTYTYI	   299#	  3635	  3651
KTYTYO	   300#	  3687	  3695
MRPAC	   118#	  2730
OD	   274#	   278	   279	   280	   281	   282	   283	   284	   285	   286	   287	   288	   289	   290
	   291	   292
OUTP	  4804#
PAGE.	   160#	  2696
PBIN	  4287
PBOUT	  3763
PRSIZE	  5361#	  5366
RFCOC	  3805
RFMOD	  3803	  3809	  3833
RPACS	  2734
SETUWP	  2579	  2583
SFCOC	  3815	  3852	  3991
SFMOD	  3812	  3835	  3849
SIBE	  3791
SKPEXC	   166#	   387	   772	   821	   831	   919	  1698	  1703	  1709	  1765	  2162	  2253	  2264	  3441
	  3730
SKPIR	  2224
SKPKA	   167#	  1705
SKPKI	   168#	  2753
SKPKL	   169#
SKPNKL	   170#	  2743
SKPUSR	   165#	   344	  1479	  2220	  2374	  2575	  2670	  2690	  2702	  2718	  2782	  3224	  3753	  3767
	  3796	  3824	  3843	  3873	  4260
TEXTI	  3896
TTCALL	  1639	  3752#	  3760	  3786	  3828	  3830
TXNE	  3901
XP	  5380#	  5394	  5397	  5398	  5405	  5406	  5407	  5408	  5409	  5410	  5411	  5412	  5413	  5414     SEQ 0176
	  5415	  5416	  5417	  5418	  5419	  5420	  5421	  5422	  5423	  5424	  5425	  5426	  5427	  5428
	  5429	  5430	  5431	  5432	  5433	  5434	  5439	  5440	  5441
..N	   109#	   113
..TX	  3901
.ADR	  4788#
.DIS	  4796#
.END	  4800#
.TRA	  4790#
.TRAX	  4792#
.TXT	  4798#

ADD	   467	   540	   547	   585	   589	   780	   802	   842	   965	   967	   973	  1088	  1092	  1237
	  1295	  1450	  1456	  2112	  2623	  3348	  4519                                                             SEQ 0177
ADDB	   463	   519	   898	  1089	  1116
ADDI	   527	   894	  1331	  1332	  1333	  1334	  1341	  1755	  2468	  2509	  2521	  3121	  3184	  3281
	  3302	  3304	  3380	  3425	  3461	  3744	  4373	  4996
ADDM	   612	   619	  1830
AND	  1608	  2255	  2930	  2947	  3067	  3144
ANDCAM	  1810	  1853	  1869	  2303	  2430	  2443	  2455	  2533
ANDI	   580	  1047	  1735	  1952	  1961	  3013	  3193	  3579	  3610	  3622	  3662	  3674
AOBJN	   557	   558	   714	   731	   732	  1398	  1677	  2817	  2849	  2850	  3128
AOJA	   591	   638	  1611	  1861	  3251	  3253	  3338	  4348
AOJGE	  2378
AOJL	  3354	  3427
AOJLE	   564	   738	  2856
AOJN	  3364
AOS	   626	   746	  1031	  1066	  1124	  1157	  1254	  1443	  1448	  1454	  1459	  1507	  1508	  1806
	  1842	  1849	  1865	  1975	  1976	  1977	  2053	  2079	  2160	  2417	  2418	  2893	  2897	  3146
	  3374	  3612	  3613	  3624	  3625	  3632	  3633	  3647	  3648	  3654	  3655	  3792	  4981	  5014
AOSA	  2447	  3862
ASCII	   338	   342	   345	   486	  1246	  1516	  2036	  2037	  3007	  3106	  3107	  3108	  3109	  3110
	  3111	  3112	  3113	  3114	  3268	  3402	  3403
ASCIZ	  4447	  4491
ASH	   507	   782	   863	  3359
ASHC	  3342
BLOCK	  5092	  5174	  5181	  5195	  5231	  5312	  5328	  5329	  5330	  5341
BLT	   366	   368	  1355	  1357	  1676	  2173	  2243	  2261	  2390	  2494	  2916
BYTE	   490	  2317	  3820	  3821	  4016	  4017	  4018	  4019	  4020	  4021	  4022	  4023	  4024	  4025
	  4026	  4027	  4028	  4029	  4030	  4031	  4032	  4033	  4034	  4035	  4036	  4037	  4038	  4039
	  4040	  4041	  4042	  4043	  4044	  4045	  4046	  4047
CAIE	   452	   515	   597	   642	   989	  1738	  1953	  1962	  2023	  2298	  2518	  3476	  3478	  3528
	  3537	  3540	  3549	  4443	  5002
CAIG	   422	   479	  1514	  1690	  2522
CAIGE	   423	   431	   461	   464	  1346	  1403	  2684	  2712	  2836	  3027	  3029	  3045	  3227	  3232
	  4330	  4397	  4415	  4520
CAIL	   416	  1040	  1044	  1084	  1255	  2294	  2481	  2505	  2673	  2898	  2959	  2978	  3032	  3060
	  3234	  3739	  4973
CAILE	   417	   427	   477	  1041	  1045	  1085	  2295	  2506	  2960	  2979	  3235	  3303	  3305	  4972
CAIN	   436	   447	   509	   643	   999	  1131	  1133	  1327	  1329	  1590	  1736	  1941	  2024	  2033
	  2035	  2138	  2299	  2387	  2396	  2399	  2401	  2403	  2408	  2982	  3055	  3057	  3262	  3272
	  3307	  3529	  3538	  3541	  3543	  3580	  3717	  3720	  3722	  3724	  3726	  4327	  4377	  4401
	  4429	  4468	  4476
CALLI	   160	  1482	  1638
CAM	  2137
CAME	   541	   543	   757	   793	   953	  1130	  1311	  2809	  2867	  4113	  4497	  5018	  5027
CAMG	  1691	  2469	  2862
CAMGE	  3335	  3399
CAML	  2830	  3239	  3337
CAMLE	  1610	  3149	  3208	  3240	  3246	  3398
CAMN	   475	   555	   712	   729	   840	  1006	  1009	  1291	  2908	  4343	  4366	  4374	  4440	  4500
	  4506	  5024
CLEARB	  4969
CLEARM	   369	   605	   649	  2493	  5047
COMMEN	    41
CONI	  2166	  3661	  3673
CONO	  2168	  2272	  2774	  3664	  3676                                                                             SEQ 0178
CONSO	  2776
DEFINE	   109	   274	  4004	  4207	  4211	  4759	  4788	  4790	  4792	  4796	  4798	  4800	  4804	  5361
	  5380	  5391
DFDV	  1651
DFN	  1660
DIVB	  1670
DIVI	  3276
DMOVN	  1653
DMOVNM	  1656
DPB	  1601	  1663	  1792	  1814	  1988	  2324	  2392	  2426	  3063	  4526	  4979	  4982	  5015	  5023
	  5041
END	  5462
ENTER	  1647
ENTRY	   271
EQV	  3143	  3192
EXCH	   456	   617	  1309	  1310	  1675	  1716	  1720	  1774	  1819	  1823	  1844	  1855	  1859	  1909
	  1911	  1968	  1985	  1992	  2012	  2073	  2084	  2089	  2104	  2110	  2285	  2437	  2512	  3762
	  3764	  3789	  3793
EXP	  5178	  5319	  5320	  5321
EXTERN	   122
FAD	   672	   673
FADR	   674
FADRB	   636
FDVRB	  1664
FIX	  1654
FIXR	  1657
FLTR	  1658
FMPR	   630	   635	   656	  3362
FSC	  1661
GETSTS	  1643
HALT	  1320	  3631	  3637	  3646	  3653	  4331
HLL	   469	   803	  1238	  1807	  1850	  1866	  2427	  2441	  2452
HLLM	  2109	  2175	  2251	  2284	  2327	  2367	  2428	  2735
HLLZ	   777	   844	  1079	  2106	  2736
HLLZS	   676	  2370
HLR	  2107
HLRE	   506	   799	   862	  3216
HLRES	  1629
HLRZ	  1460	  1609	  2064	  2335	  2338	  2711	  2958	  3003	  3280	  3300	  3379	  4094	  4326
HLRZS	   443	  3266
HRL	  1843	  2436
HRLI	  1004	  1464	  1488	  2695	  2733	  2864	  2890	  4328
HRLM	  1406	  2108	  3122	  3277	  3297	  3375
HRLZI	  1069	  1813	  1826	  2260	  2389
HRLZM	  1093
HRLZS	   964
HRR	   968	   980	  1313	  1493	  2887	  3185
HRREI	  4988
HRRI	   829	  1779	  1783	  1824	  2196	  2200	  4522
HRRM	  1078	  1461	  1782	  1812	  1825	  1832	  1871	  1903	  1910	  2197	  2201	  2247	  2280	  2282
	  2316	  2334	  3265
HRROI	  1215	  1301	  4447	  4491
HRROS	  1414                                                                                                             SEQ 0179
HRRZ	   523	   743	   979	   982	   994	  1008	  1028	  1177	  1241	  1289	  1303	  1400	  1407	  1417
	  1421	  1442	  1447	  1449	  1453	  1455	  1462	  1463	  1467	  1574	  1589	  1798	  1801	  1820
	  1856	  1860	  1870	  2017	  2020	  2032	  2040	  2070	  2333	  2348	  2353	  2517	  2668	  2679
	  2683	  2693	  2722	  2729	  2970	  3009	  3041	  3119	  3215	  3242	  3261	  3271	  3312	  3463
	  4096
HRRZI	  1587	  1831	  2172	  3453	  5162
HRRZM	   556	   908	  1126	  1127	  1202	  1203	  1335	  1342	  1348	  1380	  1405	  1408	  1588	  1602
	  2019	  2258	  2848	  3204	  3293
HRRZS	   391	  2167	  2313	  3183	  3205
IBP	  1662	  4332	  4478
IDIV	  3459	  4524
IDIVB	   460
IDIVI	   429	   668	  1081	  2315	  2530	  3296	  3372	  4091	  4093	  4474	  4994
IDPB	   614	  1017	  4105	  4119	  4127	  4408	  4418	  4960
IF1	  4765
IF2	  4786	  5366	  5379
IFDEF	  3901	  3974	  5356
IFE	   120	   124	   132	   147	   152	   158	   263	   264	   268	   318	   385	   559	   680	   733
	   770	   778	   785	   806	   819	   828	   864	   917	  1143	  1477	  1513	  1534	  1614	  2122
	  2191	  2266	  2554	  2556	  2635	  2636	  2665	  2770	  2851	  3023	  3024	  3080	  3135	  3153
	  3197	  3222	  3231	  3238	  3249	  3438	  3536	  3727	  3751	  3769	  3822	  3859	  3901	  3902
	  3996	  4010	  4011	  4271	  4284	  5096	  5120	  5203	  5204	  5247	  5282	  5378	  5388	  5438
IFG	  4222	  4223	  4224	  4225	  4226	  4227	  4228	  4229	  4230	  4231	  4232	  4233	  4234	  4235
	  4236	  4237	  4238	  4239	  4240	  4241	  4242	  4243	  4244	  4245	  4246	  4247	  4248	  4249
	  4250	  4251
IFN	   113	   125	   127	   158	   164	   173	   176	   208	   269	   272	   312	   320	   341	   343
	   347	   354	   359	   372	   387	   700	   772	   809	   821	   831	   919	   927	  1145	  1279
	  1478	  1521	  1528	  1696	  1763	  1764	  1791	  1986	  2124	  2161	  2183	  2219	  2252	  2263
	  2301	  2307	  2374	  2540	  2574	  2607	  2618	  2663	  2669	  2688	  2701	  2717	  2742	  2761
	  2781	  2794	  2920	  2972	  3021	  3026	  3086	  3137	  3199	  3223	  3226	  3244	  3256	  3440
	  3443	  3490	  3494	  3531	  3566	  3729	  3753	  3755	  3767	  3770	  3773	  3795	  3824	  3842
	  3864	  3920	  3945	  3996	  4014	  4017	  4018	  4019	  4020	  4021	  4022	  4023	  4024	  4025
	  4026	  4027	  4028	  4029	  4030	  4031	  4032	  4033	  4034	  4035	  4036	  4037	  4038	  4039
	  4040	  4041	  4042	  4043	  4044	  4045	  4046	  4047	  4048	  4054	  4259	  4262	  4270	  4272
	  5058	  5086	  5208	  5212	  5238	  5241	  5256	  5278	  5331	  5337	  5344	  5403
IFNDEF	    96	    97	    98	    99	   100	   101	   102	   103	   104	  3902	  3921
ILDB	  3869	  4316	  4428	  4467	  4473	  4502	  4508	  4971	  4991	  5001	  5008
IMULB	   458	  1669
IMULI	   588	   618	  2508
IMULM	   611
INIT	  1637
INTERN	   120	   144	   265	   270	  5394	  5397	  5398	  5405	  5406	  5407	  5408	  5409	  5410	  5411
	  5412	  5413	  5414	  5415	  5416	  5417	  5418	  5419	  5420	  5421	  5422	  5423	  5424	  5425
	  5426	  5427	  5428	  5429	  5430	  5431	  5432	  5433	  5434	  5439	  5440	  5441
IORB	   943	  1070	  3155
IORI	  2256	  3363
IORM	  2535
IOWD	   370	   494	   499	  2176	  2395
IRP	   113
JFCL	  1235	  1679	  2365	  2423	  2467	  2479	  2584	  2645	  3325	  3839
JFFO	  1672	  2982
JRA	  1688
JRST	    38	   337	   384	   418	   421	   424	   425	   428	   432	   435	   441	   446	   448	   453     SEQ 0180
	   454	   462	   465	   476	   478	   480	   483	   484	   488	   491	   498	   501	   511	   513
	   530	   534	   542	   544	   548	   554	   565	   568	   572	   578	   582	   600	   609	   615
	   621	   624	   641	   646	   678	   683	   691	   698	   706	   709	   713	   726	   728	   730
	   742	   750	   753	   755	   760	   784	   787	   794	   795	   798	   823	   836	   849	   851
	   857	   861	   868	   875	   877	   899	   902	   904	   906	   911	   914	   918	   921	   925
	   933	   954	   957	   959	   964	   966	   972	   974	   978	   983	   988	   990	   993	  1000
	  1007	  1010	  1014	  1016	  1019	  1025	  1030	  1033	  1046	  1055	  1057	  1060	  1067	  1072
	  1077	  1086	  1090	  1094	  1099	  1105	  1112	  1115	  1118	  1131	  1135	  1144	  1151	  1152
	  1158	  1171	  1179	  1180	  1183	  1185	  1190	  1200	  1204	  1208	  1217	  1231	  1243	  1244
	  1248	  1276	  1292	  1293	  1294	  1296	  1299	  1306	  1312	  1321	  1336	  1339	  1343	  1347
	  1354	  1358	  1361	  1367	  1372	  1375	  1378	  1382	  1383	  1389	  1391	  1392	  1393	  1401
	  1404	  1410	  1416	  1437	  1441	  1480	  1486	  1488	  1490	  1495	  1500	  1515	  1519	  1591
	  1595	  1612	  1678	  1699	  1700	  1704	  1706	  1707	  1710	  1719	  1722	  1731	  1741	  1749
	  1759	  1766	  1770	  1773	  1776	  1786	  1795	  1797	  1802	  1815	  1822	  1838	  1845	  1858
	  1873	  1880	  1884	  1893	  1904	  1912	  1922	  1929	  1938	  1944	  1950	  1951	  1957	  1973
	  1974	  1984	  1991	  2022	  2025	  2027	  2031	  2034	  2045	  2046	  2059	  2065	  2075	  2114
	  2134	  2144	  2163	  2165	  2170	  2193	  2203	  2221	  2244	  2254	  2265	  2274	  2290	  2297
	  2300	  2305	  2345	  2346	  2358	  2361	  2371	  2375	  2384	  2388	  2397	  2400	  2402	  2404
	  2407	  2411	  2412	  2415	  2419	  2424	  2433	  2438	  2446	  2449	  2456	  2463	  2470	  2482
	  2489	  2491	  2495	  2499	  2502	  2507	  2511	  2513	  2520	  2523	  2524	  2550	  2558	  2562
	  2566	  2568	  2570	  2573	  2585	  2589	  2590	  2597	  2604	  2638	  2642	  2649	  2653	  2654
	  2660	  2667	  2671	  2674	  2686	  2703	  2707	  2719	  2725	  2729	  2731	  2744	  2746	  2749
	  2751	  2752	  2754	  2757	  2759	  2771	  2772	  2777	  2783	  2805	  2811	  2813	  2816	  2827
	  2829	  2832	  2835	  2837	  2842	  2859	  2863	  2868	  2869	  2873	  2878	  2894	  2909	  2923
	  2925	  2929	  2938	  2941	  2942	  2949	  2951	  2952	  2959	  2961	  2962	  2980	  2983	  2993
	  2996	  3014	  3018	  3030	  3033	  3042	  3046	  3049	  3053	  3056	  3058	  3061	  3070	  3071
	  3072	  3076	  3079	  3084	  3088	  3104	  3124	  3136	  3142	  3150	  3151	  3157	  3159	  3163
	  3166	  3174	  3182	  3187	  3190	  3191	  3194	  3209	  3213	  3221	  3227	  3229	  3236	  3241
	  3247	  3255	  3264	  3273	  3282	  3290	  3309	  3318	  3330	  3332	  3336	  3361	  3381	  3419
	  3431	  3436	  3442	  3448	  3455	  3464	  3481	  3485	  3526	  3539	  3542	  3544	  3547	  3564
	  3565	  3581	  3582	  3584	  3585	  3587	  3599	  3602	  3607	  3614	  3619	  3626	  3630	  3634
	  3636	  3638	  3642	  3645	  3649	  3652	  3656	  3667	  3668	  3679	  3680	  3688	  3692	  3694
	  3696	  3718	  3719	  3721	  3723	  3725	  3730	  3731	  3737	  3740	  3749	  3754	  3759	  3768
	  3785	  3788	  3797	  3801	  3827	  3831	  3844	  3868	  3874	  3876	  3879	  3886	  3897	  3902
	  3906	  3918	  3926	  3933	  3942	  3952	  3958	  3961	  3972	  4072	  4095	  4098	  4104	  4107
	  4114	  4115	  4138	  4257	  4261	  4268	  4283	  4285	  4319	  4333	  4375	  4378	  4379	  4385
	  4392	  4393	  4398	  4399	  4402	  4405	  4411	  4416	  4417	  4421	  4426	  4430	  4438	  4441
	  4444	  4446	  4450	  4456	  4460	  4465	  4469	  4471	  4477	  4482	  4487	  4498	  4501	  4504
	  4510	  4521	  4984	  4986	  4997	  5000	  5003	  5004	  5019	  5025	  5028	  5033	  5042	  5048
	  5122	  5157	  5166
JRSTF	  2116
JSA	  1687	  5129	  5132	  5135	  5138	  5141	  5144	  5147	  5150
JSP	  1505	  1686	  2132	  2145	  2150	  2409	  2413	  2431	  2565	  2644	  2727
JSR	   295	   296	   297	   298	   299	   300	   301	   302	   339	  1509	  1598	  1604	  1685	  1970
	  1982	  2309	  2364	  2422	  2460	  2469
JUMPA	  1450	  1456	  1464
JUMPE	   444	   505	   631	   657	   721	   726	   976	  1304	  1752	  2336	  2349	  2377	  2409	  2592
	  2622	  2827	  2931	  2957	  2987	  3004	  3016	  3068	  3180	  3298	  3301	  3313	  3376	  3527
	  3914	  3954	  4094	  4317	  4977	  5009	  5064
JUMPG	   390	  1287	  1573	  3960	  4975	  4978	  4990
JUMPGE	   536	   722	   827	   950	  1267	  1284	  1399	  2823	  2860	  2876	  2883	  3285	  3323
JUMPL	   382	   804	   818	   845	  2560	  2640	  2682	  2815	  2840	  2882	  4989
JUMPLE	  2845	  2886	  4078	  4124                                                                                     SEQ 0181
JUMPN	  1916	  2563	  2643	  2889	  3411	  4503	  5017
LDB	   430	  1080	  1083	  1233	  1605	  1751	  2293	  2386	  2393	  2394	  2732	  2956	  2971	  2986
	  3054	  3059	  3062	  3093	  3179	  3295	  4092	  4329	  4376	  4442	  4457	  4475	  4517	  4518
	  4985	  5016	  5026	  5038
LIST	   173	   312	   359	  1474	  1492	  2607	  2663	  2794	  3490	  3555	  3571	  3700	  3707	  3711
	  3996	  5053	  5337
LIT	  5053
LOC	    28	    37	   153	   158
LSH	   584	   632	   654	  1082	  1087	  1671	  2532	  2694	  3074	  3275	  3407	  3414	  4964	  5037
LSHC	  1673	  3274	  3409	  3473
MAP	  1681	  2744	  2755
MOVE	   342	   345	   365	   370	   381	   408	   426	   433	   472	   474	   486	   494	   499	   504
	   520	   535	   537	   552	   563	   570	   583	   587	   648	   660	   662	   710	   724	   737
	   745	   748	   756	   791	   807	   839	   852	   876	   889	   890	   893	   897	   907	   912
	   924	   934	   936	   939	   941	   945	   948	   951	   988	   991	  1002	  1007	  1027	  1074
	  1141	  1263	  1264	  1277	  1286	  1298	  1326	  1345	  1350	  1356	  1395	  1418	  1444	  1482
	  1485	  1516	  1603	  1717	  1721	  1750	  1753	  1768	  1781	  1793	  1935	  2002	  2037	  2058
	  2083	  2110	  2115	  2135	  2140	  2153	  2174	  2176	  2242	  2249	  2283	  2304	  2317	  2326
	  2363	  2366	  2395	  2405	  2435	  2440	  2444	  2448	  2451	  2460	  2465	  2476	  2492	  2497
	  2504	  2515	  2546	  2648	  2653	  2659	  2708	  2775	  2806	  2811	  2822	  2825	  2838	  2843
	  2855	  2861	  2866	  2880	  2884	  2914	  2939	  2966	  2990	  3031	  3043	  3073	  3097	  3129
	  3164	  3168	  3178	  3284	  3314	  3317	  3322	  3349	  3350	  3405	  3422	  3456	  3466	  3468
	  3472	  3484	  3557	  3577	  3584	  3596	  3605	  3617	  3665	  3677	  3685	  3743	  3813	  3814
	  3848	  3850	  3851	  3882	  3900	  3916	  3929	  3956	  3971	  3983	  3985	  3990	  4062	  4064
	  4068	  4075	  4077	  4090	  4097	  4126	  4266	  4288	  4302	  4314	  4345	  4356	  4370	  4381
	  4382	  4427	  4466	  4472	  4495	  4496	  4505	  4966	  4970	  4995	  5035	  5036
MOVEI	   386	   389	   400	   406	   493	   514	   529	   574	   594	   610	   613	   625	   650	   652
	   667	   677	   681	   771	   774	   788	   820	   830	   833	   918	   946	  1005	  1102	  1129
	  1132	  1134	  1137	  1188	  1193	  1212	  1268	  1316	  1325	  1328	  1330	  1340	  1399	  1402
	  1511	  1600	  1715	  1757	  1902	  1987	  1995	  2004	  2018	  2095	  2223	  2240	  2279	  2281
	  2328	  2351	  2368	  2381	  2391	  2475	  2516	  2531	  2578	  2689	  2703	  2710	  2713	  2871
	  2964	  2967	  2988	  2992	  3036	  3039	  3048	  3081	  3082	  3099	  3120	  3154	  3176	  3198
	  3219	  3228	  3233	  3237	  3286	  3289	  3308	  3327	  3334	  3339	  3358	  3408	  3418	  3423
	  3430	  3435	  3439	  3447	  3450	  3458	  3471	  3482	  3530	  3544	  3546	  3718	  3732	  3734
	  3736	  3741	  3782	  3790	  3802	  3808	  3816	  3832	  3836	  3847	  3853	  3880	  3889	  3895
	  3912	  3927	  3934	  3936	  3940	  3952	  3989	  4404	  4407	  4410	  4432	  4436	  4454	  4480
	  4523	  4525	  4959	  4992	  4993	  5022	  5045	  5062	  5063	  5065
MOVEM	   392	   393	   401	   407	   409	   440	   470	   586	   590	   604	   637	   663	   675	   688
	   759	   775	   834	   835	   931	   995	   997	  1012	  1013	  1113	  1214	  1265	  1269	  1278
	  1283	  1360	  1373	  1396	  1411	  1501	  1572	  1575	  1586	  1593	  1596	  1597	  1599	  1606
	  1780	  1785	  1808	  1867	  1936	  2105	  2130	  2141	  2152	  2171	  2227	  2292	  2330	  2331
	  2339	  2352	  2359	  2369	  2380	  2385	  2453	  2464	  2525	  2545	  2569	  2572	  2581	  2589
	  2596	  2803	  2814	  2900	  2910	  2919	  3034	  3083	  3087	  3177	  3452	  3457	  3462	  3467
	  3469	  3474	  3475	  3545	  3660	  3672	  3683	  3783	  3804	  3806	  3807	  3881	  3883	  3884
	  3890	  3905	  3915	  3917	  3928	  3930	  3931	  3937	  3955	  3957	  3960	  3988	  4070	  4074
	  4088	  4131	  4290	  4347	  4357	  4372	  4458	  4459	  4961	  4965	  4967
MOVES	  2268
MOVMS	  1668	  3373
MOVN	   450	   518	   603	   962
MOVNI	  3347	  3357	  3421
MOVNM	  3047
MOVNS	  1578	  3218	  3324
MOVS	   367	   439	   687	   801	  1103	  1352	  2072                                                             SEQ 0182
MOVSI	   490	   628	   634	   707	   855	   942	  1023	  1246	  1394	  1607	  1809	  1852	  1868	  2222
	  2302	  2341	  2429	  2442	  2454	  2807	  2946	  3007	  3066	  3126	  3268
MULI	  3341	  3351
NOSYM	    31
OCT	  3977
OPDEF	   117	   118	   160	   165	   166	   167	   168	   169	   170	   295	   296	   297	   298	   299
	   300	   301	   302	  3752	  5384
ORCBB	  1627
OUT	  1641
OUTBUF	  1644
OUTPUT	  1645
POINT	   408	  1002	  1004	  1023	  1080	  1083	  1233	  1601	  1605	  1751	  1792	  1814	  1988	  2293
	  2324	  2386	  2392	  2393	  2394	  2426	  2732	  3054	  3059	  3062	  3063	  3093	  3179	  3295
	  4000	  4001	  4002	  4168	  4171	  4174	  4177	  4180	  4183	  4186	  4189	  4192	  4328	  4329
	  4517	  4518	  4526	  4954	  4955	  4956	  4957	  5038	  5041	  5080	  5081
POP	   792	   970	  1032	  1106	  1107	  1108	  1109	  1236	  1258	  1288	  1683	  1826	  1937	  2011
	  2087	  2097	  2278	  2681	  2737	  2738	  3102	  3103	  3368	  3370	  3487	  3559	  3574	  3578
	  3746	  3899	  3903	  3943	  3944	  3992	  3993	  4132	  4133	  4134	  4135	  4136	  4137	  4267
	  4289	  4304	  4305	  4306	  4383	  4384	  4434	  5010	  5011	  5012	  5013
POPJ	   740	   747	   812	   841	   846	   892	  1039	  1049	  1229	  1240	  1259	  1270	  1425	  1470
	  1684	  1826	  2090	  2098	  2471	  2483	  2536	  2549	  2576	  2580	  2594	  2605	  2620	  2658
	  2676	  2685	  2691	  2699	  2704	  2714	  2739	  2773	  2778	  2792	  2901	  2917	  2943	  3020
	  3210	  3355	  3412	  3428	  3488	  3551	  3560	  3575	  3702	  3709	  3747	  3761	  3765	  3781
	  3787	  3794	  3799	  3818	  3825	  3829	  3840	  3846	  3857	  3870	  3994	  4258	  4291	  4307
	  4344	  4358	  4367	  4507	  4527	  5007	  5020
PRINTX	  5366
PURGE	  3902
PUSH	   481	   787	   955	  1026	  1062	  1063	  1064	  1065	  1232	  1257	  1285	  1813	  1934	  1993
	  2085	  2094	  2677	  2720	  2721	  3091	  3092	  3365	  3366	  3470	  3556	  3572	  3716	  3891
	  3892	  3938	  3939	  3986	  3987	  4056	  4057	  4058	  4059	  4060	  4061	  4261	  4286	  4299
	  4300	  4301	  4368	  4369	  4431	  5029	  5030	  5031	  5032	  5164
PUSHJ	   340	   350	   363	   379	   388	   415	   445	   487	   495	   496	   500	   508	   516	   522
	   528	   532	   545	   546	   550	   569	   573	   575	   576	   705	   715	   744	   773	   789
	   815	   817	   822	   825	   832	   850	   856	   867	   874	   891	   895	   910	   920	   923
	   937	   940	   944	   947	   958	   969	   971	   977	   981	   996	   998	  1001	  1011	  1018
	  1029	  1037	  1122	  1123	  1128	  1138	  1140	  1142	  1156	  1168	  1169	  1173	  1174	  1198
	  1201	  1206	  1207	  1210	  1211	  1213	  1216	  1234	  1242	  1247	  1273	  1292	  1305	  1319
	  1366	  1391	  1397	  1409	  1412	  1419	  1420	  1422	  1424	  1439	  1445	  1446	  1451	  1452
	  1457	  1458	  1465	  1466	  1468	  1502	  1503	  1510	  1517	  1518	  1579	  1594	  1682	  1718
	  1748	  1799	  1800	  1813	  1821	  1857	  1969	  1983	  1997	  1999	  2001	  2006	  2008	  2010
	  2013	  2026	  2038	  2039	  2041	  2043	  2063	  2069	  2074	  2086	  2088	  2096	  2229	  2248
	  2310	  2311	  2325	  2329	  2332	  2337	  2340	  2343	  2354	  2355	  2357	  2360	  2383	  2421
	  2445	  2462	  2466	  2478	  2498	  2500	  2559	  2591	  2600	  2603	  2621	  2639	  2655	  2678
	  2804	  2818	  2865	  2870	  2872	  2891	  2892	  2907	  2935	  2940	  2950	  2955	  2961	  2963
	  2965	  2969	  2984	  2989	  2991	  2995	  3006	  3008	  3017	  3035	  3038	  3040	  3064	  3065
	  3069	  3075	  3098	  3101	  3132	  3133	  3134	  3148	  3161	  3165	  3169	  3170	  3171	  3181
	  3189	  3214	  3248	  3267	  3269	  3279	  3287	  3288	  3299	  3316	  3328	  3345	  3346	  3352
	  3367	  3369	  3377	  3410	  3416	  3417	  3426	  3434	  3444	  3445	  3477	  3479	  3483	  3525
	  3550	  3733	  3735	  3742	  3745	  3748	  3838	  3894	  3898	  3941	  3969	  4069	  4073	  4076
	  4089	  4265	  4303	  4315	  4318	  4346	  4371	  4398	  4400	  4403	  4416	  4420	  4425	  4433
	  4435	  4437	  4445	  4449	  4455	  4464	  4470	  4481	  4486	  4493	  4494	  4503	  4509	  5046
RADIX	  5365	  5367	  5389	  5395
RADIX5	  1429	  1430	  1431                                                                                             SEQ 0183
RELOC	   156
REPEAT	   323	   869	   879	  1160	  1474	  1492	  2230	  2318	  2998	  3555	  3571	  3700	  3707	  3711
	  4164	  4223	  4225	  4230	  4232	  4236	  4237	  4238	  4239	  4241	  4242	  4243	  4246	  4247
	  4250	  4625	  5124	  5287	  5394	  5451
ROT	  2151	  5161
ROTC	  3424
SALL	    32	  4194
SEARCH	   116
SETCAM	  3125
SETCM	   790
SETCMM	  1184	  3127	  3158	  3172	  3173
SETOB	  1628
SETOM	   697	  1576	  2139	  2190	  2218	  2241	  2595	  3096	  3598
SETZ	  2225	  2791	  3887	  4125
SETZB	  1256	  1626	  2899	  3207
SETZM	   371	   380	   398	   399	   404	   405	   410	   411	   473	   551	   577	   720	   814	   865
	  1175	  1176	  1351	  1469	  1504	  2028	  2131	  2148	  2262	  2526	  2527	  2819	  2875	  2915
	  3094	  3343	  3564	  3591	  3592	  3593	  3594	  3595	  3609	  3621	  3714	  3715	  3856	  3863
	  3970	  4257
SKIPA	   438	   538	   593	   602	   653	   686	   961	  1042	  2036	  2416	  2647	  2810	  3019	  3162
SKIPE	   168	   437	   512	   669	  1226	  1290	  1349	  1483	  2042	  2044	  2143	  2159	  2164	  2169
	  2192	  2461	  2477	  2557	  2637	  2666	  2706	  2808	  2857	  3037	  3100	  3278	  3344	  3353
	  3460	  3563	  3641	  3686	  3691	  3758	  3784	  3800	  3826	  3878	  3888	  3925	  3935	  4103
	  4256	  4282	  4391	  4499	  5158
SKIPG	   167	  2322	  3885	  3932
SKIPGE	   166	   170	   378	   383	   779	   816	   824	  1423	  1440	  2267	  3854
SKIPL	   165	   169	   561	   735	   783	   797	   805	   860	   916	   932	   956	  1415	  1592	  2021
	  2853
SKIPN	   482	   567	   708	   739	   754	  1436	  2226	  2519	  2675	  2841	  3451	  3548	  3798	  3845
	  3875	  3893	  3951	  4063	  4071
SOJA	   658
SOJG	   633	  4106
SOJGE	  4974
SOS	   935	   938	  1170	  1266	  1811	  2312	  4409	  4419
SOSE	  3188
SOSG	  1692	  1794	  3480	  5159
SOSGE	   608	  1104	  3867
SOSL	  2382
SOSLE	  3780
SOSN	  1583
STATO	  1642
SUB	   800	   922	   930	  1512	  2680	  2844	  2868	  2877	  2885	  3217	  3904	  3913	  3953	  3959
SUBB	  1689
SUBI	   606	   896	  2314	  2376	  2480	  2529	  3306	  4120	  4479	  4976
SUBTTL	    39	   173	   175	   312	   314	   359	   361	   702	   985	  1120	  1323	  1385	  1434	  1475
	  1532	  2118	  2276	  2541	  2796	  3116	  3258	  3490	  3492	  3996	  3998	  4052	  4530	  5056
	  5094	  5119	  5176	  5245	  5317	  5339
TDC	  3051
TDCN	  3052
TDNN	  2344
TDZA	  1315	  1498	  2697
TITLE	     7
TLC	   595	   670	   671	  1227	  1872	  2927	  5039                                                             SEQ 0184
TLCN	  2928	  5040
TLNE	   420	   468	   524	   533	   581	   623	   661	   664	   749	   854	   903	   905	   913	   963
	  1003	  1096	  1110	  1111	  1136	  1150	  1178	  1187	  1192	  1272	  1274	  1371	  1377	  1390
	  1413	  1758	  1796	  1990	  1994	  1996	  1998	  2000	  2003	  2005	  2007	  2009	  2030	  2071
	  2147	  2534	  2561	  2641	  2656	  2812	  2831	  2933	  2968	  3078	  3130	  3141	  3597	  3901
TLNN	   451	   457	   471	   497	   510	   571	   640	   685	   751	   843	   848	   901	   960	  1015
	  1024	  1038	  1101	  1182	  1199	  1230	  1239	  1275	  1314	  1353	  1381	  1387	  1388	  1497
	  1499	  1577	  1772	  2113	  2133	  2350	  2410	  2548	  2593	  2657	  2728	  2745	  2747	  2748
	  2750	  2826	  2833	  2981	  3186	  3196	  3206	  3212	  3263	  3331	  3406
TLO	   521	   525	   526	   607	   665	   689	   696	   853	   952	  1054	  1058	  1059	  1071	  1097
	  1114	  1117	  1149	  1374	  1379	  1697	  1702	  1730	  1740	  1745	  1747	  1784	  1837	  1851
	  1854	  1878	  1879	  1883	  1888	  1901	  1921	  1928	  1933	  1943	  1954	  1956	  1963	  1967
	  2888	  3118	  3131	  3315
TLOA	   598	   599	  1053	  1196	  1726	  1737	  1739	  1833	  1882	  1897	  1917	  1927	  1942	  1966
TLOE	   695	  1076	  1489
TLON	   666
TLZ	   364	   394	   396	   402	   403	   690	   711	   992	  1098	  1139	  1197	  1438	  1584	  1585
	  1754	  1756	  1775	  2029	  2250	  2821	  3167	  3834
TLZE	   449	   459	   651	  2488	  2547	  3329
TLZN	   434	   553	   596	   601	   725	  1228	  3123
TRC	   419	  1043	  1048	  1948
TRCE	  1949
TRNE	   741	   786	  1746	  1769	  1771	  1892	  1940	  1955	  1964	  1965	  2582	  2758	  2858	  2924
	  2937	  2948	  3044	  3666	  3678	  4999	  5006
TRNN	   560	   734	   752	  1494	  1926	  2296	  2406	  2567	  2588	  2646	  2652	  2724	  2756	  2760
	  2834	  2852	  2922	  3147	  3156	  3220	  3252	  3606	  3618	  4983
TRO	   620	   727	   758	  1189	  1365	  2323	  2503	  2698	  2828	  2953	  3005	  3659	  3663	  3671
	  3675	  3811	  4963	  5044
TROA	  1195	  1363	  3250
TROE	   644
TRZ	   395	   397	   719	  1194	  1364	  2257	  2820	  2847	  2985	  3415	  3810	  4968	  4980
TRZA	   645	  2054	  3984	  4962
TRZE	   629	   655	   987	  1338	  2490
TRZN	  2501	  2510	  3095	  3454
TSON	  1630
UFA	  1659
USETO	  1646
XALL	  4163
XCT	   627	  1075	  1506	  1680	  1721	  1971	  2111	  2287	  2288	  2289	  2342	  2356	  2414	  2432
	  3145	  3270	  3360	  5099
XLIST	   172	   311	   358	  1473	  1491	  2606	  2662	  2793	  3489	  3554	  3570	  3699	  3706	  3710
	  3995	  5052	  5336
XOR	  2146	  2723	  2839	  2881
XORM	  2726
XWD	   154	   158	   365	   518	   540	   547	   973	  1352	  2242	  2492	  2930	  2956	  2971	  2986
	  3051	  3052	  4966	  4979	  4982	  5160	  5277
Z	  1239	  1754	  1756	  2112	  3400	  5205	  5206	  5384
.IF	  3901
.IFN	  3901
.PSECT	  3901	  3902