Google
 

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







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

	PRODUCT CODE:		AH-7135N-DD

	DIAGNOSTIC CODE:	DDQDA

	PRODUCT NAME:	 	DDQDAN0 DECSYSTEM10
				SUBROUTINE PROGRAM

	VERSION:		0.14

	DATE RELEASED:		MARCH 1978

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 1970, 1978

	        DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

	THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR  USE  ONLY  ON  A
	SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
	OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE,  OR  ANY  OTHER
	COPIES  THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
	TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
	AGREES  TO  THESE  LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
	SOFTWARE  SHALL  AT   ALL  TIMES  REMAIN  IN  DIGITAL  EQUIPMENT
	CORPORATION.

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

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

1.0	ABSTRACT

2.0	REQUIREMENTS

2.1	EQUIPMENT

2.2	STORAGE

3.0	PROGRAM PROCEDURES

3.1	PROGRAM ASSEMBLY PROCEDURE

3.2	SUBROUTINE OPERATING PROCEDURE

4.0	DATA SWITCH FUNCTIONS

5.0	SUBROUTINE DESCRIPTIONS

5.1	PROGRAM SUBROUTINE INITIALIZATION

5.2	CONTROL SWITCH INITIALIZATION

5.3	MEMORY MAPPING SUBROUTINE

5.4	INTERRUPT SUBROUTINE

5.5	UUO SUBROUTINE

5.6	CONSOLE DATA SWITCH INPUT

5.7	TELETYPE INPUT

5.8	PRINT

5.9	SIXBIT TYPE-IN / PRINT

5.10	KI10 - MARGIN PRINT

5.11	DEVICE CODE CHANGE SUBROUTINE

5.12	KL10 CLOCK SUBROUTINE

5.13	KL10 METER SUBROUTINE

5.14	"DIAMON" FILE SELECTION AND READ SUBROUTINES
					MAINDEC-10-DDQDA.TXT (SUBRTN)                                                      SEQ 0003
						PAGE 2

			TABLE OF CONTENTS (CON'T)
			-------------------------

6.0	SUBROUTINE CALLS, REGISTERS, ETC.

6.1	SUBROUTINE CALLS

6.2	SUBROUTINE CONTROL WORDS, REGISTERS

6.3	SUBROUTINE MISC.

6.4	SUBROUTINE FATAL HALTS

7.0	DIAGNOSTIC ERROR HANDLER

7.1	GENERAL ERROR CALL FORMAT

7.2	ERROR CALL FORMAT

7.3	CALLING THE ERROR MACRO

7.4	ERROR HANDLER SWITCH CONTROL

7.5	ERROR HANDLER BLOCK FLOW

7.6	ERROR HANDLER DIAGNOSTICS

8.0	SUBROUTINE PACKAGE INSTRUCTIONS

8.1	SUBROUTINE SYMBOLIC TAGS

8.2	SUBROUTINE PACKAGE DISTRIBUTION

9.0	MISCELLANEOUS

10.0	SOURCE FILE LISTINGS
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 3                                                                     SEQ 0004
1.0  ABSTRACT
     --------

     THE PDP-10 SUBROUTINES (PARAM.KLM,FIXED.KLM,STOR.KLM & SUBRTN.SAV)
     PROVIDE THE BASIC SUBROUTINES AND SOURCE FILES NEEDED TO
     FACILITATE DEVELOPMENT OF DIAGNOSTIC AND UTILITY PROGRAMS FOR
     THE PDP-10 COMPUTER.  ALSO PROVIDED IS A DIAGNOSTIC ERROR HANDLER
     CAPABLE OF REPORTING A STANDARD BUT FLEXIBLE FORMAT OF TEST
     DATA AND DIAGNOSTIC INFORMATION.  THE ERROR HANDLER ALSO INTERPETS
     AND CONTROLS TEST SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE
     CONTINUE/HALT OR LOOP ON ERROR, AND BELL ON ERROR.

     THIS SUBROUTINE PACKAGE CONSISTS OF FOUR FILES WHICH ARE:

	PARAM - THIS FILE CONTAINS ALL PERTINENT SUBROUTINE PARAMETERS:
	   A - OPERATOR DEFINITIONS
	   B - MAIN CONTROL REGISTERS/WORDS
	   C - SUBROUTINE ASSIGNMENTS

	FIXED - THIS FILE CONTAINS STANDARDIZED PROGRAM STARTING ADDRESSES
		AND CONTROL PARAMETER LOCATIONS.

	STOR - THIS FILE CONTAINS THE REQUIRED STORAGE SETUP INSTRUCTIONS
	       AND THE END COMMAND.

	THE PARAM.KLM, FIXED.KLM & STOR.KLM ARE SOURCE MACRO FILES
	WHICH ARE ASSEMBLED WITH THE APPROPRIATE DIAGNOSTIC MACRO
	SOURCE FILES TO CREATE A DIAGNOSTIC SEGMENT LOAD MODULE.
	THESE FILES PROVIDE THE COMMON DEFINITIONS AND ADDRESS
	ASSIGNMENTS REQUIRED FOR RUN TIME DIAGNOSTIC AND
	SUBROUTINE COMMUNICATIONS.

	SUBUSR - USER MODE SUBROUTINE PACKAGE
	SUBRTN - EXEC MODE SUBROUTINE PACKAGE

	THESE FILES ARE A SEPARATE LOAD MODULE AND
	CONTAINS THE FOLLOWING SUBROUTINES:

	   A - PROGRAM SUBROUTINE INITIALIZATION
	   B - CONTROL SWITCH INITIALIZATION
	   C - INTERRUPT HANDLER
	   D - UUO HANDLER
	   E - CONSOLE DATA SWITCH INPUT
	   F - TELETYPE INPUT
	   G - PRINT
	   H - SIXBIT TYPE-IN / PRINT
	   I - DF10 CONTROL WORD PRINT
	   J - MEMORY MAPPING
	   K - KI10 MARGIN PRINTOUT ROUTINE
	   L - DEVICE CODE CHANGE SUBROUTINE
	   M - DIAGNOSTIC ERROR HANDLER
					MAINDEC-10-DDQDA.TXT (SUBRTN)                                                      SEQ 0005
						PAGE 4

2.0  REQUIREMENTS
     ------------

2.1  EQUIPMENT
     ---------

     THE PDP-10 SUBROUTINES ARE CONFIGURED TO BE ABLE TO OPERATE EITHER
     IN EXEC OR USER MODE PROGRAMS. A NORMAL SYSTEM CONFIGURATION 
     DEPENDING ON THE MAIN PROGRAM IS REQUIRED.

2.2  STORAGE
     -------

     FIXED - THIS FILE CONTAINS THE FOLLOWING:
		A - PROGRAM STARTING ADDRESSES, 30000 TO 30017
		B - PROGRAM FIXED PARAMETER AREA, 30020 TO 30036
		C - PROGRAM VARIABLE PARAMETER AREA, 30037 TO 30056
		D - SPECIAL PROGRAM DISPATCH ADDRESSES, 30057 TO 30105
		E - PROCESSOR CONTROL STORAGE, 30106 TO 30123
		F - UUO DISPATCH TABLE, 30124 TO 30141
		G - MEMORY MANAGEMENT STORAGE, 30124 TO 30216
		H - PRINT CONTROL STORAGE, 30217 TO 30241
		I - PRINT CHARACTERS, 30242 TO 30264
		J - USER MODE OUTPUT FILE INFO, 30265 TO 30273
		K - DISK UPDATE FILE INFO, 30274 TO 30302
		L - PUSHDOWN LIST, 30303 TO 30504
		M - EXPANSION AREA, 30505 TO 30577

     PARAM - THIS FILE CONSISTS OF DEFINITIONS AND REQUIRES NO CORE
 	     LOCATIONS.

     STOR - REQUIRED LOCATIONS VARIES DEPENDING UPON NUMBER OF VARIABLES
	    AND LITERALS USED IN THE MAIN PROGRAM.
	    A DEBUG AREA IS PROVIDED (IF DEBUG IS DEFINED) OF DEBUG(8) LOCATIONS.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 5                                                                     SEQ 0006

2.3	MEMORY UTILITIZATION MAP
	------------------------


	0	-----------------------------------------
		I
		I   EXEC PAGE TABLE
		I
	1000	-----------------------------------------
		I
		I   SUBRTN
		I
	10000	-----------------------------------------
		I
		I   KLDDT
		I
	20000	-----------------------------------------
		I
		I   DIAMON
		I
	30000	----------------------------------------
		I
		I   FIXED
		I
	30600	----------------------------------------
		I
		I   DIAGNOSTIC SEGMENT
		I
		/
		\
		I
	MEMLOW	----------------------------------------
		I
		I   MEMORY AVAILABLE FOR TESTING
		I
		/
		\
		I
	MAX MEM	----------------------------------------
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 6                                                                     SEQ 0007
3.0  PROGRAM PROCEDURES
     ------------------

3.1  PROGRAM ASSEMBLY PROCEDURE
     --------------------------

     THE PARAM, FIXED & STOR FILE ARE ASSEMBLED WITH THE MAIN PROGRAM
     TO PRODUCE A COMPLETE PROGRAM. THE FILES ARE ASSEMBLED IN THE FOL-
     LOWING ORDER:

	A.  PROGRAM TITLE FILE; CONTAINS PROGRAM IDENTIFICATION DATA
	    AND OPERATION PARAMETERS

	B.  SUBROUTINE PARAMETER FILE, PARAM; CONTAINS SUBROUTINE 
	    PARAMETERS, OPERATOR DEFINITIONS, AND SUBROUTINE ASSIGN-
	    MENTS

	C.  PROGRAM STARTING FILE, FIXED; CONTAINS PROGRAM STARTING
	    ADDRESSES AND PROGRAM CONTROL PARAMETER LOCATIONS.

	D.  MAIN PROGRAM FILE; CONTAINS THE CODING FOR THE MAIN PROGRAM

	F.  STORAGE FILE, STOR; CONTAINS THE RESERVED STORAGE SETUP
		1.  LIT, PROGRAM CONSTANTS
		2.  SPECIFIED PROGRAM VARIABLES
		3.  VAR, PROGRAM VARIABLE WORDS
		4.  PROGRAM END STATEMENT (IF PGMEND DEFINED)

	THE DIAGNOSTIC SEGMENT IS ASSEMBLED FOR EXEC AND/OR USER MODE
	BY DEFINING THE FOLLOWING PARAMETERS:

	A.  EXCASB = 1	;ASSEMBLE FOR EXEC MODE
	B.  USRASB = 1	;ASSEMBLE FOR USER MODE

					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 7                                                                     SEQ 0008
3.1	CON'T
	-----

	THE PDP-10 CENTRAL PROCESSOR THAT THE DIAGNOSTIC SEGMENT
	IS ASSEMBLED FOR IS CONTROLLED BY THE FOLLOWING
	CONDITIONAL ASSEMBLY PARAMETERS:

	A.  KA10 = 1	;ASSEMBLE FOR KA10 CP.
	B.  KI10 = 1	;ASSEMBLE FOR KI10 CP.
	C.  KL10 = 1	;ASSEMBLE FOR KL10 CP.
	D.  KL10P0 = 1	;ASSEMBLE PRODUCTION KL10 DEFINITIONS IF KL10

	THE MEMORY MAPPING SUBROUTINES ARE CONDITIONALLY
	ALLOWED DEPENDING UPON THE REQUIREMENTS OF THE MAIN PROGRAM.
	THIS IS CONTROLLED BY DEFINING THE FOLLOWING SYMBOL IN THE
	DIAGNOSTIC SEGMENT TITLE FILE:

	1.  MEMMAP=1	;ALLOW MEMORY MAPPING SUBROUTINE

	THE PROGRAM END STATEMENT IS ASSEMBLED INTO THE "STOR" FILE
	IF THE FOLOWING SYMBOL IS DEFINED.  IF IT IS NOT DEFINED
	THERE THEN MUST BE A DIAGNOSTIC SEGMENT STORAGE FILE, ALLOWING
	ADDITIONAL BUFFER AREAS, CONTAINING THE END STATEMENT.

	1.  PGMEND=1	;ASSEMBLE PROGRAM END STATEMENT

	THE FOLLOWING START ADDRESSES MUST BE USED IN THE
	DIAGNOSTIC SEGMENT FOR INITIAL STARTING AND END OF
	PASS RESTART ADDRESSES.

	1.  START	;INITIAL DIAGNOSTIC START
	2.  STARTA	;END OF PASS RESTART
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 8                                                                     SEQ 0009
3.1	CON'T
	-----

	THE FOLLOWING SYMBOLS ARE USED TO CONTROL THE ASSEMBLY
	OF THE PROPER "FIXED" FILE:

	SADR1		;SPECIAL FEATURE START ADDRESS
	SADR2		;POWER FAIL RESTART ADDRESS (RESRT1)
	SADR3		;REENTER START ADDRESS
	SADR5		;CONTROL C TRANSFER ADDRESS
	SADR6		;ALTMODE TRANSFER ADDRESS
	SADR7		; START1 - STARTING INSTRUCTION
	SADR8		; START2 - "
	SADR9		; START3 - "
	SADR10		; START4 - "
	SADR11		; START5 - "

	PAREA1		;RANDOM BASE NUMBER
	PAREA2		;SYS EXER SWITCHES
	PAREA3		;SIXBIT PROGRAM NAME
	PAREA4		;SIXBIT PROGRAM NAME EXTENSION
	PAREA5		;OPTIONAL PARAMETER
	PAREA6		;OPTIONAL PARAMETER

	ITERAT		;EXEC & USER MODE PROGRAM ITERATIONS

	THE ABOVE SYMBOLS MUST BE DEFINED, AS 0 IF NOT USED OR AS
	THE PROGRAM REQUIRED DATA.

	TO PROVIDE A DEBUG PATCH AREA, DEFINE THE FOLLOWING
	WORD IN THE PROGRAM TITLE FILE:

		1.	DEBUG= #	;# ='S SIZE OF PATCH AREA
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 9                                                                     SEQ 0010

3.3	PROGRAM STANDARIZED STARTING ADDRESSES
	----------------------------------------

PROGRAM STARTING ADDRESSES

30000	BEGIN:	JRST	@MODLNK		;STAND-ALONE START

30001	$START:	JRST	START		;MODE CHECK STARTING ADDRESS

30002	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START

30003	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START

30004	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START

30005	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART

30006	REENTR:	JRST	SADR3		;REENTER START

30007	DDTSRT:	JRST	@DDTLNK		;DDT START

30010	BEGIN1:	JRST	STARTA		;START NEXT PROGRAM PASS

30011	SBINIT:	JRST	@SUBLNK		;PGMINT LINKAGE

30012	RETURN:	0			;RETURN ADDRESS STORAGE

30013	START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS

30014	START2:	SADR8			; "

30015	START3:	SADR9			; "

30016	START4:	SADR10			; "

30017	START5:	SADR11			; "
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 10                                                                    SEQ 0011
3.3  SUBROUTINE OPERATING PROCEDURE
     ------------------------------

     THE ONLY SPECIAL OPERATING PROCEDURES REQUIRED ARE FOR THE SWITCH
     INITIALIZATION AND PRINT SUBROUTINES:

	A.  SWITCH INITIALIZATION - THE OPERATIONAL SWITCHES FOR THE 
	    PROGRAM ARE INITIALIZED AS FOLLOWS:
		1.  EXEC MODE - KI10 & KA10 -USE ACTUAL CONSOLE SWITCHES
		    EXEC MODE - KL10 - SWITCHES READ FROM DTE20 COMM
				AREA.  THESE ARE DEPOSITED INTO THE DTE20
				COMM AREA BY THE CONSOLE PROCESSOR.

		3.  USER MODE - THE OPERATOR SPECIFIES WHETHER TO USE
		    THE ACTUAL CONSOLE SWITCHES OR TO USE TYPED IN 
		    SWITCH SETTINGS BY RESPONSE ON THE TTY TO QUESTIONS
		    AS FOLLOWS:

		    TELETYPE SWITCH CONTROL ? 0,S,Y OR N <CR> -

		    IF THE OPERATOR TYPES "N", THE ACTUAL CONSOLE
		    SWITCHES ARE USED.

		    IF THE OPERATOR TYPES "Y", THE FOLLOWING QUESTIONS
		    ARE ASKED AND THE OPERATOR RESPONDS BY TYPING
		    THE ANSWER AS SIX OCTAL DIGITS REPRESENTING
		    THE DESIRED SWITCH SETTINGS.

		    SPECIFY LH SWITCHES IN OCTAL-

		    SPECIFY RH SWITCHES IN OCTAL-

		    IF THE OPERATOR TYPES "0", ZERO'S ARE USED FOR
		    THE SWITCH SETTINGS.

		    IF THE OPERATOR TYPES "S", PREVIOUSLY SET SWITCHES
		    ARE USED.  THIS IS ONLY VALID UPON RESTARTING
		    OF AN INTERRUPTED PROGRAM.

	B.  PRINT INITIALIZATION - THE PRINT SUBROUTINE PROVIDES OUTPUT
	    TO THE TTY AND/OR LPT IN EXEC MODE OR TO THE TTY AND/OR
	    A LOGICAL DEVICE IN USER MODE. USE OF THE TTY OR LPT/LOGICAL
	    DEVICE IS SPECIFIED BY THE SWITCHES. THE ACTUAL LOGICAL
	    DEVICE TO BE USED IN USER MODE IS SPECIFIED BY THE 
	    MONITOR ASSIGN COMMAND. THE LOGICAL DEVICE NAME IS
	    'DEV' AND THE CORRESPONDING OUTPUT FILE IS '"PNTNAM"."PNTEXT"'.
	    THE PHYSICAL DEVICE TO BE USED CAN BE ANY DEVICE 
	    THAT CAN ACCEPT ASCII OUTPUT FORMAT SUCH AS LPT,
	    DSK, DTA, ETC. AN EXAMPLE ASSIGNMENT WOULD BE:

		.ASSIGN DSK DEV

	IF LOGICAL DEVICE OUTPUT IS CALLED FOR (USER MODE) AND NO
	DEVICE IS ASSIGNED TO 'DEV' THE DISK WILL BE USED.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
4.0  DATA SWITCH FUNCTIONS  (STANDARD SET)	PAGE 11                                                                    SEQ 0012
     ---------------------
     SWITCH NO.		SYMBOL	STATE	FUNCTION DESCRIPTION
     ----------		------	-----	--------------------

     0 (400000)		ABORT	   0	NORMAL OPERATION
				   1	ABORT AT END OF PASS

     1 (200000)		RSTART	   0	NO FUNCTION
				   1	LIST TOTALS AND RESTART

     2 (100000)		TOTALS	   0	NO FUNCTION
				   1	LIST TOTALS AND CONTINUE

     3 (040000)		NOPNT	   0	NORMAL TYPEOUT
				   1	INHIBIT ALL PRINTING EXCEPT FORCED

     4 (020000)		PNTLPT	   0	NORMAL OUTPUT TO TTY
				   1	PRINT ON LPT (USER, LOGICAL DEV)

     5 (010000)		DING	   0	NO FUNCTION
				   1	RING TTY BELL ON ERROR (FORCED OUTPUT).

     6 (004000)		LOOPER	   0	PROCEED TO NEXT TEST
				   1	ENTER SCOPE LOOP ON TEST ERROR

     7 (002000)		ERSTOP	   0	NO FUNCTION
				   1	HALT ON TEST ERROR (EXIT, USER MODE).

    8 (001000)		PALERS	  0	PRINT ONLY FIRST ERROR IN LOOP
				  1	PRINT ALL ERRORS

    9 (000400)		RELIAB 	  0	QUICK VERIFY MODE
				  1	RELIABILITY MODE

    10 (000200)		TXTINH	  0	PRINT FULL ERROR MESSAGES.
				  1	INHIBIT COMMENT PORTION OF ERROR MESSAGES.

    11	(000100)	INHPAG	  0	KI10 & KL10 - ALLOW FULL 256K/4096K ADDRESSING
				  1	KI10 & KL10 - INHIBIT PAGING; I.E. TREAT MEMORY AS 112K-1 MAXIMUM

    12	(000040)	MODDVC	  0	NO DEVICE CODE CHANGE
				  1	MODIFY DEVICE CODES

    13	(000020)	INHCSH	  0	KL10 - ALLOW CACHE USE
				  1	KL10 - INHIBIT CACHE

    14	(000010)	OPRSEL	  0	RUN DEFAULT OPERATIONS
				  1	OPERATOR TEST SELECTIONS

    15	(000004)	CHAIN	  0	THIS SWITCH USED BY "DIAMON", ETC.
					TO CONTROL CHAIN OPERATIONS

    16	(000002)	KAHZ50		KA10 50 HERTZ SWITCH

    17	(000001)			RESERVED
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 12                                                                    SEQ 0013
5.0  SUBROUTINE DESCRIPTIONS
     -----------------------

     SEE SECTION 6.1 OR LISTING OF FILE 'PARAM' FOR CALLING PROCEDURES
     FOR THE FOLLOWING SUBROUTINES.

5.1  PROGRAM SUBROUTINE INITIALIZATION
     ---------------------------------

     THIS SUBROUTINE INITIALIZES THE FOLLOWING:
	A - PUSH LIST
	B - JOB DATA AREA
	C - INTERRUPTS AND TRAPS
	D - PRINT
	E - TELETYPE INPUT
	F - SWITCHES
	G - MEMORY SIZE POINTERS (IN 'MEMSIZ' TABLE)

     IN ADDITION THIS ROUTINE PRINTS THE PROGRAM NAME. 'PGMNAM' IS 
     THE TAG FOR THE ASCIZ MESSAGE. 'PGMNAM' MUST BE INCLUDED IN
     THE MAIN PROGRAM FILE.

5.2  CONTROL SWITCH INITIALIZATION
     -----------------------------

     THIS SUBROUTINE INITIALIZES THE SWITCH SUBROUTINE TO USE EITHER
     THE ACTUAL CONSOLE SWITCHES OR THE TYPED IN SWITCHES. THIS IS
     DESCRIBED IN 3.3 A.

5.3	MEMORY MAPPING SUBROUTINES
	--------------------------

	A.  MAPMEM  (PART OF PGMINT)

	PERFORMS MEMORY MAPPING AND PRINTS A MEMORY MAP.
	MEMORY MAPPING OF EITHER 4096K KL10/KI10 MEMORY OR 256K DIRECT
	ADDRESSED MEMORY IS CONTROLLED BY THE MAPNEW FLAG.

	MAPNEW = 0, DIRECT MEMORY ADDRESSING, 256K MAXIMUM
	        -1, 4096K KL10/KI10 PAGED MEMORY OPERATIONS

	4096K PAGED MEMORY OPERATIONS WILL ONLY TAKE PLACE IF:
	1. KL10 OR KI10
	2. MAPNEW FLAG = -1 BEFORE "PGMINT"

	DIRECT MEMORY OPERATIONS WILL TAKE PLACE IF ANY OF:
	1. USER MODE OR SPECIAL USER MODE
	2. KA10
	3. KL10 OR KI10 & PAGING INHIBITED
	4. KL10 OR KI10 & MAPNEW WASN'T -1 BEFORE "PGMINT"
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 13                                                                    SEQ 0014
5.3	MEMORY MAPPING SUBROUTINES (CON'T)
	--------------------------

	B.  MEMSEG

	DOES MEMORY SEGMENT SETUP FOR A REQUESTED SEGMENT OF MEMORY

	** MAPNEW = -1

	SETS UP TO 128K SEGMENT IN PAGE MAP
	ARGUMENTS:	0-37 - MAP CORRESPONDING 128K SEGMENT
		       GT 37 - MAP USING PHYSICAL ADDRESS
	RETURNED IN AC0
		0 - NO MEMORY AVAILABLE
		HIGHEST VIRTUAL ADDRESS
		BIT 0 SET IF NON-CONSECUTIVE CORE (IN A 128K SEGMENT) WAS
		COMBINED.  NON-CONSECUTIVE CORE WILL NOT BE COMBINED WHEN
		DOING A PHYSICAL ADDRESS MEMSEG.
		PAGE MAP SETUP SO VIRTUAL ADDRESS 400000 AND UP POINTS
		TO MEMORY REQUESTED.
	RETURNS +2

	** MAPNEW = 0

	ARGUMENTS:	0-10 - SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
		 	11-37 - RETURNS 0, MAXIMUM OF 8 CHUNKS IN 256K
			USER MODE, 1-37 ALWAYS RETURNS 0
			GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
	RETURNED IN AC0:
		0 - NO MEMORY AVAILABLE
		START ADDRESS,, END ADDRESS
	RETURNS +1

	C.  MAPADR

	PERFORMS VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
	ARGUMENT IN AC0: VIRTUAL ADDRESS
	RETURNED IN AC0: PHYSICAL ADDRESS
	SKIP RETURN IS NORMAL, NON-SKIP IS KI10 PAGE INACCESSIBLE

	NOTE: ON A KL10 IN USER MODE THE VIRTUAL ADDRESS IS RETURNED
		SINCE A MAP INSTRUCTION IS ILLEGAL IN USER MODE AND
		THE MONITOR DOES NOT PROVIDE A SUBSTITUTE.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 14                                                                    SEQ 0015
5.3	MEMORY MAPPING SUBROUTINES (CON'T)
	--------------------------

	D.  MEMZRO

	ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM

	MAPNEW = 0, DIRECT MEMORY ZERO
		-1, 4096K PAGED MEMORY ZERO

	E.  MAPSET

	SETS UP KL10 OR KI10 PAGE MAP FOR VIRTUAL TO PHYSICAL
	ADDRESS TRANSLATION.

	ARGUMENTS IN AC0:
		NEG - CLEAR PAGE MAP
		0-37 - MAP CORRESPONDING 128K SEGMENT

	F.  MAPCNK

	DOES ACTUAL MEMORY MAPPING.

	ARGUMENTS:
		AC0: START ADDRESS,,END ADDRESS
		AC1: TEMPORARY CHUNK ADDRESS STORAGE POINTER

	DOES FOUR WAY INTERLEAVE MAPPING BUT IF ANY OF THE
	4-WAY ADDRESSES ARE NON-X THAT CHUNK IS MARKED NON-X.
	MAPS BY 16K CHUNKS.

	G.  MAPPNT

	DOES MEMORY MAP PRINTOUT USING PARAMETERS CONTAINED IN "MEMSIZ"
	TABLE.  NORMALLY DONE AS PART OF "MAPMEM" WHICH IS DONE BY
	"PGMINT".
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 15                                                                    SEQ 0016
5.4	INTERRUPT SUBROUTINE
	--------------------

	THIS SUBROUTINE HANDLES PROCESSOR INTERRUPTS ON CHANNEL 1
	IN EXEC MODE AND APR TRAPPING IN USER MODE.  THE FOLLOWING 
	INTERRUPTS / TRAPS ARE PROCESSED:

	    A - PUSHDOWN OVERFLOW
	    B - MEMORY PROTECTION VIOLATION
	    C - NON-EXISTANT MEMORY
	    D - PARITY ERROR
	    E - TO PROCESS OTHER INTERRUPTS, CHANGE CONO'S / APRENB
	        ACCORDINGLY AND SETUP JRST'S IN THE INTERRUPT
	        DETERMINATION SEQUENCE TO GO TO THE PROPER HANDLING
	        ROUTINE, SUPPLIED BY USER.

	THE FOLLOWING ADDITIONAL CONDITIONS ARE PROCESSED IN EXEC MODE:

	    A - POWER FAILURE ; WHEN A POWER FAILURE IS DETECTED THE
		AC'S ARE SAVED AND THE PROGRAM HALTS.  RESTART AT
		'PFSTRT' TO RESTORE AC'S AND CONTINUE PROGRAM.

	    B -	KI10 - THE POWER FAIL AUTO RESTART IS ENABLED AND
		RESTARTS BY 'JRST PFSTRT' PERFORMED BY POWER FAIL
		TRAP INSTRUCTION FROM LOC 70.

5.5	UUO SUBROUTINE
	--------------

	THIS SUBROUTINE HANDLES UUO'S IN THE RANGE 001-037 BY CHECKING
	FOR VALIDITY AND DISPATCHING VIA JRST TO THE APPROPRIATE USER SUPPLIED
	UUO HANDLING ROUTINE.  IN ORDER TO USE UUO'S THE USER MUST SUPPLY
	THE ROUTINE AND INSERT A POINTER TO THE ROUTINE IN THE 
	APPROPRIATE POSITION OF THE UUO DISPATCH TABLE.  A UUO
	ROUTINE IS EXITED BY USING A (JRST UUOEXT) OR (JRST UUOSKP) TO RETURN TO THE
	UUO HANDLER.  ILLEGAL UUO'S ARE HANDLED BY PRINTING OUT THE
	PERTINENT INFORMATION AND HALTING.

	UUOEXT PROVIDES FOR NORMAL RETURN FROM UUO (RETURNS UUO +1)
	UUOSKP PROVIDES FOR A SKIP RETURN FROM UUO (RETURNS UUO +2)

	THE UUO HANDLER IS ENTERED AND EXITED WITHOUT AFFECTING THE CONTENTS
	OF THE AC'S UNLESS THE AC'S ARE CHANGED BY THE USER UUO ROUTINE.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 16                                                                    SEQ 0017
5.6  CONSOLE DATA SWITCH INPUT
     -------------------------

     THIS SUBROUTINE INPUTS THE CONSOLE DATA SWITCHES IN EXEC
     MODE. THE TYPED IN SWITCH SETTINGS ARE NOT AFFECTED IF IN USER
     MODE.

	IF THE PROGRAM IS UNDER CONTROL OF THE DIAGNOSTIC MONITOR
	(MONCTL = -PASS COUNT,X) THE RIGHT HALF OF MONCTL IS USED AS
	THE RIGHT HALF OF THE CONSOLE SWITCHES.  THE LEFT
	HALF CONSOLE SWITCHES ARE USED DIRECTLY.

	IF THE PROGRAM IS RUNNING UNDER THE SYSTEM EXERCISER,
	THE CONTENTS OF (SWTEXR) IS USED AS THE CONSOLE
	SWITCH SETTINGS.

5.7  TELETYPE INPUT
     --------------

     THIS SUBROUTINE INPUTS FROM THE TELETYPE. ACCEPTS ANY CHARACTER,
     Y OR N, UP TO 12 OCTAL DIGITS, UP TO 11 DECIMAL DIGITS (CONVERTED
     INTO AN OCTAL WORD), OR UP TO 9 CONVERTABLE DIGITS (DECIMAL
     IF A PERIOD <.> FOLLOWS, OCTAL OTHERWISE).

	ON NUMBER INPUTS, IF THE FIRST INPUT IS A MINUS THE
	NUMBER IS RETURNED NEGATED.  ALSO IF ONLY THE TERMINATION CHARACTER
	(CR OR COMMA) IS TYPED, THEN 0 IS RETURNED IN AC0 WITH THE
	"TTNBRF" FLAG STILL ZERO.

     ASKS THE QUESTION 'Y OR N <CR> -' IF A YES/NO RESPONSE IS REQUESTED.
     CARRIAGE RETURN OR COMMA (,) TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
     IN EXEC MODE THE SUBROUTINE WILL WAIT FOR THE AMOUNT OF TIME
     INITIALIZED IN (OPTIME) AND IF NO REPONSE WITHIN THAT TIME WILL
     TAKE THE NO/ERROR RESPONSE RETURN.

	IF A CONTROL C <^C> IS TYPED DURING TYPEIN (EXEC) A "JRST @CNTLC" IS
	PERFORMED TO RESTART OR TERMINATE PROGRAM. 'CNTLC' IS PART OF THE
	PROGRAM CONTROL PARAMETER AREA AND MAY BE SET TO THE USERS OPTION.
	INTERRUPTED ADDRESS IS STORED IN "JOBOPC" LOCATION 130.

	IF A CONTROL D <^D> IS TYPED DURING TYPEIN A JRST TO "DDT" IS
	PERFORMED, IF "DDT" IS NOT LOADED A "HALT BEGIN" IS DONE.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 17                                                                    SEQ 0018
5.8  PRINT
     -----

     THIS SUBROUTINE PRINTS ASCII MESSAGES, DECIMAL NUMBERS, OR A 
     DESIGNATED AMOUNT OF OCTAL DIGITS. DECIMAL NUMBERS CAN EITHER BE 
     PRINTED WITH THE LEADING ZEROS SUPPRESSED OR WITH SPACES SUB-
     STITUTED FOR THE LEADING ZEROS. A FULL OCTAL WORD CAN EITHER BE
     PRINTED AS TWELVE CONSECUTIVE DIGITS OR IN HALF WORD FORMAT,
     6 SP 6.

     PRINTOUTS MAY BE EITHER IN NORMAL MODE, CAPABLE OF BEING SUPPRESSED
     BY THE NOPNT SWITCH, OR IN THE FORCED OUTPUT MODE WHERE THE PRINT-
     OUT GOES TO THE TTY EVEN IF THE LPT/LOGICAL DEVICE IS SELECTED OR
     IF PRINTOUTS ARE SUPPRESSED BY THE NOPNT SWITCH.

     THE PRINTED OUTPUT GOES TO THE TTY AND/OR LPT IN EXEC MODE AND TO
     THE TTY AND/OR USER ASSIGNED LOGICAL DEVICE IN USER MODE. THE LOGICAL
     OUTPUT FILE IN USER MODE IS '"PNTNAM"."PNTEXT"' AND THE LOGICAL DEVICE IS 'DEV'.

     IN EXEC MODE TYPEOUT MAY BE SUPPRESSED, ON THE TTY, TILL THE NEXT
     FORCED OUTPUT, TTY INPUT REQUEST OR TILL THE NEXT (^O) IS TYPED.
     THE "PFORCE" COMMAND MAY BE DONE TO OVERRIDE CONTROL O WITHOUT
     CAUSING ANY PRINTOUT.

	IF A CONTROL C <^C> IS TYPED DURING PRINTOUT A "JRST @CNTLC"
	IS PERFORMED AS DESCRIBED ABOVE (IN 5.7). (EXEC ONLY).

	IF AN ALT-MODE IS TYPED DURING PRINTOUT (EXEC ONLY)
	A "JRST @ALTMGO" IS PERFORMED TO TRANSFER TO USER'S ROUTINE, I.E. DDT.
	INTERRUPTED ADDRESS STORED IN 'JOBOPC' FOR CONTINUATION USE.

	IF A CONTROL D <^D> IS TYPED DURING PRINTOUT (EXEC ONLY)
	A JRST TO "DDT" IS PERFORMED, IF "DDT" IS NOT LOADED
	A "HALT BEGIN" IS DONE.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 18                                                                    SEQ 0019

5.9  SIXBIT TYPE-IN / PRINT
     ----------------------

     A.	TTSIXB - SIXBIT TYPE-IN

	THIS ROUTINE INPUTS FROM THE TELETYPE AND CONVERTS ASCII 
   	INPUT INTO A SIXBIT WORD.  ACCEPTS UP TO SIX CHARACTERS,
	TERMINATES WITH A CR OR A COMMA.

     B.	PNTSIX & PNTSXF - SIXBIT PRINT

	THIS ROUTINE PRINTS OUT THE CONTENTS OF AC0 AS A SIXBIT WORD.
	PRINTOUT MAY BE IN NORMAL OR FORCED PRINTOUT MODE.

    C.  SIXBTZ

	THIS MACRO GENERATES SIXBIT DATA FOR PRINTING.  PROVIDES A
	CONSIDERABLE SAVING IN CORE STORAGE OVER ASCIZ.  ALL SIXBIT
	CHARACTERS MAY BE USED WITH THE FOLLOWING EXECPTIONS:

	1. BACKARROW (_) IS INSERTED AS THE LAST CHARACTER IN THE
	   MESSAGE STRING TO SIGNIFY END OF TEXT.

	2. UPARROW (^) SIGNIFIES CR/LF.

	3. RIGHT SQUARE BRACKET (]) SIGNIFIES TAB.

	THIS TEXT GENERATION METHOD IS USED BY THE DIAGNOSTIC ERROR
	MACRO.

5.10	KI10 - MARGIN PRINT
	-------------------

	THIS ROUTINE PRINTS THE KI10 MARGIN VALUE FROM THE WORD IN 'MARGIN'.
	FORMAT:

	MARGIN WORD = 123456 123456 , BAY 1 ROW A = 5052 MVOLTS, SPEED MARGINS
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 19                                                                    SEQ 0020

5.11	DEVICE CODE CHANGE SUBROUTINE
	-----------------------------

	THIS SUBROUTINE ALLOWS RUN TIME CHANGE OF DEVICE CODES.
	ROUTINE IS CALLED BY SETTING SWITCH "MODDVC".
	TO USE THE ROUTINE PLACE A "MODPCU" CALL IN THE APPROPRIATE
	PLACE IN THE PROGRAM AND HAVE THE FOLLOWING LIMIT PARAMETERS
	DEFINED:
		MODDVL = LOWER LIMIT OF DEVICE CODE SEARCH
		MODDVU = UPPER LIMIT OF DEVICE CODE SEARCH

	THE PROGRAM WILL ASK THE FOLLOWING QUESTIONS WHEN INVOKED:

		CHANGE DEVICE CODES, Y OR N <CR> -
		OLD DEVICE CODE -
		NEW DEVICE CODE -

	ANSWER QUESTIONS APPROPRIATELY.  THE CHANGE DEVICE CODES QUESTION
	WILL BE REASKED TILL YOU SAY NO, CHANGING AS MANY DEVICE CODES
	AS WANTED.

	TO CHANGE DEVICE CODES UNDER PROGRAM CONTROL, CALL
	"MODPCP" WITH C(AC0) = [OLD,,NEW] DEVICE CODES.

5.12	KL10 CLOCK SUBROUTINE
	---------------------

	THIS SUBROUTINE PROVIDES POWER-LINE CLOCK USAGE AND CONTROL
	OF THE POWER-LINE CLOCK IN THE CONSOLE PROCESSOR.  THE 
	FEATURES AND CONTROL ARE PROVIDED AS FOLLOWS:

	A.  AC0 = 0	;DISABLE

	B.  AC0 = -1	;ENABLE, THE "CLOCKF" FLAG IS SET TO -1 ON
			EVERY CLOCK TICK

	C.  AC0 = INST	;ENABLE AND EXECUTE INSTRUCTION, SETS "CLOCKF"
			;FLAG TO -1 ON EVERY CLOCK TICK AND EXECUTES
			;THE SUPPLIED INSTRUCTION.  THE INSTRUCTION
			;MAY SIMPLY BE AN "AOS" OF A COUNT OR MAY BE
			;A SUBROUTINE CALL TO PERFORM A ROUTINE AND
			;RETURN.

	D.  AC0 = 0,,X	;WAIT "X" CLOCK TICKS AND THEN PERFORM
			;AS "C" ABOVE.  THE INSTUCTION IN THIS CASE IS
			;SUPPLIED IN AC1.

	E.  AC0 = 0,,1	;READ CONSOLE PROCESSOR CLOCK COUNT SINCE ENABLED
			;BY "B,C OR D" ABOVE.  THE CLOCK COUNT (36 BITS)
			;IS RETURNED IN AC0.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
							PAGE 20                                                            SEQ 0021

5.13	KL10 METER SUBROUTINE
	---------------------

	THIS SUBROUTINE PROVIDES DK20 METER USAGE AND CONTROL
	THE FEATURES AND CONTROL ARE PROVIDED AS FOLLOWS:

	A.  AC0 = 0	;DISABLE

	B.  AC0 = -1	;ENABLE, THE "CLOCKF" FLAG IS SET TO -1 ON
			;EVERY CLOCK TICK

	C.  AC0 = INST	;ENABLE AND EXECUTE INSTRUCTION, SETS "CLOCKF"
			;FLAG TO -1 ON EVERY CLOCK TICK AND EXECUTES
			;THE SUPPLIED INSTRUCTION.  THE INSTRUCTION
			;MAY SIMPLY BE AN "AOS" OF A COUNT OR MAY BE
			;A SUBROUTINE CALL TO PERFORM A ROUTINE AND
			;RETURN.

	D.  AC0 = 0,,X	;WAIT "X" CLOCK TICKS AND THEN PERFORM AS
			; "C" ABOVE.  THE INSTRUCTION IN THIS CASE IS
			;SUPPLIED IN AC1.

	E.  AC0 = 0,,1	;READ METER CLOCK COUNT SINCE ENABLED BY
			;"B,C OR D" ABOVE.  THE CLOCK COUNT IS RETURNED
			;IN AC0.

	THE DK20 METER IS SETUP FOR A PERIOD OF 3203 WHICH IS 60 HZ.
	IF THE PROCESSOR IS 50 HZ THEN THE INTERVAL IS 3720.
	THE METER IS ASSIGNED TO PI CHANNEL ONE AND DOES A VECTOR
	INTERRUPT TO EPT LOCATION 514.  THE I/O BUS RESET DOES NOT
	AFFECT THE DK20 METER.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
							PAGE 21                                                            SEQ 0022

5.14	"DIAMON" FILE SELECTION AND READ SUBROUTINES
	--------------------------------------------

	THIS SUBROUTINE PROVIDES THE CAPABILITY OF SELECTING AND
	READING DATA FILES.  THE FILES MAY BE READ FROM ANY
	OF THE DEVICES SUPPORTED BY "DIAMON".  THE "DIAMON" PROGRAM
	MUST BE RESIDENT IN THE PDP-10 AND MUST PREVIOUSLY HAVE
	BEEN USED TO SELECT THE LOAD DEVICE TO BE USED.

	A.  FSELECT

	THIS SUBROUTINE CALL IS USED TO SELECT THE DESIRED FILE.  UPON
	CALL AC0 CONTAINS AN ADDRESS POINTER TO A TWO WORD SIXBIT FILE
	NAME AND EXTENSION BLOCK.  A SKIP RETURN IS NORMAL AND INDICATES
	THAT THE DESIRED FILE HAS BEEN FOUND AND SETUP FOR SUBSEQUENT
	READ OPERATIONS.

		MOVEI	AC0,FILSPC		FILSPC:	SIXBIT/FILE/
		FSELECT					SIXBIT/EXT/
		JRST	ERROR
		'OK'

	WHEN THE FILE IS FOUND A SKIP RETURN IS TAKEN WITH THE
	CONTENTS OF AC0 INDICATING THE DEVICE TYPE.

		DEVICE TYPE		ASCII	36BIT	8BIT

		0 = UNSPECIFIED		Y	Y	Y	
		1 = PDP-10 DTA		Y	Y	Y
		2 = PDP-10 DISK		Y	Y	Y
		3 = 11 FORMAT DTA	Y	N	Y
		4 = PAPER TAPE		Y	N	Y
		5 = USER (DSK)		Y	Y	Y
		6 = MAG TAPE		Y	Y	Y

	ON THE KL10 WHEN "KLDCP" IS SELECTED AS THE LOAD DEVICE
	THE CONTENTS OF AC0 INDICATE THE CONSOLE LOAD DEVICE.

		DEVICE TYPE		ASCII	36BIT	8BIT

		100 = UNSPECIFIED	Y	N	N
		101 = DTA		Y	N	Y
		102 = DISK		Y	N	Y
		103 = FLOPPY		Y	N	Y
		104 = APT10		Y	N	N

	IF AN ERROR OCCURS OR THE FILE IS NOT FOUND A NON-SKIP RETURN
	IS TAKEN WITH AC0 CONTAINING THE DEVICE TYPE OR THE FOLLOWING.


		0 = NO "DIAMON" CAPABILITY
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 22                                                                    SEQ 0023

5.14	"DIAMON" FILE SELECTION AND READ SUBROUTINES
	--------------------------------------------

	B.  FREAD

	THIS SUBROUTINE CALL IS USED TO READ ASCII DATA FROM THE 
	SELECTED FILE.  A SKIP RETURN IS NORMAL WITH AC0 CONTAINING
	A 7 BIT ASCII DATA CHARACTER.  A NON-SKIP RETURN INDICATES
	AN ERROR OR END-OF-FILE WITH AC0 CONTAINING AN ERROR CODE.
	NULLS IN THE DATA FILE ARE IGNORED.

		FREAD		;CALL
		JRST	EOF	;AC0 HAS ERROR CODE
		'OK'		;AC0 HAS 7 BIT ASCII CHARACTER

	IF ERROR, AC0 CODE:

		0 = END-OF-FILE

	C.  FRD36

	THIS SUBROUTINE CALL IS USED TO READ 36 BIT DATA FROM THE
	SELECTED FILE.  DATA RETURNED IN AC0 IS 36 BITS, REST AS
	"FREAD" ABOVE.

	D.  FRD8

	THIS SUBROUTINE CALL IS USED TO READ 8 BIT DATA FROM THE
	SELECTED FILE.  DATA RETURNED IN AC0 IS 8 BITS, REST AS
	"FREAD" ABOVE.

	IF AN UNSUPPORTED FILE READ IS MADE TO A DEVICE AN END
	OF FILE RETURN WILL OCCUR ON THE FIRST READ.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 23                                                                    SEQ 0024
6.0	SUBROUTINE CALLS, REGISTERS, ETC.
	---------------------------------

6.1	SUBROUTINE CALLS
	----------------

	THE FOLLOWING COMMANDS ARE USED TO CALL THE VARIOUS SUBROUTINES.

	PGMINT	;PROGRAM SUBROUTINE INITIALIZATION
	FATAL	;FATAL PROGRAMMING HALT
	ERRHLT	;PROGRAM ERROR HALT

	GO	;SUBROUTINE CALL
	RTN	;SUBROUTINE RETURN
	PUT	;PUT DATA ON PUSH LIST
	GET	;GET DATA FROM PUSH LIST

	SWITCH	;READ CONSOLE/TTY SWITCHES

	TTICHR	;TTY, INPUT ANY CHAR			*** CALL SEQUENCE ***
	TTIYES	;TTY, ASK YES-NO, SKIP RETURN Y		TT----
	TTINO	;TTY, ASK NO-YES, SKIP RETURN N		NO/ERR RESPONSE RETURN
	TTIOCT	;TTY, INPUT OCTAL WORD			NORMAL RESPONSE RETURN
	TTIDEC	;TTY, INPUT DECIMAL WORD
	TTICNV	;TTY, INPUT CONVERTABLE WORD
	TTLOOK	;TTY, KEYBOARD CHECK, SKIP RETURN IF TYPE-IN
	TTALTM	;TTY, ALT-MODE CHECK, SKIP RETURN IF ALT-MODE
	TTSIXB	;TTY, INPUT SIXBIT, UP TO SIX
	TTYINP	;TTY, IMAGE MODE INPUT
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 24                                                                    SEQ 0025
6.0	SUBROUTINE CALLS, REGISTERS, ETC. (CON'T)
	---------------------------------
6.1	SUBROUTINE CALLS (CON'T)
	----------------

	PNTA	;PRINT ASCII WORD
	PNTAF	;FORCED
	PNTAL	;PRINT ASCIZ LINE
	PNTALF
	PSIXL	;PRINT SIXBIT'Z LINE
	PSIXLF
	PNTMSG	;PRINT MESSAGE IMMEDIATE
	PNTMSF
	PSIXM	;PRINT SIXBIT'Z MESSAGE IMMEDIATE
	PSIXMF
	PNTCI	;PRINT CHARACTER IMMEDIATE
	PNTCIF
	PNTCHR	;PRINT LOWER 7 BITS OF AC0 AS ASCII CHAR
	PNTCHF
	PNT1	;PRINT ONE OCTAL DIGIT
	PNT1F
	PNT2	;PRINT TWO OCTAL DIGITS
	PNT2F
	PNT3	;PRINT THREE OCTAL DIGITS
	PNT3F
	PNT4	;PRINT FOUR OCTAL DIGITS
	PNT4F
	PNT5	;PRINT FIVE OCTAL DIGITS
	PNT5F
	PNT6	;PRINT SIX OCTAL DIGITS
	PNT6F
	PNT7	;PRINT SEVEN OCTAL DIGITS
	PNT7F
	PNT11	;PRINT 11(8) OCTAL DIGITS
	PNT11F
	PNTADR	;PRINT 22 BITS AS ADDRESS
	PNTADF
	PNTOCT	;PRINT FULL WORD OCTAL
	PNTOTF
	PNTHW	;PRINT OCTAL HALF WORDS, 6 SP 6
	PNTHWF
	PNTOCS	;PRINT OCTAL, SUPPRESS LEADING 0'S
	PNTOCF
	PNTDEC	;PRINT DECIMAL, SUPRESS LEADING 0'S
	PNTDCF
	PNTDS	;PRINT DECIMAL, SPACES FOR LEADING 0'S
	PNTDSF
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 25                                                                    SEQ 0026

6.0	SUBROUTINE CALLS, REGISTERS, ETC. (CON'T)
	---------------------------------
6.1	SUBROUTINE CALLS (CON'T)
	----------------

	PNTSIX	;PRINT SIXBIT WORD
	PNTSXF
	PNTCW	;PRINT DF10 CONTROL WORD
	PNTCWF
	PCRL	;PRINT CR/LF
	PCRLF
	PCRL2	;PRINT CR/LF TWICE
	PCRL2F
	PSP	;PRINT SPACE
	PSPF
	PBELL	;PRINT BELL
	PFORCE	;PRINT FORCE, CONTROL O OVERRIDE

	PNTNM	;PRINT PROGRAM NAME IF NOT STAND-ALONE

	DROPDV	;CLOSE LOGICAL FILE, USER MODE

	PNTMGN	;KI10 - PRINT MARGIN VALUE

	MAPMEM	;MAP MEMORY
	MEMZRO	;ZERO MEMORY
	MAPADR	;VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
	MEMSEG	;SETUP MEMORY SEGMENT
	MAPCNK	;MAP MEMORY CHUNK
	MAPSET	;SETUP PAGE MAP (KL/KI)
	MAPPNT	;PRINT MEMORY MAP

	MODPCU	;CHANGE DEVICE CODES, OPERATOR
	MODPCP	;CHANGE DEVICE CODES, PROGRAM

	CLOKOP	;KL10 POWER LINE CLOCK CONTROL
	MTROP	;KL10 DK20 METER CLOCK CONTROL

	CINVAL	;KL10 CACHE INVALIDATE
	CFLUSH	;KL10 CACHE FLUSH
	CWRTBI	;KL10 WRITE-BACK & CACHE INVALIDATE

	FSELECT	;"DIAMON" FILE SELECTION
	FREAD	;"DIAMON" FILE READ - ASCII DATA
	FRD36	;"DIAMON" FILE READ - 36 BIT DATA
	FRD8	;"DIAMON" FILE READ - 8 BIT DATA

	ENDUUO	;END OF PROGRAM PASS

	EOPUUO	;END OF PROGRAM
					MAINDEC-10-DDQDA.TXT (SUBRTN)
6.2	CONTROL REGISTERS, WORDS		PAGE 26                                                                    SEQ 0027
	------------------------

	USER =		USER/EXEC MODE FLAG, 0 = EXEC MODE
					    -1 = USER MODE

	KLFLG  =	PROCESSOR TYPE FLAG, 0 = KA10 OR KI10
					    -1 = KL10

	KAIFLG =	PROCESSOR TYPE FLAG, 0 = KA10
					    -1 = KI10

	CONSW =		CONSOLE SWITCH SETTINGS; CONSOLE SWITCHES IN 
			EXEC/NON-TTY USER MODE, TYPED IN SWITCHES IN
			TTY SWITCH INPUT USER MODE.

	PDISF =		PRINT DISABLED FLAG, INITIALLY SET TO 0,
			1 = EXCEEDED ALLOWED PRINTOUTS

	PNTENB =	PRINT ENABLE, INITIALLY SET TO -5000, INCREMENTED
			BY EACH CR PRINTED, WHEN 0 DISABLES NORMAL PRINTOUTS.

	PNTSPC =	PRINT SPACE CONTROL, 0 = DON'T PRINT A SPACE
			FOLLOWING OCTAL PRINTOUT, 1 = PRINT A SPACE
			FOLLOWING AN OCTAL PRINTOUT.

	PNTFLG =	PRINT FLAG, SET TO -1 WHILE IN PRINT ROUTINE.
			ZERO (0) OTHERWISE.

	PNTINH =	EXEC TTY ALLOW ^O FEATURE, 0 = ALLOW
						  -1 = INHIBIT PRINT INPUT TTY CHECKS

	TTYFIL =	EXEC TTY FILLERS FLAG, INITIALLY SET TO 0 TO ALLOW
			FILLERS.  IF -1 INHIBITS FILLERS FOR CR & LF.

	TTYSPD =	EXEC TTY BAUD RATE	EXEC FILLERS
			  0 = 110 BAUD		  NONE
			  1 = 150 BAUD		  NONE
			  2 = 300 BAUD		  CR = 9   LF = 0
			  3 = 600 BAUD		  CR = 1   LF = 1
			  4 = 1200 BAUD		  CR = 2   LF = 2
			  5 = 2400 BAUD		  CR = 4   LF = 4

	USRLFF =	USER MODE FILLERS FOR LF'S
	USRCRF =	USER MODE FILLERS FOR CR'S
			  NORMAL DEFAULT IS 0, NO FILLERS
			FOR FILLERS, SET TO NUMBER OF FILLERS DESIRED.
						LF'S	CR'S
				110 BAUD	0	0
				150 BAUD	0	0
				300 BAUD	0	9
				600 BAUD	1	1
				1200 BAUD	2	2
				2400 BAUD	4	4
					MAINDEC-10-DDQDA.TXT (SUBRTN)
6.2	CONTROL REGISTERS, WORDS (CON'T)	PAGE 27                                                                    SEQ 0028
	------------------------

	TTNBRF =	TELETYPE NUMBER INPUT DIGIT TYPED FLAG.
			0 = TERMINATOR TYPED ONLY
			-1 = VALID DIGIT TYPED

	OPTIME =	TELETYPE TYPE-IN WAIT TIME, EXEC MODE, INITIALIZED
			AS NUMBER OF SECONDS OF WAIT TIME, 180 SEC.

	CNTLC =		ADDRESS USED BY "CONTROL C" TYPEIN DURING
			TTY INPUT OR PRINT OUTPUT (EXEC MODE).

	ALTMGO =	ADDRESS USED BY "ALT-MODE" TYPEIN DURING
			PRINT OUTPUT (EXEC MODE) (ALTGO DEFINED).

	$CRLF =		EXEC TTY FREE CRLF FLAG, 0 = FREE CRLF AFTER 72 CHARS
						-1 = INHIBIT FREE CRLF

	$TABF =		EXEC TTY TAB CONVERSION FLAG, 0 = CONVERT TO SPACES
						     -1 = INHIBIT

	$FFF =		EXEC TTY FORM FEED CONVERSION FLAG, 0 = CONVERT TO 8 LF'S
							   -1 = INHIBIT

	$VTF =		EXEC TTY VERTICAL TAB CONV FLAG, 0 = CONVERT TO 4 LF'S
							-1 = INHIBIT

	MAPNEW =	MEMORY MAPPING CONTROL FLAG
				0 = DIRECT ADDRESSING ONLY
			       -1 = 4096K KL10/KI10 PAGED OPERATIONS
			FLAG MUST BE SET TO -1 BEFORE "PGMINT" TO GET
			4096K KI10 MAPPING.  FLAG WILL BE ZERO'D IF DIRECT
			ADDRESSING ONLY CAN TAKE PLACE.

	MEMLOW =	LOWEST USABLE ADDRESS, EVEN BREAK ABOVE JOBFF

	MEMTOT =	TOTAL SIZE OF MEMORY IN K (1024.)

	MEMSIZ	=	TABLE OF MEMORY SEGMENT POINTERS

	DF22F =		DF10 CONTROL FLAG, SET/CLEARED BY USER
			 0 = 18 BIT DF10
			-1 = 22 BIT DF10

	A PUSH DOWN LIST IS PROVIDED OF 200(8) WORDS.
	PLIST =		PUSH DOWN LIST POINTER WORD;  PUSH AC (P) SET TO
			PLIST-PLISTE,PLIST.
	PLISTS =	PUSH DOWN LIST STORAGE
	PLISTE =	SIGNIFIES END OF PUSH DOWN LIST.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
6.3	SUBROUTINE MISC.			PAGE 28                                                                    SEQ 0029
	----------------

	ALL BASIC SUBROUTINES (SWITCH, TTI, PNT, ETC) EITHER ARE
	ENTERED WITH THE REQUIRED ARGUMENTS IN AC0 OR EXITED WITH THE
	REQUIRED RESULTS IN AC0.  ALL OTHER AC'S ARE MAINTAINED
	AS THEY WERE BEFORE THE SUBROUTINE.
	THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
	TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:

		MOVEI	NAME
		PNTA			;OR PNTAF

	CRLF, CRLF2, COMMA, PERIOD, SPACE, TAB, HYPEN(-), MINUS(-),
	AST(*), ATSIN(@), LFP(LEFT PARAN), RTP(RIGHT PARAN),
	PLUS(+), BELL, QUEST(?), SLASH(/), DOLLAR($).

6.4	SUBROUTINE FATAL HALTS
	----------------------

	THE FOLLOWING FATAL HALT ADDRESSES ARE USED TO REPORT TOTAL
	INOPERATION OF THE PDP-10 PROCESSOR.  IF ANY OF THESE HALTS
	HAPPEN YOU SHOULD THEN RUN MORE BASIC DIAGNOSTICS THAT DO NOT
	REQUIRE THE SUBROUTINE PROGRAM.

	ADDRESS	TAG	REASON
	------- ---     ------
	1010	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
	1011	PLERR	;FATAL PUSH LIST POINTER ERROR
	1012	PLERR1	;INITIAL PUSH LIST POINTER INCORRECT
	1013	MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
	1014	DTEBER	;DTE20 INTERRUPT WITHOUT DOORBELL
	1015	DTECER	;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
	1016	CPIERR	;CPU INITIALIZATION ERROR
	1017	EOPERR	;END OF PROGRAM ERROR
	1020	LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT

7.0	DIAGNOSTIC ERROR HANDLER

	THE PDP-10 DIAGNOSTIC ERROR UUO HANDLER IS DESIGNED AS A
	DIAGNOSTIC PROGRAM SUBROUTINE CAPABLE OF REPORTING A
	STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
	INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND
	CONTROLS TEST SWITCHES SUCH AS TYPEOUT SUPPRESSION,
	CONTINUE/HALT OR LOOP ON ERROR, AND BELL ON ERROR.

	TO PROVIDE PROGRAM COMPATABILITY, THE GIVEN FORMATS OF
	ERROR, ERLOOP AND REPTUO SHOULD BE USED.
	THIS WILL REDUCE THE AMOUNT OF SOURCE CODING REQUIRED AND
	PROVIDE A STANDARDIZED FORMAT.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 29                                                                    SEQ 0030

7.1	GENERAL ERROR CALL FORMAT

	THE GENERAL ERROR CALL FORMAT SPECIFIES UP TO SEVEN ITEMS
	CONCERNING A TEST FAILURE.

	THEY ARE:

	1)  NAME OF THE MAJOR TEST SEQUENCE BEING EXECUTED

	2)  NAME OF THE FUNCTION BEING TESTED

	3)  ADDRESS OF THE CORRECT TEST DATA RESULTS.

	4)  ADDRESS OF THE ACTUAL TEST DATA RESULTS

	5)  DIAGNOSTIC COMMENT CONCERNING THE TEST FAILURE.

	6)  ADDITIONAL ERROR PRINT ROUTINE

	7)  ADDRESS TO TRANSFER TO ON ERROR LOOP

	THE INSTRUCTION AND CODE SEQUENCE SPECIFYING THESE SEVEN
	ITEMS IS EXPLAINED BELOW:

	ERUUO	X,LITADR	;LINE 1, ERROR CALL

	LITADR:	XWD	T,F	;LINE 2, TITLE AND FUNCTION
		XWD	C,A	;LINE 3, ADDR'S OF CORRECT AND ACTUAL TEST DATA
		XWD	D,PNT	;LINE 4, DIAGNOSTIC COMMENT & ADDITIONAL PRINT ROUTINE

	ERLOOP	ADR		;LINE 5, ERROR LOOP CONTROL

	LINE 1:	TRANSFERS TO THE ERROR HANDLER WITH X
		SPECIFYING THE FORMAT OF THE OCTAL TEST DATA:
		X=1  TYPE 1 DIGIT (RIGHTMOST OCTAL DIGIT)
		X=2  TYPE 2 DIGITS
		THRU
		X=12 TYPE 10 DIGITS
		X=13 TYPE 12 DIGITS AS 6 SPACE 6
		X=14 TYPE 12 DIGITS (NO SPACE)
		X=0  SAME AS X=14

	LINE 2:	LEFT HALF OF XWD WILL BE THE ADDRESS OF A
		SIXBTZ LITERAL SPECIFYING THE NAME OF THE MAJOR
		TEST SEQUENCE BEING EXECUTED.

		RIGHT HALF OF XWD WILL BE THE ADDRESS OF A SIXBTZ
		LITERAL SPECIFYING THE NAME OF THE FUNCTION BEING
		TESTED.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
(7.1 CONT'D)					PAGE 30                                                                    SEQ 0031

	LINE 3:	LEFT HALF OF XWD SPECIFIES THE ADDRESS OF THE
		CORRECT TEST DATA.

		RIGHT HALF OF XWD SPECIFIES THE ADDRESS OF THE ACTUAL
		TEST DATA.

	LINE 4:	LEFT HALF OF XWD WILL BE THE ADDRESS OF A SIXBTZ LITERAL
		CONTAINING THE DESIRED DIAGNOSTIC COMMENT.

		RIGHT HALF OF XWD WILL BE THE ADDRESS OF AN ADDITIONAL
		ERROR PRINT ROUTINE.

	LINE 5: TRANSFERS TO ERROR LOOP ROUTINE. TRANSFERS TO ADR FOR
	        SCOPE LOOP, CONTINUES IN-LINE IF LOOPING NOT DESIRED.

	THE TYPEOUT RESULTING FROM THE GENERAL ERROR CALL FORMAT
	(ASSUMING X=13) IS:

	TEST PASS COUNT = #
	PC=XXXXXX
	ERROR IN TITLE-FUNCTION
	CORRECT:   XXXXXX XXXXXX
	ACTUAL:    YYYYYY YYYYYY
	DISCREP:   ZZZZZZ ZZZZZZ
	DIAGNOSTIC COMMENT
	ADDITIONAL COMMENT

	PC IS THE ABSOLUTE ADDRESS OF THE ERROR CALL INSTRUCTION.

	DISCREP IS THE OCTAL DISCREPANCY BETWEEN THE CORRECT AND ACTUAL
	TEST DATA. (DISCREP IS THE XOR OF C AND A).

	A ZERO ENTRY FOR ANY ITEM IN THE GENERAL ERROR CALL FORMAT WILL
	SUPPRESS THE CORRESPONDING ITEM FROM TYPEOUT.  THIS REQUIRES
	THAT TEST DATA CAN NOT BE REPORTED FROM AC0.  THE DATA DISCREP-
	ANCY WILL BE TYPED ONLY IF BOTH CORRECT AND ACTUAL TEST DATA IS
	SPECIFIED.

	THE TITLE, FUNCTION, AND DIAGNOSTIC COMMENT PORTION OF THE
	ERROR TYPEOUT MAY BE INHIBITED BY SETTING THE 'TXTINH'
	SWITCH.  THIS ALLOWS FOR SHORTER PRINTOUTS ON REPETITIVE
	FAILURES.

	THE TEST PASS COUNT IS ONLY PRINTED ON ERRORS WHICH
	OCCUR WHEN THE PASS COUNTER IS NON-ZERO.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 31                                                                    SEQ 0032

7.2	ERROR CALL FORMAT

	TO REDUCE THE AMOUNT OF SOURCE CODE REQUIRED TO GENERATE THE GENERAL
	ERROR CALL FORMAT, A MACRO CALL IS DEFINED WHICH ENABLES THE ITEMS
	TO BE SPECIFIED IN A CONDENSED FORMAT.  THIS SECTION EXPLAINS THE
	USE OF THE MACRO CALL THRU AN EXAMPLE FOLLOWED BY EXPLANATION.

	;EXAMPLE OF ERROR CALL MACRO FORMAT

	T= SIXBTZ <CHAN TERM TEST>
	C=10
	A=CHNWRD+1

	CHNTST:	MOVE	[XWD -1,BUFF-1]
		MOVEM	CHNWRD		;SET UP CW TO TRANSFER ONE WORD.
		SETZM	CHNWRD+1	;TERMINATE CHANNEL COMMAND LIST.
		MOVE	C,[XWD 0,BUFF+1]
		DATAO	X,Y		;INTIATE TRANSFER
		CONSO	X,DONE		;SKIP IF TRANSFER COMPLETE
		JUMPA	.-1
		CAME	C,CHNWRD+1	;SKIP IF O.K.

	MACROA:	ERROR	(CHNTST,13,C,A,CHAN STOP,CHAN TERM WORD INCORRECT)

		REPTUO	CHNTST		;REPEAT TEST SECTION

	CODE				;CONTINUATION OF PROGRAM
	  *
	  *

	;END OF EXAMPLE

	THE MACRO CALL:

	ERROR	(CHNTST,13,C,A,CHAN STOP,CHAN TERM WORD INCORRECT)

	WILL RESULT IN THE FOLLOWING ERROR REPORT:

	::::::::::::::::::::::::::::::::::::::::

	TEST PASS COUNT = #
	PC=XXXXXX
	ERROR IN CHAN TERM TEST-CHAN STOP
	CORRECT:  XXXXXX  XXXXXX
	ACTUAL:   YYYYYY  YYYYYY
	DISCREP:  ZZZZZZ  ZZZZZZ
	CHAN TERM WORD INCORRECT

	::::::::::::::::::::::::::::::::::::::::
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 32                                                                    SEQ 0033
(7.2 CONT'D)

	THE SYMBOL T MAY BE REDEFINED AS MANY TIMES AS A NEW TEST
	TITLE IS DESIRED.

	THE FOLLOWING MAY BE USED TO CONTROL TEST ITERATION AND
	LOOP ON ERROR.

	ERLOOP	S

	REPTUO	R

	S IS THE TAG TO BE JUMPED TO WHEN AN ERROR OCCURS AND THE
	SCOPE LOOP SWITCH (LOOPER) IS SET.

	R IS THE TAG TO BE JUMPED TO FOR TEST SECTION ITERATION.  USEFUL
	TO CHECK CRITICAL TIMING, ETC. C(REPTU) = NUMBER OF ITERATIONS.

	THE ERROR CALL ARGUMENTS ARE AS FOLLOWS:

	ERROR	ADR,X,C,A,F,D,ERR


	ADR IS THE ADDRESS TO TRANSFER TO FOR ERROR LOOPING

	C IS THE ADDRESS CONTAINING THE CORRECT DATA.

	A IS THE ADDRESS CONTAINING THE ACTUAL TEST DATA.

	TEST DATA MAY RESIDE IN AN AC (OTHER THAN ZERO), OR IN CORE MEMORY.

	ENTERING EITHER C OR A AS ZERO DELETES THE CORRESPONDING TYPEOUT.

	T MUST BE DEFINED BY THE STATEMENT:

	T= SIXBTZ <TEST NAME> WHERE TEST NAME IDENTIFIES THE MAJOR
	TEST SEQUENCE BEING EXECUTED.

	ERR IS THE ADDRESS OF AN ADDITIONAL ERROR PRINT ROUTINE.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 33                                                                    SEQ 0034

7.3	CALLING THE ERROR MACRO

	THE FOLLOWING EXAMPLE ILLUSTRATES THE MACRO CALL FORMATS TO
	BE USED TO ACHIEVE VARIOUS COMBINATIONS OF TEST FAILURE DATA.

	A.	FULL ERROR FORMAT  (ASSUME T ALREADY DEFINED)

		ERROR	(ADR,14,C,A,FUNCTION,DIAG. COMMENT)

		RESULTING TYPEOUT

		TEST PASS COUNT =
		PC=
		ERROR IN TEST NAME-FUNCTION
		CORRECT:
		ACTUAL:
		DISCREP:
		DIAG. COMMENT

	B.	NO DIAGNOSTIC COMMENT

		ERROR	(ADR,14,C,A,FUNCTION,)

		RESULTING TYPEOUT

		TEST PASS COUNT =
		PC=
		ERROR IN TEST NAME-FUNCTION
		CORRECT:
		ACTUAL:
		DISCREP:

	C.	NO FUNCTION

		ERROR	(ADR,13,C,A,,DIAG. COMMENT)

		RESULTING TYPEOUT

		TEST PASS COUNT =
		PC=
		ERROR IN TEST NAME-
		CORRECT:
		ACTUAL:
		DISCREP:
		DIAG. COMMENT
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 34                                                                    SEQ 0035

	D.	NO FUNCTION, NO DIAGNOSTIC COMMENT

		ERROR	(ADR,13,C,A,,)

		RESULTING TYPEOUT

		TEST PASS COUNT =
		PC=
		ERROR IN TEST NAME-
		CORRECT:
		ACTUAL:
		DISCREP:

	E.	MULTILINED DIAGNOSTIC COMMENT AND/OR COMMENTS
		CONTAINING DELIMITING CODES.

		ERROR	(ADR,6,C,A,FUNCTION,<DIAG. COMMENT^CONTAINING MULTIPLE LINES,^OR DELIMITING CODES (, OR ; . >)

		RESULTING TYPEOUT

		TEST PASS COUNT =
		PC=
		ERROR IN TEST NAME-FUNCTION
		CORRECT:
		ACTUAL:
		DISCREP:
		DIAGNOSTIC COMMENT
		CONTAINING MULTIPLE LINES,
		OR DELIMITING CODES (, OR ; .
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 35                                                                    SEQ 0036
7.4	ERROR HANDLER SWITCH CONTROL

	THE ERROR HANDLER INTERPRETS SWITCHES 3, 5, 6, 7, 8 AND 10 IN THE
	FOLLOWING MANNER.

	SWITCH 3:  0 NO FUNCTION
		   1 BYPASS ERROR REPORT SEQUENCE. TEST
		     SWITCHES 5,6 & 7.

	SWITCH 5:  0 NO FUNCTION
		   1 RING TTY BELL ON ERROR

	SWITCH 6:  0 PROCEED TO NEXT TEST WHEN ERROR IS DETECTED (SET SCOPE TO ZERO).
		   1 ENTER SCOPE LOOP ON FAILING TEST (SET SCOPE TO -1).

	SWITCH 7:  0 NO FUNCTION
		   1 HALT ON ERROR AFTER REPORTING ERROR (EXEC MODE),
		     RESUME NORMAL SEQUENCE BY PRESSING 'CONTINUE'.
		     IN USER MODE, THIS SWITCH CAUSES A CALL AC,EXIT
		     TO BE EXECUTED. NORMAL TEST SEQUENCE MAY BE RESUMED
		     BY TYPING .CONT.

	SWITCH 8:  0 PRINT ONLY FIRST ERROR WHEN ERRORS OCCUR AT
		     SAME PC. (PER PASS)
		   1 PRINT ALL ERRORS, EVEN IF LOOPING AND SAME
		     ERROR OCCURS.

	SWITCH 10: 0 PRINT FULL ERROR MESSAGES.
		   1 INHIBIT COMMENT PORTION OF ERROR MESSAGES.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
						PAGE 36                                                                    SEQ 0037

7.5	ERROR HANDLER BLOCK FLOW

	ERUUO X,LITADR***>%ERUUO: (TYPE ERROR REPORT?)
			*
			*
			*
		GET <ADDRESS> OF ERROR CALL
		GO TO %ERSW1 IF<ADDRESS>=(ERRPC)
		IF NOT, TEST SWITCH 3. IF SWITCH 3
		IS SET GO TO %ERSW1.
		IF NOT, STORE <ADDRESS> IN ERRPC AND
		REPORT TEST ERROR DATA.
			*
			*
			*
		%ERSW1: (HALT ON ERROR?)
			*
			*
		GO TO %ERSW2 IF DATA SWITCH 7=0
		IF EXEC MODE AND SWITCH 7=1, RESTORE 
		ORIGINAL AC CONTENTS AND EXECUTE
		HALT, (PRESS 'CONT' TO CONTINUE FROM ERROR).
		IF USER MODE AND SWITCH 7=1, EXECUTE
		CALL 1, (EXIT), (TYPE CONT TO CONTINUE
		FROM ERROR).
			*
			*
			*
		%ERSW2: (SCOPE LOOP ON ERROR?)
		IF SWITCH 6=0, SET SCOPE TO ZERO.  GO TO
		%ERSW3
		IF SWITCH 6=1, SET SCOPE TO -1, ADD
		ONE TO %ERCNT.  IF EXEC MODE, DISPLAY
		ERROR PC, ERROR COUNT IN MI LIGHTS.  GO TO %ERSW3.
			*
			*
			*
		%ERSW3: (RING BELL ON ERROR?)
		IF SWITCH 5=0, GO TO %EXCAL
		IF SWITCH 5=1, OUTPUT BELL CHAR.  GO TO %EXCAL
			*
			*
			*
		%EXCAL: (EXIT FROM ERROR CALL)
		RESTORE SAVED AC'S
		RETURN TO <ADDRESS+1> OF ERROR CALL.
					MAINDEC-10-DDQDA.TXT (SUBRTN)
	     					PAGE 37                                                                    SEQ 0038

7.6	ERROR HANDLER DIAGNOSTICS

	IF THE X ARGUMENT IN THE (ERUUO X,LITADR) IS NOT 0 THRU 14, THE
	FOLLOWING MESSAGE IS TYPED AND A HALT (EXIT) IS EXECUTED.

	FATAL PROGRAM ERROR AT ######

	(###### POINTS TO ERROR HANDLER)

	PROGRAM EXECUTION SHOULD NOT BE CONTINUED UNTIL PROBLEM
	HAS BEEN CORRECTED.

8.0  SUBROUTINE PACKAGE INSTRUCTIONS
     -------------------------------

8.1  SUBROUTINE PACKAGE DISTRIBUTION
     -------------------------------

     THE PARAM, FIXED & STOR FILES ARE SUPPLIED AS ASCII SOURCE FILES
     WHICH SHOULD BE ASSEMBLED WITH THE MAIN PROGRAM SOURCE FILE.

	THE DECSYSTEM10 SUBROUTINE PROGRAM LOAD MODULE IS SUPPLIED
    TO BE USED WITH THE DIAGNOSTIC SEGMENT LOAD MODULES
    TO PROVIDE RUN TIME SUBROUTINE SUPPORT.

	THE SUBROUTINE PACKAGE SHOULD BE USED AS A STANDARD
    SUBROUTINE SET AND ANY CORRECTIONS OR IMPROVEMENTS TO IT
    SHOULD BE CLEARED WITH THE  DIGITAL EQUIPMENT CORP. DIAGNOSTIC
    ENGINEERING GROUP.

9.0  MISCELLANEOUS
     -------------

10.0  SOURCE FILE LISTINGS
     --------------------
DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM
MAINDEC-10-DDQDA                                                                                                           SEQ 0039

VERSION 0.14

MARCH 23,1978

HISTORY:

VERSION 0.14 DIVIDES THE SUBROUTINE PACKAGE INTO SEPARATE USER AND
EXEC MODE FILES.  EXEC MODE IS "SUBRTN" AND USER MODE IS "SUBUSR".
THE USER MODE VERSION IS JSYS'D TO RUN APPROPRIATELY ON EITHER THE
TOPS-10 OR THE TOPS-20 SYSTEMS WITHOUT USE OF THE COMPATABILITY
PACKAGE.

--------------------
VERSION 0.13

APRIL 27,1977

HISTORY:

VERSION 0.13 CORRECTS A PROBLEM WITH "PFORCE" PRINTING A "^V" TO THE
LINE PRINTER AND INTO THE LOGICAL DEVICE OUTPUT.
--------------------
---------------------                                                                                                      SEQ 0040
VERSION 0.12

FEBRUARY 16,1977

HISTORY:

REV 0.12 TAKES OUT CHECK FOR "PTR" & "PTP" IN MODIFY DEVICE CODE ROUTINE
TO ALLOW DIFFERENT DEVICE CODES TO BE USED FOR THOSE DEVICES.
ADDS "CLRBFI" TO "YESNO" ROUTINE ERROR IN USER MODE.
CORRECTS PROBLEM WITH ERROR PC & PUSH POINTER PRINTING IN "SUBRTN"
INTERRUPT ERROR PRINTING.
CHANGED "ERROR HALT" ROUTINE TO "EXIT 1," IF IN USER MODE INSTEAD
OF HALT IN CASE RUNNING IN USER IOT.
FIXES A PROBLEM WITH 50/60 CYCLE DETERMINATION ON A KI10.  WAS
CHECKING THE WRONG BIT IN THE "CONI APR," WORD.
FIXES A PROBLEM WITH "UUO'S" BEING INTERRUPTED AND THE INTERRUPT
ROUTINE PERFORMING ANOTHER UUO, AC0 BEING CLOBBERED.
--------------------
VERSION 0.11

JUNE 3,1976

HISTORY:

REV 0.11 CHANGES USER MODE TTY INPUT TO LINE BUFFERED MODE TO ALLOW
FOR SYSTEM TTY FEATURES, RUBOUT, CONTROL U, CONTROL R.
ALSO CORRECTS A PROBLEM WITH THE SWITCH ROUTINE IF $$TOGGLE SET TO
PREVENT USE OF THE SWITCHES AND SHORTENED SOME MESSAGES TO
PROVIDE CODE ROOM.
----------------
----------------
VERSION 0.10                                                                                                               SEQ 0041

FEBRUARY 26,1976

HISTORY:

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

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

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

REV 0.10 CORRECTS PROBLEMS WITH 50HZ METER, $UORTN P LIST CHECKING,
TURNING THE KL10 PDP-11 CLOCK OFF ON END-OF-PROGRAM.
---------------------

VERSION 2.4

JANUARY 5,1976

HISTORY:

VERSION 2.4 ADDS A USER INTERCEPT ROUTINE TO THE ALTMODE SWITCH CALL
ROUTINE. CORRECTS A PROGRAM INITIALIZATION PROBLEM AND ADDS A CHECK
ON THE KL10 APRID CACHE OPTION BIT.
ALSO CORRECTS A KL10 S-BUS ERROR RESET PROBLEM.
-----------------------------

VERSION 1.4

DECEMBER 18,1975

HISTORY:

VERSION 1.4 CORRECTS PROBLEM WITH CHAIN MODE UNDER DIAMON AND 
WITH DEMANDING THE SWITCHES FROM THE KL10 ON A START AFTER A ERRHLT.
ALSO FIXES ALTMODE CHECK TO RETURN UPPER CASE CHARS.
ALSO ADDS SAME SWITCH REPORTING ON A PROGRAM RESTART.
-----------------------
VERSION 0.4                                                                                                                SEQ 0042

DECEMBER 2,1975

HISTORY:

VERSION 0.4 CORRECTS PROBLEM IN USER MODE WITH SWITCH SELECTION OF THE
SAME SWITCHES AS USED ON PREVIOUS START.
----------------------------

VERSION 1.3

NOVEMBER 19,1975

HISTORY:

PREVIOUS VERSIONS NOT ACCOUNTED FOR.

VERSION 1.3 ADDS PROCESSING REQUIRED FOR PROGRAMS TO BE ABLE TO
READ 8 BIT PDP-11 FILES.  ALSO ADDS REAL TIME USER SWITCH CONTROL TO
THE ALTMODE CHECK ROUTINE WITH A BELL (CONTROL G) TYPED IN TO
REQUEST SWITCH CHANGE.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 1             
                                                                                                                           SEQ 0043




















				   DOCUMENT
				**************
      SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^
				**************

















		    COPYRIGHT 1978
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 2             
                                                                                                                           SEQ 0044

				 TABLE OF CONTENTS
				*******************


	24	*SUBRTN* SPECIAL ASSEMBLY PARAMETERS

	109	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977

	144	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976

	350	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976

	388	STANDARD PROGRAM ASSIGNMENTS

	1059	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977

	1387	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL

	1568	*CONTRL* UUO HANDLING SUBROUTINE

	1774	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER

	2086	*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES

	2264	PROCESSOR TYPE DETERMINATION

	2344	"DIAMON" FILE SELECTION & READ

	2388	PROGRAM HALTS

	2447	PROGRAM NAME PRINTER

	2514	*SUBRTN* INTERRUPT HANDLING ROUTINES

	2968	*SUBRTN* KI10 MARGIN PRINTOUT ROUTINE

	3013	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES

	3076	*SUBRTN* KL10 CACHE ENABLE

	3331	*SUBRTN* MEMORY MAPPING ROUTINES

	3461	*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER

	3576	*SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP 

	3614	*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 3             
                                                                                                                           SEQ 0045

				 TABLE OF CONTENTS
				*******************


	3747	*SUBRTN* "MEMSEG" ## MAPNEW = 0 ##

	3789	*SUBRTN* "MEMZRO"

	3833	*SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR

	3883	*SUBRTN* PRINT MEMORY MAP

	3951	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE

	4066	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE

	4254	*SUBRTN* TELETYPE INPUT ROUTINES

	4463	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE

	4511	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE

	4630	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE

	4668	*SUBRTN* PRINT SUBROUTINES

	5076	*SUBRTN*  CHARACTER OUTPUT ROUTINES

	5450	*SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES

	5528	*STOR* RESERVED STORAGE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 4             
                                                                                                                           SEQ 0046
		1	MAINDEC-10-DDQDA (SUBRTN)

		17	COPYRIGHT 1974,1975,1976,1977,1978
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS.

		21	JOHN R. KIRCHOFF

		*****************************************************************
	24	*SUBRTN* SPECIAL ASSEMBLY PARAMETERS
		*****************************************************************

		26	ASSEMBLY PARAMETERS

		61	A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE

		65	DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE

		80	DTE20 DEVICE CODES

		89	KL10 EPT COMMUNICATION AREA

		*****************************************************************
	109	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
		*****************************************************************

		114	DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
			LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
			AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS

		*****************************************************************
	144	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
		*****************************************************************

		147	SPECIAL SUBPROGRAM LINKAGES

		158	SPECIAL SUBROUTINE FATAL HALTS
			USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE

		190	SUBROUTINE INITIALIZATION CALL

		196	HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).

		203	TERMINAL INPUT UUO'S
			ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
			CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.

		219	TERMINAL OUTPUT UUO'S.

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 5             
                                                                                                                           SEQ 0047
		285	SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
				CONSERVES CORE OVER ASCIZ

		290	CONSOLE SWITCH INPUT UUO.
			READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
			 USER MODE.

		296	CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
			EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.

		302	KL10 ONLY CACHE OPERATION UUO'S

		307	END OF PASS/PROGRAM UUOS

		310	DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.

		315	MEMORY MANAGEMENT UUO'S
			UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
			ADDRESS CONVERSION, ETC...

		327	DEVICE CODE MODIFICATION UUO
			ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
			IOT'S TO A DIFFERENT DEVICE CODE.

		337	"DIAMON" FILE SELECTION AND READ UUOS

		344	KI10 ONLY UUO FOR PRINTING MARGIN VALUES

		*****************************************************************
	350	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
		*****************************************************************

		353	ERROR HANDLER PARAMETERS

		362	THE ERROR HANDLER MACROS

		364	A MACRO TO REPORT AN ERROR AND LOOP

		375	A MACRO TO REPORT AN ERROR AND NOT LOOP

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 6             
                                                                                                                           SEQ 0048
		*****************************************************************
	388	STANDARD PROGRAM ASSIGNMENTS
		*****************************************************************

		391	ACCUMULATORS

		399	PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)

		413	PDP-10 STANDARD ADDRESS ASSIGNMENTS

		420	JOB DATA AREA EXTERNALS (OLD DEFINITIONS)

		438	JOB DATA AREA EXTERNALS (NEW DEFINITIONS)

		457	USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)

		469	USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
			THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
			USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.

		478	PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS

		485	PDP-10 STANDARD APR CONO ASSIGNMENTS

		494	PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF

		503	PDP-10 STANDARD PI CONO ASSIGNMENTS

		518	PDP-10 STANDARD PI CONI ASSIGNMENTS

		524	PDP-10 STANDARD PI CHANNEL ASSIGNMENTS

		538	KA10 APR CHANNEL ASSIGNMENTS

		544	KA10 APR CONO ASSIGNMENTS

		559	KA10 APR CONI ASSIGNMENTS

		574	KA10 PI CONI ASSIGNMENTS

		585	KI10 PC CONTROL FLAGS

		593	KI10 SPECIAL EXEC MODE FLAGS

		600	KI10 APR CHANNEL ASSIGNMENTS

		607	KI10 APR CONO ASSIGNMENTS

		619	KI10 APR CONI ASSIGNMENTS, RIGHT HALF

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 7             
                                                                                                                           SEQ 0049
		631	KI10 APR CONI ASSIGMENTS, LEFT HALF

		652	KI10 APR DATAO ASSIGNMENTS

		662	KI10 PI CONO ASSIGNMENTS

		667	KI10 PI CONI ASSIGNMENTS

		681	KI10 PAG CONI ASSIGNMENTS

		688	KI10 PAG DATAO ASSIGNMENTS, LEFT HALF

		696	KI10 PAG DATAO ASSIGNMENTS, RIGHT HALF

		703	KI10 PAG DATAI ASSIGNMENTS

		711	KI10 PTR DATAO ASSIGNMENTS

		717	KI10 EXEC PAGE MAP PAGE ASSIGNMENTS

		726	KI10 USER PAGE MAP PAGE ASSIGNMENTS

		752	KL10 CONO APR 000 ASSIGMENTS

		808	KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)

		821	KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)

		843	KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)

		853	KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)

		861	KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)

		871	KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)

		877	KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)

		884	KL10 BLKI APR 000 ASSIGMENTS

		893	KL10 CONO PI 004 ASSIGMENTS

		916	KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)

		927	KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)

		949	KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)

		962	KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 8             
                                                                                                                           SEQ 0050
		968	KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)

		981	KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)

		986	KL10 CONO PAG 010 ASSIGMENTS

		997	KL10 CONI PAG 010 ASSIGMENTS

		1009	KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)

		1015	KL10 EXEC PAGE MAP PAGE ASSIGNMENTS

		1028	KL10 USER PAGE MAP PAGE ASSIGNMENTS

		*****************************************************************
	1059	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
		*****************************************************************

		1064	PROGRAM STARTING ADDRESSES
			THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
			NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
			OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
			MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.

		1097	PROGRAM FIXED PARAMETER AREA

		1117	PROGRAM VARIABLE PARAMETER AREA

		1137	SPECIAL PROGRAM DISPATCH ADDRESSES

		1168	PROCESSOR CONTROL STORAGE

		1188	UUO DISPATCH TABLE

		1208	MEMORY MANAGMENT STORAGE

		1218	PRINT CONTROL STORAGE

		1241	THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
			TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
				MOVEI	NAME
				PNTA		;OR PNTAF

		1272	USER MODE OUTPUT FILE INFORMATION

		1281	DISK UPDATE MODE FILE INFORMATION

		1289	PUSHDOWN LIST CONTROL INFORMATION

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 9             
                                                                                                                           SEQ 0051
		1297	POWER LINE CLOCK FREQUENCY FLAG

		1303	KL10 CACHE CONTROL FLAGS

		1310	NUMBER INPUT DIGIT FLAG

		1316	KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION

		1322	ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS

		1330	SPECIAL USERS UUO INTERCEPT INSTRUCTION

		1335	USER MODE MONITOR TYPE FLAG

		1341	SPECIAL USERS MUUO INTERCEPT INSTRUCTION

		1347	SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION

		1353	"SWITCH" CALL USAGE CONTROL

		1359	SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS

		1366	SM10 (KS-10) PROCESSOR TYPE FLAG

		1372	RIGHT HALF SWITCHES PROMPT TABLE ADDRESS

		1378	SPECIAL FUTURE EXPANSION ROOM

		1382	END OF FIXED STORAGE

		*****************************************************************
	1387	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
		*****************************************************************

		1390	SPECIAL SUBPROGRAM LINKAGES

		1409	INITIALIZE THE SUBROUTINE PACKAGE

		1431	SPECIAL SUBROUTINE ONLY INITIALIZATION

		1459	CONTRL* SUBROUTINE PACKAGE INITIALIZATION

		1476	INITIALIZE PROCESSOR FLAGS AND PUSH LIST

		1499	INITIALIZE SUBROUTINES

		1520	 -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
			MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
			IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
			MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
			AT ASSEMBLY TIME.

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 10            
                                                                                                                           SEQ 0052
		1550	 $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
				    0 TO 112K POINTS TO ITSELF

		*****************************************************************
	1568	*CONTRL* UUO HANDLING SUBROUTINE
		*****************************************************************

		1571	UUO INITIALIZATION

		1582	THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
			PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
			PROGRAM SEGMENT UUO'S (001 - 033).
			AC0 IS SAVED ON THE STACK INITIALLY

		1644	KA10 MUUO PROCESS, SETUP AS IF KI/KL10 MUUO

		1655	UUO ERROR EXIT ROUTINE

		1686	MONITOR UUO ERROR EXIT ROUTINE

		1705	DECODE ROUTINE FOR SUBROUTINE UUO'S (037)

		*****************************************************************
	1774	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
		*****************************************************************

		1777	THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
			A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
			INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
			SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
			ERROR, AND BELL ON ERROR.
			ERROR LOOPING ROUTINE
			EITHER CONTINUES IN-LINE
			OR TRANSFERS TO E FIELD OF UUO
			CHECKS PC OF ERROR TO DETERMINE LOOPING

		1821	REPEAT LOOP ROUTINE
			EITHER CONTINUES IN-LINE
			OR TRANSFERS TO E FIELD OF UUO

		1831	COMMON ERROR HANDLER AC SAVE/RESTORE

		1845	ERROR REPORTING ROUTINE

		1876	BYPASS ERROR REPORT IF NOPNT SWITCH IS SET

		1926	GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.

		1956	AC1 NOW CONTAINS THE CORRECT TEST RESULTS.

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 11            
                                                                                                                           SEQ 0053
		1980	AC1 CONTAINS THE ACTUAL TEST RESULTS.

		1998	PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.

		2029	EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).

		2039	EXECUTE HALT IF SWITCH ERSTOP SET.

		2050	EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.

		2062	RING TTY BELL IF DING SWITCH IS SET.

		2068	RETURN TO ERROR CALL ADDRESS+1

		*****************************************************************
	2086	*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
		*****************************************************************

		2089	THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
			THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA

		2115	DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE

		2135	DTE20 COMMUNICATIONS ROUTINE

		2158	this routine looks @ ac0 to determine whether to enable/disable
			setting clock ticked flag "clockf" IN THE 10 WHEN A POWER LINE
			CLOCK CYCLE OCCURS IN THE 11 (EVERY 16.67 MS)
			or TO executE an instruction upon occurrence of the clock tick
				ac0 = 0 for disable
				ac0 = -1 for enable
				AC0 = INST FOR ENABLE & EXECUTE INST
				AC0 = 0,,X FOR WAIT X THEN CLOCK XCT OF INST IN AC1
				AC0 = 0,,1 FOR READ PRESENT CLOCK COUNT SINCE ENABLED

		2197	THIS ROUTINE CONTROLS THE DK20 METER FOR NORMAL DIAGNOSTICS
			ALLOWS METER TO BE ENABLED/DISABLED AND FOR EVERY METER
			PERIOD THE "CLOCKF" FLAG IS SET AND AN OPTIONAL INSTRUCTION 
			EXECUTED.  THE METER PERIOD IS SET FOR 16.67 MS (60 HZ).
				OR FOR 20 MS FOR A 50HZ PROCESSOR.

		2237	METER INTERRUPT ROUTINE

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 12            
                                                                                                                           SEQ 0054
		*****************************************************************
	2264	PROCESSOR TYPE DETERMINATION
		*****************************************************************

		*****************************************************************
	2344	"DIAMON" FILE SELECTION & READ
		*****************************************************************

		2369	"DIAMON" FILE READ

		*****************************************************************
	2388	PROGRAM HALTS
		*****************************************************************

		2390	SUBROUTINE ERROR HALT

		2421	FATAL PROGRAM ERROR HALT

		*****************************************************************
	2447	PROGRAM NAME PRINTER
		*****************************************************************

		2449	PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE

		*****************************************************************
	2514	*SUBRTN* INTERRUPT HANDLING ROUTINES
		*****************************************************************

		2517	PUSH DOWN LIST EXCESSIVE POPJ ROUTINE

		2525	INTERRUPT ROUTINE INITIALIZATION

		2531	SETUP INTERRUPT VECTORS

		2551	USER MODE INITIALIZATION

		2559	USER MODE INTERRUPTS

		2579	DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES

		2602	COMMON INTERRUPT HANDLERS

		2610	PRINT CAUSE AND OTHER PERTINENT INFO

		2643	COMMON INTERRUPT ROUTINE

		2659	RESTORE PROCESSOR ON POWER FAIL RESTART

		2696	KA10 INTERRUPT ROUTINE

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 13            
                                                                                                                           SEQ 0055
		2721	KA10 POWER FAIL RESTART

		2736	KA10 INTERRUPT INITIALIZATION

		2748	KI10 INTERRUPT ROUTINE

		2777	KI10/KL10 PUSHDOWN OVERFLOW TRAP ROUTINE

		2784	KI10/KL10 PAGE FAIL TRAP ROUTINE

		2802	KI10/KL10 TRAP 3 ROUTINE

		2810	KI10 POWER FAIL RESTART

		2832	KI10 INTERRUPT AND TRAP INITIALIZATION

		2861	KI10/KL10 COMMON TRAP & MMUO SETUP

		2880	KL10 INTERRUPT ROUTINE

		2929	KL10 INTERRUPT AND TRAP INITIALIZATION

		*****************************************************************
	2968	*SUBRTN* KI10 MARGIN PRINTOUT ROUTINE
		*****************************************************************

		*****************************************************************
	3013	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
		*****************************************************************

		3015	END OF PASS ROUTINE

		3047	END OF PROGRAM ROUTINE

		*****************************************************************
	3076	*SUBRTN* KL10 CACHE ENABLE
		*****************************************************************

		3283	KL10 CACHE INVALIDATE

		3316	KL10 CACHE FLUSH

		3324	KL10 CACHE WRITE-BACK & INVALIDATE

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 14            
                                                                                                                           SEQ 0056
		*****************************************************************
	3331	*SUBRTN* MEMORY MAPPING ROUTINES
		*****************************************************************

		3334	THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
			ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
				$MPCNK	(MAPCNK)	ACTUAL MEMORY CHUNK MAPPER
				$MPSET	(MAPSET)	SETS UP PAGE MAP FOR KI10
				$MSEG	(MEMSEG)	SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
							(MAPNEW=-1 FOR PAGED SEGMENTS UP TO 4096K)
							(MAPNEW= 0 FOR DIRECT ADDRESSING UP TO  256K)
				$MZRO	(MEMZRO)	ZERO'S THE MAPPED MEMORY
				$MPADR	(MAPADR)	VIRTUAL TO PHYSICAL ADDRESS TRANSLATION

		3348	USER MODE MEMORY MAPPING

		3358	EXEC MODE MEMORY MAPPING

		3390	MEMORY MAPPING CONTROL
			MAP 4096K, 256K, 112K OR 256K SPECIAL USER

		3420	COMBINE EXISTENT CHUNKS FROM MAPCNK
			PUT POINTERS IN MEMSIZ TABLE

		*****************************************************************
	3461	*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
		*****************************************************************

		3464	STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
			UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
			IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
			MAPS THE HOLE IN EXISTENT MEMORY
			AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS

		3496	NON-X-MEMORY SEGMENT MAPPER

		3513	RESTORE OVERALL SYSTEM STATUS AFTER MAPPING

		3536	EXISTANT MEMORY MAPPER

		3554	SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
			TEMPORY STORAGE POINTER IN AC1
			VIRTUAL ADDRESS IN AC0
			"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 15            
                                                                                                                           SEQ 0057
		*****************************************************************
	3576	*SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP 
		*****************************************************************

		3579	FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
			ARGUMENTS PASSED IN AC0:
						NEG - CLEAR PAGE MAP
						0-37 - MAP CORRESPONDING 128K SEGMENT

		*****************************************************************
	3614	*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
		*****************************************************************

		3617	SETS UP TO 128K SEGMENT IN PAGE MAP
			ARGUMENTS:	0-37 - MAP CORRESPONDING 128K SEGMENT
					GT 37  - MAP USING PHYSICAL ADDRESS
			RETURNED IN AC0:
					HIGHEST VIRTUAL ADDRESS
				  	BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
			PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
			TO MEMORY REQUESTED
					RETURNS +2

		3646	SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE

		3688	EXIT FROM MEMSEG ROUTINE

		3711	PHYSICAL CORE ASSIGNMENT

		*****************************************************************
	3747	*SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
		*****************************************************************

		3750	ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
					  11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
					  USER MODE, 1-37 ALWAYS RETURNS 0
				  	  GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
			RETURNED IN AC0:
					  0 - NO MEMORY AVAILABLE
					  START ADDRESS,,END ADDRESS
			RETURNS +1

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 16            
                                                                                                                           SEQ 0058
		*****************************************************************
	3789	*SUBRTN* "MEMZRO"
		*****************************************************************

		3792	ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
			MAPNEW = 0	 DIRECT MEMORY ZERO
				 =-1	 4096K KI10 PAGED MEMORY ZERO

		*****************************************************************
	3833	*SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
		*****************************************************************

		3835	VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
			SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE

		*****************************************************************
	3883	*SUBRTN* PRINT MEMORY MAP
		*****************************************************************

		*****************************************************************
	3951	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE
		*****************************************************************

		3961	ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE

		3993	CHANGE THE DEVICE CODE LIST

		4007	INPUT OLD CODE AND CHECK FOR VALIDITY

		4024	GET THE OLD/NEW CODE FROM DEVICE CODE LIST

		4052	DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
			 AC0 = [OLD,,NEW]

		*****************************************************************
	4066	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
		*****************************************************************

		4068	INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
			USER MODE IF NON-TTY SWITCH CONTROL

		4094	SWITCH INITIALIZATION ROUTINE

		4121	IF KL10, PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES

		4183	SWITCH INITIALIZATION ROUTINE

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 17            
                                                                                                                           SEQ 0059
		*****************************************************************
	4254	*SUBRTN* TELETYPE INPUT ROUTINES
		*****************************************************************

		4257	CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
			CHARACTER OR NUMBER RETURNED IN AC0.
			CALL SEQUENCE IS AS FOLLOWS:
				NAME
				NO/ERROR RESPONSE RETURN (+ 1)
				NORMAL RESPONSE RETURN (+ 2)
			$OPTLK =	INPUT ANY CHARACTER
			$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
			$NOYES =	ASK QUESTION, CORRECT RESPONSE N
			$TPOCT =	INPUT UP TO 12 OCTALS
			$TPDEC =	INPUT UP TO 11 DECIMALS
			$TPCNV =	INPUT UP TO 9 CONVERT'S
			$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
			$TALTM =	KEYBOARD, ALT-MODE CHECK
			$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS

		4275	TELETYPE INPUT INITIALIZATION

		4282	CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
			RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED

		4299	TELETYPE IMAGE MODE INPUT
			PROVIDES UNBUFFERED MODE INPUT
			WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED

		4328	TELETYPE INPUT OPERATOR RESPONSE ROUTINE

		4342	TELETYPE ALT-MODE CHECK ROUTINE

		4378	TELETYPE INPUT CHARACTER 
			EXEC/USER MODE TEST & KL10 CPU TEST

		4388	TELETYPE INPUT CHARACTER ROUTINE - KA/KI (DIRECT)

		4408	TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC

		4420	TELETYPE INPUT CHARACTER ROUTINE - KA/KI/KL USER MODE

		4426	CHARACTER PROCESSING ROUTINE FOR INPUT
			CHARACTER RETURNED IN AC0 IS UPPER CASE
			ACTUAL CHARACTER IS IN $TTCHR

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 18            
                                                                                                                           SEQ 0060
		*****************************************************************
	4463	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
		*****************************************************************

		4466	ACCEPTS Y OR N
			FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
			FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
			'Y OR N <CR> - ' ASKED UPON ENTRY

		*****************************************************************
	4511	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
		*****************************************************************

		4514	ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
			NUMBER RETURNED IN AC0.

		4535	INPUT AND COMPUTE NUMBER

		4558	CHECK FOR PROPER AMOUNT OF CHARACTERS

		4583	NUMBER COMPUTING CONSTANTS

		4606	CONVERT CONVERSION ROUTINE

		*****************************************************************
	4630	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
		*****************************************************************

		4633	INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
			SIXBIT WORD RETURNED IN AC0

		*****************************************************************
	4668	*SUBRTN* PRINT SUBROUTINES
		*****************************************************************

		4671		$PNTSX		PRINT SIXBIT NORMAL
				$PTSXF		PRINT SIXBIT FORCED
				$PNTCW		PRINT DF10 CONTROL WORD
				$PNTI1		PRINT OCTAL NUMBER
				$CHRPN		PRINT CHARACTER
				$ASCPN		PRINT ASCII CHARACTER/LINE
				$DECPN		PRINT DECIMAL NUMBER

		4681	PRINT SUBROUTINE INITIALIZATION
			INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE

		4714	PRINT SUBROUTINE ENTRY POINT
			EXIT VIA $PNTI4 BELOW

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 19            
                                                                                                                           SEQ 0061
		4741	PRINT ROUTINE EXIT

		4754	PRINT LIMIT WARNING & ALTERNATE EXIT PATH

		4774	PRINT ROUTINE SELECTOR
			BASED ON "AC FIELD" = 12 - 17

		4804	SIXBIT PRINT SUBROUTINE
			PRINTS SIXBIT WORD IN AC0

		4808	NORMAL PRINTOUT

		4821	FORCED PRINTOUT

		4834	SIXBIT MESSAGE PRINT ROUTINE
			PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
			"BACKARROW" (77) SIGNIFIES END OF TEXT
			"UPARROW" (76) SIGNIFIES CR/LF
			"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB

		4884	OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
			PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
			PRINTS MINUS SIGN IF NUMBER IS NEGATIVE

		4933	DF10 CONTROL WORD PRINT ROUTINE
			PRINTS WORD IN AC0
			DF22F = 0, ######  ######  ,18 BIT DF10
			       -1, ##### ########  ,22 BIT DF10

		4980	OCTAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

		5012	ASCII/CHARACTER PRINTOUT ROUTINE
			PRINTS CHAR IN LOWER 7 BITS OF AC0

		5022	PRINTS ASCII WHOSE ADDRESS IS IN AC0

		5041	DECIMAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 20            
                                                                                                                           SEQ 0062
		*****************************************************************
	5076	*SUBRTN*  CHARACTER OUTPUT ROUTINES
		*****************************************************************

		5079	OUTPUT TERMINATION CONTROL ROUTINE

		5120	OVERALL CHARACTER OUTPUT CONTROL ROUTINE

		5163	USER MODE LF & CR FILLERS

		5179	ALT-MODE TRANSFER TO USER ROUTINE

		5191	EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE

		5235	RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT

		5240	EXEC MODE LPT OUTPUT

		5263	TELETYPE TABS CONVERSION

		5277	TELETYPE FF & VT CONVERSION

		5289	EXEC MODE CHARACTER OUTPUT

		5295	KA/KI EXEC MODE TELETYPE OUTPUT ROUTINE (DIRECT)

		5330	KL10 EXEC MODE TTY OUTPUT

		5338	CONSOLE TTY FILLER ROUTINE

		5368	EXEC MODE CONSOLE TTY BAUD RATE DETERMINATION

		5419	USER MODE CHARACTER OUTPUT

		5441	USER MODE LOGICAL DEVICE OUTPUT

		*****************************************************************
	5450	*SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES
		*****************************************************************

		5453	OUTPUT TO LOGICAL DEVICE

		5466	LOGICAL DEVICE INITIALIZATION
			PHY DEV ASSIGNED AT RUN TIME

		5500	USER MODE CLOSE FILE

SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^      DECDOC VER  00.24   23-MAR-78 15:24:39   PAGE 21            
                                                                                                                           SEQ 0063
		*****************************************************************
	5528	*STOR* RESERVED STORAGE
		*****************************************************************
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 1             
                                                                                                                           SEQ 0064




















				   DOCUMENT
				**************
   SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^
				**************

















		    COPYRIGHT 1978
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 2             
                                                                                                                           SEQ 0065

				 TABLE OF CONTENTS
				*******************


	26	*SUBUSR SPECIAL ASSEMBLY PARAMETERS

	72	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977

	107	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976

	313	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976

	351	STANDARD PROGRAM ASSIGNMENTS

	500	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977

	828	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL

	998	*CONTRL* UUO HANDLING SUBROUTINE

	1184	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER

	1481	PROCESSOR TYPE DETERMINATION

	1517	"DIAMON" FILE SELECTION & READ

	1561	PROGRAM HALTS

	1616	PROGRAM NAME PRINTER

	1661	*SUBRTN* INTERRUPT HANDLING ROUTINES

	1871	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES

	1904	*SUBRTN* MEMORY MANAGMENT ROUTINES

	2099	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE

	2214	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE

	2438	*SUBRTN* TELETYPE INPUT ROUTINES

	2615	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE

	2662	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE

	2781	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 3             
                                                                                                                           SEQ 0066

				 TABLE OF CONTENTS
				*******************


	2819	*SUBRTN* PRINT SUBROUTINES

	3239	*SUBRTN*  CHARACTER OUTPUT ROUTINES

	3534	*STOR* RESERVED STORAGE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 4             
                                                                                                                           SEQ 0067
		1	MAINDEC-10-DDQDA (SUBUSR)

		19	COPYRIGHT 1977,1978
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS.

		23	JOHN R. KIRCHOFF

		*****************************************************************
	26	*SUBUSR SPECIAL ASSEMBLY PARAMETERS
		*****************************************************************

		28	ASSEMBLY PARAMETERS

		58	A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE

		63	DEFINITIONS USED BY THE USER SUBROUTINE PACKAGE

		*****************************************************************
	72	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
		*****************************************************************

		77	DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
			LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
			AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS

		*****************************************************************
	107	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
		*****************************************************************

		110	SPECIAL SUBPROGRAM LINKAGES

		121	SPECIAL SUBROUTINE FATAL HALTS
			USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE

		153	SUBROUTINE INITIALIZATION CALL

		159	HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).

		166	TERMINAL INPUT UUO'S
			ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
			CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.

		182	TERMINAL OUTPUT UUO'S.

		248	SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
				CONSERVES CORE OVER ASCIZ

		253	CONSOLE SWITCH INPUT UUO.
			READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
			 USER MODE.

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 5             
                                                                                                                           SEQ 0068
		259	CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
			EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.

		265	KL10 ONLY CACHE OPERATION UUO'S

		270	END OF PASS/PROGRAM UUOS

		273	DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.

		278	MEMORY MANAGEMENT UUO'S
			UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
			ADDRESS CONVERSION, ETC...

		290	DEVICE CODE MODIFICATION UUO
			ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
			IOT'S TO A DIFFERENT DEVICE CODE.

		300	"DIAMON" FILE SELECTION AND READ UUOS

		307	KI10 ONLY UUO FOR PRINTING MARGIN VALUES

		*****************************************************************
	313	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
		*****************************************************************

		316	ERROR HANDLER PARAMETERS

		325	THE ERROR HANDLER MACROS

		327	A MACRO TO REPORT AN ERROR AND LOOP

		338	A MACRO TO REPORT AN ERROR AND NOT LOOP

		*****************************************************************
	351	STANDARD PROGRAM ASSIGNMENTS
		*****************************************************************

		354	ACCUMULATORS

		362	PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)

		376	PDP-10 STANDARD ADDRESS ASSIGNMENTS

		383	JOB DATA AREA EXTERNALS (OLD DEFINITIONS)

		401	JOB DATA AREA EXTERNALS (NEW DEFINITIONS)

		420	USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 6             
                                                                                                                           SEQ 0069
		432	USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
			THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
			USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.

		441	PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS

		448	PDP-10 STANDARD APR CONO ASSIGNMENTS

		457	PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF

		466	PDP-10 STANDARD PI CONO ASSIGNMENTS

		481	PDP-10 STANDARD PI CONI ASSIGNMENTS

		487	PDP-10 STANDARD PI CHANNEL ASSIGNMENTS

		*****************************************************************
	500	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
		*****************************************************************

		505	PROGRAM STARTING ADDRESSES
			THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
			NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
			OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
			MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.

		538	PROGRAM FIXED PARAMETER AREA

		558	PROGRAM VARIABLE PARAMETER AREA

		578	SPECIAL PROGRAM DISPATCH ADDRESSES

		609	PROCESSOR CONTROL STORAGE

		629	UUO DISPATCH TABLE

		649	MEMORY MANAGMENT STORAGE

		659	PRINT CONTROL STORAGE

		682	THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
			TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
				MOVEI	NAME
				PNTA		;OR PNTAF

		713	USER MODE OUTPUT FILE INFORMATION

		722	DISK UPDATE MODE FILE INFORMATION

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 7             
                                                                                                                           SEQ 0070
		730	PUSHDOWN LIST CONTROL INFORMATION

		738	POWER LINE CLOCK FREQUENCY FLAG

		744	KL10 CACHE CONTROL FLAGS

		751	NUMBER INPUT DIGIT FLAG

		757	KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION

		763	ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS

		771	SPECIAL USERS UUO INTERCEPT INSTRUCTION

		776	USER MODE MONITOR TYPE FLAG

		782	SPECIAL USERS MUUO INTERCEPT INSTRUCTION

		788	SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION

		794	"SWITCH" CALL USAGE CONTROL

		800	SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS

		807	SM10 (KS-10) PROCESSOR TYPE FLAG

		813	RIGHT HALF SWITCHES PROMPT TABLE ADDRESS

		819	SPECIAL FUTURE EXPANSION ROOM

		823	END OF FIXED STORAGE

		*****************************************************************
	828	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
		*****************************************************************

		831	SPECIAL SUBPROGRAM LINKAGES

		850	INITIALIZE THE SUBROUTINE PACKAGE

		872	SPECIAL SUBROUTINE ONLY INITIALIZATION

		902	CONTRL* SUBROUTINE PACKAGE INITIALIZATION

		917	INITIALIZE PROCESSOR FLAGS AND PUSH LIST

		942	INITIALIZE SUBROUTINES

		958	 -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
			MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
			IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
			MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
			AT ASSEMBLY TIME.

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 8             
                                                                                                                           SEQ 0071
		*****************************************************************
	998	*CONTRL* UUO HANDLING SUBROUTINE
		*****************************************************************

		1001	UUO INITIALIZATION

		1012	THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
			PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
			PROGRAM SEGMENT UUO'S (001 - 033).
			AC0 IS SAVED ON THE STACK INITIALLY

		1069	UUO ERROR EXIT ROUTINE

		1100	DECODE ROUTINE FOR SUBROUTINE UUO'S (037)

		*****************************************************************
	1184	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
		*****************************************************************

		1187	THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
			A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
			INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
			SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
			ERROR, AND BELL ON ERROR.
			ERROR LOOPING ROUTINE
			EITHER CONTINUES IN-LINE
			OR TRANSFERS TO E FIELD OF UUO
			CHECKS PC OF ERROR TO DETERMINE LOOPING

		1231	REPEAT LOOP ROUTINE
			EITHER CONTINUES IN-LINE
			OR TRANSFERS TO E FIELD OF UUO

		1241	COMMON ERROR HANDLER AC SAVE/RESTORE

		1255	ERROR REPORTING ROUTINE

		1281	BYPASS ERROR REPORT IF NOPNT SWITCH IS SET

		1331	GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.

		1361	AC1 NOW CONTAINS THE CORRECT TEST RESULTS.

		1385	AC1 CONTAINS THE ACTUAL TEST RESULTS.

		1403	PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.

		1434	EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 9             
                                                                                                                           SEQ 0072
		1444	EXECUTE HALT IF SWITCH ERSTOP SET.

		1455	EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.

		1462	RING TTY BELL IF DING SWITCH IS SET.

		1468	RETURN TO ERROR CALL ADDRESS+1

		*****************************************************************
	1481	PROCESSOR TYPE DETERMINATION
		*****************************************************************

		*****************************************************************
	1517	"DIAMON" FILE SELECTION & READ
		*****************************************************************

		1542	"DIAMON" FILE READ

		*****************************************************************
	1561	PROGRAM HALTS
		*****************************************************************

		1563	SUBROUTINE ERROR HALT

		1593	FATAL PROGRAM ERROR HALT

		*****************************************************************
	1616	PROGRAM NAME PRINTER
		*****************************************************************

		1618	PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE

		*****************************************************************
	1661	*SUBRTN* INTERRUPT HANDLING ROUTINES
		*****************************************************************

		1664	PUSH DOWN LIST EXCESSIVE POPJ ROUTINE

		1671	INTERRUPT ROUTINE INITIALIZATION

		1692	INTERRUPT TABLES

		1742	TOPS20 CONTROL G ROUTINE

		1771	TOPS20 INTERRUPT PROCESSOR

		1818	TOPS10 USER INTERRUPT HANDLER

		1849	COMMON INTERRUPT HANDLERS
			PRINT CAUSE AND OTHER PERTINENT INFO

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 10            
                                                                                                                           SEQ 0073
		*****************************************************************
	1871	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
		*****************************************************************

		1873	END OF PASS ROUTINE

		1895	END OF PROGRAM ROUTINE

		*****************************************************************
	1904	*SUBRTN* MEMORY MANAGMENT ROUTINES
		*****************************************************************

		1907	THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
			ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
				$MPCNK	(MAPCNK)	ACTUAL MEMORY CHUNK MAPPER
				$MPSET	(MAPSET)	SETS UP PAGE MAP FOR KI10
				$MSEG	(MEMSEG)	SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
				$MZRO	(MEMZRO)	ZERO'S THE MAPPED MEMORY
				$MPADR	(MAPADR)	VIRTUAL TO PHYSICAL ADDRESS TRANSLATION

		1924	MEMSEG, ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
					  11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
					  USER MODE, 1-37 ALWAYS RETURNS 0
				  	  GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
			RETURNED IN AC0:
					  0 - NO MEMORY AVAILABLE
					  START ADDRESS,,END ADDRESS
			RETURNS +1

		1953	PHYSICAL CORE ASSIGNMENT

		1989	MEMZRO, ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
			MAPNEW = 0	 DIRECT MEMORY ZERO

		2014	MAPADR, VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
			SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE

		2058	MAPPNT, PRINT MEMORY MAP

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 11            
                                                                                                                           SEQ 0074
		*****************************************************************
	2099	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE
		*****************************************************************

		2110	ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE

		2142	CHANGE THE DEVICE CODE LIST

		2156	INPUT OLD CODE AND CHECK FOR VALIDITY

		2173	GET THE OLD/NEW CODE FROM DEVICE CODE LIST

		2200	DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
			 AC0 = [OLD,,NEW]

		*****************************************************************
	2214	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
		*****************************************************************

		2216	INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
			USER MODE IF NON-TTY SWITCH CONTROL

		2239	SWITCH INITIALIZATION ROUTINE

		2263	SWITCH INITIALIZATION ROUTINE

		2343	PROMPT FOR SWITCHES

		2391	PROCESS PROMPT
				CONTROL Z, ENDS PROMPTING
				UPARROW, BACK UP ONE PROMPT
				Y, SET SWITCH
				N, DON'T SET SWITCH
				CR, DON'T SET SWITCH

		*****************************************************************
	2438	*SUBRTN* TELETYPE INPUT ROUTINES
		*****************************************************************

		2441	CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
			CHARACTER OR NUMBER RETURNED IN AC0.
			CALL SEQUENCE IS AS FOLLOWS:
				NAME
				NO/ERROR RESPONSE RETURN (+ 1)
				NORMAL RESPONSE RETURN (+ 2)
			$OPTLK =	INPUT ANY CHARACTER
			$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
			$NOYES =	ASK QUESTION, CORRECT RESPONSE N
			$TPOCT =	INPUT UP TO 12 OCTALS
			$TPDEC =	INPUT UP TO 11 DECIMALS
			$TPCNV =	INPUT UP TO 9 CONVERT'S
			$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
			$TALTM =	KEYBOARD, ALT-MODE CHECK
			$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 12            
                                                                                                                           SEQ 0075
		2458	TELETYPE INPUT INITIALIZATION

		2464	CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
			RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED

		2490	TELETYPE IMAGE MODE INPUT
			PROVIDES UNBUFFERED MODE INPUT
			WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED

		2517	TELETYPE ALT-MODE CHECK ROUTINE

		2540	TELETYPE INPUT CHARACTER 

		2580	CHARACTER PROCESSING ROUTINE FOR INPUT
			CHARACTER RETURNED IN AC0 IS UPPER CASE
			ACTUAL CHARACTER IS IN $TTCHR

		*****************************************************************
	2615	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
		*****************************************************************

		2618	ACCEPTS Y OR N
			FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
			FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
			'Y OR N <CR> - ' ASKED UPON ENTRY

		*****************************************************************
	2662	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
		*****************************************************************

		2665	ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
			NUMBER RETURNED IN AC0.

		2686	INPUT AND COMPUTE NUMBER

		2709	CHECK FOR PROPER AMOUNT OF CHARACTERS

		2734	NUMBER COMPUTING CONSTANTS

		2757	CONVERT CONVERSION ROUTINE

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 13            
                                                                                                                           SEQ 0076
		*****************************************************************
	2781	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
		*****************************************************************

		2784	INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
			SIXBIT WORD RETURNED IN AC0

		*****************************************************************
	2819	*SUBRTN* PRINT SUBROUTINES
		*****************************************************************

		2822		$PNTSX		PRINT SIXBIT NORMAL
				$PTSXF		PRINT SIXBIT FORCED
				$PNTCW		PRINT DF10 CONTROL WORD
				$PNTI1		PRINT OCTAL NUMBER
				$CHRPN		PRINT CHARACTER
				$ASCPN		PRINT ASCII CHARACTER/LINE
				$DECPN		PRINT DECIMAL NUMBER

		2832	PRINT SUBROUTINE INITIALIZATION
			INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE

		2869	PRINT SUBROUTINE ENTRY POINT
			EXIT VIA $PNTI4 BELOW

		2904	PRINT ROUTINE EXIT

		2917	PRINT LIMIT WARNING & ALTERNATE EXIT PATH

		2937	PRINT ROUTINE SELECTOR
			BASED ON "AC FIELD" = 12 - 17

		2967	SIXBIT PRINT SUBROUTINE
			PRINTS SIXBIT WORD IN AC0

		2971	NORMAL PRINTOUT

		2984	FORCED PRINTOUT

		2997	SIXBIT MESSAGE PRINT ROUTINE
			PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
			"BACKARROW" (77) SIGNIFIES END OF TEXT
			"UPARROW" (76) SIGNIFIES CR/LF
			"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB

		3047	OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
			PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
			PRINTS MINUS SIGN IF NUMBER IS NEGATIVE

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 14            
                                                                                                                           SEQ 0077
		3096	DF10 CONTROL WORD PRINT ROUTINE
			PRINTS WORD IN AC0
			DF22F = 0, ######  ######  ,18 BIT DF10
			       -1, ##### ########  ,22 BIT DF10

		3143	OCTAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

		3175	ASCII/CHARACTER PRINTOUT ROUTINE
			PRINTS CHAR IN LOWER 7 BITS OF AC0

		3185	PRINTS ASCII WHOSE ADDRESS IS IN AC0

		3204	DECIMAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

		*****************************************************************
	3239	*SUBRTN*  CHARACTER OUTPUT ROUTINES
		*****************************************************************

		3242	OUTPUT TERMINATION CONTROL ROUTINE

		3249	OVERALL CHARACTER OUTPUT CONTROL ROUTINE

		3276	USER MODE LF & CR FILLERS

		3292	RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT

		3297	USER MODE CHARACTER OUTPUT

		3325	USER MODE LOGICAL DEVICE OUTPUT

		3334	TOPS-20 TTY OUTPUT

		3363	 LOGICAL DEVICE OUTPUT ROUTINES

		3377	LOGICAL DEVICE INITIALIZATION
			PHY DEV ASSIGNED AT RUN TIME

		3421	USER MODE CLOSE FILE

		3468	TOPS10, LOGICAL DEVICE OUTPUT

		3479	$INT10, TOPS10 INITIALIZE LOGICAL OUTPUT

		3508	USER MODE CLOSE FILE

SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER  00.24   23-MAR-78 15:27:13   PAGE 15            
                                                                                                                           SEQ 0078
		*****************************************************************
	3534	*STOR* RESERVED STORAGE
		*****************************************************************
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 1
SUBRTT	MAC	23-Mar-78 15:07		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977                                SEQ 0079

     1					;*MAINDEC-10-DDQDA (SUBRTN)
     2
     3			000014		DECVER=014
     4			000000		MCNVER=000
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^
    13
    14	000137					LOC	137
    15	000137	000000	000014		MCNVER,,DECVER
    16
    17					;*COPYRIGHT 1974,1975,1976,1977,1978
    18					;*DIGITAL EQUIPMENT CORPORATION
    19					;*MARLBORO, MASS.
    20
    21					;*JOHN R. KIRCHOFF
    22
    23						NOSYM
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2
SUBRTT	MAC	23-Mar-78 15:07		*SUBRTN* SPECIAL ASSEMBLY PARAMETERS                                               SEQ 0080

    24					SUBTTL	*SUBRTN* SPECIAL ASSEMBLY PARAMETERS
    25
    26					;*ASSEMBLY PARAMETERS
    27
    28			000001		KL10==1
    29			000001		KL10P0==1
    30			000001		KI10==1
    31			000001		KA10==1
    32			000001		MEMMAP==1
    33			000001		PGMEND==1
    34			000001		EXCASB==1
    35			000001		USRASB==1
    36			000000		DEBUG==00
    37			001000		MODDVL==START
    38			007573		MODDVU==ENDSLD
    39			030000		SADR1=BEGIN
    40			030000		SADR2=BEGIN
    41			030000		SADR3=BEGIN
    42			030000		SADR4=BEGIN
    43			030000		SADR5=BEGIN
    44			030000		SADR6=BEGIN
    45			030000		SADR7=BEGIN
    46			030000		SADR8=BEGIN
    47			030000		SADR9=BEGIN
    48			030000		SADR10=BEGIN
    49			030000		SADR11=BEGIN
    50
    51		123456	123456		PAREA1=123456,,123456
    52			000000		PAREA2=0
    53		636542	626456		PAREA3=SIXBIT/SUBRTN/
    54		645560	000000		PAREA4=SIXBIT/TMP/
    55			000000		PAREA5=0
    56			000000		PAREA6=0
    57			000001		ITERAT=1
    58
    59			000001		$PAPER==1
    60
    61					;*A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
    62
    63						DEFINE	$MDSXB	(A,B)<
    64						<SIXBIT/A/>!B		;A DEVICE CODE IS B>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 3
SUBRTT	MAC	23-Mar-78 15:07		*SUBRTN* SPECIAL ASSEMBLY PARAMETERS                                               SEQ 0081

    65					;*DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
    66					S^;*********************************************************************^
    67
    68			000000		AC0=	0
    69			030000		DIAGNOS=30000		;PDP-10 DIAGNOSTIC START ADDRESS
    70			010000		DDT=	10000		;PDP-10 DDT START ADDRESS
    71			020000		DIAMON=	20000		;PDP-10 DIAMON LOADER START ADDRESS
    72			020007		DIASWS=	20007		;DIAMON LH SWITCHES
    73			020000		DONG11=	1B22		;11 DOORBELL (FROM THE 10)
    74			001000		DING10=	1B26		;10 DOORBELL (FROM THE 11)
    75			001000		DNG10C=	1B26		;10 DOORBELL CLEAR
    76
    77			000024		MTR=	24		;METER CODE
    78			000020		TIM=	20		;METER CODE
    79
    80					;*DTE20 DEVICE CODES
    81					S^;*********************************************************************^
    82
    83			000200		DTE==	200		;DTE0
    84			000200		DTE0==	200
    85			000204		DTE1==	204
    86			000210		DTE2==	210
    87			000214		DTE3==	214
    88
    89					;*KL10 EPT COMMUNICATION AREA
    90					S^;*********************************************************************^
    91
    92			000440		$STD=	440		;PDP-10 DIAGNOSTIC START ADDRESS
    93			000441		$DDT=	441		;PDP-10 DDT START ADDRESS
    94			000442		$STL=	442		;PDP-10 LOADER START ADDRESS
    95			000443		$STM=	443		;PDP-10 MONITOR START ADDRESS
    96
    97			000444		$DTFLG=	444		;DTE20 OPERATION COMPLETE FLAG
    98			000445		$DTCLK=	445		;DTE20 CLOCK INTERRUPT FLAG
    99			000446		$DTCI=	446		;DTE20 CLOCK INTERRUPT INSTRUCTION
   100			000447		$DTT11=	447		;DTE20 10 TO 11 ARGUMENT
   101			000450		$DTF11=	450		;DTE20 11 TO 10 ARGUMENT
   102			000451		$DTCMD=	451		;DTE20 TO 11 COMMAND WORD
   103			000452		$DTSEQ=	452		;DTE20 OPERATION SEQUENCE NUMBER
   104			000453		$DTOPR=	453		;DTE20 OPERATIONAL DTE #
   105			000454		$DTCHR=	454		;DTE20 LAST TYPED CHARACTER
   106			000455		$DTMTD=	455		;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
   107			000456		$DTMTI=	456		;DTE20 MONITOR TTY INPUT FLAG
   108			000457		$DTSWR=	457		;DTE20 10 SWITCH REGISTER
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 1
PARAM	KLM	 1-Aug-77 08:33		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977                                SEQ 0082

   109					SUBTTL	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
   110
   111					DEFINE	S,<;*********************************************************************>
   112
   113					S^;*********************************************************************^
   114					;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
   115					;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
   116					;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
   117					S^;*********************************************************************^
   118
   119			400000		ABORT==	400000			;ABORT PROGRAM ON PASS COMPLETION
   120			200000		RSTART==200000			;RESTART TEST, PRINT TOTALS
   121			100000		TOTALS==100000			;PRINT TOTALS, CONTINUE
   122
   123			040000		NOPNT==	040000			;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
   124			020000		PNTLPT==020000			;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
   125			010000		DING==	010000			;RING BELL ON ERROR
   126
   127			004000		LOOPER==004000			;ENTER EXERCISE/CHECK LOOP ON ERROR
   128			002000		ERSTOP==002000			;HALT ON TEST ERROR
   129			001000		PALERS==001000			;PRINT ALL ERRORS
   130
   131			000400		RELIAB==000400			;RELIABILITY MODE
   132			000200		TXTINH==000200			;INHIBIT ERROR TEXT
   133			000100		INHPAG==000100			;INHIBIT PAGING
   134
   135			000040		MODDVC==000040			;MODIFY DEVICE CODE
   136			000020		INHCSH==000020			;INHIBIT CACHE
   137			000010		OPRSEL==000010			;OPERATOR SELECTION
   138
   139			000004		CHAIN==	000004			;CHAIN CONTROL SWITCH
   140
   141			000002		KAHZ50==000002			;KA10 50 HERTZ POWER
   142
   143									;SWITCH 17 RESERVED !!!
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0083

   144					SUBTTL	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
   145
   146					S^;*********************************************************************^
   147					;*SPECIAL SUBPROGRAM LINKAGES
   148					S^;*********************************************************************^
   149
   150			027772		FSELNK=	27772	;FILE SELECT LINK
   151			027773		FRDLNK=	27773	;FILE READ LINK
   152			027774		LDLNK=	27774	;LOAD LINKAGE ADDRESS
   153			027775		DDTLNK=	27775	;DDT LINKAGE ADDRESS
   154			027776		MODLNK=	27776	;OPERATIONAL MODE CHECK LINKAGE ADDRESS
   155			027777		SUBLNK=	27777	;SUBROUTINE LINKAGE ADDRESS
   156
   157					S^;*********************************************************************^
   158					;*SPECIAL SUBROUTINE FATAL HALTS
   159					;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
   160					S^;*********************************************************************^
   161
   162					;ADDRESS   TAG	REASON
   163					;---------------------
   164
   165					; 1010 	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
   166					; 1011  PLERR	;FATAL PUSH LIST POINTER ERROR
   167					; 1012  PLERR1	;INITIAL PUSH LIST POINTER ERROR
   168					; 1013  MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
   169					; 1014  DTEBER	;DTE20 INTERRUPT WITHOUT DOORBELL
   170					; 1015  DTECER	;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
   171					; 1016  CPIERR	;CPU INITIALIZATION ERROR
   172					; 1017  EOPERR	;END OF PROGRAM ERROR
   173					; 1020  LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT
   174
   175					S^;*********************************************************************^
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 3
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0084

   176					S^;*********************************************************************^
   177					;OPERATOR DEFINITIONS (NON-UUO'S)
   178					S^;*********************************************************************^
   179
   180		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
   181		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
   182		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
   183		262740	000000		OPDEF	GET	[POP	P,]	;GET DATA FROM PUSH LIST 
   184		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
   185		254200	000000		OPDEF	HALT	[JRST	4,]	;DEFINITION FOR DDT
   186		254100	000000		OPDEF	JRSTF	[JRST	2,]	;DEFINITION FOR DDT
   187		254500	000000		OPDEF	JEN	[JRST	12,]	;DEFINITION FOR DDT
   188
   189					S^;*********************************************************************^
   190					;*SUBROUTINE INITIALIZATION CALL
   191					S^;*********************************************************************^
   192
   193		265000	030011		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
   194
   195					S^;*********************************************************************^
   196					;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
   197					S^;*********************************************************************^
   198
   199		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
   200		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
   201
   202					S^;*********************************************************************^
   203					;*TERMINAL INPUT UUO'S
   204					;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
   205					;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
   206					S^;*********************************************************************^
   207
   208		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
   209		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
   210		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
   211		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
   212		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
   213		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
   214		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
   215		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
   216		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
   217		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
   218		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 4
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0085

   219					;*TERMINAL OUTPUT UUO'S.
   220
   221		037000	000000		OPDEF	PNTA	[37B8!0B12!0]	;PRINT ASCII WORD
   222		037000	000001		OPDEF	PNTAF	[37B8!0B12!1]	;PRINT ASCII WORD FORCED
   223		037740	000000		OPDEF	PNTAL	[37B8!17B12!0]	;PRINT ASCIZ LINE
   224		037740	000001		OPDEF	PNTALF	[37B8!17B12!1]	;PRINT ASCIZ LINE FORCED
   225		037600	000003		OPDEF	PSIXL	[37B8!14B12!3]	;PRINT SIXBIT'Z LINE
   226		037640	000003		OPDEF	PSIXLF	[37B8!15B12!3]	;PRINT SIXBIT'Z LINE FORCED
   227		037000	000000		OPDEF	PNTMSG	[37B8!0B12!0]	;PRINT MESSAGE IMMEDIATE
   228		037040	000000		OPDEF	PNTMSF	[37B8!1B12!0]	;PRINT MESSAGE IMMEDIATE FORCED
   229		037100	000000		OPDEF	PSIXM	[37B8!2B12!0]	;PRINT SIXBIT'Z MSG IMMEDIATE
   230		037200	000000		OPDEF	PSIXMF	[37B8!4B12!0]	;PRINT SIXBIT'Z MSG IMM FORCED
   231		037000	000000		OPDEF	PNTCI	[37B8!0B12!0]	;PRINT CHARACTER IMMEDIATE
   232		037040	000000		OPDEF	PNTCIF	[37B8!1B12!0]	;PRINT CHARACTER IMMEDIATE FORCED
   233		037500	000000		OPDEF	PNTCHR	[37B8!12B12!0]	;PRINT CHARACTER
   234		037500	000001		OPDEF	PNTCHF	[37B8!12B12!1]	;PRINT CHARACTER FORCED
   235		037040	000000		OPDEF	PNT1	[37B8!1B12!0]	;PRINT ONE OCTAL DIGIT
   236		037040	000001		OPDEF	PNT1F	[37B8!1B12!1]	;PRINT 1 OCTAL DIGIT FORCED	
   237		037100	000000		OPDEF	PNT2	[37B8!2B12!0]	;PRINT TWO OCTAL DIGITS
   238		037100	000001		OPDEF	PNT2F	[37B8!2B12!1]	;PRINT 2 OCTAL DIGITS FORCED	
   239		037140	000000		OPDEF	PNT3	[37B8!3B12!0]	;PRINT THREE OCTAL DIGITS
   240		037140	000001		OPDEF	PNT3F	[37B8!3B12!1]	;PRINT THREE OCTAL DIGITS FORCED	
   241		037200	000000		OPDEF	PNT4	[37B8!4B12!0]	;PRINT FOUR OCTAL DIGITS
   242		037200	000001		OPDEF	PNT4F	[37B8!4B12!1]	;PRINT FOUR OCTAL DIGITS FORCED
   243		037240	000000		OPDEF	PNT5	[37B8!5B12!0]	;PRINT FIVE OCTAL DIGITS
   244		037240	000001		OPDEF	PNT5F	[37B8!5B12!1]	;PRINT FIVE OCTAL DIGITS FORCED
   245		037300	000000		OPDEF	PNT6	[37B8!6B12!0]	;PRINT SIX OCTAL DIGITS
   246		037300	000001		OPDEF	PNT6F	[37B8!6B12!1]	;PRINT SIX OCTAL DIGITS FORCED
   247		037340	000000		OPDEF	PNT7	[37B8!7B12!0]	;PRINT 7 OCTAL DIGITS
   248		037340	000001		OPDEF	PNT7F	[37B8!7B12!1]	;PRINT 7 OCTAL DIGITS FORCED
   249		037440	000000		OPDEF	PNT11	[37B8!11B12!0]	;PRINT 11 OCTAL DIGITS
   250		037440	000001		OPDEF	PNT11F	[37B8!11B12!1]	;PRINT 11 OCTAL DIGITS FORCED.
   251		037400	000000		OPDEF	PNTADR	[37B8!10B12!0]	;PRINT PHYSICAL ADDRESS
   252		037400	000001		OPDEF	PNTADF	[37B8!10B12!1]	;PRINT PHYSICAL ADDRESS FORCED
   253		037600	000000		OPDEF	PNTOCT  [37B8!14B12!0]	;PRINT FULL WORD OCTAL
   254		037600	000001		OPDEF	PNTOTF	[37B8!14B12!1]	;PRINT FULL WORD OCTAL FORCED
   255		037540	000000		OPDEF	PNTHW	[37B8!13B12!0]	;PRINT OCTAL HALF WORDS, 6 SP 6
   256		037540	000001		OPDEF	PNTHWF	[37B8!13B12!1]	;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
   257		037700	000003		OPDEF	PNTOCS	[37B8!16B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S
   258		037740	000003		OPDEF	PNTOCF	[37B8!17B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
   259		037640	000000		OPDEF	PNTDEC	[37B8!15B12!0]	;PRINT DECIMAL, SUPRESS LEADING 0'S
   260		037640	000001		OPDEF	PNTDCF	[37B8!15B12!1]	;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
   261		037700	000000		OPDEF	PNTDS	[37B8!16B12!0]	;PRINT DECIMAL, SPACES FOR LD 0'S
   262		037700	000001		OPDEF	PNTDSF	[37B8!16B12!1]	;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 5
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0086

   263		037200	000002		OPDEF	PNTNM	[37B8!4B12!2]	;PRINT PROGRAM NAME
   264		037000	000002		OPDEF	PNTSIX	[37B8!0B12!2]	;PRINT SIXBIT WORD
   265		037040	000002		OPDEF	PNTSXF	[37B8!1B12!2]	;PRINT SIXBIT WORD FORCED
   266		037240	000002		OPDEF	DROPDV	[37B8!5B12!2]	;CLOSE LOGICAL FILE, USER MODE
   267		037100	000002		OPDEF	PNTCW	[37B8!2B12!2]	;PRINT DF10 CONTROL WORD
   268		037140	000002		OPDEF	PNTCWF	[37B8!3B12!2]	;PRINT DF10 CONTROL WORD FORCED
   269		037000	030242		OPDEF	PCRL	[37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
   270		037040	030242		OPDEF	PCRLF	[37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
   271		037000	000040		OPDEF	PSP	[37B8!0B12!40]	;PRINT SPACE
   272		037040	000040		OPDEF	PSPF	[37B8!1B12!40]	;PRINT SPACE FORCED
   273		037000	030243		OPDEF	PCRL2	[37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
   274		037040	030243		OPDEF	PCRL2F	[37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
   275		037040	000007		OPDEF	PBELL	[37B8!1B12!7]	;PRINT TTY BELL
   276
   277		037040	000026		OPDEF	PFORCE	[37B8!1B12!26]	;PRINT FORCE, CONTROL O OVERRIDE
   278
   279					DEFINE	PMSG	(ARG),<
   280						PSIXM	[SIXBIT\ARG'_\]>
   281
   282					DEFINE	PMSGF	(ARG),<
   283						PSIXMF	[SIXBIT\ARG'_\]>
   284
   285					;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
   286					;*	CONSERVES CORE OVER ASCIZ
   287
   288					DEFINE	SIXBTZ	(ARG),<	[SIXBIT\ARG'_\]>
   289
   290					;*CONSOLE SWITCH INPUT UUO.
   291					;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
   292					;* USER MODE.
   293
   294		037400	000002		OPDEF	SWITCH	[37B8!10B12!2]	;INPUT CONSOLE SWITCHES
   295
   296					;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
   297					;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
   298
   299		037540	000004		OPDEF	CLOKOP	[37B8!13B12!4]	;CLOCK OPERATION UUO - PDP-11 CLOCK
   300		037200	000004		OPDEF	MTROP	[37B8!4B12!4]	;CLOCK OPERATION UUO - DK20 METER
   301
   302					;*KL10 ONLY CACHE OPERATION UUO'S
   303
   304		037040	000004		OPDEF	CINVAL	[37B8!1B12!4]	;CACHE INVALIDATE
   305		037100	000004		OPDEF	CFLUSH	[37B8!2B12!4]	;CACHE FLUSH
   306		037140	000004		OPDEF	CWRTBI	[37B8!3B12!4]	;CACHE WRITE-BACK & INVALIDATE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 6
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0087

   307					;*END OF PASS/PROGRAM UUOS
   308
   309					;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
   310					;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
   311
   312		037500	000004		OPDEF	ENDUUO	[37B8!12B12!4]	;UUO TO DISPLAY LIGHTS
   313		037700	000004		OPDEF	EOPUUO	[37B8!16B12!4]	;END OF PROGRAM UUO
   314
   315					;*MEMORY MANAGEMENT UUO'S
   316					;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
   317					;*ADDRESS CONVERSION, ETC...
   318
   319		037000	000004		OPDEF	MAPMEM	[37B8!0B12!4]	;MAP MEMORY
   320		037500	000002		OPDEF	MEMZRO	[37B8!12B12!2]	;ZERO MEMORY
   321		037440	000002		OPDEF	MEMSEG	[37B8!11B12!2]	;SETUP MEMORY SEGMENT
   322		037540	000002		OPDEF	MAPADR	[37B8!13B12!2]	;VIRTUAL TO PHYSICAL ADR CONVERT
   323		037640	000002		OPDEF	MAPCNK	[37B8!15B12!2]	;MAP MEMORY CHUNK
   324		037600	000002		OPDEF	MAPSET	[37B8!14B12!2]	;SET KI10 EXEC PAGE MAP
   325		037740	000002		OPDEF	MAPPNT	[37B8!17B12!2]	;PRINT MEMORY MAP
   326
   327					;*DEVICE CODE MODIFICATION UUO
   328					;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
   329					;*IOT'S TO A DIFFERENT DEVICE CODE.
   330
   331		037340	000002		OPDEF	MODPCU	[37B8!7B12!2]	;MODIFY PERHIPERAL CODE, USER
   332		037300	000002		OPDEF	MODPCP	[37B8!6B12!2]	;MODIFY PERHIPERAL CODE, PROGRAM
   333
   334						IFNDEF	MODDVL,<MODDVL==BEGIN>
   335						IFNDEF	MODDVU,<MODDVU==BEGIN>
   336
   337					;*"DIAMON" FILE SELECTION AND READ UUOS
   338
   339		037240	000004		OPDEF	FSELECT	[37B8!5B12!4]	;FILE SELECTION
   340		037300	000004		OPDEF	FREAD	[37B8!6B12!4]	;FILE READ - ASCII DATA
   341		037340	000004		OPDEF	FRD36	[37B8!7B12!4]	;FILE READ - 36 BIT DATA
   342		037400	000004		OPDEF	FRD8	[37B8!10B12!4]	;FILE READ - 8 BIT DATA
   343
   344					;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
   345
   346		037700	000002		OPDEF	PNTMGN	[37B8!16B12!2]	;PRINT MARGIN VALUE
   347
   348						XLIST
   349					IFNDEF	KLOLD,<LIST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 7
PARAM	KLM	 1-Aug-77 08:33		ERROR HANDLING UUO DEFINITIONS, JAN 5,1976                                         SEQ 0088

   350					SUBTTL	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
   351
   352					S^;*********************************************************************^
   353					;*ERROR HANDLER PARAMETERS
   354					S^;*********************************************************************^
   355
   356		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
   357		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
   358		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
   359		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
   360		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
   361
   362					;*THE ERROR HANDLER MACROS
   363
   364					;*A MACRO TO REPORT AN ERROR AND LOOP
   365
   366						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
   367												SALL
   368						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   369							   CORECT,,ACTUAL
   370							   [SIXBIT\D'_\],,ERR]
   371												XALL
   372						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
   373					>
   374
   375					;*A MACRO TO REPORT AN ERROR AND NOT LOOP
   376
   377						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
   378												SALL
   379						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   380							   CORECT,,ACTUAL
   381							   [SIXBIT\D'_\],,ERR]
   382												XALL>
   383
   384					>;END OF KLOLD CONDITIONAL
   385
   386						XLIST
   387					IFDEF	$PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 8
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0089

   388					SUBTTL	STANDARD PROGRAM ASSIGNMENTS
   389
   390					S^;*********************************************************************^
   391					;*ACCUMULATORS
   392					S^;*********************************************************************^
   393
   394			000017		P=	17			;PUSHDOWN POINTER AC (IF PUSH LIST USED)
   395			000015		REPT==	15			;ERROR HANDLER REPEAT AC
   396			000016		REPT1==	16			; "
   397
   398					S^;*********************************************************************^
   399					;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
   400					S^;*********************************************************************^
   401
   402			400000		AROV==	400000			;ARITHMETIC OVERFLOW
   403			200000		CRY0==	200000			;CARRY 0
   404			100000		CRY1==	100000			;CARRY 1
   405			040000		FOV==	40000			;FLOATING POINT OVERFLOW
   406			020000		BIS==	20000			;BYTE INTERRUPT
   407			010000		USERF==	10000			;USER MODE
   408			004000		EXIOT==	4000			;USER PRIV I/O
   409			000100		FXU==	100			;FLOATING POINT UNDERFLOW
   410			000040		DCK==	40			;DIVIDE CHECK
   411
   412					S^;*********************************************************************^
   413					;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
   414					S^;*********************************************************************^
   415
   416			000040		LUUO==	40			;UUO STORAGE, UUO 1-37
   417			000041		LUUOI==	41			;UUO SERVICE INSTRUCTION
   418
   419					S^;*********************************************************************^
   420					;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
   421					S^;*********************************************************************^
   422
   423			000040		JOBUUO==40
   424			000041		JOB41==	41
   425			000044		JOBREL==44
   426			000074		JOBDDT==74
   427			000116		JOBSYM==116
   428			000117		JOBUSY==117
   429			000120		JOBSA==	120
   430			000121		JOBFF==	121
   431			000124		JOBREN==124
   432			000125		JOBAPR==125
   433			000126		JOBCNI==126
   434			000127		JOBTPC==127
   435			000130		JOBOPC==130
   436			000137		JOBVER==137
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 9
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0090

   437					S^;*********************************************************************^
   438					;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
   439					S^;*********************************************************************^
   440
   441			000040		.JBUUO==40
   442			000041		.JB41==	41
   443			000044		.JBREL==44
   444			000074		.JBDDT==74
   445			000116		.JBSYM==116
   446			000117		.JBUSY==117
   447			000120		.JBSA==	120
   448			000121		.JBFF==	121
   449			000124		.JBREN==124
   450			000125		.JBAPR==125
   451			000126		.JBCNI==126
   452			000127		.JBTPC==127
   453			000130		.JBOPC==130
   454			000137		.JBVER==137
   455
   456					S^;*********************************************************************^
   457					;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
   458					S^;*********************************************************************^
   459
   460			200000		PDLOVU==200000			;PUSHDOWN LIST OVERFLOW
   461			020000		MPVU==	20000			;MEMORY PROTECTION VIOLATION
   462			010000		NXMU==	10000			;NON-X-MEMORY
   463			004000		PARU==	4000			;PARITY ERROR
   464			001000		CLKU==	1000			;CLOCK
   465			000100		FOVU==	100			;FLOATING OVERFLOW
   466			000010		AROVU==	10			;ARITHMETIC OVERFLOW
   467
   468					S^;*********************************************************************^
   469					;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
   470					;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
   471					;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
   472					S^;*********************************************************************^
   473
   474			000017		$DEVCH==17			;LOGICAL DEVICE CHANNEL
   475			000016		$DVCH1==16			;LOGICAL DEV UPDATE INPUT CHANNEL
   476
   477					S^;*********************************************************************^
   478					;*PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
   479					S^;*********************************************************************^
   480
   481			000010		PAG==	010		;PAGING I/O DEVICE CODE, KI/KL
   482
   483			000014		CCA==	014		;CACHE I/O DEVICE CODE, KL10
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 10
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0091

   484					S^;*********************************************************************^
   485					;*PDP-10 STANDARD APR CONO ASSIGNMENTS
   486					S^;*********************************************************************^
   487
   488			200000		IOCLR==	200000			;CLEAR ALL I/O DEVICES
   489			004000		CLKDIS==4000			;DISABLE CLOCK INTERRUPTS
   490			002000		CLKENB==2000			;ENABLE CLOCK INTERRUPTS
   491			001000		CLKCLR==1000			;CLEAR CLOCK FLAG
   492
   493					S^;*********************************************************************^
   494					;*PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
   495					S^;*********************************************************************^
   496
   497			002000		CLKENB==2000			;CLOCK INTERRUPT ENABLED
   498			001000		CLK==	1000			;CLOCK FLAG
   499			010000		ANXM==	10000			;KA10, NON-X-MEMORY
   500			000100		INXM==	100			;KI10
   501
   502					S^;*********************************************************************^
   503					;*PDP-10 STANDARD PI CONO ASSIGNMENTS
   504					S^;*********************************************************************^
   505
   506			400000		PWFCLR==400000			;CLEAR POWER FAIL FLAG
   507			200000		PARCLR==200000			;CLEAR PARITY ERROR FLAG
   508			100000		PARDIS==100000			;DISABLE PARITY INTERRUPTS
   509			040000		PARENB==40000			;ENABLE PARITY INTERRUPTS
   510			010000		PICLR==	10000			;CLEAR PI SYSTEM
   511			004000		REQSET==4000			;SET PROGRAM PI REQUEST
   512			002000		CHNON==	2000			;TURN ON CHANNEL
   513			001000		CHNOFF==1000			;TURN OFF CHANNEL
   514			000400		PIOFF==	400			;TURN OFF PI SYSTEM
   515			000200		PION==	200			;TURN ON PI SYSTEM
   516
   517					S^;*********************************************************************^
   518					;*PDP-10 STANDARD PI CONI ASSIGNMENTS
   519					S^;*********************************************************************^
   520
   521			000200		PION==	200			;PI SYSTEM ON
   522
   523					S^;*********************************************************************^
   524					;*PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
   525					S^;*********************************************************************^
   526
   527			000100		PICHN1==100			;PI CHANNEL 1
   528			000040		PICHN2==40			;PI CHANNEL 2
   529			000020		PICHN3==20			;PI CHANNEL 3
   530			000010		PICHN4==10			;PI CHANNEL 4
   531			000004		PICHN5==4			;PI CHANNEL 5
   532			000002		PICHN6==2			;PI CHANNEL 6
   533			000001		PICHN7==1			;PI CHANNEL 7
   534			000177		PICHNA==177			;ALL PI CHANNELS, 1 THRU 7
   535						XLIST
   536					IFDEF	$PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 11
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0092

   537					S^;*********************************************************************^
   538					;*KA10 APR CHANNEL ASSIGNMENTS
   539					S^;*********************************************************************^
   540
   541			000001		AAPRC1==1			;APR INTERRUPT CHANNEL
   542
   543					S^;*********************************************************************^
   544					;*KA10 APR CONO ASSIGNMENTS
   545					S^;*********************************************************************^
   546
   547			400000		APDCLR==400000			;CLEAR PUSHDOWN OVERFLOW
   548			040000		AABCLR==40000			;CLEAR ADDRESS BREAK
   549			020000		AMPCLR==20000			;CLEAR MEMORY PROTECTION
   550			010000		ANXCLR==10000			;CLEAR NON-X-MEMORY
   551			000400		AFODIS==400			;DISABLE FLOATING POINT OVERFLOW
   552			000200		AFOENB==200			;ENABLE FLOATING POINT OVERFLOW
   553			000100		AFOCLR==100			;CLEAR FLOATING POINT OVERFLOW
   554			000040		AOVDIS==40			;DISABLE OVERFLOW
   555			000020		AOVENB==20			;ENABLE OVERFLOW
   556			000010		AOVCLR==10			;CLEAR OVERFLOW
   557
   558					S^;*********************************************************************^
   559					;*KA10 APR CONI ASSIGNMENTS
   560					S^;*********************************************************************^
   561
   562			200000		APDLOV==200000			;PUSHDOWN OVERFLOW
   563			100000		AUSRIO==100000			;USER I/O
   564			040000		AADRBK==40000			;ADDRESS BREAK
   565			020000		AMPV==	20000			;MEMORY PROTECTION VIOLATION
   566			010000		ANXM==	10000			;NON-EXISTENT MEMORY
   567			000200		AFOENB==200			;FLT PT INTERRUPT ENABLED
   568			000100		AFOV==	100			;FLOATING POINT OVERFLOW
   569			000040		ATRPOS==40			;TRAPS OFFSET
   570			000020		AOVENB==20			;OVERFLOW INTERRUPT ENABLED
   571			000010		AOVFLO==10			;ARITHMETIC OVERFLOW
   572
   573					S^;*********************************************************************^
   574					;*KA10 PI CONI ASSIGNMENTS
   575					S^;*********************************************************************^
   576
   577			400000		APWRFL==400000			;POWER FAILURE
   578			200000		APARER==200000			;PARITY ERROR
   579			100000		APAREN==100000			;PARITY INTERRUPT ENABLED
   580
   581					>				;END CONDITIONAL ON KA10
   582						XLIST
   583					IFDEF	$PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 12
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0093

   584					S^;*********************************************************************^
   585					;*KI10 PC CONTROL FLAGS
   586					S^;*********************************************************************^
   587
   588			002000		LIP==	2000			;LAST INSTRUCTION PUBLIC
   589			000400		TN0==	400			;TN=00, NO TRAP ;TN=01, ARITH TRAP
   590			000200		TN1==	200			;TN=10, PDL OV  ;TN=11, TRAP 3
   591
   592					S^;*********************************************************************^
   593					;*KI10 SPECIAL EXEC MODE FLAGS
   594					S^;*********************************************************************^
   595
   596			400000		UOLIP==	400000			;UUO OLD L.I.P.
   597			004000		UOUSR==	4000			;UUO OLD USER
   598
   599					S^;*********************************************************************^
   600					;*KI10 APR CHANNEL ASSIGNMENTS
   601					S^;*********************************************************************^
   602
   603			000001		IAPRC1==1			;APR CLOCK CHANNEL
   604			000010		IAPRE1==10			;APR ERROR CHANNEL
   605
   606					S^;*********************************************************************^
   607					;*KI10 APR CONO ASSIGNMENTS
   608					S^;*********************************************************************^
   609
   610			400000		ITMSET==400000			;SET TIME OUT TIMER
   611			100000		ITMDIS==100000			;DISABLE TIME OUT
   612			040000		ITMENB==40000			;ENABLE TIME OUT
   613			020000		IASRTC==20000			;CLEAR AUTO RESTART
   614			010000		IASRTS==10000			;SET AUTO RESTART
   615			000200		IIOPFC==200			;CLEAR I/O PAGE FAIL
   616			000100		INXCLR==100			;CLEAR NON-X-MEM
   617
   618					S^;*********************************************************************^
   619					;*KI10 APR CONI ASSIGNMENTS, RIGHT HALF
   620					S^;*********************************************************************^
   621
   622			400000		ITMOUT==400000			;TIMER TIMED OUT
   623			200000		IPARER==200000			;PARITY ERROR
   624			100000		IPAREN==100000			;PARITY ENABLED
   625			040000		ITMOEN==40000			;TIME OUT ENABLED
   626			020000		IPWRFL==20000			;POWER FAIL
   627			010000		IASRTE==10000			;AUTO RESTART ENABLED
   628			000200		IIOPFL==200			;I/O PAGE FAIL
   629			000100		INXM==	100			;NON-X-MEMORY
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 13
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0094

   630					S^;*********************************************************************^
   631					;*KI10 APR CONI ASSIGMENTS, LEFT HALF
   632					S^;*********************************************************************^
   633
   634			200000		IMLAPD==200000			;MEMORY OVERLAP DISABLED
   635			100000		IFMMAN==100000			;FAST MEMORY MANUAL
   636			040000		IMIPGD==40000			;MI PROGRAM DISABLE
   637			020000		ICNSLR==20000			;CONSOLE READ ONLY
   638			010000		ICNSLL==10000			;CONSOLE LOCKED
   639			004000		IP50HZ==4000			;50 HZ POWER
   640			002000		IMGINM==2000			;MANUAL MARGINS
   641			001000		IMAINT==1000			;MAINTENANCE MODE
   642			000400		IPWRLO==400			;POWER LOW
   643			000200		IMGNLO==200			;MARGIN COMPARATOR LOW
   644			000040		SENSE1==40			;SENSE SWITCHES		1
   645			000020		SENSE2==20			;			2
   646			000010		SENSE3==10			;			3
   647			000004		SENSE4==4			;			4
   648			000002		SENSE5==2			;			5
   649			000001		SENSE6==1			;			6
   650
   651					S^;*********************************************************************^
   652					;*KI10 APR DATAO ASSIGNMENTS
   653					S^;*********************************************************************^
   654
   655			020000		IEVNPR==20000			;WRITE EVEN PARITY
   656			010000		ISPDOF==10000			;SPEED MARGINS OFF
   657			004000		ISPDON==4000			;SPEED MARGINS ON
   658			002000		IMGNOF==2000			;MARGINS OFF - LH
   659			001000		IMGNON==1000			;MARGINS ON - LH
   660
   661					S^;*********************************************************************^
   662					;*KI10 PI CONO ASSIGNMENTS
   663					S^;*********************************************************************^
   664
   665			020000		IRQCLR==20000			;CLEAR PROGRAM PI REQUEST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 14
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0095

   666					S^;*********************************************************************^
   667					;*KI10 PI CONI ASSIGNMENTS
   668					S^;*********************************************************************^
   669
   670			400000		IINSTF==400000			;ADDRESS CONDITIONS, INST FETCH
   671			200000		IDATAF==200000			;	    	     DATA FETCH
   672			100000		IWRITE==100000			;		     WRITE
   673			040000		IADSTP==40000			;ADDRESS STOP
   674			020000		IADBRK==20000			;ADDRESS BREAK
   675			010000		IADEXC==10000			;ADDRESS SWITCHES EXEC
   676			004000		IADUSR==4000			;  "	  "       USER
   677			002000		IPRSTP==2000			;PARITY STOP
   678			001000		INXSTP==1000			;NON-X-MEM STOP
   679
   680					S^;*********************************************************************^
   681					;*KI10 PAG CONI ASSIGNMENTS
   682					S^;*********************************************************************^
   683
   684			000400		EXCMEM==400			;EXEC MEMORY SPACE
   685			000040		AMCLRB==40			;ASSOCIATIVE MEMORY CLEAR BIT
   686
   687					S^;*********************************************************************^
   688					;*KI10 PAG DATAO ASSIGNMENTS, LEFT HALF
   689					S^;*********************************************************************^
   690
   691			400000		LDUSRB==400000			;LOAD USER BASE REGISTER
   692			040000		SMLUSR==40000			;SMALL USER, 32K OR UNDER
   693			020000		USRCMP==20000			;USER ADR COMPARE ENABLE
   694
   695					S^;*********************************************************************^
   696					;*KI10 PAG DATAO ASSIGNMENTS, RIGHT HALF
   697					S^;*********************************************************************^
   698
   699			400000		LDEXCB==400000			;LOAD EXEC BASE REGISTER
   700			020000		TRPENB==20000			;ENABLE TRAPS
   701
   702					S^;*********************************************************************^
   703					;*KI10 PAG DATAI ASSIGNMENTS
   704					S^;*********************************************************************^
   705
   706			040000		SMLUSR==40000			;SMALL USER
   707			020000		USRCMP==20000			;USER ADR COMPARE ENABLED
   708			020000		TRPENB==20000			;RH, TRAPS ENABLED
   709
   710					S^;*********************************************************************^
   711					;*KI10 PTR DATAO ASSIGNMENTS
   712					S^;*********************************************************************^
   713
   714									;ADDRESS CONDITIONS, ADDRESS BREAK ;AS ABOVE, PI CONI
   715									;ADDRESS SWITCHES, 14-35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 15
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0096

   716					S^;*********************************************************************^
   717					;*KI10 EXEC PAGE MAP PAGE ASSIGNMENTS
   718					S^;*********************************************************************^
   719
   720			000420		PGFTRP==420			;PAGE FAULT TRAP
   721			000421		AROVTP==421			;ARITHMETIC TRAP
   722			000422		PDOVTP==422			;PUSHDOWN OVERFLOW TRAP
   723			000423		TRP3TP==423			;TRAP 3 TRAP
   724
   725					S^;*********************************************************************^
   726					;*KI10 USER PAGE MAP PAGE ASSIGNMENTS
   727					S^;*********************************************************************^
   728
   729			000420		PGFTRP==420			;PAGE FAULT TRAP
   730			000421		AROVTP==421			;ARITHMETIC TRAP
   731			000422		PDOVTP==422			;PUSHDOWN OVERFLOW TRAP
   732			000423		TRP3TP==423			;TRAP 3 TRAP
   733
   734			000424		MUUO==	424			;MUUO STORAGE
   735			000425		MUUOPC==425			;C(PC) OF MUUO STORAGE
   736
   737			000426		EXCPFW==426			;EXEC PAGE FAIL WORD
   738			000427		USRPFW==427			;USER PAGE FAIL WORD
   739
   740			000430		KNTRP==	430			;KERNAL	 	NO TRAP - NEW PC'S-
   741			000431		KTRP==	431			;"	 	TRAP
   742			000432		SNTRP==	432			;SUPERVISOR	NO TRAP
   743			000433		STRP==	433			;"		TRAP
   744			000434		CNTRP==	434			;CONCEAL 	NO TRAP
   745			000435		CTRP==	435			;"		TRAP
   746			000436		PNTRP==	436			;PUBLIC		NO TRAP
   747			000437		PTRP==	437			;"		TRAP
   748
   749					>			;END CONDITIONAL ON KI10
   750						XLIST
   751					IFDEF	$PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 18
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0097

   752					;*KL10 CONO APR 000 ASSIGMENTS
   753					S^;*********************************************************************^
   754			200000		LIOCLR==200000			;CLEAR ALL I/O DEVICES
   755			100000		LFLGEN==100000			;ENABLE SELECTED FLAG
   756			040000		LFLGDS==40000			;DISABLE SELECTED FLAG
   757			020000		LFLGCL==20000			;CLEAR SELECTED FLAG
   758			010000		LFLGST==10000			;SET SELECTED FLAG
   759			004000		LSBUSE==4000			;SBUS ERROR FLAG
   760			002000		LNXMER==2000			;NON-EXISTENT MEMORY FLAG
   761			001000		LIOPFE==1000			;I/O PAGE FAIL FLAG
   762			000400		LPARER==400			;MB PARITY ERROR FLAG
   763			000200		LCADRP==200			;CACHE ADDRESS PARITY ERROR FLAG
   764			000100		LSADRP==100			;S-BUS ADDRESS PARITY ERROR FLAG
   765			000040		LPWRFL==40			;POWER FAIL FLAG
   766			000020		LCASWD==20			;CACHE SWEEP DONE FLAG
   767			000007		LAPRP7==7			;APR PI CHANNEL 7
   768			000006		LAPRP6==6			;APR PI CHANNEL 6
   769			000005		LAPRP5==5			;APR PI CHANNEL 5
   770			000004		LAPRP4==4			;APR PI CHANNEL 4
   771			000003		LAPRP3==3			;APR PI CHANNEL 3
   772			000002		LAPRP2==2			;APR PI CHANNEL 2
   773			000001		LAPRP1==1			;APR PI CHANNEL 1
   774			104000		LESBER==104000			;ENABLE SBUS ERRORS
   775			044000		LDSBER==044000			;DISABLE SBUS ERRORS
   776			024000		LCSBER==024000			;CLR SBUS ERRORS
   777			014000		LSSBER==014000			;SET SBUS ERROR
   778			102000		LENXER==102000			;ENABLE NON-EXISTENT MEMORY
   779			042000		LDNXER==042000			;DISABLE NON-EXISTENT MEORY
   780			022000		LCNXER==022000			;CLR NON-EXISTENT MEMORY
   781			012000		LSNXER==012000			;SET NON-EXISTENT MEMORY
   782			101000		LEIOPF==101000			;ENABLE I/O PAGE FAILS
   783			041000		LDIOPF==041000			;DISABLE I/O PAGE FAILS
   784			021000		LCIOPF==021000			;CLR I/O PAGE FAIL
   785			011000		LSIOPF==011000			;SET I/O PAGE FAIL
   786			100400		LEPAER==100400			;ENABLE PARITY ERRORS
   787			040400		LDPAER==040400			;DISABLE PARITY ERRORS
   788			020400		LCPAER==020400			;CLR PARITY ERROR
   789			010400		LSPAER==010400			;SET PARITY ERROR
   790			100200		LECAER==100200			;ENABLE CACHE ADR PARITY ERRORS
   791			040200		LDCAER==040200			; " DISABLE
   792			020200		LCCAER==020200			; " CLR
   793			010200		LSCAER==010200			; " SET
   794			100100		LESAER==100100			;ENABLE S-BUS ADR PARITY ERRORS
   795			040100		LDSAER==040100			; " DISABLE
   796			020100		LCSAER==020100			; " CLR
   797			010100		LSSAER==010100			; " SET
   798			100040		LEPWRF==100040			;ENABLE POWER FAIL
   799			040400		LDPWRF==040400			;DISABLE POWER FAIL
   800			020040		LCPWRF==020040			;CLR POWER FAIL
   801			010040		LSPWRF==010040			;SET POWER FAIL
   802			100020		LECASD==100020			;ENABLE CACHE SWEEP DONE
   803			040020		LDCASD==040020			;DISABLE CACHE SWEEP DONE
   804			020020		LCCASD==020020			;CLR CACHE SWEEP DONE
   805			010020		LSCASD==010020			;SET CACHE SWEEP DONE
   806			127760		LAPRAL==127760			;CLR ALL ERROR FLAGS & ENABLE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 19
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0098

   807					S^;*********************************************************************^
   808					;*KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)
   809					S^;*********************************************************************^
   810
   811			004000		LSBSEN==4000			;SBUS ERRORS ENABLED
   812			002000		LNXMEN==2000			;NON-EXISTENT MEMORY ERRORS ENABLED
   813			001000		LIOPFE==1000			;I/O PAGE FAILURES ENABLED
   814			000400		LPAREN==400			;PARITY ERRORS ENABLED
   815			000200		LCADEN==200			;CACHE ADR PARITY ERRORS ENABLED
   816			000100		LSADEN==100			;S-BUS ADR PARITY ERRORS ENABLED
   817			000040		LPWRFE==40			;POWER FAILURES ENABLED
   818			000020		LCASDE==20			;CACHE SWEEP DONE ENABLED
   819
   820					S^;*********************************************************************^
   821					;*KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
   822					S^;*********************************************************************^
   823
   824			200000		LCASWB==200000			;CACHE SWEEP BUSY
   825			004000		LSBUSE==4000			;SBUS ERROR FLAG
   826			002000		LNXMER==2000			;NON-EXISTENT MEMORY FLAG
   827			001000		LIOPFE==1000			;I/O PAGE FAIL FLAG
   828			000400		LPARER==400			;PARITY ERROR FLAG
   829			000200		LCADRP==200			;CACHE ADR PARITY ERROR FLAG
   830			000100		LSADRP==100			;S-BUS ADR PARITY ERROR FLAG
   831			000040		LPWRFL==40			;POWER FAIL FLAG
   832			000020		LCASWD==20			;CACHE SWEEP DONE FLAG
   833			000007		LAPRP7==7			;APR PI CHANNEL 7
   834			000006		LAPRP6==6			;APR PI CHANNEL 6
   835			000005		LAPRP5==5			;APR PI CHANNEL 5
   836			000004		LAPRP4==4			;APR PI CHANNEL 4
   837			000003		LAPRP3==3			;APR PI CHANNEL 3
   838			000002		LAPRP2==2			;APR PI CHANNEL 2
   839			000001		LAPRP1==1			;APR PI CHANNEL 1
   840			000010		LINT==10			;APR INTERRUPT
   841
   842					S^;*********************************************************************^
   843					;*KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
   844					S^;*********************************************************************^
   845
   846			000400		LINSTF==400			;ADDRESS BREAK REQUEST FOR INST. FETCH
   847			000200		LDATAF==200			;ADDRESS BREAK REQUEST FOR DATA FETCH
   848			000100		LWRITE==100			;ADDRESS BREAK REQUEST FOR DATA WRITE
   849			000040		LUSCMP==40			;USER ADDRESS COMPARE
   850			000000		LEXCMP==0			;EXEC ADDRESS COMPARE
   851
   852					S^;*********************************************************************^
   853					;*KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
   854					S^;*********************************************************************^
   855
   856					;DATAO APR,ADDRESS SWITCHES=13-35
   857					>
   858						XLIST
   859					IFDEF	$PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 20
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0099

   860					S^;*********************************************************************^
   861					;*KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
   862					S^;*********************************************************************^
   863
   864			000400		LINSTF==400			;ADDRESS BREAK REQUEST FOR INST. FETCH
   865			000200		LDATAF==200			;ADDRESS BREAK REQUEST FOR DATA FETCH
   866			000100		LWRITE==100			;ADDRESS BREAK REQUEST FOR DATA WRITE
   867			000040		LUSCMP==40			;USER ADDRESS COMPARE
   868			000000		LEXCMP==0			;EXEC ADDRESS COMPARE
   869
   870					S^;*********************************************************************^
   871					;*KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
   872					S^;*********************************************************************^
   873
   874					;DATAI APR,ADDRESS SWITCHES=13-35
   875
   876					S^;*********************************************************************^
   877					;*KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
   878					S^;*********************************************************************^
   879
   880					;REFILL ALGORITHM BITS 18-20
   881					;REFILL ALGORITHM ADDRESS 27-33
   882
   883					S^;*********************************************************************^
   884					;*KL10 BLKI APR 000 ASSIGMENTS
   885					S^;*********************************************************************^
   886
   887					;MICRO-CODE OPTIONS = 0-8
   888					;MICRO-CODE VERSION NUMBER = 9-17
   889					;HARDWARE OPTIONS =18-23
   890
   891					;PROCESSOR SERIAL NUMBER = 24-35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 22
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0100

   892					S^;*********************************************************************^
   893					;*KL10 CONO PI 004 ASSIGMENTS
   894					S^;*********************************************************************^
   895
   896			400000		LEVNPA==400000			;WRITE EVEN PARITY ADDRESS
   897			200000		LEVNPD==200000			;WRITE EVEN PARITY DATA
   898			100000		LEVNCD==100000			;WRITE EVEN CACHE DIRECTORY PARITY *P0
   899			020000		LRQCLR==20000			;DROP INTERRUPT ON SELECTED CHANNEL
   900			010000		LPICLR==10000			;CLEAR PI SYSTEM
   901			004000		LREQSE==4000			;REQUEST INTERRUPT ON SELECTED CHANNEL
   902			002000		LCHNON=2000			;TURN ON SELECTED CHANNEL
   903			001000		LCHNOF==1000			;TURN OFF SELECTED CHANNEL
   904			000400		LPIOFF==400			;TURN PI SYSTEM OFF
   905			000200		LPION==200			;TURN PI SYSTEM ON
   906			000100		LPICH1==100			;PI CHANNEL 1
   907			000040		LPICH2==40			;PI CHANNEL 2
   908			000020		LPICH3==20			;PI CHANNEL 3
   909			000010		LPICH4==10			;PI CHANNEL 4
   910			000004		LPICH5==4			;PI CHANNEL 5
   911			000002		LPICH6==2			;PI CHANNEL 6
   912			000001		LPICH7==1			;PI CHANNEL 7
   913			000177		LPICHA==177			;ALL PI CHANNELS
   914
   915					S^;*********************************************************************^
   916					;*KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)
   917					S^;*********************************************************************^
   918
   919			000100		LPRCH1==100			;PROGRAM REQUEST ON CHANNEL 1
   920			000040		LPRCH2==40			;PROGRAM REQUEST ON CHANNEL 2
   921			000020		LPRCH3==20			;PROGRAM REQUEST ON CHANNEL 3
   922			000010		LPRCH4==10			;PROGRAM REQUEST ON CHANNEL 4
   923			000004		LPRCH5==4			;PROGRAM REQUEST ON CHANNEL 5
   924			000002		LPRCH6==2			;PROGRAM REQUEST ON CHANNEL 6
   925			000001		LPRCH7==1			;PROGRAM REQUEST ON CHANNEL 7
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 23
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0101

   926					S^;*********************************************************************^
   927					;*KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
   928					S^;*********************************************************************^
   929
   930			400000		LEVNPA==400000			;WRITE EVEN PARITY ADDRESS
   931			200000		LEVNPD==200000			;WRITE EVEN PARITY DATA
   932			100000		LEVNCD==100000			;WRITE EVEN CACHE DIRECTORY PARITY *P0
   933			040000		LPIIP1==40000			;PI IN PROGRESS ON CHANNEL 1
   934			020000		LPIIP2==20000			;PI IN PROGRESS ON CHANNEL 2
   935			010000		LPIIP3==10000			;PI IN PROGRESS ON CHANNEL 3
   936			004000		LPIIP4==4000			;PI IN PROGRESS ON CHANNEL 4
   937			002000		LPIIP5==2000			;PI IN PROGRESS ON CHANNEL 5
   938			001000		LPIIP6==1000			;PI IN PROGRESS ON CHANNEL 6
   939			000400		LPIIP7==400			;PI IN PROGRESS ON CHANNEL 7
   940			000200		LPION==200			;PI SYSTEM ON
   941			000100		LPICH1==100			;PI CHANNEL 1 ON
   942			000040		LPICH2==40			;PI CHANNEL 2 ON
   943			000020		LPICH3==20			;PI CHANNEL 3 ON
   944			000010		LPICH4==10			;PI CHANNEL 4 ON
   945			000004		LPICH5==4			;PI CHANNEL 5 ON
   946			000002		LPICH6==2			;PI CHANNEL 6 ON
   947			000001		LPICH7==1			;PI CHANNEL 7 ON
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 24
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0102

   948					S^;*********************************************************************^
   949					;*KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
   950					S^;*********************************************************************^
   951
   952			400000		LLACBL==400000			;LOAD AC BLOCKS
   953			200000		LLPRCN==200000			;LOAD PREVIOUS CONTEXT SECTION
   954			100000		LLDUSB==100000			;LOAD USER BASE REGISTER
   955			000040		LCWSX==40			;
   956
   957					;CURRENT AC BLOCKS BITS 6 - 8
   958					;PREVIOUS AC BLOCKS BITS 9 - 11
   959					;PREVIOUS CONTEXT SECTION BITS 13 - 17
   960
   961					S^;*********************************************************************^
   962					;*KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
   963					S^;*********************************************************************^
   964
   965					;USER BASE REGISTER BITS 23 - 35
   966
   967					S^;*********************************************************************^
   968					;*KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
   969					S^;*********************************************************************^
   970
   971			400000		LLACBL==400000			;LOAD AC BLOCKS
   972			200000		LLPRCN==200000			;LOAD PREVIOUS CONTEXT SECTION
   973			100000		LLDUSB==100000			;LOAD USER BASE REGISTER
   974			000040		LCWSX==40			;
   975
   976					;CURRENT AC BLOCKS BITS 6 - 8
   977					;PREVIOUS AC BLOCKS BITS 9 - 11
   978					;PREVIOUS CONTEXT SECTION BITS 13 - 17
   979
   980					S^;*********************************************************************^
   981					;*KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
   982					S^;*********************************************************************^
   983
   984					;USER BASE REGISTER BITS 23 - 35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 25
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0103

   985					S^;*********************************************************************^
   986					;*KL10 CONO PAG 010 ASSIGMENTS
   987					S^;*********************************************************************^
   988
   989			400000		LCASLO==400000			;CACHE STRATEGY LOOK
   990			200000		LCASLD==200000			;CACHE STRATEGY LOAD
   991			040000		LSMODE==40000			;SECTION MODE
   992			020000		LTRPEN==20000			;TRAP AND PAGE ENABLE
   993
   994					;EXEC BASE REGISTER = 23-35
   995
   996					S^;*********************************************************************^
   997					;*KL10 CONI PAG 010 ASSIGMENTS
   998					S^;*********************************************************************^
   999
  1000
  1001			400000		LCSLOO==400000			;CACHE STRATEGY LOOK
  1002			200000		LCSLOA==200000			;CACHE STRATEGY LOAD
  1003			040000		LSECMO==40000			;SECTION MODE
  1004			020000		LTRPAE==20000			;TRAP AND PAGE ENABLE
  1005
  1006					;EXEC BASE REGISTER = 23-35
  1007
  1008					S^;*********************************************************************^
  1009					;*KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
  1010					S^;*********************************************************************^
  1011
  1012						XLIST
  1013					IFDEF	$PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 27
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0104

  1014					S^;*********************************************************************^
  1015					;*KL10 EXEC PAGE MAP PAGE ASSIGNMENTS
  1016					S^;*********************************************************************^
  1017
  1018			000421		LAROVT==421			;ARITHMETIC TRAP
  1019			000422		LPDOVT==422			;PUSHDOWN OVERFLOW TRAP
  1020			000423		LTRP3T==423			;TRAP 3 TRAP
  1021
  1022			000510		LTBASH==510			;TIME-BASE, HI
  1023			000511		LTBASL==511			;TIME-BASE, LO
  1024			000512		LPRFMH==512			;PERFORMANCE ANAYLYSIS, HI
  1025			000513		LPRFML==513			;PERFORMANCE ANAYLYSIS, LO
  1026
  1027					S^;*********************************************************************^
  1028					;*KL10 USER PAGE MAP PAGE ASSIGNMENTS
  1029					S^;*********************************************************************^
  1030
  1031			000421		LAROVT==421			;ARITHMETIC TRAP
  1032			000422		LPDOVT==422			;PUSHDOWN OVERFLOW TRAP
  1033			000423		LTRP3T==423			;TRAP 3 TRAP
  1034
  1035			000424		LMUUO==	424			;MUUO STORAGE
  1036			000425		LMUUOP==425			;C(PC) OF MUUO STORAGE
  1037			000426		LCNTXT==426			;PROCESS CONTEXT WORD
  1038
  1039			000430		LKNTRP==430			;KERNAL	 	NO TRAP - NEW PC'S-
  1040			000431		LKTRP==	431			;"	 	TRAP
  1041			000432		LSNTRP==432			;SUPERVISOR	NO TRAP
  1042			000433		LSTRP==	433			;"		TRAP
  1043			000434		LCNTRP==434			;CONCEAL 	NO TRAP
  1044			000435		LCTRP==	435			;"		TRAP
  1045			000436		LPNTRP==436			;PUBLIC		NO TRAP
  1046			000437		LPTRP==	437			;"		TRAP
  1047
  1048			000500		LEUPFW==500			;EXEC & USER PAGE FAIL WORD
  1049			000501		LPFWPC==501			;C(PC) OF PAGE FAIL WORD
  1050			000502		LPGFTR==502			;PAGE FAIL NEW PC
  1051
  1052			000504		LEBXMH==504			;E-BOX CLOCK TICK METER, HI
  1053			000505		LEBXML==505			;E-BOX CLOCK TICK METER, LO
  1054			000506		LMBXMH==506			;M-BOX CYCLE METER, HI
  1055			000507		LMBXML==507			;M-BOX CYCLE METER, LO
  1056
  1057					>>				;END CONDITIONAL ON KL10
  1058						LIST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 1
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0105

  1059					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
  1060
  1061	030000					LOC	30000
  1062
  1063					S^;*********************************************************************^
  1064					;*PROGRAM STARTING ADDRESSES
  1065					;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
  1066					;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
  1067					;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
  1068					;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
  1069					S^;*********************************************************************^
  1070
  1071	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
  1072	030001	254 00 0 00 001000 	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
  1073
  1074	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
  1075
  1076	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
  1077
  1078	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
  1079
  1080	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
  1081
  1082	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
  1083
  1084	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
  1085	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
  1086
  1087	030010	254 00 0 00 001034 	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
  1088	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
  1089	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
  1090
  1091	030013	000000	030000		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
  1092	030014	000000	030000		START2:	SADR8			; "
  1093	030015	000000	030000		START3:	SADR9			; "
  1094	030016	000000	030000		START4:	SADR10			; "
  1095	030017	000000	030000		START5:	SADR11			; "
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0106

  1096					S^;*********************************************************************^
  1097					;*PROGRAM FIXED PARAMETER AREA
  1098					S^;*********************************************************************^
  1099
  1100	030020	636542	626456		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
  1101	030021	645560	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
  1102	030022	123456	123456		RANDBS:	PAREA1		;RANDOM BASE NUMBER
  1103	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
  1104	030024	000000	000001		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
  1105	030025	000000	001035		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
  1106	030026	000000	000014		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
  1107	030027	000000	001000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
  1108	030030	000000	007573		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
  1109	030031	777777	777777		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
  1110	030032	777777	777777		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
  1111	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
  1112	030034	777777	777777		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
  1113	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
  1114	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
  1115
  1116					S^;*********************************************************************^
  1117					;*PROGRAM VARIABLE PARAMETER AREA
  1118					S^;*********************************************************************^
  1119
  1120	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
  1121	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
  1122	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
  1123	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
  1124	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
  1125	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
  1126	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
  1127	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
  1128	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
  1129	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
  1130	030051	000000	000000		TESTPC:	0		;SUBTEST PC
  1131	030052	000000	000000		ERRPC:	0		;ERROR PC
  1132	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
  1133	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
  1134	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
  1135	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 3
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0107

  1136					S^;*********************************************************************^
  1137					;*SPECIAL PROGRAM DISPATCH ADDRESSES
  1138					S^;*********************************************************************^
  1139
  1140	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
  1141	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
  1142	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
  1143	030062	000000	030000		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
  1144	030063	000000	030000		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
  1145	030064				CPOPJ1:			;SKIP RETURN
  1146	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
  1147	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
  1148	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
  1149	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
  1150	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
  1151	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
  1152	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
  1153	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
  1154	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
  1155	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
  1156	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
  1157	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
  1158	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
  1159	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
  1160	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
  1161	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
  1162
  1163	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
  1164	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
  1165	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
  1166
  1167					S^;*********************************************************************^
  1168					;*PROCESSOR CONTROL STORAGE
  1169					S^;*********************************************************************^
  1170
  1171	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
  1172	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
  1173	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
  1174	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
  1175	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
  1176
  1177	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
  1178	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
  1179
  1180	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
  1181	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
  1182	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
  1183	030120	000000	000000		%COREC:	0		; " CORRECT DATA
  1184	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
  1185	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
  1186	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 4
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0108

  1187					S^;*********************************************************************^
  1188					;*UUO DISPATCH TABLE
  1189					S^;*********************************************************************^
  1190						XLIST
  1191						LIST
  1192	030124	030070	030070		UUODIS:	LUUO1,,$UUOER
  1193	030125	030070	030070			LUUO3,,LUUO2
  1194	030126	030070	030070			LUUO5,,LUUO4
  1195	030127	030070	030070			LUUO7,,LUUO6
  1196	030130	030070	030070			LUUO11,,LUUO10
  1197	030131	030070	030070			LUUO13,,LUUO12
  1198	030132	030070	030070			LUUO15,,LUUO14
  1199	030133	030070	030070			LUUO17,,LUUO16
  1200	030134	030070	030070			LUUO21,,LUUO20
  1201	030135	030070	030070			LUUO23,,LUUO22
  1202	030136	030070	030070			LUUO25,,LUUO24
  1203	030137	030070	030070			LUUO27,,LUUO26
  1204	030140	030070	030070			LUUO31,,LUUO30
  1205	030141	030070	030070			LUUO33,,LUUO32
  1206
  1207					S^;*********************************************************************^
  1208					;*MEMORY MANAGMENT STORAGE
  1209					S^;*********************************************************************^
  1210
  1211	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
  1212	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
  1213	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
  1214	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
  1215	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
  1216
  1217					S^;*********************************************************************^
  1218					;*PRINT CONTROL STORAGE
  1219					S^;*********************************************************************^
  1220
  1221	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
  1222	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
  1223	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
  1224	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
  1225	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
  1226	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
  1227	030225	000000	000000		$TWCNT:	0		;TIME WAITED
  1228	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
  1229	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
  1230	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
  1231	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
  1232	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
  1233	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
  1234	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
  1235	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
  1236	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
  1237	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
  1238	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
  1239	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 5
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0109

  1240					S^;*********************************************************************^
  1241					;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
  1242					;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
  1243					;*	MOVEI	NAME
  1244					;*	PNTA		;OR PNTAF
  1245					S^;*********************************************************************^
  1246
  1247	030242				CRLF:	ASCII/
  1248	030242	015 012 000 000 000 	/
  1249	030243				CRLF2:	ASCII/
  1250
  1251	030243	015 012 015 012 000 	/
  1252	030244	054 000 000 000 000 	COMMA:	ASCII/,/
  1253	030245	056 000 000 000 000 	PERIOD:	ASCII/./
  1254	030246	040 000 000 000 000 	SPACE:	ASCII/ /
  1255	030247	011 000 000 000 000 	TAB:	ASCII/	/
  1256	030250				MINUS:
  1257	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
  1258	030251	053 000 000 000 000 	PLUS:	ASCII/+/
  1259	030252	052 000 000 000 000 	AST:	ASCII/*/
  1260	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
  1261	030254	050 000 000 000 000 	LFP:	ASCII/(/
  1262	030255	051 000 000 000 000 	RTP:	ASCII/)/
  1263	030256	007 0000000000 		BELL:	BYTE (7) 007
  1264	030257	077 000 000 000 000 	QUEST:	ASCII/?/
  1265	030260	057 000 000 000 000 	SLASH:	ASCII!/!
  1266	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
  1267	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
  1268	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
  1269	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
  1270
  1271					S^;*********************************************************************^
  1272					;*USER MODE OUTPUT FILE INFORMATION
  1273					S^;*********************************************************************^
  1274
  1275	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
  1276	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
  1277	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
  1278	030272					BLOCK	2
  1279
  1280					S^;*********************************************************************^
  1281					;*DISK UPDATE MODE FILE INFORMATION
  1282					S^;*********************************************************************^
  1283
  1284	030274				$IBUF:	BLOCK	3
  1285	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
  1286	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
  1287	030301					BLOCK	2
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 6
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0110

  1288					S^;*********************************************************************^
  1289					;*PUSHDOWN LIST CONTROL INFORMATION
  1290					S^;*********************************************************************^
  1291
  1292	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
  1293	030304				PLISTS:	BLOCK	200
  1294	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
  1295
  1296					S^;*********************************************************************^
  1297					;*POWER LINE CLOCK FREQUENCY FLAG
  1298					S^;*********************************************************************^
  1299
  1300	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
  1301
  1302					S^;*********************************************************************^
  1303					;*KL10 CACHE CONTROL FLAGS
  1304					S^;*********************************************************************^
  1305
  1306	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
  1307	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
  1308
  1309					S^;*********************************************************************^
  1310					;*NUMBER INPUT DIGIT FLAG
  1311					S^;*********************************************************************^
  1312
  1313	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
  1314
  1315					S^;*********************************************************************^
  1316					;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
  1317					S^;*********************************************************************^
  1318
  1319	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
  1320
  1321					S^;*********************************************************************^
  1322					;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
  1323					S^;*********************************************************************^
  1324
  1325	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
  1326	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
  1327	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
  1328
  1329					S^;*********************************************************************^
  1330					;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
  1331					S^;*********************************************************************^
  1332
  1333	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 7
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0111

  1334					S^;*********************************************************************^
  1335					;*USER MODE MONITOR TYPE FLAG
  1336					S^;*********************************************************************^
  1337
  1338	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
  1339
  1340					S^;*********************************************************************^
  1341					;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
  1342					S^;*********************************************************************^
  1343
  1344	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
  1345
  1346					S^;*********************************************************************^
  1347					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
  1348					S^;*********************************************************************^
  1349
  1350	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
  1351
  1352					S^;*********************************************************************^
  1353					;*"SWITCH" CALL USAGE CONTROL
  1354					S^;*********************************************************************^
  1355
  1356	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
  1357
  1358					S^;*********************************************************************^
  1359					;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
  1360					S^;*********************************************************************^
  1361
  1362	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
  1363	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
  1364
  1365					S^;*********************************************************************^
  1366					;*SM10 (KS-10) PROCESSOR TYPE FLAG
  1367					S^;*********************************************************************^
  1368
  1369	030524	000000	000000		SM10:	0	;IF -1 THIS IS A KS-10
  1370
  1371					S^;*********************************************************************^
  1372					;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
  1373					S^;*********************************************************************^
  1374
  1375	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
  1376
  1377					S^;*********************************************************************^
  1378					;*SPECIAL FUTURE EXPANSION ROOM
  1379					S^;*********************************************************************^
  1380
  1381					S^;*********************************************************************^
  1382					;*END OF FIXED STORAGE
  1383					S^;*********************************************************************^
  1384
  1385	030577					LOC	30577
  1386	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 1
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0112

  1387					SUBTTL	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
  1388
  1389					S^;*********************************************************************^
  1390					;*SPECIAL SUBPROGRAM LINKAGES
  1391					S^;*********************************************************************^
  1392
  1393	000440					LOC	440
  1394
  1395	000440	254 00 0 00 030000 		JRST	DIAGNOS
  1396	000441	254 00 0 00 010000 		JRST	DDT
  1397	000442	254 00 0 00 020000 		JRST	DIAMON
  1398	000443	254 00 0 00 001001 		JRST	REINIT
  1399
  1400	027775					LOC	27775
  1401
  1402	027775	000000	010000		DDTLNK:	10000			;DDT LINKAGE
  1403	027776	000000	001003		MODLNK:	MODCHK			;OPERATIONAL MODE CHECK LINKAGE
  1404	027777	000000	001002		SUBLNK:	SUBINI			;SUBROUTINE LINKAGE
  1405
  1406	001000					LOC	1000		;RESET THE PC AFTER "FIXED" @ 30,000
  1407
  1408					S^;*********************************************************************^
  1409					;*INITIALIZE THE SUBROUTINE PACKAGE
  1410					S^;*********************************************************************^
  1411
  1412	001000	254 00 0 00 001021 	START:	JRST	$SBSRT		;START SUBROUTINE BY ITSELF
  1413	001001	254 00 0 00 001030 	REINIT:	JRST	$REINI		;REINIT SUBROUTINE
  1414	001002	254 00 0 00 001045 	SUBINI:	JRST	$PGMIN		;SUBROUTINE INIT ROUTINE
  1415	001003	254 00 0 00 001125 	MODCHK:	JRST	$MODCK		;OPERATIONAL MODE CHECK LINKAGE
  1416	001004	000000	000000			0
  1417	001005	63 65 42 62 64 56 	SUBRTN:	SIXBIT/SUBRTN/		;"SUBRTN" IDENTIFICATION WORD
  1418	001006	000000	000014		SUBVER:	MCNVER,,DECVER		;"SUBRTN" VERSION INFORMATION
  1419	001007	777777	777777		$TTYSPD:-1			;MONITOR TTY SPEED
  1420
  1421	001010	254 04 0 00 001010 	NOEXEC:	HALT	.		;PROGRAM NOT CODED FOR EXEC MODE
  1422	001011	254 04 0 00 001011 	PLERR:	HALT	.		;FATAL PUSH LIST POINTER ERROR
  1423	001012	254 04 0 00 001012 	PLERR1:	HALT	.		;INITIAL PUSH LIST POINTER ERROR
  1424	001013	254 04 0 00 001013 	MUOERR:	HALT	.		;MUUO WITH LUUO HANDLER WIPED OUT
  1425	001014	254 04 0 00 001014 	DTEBER:	HALT	.		;DTE20 INTERRUPT WITHOUT DOORBELL
  1426	001015	254 04 0 00 001015 	DTECER:	HALT	.		;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
  1427	001016	254 04 0 00 001016 	CPIERR:	HALT	.		;CPU INITIALIZATION ERROR
  1428	001017	254 04 0 00 001017 	EOPERR:	HALT	.		;END OF PROGRAM ERROR
  1429	001020	254 04 0 00 001020 	LUOERR:	HALT	.		;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0113

  1430					S^;*********************************************************************^
  1431					;*SPECIAL SUBROUTINE ONLY INITIALIZATION
  1432					S^;*********************************************************************^
  1433	001021	201 00 0 00 000001 	$SBSRT:	MOVEI	1
  1434	001022	202 00 0 00 030024 		MOVEM	ITRCNT		;ALLOW ONLY ONE PASS
  1435	001023	201 00 0 00 020000 		MOVEI	DIAMON
  1436	001024	202 00 0 00 030012 		MOVEM	RETURN
  1437	001025	476 00 0 00 030143 		SETOM	MAPNEW		;FULL 4096K MAPPING
  1438	001026	265 00 0 00 030011 		PGMINT
  1439	001027	254 00 0 00 030057 		JRST	BEGEND
  1440
  1441	001030	402 00 0 00 030056 	$REINI:	SETZM	$ONETM		;FOR NOW
  1442	001031	402 00 0 00 030047 		SETZM	PASCNT
  1443	001032	402 00 0 00 030053 		SETZM	ERRTLS
  1444	001033	254 00 0 00 030000 		JRST	BEGIN
  1445
  1446	001034	254 00 0 00 030057 	STARTA:	JRST	BEGEND
  1447
  1448	001035				PGMNAM:	ASCIZ/
  1449	001035	015 012 104 105 103 	DECSYSTEM DIAGNOSTIC SUBROUTINE'S
  1450	001036	123 131 123 124 105 
  1451	001037	115 040 104 111 101 
  1452	001040	107 116 117 123 124 
  1453	001041	111 103 040 123 125 
  1454	001042	102 122 117 125 124 
  1455	001043	111 116 105 047 123 
  1456	001044	015 012 000 000 000 	/
  1457
  1458					S^;*********************************************************************^
  1459					;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
  1460					S^;*********************************************************************^
  1461
  1462	001045	202 00 0 00 007635 	$PGMIN:	MOVEM	0,$$PAC0
  1463	001046	476 00 0 00 030037 		SETOM	USER
  1464	001047	265 00 0 00 001050 		JSP	0,.+1		;LOAD FLAGS INTO AC0
  1465	001050	607 00 0 00 010000 		TLNN	0,USERF		;USER MODE ?
  1466	001051	402 00 0 00 030037 		SETZM	USER		;EXEC MODE
  1467	001052	336 00 0 00 030042 		SKIPN	MONFLG		;DIAG MON, SPECIAL USER MODE ?
  1468	001053	402 00 0 00 030037 		SETZM	USER		;YES, TREAT I/O AS EXEC
  1469	001054	332 00 0 00 030037 		SKIPE	USER
  1470	001055	254 00 0 00 001062 		JRST	$PGMN1		;USER MODE
  1471	001056	7 004 20 0 00 010000 		CONO	PI,PICLR	;CLEAR PI SYSTEM
  1472	001057	7 000 20 0 00 200000 		CONO	APR,IOCLR	;CLEAR I/O
  1473	001060	402 00 0 00 007603 		SETZM	$MTRI		;IF KL10, CLEAR METER
  1474	001061	402 00 0 00 007604 		SETZM	$MTRWC
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 3
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0114

  1475					S^;*********************************************************************^
  1476					;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
  1477					S^;*********************************************************************^
  1478
  1479	001062	554 00 0 00 000120 	$PGMN1:	HLRZ	JOBSA		;RESET JOB FIRST FREE TO
  1480	001063	202 00 0 00 000121 		MOVEM	JOBFF		;END OF LOW SEGMENT
  1481	001064	332 00 0 00 030037 		SKIPE	USER		;USER MODE ?
  1482	001065	047 00 0 00 000000 		CALLI	0		;YES, CLEAR USER I/O
  1483	001066	254 02 1 00 001067 		JRST	2,@.+1		;CLEAR PC FLAGS
  1484	001067	000000	001070				0,,.+1
  1485	001070	200 00 0 00 030046 		MOVE	CONSW
  1486	001071	202 00 0 00 007720 		MOVEM	$SVCSW#		;SAVE PREVIOUS SWITCHES
  1487	001072	402 00 0 00 030046 		SETZM	CONSW#		;CLEAR SWITCH REGISTER
  1488	001073	402 00 0 00 007722 		SETZM	$SWFLG#		;DISALLOW SWITCHES TILL INITED
  1489	001074	200 00 0 00 007047 		MOVE	[JRST $DDTENT]	;SETUP DDT START
  1490	001075	202 00 0 00 030007 		MOVEM	DDTSRT		;DDT IF LOADED, EOPUUO IF NOT
  1491	001076	200 00 0 00 007050 		MOVE	[JRST PSHERR]
  1492	001077	202 00 0 00 030103 		MOVEM	$PSHER		;INIT FOR UNDERFLOW
  1493	001100	200 17 0 00 030303 		MOVE	P,PLIST		;INIT PUSH POINTER
  1494	001101	201 00 0 00 030103 		MOVEI	0,$PSHER
  1495	001102	261 17 0 00 000000 		PUSH	P,0		;SET ERR FOR EXCESSIVE POP'S
  1496	001103	261 17 0 00 000000 		PUSH	P,0
  1497
  1498					S^;*********************************************************************^
  1499					;*INITIALIZE SUBROUTINES
  1500					S^;*********************************************************************^
  1501
  1502	001104	260 17 0 00 002171 	PGINGO:	GO	$CPUTP		;DETERMINE CPU TYPE (KL/KI/KA)
  1503	001105	332 00 0 00 030041 		SKIPE	KLFLG
  1504	001106	260 17 0 00 001147 		GO	$MAPEX		;KL10, MAP EXEC
  1505	001107	260 17 0 00 001165 		GO	$UUOIN		;INIT UUO TRAP TRANSFER LOCATION
  1506	001110	260 17 0 00 002003 		GO	$DTEIN		;INIT DTE-20 INTERRUPT TRANSFER PROCESS
  1507	001111	260 17 0 00 005627 		GO	$PNTIN		;INIT PRINT SUBROUTINE
  1508	001112	260 17 0 00 005202 		GO	$TYPIN		;INIT TTY INPUT SUBROUTINE
  1509	001113	260 17 0 00 004777 		GO	$SWTIN		;INIT SWITCH INPUT SUBROUTINE
  1510	001114	260 17 0 00 002506 		GO	$ITRIN		;INIT INTERRUPT SUBROUTINE
  1511	001115	332 00 0 00 030034 		SKIPE	$MMAP		;MEMORY ROUTINES ?
  1512	001116	260 17 0 00 003721 		GO	$MEMMP		;MAP MEMORY
  1513	001117	332 00 0 00 030041 		SKIPE	KLFLG
  1514	001120	260 17 0 00 003366 		GO	$KLCSH		;KL10, DO CACHE
  1515	001121	476 00 0 00 030056 		SETOM	$ONETM		;SET ONE TIME FLAG
  1516	001122	402 00 0 00 030116 		SETZM	SCOPE		;INIT ERROR SCOPE LOOP
  1517	001123	402 00 0 00 030052 		SETZM	ERRPC		;INIT ERROR PC
  1518	001124	254 00 1 00 007635 		JRST	@$$PAC0#
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 4
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0115

  1519					S^;*********************************************************************^
  1520					;* -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
  1521					;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
  1522					;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
  1523					;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
  1524					;*AT ASSEMBLY TIME.
  1525					S^;*********************************************************************^
  1526
  1527	001125	265 00 0 00 001126 	$MODCK:	JSP	0,.+1		;GET FLAG CONDITIONS
  1528	001126	603 00 0 00 010000 		TLNE	0,USERF		;IN USER MODE ?
  1529	001127	254 00 0 00 001142 		JRST	$UCK		;YES
  1530	001130	476 00 0 00 030024 	$ECK:	SETOM	ITRCNT		;EXEC, RUN FOREVER
  1531	001131	402 00 0 00 030043 		SETZM	MONCTL		;NOT HERE IF UNDER MONITOR CONTROL
  1532	001132	476 00 0 00 030042 		SETOM	MONFLG		;SET TO NORMAL OPERATION
  1533	001133	332 00 0 00 030044 		SKIPE	MONTEN		;LOADED BY "DIAMON" ?
  1534	001134	254 00 0 00 001137 		JRST	.+3		;YES, RETURN TO "DIAMON" UPON COMPLETION
  1535	001135	201 00 0 00 030000 		MOVEI	BEGIN		;SET UP RETURN IN CASE WE EVER COUNT OUT
  1536	001136	202 00 0 00 030012 		MOVEM	RETURN		;FOR THE RETURN ADDRESS
  1537	001137	332 00 0 00 030031 		SKIPE	$EMODE		;EXEC MODE ALLOWED?
  1538	001140	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
  1539	001141	254 04 0 00 001010 		HALT	NOEXEC		;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
  1540
  1541	001142	332 00 0 00 030032 	$UCK:	SKIPE	$UMODE		;USER MODE ALLOWED?
  1542	001143	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
  1543	001144				$NOUSR:	OUTSTR	[ASCIZ/
  1544					EXEC ONLY
  1545	001144	051 03 0 00 007051 	/]
  1546	001145	051 03 1 00 030025 		OUTSTR	@$PNAME		;PRINT THE NAME OF THIS FILE
  1547	001146	254 00 1 00 030012 		JRST	@RETURN		;LEAVE FOR EVER
  1548
  1549					S^;*********************************************************************^
  1550					;* $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
  1551					;*	    0 TO 112K POINTS TO ITSELF
  1552					S^;*********************************************************************^
  1553
  1554	001147	332 00 0 00 030037 	$MAPEX:	SKIPE	USER
  1555	001150	263 17 0 00 000000 		RTN
  1556	001151	200 00 0 00 007054 		MOVE	[540000,,540001]
  1557	001152	336 00 0 00 030506 		SKIPN	CSHFLG
  1558	001153	660 00 0 00 020000 		TRO	020000
  1559	001154	202 00 0 00 000600 		MOVEM	600		;SET EPT NON-CACHED
  1560	001155	205 01 0 00 777621 		MOVSI	1,-157
  1561	001156	200 00 0 00 007054 		MOVE	[540000,,540001]
  1562	001157	336 00 0 00 030506 		SKIPN	CSHFLG		;REST CACHED IF ALLOWED
  1563	001160	670 00 0 00 007055 		TDO	[020000,,020000]
  1564	001161	270 00 0 00 007056 		ADD	[2,,2]
  1565	001162	202 00 0 01 000601 		MOVEM	601(1)
  1566	001163	253 01 0 00 001161 		AOBJN	1,.-2
  1567	001164	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 5
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0116

  1568					SUBTTL	*CONTRL* UUO HANDLING SUBROUTINE
  1569
  1570					S^;*********************************************************************^
  1571					;*UUO INITIALIZATION
  1572					S^;*********************************************************************^
  1573
  1574	001165	200 00 0 00 007057 	$UUOIN:	MOVE	[GO  $UORTN]	;BRING IN UUORTN ENTRY INSTR.
  1575	001166	202 00 0 00 000041 		MOVEM	JOB41		;SETUP UUO TRAP AT JOB41
  1576	001167	200 00 0 00 007060 		MOVE	[JRST $UOERX]
  1577	001170	202 00 0 00 030070 		MOVEM	$UUOER		;SET UUO ERROR IN "FIXED"
  1578	001171	402 00 0 00 007737 		SETZM	$UPLER#
  1579	001172	263 17 0 00 000000 		RTN			;EXIT
  1580
  1581					S^;*********************************************************************^
  1582					;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
  1583					;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
  1584					;*PROGRAM SEGMENT UUO'S (001 - 033).
  1585					;*AC0 IS SAVED ON THE STACK INITIALLY
  1586					S^;*********************************************************************^
  1587
  1588	001173	332 00 0 00 030515 	$UORTN:	SKIPE	$$UUO		;IF NON-ZERO, XCT USERS UUO INTERCEPT
  1589	001174	256 00 0 00 030515 		XCT	$$UUO
  1590	001175	607 17 0 00 777000 		TLNN	P,777000
  1591	001176	254 00 0 00 001302 		JRST	$UOPLE		;CHECK THAT P LOOKS LIKE A P POINTER
  1592	001177	602 17 0 00 747000 		TRNE	P,747000
  1593	001200	254 00 0 00 001302 		JRST	$UOPLE
  1594	001201	261 17 0 00 000000 		PUT	AC0		;SAVE AC0 ON PUSH LIST
  1595	001202	550 00 0 00 000017 		HRRZ	AC0,P		;VERIFY THAT THE PUSH POINTER
  1596	001203	307 00 0 00 030303 		CAIG	AC0,PLIST	;IS STILL OK
  1597	001204	254 00 0 00 001302 		JRST	$UOPLE		;OUT OF RANGE
  1598	001205	301 00 0 00 030504 		CAIL	AC0,PLISTE
  1599	001206	254 00 0 00 001302 		JRST	$UOPLE
  1600	001207	554 00 0 00 000017 		HLRZ	AC0,P		;GET CONTROL COUNT
  1601	001210	307 00 0 00 777577 		CAIG	AC0,777577
  1602	001211	254 00 0 00 001302 		JRST	$UOPLE		;OUT OF RANGE
  1603	001212	301 00 0 00 777777 		CAIL	AC0,777777
  1604	001213	254 00 0 00 001302 		JRST	$UOPLE
  1605	001214	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET THE UUO
  1606	001215	242 00 0 00 777745 		LSH	AC0,-^D27	;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
  1607	001216	306 00 0 00 000000 		CAIN	AC0,0		;IF ZERO, MUST BE KA10 0 MMUO
  1608	001217	254 00 0 00 001257 		JRST	$KAMUUO
  1609	001220	303 00 0 00 000037 		CAILE	AC0,37
  1610	001221	254 00 0 00 001257 		JRST	$KAMUUO		;MUST BE KA10 MONITOR UUO
  1611	001222	303 00 0 00 000033 		CAILE	AC0,33		;IS IT 33 OR LESS? (LOW)
  1612	001223	254 00 0 00 001250 		JRST	$SUBUO		;DECODE 34 - 37 @ $SUBUO
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 6
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0117

  1613	001224	200 00 0 17 777777 	$USRUO:	MOVE	AC0,-1(P)	;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
  1614	001225	275 00 0 00 000001 		SUBI	1		; - 1
  1615	001226	202 00 0 00 030114 		MOVEM	$SVUPC		;SAVE FOR USER UUO ROUTINE (IF NEEDED)
  1616	001227	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET UUO FROM LOCATION 40 IN JDA
  1617	001230	202 00 0 00 030113 		MOVEM	$SVUUO		;SAVE FOR USER UUO ROUTINE
  1618	001231	262 17 0 00 000000 		GET	AC0
  1619	001232	256 00 0 00 030066 		XCT	UUORTN		;EXECUTE USERS ROUTINE IF SUPPLIED
  1620	001233	261 17 0 00 000000 		PUT	AC0
  1621	001234	200 00 0 00 030113 		MOVE	AC0,$SVUUO
  1622	001235	242 00 0 00 777745 		LSH	AC0,-^D27	;RIGHT SHIFT FOR INDEX INTO UUO TABLE
  1623	001236	261 17 0 00 000001 		PUT	1
  1624	001237	246 00 0 00 777777 		LSHC	0,-1
  1625	001240	271 00 0 00 030124 		ADDI	UUODIS		;ADD USER UUO TABLE START TO THE UUO
  1626	001241	607 01 0 00 400000 	$XUUO:	TLNN	1,400000
  1627	001242	550 00 1 00 000000 		HRRZ	@0		;EVEN UUO
  1628	001243	603 01 0 00 400000 		TLNE	1,400000
  1629	001244	554 00 1 00 000000 		HLRZ	@0		;ODD UUO
  1630	001245	262 17 0 00 000001 		GET	1
  1631	001246	250 00 0 17 000000 		EXCH	AC0,(P)		;PUT ADR ON STACK, AC0 BACK IN AC0
  1632	001247	263 17 0 00 000000 		RTN			;SPECIAL XFER TO ROUTINE USING ADR ON STACK
  1633
  1634	001250	275 00 0 00 000034 	$SUBUO:	SUBI	AC0,34		;NORMALIZE TO MAKE LOWEST UUO = 0
  1635	001251	271 00 0 00 001253 		ADDI	AC0,TABLE0	;ADDR OF TABLE + NORM. UUO (0-3)
  1636	001252	254 00 1 00 000000 		JRST	@0		;SELECT THE CORRECT ERROR UUO VIA TABLE
  1637
  1638	001253	254 00 0 00 001463 	TABLE0:	JRST	%REPT		;UUO = 34 ......................REPEAT
  1639	001254	254 00 0 00 001425 		JRST	%ERLP		;UUO = 35 ...........LOOP ON THE ERROR
  1640	001255	254 00 0 00 001500 		JRST	%ERUUO		;UUO = 36 .REPORT THE ERROR CONDITIONS
  1641	001256	254 00 0 00 001335 		JRST	$UUO37		;UUO = 37 .......DECODE SUBROUTINE UUO
  1642
  1643					S^;*********************************************************************^
  1644					;*KA10 MUUO PROCESS, SETUP AS IF KI/KL10 MUUO
  1645					S^;*********************************************************************^
  1646
  1647	001257	262 17 0 00 000000 	$KAMUUO:GET	AC0
  1648	001260	202 00 0 00 007661 		MOVEM	AC0,$MAC0#
  1649	001261	262 17 0 00 000425 		GET	LMUUOP		;PUT SAVED PC INTO MUUO PC
  1650	001262	200 00 0 00 000040 		MOVE	JOBUUO
  1651	001263	202 00 0 00 000424 		MOVEM	LMUUO		;PUT KA10 LUUO INTO MUUO
  1652	001264	200 00 0 00 007661 		MOVE	AC0,$MAC0
  1653	001265	254 00 0 00 001317 		JRST	MUUOER		;PROCESS AS KI/KL10 MUUO
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 7
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0118

  1654					S^;*********************************************************************^
  1655					;*UUO ERROR EXIT ROUTINE
  1656					S^;*********************************************************************^
  1657						SALL
  1658	001266	262 17 0 00 000000 		GET	AC0		;POP OFF AC0 (KA MUUO'S)
  1659	001267	261 17 0 00 000040 	$UOERX:	PUT	JOBUUO		;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
  1660	001270	037 02 0 00 007061 		PMSG	<^ILLEGAL UUO^UUO]]FLAGS]  PC^>
  1661	001271	262 17 0 00 000000 		GET	AC0		;GET BAD UUO FROM THE STACK (P - 1)
  1662	001272	037 13 0 00 000000 		PNTHW			;PRINT IT
  1663	001273	037 00 0 00 000040 		PSP			;PRINT SPACE
  1664	001274	262 17 0 00 000000 		GET	AC0		;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
  1665	001275	275 00 0 00 000001 		SUBI	AC0,1		;SUBTRACT 1
  1666	001276	037 13 0 00 000000 		PNTHW			;PRINT FLAGS & UUO PC
  1667	001277	037 00 0 00 030242 		PCRL			;PRINT C/R & L/F
  1668	001300	256 00 0 00 030067 		XCT	$UORTX		;EXECUTE USERS UUO EXIT, IF PROV
  1669	001301	037 15 0 00 000004 		FATAL
  1670
  1671	001302	332 00 0 00 007737 	$UOPLE:	SKIPE	$UPLER		;FIRST TIME ?
  1672	001303	254 04 0 00 001011 		HALT	PLERR		;NO, FATAL HALT THEN
  1673	001304	476 00 0 00 007737 		SETOM	$UPLER
  1674	001305	202 17 0 00 007704 		MOVEM	P,$PDOVP	;SAVE "P"
  1675	001306	200 17 0 00 030303 		MOVE	P,PLIST
  1676	001307	312 17 0 00 007066 		CAME	P,[PLIST-PLISTE,,PLIST]
  1677	001310	254 04 0 00 001012 		HALT	PLERR1		;INITIAL POINTER BAD
  1678	001311	201 00 0 00 030103 		MOVEI	$PSHER
  1679	001312	261 17 0 00 000000 		PUSH	P,0
  1680	001313	037 04 0 00 007067 		PMSGF	<^*****^UUO PLIST ERR P=>
  1681	001314	200 00 0 00 007704 		MOVE	$PDOVP
  1682	001315	037 13 0 00 000001 		PNTHWF
  1683	001316	037 15 0 00 000004 		FATAL
  1684						LALL
  1685					S^;*********************************************************************^
  1686					;*MONITOR UUO ERROR EXIT ROUTINE
  1687					S^;*********************************************************************^
  1688						SALL
  1689	001317	332 00 0 00 030517 	MUUOER:	SKIPE	$$MUUO
  1690	001320	256 00 0 00 030517 		XCT	$$MUUO		;EXECUTE USERS MUUO ROUTINE, IF PROV
  1691	001321	200 00 0 00 000041 		MOVE	AC0,JOB41	;GET UUO HANDLER
  1692	001322	312 00 0 00 007057 		CAME	AC0,[GO	$UORTN]
  1693	001323	254 04 0 00 001013 		HALT	MUOERR		;NOT VALID
  1694	001324	200 00 0 00 000425 		MOVE	LMUUOP
  1695	001325	202 00 0 00 030104 		MOVEM	ITRCH1
  1696	001326	7 000 24 0 00 030110 		CONI	APR,$SVAPR
  1697	001327	7 004 24 0 00 030107 		CONI	PI,$SVPI
  1698	001330	037 02 0 00 007073 		PMSG	<^ERROR MUUO = >
  1699	001331	200 00 0 00 000424 		MOVE	LMUUO
  1700	001332	037 13 0 00 000000 		PNTHW			;PRINT MUUO
  1701	001333	402 00 0 00 000000 		SETZM	0
  1702	001334	254 00 0 00 002617 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE START
  1703						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 8
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0119

  1704					S^;*********************************************************************^
  1705					;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
  1706					S^;*********************************************************************^
  1707
  1708	001335	550 00 0 00 000040 	$UUO37:	HRRZ	JOBUUO		;GET CALLING UUO
  1709	001336	322 00 0 00 005670 		JUMPE	$PNTIT		;PRINT UUO
  1710	001337	306 00 0 00 000001 		CAIN	0,1
  1711	001340	254 00 0 00 005661 		JRST	$PNTIF		;PRINT FORCED UUO
  1712	001341	602 00 0 00 777600 		TRNE	777600
  1713	001342	254 00 0 00 001413 		JRST	$EG177		;PRINT MESSAGE UUO
  1714	001343	301 00 0 00 000005 		CAIL	5
  1715	001344	254 00 0 00 001406 		JRST	$EG4		;PRINT CHAR IMMEDIATE UUO
  1716	001345	261 17 0 00 000001 		PUT	1
  1717	001346	200 01 0 00 000040 		MOVE	1,JOBUUO
  1718	001347	242 01 0 00 777751 		LSH	1,-^D23		;EXTRACT UUO AC FIELD
  1719	001350	405 01 0 00 000017 		ANDI	1,17
  1720	001351	242 00 0 00 000004 		LSH	0,4		;POSITION E FIELD
  1721	001352	434 00 0 00 000001 		IOR	0,1		;COMBINE E & AC FIELD
  1722	001353	246 00 0 00 777777 		LSHC	0,-1		;SET ODD/EVEN
  1723	001354	271 00 0 00 001336 		ADDI	$UOTAB-20	;COMPUTE TABLE ENTRY OFFSET
  1724	001355	254 00 0 00 001241 		JRST	$XUUO
  1725
  1726	001356				$UOTAB:				;E FIELD = 2
  1727	001356	005771	005760			$PTSXF,,$PNTSX
  1728	001357	006142	006107			$PNTCF,,$PNTCW
  1729	001360	006745	002412			$DRPDV,,$PNTNM
  1730	001361	004627	004740			$MODDV,,$MODDP
  1731	001362	004221	004751			$MSEG,,$SWTCH
  1732	001363	004462	004421			$MPADR,,$MZRO
  1733	001364	004050	004167			$MPCNK,,$MPSET
  1734	001365	004536	003235			$PMAP,,$PNTMG
  1735									;E FIELD = 3
  1736	001366	005405	005242			$YESNO,,$OPTLK
  1737	001367	005452	005403			$TPOCT,,$NOYES
  1738	001370	005446	005450			$TPCNV,,$TPDEC
  1739	001371	005254	005205			$TALTM,,$TTLK
  1740	001372	005220	005574			$TTYIN,,$TISIX
  1741	001373	001267	001267			$UOERX,,$UOERX
  1742	001374	006002	006005			$PSIXF,,$PSIX
  1743	001375	006044	006047			$POCSF,,$POCS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 9
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0120

  1744									;E FIELD = 4
  1745	001376	003657	003721			$CINVAL,,$MEMMP
  1746	001377	003715	003711			$CWRTB,,$CFLUSH
  1747	001400	002275	002107			$FSELECT,,$MTROP
  1748	001401	002321	002323			$FRD36,,$FREAD
  1749	001402	001267	002317			$UOERX,,$FRD8
  1750	001403	002062	003306			$CLOCK,,$END
  1751	001404	002366	002337			$FATAL,,$ERHLT
  1752	001405	001267	003342			$UOERX,,$EOP
  1753
  1754	001406	200 00 0 00 000040 	$EG4:	MOVE	JOBUUO		;IMMEDIATE CHARACTER PRINT
  1755	001407	603 00 0 00 000040 		TLNE	(1B12)
  1756						JRST	[PNTCHF
  1757	001410	254 00 0 00 007076 			JRST	$EGX]
  1758	001411	037 12 0 00 000000 		PNTCHR
  1759	001412	254 00 0 00 001423 		JRST	$EGX
  1760
  1761	001413	200 00 0 00 000040 	$EG177:	MOVE	JOBUUO		;IMMEDIATE MESSAGE PRINT
  1762	001414	603 00 0 00 000200 		TLNE	(4B12)
  1763						JRST	[PSIXLF
  1764	001415	254 00 0 00 007100 			JRST	$EGX]
  1765	001416	603 00 0 00 000100 		TLNE	(2B12)
  1766						JRST	[PSIXL
  1767	001417	254 00 0 00 007102 			JRST	$EGX]
  1768	001420	603 00 0 00 000040 		TLNE	(1B12)
  1769						JRST	[PNTALF
  1770	001421	254 00 0 00 007104 			JRST	$EGX]
  1771	001422	037 17 0 00 000000 		PNTAL
  1772	001423	262 17 0 00 000000 	$EGX:	GET	0
  1773	001424	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 10
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0121

  1774					SUBTTL	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
  1775
  1776					S^;*********************************************************************^
  1777					;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
  1778					;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
  1779					;*INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
  1780					;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
  1781					;*ERROR, AND BELL ON ERROR.
  1782					;*ERROR LOOPING ROUTINE
  1783					;*EITHER CONTINUES IN-LINE
  1784					;*OR TRANSFERS TO E FIELD OF UUO
  1785					;*CHECKS PC OF ERROR TO DETERMINE LOOPING
  1786					S^;*********************************************************************^
  1787
  1788	001425	402 00 0 00 007746 	%ERLP:	SETZM	%ERFLG#
  1789	001426	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET AC FIELD OF UUO
  1790	001427	242 00 0 00 777751 		LSH	AC0,-^D23
  1791	001430	405 00 0 00 000017 		ANDI	AC0,17
  1792	001431	306 00 0 00 000002 		CAIN	AC0,2
  1793	001432	254 00 0 00 001451 		JRST	%ERLP2		; 2 = LOOP IF ANY ERROR
  1794	001433	306 00 0 00 000001 		CAIN	AC0,1
  1795	001434	254 00 0 00 001445 		JRST	%ERLP1		; 1 = LOOP IF PC'S MATCH
  1796	001435	306 00 0 00 000000 		CAIN	AC0,0
  1797	001436	254 00 0 00 001441 		JRST	%ERLP0		; 0 = PC'S, REPT, REPT1 & ERROR
  1798	001437	262 17 0 00 000000 		GET	AC0
  1799	001440	254 00 0 00 001267 		JRST	$UOERX
  1800	001441	476 00 0 00 007746 	%ERLP0:	SETOM	%ERFLG
  1801	001442	316 15 0 00 007752 		CAMN	REPT,%RP	;ARE REPEAT COUNTS SAME AS ERROR ?
  1802	001443	312 16 0 00 007753 		CAME	REPT1,%RP1	;(AT RIGHT PLACE IN TEST LOOPS ?)
  1803	001444	254 00 0 00 001461 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1804	001445	550 00 0 17 777777 	%ERLP1:	HRRZ	AC0,-1(P)	;GET PC OF LOOP CALL FROM STACK
  1805	001446	275 00 0 00 000002 		SUBI	AC0,2		;LESS 2
  1806	001447	312 00 0 00 030052 		CAME	AC0,ERRPC	;NOW EQUAL TO PC OF ERROR CALL ?
  1807	001450	254 00 0 00 001461 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1808	001451	260 17 0 00 004751 	%ERLP2:	GO	$SWTCH		;READ SWITCHES INTO AC0
  1809	001452	607 00 0 00 004000 		TLNN	LOOPER		;LOOP ON ERROR ?
  1810	001453	402 00 0 00 030116 		SETZM	SCOPE		;NO ..........CLEAR LOOP CONTROL
  1811	001454	331 00 0 00 030116 		SKIPL	SCOPE		;YES ...WAS THERE AN ERROR ?
  1812	001455	254 00 0 00 001461 		JRST	%ERX1		;NO, CONTINUE IN LINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 11
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0122

  1813	001456	262 17 0 00 000000 	%ERX:	GET	AC0		;RESTORE AC0
  1814	001457	274 17 0 00 007106 		SUB	P,[1,,1]	;CORRECT PUSH LIST POINTER FOR NO "RTN"
  1815	001460	254 00 1 00 000040 		JRST	@JOBUUO		;TRANSFER TO E FIELD OF UUO
  1816
  1817	001461	262 17 0 00 000000 	%ERX1:	GET	AC0		;RESTORE AC0
  1818	001462	263 17 0 00 000000 		RTN
  1819
  1820					S^;*********************************************************************^
  1821					;*REPEAT LOOP ROUTINE
  1822					;*EITHER CONTINUES IN-LINE
  1823					;*OR TRANSFERS TO E FIELD OF UUO
  1824					S^;*********************************************************************^
  1825
  1826	001463	373 00 0 00 030115 	%REPT:	SOSLE	REPTU#		;REPEAT TEST SECTION ?
  1827	001464	254 00 0 00 001456 		JRST	%ERX		;YES, E FIELD OF UUO IS RETURN
  1828	001465	254 00 0 00 001461 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1829
  1830					S^;*********************************************************************^
  1831					;*COMMON ERROR HANDLER AC SAVE/RESTORE
  1832					S^;*********************************************************************^
  1833
  1834	001466	202 00 0 00 007741 	%EACS:	MOVEM	0,%AC0#
  1835	001467	202 01 0 00 007742 		MOVEM	1,%AC1#
  1836	001470	202 02 0 00 007743 		MOVEM	2,%AC2#
  1837	001471	202 03 0 00 007744 		MOVEM	3,%AC3#
  1838	001472	263 17 0 00 000000 		RTN
  1839
  1840	001473	200 00 0 00 007741 	%EACR:	MOVE	0,%AC0
  1841	001474	200 01 0 00 007742 	%EACR1:	MOVE	1,%AC1
  1842	001475	200 02 0 00 007743 		MOVE	2,%AC2
  1843	001476	200 03 0 00 007744 		MOVE	3,%AC3
  1844	001477	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 12
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0123

  1845					;*ERROR REPORTING ROUTINE
  1846					S^;*********************************************************************^
  1847
  1848	001500	200 00 0 00 000040 	%ERUUO:	MOVE	LUUO
  1849	001501	202 00 0 00 007751 		MOVEM	%LUUO#
  1850	001502	476 00 0 00 030116 		SETOM	SCOPE
  1851	001503	332 00 0 00 030040 		SKIPE	KAIFLG
  1852	001504	332 00 0 00 030037 		SKIPE	USER
  1853	001505	254 00 0 00 001510 		JRST	.+3
  1854	001506	332 00 0 00 030055 		SKIPE	MARGIN		;IF KI10, TURN OFF MARGINS
  1855	001507	7 000 14 0 00 007107 		DATAO	APR,[IMGNOF,,ISPDOF]
  1856	001510	262 17 0 00 000000 		GET	AC0
  1857	001511	332 00 0 00 030512 		SKIPE	%ERHI1		;ANY USERS INSTRUCTION ?
  1858	001512	256 00 0 00 030512 		XCT	%ERHI1		;YES, DO USERS ROUTINE
  1859	001513	260 17 0 00 001466 		GO	%EACS		;SAVE AC0 - AC3
  1860	001514	402 00 0 00 030117 		SETZM	%CORFLG#
  1861	001515	402 00 0 00 030121 		SETZM	%ACTFL#
  1862	001516	350 00 0 00 030053 		AOS	ERRTLS		;INCREMENT ERROR TOTALS
  1863	001517	260 17 0 00 004751 		GO	$SWTCH
  1864	001520	550 03 0 17 000000 		HRRZ	3,(P)		;GET <ADDRESS> OF ERROR CALL FROM STACK
  1865	001521	275 03 0 00 000001 		SUBI	3,1
  1866	001522	312 03 0 00 030052 		CAME	3,ERRPC		;SKIP IF SAME ERROR
  1867	001523	254 00 0 00 001533 		JRST	%ERPNT
  1868	001524	336 00 0 00 007746 		SKIPN	%ERFLG
  1869	001525	254 00 0 00 001531 		JRST	.+4		;DON'T CHECK REPEAT COUNTS
  1870	001526	316 15 0 00 007752 		CAMN	REPT,%RP
  1871	001527	312 16 0 00 007753 		CAME	REPT1,%RP1
  1872	001530	254 00 0 00 001533 		JRST	%ERPNT		;DIFFERENT, PRINT ERROR
  1873	001531	607 00 0 00 001000 		TLNN	PALERS		;PRINT ALL ERRORS ?
  1874	001532	254 00 0 00 001734 		JRST	%ERSW1		;THIS ERROR ALREADY REPORTED ONCE.
  1875
  1876					;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
  1877					S^;*********************************************************************^
  1878
  1879	001533	202 15 0 00 007752 	%ERPNT:	MOVEM	REPT,%RP#	;SAVE REPEAT COUNTS
  1880	001534	202 16 0 00 007753 		MOVEM	REPT1,%RP1#
  1881	001535	202 03 0 00 030052 		MOVEM	3,ERRPC		;SAVE ERROR CALL ADDRESS
  1882	001536	603 00 0 00 040000 		TLNE	0,NOPNT
  1883	001537	254 00 0 00 001734 		JRST	%ERSW1
  1884	001540	037 01 0 00 000026 		PFORCE			;OVERRIDE CONTROL O
  1885	001541	402 00 0 00 007745 		SETZM	%ERCNT#
  1886	001542	335 00 0 00 030043 		SKIPGE	MONCTL		;DIAG MON OR SYS EXER ?
  1887	001543	254 00 0 00 001746 		JRST	%ERPRA		;YES, GO PRINT TITLE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 13
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0124

  1888						SALL
  1889	001544	336 00 0 00 030047 	%ERPRB:	SKIPN	PASCNT
  1890	001545	254 00 0 00 001551 		JRST	.+4		;DON'T PRINT PASS COUNTER ON FIRST PASS
  1891	001546	037 02 0 00 007110 		PMSG	<^TEST PASS COUNT = >
  1892	001547	200 00 0 00 030047 		MOVE	0,PASCNT
  1893	001550	037 15 0 00 000000 		PNTDEC			;PRINT TEST PASS COUNTER
  1894	001551	037 02 0 00 007114 		PMSG	<^PC=  >
  1895	001552	201 00 0 03 000000 		MOVEI	0,(3)
  1896	001553	037 06 0 00 000000 		PNT6			;PRINT PC OF ERROR CALL.
  1897	001554	037 02 0 00 007116 		PMSG	<^SWITCHES = >
  1898	001555	200 00 0 00 030046 		MOVE	CONSW
  1899	001556	037 13 0 00 000000 		PNTHW			;PRINT SWITCHES AT ERROR
  1900	001557	260 17 0 00 001473 		GO	%EACR
  1901	001560	332 00 0 00 030514 		SKIPE	%ERHI3		;IF NON-ZERO, XCT USERS ROUTINE
  1902	001561	256 00 0 00 030514 		XCT	%ERHI3
  1903
  1904	001562	550 03 1 00 030052 		HRRZ	3,@ERRPC	;GET "E FIELD" OF ERROR CALL
  1905	001563	200 00 0 00 030046 		MOVE	0,CONSW		;AC3 HAS THE ERROR CALL ADDR IN IT
  1906	001564	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1907	001565	254 00 0 00 001606 		JRST	%ERPR2		;YES
  1908	001566	201 00 0 00 007121 		MOVEI	0,SIXBTZ	<^ERROR IN >
  1909	001567	554 01 0 03 000000 		HLRZ	1,(3)		;GET NAME OF FAILING TEST
  1910	001570	322 01 0 00 001576 		JUMPE	1,%ERPR1	;JUMP IF NO TEST NAME
  1911	001571	037 14 0 00 000003 		PSIXL			;*DEFINE T=0 TO INHIBIT TEST NAME		
  1912	001572	200 00 0 00 000001 		MOVE	0,1
  1913	001573	037 14 0 00 000003 		PSIXL			;REPORT NAME OF FAILING TEST
  1914	001574	201 00 0 00 007123 		MOVEI	0,SIXBTZ	< - >
  1915	001575	254 00 0 00 001577 		JRST	.+2
  1916	001576	201 00 0 00 007124 	%ERPR1:	MOVEI	0,SIXBTZ	<^>
  1917	001577	550 01 0 03 000000 		HRRZ	1,(3)		;GET ADDRESS OF FUNCTION MSG
  1918	001600	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1919	001601	316 01 0 00 007115 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1920	001602	254 00 0 00 001606 		JRST	%ERPR2		;JUMP IF NO FUNCTION CALLED OUT.
  1921	001603	037 14 0 00 000003 		PSIXL		
  1922	001604	550 00 0 03 000000 		HRRZ	0,(3)		;GET MESSAGE ADDRESS AGAIN
  1923	001605	037 14 0 00 000003 		PSIXL			;REPORT FUNCTION BEING TESTED.
  1924	001606	476 00 0 00 030123 	%ERPR2:	SETOM	%DISCR#		;SET 'DISCREPANCY FLAG'.
  1925						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 14
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0125

  1926					;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
  1927					S^;*********************************************************************^
  1928						SALL
  1929	001607	200 00 0 00 007751 	%ERP2B:	MOVE	%LUUO
  1930	001610	241 00 0 00 000015 		ROT	0,15		;GET THE X ARGUEMENT
  1931	001611	405 00 0 00 000017 		ANDI	0,17
  1932	001612	326 00 0 00 001614 		JUMPN	0,.+2		;PRINT 12 OCTAL DIGITS IF X=0
  1933	001613	201 00 0 00 000014 		MOVEI	0,14
  1934	001614	303 00 0 00 000014 		CAILE	0,14		;MAKE SURE THAT X IS A LEGAL ARGUMENT
  1935	001615	037 15 0 00 000004 		FATAL			;PROGRAM CALL ERROR
  1936	001616	242 00 0 00 000027 		LSH	0,^D<35-12>	;PUT X IN AC FIELD
  1937	001617	270 00 0 00 007125 		ADD	0,[PNTA]	;PRINT THE X ARGUEMENT
  1938	001620	202 00 0 00 007610 		MOVEM	0,%ERIN2
  1939	001621	201 00 0 00 007126 		MOVEI	0,SIXBTZ	<^CORRECT:  >
  1940	001622	554 02 0 03 000001 		HLRZ	2,1(3)		;GET ADDRESS OF EXPECTED TEST RESULTS
  1941	001623	326 02 0 00 001626 		JUMPN	2,.+3
  1942	001624	402 00 0 00 030123 		SETZM	%DISCR		;NO 'CORRECT RESULT' TYPEOUT
  1943	001625	254 00 0 00 001645 		JRST	%ERPR3
  1944	001626	476 00 0 00 030117 		SETOM	%CORFLG
  1945	001627	303 02 0 00 000003 		CAILE	2,3		;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
  1946	001630	254 00 0 00 001640 		JRST	%ERP2A
  1947	001631	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1948	001632	200 01 0 00 007742 		MOVE	1,%AC1
  1949	001633	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1950	001634	200 01 0 00 007743 		MOVE	1,%AC2
  1951	001635	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1952	001636	200 01 0 00 007744 		MOVE	1,%AC3
  1953	001637	254 00 0 00 001641 		JRST	.+2
  1954	001640	200 01 0 02 000000 	%ERP2A:	MOVE	1,(2)
  1955						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 15
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0126

  1956					;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
  1957					S^;*********************************************************************^
  1958						SALL
  1959	001641	037 14 0 00 000003 		PSIXL			;CORRECT RESULTS.
  1960	001642	200 00 0 00 000001 		MOVE	0,1
  1961	001643	264 00 0 00 007607 		JSR	%ERIN1		;REPORT CORRECT DATA
  1962	001644	202 01 0 00 030120 		MOVEM	1,%COREC#	;SAVE CORRECT DATA
  1963	001645	201 00 0 00 007130 	%ERPR3:	MOVEI	0,SIXBTZ	<^ACTUAL:   >
  1964	001646	550 02 0 03 000001 		HRRZ	2,1(3)		;GET ADDRESS OF ACTUAL TEST RESULTS.
  1965	001647	326 02 0 00 001652 		JUMPN	2,.+3
  1966	001650	402 00 0 00 030123 		SETZM	%DISCR		;NO 'ACTUAL RESULT' TYPEOUT.
  1967	001651	254 00 0 00 001671 		JRST	%ERPR4
  1968	001652	476 00 0 00 030121 		SETOM	%ACTFL
  1969	001653	303 02 0 00 000003 		CAILE	2,3		;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
  1970	001654	254 00 0 00 001664 		JRST	%ERP3A
  1971	001655	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1972	001656	200 01 0 00 007742 		MOVE	1,%AC1
  1973	001657	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1974	001660	200 01 0 00 007743 		MOVE	1,%AC2
  1975	001661	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1976	001662	200 01 0 00 007744 		MOVE	1,%AC3
  1977	001663	254 00 0 00 001665 		JRST	.+2
  1978	001664	200 01 0 02 000000 	%ERP3A:	MOVE	1,(2)
  1979						LALL
  1980					;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
  1981					S^;*********************************************************************^
  1982						SALL
  1983	001665	037 14 0 00 000003 		PSIXL			;ACTUAL RESULTS
  1984	001666	200 00 0 00 000001 		MOVE	0,1
  1985	001667	264 00 0 00 007607 		JSR	%ERIN1		;REPORT ACTUAL DATA
  1986	001670	202 01 0 00 030122 		MOVEM	1,%ACTUL#	;SAVE ACTUAL DATA
  1987
  1988	001671	201 00 0 00 007132 	%ERPR4:	MOVEI	0,SIXBTZ	<^DISCREP:  >
  1989	001672	336 00 0 00 030123 		SKIPN	%DISCR		;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
  1990	001673	254 00 0 00 001702 		JRST	%ERPR5		;ACTUAL DATA REPORTED.
  1991	001674	200 01 0 00 030120 		MOVE	1,%COREC
  1992	001675	430 01 0 00 030122 		XOR	1,%ACTUL	;XOR CORRECT & ACTUAL DATA
  1993	001676	037 14 0 00 000003 		PSIXL		
  1994	001677	200 00 0 00 000001 		MOVE	0,1
  1995	001700	264 00 0 00 007607 		JSR	%ERIN1		;REPORT DISC BETWEEN COR & ACT
  1996	001701	202 01 0 00 030123 		MOVEM	1,%DISCR	;SAVE DISCREPANCY DATA
  1997						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 16
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0127

  1998					;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
  1999					S^;*********************************************************************^
  2000
  2001	001702	200 00 0 00 030046 	%ERPR5:	MOVE	0,CONSW
  2002	001703	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  2003	001704	254 00 0 00 001714 		JRST	%ERPR6		;YES
  2004	001705	554 01 0 03 000002 		HLRZ	1,2(3)		;GET ADDRESS OF ASCIZ TEXT.
  2005	001706	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  2006	001707	316 01 0 00 007115 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  2007	001710	254 00 0 00 001714 		JRST	%ERPR6		;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
  2008	001711	037 00 0 00 030242 		PCRL
  2009	001712	554 00 0 03 000002 		HLRZ	0,2(3)		;GET MESSAGE ADDRESS AGAIN
  2010	001713	037 14 0 00 000003 		PSIXL		
  2011	001714	037 00 0 00 030242 	%ERPR6:	PCRL
  2012	001715	550 00 0 03 000002 		HRRZ	0,2(3)		;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
  2013	001716	260 17 0 00 001474 		GO	%EACR1
  2014	001717	202 00 0 00 007750 		MOVEM	0,%ERXTR#
  2015	001720	322 00 0 00 001727 		JUMPE	0,%ERMORE	;JUMP IF NONE
  2016	001721	200 00 0 00 030046 		MOVE	0,CONSW
  2017	001722	603 00 0 00 000200 		TLNE	0,TXTINH	;TEXT INHIBITED ?
  2018	001723	254 00 0 00 001727 		JRST	%ERMORE		;YES, NO ADDITIONAL PRINT
  2019	001724	200 00 0 00 007741 		MOVE	0,%AC0
  2020	001725	260 17 1 00 007750 		GO	@%ERXTR		;XFER TO PRINT ROUTINE, RETURN TO ERMORE
  2021	001726	202 00 0 00 007741 		MOVEM	0,%AC0
  2022	001727	200 00 0 00 007741 	%ERMORE:MOVE	0,%AC0
  2023	001730	256 00 0 00 030101 		XCT	ERMORE		;TO ADD ROUTINE PLACE XFR AT ERMORE
  2024									;IN "FIXED"
  2025	001731	260 17 0 00 001466 		GO	%EACS
  2026	001732	260 17 0 00 003235 		GO	$PNTMG		;IF KI10, PRINT MARGINS
  2027	001733	260 17 0 00 004751 		GO	$SWTCH
  2028
  2029					;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
  2030					S^;*********************************************************************^
  2031	001734	260 17 0 00 005254 	%ERSW1:	GO	$TALTM		;ALTMODE CHECK
  2032	001735	254 00 0 00 001741 		JRST	.+4		;NONE
  2033	001736	201 00 0 00 001741 		MOVEI	.+3		;SAVE ADDRESS FOR CONTINUE
  2034	001737	202 00 0 00 000130 		MOVEM	JOBOPC
  2035	001740	254 00 1 00 030063 		JRST	@ALTMGO		;PERFORM TRANSFER
  2036	001741	200 03 0 00 030046 		MOVE	3,CONSW
  2037	001742	607 03 0 00 002000 		TLNN	3,ERSTOP	;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
  2038	001743	254 00 0 00 001752 		JRST	%ERSW2		;NO
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 17
SUBRTM	MAC	23-Mar-78 15:08		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0128

  2039					;*EXECUTE HALT IF SWITCH ERSTOP SET.
  2040					S^;*********************************************************************^
  2041
  2042	001744	260 17 0 00 001473 	%ERS1A:	GO	%EACR		;RESTORE AC'S
  2043	001745	254 00 0 00 002337 		JRST	$ERHLT		;USE SUBROUTINE ERROR HALT
  2044
  2045	001746	336 00 0 00 007747 	%ERPRA:	SKIPN	%ERFST#		;PRINT PROGRAM NAME
  2046	001747	037 04 0 00 000002 		PNTNM
  2047	001750	476 00 0 00 007747 		SETOM	%ERFST
  2048	001751	254 00 0 00 001544 		JRST	%ERPRB
  2049
  2050					;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
  2051					S^;*********************************************************************^
  2052
  2053	001752	607 03 0 00 004000 	%ERSW2:	TLNN	3,LOOPER
  2054	001753	402 00 0 00 030116 		SETZM	SCOPE		;CLEAR SCOPE LOOP CONTROL
  2055	001754	350 01 0 00 007745 		AOS	1,%ERCNT	;INCREMENT ERROR COUNT
  2056	001755	504 01 0 00 030052 		HRL	1,ERRPC
  2057	001756	336 00 0 00 030041 		SKIPN	KLFLG		;NO LIGHTS ON KL10
  2058	001757	332 00 0 00 030037 		SKIPE	USER
  2059	001760	254 00 0 00 001762 		JRST	%ERSW3
  2060	001761	7 004 14 0 00 000001 		DATAO	PI,1		;DISPLAY ERROR PC,ERROR COUNT
  2061
  2062					;*RING TTY BELL IF DING SWITCH IS SET.
  2063					S^;*********************************************************************^
  2064
  2065	001762	603 03 0 00 010000 	%ERSW3:	TLNE	3,DING
  2066	001763	037 01 0 00 000007 		PBELL
  2067
  2068					;*RETURN TO ERROR CALL ADDRESS+1
  2069					S^;*********************************************************************^
  2070
  2071	001764	260 17 0 00 001474 	%EXCAL:	GO	%EACR1
  2072	001765	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  2073	001766	254 00 0 00 001772 		JRST	%EXCL1		;NO, CONTINUE PROGRAM
  2074	001767	200 00 0 00 030053 		MOVE	0,ERRTLS	;YES
  2075	001770	301 00 0 00 000005 		CAIL	0,5		;PRINTED ALLOWED ERRORS ?
  2076	001771	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  2077	001772	200 00 0 00 007741 	%EXCL1:	MOVE	0,%AC0
  2078	001773	332 00 0 00 030513 		SKIPE	%ERHI2		;ANY USERS INSTRUCTION ?
  2079	001774	256 00 0 00 030513 		XCT	%ERHI2		;YES, DO USERS ROUTINE
  2080	001775	332 00 0 00 030040 		SKIPE	KAIFLG
  2081	001776	332 00 0 00 030037 		SKIPE	USER
  2082	001777	254 00 0 00 002002 		JRST	.+3
  2083	002000	332 00 0 00 030055 		SKIPE	MARGIN
  2084	002001	7 000 14 0 00 030055 		DATAO	APR,MARGIN	;KI10, RESET MARGINS
  2085	002002	263 17 0 00 000000 		RTN			;CONTINUE PROGRAM
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 18
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0129

  2086					SUBTTL	*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
  2087
  2088					S^;*********************************************************************^
  2089					;*THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
  2090					;*THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA
  2091					S^;*********************************************************************^
  2092
  2093	002003	332 00 0 00 030041 	$DTEIN:	SKIPE	KLFLG
  2094	002004	332 00 0 00 030037 		SKIPE	USER
  2095	002005	263 17 0 00 000000 		RTN
  2096	002006	402 00 0 00 007652 		SETZM	$DTER1#		;CLEAR DTE20 OUT-OF-SEQUENCE COUNT
  2097	002007	402 00 0 00 000140 		SETZM	140
  2098	002010	402 00 0 00 000444 		SETZM	$DTFLG
  2099	002011	200 00 0 00 007134 		MOVE	0,[140,,141]
  2100	002012	251 00 0 00 000177 		BLT	0,177		;CLEAR DTE20 EPT LOCATIONS
  2101	002013	200 00 0 00 007135 		MOVE	0,[$DTFLG,,$DTCLK]
  2102	002014	251 00 0 00 000452 		BLT	0,$DTSEQ	;CLEAR DTE COMMUNICATIONS AREA
  2103	002015	200 00 0 00 000453 		MOVE	AC0,$DTOPR	;GET OPERATIONAL DTE #
  2104	002016	436 00 0 00 002054 		ORM	AC0,$$DTE0	;INSERT IN DTE I/O INST'S
  2105	002017	436 00 0 00 002027 		ORM	AC0,$$DTE1
  2106	002020	436 00 0 00 002105 		ORM	AC0,$$DTE2
  2107	002021	200 00 0 00 007136 		MOVE	AC0,[JSR $DTRPT];LOAD INTERRUPT TRANSFER INSTR.
  2108	002022	202 00 0 00 000142 		MOVEM	AC0,142		;PUT IN THE DTE-20 AREA
  2109	002023	202 00 0 00 000152 		MOVEM	AC0,152
  2110	002024	202 00 0 00 000162 		MOVEM	AC0,162
  2111	002025	202 00 0 00 000172 		MOVEM	AC0,172
  2112	002026	263 17 0 00 000000 		RTN			;EXIT
  2113
  2114					S^;*********************************************************************^
  2115					;*DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE
  2116					S^;*********************************************************************^
  2117
  2118	002027				$$DTEI:
  2119	002027	7 200 20 0 00 001000 	$$DTE1:	CONO	DTE,DNG10C	;CLEAR THE 10 DOORBELL BIT
  2120	002030	336 00 0 00 000445 		SKIPN	$DTCLK		;THIS DTE20 CLOCK INTERRUPT ?
  2121	002031	254 00 0 00 002037 		JRST	$$DTER		;NO FLAGS SET, IMPOSSIBLE CONDITION
  2122	
  2123	002032	402 00 0 00 000445 	$CLKDTE:SETZM	$DTCLK		;CLEAR CLOCK FLAG
  2124	002033	476 00 0 00 030045 		SETOM	CLOCKF		;SET DIAG SEGMENT CLOCK FLAG
  2125	002034	332 00 0 00 000446 		SKIPE	$DTCI		;ANY XCT INSTRUCTION ?
  2126	002035	256 00 0 00 000446 		XCT	$DTCI		;YES, DO USERS REQUEST
  2127	002036	254 12 1 00 007601 		JEN	@$DTRPT		;RESUME PROGRAM
  2128
  2129	002037	261 17 0 00 000000 	$$DTER:	PUT	0		;REPORT DTE ERROR
  2130						PMSGF	<^SPURIOUS DTE INT^>^
  2131	002040	037 04 0 00 007137 		PSIXMF	[SIXBIT\^SPURIOUS DTE INT^_\]^
  2132	002041	262 17 0 00 000000 		GET	0
  2133	002042	254 12 1 00 007601 		JEN	@$DTRPT		;RESUME
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 19
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0130

  2134					S^;*********************************************************************^
  2135					;*DTE20 COMMUNICATIONS ROUTINE
  2136					S^;*********************************************************************^
  2137
  2138	002043	332 00 0 00 030041 	$DTEXX:	SKIPE	KLFLG
  2139	002044	332 00 0 00 030037 		SKIPE	USER
  2140	002045	263 17 0 00 000000 		RTN
  2141
  2142	002046	332 00 0 00 000444 	$DTEX1:	SKIPE	$DTFLG		;DTE20 INTERRUPT FLAG SET?
  2143	002047	350 00 0 00 007652 		AOS	$DTER1		;YES, NEVER FINISHED LAST OPERATION
  2144
  2145	002050	402 00 0 00 000444 	$DTEX2:	SETZM	$DTFLG		;INITIALIZE INTERRUPT FLAG
  2146	002051	202 00 0 00 000451 		MOVEM	AC0,$DTCMD	;SETUP 10 TO 11 COMMAND WORD
  2147	002052	402 00 0 00 000450 		SETZM	$DTF11		;CLEAR RESPONSE WORD
  2148	002053	350 00 0 00 000452 		AOS	$DTSEQ		;COUNT DTE20 OPERATION
  2149
  2150	002054	7 200 20 0 00 020000 	$$DTE0:	CONO	DTE,DONG11	;RING BELL
  2151	002055	336 00 0 00 000444 		SKIPN	$DTFLG		;WAIT FOR DTE20 COMM INTERRUPT
  2152	002056	254 00 0 00 002055 		JRST	.-1
  2153
  2154	002057	402 00 0 00 000444 	$DTEX3:	SETZM	$DTFLG		;CLEAR INTERRUPT FLAG
  2155	002060	200 00 0 00 000450 		MOVE	AC0,$DTF11	;PUT RESPONSE IN AC0
  2156	002061	263 17 0 00 000000 		RTN			;RESUME CALLING SUBROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 20
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0131

  2157					S^;*********************************************************************^
  2158					;*this routine looks @ ac0 to determine whether to enable/disable
  2159					;*setting clock ticked flag "clockf" IN THE 10 WHEN A POWER LINE
  2160					;*CLOCK CYCLE OCCURS IN THE 11 (EVERY 16.67 MS)
  2161					;*or TO executE an instruction upon occurrence of the clock tick
  2162					;*	ac0 = 0 for disable
  2163					;*	ac0 = -1 for enable
  2164					;*	AC0 = INST FOR ENABLE & EXECUTE INST
  2165					;*	AC0 = 0,,X FOR WAIT X THEN CLOCK XCT OF INST IN AC1
  2166					;*	AC0 = 0,,1 FOR READ PRESENT CLOCK COUNT SINCE ENABLED
  2167					s^;*********************************************************************^
  2168
  2169	002062	306 00 0 00 000001 	$clock:	CAIN	AC0,1
  2170	002063	254 00 0 00 002103 		JRST	$CLKRD		;READ CLOCK COUNT
  2171	002064	402 00 0 00 000446 		SETZM	$DTCI
  2172	002065	322 00 0 00 002075 		JUMPE	AC0,$CLKOF	;ENABLE the 11 clock to 10?
  2173	002066	316 00 0 00 007143 		CAMN	AC0,[-1]	;YES ...DOES AC0 HAVE -1?
  2174	002067	254 00 0 00 002073 		JRST	$CLKON		;YES ...NOTIFY WHEN CLOCK TICKS
  2175	002070	607 00 0 00 777777 		TLNN	AC0,-1		;IS AC0 = 0,,X ?
  2176	002071	254 00 0 00 002077 		JRST	$CLKWT		;YES...(AC1) IS INST, AC0 = WAIT COUNT
  2177	002072	202 00 0 00 000446 		MOVEM	AC0,$DTCI	;INST IN AC0, SAVE
  2178
  2179	002073	201 00 0 00 001001 	$CLKON:	MOVEI	AC0,1001	;TURN CLOCK ON
  2180	002074	254 00 0 00 002105 		JRST	$CLKXX
  2181
  2182	002075	201 00 0 00 001000 	$clkof:	MOVEI	ac0,1000	;TURN CLOCK OFF
  2183	002076	254 00 0 00 002043 		PJRST	$DTEXX
  2184
  2185	002077	202 01 0 00 000446 	$CLKWT:	MOVEM	1,$DTCI		;(AC1) = INST, (AC0) = WAIT COUNT
  2186	002100	202 00 0 00 000447 		MOVEM	AC0,$DTT11	;SETUP DATA WORD TO PDP-11
  2187	002101	201 00 0 00 001002 		MOVEI	AC0,1002
  2188	002102	254 00 0 00 002105 		JRST	$CLKXX
  2189
  2190	002103	201 00 0 00 001003 	$CLKRD:	MOVEI	AC0,1003	;READ CLOCK COUNT
  2191	002104	254 00 0 00 002043 		PJRST	$DTEXX		;CLOCK COUNT RETURNED IN AC0
  2192
  2193	002105				$CLKXX:
  2194	002105	7 200 20 0 00 000021 	$$DTE2:	CONO	DTE,21		;TURN DTE20 INTERRUPTS ON
  2195	002106	254 00 0 00 002043 		PJRST	$DTEXX
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 21
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0132

  2196					S^;*********************************************************************^
  2197					;*THIS ROUTINE CONTROLS THE DK20 METER FOR NORMAL DIAGNOSTICS
  2198					;*ALLOWS METER TO BE ENABLED/DISABLED AND FOR EVERY METER
  2199					;*PERIOD THE "CLOCKF" FLAG IS SET AND AN OPTIONAL INSTRUCTION 
  2200					;*EXECUTED.  THE METER PERIOD IS SET FOR 16.67 MS (60 HZ).
  2201					;*	OR FOR 20 MS FOR A 50HZ PROCESSOR.
  2202					S^;*********************************************************************^
  2203
  2204	002107	306 00 0 00 000001 	$MTROP:	CAIN	AC0,1
  2205	002110	254 00 0 00 002136 		JRST	$MTRRD		;0,,1 = READ CLOCK COUNT
  2206	002111	7 024 20 0 00 000000 		CONO	MTR,0		;CLEAR INTERRUPT ASSIGNMENT
  2207	002112	7 020 20 0 00 400000 		CONO	TIM,400000	;CLEAR TIMER
  2208	002113	402 00 0 00 007603 		SETZM	$MTRI
  2209	002114	402 00 0 00 007604 		SETZM	$MTRWC
  2210	002115	322 00 0 00 002134 		JUMPE	AC0,$MTROF	;0,,0 = DISABLE
  2211	002116	316 00 0 00 007143 		CAMN	AC0,[-1]
  2212	002117	254 00 0 00 002123 		JRST	$MTRON		;-1 = ENABLE
  2213	002120	607 00 0 00 777777 		TLNN	AC0,-1
  2214	002121	254 00 0 00 002140 		JRST	$MTRW		;0,,X = WAIT
  2215	002122	202 00 0 00 007603 		MOVEM	AC0,$MTRI	;XCT INST
  2216
  2217	002123	200 00 0 00 007144 	$MTRON:	MOVE	[JSR $MTRIR]
  2218	002124	202 00 0 00 000514 		MOVEM	514		;SETUP METER VECTOR
  2219	002125	402 00 0 00 007605 		SETZM	MTRCNT		;CLEAR METER COUNT
  2220	002126	336 00 0 00 030505 		SKIPN	CYCL60
  2221	002127	7 020 20 0 00 463203 		CONO	TIM,463203	;60 HZ
  2222	002130	332 00 0 00 030505 		SKIPE	CYCL60
  2223	002131	7 020 20 0 00 463720 		CONO	TIM,463720	;50 HZ
  2224	002132	7 024 20 0 00 000001 		CONO	MTR,1		;ON PI CHN 1
  2225	002133	263 17 0 00 000000 		RTN
  2226
  2227	002134	7 024 20 0 00 000000 	$MTROF:	CONO	MTR,0		;TURN METER OFF
  2228	002135	263 17 0 00 000000 		RTN
  2229
  2230	002136	200 00 0 00 007605 	$MTRRD:	MOVE	0,MTRCNT	;READ METER COUNT
  2231	002137	263 17 0 00 000000 		RTN
  2232
  2233	002140	202 01 0 00 007603 	$MTRW:	MOVEM	1,$MTRI		;WAIT, INSTRUCTION IN AC1
  2234	002141	202 00 0 00 007604 		MOVEM	0,$MTRWC	;WAIT COUNT IN AC0
  2235	002142	254 00 0 00 002123 		JRST	$MTRON
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 22
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0133

  2236					S^;*********************************************************************^
  2237					;*METER INTERRUPT ROUTINE
  2238					S^;*********************************************************************^
  2239
  2240	002143	000000	000000		$MTRIR:	0			;METER INTERRUPT ROUTINE
  2241	002144	7 024 20 0 00 000000 		CONO	MTR,0		;CLEAR METER
  2242	002145	336 00 0 00 030505 		SKIPN	CYCL60
  2243	002146	7 020 20 0 00 063203 		CONO	TIM,63203	;RESET PERIOD
  2244	002147	332 00 0 00 030505 		SKIPE	CYCL60
  2245	002150	7 020 20 0 00 063720 		CONO	TIM,63720
  2246	002151	7 024 20 0 00 000001 		CONO	MTR,1		;REENABLE
  2247	002152	350 00 0 00 007605 		AOS	MTRCNT		;COUNT CLOCK INTERVAL
  2248	002153	332 00 0 00 007604 		SKIPE	$MTRWC		;DOING A WAIT ?
  2249	002154	254 00 0 00 002161 		JRST	$MTIR2		;YES
  2250	002155	476 00 0 00 030045 	$MTIR1:	SETOM	CLOCKF		;SET DIAG SEGMENT CLOCK FLAG
  2251	002156	332 00 0 00 007603 		SKIPE	$MTRI		;ANY XCT INSTRUCTION ?
  2252	002157	256 00 0 00 007603 		XCT	$MTRI		;YES, DO USERS REQUEST
  2253	002160	254 12 1 00 002143 		JEN	@$MTRIR		;RESUME PROGRAM
  2254
  2255	002161	202 00 0 00 007606 	$MTIR2:	MOVEM	0,$MTRAC
  2256	002162	200 00 0 00 007605 		MOVE	0,MTRCNT
  2257	002163	311 00 0 00 007604 		CAML	0,$MTRWC	;WAITED LONG ENOUGH ?
  2258	002164	254 00 0 00 002167 		JRST	$MTIR3		;YES
  2259	002165	200 00 0 00 007606 		MOVE	0,$MTRAC	;NOT YET
  2260	002166	254 12 1 00 002143 		JEN	@$MTRIR		;JUST EXIT
  2261
  2262	002167	200 00 0 00 007606 	$MTIR3:	MOVE	0,$MTRAC
  2263	002170	254 00 0 00 002155 		JRST	$MTIR1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 23
SUBRTM	MAC	23-Mar-78 15:08		PROCESSOR TYPE DETERMINATION                                                       SEQ 0134

  2264					SUBTTL	PROCESSOR TYPE DETERMINATION
  2265					S^;*********************************************************************^
  2266
  2267	002171	402 00 0 00 030505 	$CPUTP:	SETZM	CYCL60
  2268	002172	402 00 0 00 030041 		SETZM	KLFLG
  2269	002173	402 00 0 00 030040 		SETZM	KAIFLG
  2270	002174	200 01 0 00 007106 	$CPKL:	MOVE	1,[1,,1]	;IF KL10, AC1 AFTER BLT WILL CHANGE
  2271	002175	251 01 0 00 000001 		BLT	1,1
  2272	002176	316 01 0 00 007106 		CAMN	1,[1,,1]
  2273	002177	254 00 0 00 002237 		JRST	$CPDP6
  2274	002200	476 00 0 00 030041 		SETOM	KLFLG		;KL10 - SET FLAG
  2275
  2276	002201	332 00 0 00 030037 	$CPINI:	SKIPE	USER
  2277	002202	263 17 0 00 000000 		RTN			;USER, NO SPECIAL INIT
  2278	002203	336 00 0 00 030041 		SKIPN	KLFLG
  2279	002204	254 00 0 00 002251 		JRST	$CPAII
  2280	002205	700500	007577		$CPLII:	700500,,$SBRD1		;RESET S-BUS DIAG
  2281	002206	7 000 00 0 00 000000 		BLKI	APR,0		;GET KL10 HARDWARE OPTIONS
  2282	002207	602 00 0 00 400000 		TRNE	0,1B18		;50 HZ BIT SET ?
  2283	002210	476 00 0 00 030505 		SETOM	CYCL60		;YES, SET INDICATOR
  2284	002211	606 00 0 00 200000 		TRNN	0,1B19		;CACHE OPTION BIT SET ?
  2285	002212	476 00 0 00 030506 		SETOM	CSHFLG		;NO, INHIBIT CACHE
  2286	002213	200 00 0 00 000457 		MOVE	$DTSWR		;GET INITIAL SWITCHES
  2287	002214	603 00 0 00 000004 		TLNE	CHAIN		;IS "CHAIN MODE" SET ?
  2288	002215	476 00 0 00 030056 		SETOM	$ONETM		;YES, DON'T PRINT ID INFO
  2289	002216	332 00 0 00 030043 		SKIPE	MONCTL		;DIAGNOSTIC MONITOR ?
  2290	002217	263 17 0 00 000000 		RTN			;YES, NO FURTHER INIT
  2291	002220	201 00 0 00 003214 		MOVEI	$IPGFL		;SETUP INITIALIZATION PAGE FAIL TRAP
  2292	002221	202 00 0 00 000502 		MOVEM	LPGFTR
  2293	002222	7 010 24 0 00 000000 		CONI	PAG,0
  2294	002223	620 00 0 00 057777 		TRZ	0,57777
  2295	002224	7 010 20 1 00 000000 		CONO	PAG,@0		;CLEAR EBR
  2296	002225	7 010 24 0 00 000000 		CONI	PAG,0		;READ EBR
  2297	002226	620 00 0 00 620000 		TRZ	0,620000	;CLEAR CACHE & TRPENB
  2298	002227	302 00 0 00 000000 		CAIE	0,0
  2299	002230	254 04 0 00 001016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  2300	002231	7 010 14 0 00 007145 		DATAO	PAG,[LLPRCN!LLDUSB,,400000] ;CLEAR UBR
  2301	002232	7 010 04 0 00 000000 		DATAI	PAG,0		;READ UBR
  2302	002233	621 00 0 00 747700 		TLZ	0,747700	;CLEAR MISC, CURR & PREV AC BLOCK
  2303	002234	302 00 0 00 000000 		CAIE	0,0
  2304	002235	254 04 0 00 001016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  2305	002236	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 24
SUBRTM	MAC	23-Mar-78 15:08		PROCESSOR TYPE DETERMINATION                                                       SEQ 0135

  2306	002237	476 00 0 00 030040 	$CPDP6:	SETOM	KAIFLG		;KAIFLG=-1=KI10, KAIFLG=0=KA10
  2307	002240	255 17 0 00 002241 		JFCL	17,.+1
  2308	002241	254 00 0 00 002243 		JRST	$CPKAI		;NOT PDP-6
  2309	002242	255 01 0 00 002247 		JFCL	1,$PDP6		;TREAT PDP-6 AS KA10
  2310
  2311	002243	476 00 0 00 030040 	$CPKAI:	SETOM	KAIFLG
  2312	002244	211 00 0 00 000001 		MOVNI	0,1
  2313	002245	253 00 0 00 002246 		AOBJN	0,.+1		;CARRY INTO BIT 17 - DETERMINES KA/KI
  2314	002246	332 00 0 00 000000 		SKIPE	0		;KI10 IF (AC) = 0,,0
  2315
  2316	002247	402 00 0 00 030040 	$PDP6:	SETZM	KAIFLG		;KA10 IF (AC) = 1,,0
  2317	002250	254 00 0 00 002201 		JRST	$CPINI
  2318
  2319	002251	336 00 0 00 030040 	$CPAII:	SKIPN	KAIFLG
  2320	002252	254 00 0 00 002265 		JRST	$CPKA1
  2321
  2322	002253	7 000 24 0 00 000000 	$CPIII:	CONI	APR,0
  2323	002254	603 00 0 00 004000 		TLNE	0,IP50HZ	;50 CYCLE POWER ?
  2324	002255	476 00 0 00 030505 		SETOM	CYCL60		;YES
  2325	002256	332 00 0 00 030043 		SKIPE	MONCTL
  2326	002257	263 17 0 00 000000 		RTN
  2327	002260	7 010 14 0 00 007146 		DATAO	PAG,[LDUSRB,,LDEXCB]
  2328	002261	7 010 04 0 00 000000 		DATAI	PAG,0		;CLEAR EBR & UBR
  2329	002262	302 00 0 00 000000 		CAIE	0,0
  2330	002263	254 04 0 00 001016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  2331	002264	254 00 0 00 002272 		JRST	$CPX1
  2332
  2333					;KA10 POWER DETERMINATION
  2334
  2335	002265	7 000 04 0 00 000000 	$CPKA1:	DATAI	APR,0		;READ SWITCHES
  2336	002266	603 00 0 00 000002 		TLNE	0,KAHZ50	;50 HERTZ SWITCH SET ?
  2337	002267	476 00 0 00 030505 		SETOM	CYCL60		;YES, SET INDICATOR
  2338	002270	332 00 0 00 030043 		SKIPE	MONCTL
  2339	002271	263 17 0 00 000000 		RTN
  2340
  2341	002272	400 00 0 00 000000 	$CPX1:	SETZ	0,
  2342	002273	7 004 14 0 00 000000 		DATAO	PI,0		;KA/KI, CLEAR MI
  2343	002274	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 25
SUBRTM	MAC	23-Mar-78 15:08		"DIAMON" FILE SELECTION & READ                                                     SEQ 0136

  2344					SUBTTL	"DIAMON" FILE SELECTION & READ
  2345					S^;*********************************************************************^
  2346
  2347	002275	261 17 0 00 000000 	$FSELECT:PUT	0
  2348	002276	402 00 0 00 007655 		SETZM	$FSELF#
  2349	002277	200 00 0 00 007147 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  2350	002300	251 00 0 00 007630 		BLT	POWER+16
  2351	002301	262 17 0 00 000000 		GET	0
  2352	002302	336 00 0 00 027772 		SKIPN	FSELNK		;ANY FILE SELECT LINK ?
  2353	002303	254 00 0 00 002315 		JRST	$FSEL1		;NO
  2354
  2355	002304	260 17 1 00 027772 		GO	@FSELNK		;TRANSFER TO "DIAMON"
  2356	002305	254 00 0 00 002310 		JRST	$FSEL2		;ERROR RTN, AC0 HAS CODE
  2357
  2358	002306	476 00 0 00 007655 		SETOM	$FSELF		;FOUND, SET FILE SELECTED FLAG
  2359	002307	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN
  2360	002310	261 17 0 00 000000 	$FSEL2:	PUT	0
  2361	002311	204 00 0 00 007147 		MOVS	0,[1,,POWER+1]	;RESTORE ACS
  2362	002312	251 00 0 00 000016 		BLT	16
  2363	002313	262 17 0 00 000000 		GET	0
  2364	002314	263 17 0 00 000000 		RTN
  2365
  2366	002315	402 00 0 00 000000 	$FSEL1:	SETZM	0		;NO "DIAMON" CAPABILTY
  2367	002316	254 00 0 00 002310 		JRST	$FSEL2
  2368
  2369					;*"DIAMON" FILE READ
  2370					S^;*********************************************************************^
  2371
  2372	002317	201 00 0 00 000001 	$FRD8:	MOVEI	0,1		;SET FLAG FOR 8BIT READ
  2373	002320	254 00 0 00 002324 		JRST	.+4
  2374	002321	474 00 0 00 000000 	$FRD36:	SETO			;SET FLAG FOR 36 BIT READ
  2375	002322	254 00 0 00 002324 		JRST	.+2
  2376	002323	400 00 0 00 000000 	$FREAD:	SETZ			;SET FLAG FOR 7 BIT ASCII READ
  2377	002324	261 17 0 00 000000 		PUT	0
  2378	002325	336 00 0 00 007655 		SKIPN	$FSELF		;WAS ANY FILE SELECTED ?
  2379	002326	037 15 0 00 000004 		FATAL			;NO
  2380	002327	336 00 0 00 027773 		SKIPN	FRDLNK		;ANY FILE READ LINK ?
  2381	002330	037 15 0 00 000004 		FATAL			;NO
  2382	002331	200 00 0 00 007147 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  2383	002332	251 00 0 00 007630 		BLT	POWER+16
  2384	002333	262 17 0 00 000000 		GET	0		;GET FORMAT FLAG
  2385	002334	260 17 1 00 027773 		GO	@FRDLNK		;TRANSFER TO "DIAMON"
  2386	002335	254 00 0 00 002310 		JRST	$FSEL2		;EOF
  2387	002336	254 00 0 00 002307 		JRST	$FSEL2-1	;OK, SKIP RETURN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 26
SUBRTM	MAC	23-Mar-78 15:08		PROGRAM HALTS                                                                      SEQ 0137

  2388					SUBTTL	PROGRAM HALTS
  2389
  2390					;*SUBROUTINE ERROR HALT
  2391					S^;*********************************************************************^
  2392
  2393	002337	037 04 0 00 000002 	$ERHLT:	PNTNM			;PRINT PROGRAM NAME
  2394						PMSGF	<ERROR HALT AT >^
  2395	002340	037 04 0 00 007150 		PSIXMF	[SIXBIT\ERROR HALT AT _\]^
  2396	002341	262 17 0 00 007654 		GET	$ERH0
  2397	002342	261 17 0 00 000000 		PUT	0
  2398	002343	200 00 0 00 007654 		MOVE	AC0,$ERH0#	;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
  2399	002344	370 00 0 00 000000 		SOS			;SUBTRACT ONE FOR USRPC OF ERROR
  2400	002345	037 06 0 00 000001 		PNT6F			;PRINT USRPC FORCED
  2401	002346	037 01 0 00 030242 		PCRLF
  2402
  2403	002347	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER MONITOR CONTROL ?
  2404	002350	254 00 0 00 002356 		JRST	$ERHL4		;NO..HALT AT USRPC WHERE UUO OCCURRED
  2405
  2406	002351	260 17 0 00 004751 	$ERHL1:	GO	$SWTCH		;READ SWITCHES INTO AC0
  2407	002352	603 00 0 00 002000 		TLNE	0,ERSTOP	;HALT ON ERROR SWITCH SET ?
  2408	002353	254 00 0 00 002356 		JRST	$ERHL4		;YES...HALT
  2409
  2410	002354	262 17 0 00 000000 	$ERHL3:	GET	AC0		;RESTORE  THE STACK (P - 1)
  2411	002355	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  2412
  2413	002356	476 00 0 00 007633 	$ERHL4:	SETOM	KLNSW
  2414	002357	201 00 0 00 000402 		MOVEI	AC0,402		;IF KL10, NOTIFY PDP-11
  2415	002360	260 17 0 00 002043 		GO	$DTEXX
  2416	002361	262 17 0 00 000000 		GET	AC0
  2417	002362	336 00 0 00 030037 		SKIPN	USER		;USER MODE ?
  2418	002363	254 04 1 00 007654 		HALT	@$ERH0		;NO, HALT WHERE ERROR OCCURED
  2419	002364	047 01 0 00 000012 		EXIT	1,		;YES, RETURN TO MONITOR
  2420	002365	254 00 1 00 007654 		JRST	@$ERH0		;IF CONTINUED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 27
SUBRTM	MAC	23-Mar-78 15:08		PROGRAM HALTS                                                                      SEQ 0138

  2421					;*FATAL PROGRAM ERROR HALT
  2422					S^;*********************************************************************^
  2423
  2424	002366	037 04 0 00 000002 	$FATAL:	PNTNM
  2425						PMSGF	<FATAL PROGRAM ERROR AT >^
  2426	002367	037 04 0 00 007153 		PSIXMF	[SIXBIT\FATAL PROGRAM ERROR AT _\]^
  2427	002370	200 00 0 17 000000 		MOVE	AC0,(P)		;RETRIEVE USRPC + 1 FROM THE STACK
  2428	002371	370 00 0 00 000000 		SOS			;- 1
  2429	002372	037 06 0 00 000001 		PNT6F			;PRINT IT
  2430	002373	037 01 0 00 030242 		PCRLF
  2431	002374	331 00 0 00 030043 		SKIPL	MONCTL		;EXEC - DIAGNOSTIC MONITOR ?
  2432	002375	254 00 0 00 002401 		JRST	$FATL1		;NO, END OF PROGRAM
  2433	002376	260 17 0 00 004751 		GO	$SWTCH		;YES ... READ SWITCHES
  2434	002377	607 00 0 00 002000 		TLNN	ERSTOP		;STOP ON ERROR ?
  2435	002400	254 00 0 00 030061 		JRST	$BEND2		;NO, END OF PROGRAM
  2436
  2437	002401	476 00 0 00 007633 	$FATL1:	SETOM	KLNSW
  2438	002402	201 00 0 00 000401 		MOVEI	AC0,401
  2439	002403	260 17 0 00 002043 		GO	$DTEXX		;NOTIFY PDP-11
  2440
  2441	002404	261 17 0 00 000000 	$DDTENT:PUT	0
  2442	002405	200 00 0 00 010001 		MOVE	AC0,DDT+1	;GET DDT ID
  2443	002406	312 00 0 00 007157 		CAME	AC0,[ASCII/DDT/]
  2444	002407	254 00 0 00 030061 		JRST	$BEND2		;NOT LOADED, END PROGRAM
  2445	002410	262 17 0 00 000000 		GET	0
  2446	002411	254 00 1 00 027775 		JRST	@DDTLNK		;DDT LOADED, GO TO IT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 28
SUBRTM	MAC	23-Mar-78 15:08		PROGRAM NAME PRINTER                                                               SEQ 0139

  2447					SUBTTL	PROGRAM NAME PRINTER
  2448
  2449					;*PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
  2450					S^;*********************************************************************^
  2451						SALL
  2452	002412	331 00 0 00 030043 	$PNTNM:	SKIPL	MONCTL		;DIAG MON / SYS EXR ?
  2453	002413	254 00 0 00 002475 		JRST	$PNM2		;NO
  2454	002414	037 00 1 00 030025 		PNTMSG	@$PNAME		;PRINT PROGRAM NAME
  2455	002415	037 02 0 00 007160 		PMSG	<VERSION >
  2456	002416	554 00 0 00 000137 		HLRZ	JOBVER
  2457	002417	037 16 0 00 000003 		PNTOCS			;PRINT MCN LEVEL
  2458	002420	037 00 0 00 000056 		PNTCI	"."
  2459	002421	550 00 0 00 000137 		HRRZ	JOBVER
  2460	002422	037 16 0 00 000003 		PNTOCS			;PRINT DEC VERSION
  2461	002423	037 02 0 00 007162 		PMSG	<, SV=>
  2462	002424	554 00 0 00 001006 		HLRZ	SUBVER
  2463	002425	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" MCN LEVEL
  2464	002426	037 00 0 00 000056 		PNTCI	"."
  2465	002427	550 00 0 00 001006 		HRRZ	SUBVER
  2466	002430	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" DEC VERSION
  2467	002431	332 00 0 00 030037 		SKIPE	USER
  2468	002432	254 00 0 00 002475 		JRST	$PNM2
  2469	002433	332 00 0 00 030041 		SKIPE	KLFLG
  2470	002434	254 00 0 00 002446 		JRST	$KLSN
  2471	002435	336 00 0 00 030040 		SKIPN	KAIFLG
  2472	002436	254 00 0 00 002471 		JRST	$PNM1
  2473
  2474	002437	7 010 24 0 00 007657 	$KISN:	CONI	PAG,$KISNX#	;GET KI10 SERIAL NUMBER
  2475	002440	200 00 0 00 007657 		MOVE	$KISNX
  2476	002441	242 00 0 00 777746 		LSH	-^D26
  2477	002442	307 00 0 00 001000 		CAIG	^D512		;IF 512 OR GREATER, OK
  2478	002443	271 00 0 00 002000 		ADDI	^D1024		;OTHERWISE ADD 1024
  2479	002444	260 17 0 00 002477 		GO	$SNPNT		;PRINT CPU SERIAL NUMBER
  2480	002445	254 00 0 00 002471 		JRST	$PNM1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 29
SUBRTM	MAC	23-Mar-78 15:08		PROGRAM NAME PRINTER                                                               SEQ 0140

  2481	002446	7 000 00 0 00 007660 	$KLSN:	BLKI	APR,$KLSNX#	;GET KL10 CPU ID INFO
  2482	002447	200 00 0 00 007660 		MOVE	$KLSNX
  2483	002450	405 00 0 00 007777 		ANDI	7777
  2484	002451	260 17 0 00 002477 		GO	$SNPNT		;PRINT CPU SERIAL NUMBER
  2485	002452	037 02 0 00 007163 		PMSG	<, MCV=>
  2486	002453	200 00 0 00 007660 		MOVE	$KLSNX
  2487	002454	207 00 0 00 000000 		MOVSS
  2488	002455	405 00 0 00 000777 		ANDI	777
  2489	002456	037 16 0 00 000003 		PNTOCS			;PRINT MICRO-CODE VERSION
  2490	002457	037 02 0 00 007165 		PMSG	<, MCO=>
  2491	002460	200 00 0 00 007660 		MOVE	$KLSNX
  2492	002461	242 00 0 00 777745 		LSH	-^D27
  2493	002462	405 00 0 00 000777 		ANDI	777
  2494	002463	037 16 0 00 000003 		PNTOCS			;PRINT MICRO-CODE OPTIONS
  2495	002464	037 02 0 00 007167 		PMSG	<, HO=>
  2496	002465	200 00 0 00 007660 		MOVE	$KLSNX
  2497	002466	242 00 0 00 777764 		LSH	-^D12
  2498	002467	405 00 0 00 000077 		ANDI	77
  2499	002470	037 16 0 00 000003 		PNTOCS			;PRINT HARDWARE OPTIONS
  2500
  2501	002471	336 00 0 00 030505 	$PNM1:	SKIPN	CYCL60
  2502	002472	037 02 0 00 007170 		PMSG	<, 60HZ>
  2503	002473	332 00 0 00 030505 		SKIPE	CYCL60
  2504	002474	037 02 0 00 007172 		PMSG	<, 50HZ>
  2505
  2506	002475	037 00 0 00 030242 	$PNM2:	PCRL
  2507	002476	263 17 0 00 000000 		RTN			;EXIT
  2508
  2509	002477	261 17 0 00 000000 	$SNPNT:	PUT	0
  2510	002500	037 02 0 00 007174 		PMSG	<, CPU#=>
  2511	002501	262 17 0 00 000000 		GET	0
  2512	002502	037 15 0 00 000000 		PNTDEC			;PRINT CPU SERIAL NUMBER
  2513	002503	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 30
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0141

  2514					SUBTTL	*SUBRTN* INTERRUPT HANDLING ROUTINES
  2515						LALL
  2516
  2517					;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
  2518					S^;*********************************************************************^
  2519
  2520	002504				PSHERR:	PMSGF	<^*****^PLIST UFLOW^>^
  2521	002504	037 04 0 00 007176 		PSIXMF	[SIXBIT\^*****^PLIST UFLOW^_\]^
  2522	002505	037 15 0 00 000004 		FATAL			;PRINT LOCATION AND EXIT
  2523
  2524					S^;*********************************************************************^
  2525					;*INTERRUPT ROUTINE INITIALIZATION
  2526					S^;*********************************************************************^
  2527
  2528	002506	332 00 0 00 030037 	$ITRIN:	SKIPE	USER		;PROCESSOR IN USER MODE ?
  2529	002507	254 00 0 00 002531 		JRST	$ITRUS		;YES
  2530
  2531					;*SETUP INTERRUPT VECTORS
  2532
  2533	002510	200 00 0 00 007202 		MOVE	[JSR ITRCH1]
  2534	002511	202 00 0 00 000042 		MOVEM	42
  2535	002512	202 00 0 00 000044 		MOVEM	44
  2536	002513	202 00 0 00 000046 		MOVEM	46
  2537	002514	202 00 0 00 000050 		MOVEM	50
  2538	002515	202 00 0 00 000052 		MOVEM	52
  2539	002516	202 00 0 00 000054 		MOVEM	54
  2540	002517	202 00 0 00 000056 		MOVEM	56
  2541
  2542	002520	200 00 0 00 007203 		MOVE	[JRST $ITRC1]	;SETUP "FIXED" LINKING
  2543	002521	202 00 0 00 030105 		MOVEM	ITRCH1+1
  2544	002522	200 00 0 00 007204 		MOVE	[JRST RESRTX]
  2545	002523	202 00 0 00 030076 		MOVEM	RESRT1
  2546	002524	332 00 0 00 030041 		SKIPE	KLFLG		;KL10 CPU ?
  2547	002525	254 00 0 00 003176 		JRST	$KL10		;YES
  2548	002526	336 00 0 00 030040 		SKIPN	KAIFLG
  2549	002527	254 00 0 00 002752 		JRST	$KA10		;KA10 CPU
  2550	002530	254 00 0 00 003060 		JRST	$KI10		;KI10 CPU
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 31
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0142

  2551					;*USER MODE INITIALIZATION
  2552
  2553	002531	201 00 0 00 002536 	$ITRUS:	MOVEI	ITRUSR		;SETUP USER APR TRAPPING
  2554	002532	202 00 0 00 000125 		MOVEM	JOBAPR
  2555	002533	201 00 0 00 234000 		MOVEI	PDLOVU!MPVU!NXMU!PARU
  2556	002534	047 00 0 00 000016 		APRENB			;ENABLE PROCESSOR TRAPS
  2557	002535	263 17 0 00 000000 		RTN
  2558
  2559					;*USER MODE INTERRUPTS
  2560
  2561	002536	202 00 0 00 030106 	ITRUSR:	MOVEM	$ACC0
  2562	002537	200 00 0 00 000127 		MOVE	JOBTPC
  2563	002540	202 00 0 00 030104 		MOVEM	ITRCH1		;SAVE TRAPPED ADDRESS
  2564	002541	200 00 0 00 000126 		MOVE	JOBCNI
  2565	002542	202 00 0 00 030110 		MOVEM	$SVAPR		;SAVE CAUSE
  2566	002543	402 00 0 00 030107 		SETZM	$SVPI
  2567	002544	602 00 0 00 004000 		TRNE	PARU
  2568	002545	254 00 0 00 002574 	$UPAR:	JRST	$PAREX		;PARITY ERROR
  2569	002546	602 00 0 00 200000 		TRNE	PDLOVU
  2570	002547	254 00 0 00 002557 	$UPDL:	JRST	$PDOVU		;PUSHDOWN OVERFLOW
  2571	002550	602 00 0 00 020000 		TRNE	MPVU
  2572	002551	254 00 0 00 002570 	$UMPV:	JRST	$MPVU		;MEMORY PROTECTION VIOLATION
  2573	002552	602 00 0 00 010000 		TRNE	NXMU
  2574	002553	254 00 0 00 002572 	$UNXM:	JRST	$NXMU		;NON-X-MEMORY
  2575	002554	200 00 0 00 030106 		MOVE	$ACC0
  2576	002555	256 00 0 00 030073 		XCT	$USRHL		;EXECUTE USER ROUTINE, IF SUPPLIED
  2577	002556	254 00 0 00 002603 		JRST	$ITRHZ+3	;ERROR
  2578
  2579					;*DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
  2580					S^;*********************************************************************^
  2581						SALL
  2582	002557	202 17 0 00 007704 	$PDOVU:	MOVEM	P,$PDOVP#
  2583	002560	200 17 0 00 030303 		MOVE	P,PLIST		;RESET POINTER
  2584	002561	201 00 0 00 030103 		MOVEI	0,$PSHER
  2585	002562	261 17 0 00 000000 		PUSH	P,0
  2586	002563	037 02 0 00 007205 		PMSG	<^*****^PLIST OVERFLOW P=>
  2587	002564	200 00 0 00 007704 		MOVE	0,$PDOVP
  2588	002565	037 13 0 00 000000 		PNTHW
  2589	002566	400 00 0 00 000000 		SETZ
  2590	002567	254 00 0 00 002617 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE
  2591
  2592	002570	201 00 0 00 007212 	$MPVU:	MOVEI	SIXBTZ	<^MEMORY PROT>
  2593	002571	254 00 0 00 002604 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2594
  2595	002572	201 00 0 00 007215 	$NXMU:	MOVEI	SIXBTZ	<^NON-EX MEMORY>
  2596	002573	254 00 0 00 002604 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 32
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0143

  2597	002574	200 00 0 00 030106 	$PAREX:	MOVE	0,$ACC0
  2598	002575	256 00 0 00 030100 		XCT	$PARER		;EXECUTE USER ROUTINE, IF PROVIDED
  2599	002576	201 00 0 00 007220 		MOVEI	SIXBTZ	<^MEMORY PARITY>
  2600	002577	254 00 0 00 002604 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2601						LALL
  2602					;*COMMON INTERRUPT HANDLERS
  2603					S^;*********************************************************************^
  2604						SALL
  2605	002600	200 00 0 00 030106 	$ITRHZ:	MOVE	0,$ACC0
  2606	002601	256 00 0 00 030071 		XCT	$ITRHL		;EXECUTE USER ROUTINE, IF SUPPLIED
  2607	002602	7 004 20 0 00 000400 		CONO	PI,PIOFF	;CLEAR PI SYSTEM
  2608	002603	201 00 0 00 007223 		MOVEI	SIXBTZ	<^UNKNOWN INTERRUPT>
  2609						LALL
  2610					;*PRINT CAUSE AND OTHER PERTINENT INFO
  2611					S^;*********************************************************************^
  2612						SALL
  2613	002604	336 00 0 00 030037 	$ITR1A:	SKIPN	USER
  2614	002605	336 00 0 00 030041 		SKIPN	KLFLG
  2615	002606	254 00 0 00 002617 		JRST	$ITR1B
  2616	002607	261 17 0 00 000000 		PUT	0
  2617	002610	037 02 0 00 007227 		PMSG	<^ERROR ADDRESS REG = >
  2618	002611	200 00 0 00 007574 		MOVE	$SVERA
  2619	002612	037 13 0 00 000000 		PNTHW
  2620	002613	037 02 0 00 007233 		PMSG	<DMA = >
  2621	002614	200 00 0 00 007576 		MOVE	$SBRD+1
  2622	002615	037 13 0 00 000000 		PNTHW
  2623	002616	262 17 0 00 000000 		GET	0
  2624	002617	332 00 0 00 000000 	$ITR1B:	SKIPE	0
  2625	002620	037 14 0 00 000003 		PSIXL			;PRINT CAUSE
  2626	002621	037 02 0 00 007235 		PMSG	<^APR            PI             FLAGS  PC      PROG^>
  2627	002622	200 00 0 00 030110 		MOVE	$SVAPR#
  2628	002623	037 13 0 00 000000 		PNTHW			;PRINT APR CONI BITS
  2629	002624	037 00 0 00 000040 		PSP
  2630	002625	200 00 0 00 030107 		MOVE	$SVPI#
  2631	002626	037 13 0 00 000000 		PNTHW			;PRINT PI CONI BITS
  2632	002627	037 00 0 00 000040 		PSP
  2633	002630	200 00 0 00 030104 		MOVE	ITRCH1
  2634	002631	037 13 0 00 000000 		PNTHW			;PRINT FLAGS, PC
  2635	002632	037 00 0 00 000040 		PSP
  2636	002633	550 00 0 17 000000 		HRRZ	0,(P)
  2637	002634	037 06 0 00 000000 		PNT6			;PRINT LAST PUSHJ ENTRY
  2638	002635	037 00 0 00 030242 		PCRL
  2639	002636	200 00 0 00 030106 		MOVE	0,$ACC0
  2640	002637	256 00 0 00 030072 		XCT	$ITRX1		;EXECUTE USER ROUTINE, IF SUPPLIED
  2641	002640	037 15 0 00 000004 		FATAL
  2642						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 33
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0144

  2643					;*COMMON INTERRUPT ROUTINE
  2644					S^;*********************************************************************^
  2645
  2646	002641	202 00 0 00 030106 	$ITRC1:	MOVEM	AC0,$ACC0#	;SAVE AC0
  2647	002642	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE APR SYSTEM
  2648	002643	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI SYSTEM
  2649	002644	200 00 0 00 000041 		MOVE	AC0,JOB41
  2650	002645	312 00 0 00 007057 		CAME	AC0,[GO	$UORTN]
  2651	002646	254 04 0 00 001020 		HALT	LUOERR		;UUO HANDLER INVALID
  2652	002647	200 00 0 00 030106 		MOVE	AC0,$ACC0
  2653	002650	332 00 0 00 030041 		SKIPE	KLFLG		;KL10 CPU ?
  2654	002651	254 00 0 00 003124 		JRST	$KLITR
  2655	002652	336 00 0 00 030040 		SKIPN	KAIFLG		;NO-KI10 CPU ?
  2656	002653	254 00 0 00 002714 		JRST	$KAITR		;KA10
  2657	002654	254 00 0 00 002760 		JRST	$KIITR		;KI10
  2658
  2659					;*RESTORE PROCESSOR ON POWER FAIL RESTART
  2660					S^;*********************************************************************^
  2661						SALL
  2662	002655	336 00 0 00 007716 	RESRTX:	SKIPN	$PWRF		;DID POWER FAIL WORK?
  2663	002656	254 00 0 00 002711 		JRST	$PWRFL		;NO
  2664	002657	332 00 0 00 030041 		SKIPE	KLFLG
  2665	002660	254 00 0 00 003231 		JRST	$KLRST		;KL10
  2666	002661	336 00 0 00 030040 		SKIPN	KAIFLG
  2667	002662	254 00 0 00 002737 		JRST	$KARST
  2668	002663	254 00 0 00 003034 		JRST	$KIRST
  2669
  2670	002664	552 01 0 00 030107 	$RSTCM:	HRRZM	1,$SVPI
  2671	002665	552 03 0 00 030110 		HRRZM	3,$SVAPR
  2672	002666	204 00 0 00 007147 		MOVS	[1,,POWER+1]	;RESTORE AC'S
  2673	002667	251 00 0 00 000017 		BLT	17
  2674	002670	037 04 0 00 007246 		PMSGF	<^POWER FAIL RESTART^>
  2675	002671	402 00 0 00 007716 		SETZM	$PWRF#
  2676	002672	200 00 0 00 007612 		MOVE	0,POWER
  2677	002673	256 00 0 00 030074 		XCT	$RSRTX		;EXECUTE USER ROUTINE, IF PROVIDED
  2678	002674	332 00 0 00 030041 		SKIPE	KLFLG
  2679	002675	254 00 0 00 002702 		JRST	.+5
  2680	002676	7 000 20 0 00 001000 		CONO	APR,CLKCLR	;CLEAR CLOCK
  2681	002677	7 000 34 0 00 001000 		CONSO	APR,CLK		;WAIT FOR IT TO SET
  2682	002700	254 00 0 00 002677 		JRST	.-1		;WHEN SET - CLEAR - GIVES 17MS
  2683	002701	7 000 20 0 00 001000 		CONO	APR,CLKCLR	;TO EXIT INTERRUPT ROUTINE
  2684	002702	7 000 20 1 00 030110 		CONO	APR,@$SVAPR	;RESET APR SYSTEM
  2685	002703	7 004 20 1 00 030107 		CONO	PI,@$SVPI	;RESET PI SYSTEM
  2686	002704	204 00 0 00 007147 		MOVS	[1,,POWER+1]	;RESTORE AC'S
  2687	002705	251 00 0 00 000017 		BLT	17
  2688	002706	200 00 0 00 007612 		MOVE	0,POWER
  2689	002707	256 00 0 00 030075 		XCT	$RSRTY		;EXECUTE USER ROUTINE, IF PROVIDED
  2690	002710	254 02 1 00 007717 		JRSTF	@$PWRST
  2691
  2692	002711	265 00 0 00 030011 	$PWRFL:	PGMINT			;REINIT THE SUBROUTINE PACKAGE
  2693	002712	037 04 0 00 007252 		PMSGF	<^POWER INTERRUPT FAILED^>
  2694	002713	254 04 0 00 030000 		HALT	BEGIN
  2695						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 34
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0145

  2696					;*KA10 INTERRUPT ROUTINE
  2697					S^;*********************************************************************^
  2698
  2699	002714	7 004 34 0 00 400000 	$KAITR:	CONSO	PI,APWRFL	;POWER FAILURE ?
  2700	002715	254 00 0 00 002726 		JRST	$KAIT1		;NO CHECK FOR PARITY ERROR
  2701
  2702	002716	200 00 0 00 007147 	$KAPWR:	MOVE	0,[1,,POWER+1]	;YES-SAVE PROCESSOR STATE AND HALT
  2703	002717	251 00 0 00 007631 		BLT	POWER+17
  2704	002720	200 00 0 00 030106 		MOVE	$ACC0
  2705	002721	202 00 0 00 007612 		MOVEM	POWER
  2706	002722	200 00 0 00 030104 		MOVE	ITRCH1
  2707	002723	202 00 0 00 007717 		MOVEM	$PWRST#		;USER RESTART, IF WANTED
  2708	002724	476 00 0 00 007716 		SETOM	$PWRF		;NOTIFY OF POWER FAIL ON RESTART
  2709	002725	254 04 0 00 030000 		HALT	BEGIN		;POWER ON POINT 
  2710
  2711	002726	7 004 30 0 00 200000 	$KAIT1:	CONSZ	PI,APARER	;PARITY ERROR ?
  2712	002727	254 00 0 00 002574 	$KAPAR:	JRST	$PAREX		;YES 
  2713	002730	7 000 30 0 00 200000 		CONSZ	APR,APDLOV	;NO-PUSH LIST OV ?
  2714	002731	254 00 0 00 002557 	$KAPDL:	JRST	$PDOVU		;YES 
  2715	002732	7 000 30 0 00 020000 		CONSZ	APR,AMPV	;NO-MEM PROT VIOLATE ?
  2716	002733	254 00 0 00 002570 	$KAMPV:	JRST	$MPVU		;YES 
  2717	002734	7 000 30 0 00 010000 		CONSZ	APR,ANXM	;NO-NON-X-MEM ERROR ?
  2718	002735	254 00 0 00 002572 	$KANXM:	JRST	$NXMU		;YES 
  2719	002736	254 00 0 00 002600 		JRST	$ITRHZ		;NO-REST COMMON RUPTS 
  2720
  2721					;*KA10 POWER FAIL RESTART
  2722					S^;*********************************************************************^
  2723
  2724	002737	7 000 20 0 00 675550 	$KARST:	CONO	APR,$KAINT
  2725	002740	7 004 20 0 00 711400 		CONO	PI,PWFCLR!PARCLR!PARDIS!PICLR!CHNOFF!PIOFF
  2726	002741	200 03 0 00 030110 		MOVE	3,$SVAPR	;GET SAVED PROCESSOR STATUS
  2727	002742	620 03 0 00 775550 		TRZ	3,775550	;CLEAR MISC APR BITS
  2728	002743	200 01 0 00 030107 		MOVE	1,$SVPI		;GET SAVED PI STATUS
  2729	002744	620 01 0 00 777400 		TRZ	1,777400	;CLEAR MISC PI BITS
  2730	002745	200 02 0 00 030107 		MOVE	2,$SVPI		;GET SAVED PI STATUS STATUS AGAIN
  2731	002746	602 02 0 00 100000 		TRNE	2,APAREN	;WAS PARITY ENABLED ?
  2732	002747	660 01 0 00 040000 		TRO	1,PARENB	;YES-SET IT NOW
  2733	002750	660 01 0 00 002000 		TRO	1,CHNON		;SET PI CHANNEL ON BIT
  2734	002751	254 00 0 00 002664 		JRST	$RSTCM		;REST COMMON 
  2735
  2736					;*KA10 INTERRUPT INITIALIZATION
  2737					S^;*********************************************************************^
  2738
  2739			675550		$KAINT=APDCLR!IOCLR!AABCLR!AMPCLR!ANXCLR!CLKDIS!CLKCLR!AFODIS!AFOCLR!AOVDIS!AOVCLR
  2740
  2741	002752				$KA10:
  2742	002752	7 000 20 0 00 675550 	$KACLR:	CONO	APR,$KAINT	;CLR PROCESSOR
  2743	002753	7 004 20 0 00 311400 		CONO	PI,PARCLR!PARDIS!PICLR!CHNOFF!PIOFF	;CLR PI SYSTEM
  2744	002754	402 00 0 00 007716 		SETZM	$PWRF
  2745	002755	7 000 20 0 00 000001 	$KAENB:	CONO	APR,AAPRC1	;ENABLE CHANNEL 1
  2746	002756	7 004 20 0 00 042377 		CONO	PI,PARENB!CHNON!PION!PICHNA	;ENABLE ALL PI CHNS
  2747	002757	263 17 0 00 000000 		RTN			;EXIT  
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 35
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0146

  2748					;*KI10 INTERRUPT ROUTINE
  2749					S^;*********************************************************************^
  2750
  2751	002760	7 010 04 0 00 030111 	$KIITR:	DATAI	PAG,$SVPAG#	;SAVE PAGE
  2752	002761	7 000 34 0 00 020000 		CONSO	APR,IPWRFL	;POWER FAILURE?
  2753	002762	254 00 0 00 002777 		JRST	$KIIT1		;NO-LOOK FOR PARITY ERROR
  2754
  2755	002763	200 00 0 00 007147 	$KIPWR:	MOVE	[1,,POWER+1]	;YES
  2756	002764	251 00 0 00 007631 		BLT	POWER+17
  2757	002765	200 00 0 00 030106 		MOVE	$ACC0
  2758	002766	202 00 0 00 007612 		MOVEM	POWER
  2759	002767	200 00 0 00 030104 		MOVE	ITRCH1
  2760	002770	202 00 0 00 007717 		MOVEM	$PWRST#		;USER RESTART IF WANTED
  2761	002771	200 00 0 00 007257 		MOVE	[JRST PFSTRT]	;SET POWER FAIL TRAP
  2762	002772	202 00 0 00 000070 		MOVEM	70		;PFI TRAP LOCATION
  2763	002773	7 004 20 0 00 400000 		CONO	PI,PWFCLR	;CLEAR POWER FAIL
  2764	002774	7 000 20 0 00 010000 		CONO	APR,10000	;SET AUTO RESTART
  2765	002775	476 00 0 00 007716 		SETOM	$PWRF		;NOTIFY OF POWER FAIL ON RESTART
  2766	002776	254 04 0 00 030000 		HALT	BEGIN		;UNTIL POWER ON 
  2767
  2768	002777	7 000 34 0 00 200000 	$KIIT1:	CONSO	APR,IPARER	;PARITY ERROR ?
  2769	003000	254 00 0 00 003002 		JRST	$KINXM		;NO-LOOK FOR NON-X-MEM
  2770
  2771	003001	254 00 0 00 002574 	$PARKI:	JRST	$PAREX		;YES
  2772
  2773	003002	7 000 30 0 00 000100 	$KINXM:	CONSZ	APR,INXM	;NON-X-MEM ERROR ?
  2774	003003	254 00 0 00 002572 		JRST	$NXMU		;YES 
  2775	003004	254 00 0 00 002600 		JRST	$ITRHZ		;NO-REST ARE COMMON 
  2776
  2777					;*KI10/KL10 PUSHDOWN OVERFLOW TRAP ROUTINE
  2778					S^;*********************************************************************^
  2779
  2780	003005	202 00 0 00 030104 	$PDLOV:	MOVEM	AC0,ITRCH1	;SAVE USRPC  (VIA JSP)
  2781	003006	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2782	003007	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2783	003010	254 00 0 00 002557 		JRST	$PDOVU		;GO HANDLE IT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 36
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0147

  2784					;*KI10/KL10 PAGE FAIL TRAP ROUTINE
  2785					S^;*********************************************************************^
  2786	003011	332 00 0 00 030041 	$PGFL:	SKIPE	KLFLG
  2787	003012	200 00 0 00 000501 		MOVE	AC0,LPFWPC	;KL10, GET PAGE FAIL PC
  2788	003013	202 00 0 00 030104 		MOVEM	AC0,ITRCH1	;SAVE USRPC
  2789	003014	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2790	003015	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2791						PMSG	<^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- >^
  2792	003016	037 02 0 00 007260 		PSIXM	[SIXBIT\^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- _\]^
  2793	003017	200 00 0 00 000426 	$PGFL1:	MOVE	EXCPFW		;GET KI10 PAGE FAIL WORD
  2794	003020	332 00 0 00 030041 		SKIPE	KLFLG
  2795	003021	200 00 0 00 000500 		MOVE	LEUPFW		;GET KL10 PAGE FAIL WORD
  2796	003022	037 13 0 00 000000 		PNTHW			;PRINT IT
  2797	003023	332 00 0 00 030041 		SKIPE	KLFLG
  2798	003024	254 00 0 00 003225 		JRST	$PGFL2		;KL10, REPORT APR ERRORS ALSO
  2799	003025	402 00 0 00 000000 		SETZM	AC0		;SO NO PRINTING @ $ITRIA
  2800	003026	254 00 0 00 002617 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE 
  2801
  2802					;*KI10/KL10 TRAP 3 ROUTINE
  2803					S^;*********************************************************************^
  2804	003027	202 00 0 00 030104 	$TRP3:	MOVEM	AC0,ITRCH1	;SAVE THE USRPC
  2805	003030	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2806	003031	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2807	003032	201 00 0 00 007267 		MOVEI	AC0,SIXBTZ	^TRAP 3 ERROR^	[SIXBIT\^TRAP 3 ERROR_\]^
  2808	003033	254 00 0 00 002617 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE START 
  2809
  2810					;*KI10 POWER FAIL RESTART
  2811					S^;*********************************************************************^
  2812	003034	7 000 20 0 00 325300 	$KIRST:	CONO	APR,IOCLR!ITMDIS!IASRTC!CLKDIS!CLKCLR!IIOPFC!INXCLR
  2813	003035	7 004 20 0 00 731400 		CONO	PI,PWFCLR!PARCLR!PARDIS!IRQCLR!PICLR!CHNOFF!PIOFF
  2814	003036	7 010 20 0 00 000000 		CONO	PAG,0
  2815	003037	7 000 14 0 00 007107 		DATAO	APR,[IMGNOF,,ISPDOF]
  2816	003040	200 00 0 00 030111 		MOVE	0,$SVPAG
  2817	003041	661 00 0 00 400000 		TLO	0,LDUSRB
  2818	003042	660 00 0 00 400000 		TRO	0,LDEXCB
  2819	003043	7 010 14 0 00 000000 		DATAO	PAG,0		;RESET PAG SYSTEM
  2820	003044	200 01 0 00 030107 		MOVE	1,$SVPI
  2821	003045	620 01 0 00 777400 		TRZ	1,777400	;CLEAR MISC PI BITS
  2822	003046	660 01 0 00 002000 		TRO	1,CHNON		;SET PI CHANNEL ON BIT
  2823	003047	200 02 0 00 030110 		MOVE	2,$SVAPR
  2824	003050	602 02 0 00 100000 		TRNE	2,IPAREN	;WAS PARITY ENABLED?
  2825	003051	660 01 0 00 040000 		TRO	1,PARENB	;YES
  2826	003052	200 03 0 00 000002 		MOVE	3,2
  2827	003053	620 03 0 00 720700 		TRZ	3,720700	;CLEAR MISC APR BITS
  2828	003054	602 02 0 00 040000 		TRNE	2,ITMOEN	;WAS TIME OUT ENABLED?
  2829	003055	660 03 0 00 440000 		TRO	3,ITMSET!ITMENB ;YES
  2830	003056	402 00 0 00 007722 		SETZM	$SWFLG#		;USE SAVED SW'S TILL RESTARTED
  2831	003057	254 00 0 00 002664 		JRST	$RSTCM		;REST COMMON
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 37
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0148

  2832					;*KI10 INTERRUPT AND TRAP INITIALIZATION
  2833					S^;*********************************************************************^
  2834
  2835	003060				$KI10:
  2836	003060	200 00 0 00 007272 	$KI10A:	MOVE	[JSP $PGFL]
  2837	003061	202 00 0 00 000420 		MOVEM	PGFTRP		;SETUP PAGE FAIL TRAP
  2838	003062	260 17 0 00 003104 		GO	$KIKLI		;SETUP TRAPS & MUUOS
  2839
  2840	003063	7 004 20 0 00 731400 	$KICLR:	CONO	PI,PWFCLR!PARCLR!PARDIS!IRQCLR!PICLR!CHNOFF!PIOFF
  2841
  2842	003064	331 00 0 00 030043 		SKIPL	MONCTL		;DIAGNOSTIC MONITOR?
  2843	003065	7 000 20 0 00 325300 		CONO	APR,IOCLR!ITMDIS!IASRTC!CLKDIS!CLKCLR!IIOPFC!INXCLR
  2844
  2845	003066	335 00 0 00 030043 		SKIPGE	MONCTL		;YES-DON'T CLR APR AGAIN
  2846	003067	7 000 20 0 00 205100 		CONO	APR,IOCLR!CLKDIS!CLKCLR!INXCLR	;NO-CLR APR THIS WAY
  2847	003070	7 010 20 0 00 000000 		CONO	PAG,0		;CLEAR PAGING
  2848
  2849	003071	331 00 0 00 030043 	$KIENB:	SKIPL	MONCTL		;MONITOR CONTROL ?
  2850	003072	7 000 14 0 00 007107 		DATAO	APR,[IMGNOF,,ISPDOF]
  2851	003073	336 00 0 00 030042 		SKIPN	MONFLG
  2852	003074	254 00 0 00 003101 		JRST	.+5
  2853	003075	200 00 0 00 030046 		MOVE	CONSW
  2854	003076	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2855	003077	607 00 0 00 000100 		TLNN	INHPAG		;INHIBIT PAGING & TRAPPING ?
  2856	003100	7 010 14 0 00 007273 		DATAO	PAG,[LDUSRB,,LDEXCB!TRPENB]	;SETUP PAGING
  2857	003101	7 000 20 0 00 000010 		CONO	APR,IAPRE1	;ENABLE ERROR CHANNEL 1
  2858	003102	7 004 20 0 00 042377 		CONO	PI,PARENB!CHNON!PION!PICHNA	;ENABLE ALL PI CHNS
  2859	003103	263 17 0 00 000000 		RTN			;EXIT
  2860
  2861					;*KI10/KL10 COMMON TRAP & MMUO SETUP
  2862					S^;*********************************************************************^
  2863
  2864	003104	205 00 0 00 255000 	$KIKLI:	MOVSI	(JFCL)
  2865	003105	202 00 0 00 000421 		MOVEM	AROVTP		;SETUP ARITHMETIC OV TRAP
  2866	003106	200 00 0 00 007274 		MOVE	[JSP $PDLOV]
  2867	003107	202 00 0 00 000422 		MOVEM	PDOVTP		;SETUP PDL OV TRAP
  2868	003110	200 00 0 00 007275 		MOVE	[JSP $TRP3]
  2869	003111	202 00 0 00 000423 		MOVEM	TRP3TP		;SETUP TRAP 3
  2870	003112	201 00 0 00 001317 		MOVEI	MUUOER		;SETP MUUO AS ERROR FOR THE FOLLOWING:
  2871	003113	202 00 0 00 000430 		MOVEM	KNTRP		;KERNAL MODE - NO TRAP ENABLED
  2872	003114	202 00 0 00 000431 		MOVEM	KTRP		;	"	TRAP ENABLED
  2873	003115	202 00 0 00 000432 		MOVEM	SNTRP		;SUPERVISOR - NO TRAP
  2874	003116	202 00 0 00 000433 		MOVEM	STRP		;	"	TRAP
  2875	003117	202 00 0 00 000434 		MOVEM	CNTRP		;CONCEALED - NO TRAP
  2876	003120	202 00 0 00 000435 		MOVEM	CTRP		;	"	TRAP
  2877	003121	202 00 0 00 000436 		MOVEM	PNTRP		;PUBLIC - NO TRAP
  2878	003122	202 00 0 00 000437 		MOVEM	PTRP		;   "	  TRAP
  2879	003123	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 39
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0149

  2880					;*KL10 INTERRUPT ROUTINE
  2881					S^;*********************************************************************^
  2882						SALL
  2883	003124	7 010 04 0 00 030111 	$KLITR:	DATAI	PAG,$SVPAG#	;SAVE PAGE
  2884	003125	7 010 24 0 00 030112 		CONI	PAG,$SPAG1#
  2885	003126	7 000 34 0 00 000040 		CONSO	APR,LPWRFL	;POWER FAILURE?
  2886	003127	254 00 0 00 003143 		JRST	$KLIT1		;NO ...LOOK FOR PARITY ERROR
  2887
  2888	003130	200 00 0 00 007147 	$KLPWR:	MOVE	[1,,POWER+1]	;YES
  2889	003131	251 00 0 00 007631 		BLT	POWER+17
  2890	003132	200 00 0 00 030106 		MOVE	$ACC0
  2891	003133	202 00 0 00 007612 		MOVEM	POWER
  2892	003134	200 00 0 00 030104 		MOVE	ITRCH1
  2893	003135	202 00 0 00 007717 		MOVEM	$PWRST#		;USER RESTART IF WANTED
  2894	003136	200 00 0 00 007257 		MOVE	[JRST PFSTRT]
  2895	003137	202 00 0 00 000070 		MOVEM	70
  2896	003140	260 17 0 00 003711 		GO	$CFLUSH		;FLUSH CACHE IF ON
  2897	003141	476 00 0 00 007716 		SETOM	$PWRF		;NOTIFY OF POWER FAIL ON RESTART
  2898	003142	254 04 0 00 030000 		HALT	BEGIN		;UNTIL POWER ON 
  2899
  2900	003143	700400	007574		$KLIT1:	700400,,$SVERA		;READ ERA
  2901	003144	700500	007575			700500,,$SBRD		;READ S-BUS DIAG
  2902	003145	700500	007577			700500,,$SBRD1		;RESET S-BUS DIAG
  2903	003146	200 00 0 00 030110 		MOVE	$SVAPR		;GET APR CONDITIONS
  2904	003147	606 00 0 00 007700 		TRNN	LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
  2905	003150	254 00 0 00 002600 		JRST	$ITRHZ		;NONE OF THESE INTERRUPTS
  2906	003151	602 00 0 00 002000 		TRNE	LNXMER		;NON-X-MEM ERROR ?
  2907	003152	254 00 0 00 002572 		JRST	$NXMU		;YES
  2908	003153	602 00 0 00 000400 		TRNE	LPARER		;PARITY ERROR ?
  2909	003154	254 00 0 00 002574 		JRST	$PAREX		;YES
  2910	003155	602 00 0 00 004000 		TRNE	LSBUSE		;S-BUS ERROR ?
  2911	003156	254 00 0 00 003166 		JRST	$KLSBE
  2912	003157	602 00 0 00 001000 		TRNE	LIOPFE		;I/O PAGE FAIL ?
  2913	003160	254 00 0 00 003170 		JRST	$KLIOP
  2914	003161	602 00 0 00 000200 		TRNE	LCADRP		;CACHE ADR PARITY ?
  2915	003162	254 00 0 00 003172 		JRST	$KLCAD
  2916	003163	602 00 0 00 000100 		TRNE	LSADRP		;S-BUS ADR PARITY ?
  2917	003164	254 00 0 00 003174 		JRST	$KLSAD
  2918	003165	254 00 0 00 002600 		JRST	$ITRHZ		;NO ...REST ARE COMMON 
  2919
  2920	003166	201 00 0 00 007276 	$KLSBE:	MOVEI	SIXBTZ	<^S-BUS>
  2921	003167	254 00 0 00 002604 		JRST	$ITR1A
  2922	003170	201 00 0 00 007300 	$KLIOP:	MOVEI	SIXBTZ	<^I/O PAGE FAIL>
  2923	003171	254 00 0 00 002604 		JRST	$ITR1A
  2924	003172	201 00 0 00 007303 	$KLCAD:	MOVEI	SIXBTZ	<^CACHE ADR PARITY>
  2925	003173	254 00 0 00 002604 		JRST	$ITR1A
  2926	003174	201 00 0 00 007306 	$KLSAD:	MOVEI	SIXBTZ	<^S-BUS ADR PARITY>
  2927	003175	254 00 0 00 002604 		JRST	$ITR1A
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 40
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0150

  2928						LALL
  2929					;*KL10 INTERRUPT AND TRAP INITIALIZATION
  2930					S^;*********************************************************************^
  2931
  2932	003176	201 00 0 00 003215 	$KL10:	MOVEI	$KLPGFL
  2933	003177	202 00 0 00 000502 		MOVEM	LPGFTR		;SETUP PAGE FAIL TRAP
  2934	003200	260 17 0 00 003104 		GO	$KIKLI		;SETUP TRAPS & MUUOS
  2935	003201	7 004 20 0 00 031400 	$KLCLR:	CONO	PI,LRQCLR!LPICLR!LCHNOF!LPIOFF	;CLEAR PI SYSTEM,CHNL & REQ PEND
  2936	003202	7 000 20 0 00 127740 		CONO	APR,LAPRAL-20	;CLEAR PROCESSOR ALL
  2937
  2938	003203	336 00 0 00 030042 	$KLENB:	SKIPN	MONFLG		;MONITOR CONTROL (SPECIAL USER) ?
  2939	003204	254 00 0 00 003211 		JRST	.+5
  2940	003205	200 00 0 00 030046 		MOVE	CONSW
  2941	003206	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2942	003207	607 00 0 00 000100 		TLNN	INHPAG		;PAGING & TRAPPING INHIBITED ?
  2943	003210	260 17 0 00 004070 		GO	KLPAG		;NO, SETUP TRAP ENABLE
  2944	003211	7 000 20 0 00 000001 		CONO	APR,LAPRP1	;ENABLE CHANNEL 1
  2945	003212	7 004 20 0 00 002377 		CONO	PI,LCHNON!LPION!LPICHA	;ENABLE ALL PI CHNS
  2946	003213	263 17 0 00 000000 		RTN			;EXIT
  2947
  2948	003214	254 04 0 00 001016 	$IPGFL:	HALT	CPIERR		;KL10 INITIALIZATION PAGE FAIL
  2949
  2950	003215	554 00 0 00 000500 	$KLPGFL:HLRZ	0,LEUPFW	;GET PAGE FAIL WORD
  2951	003216	405 00 0 00 770000 		ANDI	0,770000	;ISOLATE PAGE FAIL CODE
  2952	003217	302 00 0 00 360000 		CAIE	0,360000	;AR PARITY ERROR ?
  2953	003220	254 00 0 00 003011 		JRST	$PGFL		;NO
  2954	003221	7 000 34 0 00 002000 		CONSO	APR,LNXMER	;YES, ALSO NON-X-MEMORY ?
  2955	003222	254 00 0 00 003011 		JRST	$PGFL		;NO, REAL AR PARITY ERROR
  2956	003223	350 00 0 00 000501 		AOS	LPFWPC		;YES, INCREMENT PAGE FAIL PC
  2957	003224	254 02 1 00 000501 		JRSTF	@LPFWPC		;RETURN TO NEXT INSTRUCTION
  2958
  2959	003225	200 00 0 00 030110 	$PGFL2:	MOVE	$SVAPR
  2960	003226	606 00 0 00 007700 		TRNN	LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
  2961	003227	254 00 0 00 002621 		JRST	$ITR1B+2	;NO APR ERRORS
  2962	003230	254 00 0 00 003143 		JRST	$KLIT1		;YES, REPORT APR ERRORS
  2963
  2964	003231	200 17 0 00 007631 	$KLRST:	MOVE	17,POWER+17	;RESTORE PUSH POINTER
  2965	003232	260 17 0 00 003201 		GO	$KLCLR		;CLEAR & ENABLE APR & PI
  2966	003233	260 17 0 00 003366 		GO	$KLCSH		;SETUP CACHE IF IT WAS ON
  2967	003234	254 00 0 00 002664 		JRST	$RSTCM		;RESTORE CPU & RESTART
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 41
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KI10 MARGIN PRINTOUT ROUTINE                                              SEQ 0151

  2968					SUBTTL	*SUBRTN* KI10 MARGIN PRINTOUT ROUTINE
  2969					S^;*********************************************************************^
  2970						SALL
  2971	003235	336 00 0 00 030055 	$PNTMG:	SKIPN	MARGIN		;ANY MARGIN SETTING ?
  2972	003236	263 17 0 00 000000 		RTN			;NO 
  2973	003237	202 01 0 00 007705 		MOVEM	1,$PMG1#	;SAVE AC1
  2974	003240	037 02 0 00 007311 		PMSG	<^MGN = >
  2975	003241	037 13 0 00 000000 		PNTHW			;PRINT MARGIN WORD
  2976	003242	200 00 0 00 030055 		MOVE	MARGIN
  2977	003243	606 00 0 00 000037 		TRNN	0,37		;ANY MARGIN VOLTAGE SETTING ?
  2978	003244	254 00 0 00 003275 		JRST	$PTMG1		;NO
  2979	003245	037 02 0 00 007313 		PMSG	<BAY >
  2980	003246	554 01 0 00 030055 		HLRZ	1,MARGIN
  2981	003247	242 01 0 00 777774 		LSH	1,-4
  2982	003250	405 01 0 00 000001 		ANDI	1,1
  2983	003251	201 00 0 01 000061 		MOVEI	"1"(1)
  2984	003252	037 12 0 00 000000 		PNTCHR			;PRINT BAY
  2985	003253	037 02 0 00 007314 		PMSG	< ROW >
  2986	003254	554 01 0 00 030055 		HLRZ	1,MARGIN
  2987	003255	405 01 0 00 000017 		ANDI	1,17
  2988	003256	200 00 0 00 007315 		MOVE	[POINT 6,$ROW]
  2989	003257	133 00 0 00 000000 		IBP	0
  2990	003260	365 01 0 00 003257 		SOJGE	1,.-1
  2991	003261	135 00 0 00 000000 		LDB	0,0		;GET ROW CHARACTER
  2992	003262	271 00 0 00 000040 		ADDI	0,40		;MAKE ASCII
  2993	003263	037 12 0 00 000000 		PNTCHR
  2994	003264	037 02 0 00 007232 		PMSG	< = >
  2995	003265	200 00 0 00 030055 		MOVE	MARGIN		;GET MARGIN VALUE
  2996	003266	405 00 0 00 000077 		ANDI	77
  2997	003267	275 00 0 00 000031 		SUBI	31		;COMPUTE DIFFERENCE FROM 5 VOLTS
  2998	003270	221 00 0 00 000025 		IMULI	^D21		; X 21MV PER STEP
  2999	003271	210 00 0 00 000000 		MOVN			;NEGATE FOR PROPER DIRECTION
  3000	003272	271 00 0 00 011610 		ADDI	^D5000		;ADD 5000 MVOLTS
  3001	003273	037 15 0 00 000000 		PNTDEC			;PRINT MARGIN VOLTAGE
  3002	003274	037 02 0 00 007316 		PMSG	< MVOLTS>
  3003	003275	200 01 0 00 030055 	$PTMG1:	MOVE	1,MARGIN	;SPEED MARGINS ?
  3004	003276	602 01 0 00 004000 		TRNE	1,ISPDON
  3005	003277	037 02 0 00 007320 		PMSG	<, SPEED>
  3006	003300	037 00 0 00 030242 		PCRL
  3007	003301	200 01 0 00 007705 		MOVE	1,$PMG1		;RESTORE AC1
  3008	003302	263 17 0 00 000000 		RTN			;EXIT 
  3009
  3010	003303	41 42 43 44 45 46 	$ROW:	SIXBIT	/ABCDEFHJKLMNPRST/
  3011	003304	50 52 53 54 55 56 
  3012	003305	60 62 63 64 00 00 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 42
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0152

  3013					SUBTTL	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
  3014						LALL
  3015					;*END OF PASS ROUTINE
  3016					S^;*********************************************************************^
  3017						SALL
  3018	003306	350 00 0 00 030047 	$END:	AOS	PASCNT		;INCREMENT PASS COUNTER
  3019	003307	370 00 0 00 030024 		SOS	ITRCNT
  3020	003310	402 00 0 00 030116 		SETZM	SCOPE
  3021	003311	402 00 0 00 030052 		SETZM	ERRPC
  3022	003312	260 17 0 00 004751 		GO	$SWTCH
  3023	003313	603 00 0 00 400000 		TLNE	ABORT		;ABORT AT END OF PASS ?
  3024	003314	254 00 0 00 003322 		JRST	$END2		;YES
  3025	003315	336 00 0 00 030037 		SKIPN	USER
  3026	003316	260 17 0 00 003331 		GO	$END4
  3027	003317	336 00 0 00 030024 		SKIPN	ITRCNT
  3028	003320	254 00 0 00 003327 	$END1:	JRST	$END3		;SKIP RETURN, COMPLETED ALL ITERATIONS
  3029	003321	263 17 0 00 000000 		RTN			;NON - SKIP , KEEP RUNNING
  3030	003322	037 04 0 00 007322 	$END2:	PMSGF	<END PASS >
  3031	003323	200 00 0 00 030047 		MOVE	PASCNT		;PRINT END OF PASS COUNT
  3032	003324	037 15 0 00 000001 		PNTDCF
  3033	003325	037 01 0 00 000056 		PNTCIF	"."
  3034	003326	037 01 0 00 030242 		PCRLF
  3035	003327	350 00 0 17 000000 	$END3:	AOS	(P)
  3036	003330	263 17 0 00 000000 		RTN
  3037	003331	332 00 0 00 030041 	$END4:	SKIPE	KLFLG
  3038	003332	254 00 0 00 003335 		JRST	.+3
  3039	003333	7 004 14 0 00 030024 		DATAO	PI,ITRCNT	;KA/KI EXEC - DISPLAY ITERATIONS
  3040	003334	263 17 0 00 000000 		RTN
  3041	003335	335 00 0 00 030043 		SKIPGE	MONCTL
  3042	003336	263 17 0 00 000000 		RTN			;"DIAMON" CONTROL
  3043	003337	201 00 0 00 000404 		MOVEI	AC0,404		;END OF PASS CODE
  3044	003340	260 17 0 00 002043 		GO	$DTEXX		;NOTIFY PDP-11
  3045	003341	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 43
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0153

  3046						LALL
  3047					;*END OF PROGRAM ROUTINE
  3048					S^;*********************************************************************^
  3049
  3050	003342	336 00 0 00 030037 	$EOP:	SKIPN	USER
  3051	003343	336 00 0 00 030041 		SKIPN	KLFLG
  3052	003344	254 00 0 00 003356 		JRST	$EOP1
  3053
  3054	003345	400 00 0 00 000000 		SETZ
  3055	003346	037 13 0 00 000004 		CLOKOP			;DISABLE PDP-11 CLOCK
  3056
  3057	003347	260 17 0 00 003715 		GO	$CWRTBI		;WRITEBACK & INVALIDATE CACHE IF ON
  3058	003350	7 010 20 0 00 000000 		CONO	PAG,0		;TURN OFF CACHE
  3059
  3060	003351	332 00 0 00 030044 		SKIPE	MONTEN		;KL10 & EXEC
  3061	003352	254 00 1 00 030012 		JRST	@RETURN		;LOADED BY 10, RETURN TO LOADER
  3062
  3063	003353	201 00 0 00 000403 		MOVEI	AC0,403		;LOADED BY PDP-11
  3064	003354	260 17 0 00 002043 		GO	$DTEXX		;NOTIFY OF EOP
  3065	003355	254 04 0 00 001017 		HALT	EOPERR		;SHOULD NEVER GET HERE
  3066
  3067	003356	336 00 0 00 030037 	$EOP1:	SKIPN	USER
  3068	003357	254 00 0 00 003363 		JRST	$EOP2		;KI10/KA10 & EXEC
  3069	003360	332 00 0 00 030044 		SKIPE	MONTEN		;USER, LOADED BY ITSELF ?
  3070	003361	254 00 1 00 030012 		JRST	@RETURN		;NO, RETURN TO LOADER
  3071	003362	047 00 0 00 000012 		EXIT			;YES, EXIT
  3072
  3073	003363	332 00 0 00 030044 	$EOP2:	SKIPE	MONTEN		;LOADED BY ITSELF ?
  3074	003364	254 00 1 00 030012 		JRST	@RETURN		;NO, RETURN TO LOADER
  3075	003365	254 04 0 00 030000 		HALT	BEGIN		;YES, HALT AT BEGINNING
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 44
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0154

  3076					SUBTTL	*SUBRTN* KL10 CACHE ENABLE
  3077					S^;*********************************************************************^
  3078
  3079	003366	332 00 0 00 030037 	$KLCSH:	SKIPE	USER
  3080	003367	263 17 0 00 000000 		RTN			;USER MODE
  3081	003370	332 00 0 00 030506 		SKIPE	CSHFLG
  3082	003371	263 17 0 00 000000 		RTN			;NO CACHE ALLOWED
  3083	003372	200 00 0 00 030046 		MOVE	CONSW
  3084	003373	603 00 0 00 000020 		TLNE	INHCSH
  3085	003374	263 17 0 00 000000 		RTN			;CACHE INHIBITED
  3086
  3087	003375	7 010 30 0 00 600000 	$CSH:	CONSZ	PAG,LCASLO!LCASLD	;CACHE ALREADY SETUP ?
  3088	003376	263 17 0 00 000000 		RTN			;YES, LEAVE IT ALONE THEN
  3089	003377	554 03 0 00 007632 		HLRZ	3,CLKDFL	;GET CACHE ENABLE BITS
  3090	003400	242 03 0 00 777762 		LSH	3,-^D14		;ISOLATE BITS 0,1,2,3
  3091	003401	405 03 0 00 000017 		ANDI	3,17
  3092	003402	336 00 0 00 000003 		SKIPN	3		;ANY CACHES ENABLED ?
  3093	003403	263 17 0 00 000000 		RTN			;NO CACHE
  3094
  3095	003404	561 00 0 00 777774 		HRROI	0,-4		;INITIAL "BLKO E"
  3096	003405	201 01 0 00 000200 		MOVEI	1,200		;"BLKO" COUNT
  3097	003406	402 00 0 00 000004 		SETZM	4
  3098	003407	200 02 0 03 003437 		MOVE	2,CTABLE(3)	;GET CACHE REFILL TABLE POINTER
  3099	003410	306 03 0 00 000010 		CAIN	3,10
  3100	003411	254 00 0 00 003433 		JRST	$CSH3		;CACHE 0
  3101	003412	306 03 0 00 000004 		CAIN	3,4
  3102	003413	254 00 0 00 003433 		JRST	$CSH3		;CACHE 1
  3103	003414	306 03 0 00 000002 		CAIN	3,2
  3104	003415	254 00 0 00 003433 		JRST	$CSH3		;CACHE 2
  3105	003416	306 03 0 00 000001 		CAIN	3,1
  3106	003417	254 00 0 00 003433 		JRST	$CSH3		;CACHE 3
  3107	003420	271 00 0 00 000004 	$CSH1:	ADDI	0,4		;BUMP "BLKO E" BY 4
  3108	003421	336 00 0 00 000004 		SKIPN	4		;SINGLE CACHE ?
  3109	003422	134 03 0 00 000002 		ILDB	3,2		;EXTRACT BYTE FROM TABLE
  3110	003423	137 03 0 00 007324 		DPB	3,[POINT 3,0,20] ;DEPOSIT INTO "BLKO" WORD
  3111	003424	7 000 10 1 00 000000 		BLKO	APR,@0		;LOAD CACHE RAM
  3112	003425	365 01 0 00 003420 		SOJGE	1,$CSH1		;LOOP FOR ALL LOC IN RAM
  3113
  3114	003426	260 17 0 00 003657 		GO	$CINVAL		;INVALIDATE CACHE
  3115
  3116	003427	7 010 24 0 00 000000 	$CSH2:	CONI	PAG,0
  3117	003430	660 00 0 00 600000 		TRO	LCASLO!LCASLD	;ENABLE LOOK & LOAD
  3118	003431	7 010 20 1 00 000000 		CONO	PAG,@0
  3119	003432	263 17 0 00 000000 		RTN
  3120
  3121	003433	200 03 0 00 000002 	$CSH3:	MOVE	3,2		;PUT CACHE DIGIT IN AC3
  3122	003434	344 04 0 00 003420 		AOJA	4,$CSH1
  3123
  3124	003435				$CSHER:	PMSGF	<CSWEEP TIMEOUT^>^
  3125	003435	037 04 0 00 007325 		PSIXMF	[SIXBIT\CSWEEP TIMEOUT^_\]^
  3126	003436	037 15 0 00 000004 		FATAL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 45
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0155

  3127	003437	000000	000000		CTABLE:	0
  3128	003440	000000	000003			3			;CACHE REFILL 3
  3129	003441	000000	000002			2			;CACHE REFILL 2
  3130	003442	44 03 0 00 003635 		POINT	3,CR23		;CACHE REFILL 2 & 3
  3131	003443	000000	000001			1			;CACHE REFILL 1
  3132	003444	44 03 0 00 003622 		POINT	3,CR13		;CACHE REFILL 1 & 3
  3133	003445	44 03 0 00 003607 		POINT	3,CR12		;CACHE REFILL 1 & 2
  3134	003446	44 03 0 00 003505 		POINT	3,CR123		;CACHE REFILL 1 & 2 & 3
  3135	003447	000000	000000			0			;CACHE REFILL 0
  3136	003450	44 03 0 00 003574 		POINT	3,CR03		;CACHE REFILL 0 & 3
  3137	003451	44 03 0 00 003561 		POINT	3,CR02		;CACHE REFILL 0 & 2
  3138	003452	44 03 0 00 003520 		POINT	3,CR023		;CACHE REFILL 0 & 2 & 3
  3139	003453	44 03 0 00 003546 		POINT	3,CR01		;CACHE REFILL 0 & 1
  3140	003454	44 03 0 00 003533 		POINT	3,CR013		;CACHE REFILL 0 & 1 & 3
  3141	003455	44 03 0 00 003472 		POINT	3,CR012		;CACHE REFILL 0 & 1 & 2
  3142	003456	44 03 0 00 003457 		POINT	3,CR0123	;CACHE REFILL 0 & 1 & 2 & 3
  3143
  3144					;CACHE REFILL TABLES FOR 1, 2, 3 AND 4 CACHE COMBINATIONS.
  3145					;DIGITS AFTER 'CR' INDICATE WHICH CACHES ARE ENABLED.
  3146
  3147	003457	012345	673123		CR0123:	012345673123
  3148	003460	212371	271127			212371271127
  3149	003461	656755	670323			656755670323
  3150	003462	022301	234567			022301234567
  3151	003463	077700	074666			077700074666
  3152	003464	446431	331113			446431331113
  3153	003465	077700	070123			077700070123
  3154	003466	456745	574547			456745574547
  3155	003467	012201	210566			012201210566
  3156	003470	056045	654564			056045654564
  3157	003471	012345	670000			012345670000
  3158
  3159	003472	012245	612122		CR012:	012245612122
  3160	003473	212211	211121			212211211121
  3161	003474	656255	620626			656255620626
  3162	003475	022601	264560			022601264560
  3163	003476	000000	004666			000000004666
  3164	003477	446451	551115			446451551115
  3165	003500	044400	040125			044400040125
  3166	003501	456445	504540			456445504540
  3167	003502	012201	210566			012201210566
  3168	003503	056045	654564			056045654564
  3169	003504	012645	640000			012645640000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 46
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0156

  3170	003505	312315	673123		CR123:	312315673123
  3171	003506	212371	271127			212371271127
  3172	003507	656755	677323			656755677323
  3173	003510	722331	232567			722331232567
  3174	003511	377733	372666			377733372666
  3175	003512	226231	331113			226231331113
  3176	003513	777777	777123			777777777123
  3177	003514	156715	571517			156715571517
  3178	003515	512251	216566			512251216566
  3179	003516	656655	655565			656655655565
  3180	003517	612355	670000			612355670000
  3181
  3182	003520	032342	673323		CR023:	032342673323
  3183	003521	232373	273327			232373273327
  3184	003522	626722	670323			626722670323
  3185	003523	022307	234067			022307234067
  3186	003524	077700	074666			077700074666
  3187	003525	446437	337773			446437337773
  3188	003526	077700	070723			077700070723
  3189	003527	406740	074047			406740074047
  3190	003530	062206	260466			062206260466
  3191	003531	046044	644464			046044644464
  3192	003532	062344	670000			062344670000
  3193
  3194	003533	013345	173133		CR013:	013345173133
  3195	003534	313371	371137			313371371137
  3196	003535	151755	170373			151755170373
  3197	003536	077301	734507			077301734507
  3198	003537	077700	074000			077700074000
  3199	003540	440431	331113			440431331113
  3200	003541	077700	070173			077700070173
  3201	003542	450745	574547			450745574547
  3202	003543	015501	510544			015501510544
  3203	003544	054045	454544			054045454544
  3204	003545	015345	470000			015345470000
  3205
  3206	003546	015545	115155		CR01:	015545115155
  3207	003547	515511	411141			515511411141
  3208	003550	151455	140444			151455140444
  3209	003551	044401	444500			044401444500
  3210	003552	000000	004000			000000004000
  3211	003553	440451	551115			440451551115
  3212	003554	044400	040145			044400040145
  3213	003555	450445	504540			450445504540
  3214	003556	015501	510544			015501510544
  3215	003557	054045	454544			054045454544
  3216	003560	015445	440000			015445440000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 47
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0157

  3217	003561	062242	662422		CR02:	062242662422
  3218	003562	242266	266626			242266266626
  3219	003563	626222	620626			626222620626
  3220	003564	022604	264060			022604264060
  3221	003565	000000	004666			000000004666
  3222	003566	446444	444444			446444444444
  3223	003567	044400	040424			044400040424
  3224	003570	406440	004040			406440004040
  3225	003571	062206	260466			062206260466
  3226	003572	046044	644464			046044644464
  3227	003573	062644	640000			062644640000
  3228
  3229	003574	033347	773333		CR03:	033347773333
  3230	003575	333373	373337			333373373337
  3231	003576	777777	770373			777777770373
  3232	003577	077307	734007			077307734007
  3233	003600	077700	074000			077700074000
  3234	003601	440437	337773			440437337773
  3235	003602	077700	070773			077700070773
  3236	003603	400740	074047			400740074047
  3237	003604	044404	440444			044404440444
  3238	003605	044044	444444			044044444444
  3239	003606	044344	470000			044344470000
  3240
  3241	003607	512215	612122		CR12:	512215612122
  3242	003610	212211	211121			212211211121
  3243	003611	656255	621626			656255621626
  3244	003612	122661	262566			122661262566
  3245	003613	666666	662666			666666662666
  3246	003614	226251	551115			226251551115
  3247	003615	555555	555125			555555555125
  3248	003616	156515	521512			156515521512
  3249	003617	512251	216566			512251216566
  3250	003620	656655	655565			656655655565
  3251	003621	612655	660000			612655660000
  3252
  3253	003622	313315	173133		CR13:	313315173133
  3254	003623	313371	371137			313371371137
  3255	003624	151755	177373			151755177373
  3256	003625	777331	737577			777331737577
  3257	003626	377733	377777			377733377777
  3258	003627	777731	331113			777731331113
  3259	003630	777777	777173			777777777173
  3260	003631	157715	571517			157715571517
  3261	003632	515551	515555			515551515555
  3262	003633	555555	355535			555555355535
  3263	003634	515355	570000			515355570000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 48
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0158

  3264	003635	332372	673323		CR23:	332372673323
  3265	003636	232373	273327			232373273327
  3266	003637	626722	677323			626722677323
  3267	003640	722337	232767			722337232767
  3268	003641	377733	372666			377733372666
  3269	003642	226237	337773			226237337773
  3270	003643	777777	777723			777777777723
  3271	003644	776777	777777			776777777777
  3272	003645	362236	266366			362236266366
  3273	003646	636666	666666			636666666666
  3274	003647	662366	670000			662366670000
  3275
  3276	003650	336 00 0 00 030037 	KLEXCK:	SKIPN	USER
  3277	003651	336 00 0 00 030041 		SKIPN	KLFLG
  3278	003652	254 00 0 00 003655 		JRST	.+3		;ONLY IF KL10 & EXEC
  3279	003653	7 010 30 0 00 600000 		CONSZ	PAG,LCASLO!LCASLD
  3280	003654	263 17 0 00 000000 		RTN			;AND CACHE IS ON
  3281	003655	274 17 0 00 007106 		SUB	P,[1,,1]	;OTHERWISE DOUBLE RETURN
  3282	003656	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 49
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0159

  3283					;*KL10 CACHE INVALIDATE
  3284					S^;*********************************************************************^
  3285
  3286	003657	336 00 0 00 030037 	$CINVAL:SKIPN	USER
  3287	003660	336 00 0 00 030041 		SKIPN	KLFLG
  3288	003661	263 17 0 00 000000 		RTN			;ONLY IF KL10 & EXEC
  3289	003662	261 17 0 00 000000 		PUT	0
  3290	003663	200 00 0 00 007330 		MOVE	0,[DATAI CCA,0]	;CACHE INVALIDATE ALL
  3291
  3292	003664	261 17 0 00 000001 	$CSHZ:	PUT	1
  3293	003665	261 17 0 00 000002 		PUT	2
  3294	003666	261 17 0 00 000003 		PUT	3
  3295	003667	261 17 0 00 000004 		PUT	4
  3296	003670	7 000 24 0 00 000004 		CONI	APR,4
  3297	003671	405 04 0 00 000007 		ANDI	4,7
  3298	003672	660 04 0 00 040020 		TRO	4,LDCASD
  3299	003673	7 000 20 0 04 000000 		CONO	APR,(4)		;DISABLE CACHE SWEEP DONE INTERRUPT
  3300
  3301	003674	200 01 0 00 007331 		MOVE	1,[CONSZ APR,LCASWB]	;CACHE SWEEP BUSY
  3302	003675	200 02 0 00 007332 		MOVE	2,[SOJN 4,1]	;WAIT TILL IT GOES AWAY
  3303	003676	200 03 0 00 007333 		MOVE	3,[JRST $CSHX]	;RETURN FROM AC'S
  3304	003677	201 04 0 00 777777 		MOVEI	4,-1		;WAIT COUNT
  3305	003700	254 00 0 00 000000 		JRST	0		;GO INVALIDATE/FLUSH CACHE
  3306
  3307	003701	336 00 0 00 000004 	$CSHX:	SKIPN	4		;DID WE TIME OUT ?
  3308	003702	254 00 0 00 003435 		JRST	$CSHER		;YES, REPORT ERROR
  3309	003703	262 17 0 00 000004 		GET	4
  3310	003704	262 17 0 00 000003 		GET	3
  3311	003705	262 17 0 00 000002 		GET	2
  3312	003706	262 17 0 00 000001 		GET	1
  3313	003707	262 17 0 00 000000 		GET	0
  3314	003710	263 17 0 00 000000 		RTN
  3315
  3316					;*KL10 CACHE FLUSH
  3317					S^;*********************************************************************^
  3318
  3319	003711	260 17 0 00 003650 	$CFLUSH:GO	KLEXCK
  3320	003712	261 17 0 00 000000 		PUT	0
  3321	003713	200 00 0 00 007334 		MOVE	0,[BLKO CCA,0]	;CACHE FLUSH
  3322	003714	254 00 0 00 003664 		JRST	$CSHZ
  3323
  3324					;*KL10 CACHE WRITE-BACK & INVALIDATE
  3325					S^;*********************************************************************^
  3326
  3327	003715	260 17 0 00 003650 	$CWRTBI:GO	KLEXCK
  3328	003716	261 17 0 00 000000 		PUT	0
  3329	003717	200 00 0 00 007335 		MOVE	0,[701540,,0]	;CACHE WRITE-BACK & INVALIDATE
  3330	003720	254 00 0 00 003664 		JRST	$CSHZ
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 50
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* MEMORY MAPPING ROUTINES                                                   SEQ 0160

  3331					SUBTTL	*SUBRTN* MEMORY MAPPING ROUTINES
  3332
  3333					S^;*********************************************************************^
  3334					;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
  3335					;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
  3336					;*	$MPCNK	(MAPCNK)	ACTUAL MEMORY CHUNK MAPPER
  3337					;*	$MPSET	(MAPSET)	SETS UP PAGE MAP FOR KI10
  3338					;*	$MSEG	(MEMSEG)	SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
  3339					;*				(MAPNEW=-1 FOR PAGED SEGMENTS UP TO 4096K)
  3340					;*				(MAPNEW= 0 FOR DIRECT ADDRESSING UP TO  256K)
  3341					;*	$MZRO	(MEMZRO)	ZERO'S THE MAPPED MEMORY
  3342					;*	$MPADR	(MAPADR)	VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  3343					S^;*********************************************************************^
  3344
  3345	003721	336 00 0 00 030037 	$MEMMP:	SKIPN	USER
  3346	003722	254 00 0 00 003731 		JRST	$MEMEX		;EXEC MODE
  3347
  3348					;*USER MODE MEMORY MAPPING
  3349					S^;*********************************************************************^
  3350
  3351	003723	402 00 0 00 030146 	$USRMP:	SETZM	MEMSIZ		;USER MEMORY STARTS AT 0
  3352	003724	550 00 0 00 000044 		HRRZ	JOBREL		;GET HIGHEST REL ADDRESS
  3353	003725	202 00 0 00 030147 		MOVEM	MEMSIZ+1	;SAVE AS MEMORY SIZE
  3354	003726	476 00 0 00 030150 		SETOM	MEMSIZ+2	;FLAG END OF MEMSIZ TABLE
  3355	003727	402 00 0 00 030143 		SETZM	MAPNEW		;CLEAR 4096K MAPPING FLAG
  3356	003730	254 00 0 00 004536 		JRST	$PMAP		;GO PRINT MAP
  3357
  3358					;*EXEC MODE MEMORY MAPPING
  3359					S^;*********************************************************************^
  3360
  3361	003731	402 00 0 00 030146 	$MEMEX:	SETZM	MEMSIZ		;CLEAR MAP TABLE START ADDR
  3362	003732	200 00 0 00 007336 		MOVE  [MEMSIZ,,MEMSIZ+1]
  3363	003733	251 00 0 00 030216 		BLT	MEMSIZ+^D40	;CLEAR MEMSIZ TABLE
  3364
  3365	003734	332 00 0 00 030041 	$MEEX1:	SKIPE	KLFLG
  3366	003735	254 00 0 00 003740 		JRST	$MEMKI		;KL10
  3367	003736	336 00 0 00 030040 		SKIPN	KAIFLG
  3368	003737	254 00 0 00 004006 		JRST	$MPOL1		;KA10
  3369	003740	336 00 0 00 030042 	$MEMKI:	SKIPN	MONFLG		;SPECIAL USER MODE ?
  3370	003741	254 00 0 00 004006 		JRST	$MPOL1		;YES, USE UPMP & 256K
  3371	003742	201 00 0 00 337777 		MOVEI	0,337777	;NO
  3372	003743	200 01 0 00 030046 		MOVE	1,CONSW		;SETUP SWITCHES
  3373	003744	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  3374	003745	607 01 0 00 000100 		TLNN	1,INHPAG	;PAGING INHIBITED ?
  3375	003746	254 00 0 00 003750 		JRST	$MEPAG		;NO ...USE PAGING
  3376	003747	254 00 0 00 004007 		JRST	$MPOL1+1	;YES, USE UNPAGED MEM, 0-112K
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 51
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* MEMORY MAPPING ROUTINES                                                   SEQ 0161

  3377	003750	205 01 0 00 777760 	$MEPAG:	MOVSI	1,-20		;SETUP EXEC-PER-PROCESS MAP
  3378	003751	200 00 0 00 007337 		MOVE	[540336,,540337]
  3379	003752	336 00 0 00 030506 		SKIPN	CSHFLG
  3380	003753	670 00 0 00 007055 		TDO	[020000,,020000]
  3381	003754	270 00 0 00 007056 		ADD	[2,,2]		;SO 112K-128K POINTS TO ITSELF
  3382	003755	202 00 0 01 000400 		MOVEM	400(1)		;VIRTUAL = PHYSICAL
  3383	003756	253 01 0 00 003754 		AOBJN	1,.-2
  3384	003757	205 00 0 00 255000 		MOVSI	(JFCL)		;SETUP ARITHMETIC TRAP
  3385	003760	202 00 0 00 000421 		MOVEM	421		;JUST IN CASE
  3386	003761	336 00 0 00 030143 		SKIPN	MAPNEW		;"MAPNEW" = 0 ?
  3387	003762	254 00 0 00 003773 		JRST	$MPOLD		;YES ...USE 256K MAPPING
  3388
  3389					S^;*********************************************************************^
  3390					;*MEMORY MAPPING CONTROL
  3391					;*MAP 4096K, 256K, 112K OR 256K SPECIAL USER
  3392					S^;*********************************************************************^
  3393
  3394	003763	200 01 0 00 000121 	$MPNEW:	MOVE	1,JOBFF		;USE FIRST FREE UP TEMP
  3395	003764	201 16 0 00 000037 		MOVEI	16,^D31		;4096K IS 32 128K CHUNKS
  3396	003765	200 00 0 00 000016 		MOVE	0,16
  3397	003766	260 17 0 00 004167 		GO	$MPSET		;SET PAGE MAP FOR 128K CHUNK
  3398	003767	200 00 0 00 007340 		MOVE  [400000,,777777]	;LOAD AC0 WITH PAGABLE ADDR BOUNDARIES
  3399	003770	260 17 0 00 004050 		GO	$MPCNK		;MAP 128K-256K VIRTUAL
  3400	003771	365 16 0 00 003765 		SOJGE	16,.-4		;COMPLETED 4096K ?
  3401	003772	254 00 0 00 004013 		JRST	$MPCMB		;YES, COMBINE POINTERS
  3402
  3403	003773	205 01 0 00 777600 	$MPOLD:	MOVSI	1,-200		;128K-256K VIRTUAL POINTS
  3404	003774	200 00 0 00 007341 		MOVE  [540376,,540377] 	;TO PHYSICAL 128K-256K
  3405	003775	336 00 0 00 030507 		SKIPN	CSHMEM
  3406	003776	670 00 0 00 007055 		TDO	[020000,,020000]
  3407	003777	270 00 0 00 007056 		ADD	[2,,2]		;AND MEMORY ENDS AT 256K
  3408	004000	202 00 0 01 000200 		MOVEM	200(1)
  3409	004001	253 01 0 00 003777 		AOBJN	1,.-2
  3410	004002	332 00 0 00 030041 		SKIPE	KLFLG
  3411	004003	260 17 0 00 004070 		GO	KLPAG		;SET TRAP ENABLE
  3412	004004	336 00 0 00 030041 		SKIPN	KLFLG
  3413	004005	7 010 14 0 00 007342 		DATAO	PAG,[LDEXCB!TRPENB]
  3414	004006	201 00 0 00 777777 	$MPOL1:	MOVEI	0,777777	;MAP 0-256K
  3415	004007	200 01 0 00 000121 		MOVE	1,JOBFF		;USE FIRST FREE UP TEMP
  3416	004010	402 00 0 00 030143 		SETZM	MAPNEW		;DIRECT ADDRESSING ONLY
  3417	004011	260 17 0 00 004050 		GO	$MPCNK		;MAP CHUNK
  3418	004012	254 00 0 00 004013 		JRST	$MPCMB		;COMBINE POINTERS 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 52
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* MEMORY MAPPING ROUTINES                                                   SEQ 0162

  3419					S^;*********************************************************************^
  3420					;*COMBINE EXISTENT CHUNKS FROM MAPCNK
  3421					;*PUT POINTERS IN MEMSIZ TABLE
  3422					S^;*********************************************************************^
  3423
  3424	004013	402 00 0 00 000002 	$MPCMB:	SETZM	2		;SET MEMSIZ TABLE POINTER (AC2) @ 0
  3425	004014	275 01 0 00 000001 		SUBI	1,1		;DECREMENT TEMP POINTER
  3426	004015	200 00 0 01 000000 		MOVE	AC0,(1)		;GET LOWEST ADR OF LOWEST CHUNK
  3427	004016	302 00 0 00 000000 		CAIE	0,0		;SHOULD BE 0 (THATS WHERE MEMORY STARTS)
  3428	004017	037 15 0 00 000004 		FATAL			;NOT 0
  3429	004020	202 00 0 02 030146 		MOVEM	MEMSIZ(2)	;PUT IN MEMSIZ TABLE (AC2 IS PTR)
  3430	004021	271 02 0 00 000001 		ADDI	2,1		;INCR THE TABLE POINTER
  3431
  3432	004022	275 01 0 00 000001 	$MPCM1:	SUBI	1,1		;DECR TEMP POINTER
  3433	004023	307 01 1 00 000121 		CAIG	1,@JOBFF	;COMBINED ALL CHUNK POINTERS ?
  3434									;(TEMP PTR > JOBFF)
  3435	004024	254 00 0 00 004041 		JRST	$MPCM2		;YES )
  3436	004025	200 00 0 01 000000 		MOVE	AC0,(1)		;NO ...GET CHUNK END ADDRESS
  3437	004026	200 03 0 01 777777 		MOVE	3,-1(1)		;GET NEXT CHUNK START ADR IN AC3
  3438	004027	200 04 0 00 000000 		MOVE	4,0		;PUT END ADDR IN AC4
  3439	004030	271 04 0 00 000001 		ADDI	4,1		;INCR THE END ADDR
  3440	004031	316 03 0 00 000004 		CAMN	3,4		;IF END & START NOW EQUAL
  3441	004032	364 01 0 00 004022 		SOJA	1,$MPCM1	;IT IS CONT. CHUNK - DO NEXT ONE
  3442
  3443	004033	202 00 0 02 030146 	$MPCM3:	MOVEM	0,MEMSIZ(2)	;IF NOT =, PUT END ADR IN MEMSIZ TABLE
  3444	004034	301 02 0 00 000046 		CAIL	2,^D38		;HAVE WE FILLED MEMSIZ TABLE ?
  3445	004035	254 00 0 00 004045 		JRST	$MPCMX		;YES ...IGNORE REST OF CHUNKS )
  3446	004036	271 02 0 00 000001 		ADDI	2,1		;NO ...INCR MEMSIZ TABLE PTR (AC2)
  3447	004037	202 03 0 02 030146 		MOVEM	3,MEMSIZ(2)	;AND NEXT CHUNK START ADR
  3448	004040	364 01 0 00 004021 		SOJA	1,$MPCM1-1	;DO NEXT ONE
  3449
  3450	004041	200 00 0 01 000000 	$MPCM2:	MOVE	(1)		;GET LAST ADDR OF LAST CHUNK
  3451	004042	202 00 0 02 030146 		MOVEM	MEMSIZ(2)	;SAVE LAST ADR OF LAST CHUNK
  3452	004043	476 00 0 02 030147 		SETOM	MEMSIZ+1(2)	;FLAG END OF MEMSIZ TABLE WITH 1'S
  3453	004044	254 00 0 00 004536 		JRST	$PMAP		;PRINT THE MAP 
  3454
  3455	004045	476 00 0 02 030147 	$MPCMX:	SETOM	MEMSIZ+1(2)	;FLAG END OF MEMSIZ TABLE WITH 1'S
  3456
  3457						PMSGF	<^TOO MANY MAP SEGMENTS^>^
  3458	004046	037 04 0 00 007343 		PSIXMF	[SIXBIT\^TOO MANY MAP SEGMENTS^_\]^
  3459	004047	254 00 0 00 004536 		JRST	$PMAP		;PRINT THE MAP
  3460
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 53
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER                                              SEQ 0163

  3461					SUBTTL	*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
  3462
  3463					S^;*********************************************************************^
  3464					;*STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
  3465					;*UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
  3466					;*IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
  3467					;*MAPS THE HOLE IN EXISTENT MEMORY
  3468					;*AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS
  3469					S^;*********************************************************************^
  3470
  3471	004050	202 02 0 00 007637 	$MPCNK:	MOVEM	2,$ACMP1#	;SAVE AC2 - AC4
  3472	004051	202 03 0 00 007640 		MOVEM	3,$ACMP2#
  3473	004052	202 04 0 00 007641 		MOVEM	4,$ACMP3#
  3474
  3475	004053	550 02 0 00 000000 		HRRZ	2,0		;LOAD ADDRESSER WITH HIGHEST POSS ADDR
  3476	004054	554 03 0 00 000000 		HLRZ	3,0		;LOAD WITH LOWEST POSS ADDR
  3477	004055	7 004 24 0 00 007671 		CONI	PI,$MSPI#	;SAVE THE PI STATUS
  3478	004056	7 004 20 0 00 000400 		CONO	PI,PIOFF	;TURN OFF INTERRUPTS
  3479	004057	7 000 24 0 00 007670 		CONI	APR,$MSAPR#	;SAVE PROCESSOR STATUS
  3480	004060	317 02 0 00 000003 		CAMG	2,3		;END GREATER THAN START ?
  3481	004061	037 15 0 00 000004 		FATAL			;NO
  3482
  3483	004062	201 04 0 00 010000 	$MPCN1:	MOVEI	4,ANXM		;SETUP KA10 NXM BIT
  3484	004063	332 00 0 00 030040 		SKIPE	KAIFLG
  3485	004064	201 04 0 00 000100 		MOVEI	4,INXM		;SETUP KI10 NXM BIT
  3486	004065	332 00 0 00 030041 		SKIPE	KLFLG
  3487	004066	201 04 0 00 022000 		MOVEI	4,LCNXER	;SETUP KL10 NXM BIT
  3488	004067	254 00 0 00 004076 		JRST	$MPNXM		;CONO/CONI BIT(S) SET UP - GO MAP 
  3489
  3490	004070	261 17 0 00 000000 	KLPAG:	PUT	0
  3491	004071	7 010 24 0 00 000000 		CONI	PAG,0		;GET PRESENT STATE
  3492	004072	660 00 0 00 020000 		TRO	0,LTRPEN	;MAKE SURE TRAP ENABLE SET
  3493	004073	7 010 20 1 00 000000 		CONO	PAG,@0		;PAGE RESET
  3494	004074	262 17 0 00 000000 		GET	0
  3495	004075	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 54
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER                                              SEQ 0164

  3496					;*NON-X-MEMORY SEGMENT MAPPER
  3497					S^;*********************************************************************^
  3498
  3499	004076	7 000 20 0 04 000000 	$MPNXM:	CONO	APR,(4)		;CLEAR NXM BIT, IF SET
  3500	004077	310 00 0 02 000000 		CAM	(2)		;ADDRESS THE MEMORY
  3501	004100	310 00 0 02 777777 		CAM	-1(2)		;INTERLEAVE MAP
  3502	004101	310 00 0 02 777776 		CAM	-2(2)		;IF NON-X-MEM FROM ANY 4-WAY INTERLEAVE
  3503	004102	310 00 0 02 777775 		CAM	-3(2)		;MARK ALL NON-X-MEM
  3504	004103	7 000 34 0 04 000000 		CONSO	APR,(4)		;NON-X-MEMORY BIT SET ?
  3505	004104	254 00 0 00 004152 		JRST	$M5		;NO  ..CONV VIRT & REMAP EXISTENT
  3506
  3507	004105	7 000 20 0 04 000000 	$M2:	CONO	APR,(4)		;YES ...CLEAR THE BIT
  3508	004106	275 02 0 00 020000 		SUBI	2,20000		;STEP DOWN 8K
  3509	004107	301 02 0 03 000000 		CAIL	2,(3)		;MEMORY CHUNK DONE ? (< LOWEST POSS)
  3510	004110	254 00 0 00 004076 		JRST	$MPNXM		;NO ...MAP THE NEXT CHUNK
  3511
  3512
  3513					;*RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
  3514					S^;*********************************************************************^
  3515
  3516	004111	332 00 0 00 030041 	$MPRST:	SKIPE	KLFLG
  3517	004112	254 00 0 00 004122 		JRST	$MPRKL		;KL10
  3518	004113	550 03 0 00 007670 		HRRZ	3,$MSAPR	;RESTORE CPU STATUS
  3519	004114	336 00 0 00 030040 		SKIPN	KAIFLG
  3520	004115	620 03 0 00 775550 		TRZ	3,775550	;CHANGE SOME KA10 STATUS BITS
  3521	004116	332 00 0 00 030040 		SKIPE	KAIFLG
  3522	004117	620 03 0 00 720700 		TRZ	3,720700	;CHANGE SOME KI10 STATUS BITS
  3523	004120	7 000 20 0 03 000000 		CONO	APR,(3)		;RESET APR STATUS
  3524	004121	254 00 0 00 004126 		JRST	$MPRPI
  3525	004122	7 000 20 0 00 127740 	$MPRKL:	CONO	APR,LAPRAL-20	;RESET KL APR STATUS
  3526	004123	550 03 0 00 007670 		HRRZ	3,$MSAPR
  3527	004124	405 03 0 00 000007 		ANDI	3,7
  3528	004125	7 000 20 0 03 000000 		CONO	APR,(3)		;REASSIGN APR CHANNEL
  3529	004126	200 03 0 00 007671 	$MPRPI:	MOVE	3,$MSPI		;GET SAVED PI STATUS
  3530	004127	602 03 0 00 000200 		TRNE	3,PION		;IF INTERRUPTS WERE ON
  3531	004130	7 004 20 0 00 000200 		CONO	PI,PION		;TURN BACK ON
  3532	004131	200 02 0 00 007637 		MOVE	2,$ACMP1	;RESTORE AC'S
  3533	004132	200 03 0 00 007640 		MOVE	3,$ACMP2
  3534	004133	200 04 0 00 007641 		MOVE	4,$ACMP3
  3535	004134	263 17 0 00 000000 		RTN			;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 55
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER                                              SEQ 0165

  3536					;*EXISTANT MEMORY MAPPER
  3537					S^;*********************************************************************^
  3538	004135	310 00 0 02 000000 	$MPEXM:	CAM	(2)		;ADDRESS THE MEMORY
  3539	004136	310 00 0 02 777777 		CAM	-1(2)		;INTERLEAVE THE MAP
  3540	004137	310 00 0 02 777776 		CAM	-2(2)
  3541	004140	310 00 0 02 777775 		CAM	-3(2)
  3542	004141	336 00 0 00 030041 		SKIPN	KLFLG
  3543	004142	254 00 0 00 004144 		JRST	.+2
  3544	004143	201 04 0 00 002000 		MOVEI	4,LNXMER	;KL10 NXM BIT
  3545	004144	7 000 30 0 04 000000 		CONSZ	APR,(4)		;EXISTANT ?
  3546	004145	344 02 0 00 004154 		AOJA	2,$M6		;NO
  3547
  3548	004146	275 02 0 00 020000 	$M4:	SUBI	2,20000		;YES, STEP DOWN 8K
  3549	004147	301 02 0 03 000000 		CAIL	2,(3)		;BELOW START ADDRESS ?
  3550	004150	254 00 0 00 004135 		JRST	$MPEXM		;NO ...MAP NEXT CHUNK
  3551	004151	344 02 0 00 004160 		AOJA	2,$M7		;YES, THIS CHUNK DONE
  3552
  3553					S^;*********************************************************************^
  3554					;*SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
  3555					;*TEMPORY STORAGE POINTER IN AC1
  3556					;*VIRTUAL ADDRESS IN AC0
  3557					;*"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
  3558					S^;*********************************************************************^
  3559
  3560	004152	260 17 0 00 004162 	$M5:	GO	$MPCXX
  3561	004153	344 01 0 00 004135 		AOJA	1,$MPEXM	;GO MAP EXISTANT CHUNK
  3562
  3563	004154	260 17 0 00 004162 	$M6:	GO	$MPCXX
  3564	004155	271 01 0 00 000001 		ADDI	1,1		;INCREMENT ADDR
  3565	004156	260 17 0 00 003715 		GO	$CWRTBI		;CACHE WRITE-BACK & INVALIDATE
  3566	004157	364 02 0 00 004062 		SOJA	2,$MPCN1	;GO MAP NON-X CHUNK
  3567
  3568	004160	260 17 0 00 004162 	$M7:	GO	$MPCXX
  3569	004161	344 01 0 00 004111 		AOJA	1,$MPRST	;RESTORE AC'S AND RETURN )
  3570
  3571	004162	200 00 0 00 000002 	$MPCXX:	MOVE	0,2
  3572	004163	260 17 0 00 004462 		GO	$MPADR		;CONVERT VIRTUAL TO PHYSICAL
  3573	004164	037 15 0 00 000004 		FATAL			;CAN'T DO IT
  3574	004165	202 00 0 01 000000 		MOVEM	(1)		;SAVE IN TEMP
  3575	004166	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 56
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP                                         SEQ 0166

  3576					SUBTTL	*SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP 
  3577
  3578					S^;*********************************************************************^
  3579					;*FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  3580					;*ARGUMENTS PASSED IN AC0:
  3581					;*			NEG - CLEAR PAGE MAP
  3582					;*			0-37 - MAP CORRESPONDING 128K SEGMENT
  3583					S^;*********************************************************************^
  3584
  3585	004167	332 00 0 00 030037 	$MPSET:	SKIPE	USER
  3586	004170	263 17 0 00 000000 		RTN			;USER MODE
  3587 
  3588	004171	202 01 0 00 007642 	$MPSE1:	MOVEM	1,$ACMP4#	;SAVE AC1
  3589	004172	325 00 0 00 004204 		JUMPGE	0,$MPSE2	;ARG NEG ?
  3590	004173	402 00 0 00 000200 		SETZM	200		;YES, CLEAR PAGE MAP
  3591	004174	200 00 0 00 007347 		MOVE	0,[200,,201]
  3592	004175	251 00 0 00 000377 		BLT	0,377
  3593
  3594	004176	332 00 0 00 030041 	$MPSE3:	SKIPE	KLFLG
  3595	004177	260 17 0 00 004070 		GO	KLPAG		;SET TRAP ENABLE
  3596	004200	332 00 0 00 030040 		SKIPE	KAIFLG
  3597	004201	7 010 14 0 00 007342 		DATAO	PAG,[LDEXCB!TRPENB]
  3598	004202	200 01 0 00 007642 		MOVE	1,$ACMP4	;RESTORE AC1
  3599	004203	263 17 0 00 000000 		RTN			;EXIT
  3600
  3601	004204	301 00 0 00 000040 	$MPSE2:	CAIL	0,40		;ARG 0-37 ?
  3602	004205	037 15 0 00 000004 		FATAL			;NO, FATAL ERROR
  3603	004206	221 00 0 00 000400 		IMULI	0,400		;COMPUTE PHYSICAL RELOCATION
  3604	004207	660 00 0 00 540000 		TRO	0,540000	;SET A,W,S BITS
  3605	004210	336 00 0 00 030507 		SKIPN	CSHMEM		;MEM SEG'S CACHED ?
  3606	004211	660 00 0 00 020000 		TRO	0,020000	;YES
  3607	004212	504 00 0 00 000000 		HRL	0,0		;MAKE BOTH HALVES SAME
  3608	004213	271 00 0 00 000001 		ADDI	0,1		;RIGHT HALF ODD PAGE
  3609	004214	205 01 0 00 777600 		MOVSI	1,-200		;128K IN PAGE MAP
  3610	004215	202 00 0 01 000200 		MOVEM	200(1)		;PUT RELOCATION DATA IN PAGE MAP
  3611	004216	270 00 0 00 007056 		ADD	[2,,2]		;BUMP FOR NEXT ENTRY
  3612	004217	253 01 0 00 004215 		AOBJN	1,.-2
  3613	004220	254 00 0 00 004176 		JRST	$MPSE3		;CLEAR ASSOC MEMORY & EXIT )
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 57
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##                                                SEQ 0167

  3614					SUBTTL	*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
  3615
  3616					S^;*********************************************************************^
  3617					;*SETS UP TO 128K SEGMENT IN PAGE MAP
  3618					;*ARGUMENTS:	0-37 - MAP CORRESPONDING 128K SEGMENT
  3619					;*		GT 37  - MAP USING PHYSICAL ADDRESS
  3620					;*RETURNED IN AC0:
  3621					;		0 - NO MEMORY AVAILABLE
  3622					;*		HIGHEST VIRTUAL ADDRESS
  3623					;*	  	BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
  3624					;*PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
  3625					;*TO MEMORY REQUESTED
  3626					;*		RETURNS +2
  3627					S^;*********************************************************************^
  3628
  3629	004221	202 01 0 00 007643 	$MSEG:	MOVEM	1,$ACMP5#	;AC1 = TEMP STORAGE POINTER
  3630	004222	202 02 0 00 007644 		MOVEM	2,$ACMP6#	;AC2 = MAP STORAGE POINTER
  3631	004223	202 03 0 00 007645 		MOVEM	3,$ACMP7#	;AC3 = CHUNK START ADR
  3632	004224	202 04 0 00 007646 		MOVEM	4,$ACMP8#	;AC4 = CHUNK END ADR
  3633	004225	202 05 0 00 007647 		MOVEM 	5,$ACMP9#	;AC5 = PAGE COUNTER
  3634	004226	403 05 0 00 007664 		SETZB	5,$MNCON#	;SAVED AC1 - AC5
  3635	004227	603 00 0 00 777760 		TLNE	0,777760	;VALID ARGUMENT ?
  3636	004230	037 15 0 00 000004 		FATAL			;NO
  3637	004231	332 00 0 00 030037 		SKIPE	USER
  3638	004232	254 00 0 00 004415 		JRST	$MSUSR		;USER MODE
  3639	004233	336 00 0 00 030143 		SKIPN	MAPNEW
  3640	004234	254 00 0 00 004366 		JRST	$MSKA		;DIRECT ADDRESSING ONLY (KA10)
  3641	004235	200 02 0 00 007350 		MOVE	2,[POINT 18,200]
  3642	004236	301 00 0 00 000040 		CAIL	0,40
  3643	004237	254 00 0 00 004326 		JRST	$MSEGP		;ARG IS FOR PHYSICAL CORE
  3644	004240	254 00 0 00 004241 		JRST	$MSEGV		;VIRTUAL CORE
  3645
  3646					;*SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
  3647					S^;*********************************************************************^
  3648
  3649	004241	200 01 0 00 030145 	$MSEGV:	MOVE	1,MEMLOW
  3650	004242	260 17 0 00 004167 		GO	$MPSET		;SETUP MAP FOR REQ SEGMENT
  3651	004243	200 00 0 00 007340 		MOVE	[400000,,777777]
  3652	004244	260 17 0 00 004050 		GO	$MPCNK		;MAP THAT SEGMENT
  3653
  3654	004245	307 01 1 00 030145 	$MSGV1:	CAIG	1,@MEMLOW
  3655	004246	254 00 0 00 004310 		JRST	$MSEG3		;NO CORE IN THIS 128K SEGMENT
  3656									;EXIT
  3657	004247	402 00 0 00 000200 		SETZM	200		;CLEAR PAGE MAP
  3658	004250	200 00 0 00 007347 		MOVE	[200,,201]
  3659	004251	251 00 0 00 000377 		BLT	0,377
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 58
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##                                                SEQ 0168

  3660	004252	275 01 0 00 000001 	$MSGV2:	SUBI	1,1
  3661	004253	200 03 0 01 000000 		MOVE	3,(1)		;GET CHUNK START ADDRESS
  3662	004254	326 03 0 00 004256 		JUMPN	3,.+2		;IF CHUNK ADR IS ZERO
  3663	004255	200 03 0 00 030145 		MOVE	3,MEMLOW	;USE EVEN BREAK ABOVE JOBFF
  3664	004256	275 01 0 00 000001 		SUBI	1,1
  3665	004257	200 04 0 01 000000 		MOVE	4,(1)		;GET CHUNK END ADDRESS
  3666	004260	317 04 0 00 000003 		CAMG	4,3		;END GREATER THAN START ?
  3667	004261	037 15 0 00 000004 		FATAL			;NO ...ABORT
  3668	004262	274 04 0 00 000003 		SUB	4,3		;YES ..END - START = SIZE OF CHUNK
  3669	004263	271 04 0 00 000001 		ADDI	4,1
  3670	004264	602 04 0 00 000777 		TRNE	4,777		;CHUNK SHOULD BE EVEN # OF PAGES
  3671	004265	037 15 0 00 000004 		FATAL			;NO ...ABORT
  3672	004266	242 04 0 00 777767 		LSH	4,-^D9		;COMPUTE # OF PAGES
  3673	004267	270 05 0 00 000004 		ADD	5,4		;KEEP COUNT
  3674	004270	242 03 0 00 777767 		LSH	3,-^D9
  3675	004271	660 03 0 00 540000 		TRO	3,540000	;CREATE RELOCATION DATA
  3676	004272	336 00 0 00 030507 		SKIPN	CSHMEM		;MEM SEG'S CACHED ?
  3677	004273	660 03 0 00 020000 		TRO	3,020000	;YES
  3678	004274	361 04 0 00 004300 		SOJL	4,$MSGV3
  3679	004275	136 03 0 00 000002 		IDPB	3,2		;PUT IN PAGE MAP
  3680	004276	271 03 0 00 000001 		ADDI	3,1		;INCREMENT RELOCATION DATA
  3681	004277	254 00 0 00 004274 		JRST	.-3
  3682
  3683	004300	306 01 1 00 030145 	$MSGV3:	CAIN	1,@MEMLOW	;ANY MORE CHUNKS IN THIS 128K ?
  3684	004301	254 00 0 00 004304 		JRST	$MSEG2		;NO ...EXIT)
  3685	004302	476 00 0 00 007664 		SETOM	$MNCON		;YES, NON-CONSECUTIVE CHUNKS
  3686	004303	254 00 0 00 004252 		JRST	$MSGV2		;PACK INTO VIRTUAL
  3687
  3688					;*EXIT FROM MEMSEG ROUTINE
  3689					S^;*********************************************************************^
  3690
  3691	004304	221 05 0 00 001000 	$MSEG2:	IMULI	5,1000		;CONVERT # OF PAGES INTO
  3692	004305	271 05 0 00 377777 		ADDI	5,377777	;HIGHEST VIRTUAL ADDRESS
  3693	004306	332 00 0 00 007664 		SKIPE	$MNCON		;WERE CHUNKS COMBINED ?
  3694	004307	661 05 0 00 400000 		TLO	5,400000	;YES, SET BIT 0 AS FLAG
  3695
  3696	004310	200 00 0 00 000005 	$MSEG3:	MOVE	0,5		;AC0 = RESULTS (SEE TITLE BLOCK)
  3697	004311	200 01 0 00 007643 		MOVE	1,$ACMP5	;RESTORE AC'S
  3698	004312	200 02 0 00 007644 		MOVE	2,$ACMP6
  3699	004313	200 03 0 00 007645 		MOVE	3,$ACMP7
  3700	004314	200 04 0 00 007646 		MOVE	4,$ACMP8
  3701	004315	200 05 0 00 007647 		MOVE	5,$ACMP9
  3702	004316	336 00 0 00 030143 		SKIPN	MAPNEW		;4096K MAPPING (BIG TROUBLE IF NOT)
  3703	004317	263 17 0 00 000000 		RTN			;NO ...ERROR RETURN +1)
  3704
  3705	004320	332 00 0 00 030041 	$MSEG4:	SKIPE	KLFLG
  3706	004321	260 17 0 00 004070 		GO	KLPAG		;SET TRAP ENABLE
  3707	004322	336 00 0 00 030041 		SKIPN	KLFLG
  3708	004323	7 010 14 0 00 007342 		DATAO	PAG,[LDEXCB!TRPENB]
  3709	004324	350 00 0 17 000000 		AOS	(P)		;RETURN +2
  3710	004325	263 17 0 00 000000 		RTN			;RETURN +1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 59
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##                                                SEQ 0169

  3711					;*PHYSICAL CORE ASSIGNMENT
  3712					S^;*********************************************************************^
  3713
  3714	004326	200 01 0 00 000000 	$MSEGP:	MOVE	1,0
  3715	004327	620 01 0 00 000777 		TRZ	1,777		;MAKE PHYSICAL EVEN PAGE
  3716	004330	400 04 0 00 000000 		SETZ	4,
  3717	004331	200 00 0 04 030146 		MOVE	MEMSIZ(4)	;GET START ADDRESS
  3718	004332	321 00 0 00 004310 		JUMPL	$MSEG3		;IF END OF TABLE, NO CORE ..EXIT
  3719	004333	315 01 0 00 000000 		CAMGE	1,0		;PHY = OR GT START ?
  3720	004334	254 00 0 00 004310 		JRST	$MSEG3		;NO, NO CORE ...EXIT
  3721	004335	200 00 0 04 030147 		MOVE	MEMSIZ+1(4)	;GET END ADDRESS
  3722	004336	271 04 0 00 000002 		ADDI	4,2
  3723	004337	311 01 0 00 000000 		CAML	1,0		;PHY GT END ?
  3724	004340	254 00 0 00 004331 		JRST	.-7		;YES, TRY NEXT CHUNK
  3725
  3726	004341	336 00 0 00 030143 		SKIPN	MAPNEW
  3727	004342	254 00 0 00 004412 		JRST	$MSKAP+3	;DIRECT ADDRESSING
  3728	004343	274 00 0 00 000001 		SUB	0,1		;COMPUTE # OF PAGES
  3729	004344	271 00 0 00 000001 		ADDI	0,1
  3730	004345	242 00 0 00 777767 		LSH	0,-^D9
  3731	004346	303 00 0 00 000400 		CAILE	0,^D256		;MORE THAN 128K WORTH ?
  3732	004347	201 00 0 00 000400 		MOVEI	0,^D256		;YES, LIMIT AT 128K
  3733	004350	202 00 0 00 000003 		MOVEM	0,3		;AC3 = MAP FILL COUNTER
  3734	004351	202 00 0 00 000005 		MOVEM	0,5		;KEEP COUNT OF # OF PAGES
  3735	004352	402 00 0 00 000200 		SETZM	200		;CLEAR PAGE MAP
  3736	004353	200 00 0 00 007347 		MOVE	[200,,201]
  3737	004354	251 00 0 00 000377 		BLT	0,377
  3738	004355	200 00 0 00 000001 		MOVE	0,1
  3739	004356	242 00 0 00 777767 		LSH	0,-^D9		;CREATE RELOCATION DATA
  3740	004357	660 00 0 00 540000 		TRO	0,540000
  3741	004360	336 00 0 00 030507 		SKIPN	CSHMEM		;MEM SEG'S CACHED ?
  3742	004361	660 00 0 00 020000 		TRO	0,020000	;YES
  3743	004362	361 03 0 00 004304 		SOJL	3,$MSEG2	;EXIT
  3744	004363	136 00 0 00 000002 		IDPB	0,2		;PUT DATA IN PAGE MAP
  3745	004364	271 00 0 00 000001 		ADDI	0,1		;INCREMENT RELOCATION DATA
  3746	004365	254 00 0 00 004362 		JRST	.-3
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 60
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MEMSEG" ## MAPNEW = 0 ##                                                 SEQ 0170

  3747					SUBTTL	*SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
  3748
  3749					S^;*********************************************************************^
  3750					;*ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
  3751					;*		  11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
  3752					;*		  USER MODE, 1-37 ALWAYS RETURNS 0
  3753					;*	  	  GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
  3754					;*RETURNED IN AC0:
  3755					;*		  0 - NO MEMORY AVAILABLE
  3756					;*		  START ADDRESS,,END ADDRESS
  3757					;*RETURNS +1
  3758					S^;*********************************************************************^
  3759
  3760	004366	301 00 0 00 000040 	$MSKA:	CAIL	0,40
  3761	004367	254 00 0 00 004407 		JRST	$MSKAP		;DIRECT PHYSICAL CORE
  3762	004370	301 00 0 00 000011 		CAIL	^D9
  3763	004371	254 00 0 00 004310 		JRST	$MSEG3		;NO MEMORY 11-37 ...EXIT
  3764	004372	200 01 0 00 000000 		MOVE	1,0
  3765	004373	242 01 0 00 000001 		LSH	1,1		;DOUBLE, 2 ENTRIES PER
  3766	004374	200 00 0 01 030146 		MOVE	0,MEMSIZ(1)	;GET START ADDRESS
  3767	004375	321 00 0 00 004310 		JUMPL	0,$MSEG3	;NO MEMORY ...EXIT
  3768	004376	200 02 0 01 030147 		MOVE	2,MEMSIZ+1(1)	;GET END ADDRESS
  3769	004377	322 02 0 00 004310 		JUMPE	2,$MSEG3	;NO MEMORY ...EXIT
  3770	004400	326 00 0 00 004402 		JUMPN	0,.+2		;IF START ADDRESS IS 0
  3771	004401	200 00 0 00 030145 		MOVE	0,MEMLOW	;USE 'MEMLOW'
  3772	004402	317 02 0 00 000000 		CAMG	2,0		;END GREATER THAN START ?
  3773	004403	037 15 0 00 000004 		FATAL			;NO ...ABORT
  3774	004404	200 05 0 00 000002 		MOVE	5,2		;SETUP START ADR,,END ADR
  3775	004405	504 05 0 00 000000 		HRL	5,0
  3776	004406	254 00 0 00 004310 		JRST	$MSEG3		;EXIT
  3777
  3778	004407	303 00 0 00 777000 	$MSKAP:	CAILE	0,777000	;REQUEST FOR OVER 256K ?
  3779	004410	254 00 0 00 004310 		JRST	$MSEG3		;YES, NO MEMORY
  3780	004411	254 00 0 00 004326 		JRST	$MSEGP		;DO PHYSICAL SETUP
  3781	004412	200 05 0 00 000000 		MOVE	5,0		;1 = PHY ADR, 0 = END ADR
  3782	004413	504 05 0 00 000001 		HRL	5,1		;  START ADR,,END ADR
  3783	004414	254 00 0 00 004310 		JRST	$MSEG3		;EXIT 
  3784
  3785	004415	322 00 0 00 004366 	$MSUSR:	JUMPE	0,$MSKA		;USER MODE, SEGMENT 0 ONLY
  3786	004416	301 00 0 00 000040 		CAIL	0,40		;IF 1-37 NO MEMORY
  3787	004417	254 00 0 00 004407 		JRST	$MSKAP		;PHY, DO DIRECT PHYSICAL
  3788	004420	254 00 0 00 004310 		JRST	$MSEG3		;EXIT 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 61
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MEMZRO"                                                                  SEQ 0171

  3789					SUBTTL	*SUBRTN* "MEMZRO"
  3790
  3791					S^;*********************************************************************^
  3792					;*ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
  3793					;*MAPNEW = 0	 DIRECT MEMORY ZERO
  3794					;*	 =-1	 4096K KI10 PAGED MEMORY ZERO
  3795					S^;*********************************************************************^
  3796
  3797	004421	202 01 0 00 007672 	$MZRO:	MOVEM	1,$MZROB#	;SAVE AC1 & AC2
  3798	004422	202 02 0 00 007673 		MOVEM	2,$MZROC#
  3799	004423	336 00 0 00 030143 		SKIPN	MAPNEW		;4096K PAGED OR DIRECT ZERO ?
  3800	004424	254 00 0 00 004442 		JRST	$MZRO2		;DIRECT ZEROING 
  3801
  3802	004425	474 02 0 00 000000 	$MZRO1:	SETO	2,		;PAGED ZEROING
  3803	004426	271 02 0 00 000001 		ADDI	2,1
  3804	004427	303 02 0 00 000037 		CAILE	2,37
  3805	004430	254 00 0 00 004457 		JRST	$MZROX		;DONE
  3806	004431	200 00 0 00 000002 		MOVE	0,2
  3807	004432	260 17 0 00 004221 		GO	$MSEG		;SETUP MEMORY SEGMENT
  3808	004433	037 15 0 00 000004 		FATAL
  3809	004434	322 00 0 00 004426 		JUMPE	0,$MZRO1+1	;NO MEMORY THIS SEGMENT
  3810	004435	621 00 0 00 400000 		TLZ	0,400000	;DON'T CARE IF COMBINED
  3811	004436	402 00 0 00 400000 		SETZM	400000
  3812	004437	200 01 0 00 007351 		MOVE	1,[400000,,400001]
  3813	004440	251 01 1 00 000000 		BLT	1,@0		;ZERO VIRTUAL
  3814	004441	254 00 0 00 004426 		JRST	$MZRO1+1
  3815
  3816	004442	400 02 0 00 000000 	$MZRO2:	SETZ	2,		;DIRECT MEMORY ZERO
  3817	004443	200 00 0 00 030145 		MOVE	0,MEMLOW	;START ADDRESS
  3818	004444	311 00 0 00 030147 		CAML	0,MEMSIZ+1
  3819	004445	254 00 0 00 004457 		JRST	$MZROX
  3820	004446	254 00 0 00 004451 		JRST	.+3
  3821	004447	200 00 0 02 030146 	$MZRO3:	MOVE	0,MEMSIZ(2)	;SEGMENT START ADDRESS
  3822	004450	321 00 0 00 004457 		JUMPL	0,$MZROX	;DONE 
  3823	004451	402 00 1 00 000000 		SETZM	@0
  3824	004452	507 00 0 00 000000 		HRLS			;CREATE BLT POINTER
  3825	004453	271 00 0 00 000001 		ADDI	1
  3826	004454	251 00 1 02 030147 		BLT	0,@MEMSIZ+1(2)	;ZERO DIRECT
  3827	004455	271 02 0 00 000002 		ADDI	2,2
  3828	004456	254 00 0 00 004447 		JRST	$MZRO3		;DO NEXT SEGMENT
  3829
  3830	004457	200 02 0 00 007673 	$MZROX:	MOVE	2,$MZROC	;RESTORE AC'S
  3831	004460	200 01 0 00 007672 		MOVE	1,$MZROB
  3832	004461	263 17 0 00 000000 		RTN			;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 62
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR                                      SEQ 0172

  3833					SUBTTL	*SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
  3834					S^;*********************************************************************^
  3835					;*VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
  3836					;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE
  3837					S^;*********************************************************************^
  3838
  3839	004462	202 01 0 00 007636 	$MPADR:	MOVEM	1,$ACMP0#	;SAVE AC1
  3840	004463	550 01 0 00 000000 		HRRZ	1,0		;18 BIT VIRTUAL ADR IN AC1
  3841	004464	307 01 0 00 000017 		CAIG	1,17		;ACCUMULATOR ADDRESS ?
  3842	004465	254 00 0 00 004506 		JRST	$MPAD3-1	;YES
  3843	004466	200 00 0 00 030046 		MOVE	0,CONSW		;GET CONSOLE SWITCHES
  3844	004467	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  3845	004470	607 00 0 00 000100 		TLNN	0,INHPAG	;PAGING INHIBITED
  3846	004471	254 00 0 00 004473 		JRST	.+2
  3847	004472	254 00 0 00 004514 		JRST	$MPAD2		;YES
  3848	004473	332 00 0 00 030041 		SKIPE	KLFLG		;KL10?
  3849	004474	254 00 0 00 004525 		JRST	$MPADL		;YES
  3850	004475	336 00 0 00 030040 		SKIPN	KAIFLG		;DETERMINE PROCESSOR
  3851	004476	254 00 0 00 004514 		JRST	$MPAD2		;KA10 
  3852	004477	257 00 0 01 000000 	$MPAD6:	MAP	0,(1)		;KI10, GET RELOCATION DATA
  3853	004500	602 00 0 00 400000 		TRNE	0,400000	;PAGE FAILURE ?
  3854	004501	254 00 0 00 004511 		JRST	$MPAD4		;YES, SEE IF VALID ANYWAY
  3855	004502	620 00 0 00 760000 	$MPAD5:	TRZ	0,760000	;CLEAR P,W,S, NO MATCH BITS
  3856	004503	242 00 0 00 000011 		LSH	0,^D9		;HI-ORDER 13 FROM MAP
  3857	004504	405 01 0 00 000777 		ANDI	1,777		;LOW-ORDER 9 FROM VIRTUAL
  3858	004505	434 00 0 00 000001 		OR	0,1		;COMBINE
  3859	004506	350 00 0 17 000000 	$MPAD7:	AOS	(P)		;INCREMENT USRPC (+2 RETURN)
  3860	004507	200 01 0 00 007636 	$MPAD3:	MOVE	1,$ACMP0	;RESTORE AC1
  3861	004510	263 17 0 00 000000 		RTN			;RETURN +1/+2 
  3862	004511	602 00 0 00 020000 	$MPAD4:	TRNE	0,20000		;PAGE FAILURE, ALSO NO MATCH ?
  3863	004512	254 00 0 00 004507 		JRST	$MPAD3		;YES, ERROR (RETURN + 1)
  3864	004513	254 00 0 00 004502 		JRST	$MPAD5		;MATCH, (RELOCATION VALID) CONTINUE
  3865	004514	200 00 0 00 000001 	$MPAD2:	MOVE	0,1		;KA10
  3866	004515	336 00 0 00 030037 		SKIPN	USER		;IN USER MODE ?
  3867	004516	254 00 0 00 004506 		JRST	$MPAD3-1	;NO, VIRTUAL IS PHYSICAL ADR
  3868	004517	561 00 0 00 000001 		HRROI	1		;RELOCATION TABLE
  3869	004520	047 00 0 00 000041 		CALLI	41		;GETTAB
  3870	004521	400 00 0 00 000000 		SETZ			;ERROR
  3871	004522	550 00 0 00 000000 		HRRZ			;RELOCATION ONLY
  3872	004523	270 00 0 00 000001 		ADD	0,1		;RELOC + VIRTUAL = PHYSICAL
  3873	004524	254 00 0 00 004506 		JRST	$MPAD3-1	;RETURN + 2
  3874	004525	336 00 0 00 030037 	$MPADL:	SKIPN	USER		;USER, RETURN VIRTUAL ADDRESS
  3875	004526	254 00 0 00 004531 		JRST	.+3		;"MAP" ILLEGAL IN USER MODE ON KL10
  3876	004527	200 00 0 00 000001 		MOVE	0,1
  3877	004530	254 00 0 00 004506 		JRST	$MPAD7
  3878	004531	257 00 0 01 000000 		MAP	0,(1)		;KL10. GET RELOCATION DATA
  3879	004532	603 00 0 00 200000 		TLNE	0,200000	;PAGE FAILURE
  3880	004533	254 00 0 00 004507 		JRST	$MPAD3		;YES
  3881	004534	621 00 0 00 777000 		TLZ	0,777000	;CLEAR STATUS BITS
  3882	004535	254 00 0 00 004506 		JRST	$MPAD7
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 63
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT MEMORY MAP                                                          SEQ 0173

  3883					SUBTTL	*SUBRTN* PRINT MEMORY MAP
  3884					S^;*********************************************************************^
  3885						SALL
  3886	004536	477 00 0 00 000002 	$PMAP:	SETOB	0,2
  3887	004537	316 00 0 00 030150 		CAMN	0,MEMSIZ+2	;ONLY ONE SEGMENT ?
  3888	004540	201 02 0 00 000001 		MOVEI	2,1		;YES, SET INDICATOR
  3889	004541	400 04 0 00 000000 		SETZ	4,
  3890	004542	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  3891	004543	254 00 0 00 004551 		JRST	$PMAP3		;NO
  3892	004544	332 00 0 00 030037 		SKIPE	USER		;USER MODE ?
  3893	004545	254 00 0 00 004553 		JRST	$PMAP1		;YES
  3894	004546	554 00 0 00 030043 		HLRZ	MONCTL		;FIRST PASS ?
  3895	004547	302 00 0 00 777777 		CAIE	-1
  3896	004550	254 00 0 00 004553 		JRST	$PMAP1		;NO
  3897	004551	336 00 0 00 030056 	$PMAP3:	SKIPN	$ONETM		;FIRST TIME ?
  3898	004552	474 04 0 00 000000 		SETO	4,		;YES, SET FLAG FOR PRINTING
  3899	004553	322 04 0 00 004560 	$PMAP1:	JUMPE	4,$PMAPL-1	;NO
  3900
  3901	004554	037 02 0 00 007352 		PMSG	<^MEMORY MAP =^FROM     TO         SIZE/K>
  3902
  3903	004555	302 02 0 00 000001 		CAIE	2,1		;IF (2) = 1, ONLY ONE SEGMENT
  3904	004556	037 02 0 00 007361 		PMSG	<]START ADR/K>
  3905	004557	037 00 0 00 030242 		PCRL
  3906	004560	403 03 0 00 000005 		SETZB	3,5
  3907
  3908	004561	335 00 0 03 030146 	$PMAPL:	SKIPGE	MEMSIZ(3)	;GET MAP COORDINATES
  3909	004562	254 00 0 00 004611 		JRST	$PMAP4
  3910	004563	322 04 0 00 004571 		JUMPE	4,.+6
  3911	004564	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  3912	004565	037 10 0 00 000000 		PNTADR			;PRINT START ADDRESS
  3913	004566	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  3914	004567	037 10 0 00 000000 		PNTADR			;PRINT END ADDRESS
  3915	004570	037 00 0 00 000011 		PNTCI	"	"
  3916	004571	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  3917	004572	271 00 0 00 000001 		ADDI	0,1
  3918	004573	274 00 0 03 030146 		SUB	MEMSIZ(3)
  3919	004574	231 00 0 00 002000 		IDIVI	^D1024
  3920	004575	270 05 0 00 000000 		ADD	5,0
  3921	004576	322 04 0 00 004607 		JUMPE	4,$PMAP5
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 64
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT MEMORY MAP                                                          SEQ 0174

  3922	004577	037 15 0 00 000000 	$PMAP7:	PNTDEC			;PRINT DECIMAL SIZE
  3923	004600	306 02 0 00 000001 		CAIN	2,1
  3924	004601	254 00 0 00 004606 		JRST	.+5
  3925	004602	037 00 0 00 000011 		PNTCI	"	"
  3926	004603	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  3927	004604	231 00 0 00 002000 		IDIVI	^D1024
  3928	004605	037 15 0 00 000000 		PNTDEC			;PRINT START ADR IN K
  3929	004606	037 00 0 00 030242 		PCRL
  3930
  3931	004607	271 03 0 00 000002 	$PMAP5:	ADDI	3,2
  3932	004610	254 00 0 00 004561 		JRST	$PMAPL		;GET NEXT IF ANY
  3933
  3934	004611	202 05 0 00 030144 	$PMAP4:	MOVEM	5,MEMTOT	;SAVE TOTAL # OF K
  3935	004612	550 00 0 00 000121 		HRRZ	JOBFF		;SETUP LOWEST USABLE
  3936	004613	271 00 0 00 001000 		ADDI	1000		;MEMORY ADDRESS
  3937	004614	620 00 0 00 000777 		TRZ	777		;EVEN BREAK ABOVE JOBFF
  3938	004615	202 00 0 00 030145 		MOVEM	MEMLOW
  3939	004616	322 04 0 00 004626 		JUMPE	4,$PMAP6	;RETURN
  3940	004617	306 02 0 00 000001 		CAIN	2,1
  3941	004620	254 00 0 00 004625 		JRST	$PMAP6-1	;CRLF & RETURN
  3942
  3943	004621	037 02 0 00 007364 		PMSG	<TOTAL MEMORY/K = >
  3944	004622	200 00 0 00 030144 		MOVE	MEMTOT		;OUTPUT TOTAL MEMORY
  3945	004623	037 15 0 00 000000 		PNTDEC
  3946	004624	037 00 0 00 030242 		PCRL
  3947	004625	037 00 0 00 030242 		PCRL
  3948
  3949	004626	263 17 0 00 000000 	$PMAP6:	RTN			;EXIT
  3950						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 65
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0175

  3951					SUBTTL	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE
  3952
  3953	004627	260 17 0 00 004751 	$MODDV:	GO	$SWTCH		;LOAD SWITCHES INTO AC0
  3954	004630	607 00 0 00 000040 		TLNN	0,MODDVC	;DEVICE CODE CHANGE SELECTED ?
  3955	004631	263 17 0 00 000000 		RTN			;NO, DON'T DO IT 
  3956
  3957	004632	202 01 0 00 007665 	$MODD0:	MOVEM	1,$MODDB#	;SAVE AC'S
  3958	004633	202 02 0 00 007666 		MOVEM	2,$MODDC#
  3959	004634	202 03 0 00 007667 		MOVEM	3,$MODDD#
  3960
  3961					;*ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
  3962					S^;*********************************************************************^
  3963						SALL
  3964	004635	037 04 0 00 007367 	$MODD1:	PMSGF	<^CHANGE DEVICE CODES,>
  3965	004636	260 17 0 00 005405 		GO	$YESNO		;AFFIRMATIVE ?
  3966	004637	254 00 0 00 004733 		JRST	$MODDX		;NO/NO MORE CHANGES, EXIT
  3967
  3968	004640	037 04 0 00 007373 	$MODD3:	PMSGF	<OLD DEVICE CODE - >
  3969	004641	265 03 0 00 004676 		JSP	3,$MODD2	;GET OLD DEVICE CODE
  3970	004642	254 00 0 00 004640 		JRST	.-2		;NO RESPONSE ...ASK AGAIN
  3971	004643	202 00 0 00 007663 		MOVEM	0,$MDVCO#	;SAVE THE OLD CODE
  3972
  3973	004644	037 04 0 00 007377 	$MODD4:	PMSGF	<NEW DEVICE CODE - >
  3974	004645	265 03 0 00 004676 		JSP	3,$MODD2	;GET NEW DEVICE CODE
  3975	004646	254 00 0 00 004644 		JRST	.-2		;NO RESPONSE ...ASK AGAIN
  3976	004647	202 00 0 00 007662 		MOVEM	0,$MDVCN#	;SAVE THE NEW CODE
  3977
  3978	004650	037 04 0 00 007403 	$MODD5:	PMSGF	<CHANGING FROM > 
  3979	004651	200 01 0 00 007663 		MOVE	1,$MDVCO	;GET OLD CODE
  3980	004652	265 03 0 00 004713 		JSP	3,$MDSRC	;GET THAT CODE OUT OF LIST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 66
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0176

  3981	004653	037 04 0 00 007406 	$MODD6:	PMSGF	< TO >
  3982	004654	200 01 0 00 007662 		MOVE	1,$MDVCN	;GET NEW CODE
  3983	004655	265 03 0 00 004713 		JSP	3,$MDSRC	;GET THAT CODE OUT OF LIST (
  3984	004656	037 01 0 00 030242 		PCRLF
  3985
  3986	004657	037 04 0 00 007407 	$MODD7:	PMSGF	<VALID CHANGE,>
  3987	004660	260 17 0 00 005405 		GO	$YESNO		;AFFIRMATIVE ?
  3988	004661	254 00 0 00 004635 		JRST	$MODD1		;NO ...START OVER )
  3989	004662	260 17 0 00 004664 		GO	$MODD8		;YES ...CHANGE THE LIST
  3990	004663	254 00 0 00 004635 		JRST	$MODD1
  3991						LALL
  3992
  3993					;*CHANGE THE DEVICE CODE LIST
  3994					S^;*********************************************************************^
  3995
  3996	004664	200 02 0 00 030027 	$MODD8:	MOVE	2,$MODVL
  3997	004665	274 02 0 00 030030 		SUB	2,$MODVU
  3998	004666	514 02 0 00 000002 		HRLZ	2,2
  3999	004667	540 02 0 00 030027 		HRR	2,$MODVL
  4000	004670	200 01 0 00 007662 		MOVE	1,$MDVCN
  4001	004671	135 00 0 00 007412 		LDB	0,[POINT 10,(2),9] 	;GET IOT & DEVICE CODE
  4002	004672	316 00 0 00 007663 		CAMN	0,$MDVCO	;IS IT REQUESTED ONE ?
  4003	004673	137 01 0 00 007412 		DPB	1,[POINT 10,(2),9] 	;YES, MAKE THE CHANGE
  4004	004674	253 02 0 00 004671 		AOBJN	2,.-3
  4005	004675	263 17 0 00 000000 		RTN
  4006
  4007					;*INPUT OLD CODE AND CHECK FOR VALIDITY
  4008					S^;*********************************************************************^
  4009
  4010	004676	260 17 0 00 005452 	$MODD2:	GO	$TPOCT		;INPUT THE OLD CODE
  4011	004677	254 00 1 00 000003 		JRST	@3		;NO RESPONSE, RETURN + 1 )
  4012
  4013	004700	602 00 0 00 000003 	$MODD9:	TRNE	0,3		;MUST END IN 0 OR 4
  4014	004701	254 00 0 00 004731 		JRST	$MODER		;ERROR! ASK AGAIN
  4015	004702	307 00 0 00 000774 		CAIG	0,774		;IS DEVICE CODE IN PROPER RANGE
  4016	004703	305 00 0 00 000014 		CAIGE	0,14
  4017	004704	254 00 0 00 004731 		JRST	$MODER		;ERROR, 14 TO 774 ONLY 
  4018	004705	306 00 0 00 000120 		CAIN	0,120		;CTY MAY NOT CHANGE!
  4019	004706	254 00 0 00 004731 		JRST	$MODER		;ASK AGAIN
  4020	004707	660 00 0 00 007000 		TRO	0,7000		;INSERT IOT CODE
  4021	004710	242 00 0 00 777776 		LSH	0,-2		;POSITION
  4022	004711	350 00 0 00 000003 		AOS	3		;RETURN + 2
  4023	004712	254 00 1 00 000003 		JRST	@3		;RETURN 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 67
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0177

  4024					;*GET THE OLD/NEW CODE FROM DEVICE CODE LIST
  4025					S^;*********************************************************************^
  4026						SALL
  4027	004713	242 01 0 00 000002 	$MDSRC:	LSH	1,2		;POSITION FOR COMPARE
  4028	004714	620 01 0 00 007000 		TRZ	1,7000		;MASK IOT
  4029	004715	200 02 0 00 007413 		MOVE	2,[-$MDEND,,$MDLST]
  4030	004716	135 00 0 00 007414 		LDB	[POINT 9,(2),35] ;EXTRACT CODE FROM LIST
  4031	004717	316 00 0 00 000001 		CAMN	0,1		;IS THIS THE ONE?
  4032	004720	254 00 0 00 004725 		JRST	$MDSR2		;YES! ...PRINT IT & EXIT
  4033	004721	253 02 0 00 004716 		AOBJN	2,.-3		;NOT YET ...GET NEXT
  4034	004722	200 00 0 00 000001 		MOVE	0,1
  4035	004723	037 03 0 00 000001 		PNT3F
  4036
  4037	004724	254 00 1 00 000003 	$MDSR1:	JRST	@3		;RETURN 
  4038	004725	200 00 0 02 000000 	$MDSR2:	MOVE	0,(2)
  4039	004726	620 00 0 00 000777 		TRZ	0,777		;MASK CODE
  4040	004727	037 01 0 00 000002 		PNTSXF			;PRINT IT
  4041	004730	254 00 0 00 004724 		JRST	$MDSR1		;EXIT
  4042
  4043	004731	037 04 0 00 007415 	$MODER:	PMSGF	<^DEV CODE ERR, 14-774 ONLY^>
  4044	004732	254 00 0 00 004640 		JRST	$MODD3		;ASK WHICH ONE TO CHANGE AGAIN
  4045
  4046	004733	260 17 0 00 003711 	$MODDX:	GO	$CFLUSH		;IF KL10 & CACHE ON, FLUSH
  4047	004734	200 03 0 00 007667 		MOVE	3,$MODDD	;RESTORE AC'S
  4048	004735	200 02 0 00 007666 		MOVE	2,$MODDC
  4049	004736	200 01 0 00 007665 		MOVE	1,$MODDB
  4050	004737	263 17 0 00 000000 		RTN			;EXIT
  4051						LALL
  4052					;*DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
  4053					;* AC0 = [OLD,,NEW]
  4054					S^;*********************************************************************^
  4055
  4056	004740	242 00 0 00 777776 	$MODDP:	LSH	AC0,-2		;RIGHT JUSTIFY
  4057	004741	434 00 0 00 007422 		OR	AC0,[1600,,1600] ;INSERT IOT CODE
  4058	004742	556 00 0 00 007663 		HLRZM	$MDVCO		;SETUP OLD CODE
  4059	004743	552 00 0 00 007662 		HRRZM	$MDVCN		;SETUP NEW CODE
  4060	004744	202 01 0 00 007665 		MOVEM	1,$MODDB
  4061	004745	202 02 0 00 007666 		MOVEM	2,$MODDC
  4062	004746	202 03 0 00 007667 		MOVEM	3,$MODDD
  4063
  4064	004747	260 17 0 00 004664 		GO	$MODD8		;CHANGE CODES
  4065	004750	254 00 0 00 004733 		JRST	$MODDX		;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 68
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0178

  4066					SUBTTL	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
  4067					S^;*********************************************************************^
  4068					;*INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
  4069					;*USER MODE IF NON-TTY SWITCH CONTROL
  4070					S^;*********************************************************************^
  4071
  4072	004751	332 00 0 00 030521 	$SWTCH:	SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  4073	004752	254 00 0 00 004775 		JRST	$SWU2		;YES, USE C(CONSW)
  4074	004753	336 00 0 00 007722 		SKIPN	$SWFLG		;BEEN INITED ?
  4075	004754	254 00 0 00 004773 		JRST	$SWU1		;NO, USE SAVED SWITCHES
  4076	004755	332 00 0 00 007740 		SKIPE	$USWTF		;TTY SWITCH CONTROL ?
  4077	004756	254 00 0 00 004773 		JRST	$SWU1		;YES, USE SAVED SWITCHES
  4078	004757	332 00 0 00 030037 		SKIPE	USER
  4079	004760	254 00 0 00 004771 		JRST	$SWUSR		;USER MODE
  4080	004761	332 00 0 00 030041 		SKIPE	KLFLG
  4081	004762	260 17 0 00 005103 		GO	$KLSWR		;KL10
  4082	004763	336 00 0 00 030041 		SKIPN	KLFLG
  4083	004764	7 000 04 0 00 000000 		DATAI	APR,AC0		;KI10 OR KA10
  4084	004765	335 00 0 00 030043 	$SWCH1:	SKIPGE	MONCTL		;MONITR CONTROL ?
  4085	004766	540 00 0 00 030043 		HRR	0,MONCTL	;YES, USE PRESTORED RH SWITCHES
  4086	004767	202 00 0 00 030046 		MOVEM	0,CONSW		;SAVE
  4087	004770	263 17 0 00 000000 		RTN			;EXIT
  4088	004771	047 00 0 00 000020 	$SWUSR:	CALLI	20		;CALL MONITOR FOR SWITCHES
  4089	004772	202 00 0 00 030046 		MOVEM	AC0,CONSW
  4090	004773	200 00 0 00 030046 	$SWU1:	MOVE	0,CONSW
  4091	004774	254 00 0 00 004765 		JRST	$SWCH1
  4092	004775	200 00 0 00 030046 	$SWU2:	MOVE	0,CONSW
  4093	004776	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 69
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0179

  4094					;*SWITCH INITIALIZATION ROUTINE
  4095					S^;*********************************************************************^
  4096						SALL
  4097	004777	402 00 0 00 007740 	$SWTIN:	SETZM	$USWTF#		;CLEAR TTY CONTROL FLAG
  4098	005000	402 00 0 00 007723 		SETZM	$SWONCE#
  4099	005001	260 17 0 00 005107 		GO	$SW0		;INIT SWITCH ROUTINE
  4100	005002	476 00 0 00 007723 	$SWIN1:	SETOM	$SWONCE
  4101	005003	476 00 0 00 007722 		SETOM	$SWFLG		;SET INITED FLAG
  4102	005004	260 17 0 00 005073 		GO	$KLSWI		;DEMAND SWITCHES IF KL10
  4103	005005	260 17 0 00 004751 		GO	$SWTCH		;READ CONSOLE SWITCHES
  4104	005006	603 00 0 00 020000 		TLNE	PNTLPT		;PRINT ON LPT/LOGICAL DEVICE ?
  4105	005007	260 17 0 00 002414 		GO	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  4106	005010	200 00 0 00 030046 		MOVE	CONSW
  4107	005011	603 00 0 00 000004 		TLNE	CHAIN		;IN CHAIN MODE ?
  4108	005012	263 17 0 00 000000 		RTN			;YES, DON'T PRINT FOLLOWING
  4109	005013	335 00 0 00 030043 		SKIPGE	MONCTL
  4110	005014	263 17 0 00 000000 		RTN			;DIAGNOSTIC MONITOR
  4111	005015	332 00 0 00 030521 		SKIPE	$$TOGGLE
  4112	005016	254 00 0 00 005023 		JRST	.+5
  4113	005017	037 04 0 00 007116 		PMSGF	<^SWITCHES = >
  4114	005020	200 00 0 00 030046 		MOVE	CONSW		;GET THE SAVED SWITCHES
  4115	005021	037 13 0 00 000001 		PNTHWF			;PRINT PRESENT SWITCH SETTINGS
  4116	005022	037 01 0 00 030242 		PCRLF
  4117	005023	336 00 0 00 030037 		SKIPN	USER
  4118	005024	336 00 0 00 030041 		SKIPN	KLFLG
  4119	005025	263 17 0 00 000000 		RTN			;EXIT
  4120						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 70
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0180

  4121					;*IF KL10, PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES
  4122					S^;*********************************************************************^
  4123						SALL
  4124	005026	037 02 0 00 007423 		PMSG	<CLK SOURCE = >
  4125	005027	200 01 0 00 007632 		MOVE	1,CLKDFL
  4126	005030	242 01 0 00 777776 		LSH	1,-2
  4127	005031	405 01 0 00 000003 		ANDI	1,3
  4128						MOVE	0,[SIXBIT\NORMAL\
  4129							SIXBIT\FAST\
  4130							SIXBIT\EXTERN\
  4131	005032	200 00 0 01 007426 			SIXBIT\UNUSED\](1)
  4132	005033	037 00 0 00 000002 		PNTSIX
  4133	005034	037 02 0 00 007432 		PMSG	<, CLK RATE = >
  4134	005035	200 01 0 00 007632 		MOVE	1,CLKDFL
  4135	005036	405 01 0 00 000003 		ANDI	1,3
  4136						MOVE	0,[SIXBIT\FULL\
  4137							SIXBIT\1/2\
  4138							SIXBIT\1/4\
  4139	005037	200 00 0 01 007435 			SIXBIT\1/8\](1)
  4140	005040	037 00 0 00 000002 		PNTSIX
  4141
  4142	005041	037 02 0 00 007441 		PMSG	<, AC BLK >
  4143	005042	7 010 04 0 00 000000 		DATAI	PAG,0			;READ CURRENT AC BLOCK SELECTION
  4144	005043	242 00 0 00 777745 		LSH	0,-^D27			;ISOLATE
  4145	005044	405 00 0 00 000007 		ANDI	0,7
  4146	005045	037 01 0 00 000000 		PNT1				;PRINT AC BLOCK DIGIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 71
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0181

  4147	005046	332 00 0 00 030506 		SKIPE	CSHFLG
  4148	005047	254 00 0 00 005071 		JRST	$SWIN3		;CACHE PREVENTED
  4149	005050	200 00 0 00 030046 		MOVE	CONSW
  4150	005051	603 00 0 00 000020 		TLNE	INHCSH
  4151	005052	254 00 0 00 005071 		JRST	$SWIN3		;CACHE INHIBITED
  4152	005053	554 01 0 00 007632 		HLRZ	1,CLKDFL	;GET CACHE ENABLES
  4153	005054	242 01 0 00 777762 		LSH	1,-^D14		;ISOLATE BITS 0-3
  4154	005055	405 01 0 00 000017 		ANDI	1,17
  4155	005056	336 00 0 00 000001 		SKIPN	1
  4156	005057	254 00 0 00 005071 		JRST	$SWIN3		;NOT ENABLED
  4157	005060	037 02 0 00 007443 		PMSG	<, CACHE:>
  4158	005061	602 01 0 00 000010 		TRNE	1,10		;CACHE 0 ENABLED ?
  4159	005062	037 02 0 00 007445 		PMSG	< 0>
  4160	005063	602 01 0 00 000004 		TRNE	1,4		;CACHE 1 ENABLED ?
  4161	005064	037 02 0 00 007446 		PMSG	< 1>
  4162	005065	602 01 0 00 000002 		TRNE	1,2		;CACHE 2 ENABLED ?
  4163	005066	037 02 0 00 007447 		PMSG	< 2>
  4164	005067	602 01 0 00 000001 		TRNE	1,1		;CACHE 3 ENABLED ?
  4165	005070	037 02 0 00 007450 		PMSG	< 3>
  4166	005071	037 00 0 00 030242 	$SWIN3:	PCRL
  4167	005072	263 17 0 00 000000 		RTN
  4168
  4169	005073	201 00 0 00 001400 	$KLSWI:	MOVEI	0,1400		;KL10, GET SWITCHES FROM PDP-11
  4170	005074	260 17 0 00 002043 		GO	$DTEXX
  4171	005075	202 00 0 00 000457 		MOVEM	0,$DTSWR	;PUT IN DTE20 SWITCH WORD
  4172	005076	201 00 0 00 000405 		MOVEI	AC0,405
  4173	005077	260 17 0 00 002043 		GO	$DTEXX		;GET CLOCK DEFAULT WORD
  4174	005100	202 00 0 00 007632 		MOVEM	AC0,CLKDFL#
  4175	005101	402 00 0 00 007633 		SETZM	KLNSW#
  4176	005102	263 17 0 00 000000 		RTN
  4177
  4178	005103	332 00 0 00 007633 	$KLSWR:	SKIPE	KLNSW		;NEED TO DEMAND SWITCHES ?
  4179	005104	260 17 0 00 005073 		GO	$KLSWI		;YES
  4180	005105	200 00 0 00 000457 		MOVE	AC0,$DTSWR
  4181	005106	263 17 0 00 000000 		RTN
  4182						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 72
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0182

  4183					;*SWITCH INITIALIZATION ROUTINE
  4184					S^;*********************************************************************^
  4185						SALL
  4186	005107	261 17 0 00 000000 	$SW0:	PUT	0
  4187	005110	332 00 0 00 030521 		SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  4188	005111	254 00 0 00 005172 		JRST	$SW9+2		;YES, USE C(CONSW)
  4189	005112	336 00 0 00 030037 		SKIPN	USER		;USER MODE ?
  4190	005113	254 00 0 00 005164 		JRST	$SW8		;NO, EXEC
  4191	005114	335 00 0 00 030043 		SKIPGE	MONCTL		;DIAGNOSTIC MONITOR MODE ?
  4192	005115	254 00 0 00 005174 		JRST	$SW10		;YES
  4193	005116	336 00 0 00 007723 		SKIPN	$SWONCE		;INITIALIZATION ?
  4194	005117	254 00 0 00 005176 		JRST	$SW11		;YES
  4195	005120	037 04 0 00 007116 	$SW12:	PMSGF	<^SWITCHES = >
  4196	005121	200 00 0 00 030046 		MOVE	CONSW
  4197	005122	037 13 0 00 000001 		PNTHWF
  4198
  4199	005123	037 04 0 00 007451 	$SW1:	PMSGF	<^TTY SWITCH CONTROL ? - 0,S,Y OR N <CR> - >
  4200	005124	260 17 0 00 005242 		GO	$OPTLK		;INPUT THE ANSWER
  4201	005125	254 00 0 00 005123 		JRST	$SW1		;NO CHARACTER RETURNED, ASK AGAIN
  4202	005126	306 00 0 00 000015 		CAIN	0,15
  4203	005127	254 00 0 00 005145 		JRST	$SWERR		;1ST CHAR CR, ERROR
  4204	005130	242 00 0 00 000007 		LSH	0,7		;POSITION 1ST CHAR
  4205	005131	202 00 0 00 007721 		MOVEM	$SW#
  4206	005132	260 17 0 00 005242 		GO	$OPTLK		;INPUT THE CR
  4207	005133	254 00 0 00 005123 		JRST	$SW1		;NO CHAR, ASK AGAIN
  4208	005134	434 00 0 00 007721 		OR	0,$SW
  4209	005135	306 00 0 00 014015 		CAIN	0,14015		;"0" (CR) ?
  4210	005136	254 00 0 00 005150 		JRST	$SW6		;YES-USE ALL SWITCHES = 0
  4211	005137	306 00 0 00 024615 		CAIN	0,24615		;"S" (CR) ?
  4212	005140	254 00 0 00 005170 		JRST	$SW9		;YES-USE SAVED SWITCHES
  4213	005141	306 00 0 00 026215 		CAIN	0,26215		;"Y" (CR) ?
  4214	005142	254 00 0 00 005152 		JRST	$SW2		;YES-USE TTY INPUT SWITCHES
  4215	005143	306 00 0 00 023415 		CAIN	0,23415		;"N" (CR) ?
  4216	005144	254 00 0 00 005166 		JRST	$SW7		;YES-READ CONSOLE SWITCHES & RETURN
  4217
  4218	005145	332 00 0 00 030037 	$SWERR:	SKIPE	USER
  4219	005146	051 11 0 00 000000 		CLRBFI			;ERROR, CLEAR TYPE-IN BUFFER
  4220	005147	254 00 0 00 005123 		JRST	$SW1		;ASK AGAIN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 73
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0183

  4221	005150	402 00 0 00 000000 	$SW6:	SETZM	0
  4222	005151	254 00 0 00 005162 		JRST	$SW4
  4223
  4224	005152	037 04 0 00 007461 	$SW2:	PMSGF	<^LH SWITCHES - >
  4225	005153	260 17 0 00 005452 		GO	$TPOCT		;INPUT 6 OCTALS
  4226	005154	254 00 0 00 005152 		JRST	$SW2		;ERROR .....TRY AGAIN
  4227	005155	516 00 0 00 007721 		HRLZM	0,$SW#		;MOVE LH WORD TO SW
  4228
  4229	005156	037 04 0 00 007464 	$SW3:	PMSGF	<RH SWITCHES - >
  4230	005157	260 17 0 00 005452 		GO	$TPOCT		;INPUT 6 OCTALS
  4231	005160	254 00 0 00 005156 		JRST	$SW3		;ERROR .....TRY AGAIN
  4232	005161	500 00 0 00 007721 		HLL	0,$SW		;GET LH SWITCHES
  4233	005162	202 00 0 00 030046 	$SW4:	MOVEM	0,CONSW		;SAVE SWITCHES IN CONSW
  4234	005163	476 00 0 00 007740 	$SW5:	SETOM	$USWTF		;SET TTY INPUT SWITCH FLAG
  4235	005164	262 17 0 00 000000 	$SW8:	GET	0
  4236	005165	263 17 0 00 000000 		RTN
  4237
  4238	005166	402 00 0 00 007740 	$SW7:	SETZM	$USWTF		;N, USE REAL SWITCHES
  4239	005167	254 00 0 00 005164 		JRST	$SW8
  4240
  4241	005170	332 00 0 00 007723 	$SW9:	SKIPE	$SWONCE		;S, USE SAME AS BEFORE ON "DING" REQUEST
  4242	005171	254 00 0 00 005164 		JRST	$SW8
  4243	005172	200 00 0 00 007720 		MOVE	$SVCSW		;ON INITIALIZATION USE PREVIOUS SWITCHES
  4244	005173	254 00 0 00 005162 		JRST	$SW4
  4245
  4246	005174	200 00 0 00 020007 	$SW10:	MOVE	0,DIASWS	;GET DIAMON SWITCHES
  4247	005175	254 00 0 00 005162 		JRST	$SW4
  4248
  4249	005176	200 00 0 00 007720 	$SW11:	MOVE	0,$SVCSW	;IF SAVED SW'S ARE ZERO
  4250	005177	322 00 0 00 005123 		JUMPE	0,$SW1		;DON'T PRINT THEM
  4251	005200	202 00 0 00 030046 		MOVEM	0,CONSW
  4252	005201	254 00 0 00 005120 		JRST	$SW12
  4253						LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 74
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0184

  4254					SUBTTL	*SUBRTN* TELETYPE INPUT ROUTINES
  4255
  4256					S^;*********************************************************************^
  4257					;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
  4258					;*CHARACTER OR NUMBER RETURNED IN AC0.
  4259					;*CALL SEQUENCE IS AS FOLLOWS:
  4260					;*	NAME
  4261					;*	NO/ERROR RESPONSE RETURN (+ 1)
  4262					;*	NORMAL RESPONSE RETURN (+ 2)
  4263					;*$OPTLK =	INPUT ANY CHARACTER
  4264					;*$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
  4265					;*$NOYES =	ASK QUESTION, CORRECT RESPONSE N
  4266					;*$TPOCT =	INPUT UP TO 12 OCTALS
  4267					;*$TPDEC =	INPUT UP TO 11 DECIMALS
  4268					;*$TPCNV =	INPUT UP TO 9 CONVERT'S
  4269					;*$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
  4270					;*$TALTM =	KEYBOARD, ALT-MODE CHECK
  4271					;*$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS
  4272					S^;*********************************************************************^
  4273
  4274
  4275					;*TELETYPE INPUT INITIALIZATION
  4276					S^;*********************************************************************^
  4277	005202	201 00 0 00 000264 	$TYPIN:	MOVEI	^D180		;INIT OPERATOR WAIT TIME AS 180 SEC
  4278	005203	202 00 0 00 030224 		MOVEM	OPTIME
  4279	005204	263 17 0 00 000000 		RTN			;EXIT
  4280
  4281					S^;*********************************************************************^
  4282					;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
  4283					;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
  4284					S^;*********************************************************************^
  4285
  4286	005205	400 00 0 00 000000 	$TTLK:	SETZ	AC0,
  4287	005206	332 00 0 00 030037 		SKIPE	USER
  4288	005207	254 00 0 00 005213 		JRST	$TTLK1		;USER MODE
  4289	005210	332 00 0 00 030041 		SKIPE	KLFLG
  4290	005211	263 17 0 00 000000 		RTN			;NO CHECK IF KL10
  4291	005212	254 00 0 00 005314 		JRST	$TIEX1		;KA/KI - CHECK & INPUT IF THERE
  4292
  4293	005213	335 00 0 00 030043 	$TTLK1:	SKIPGE	MONCTL		;NO CHECK IF "MONITOR"
  4294	005214	263 17 0 00 000000 		RTN
  4295	005215	051 02 0 00 030231 		INCHRS	$TTCHR		;GET CHAR FROM MONITOR
  4296	005216	263 17 0 00 000000 		RTN			;NOTHING THERE
  4297	005217	254 00 0 00 005345 		JRST	$HEAR4		;CHAR TYPED, GO PROCESS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 75
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0185

  4298					S^;*********************************************************************^
  4299					;*TELETYPE IMAGE MODE INPUT
  4300					;*PROVIDES UNBUFFERED MODE INPUT
  4301					;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
  4302					S^;*********************************************************************^
  4303
  4304	005220	332 00 0 00 030037 	$TTYIN:	SKIPE	USER
  4305	005221	254 00 0 00 005236 		JRST	$TTYIY		;USER MODE
  4306	005222	336 00 0 00 030041 		SKIPN	KLFLG
  4307	005223	254 00 0 00 005233 		JRST	$TTYIX		;KI OR KA EXEC
  4308
  4309	005224	201 00 0 00 003400 		MOVEI	0,3400		;DDT INPUT MODE
  4310	005225	260 17 0 00 002043 		GO	$DTEXX
  4311	005226	405 00 0 00 000177 		ANDI	0,177		;STRIP EXTRA BITS
  4312	005227	322 00 0 00 005224 		JUMPE	0,.-3		;IF 0, NO CHAR, WAIT
  4313
  4314	005230	260 17 0 00 005317 		GO	$TIEX2+1	;RUN THRU NORMAL PROCESS
  4315	005231	037 15 0 00 000004 		FATAL			;CAN'T HAPPEN
  4316	005232	263 17 0 00 000000 		RTN
  4317
  4318	005233	260 17 0 00 005310 	$TTYIX:	GO	$HEAR		;GET CHAR
  4319	005234	254 00 0 00 005233 		JRST	.-1		;WAIT FOR IT
  4320	005235	263 17 0 00 000000 		RTN
  4321
  4322	005236	051 00 0 00 030231 	$TTYIY:	INCHRW	$TTCHR		;GET THE CHARACTER
  4323	005237	260 17 0 00 005345 		GO	$HEAR4		;PROCESS IT
  4324	005240	254 00 0 00 005237 		JRST	.-1
  4325	005241	263 17 0 00 000000 		RTN
  4326
  4327					S^;*********************************************************************^
  4328					;*TELETYPE INPUT OPERATOR RESPONSE ROUTINE
  4329					S^;*********************************************************************^
  4330
  4331	005242	202 04 0 00 007724 	$OPTLK:	MOVEM	4,$TACB4#
  4332	005243	200 04 0 00 030224 		MOVE	4,OPTIME	;COMPUTE WAIT DELAY
  4333	005244	221 04 0 00 147400 		IMULI	4,147400	;1 SEC FUDGE FACTOR
  4334	005245	363 04 0 00 005251 		SOJLE	4,.+4		;WAITED LONG ENOUGH YET ?
  4335	005246	260 17 0 00 005310 		GO	$HEAR		;NO, GO LOOK FOR INPUT & RETURN
  4336	005247	254 00 0 00 005245 		JRST	.-2		;NO RESPONSE, REPEAT
  4337	005250	350 00 0 17 000000 		AOS	(P)		;CHAR TYPED, RETURN +2
  4338	005251	202 04 0 00 030225 		MOVEM	4,$TWCNT	;SAVE TTY WAIT COUNT
  4339	005252	200 04 0 00 007724 		MOVE	4,$TACB4
  4340	005253	263 17 0 00 000000 		RTN			;NO CHAR, RETURN +1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 76
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0186

  4341					S^;*********************************************************************^
  4342					;*TELETYPE ALT-MODE CHECK ROUTINE
  4343					S^;*********************************************************************^
  4344
  4345	005254	336 00 0 00 030037 	$TALTM:	SKIPN	USER
  4346	005255	336 00 0 00 030041 		SKIPN	KLFLG
  4347	005256	254 00 0 00 005260 		JRST	.+2
  4348	005257	254 00 0 00 005300 		JRST	$TALT3		;ONLY IF KL10 & EXEC
  4349	005260	260 17 0 00 005205 		GO	$TTLK
  4350	005261	263 17 0 00 000000 		RTN			;NO TYPE-IN  ...EXIT
  4351
  4352	005262	302 00 0 00 000175 	$TALT2:	CAIE	175
  4353	005263	306 00 0 00 000176 		CAIN	176
  4354	005264	254 00 0 00 005267 		JRST	$TALT1		;ALT-MODE WAS TYPED
  4355	005265	302 00 0 00 000033 		CAIE	33
  4356	005266	254 00 0 00 005270 		JRST	.+2		;NO ALT-MODE
  4357
  4358	005267	254 00 0 00 030064 	$TALT1:	JRST	CPOPJ1		;ALT-MODE, RETURN +2
  4359
  4360	005270	302 00 0 00 000007 		CAIE	007		;IS CHAR A BELL ?
  4361	005271	263 17 0 00 000000 		RTN
  4362	005272	332 00 0 00 030522 		SKIPE	$$TAX1
  4363	005273	256 00 0 00 030522 		XCT	$$TAX1		;XCT USERS PRE-ROUTINE
  4364	005274	260 17 0 00 005107 		GO	$SW0		;YES, DING FOR SWITCH CONTROL
  4365	005275	332 00 0 00 030523 		SKIPE	$$TAX2
  4366	005276	256 00 0 00 030523 		XCT	$$TAX2		;XCT USERS POST-ROUTINE
  4367	005277	263 17 0 00 000000 		RTN
  4368
  4369	005300	200 00 0 00 000454 	$TALT3:	MOVE	0,$DTCHR	;GET LAST TYPED CHAR
  4370	005301	405 00 0 00 000177 		ANDI	0,177
  4371	005302	301 00 0 00 000141 		CAIL	"A"+40
  4372	005303	303 00 0 00 000172 		CAILE	"Z"+40
  4373	005304	254 00 0 00 005306 		JRST	.+2
  4374	005305	275 00 0 00 000040 		SUBI	40
  4375	005306	402 00 0 00 000454 		SETZM	$DTCHR		;CLEAR FOR NEXT CHAR
  4376	005307	254 00 0 00 005262 		JRST	$TALT2		;AND CHECK IF ALTMODE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 77
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0187

  4377					S^;*********************************************************************^
  4378					;*TELETYPE INPUT CHARACTER 
  4379					;*EXEC/USER MODE TEST & KL10 CPU TEST
  4380					S^;*********************************************************************^
  4381
  4382	005310	332 00 0 00 030037 	$HEAR:	SKIPE	USER		;EXEC MODE ?
  4383	005311	254 00 0 00 005343 		JRST	$TIUSR		;NO..USER MODE INPUT
  4384
  4385	005312	332 00 0 00 030041 	$TIEXC:	SKIPE	KLFLG		;KL10 CPU?
  4386	005313	254 00 0 00 005333 		JRST	$TIKL		;YES, INPUT VIA DTE-20
  4387
  4388					;*TELETYPE INPUT CHARACTER ROUTINE - KA/KI (DIRECT)
  4389					S^;*********************************************************************^
  4390
  4391	005314	7 120 34 0 00 000040 	$TIEX1:	CONSO	TTY,40		;KEY BEEN STRUCK?
  4392	005315	263 17 0 00 000000 		RTN			;NO-EXIT
  4393
  4394	005316	7 120 04 0 00 000000 	$TIEX2:	DATAI	TTY,0		;YES-INPUT A CHAR
  4395	005317	202 00 0 00 030231 		MOVEM	0,$TTCHR#	;SAVE ACTUAL CHARACTER
  4396	005320	260 17 0 00 006506 		GO	$TYOUT		;ECHO IT
  4397	005321	350 00 0 00 007650 		AOS	$CARCT
  4398	005322	405 00 0 00 000177 		ANDI	0,177
  4399	005323	306 00 0 00 000003 		CAIN	0,003		;IS IT ^C ?
  4400	005324	254 00 0 00 005400 		JRST	$HEAR1		;YES, TERMINATE
  4401	005325	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  4402	005326	254 00 0 00 005345 		JRST	$HEAR4		;NO-PROCESS IT 
  4403	005327	402 00 0 00 007650 		SETZM	$CARCT
  4404	005330	201 00 0 00 000012 		MOVEI	0,12		;YES
  4405	005331	260 17 0 00 006506 		GO	$TYOUT		;ECHO LF 
  4406	005332	254 00 0 00 005345 		JRST	$HEAR4		;PROCESS THE CHARACTER
  4407
  4408					;*TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC
  4409					S^;*********************************************************************^
  4410
  4411	005333	201 00 0 00 002400 	$TIKL:	MOVEI	AC0,2400
  4412	005334	260 17 0 00 002043 		GO	$DTEXX		;COMMAND CODE TO DTE-20
  4413	005335	405 00 0 00 000377 		ANDI	AC0,377
  4414	005336	202 00 0 00 030231 		MOVEM	AC0,$TTCHR	;CHAR DEPOSITED INTO AC0
  4415	005337	402 00 0 00 000454 		SETZM	$DTCHR
  4416	005340	326 00 0 00 005345 		JUMPN	AC0,$HEAR4
  4417	005341	201 04 0 00 000001 		MOVEI	4,1		;TIMED OUT
  4418	005342	263 17 0 00 000000 		RTN
  4419
  4420					;*TELETYPE INPUT CHARACTER ROUTINE - KA/KI/KL USER MODE
  4421					S^;*********************************************************************^
  4422
  4423	005343	051 04 0 00 030231 	$TIUSR:	INCHWL	$TTCHR#		;GET CHAR, LINE WAIT MODE
  4424	005344	254 00 0 00 005345 		JRST	$HEAR4		;PROCESS THE CHARACTER 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 78
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0188

  4425					S^;*********************************************************************^
  4426					;*CHARACTER PROCESSING ROUTINE FOR INPUT
  4427					;*CHARACTER RETURNED IN AC0 IS UPPER CASE
  4428					;*ACTUAL CHARACTER IS IN $TTCHR
  4429					S^;*********************************************************************^
  4430
  4431	005345	200 00 0 00 030231 	$HEAR4:	MOVE	0,$TTCHR	;GET ACTUAL CHARACTER
  4432	005346	405 00 0 00 000177 		ANDI	0,177		;CLEAR PARITY BIT
  4433	005347	301 00 0 00 000141 		CAIL	0,"A"+40	;CONVERT TO UPPER CASE
  4434	005350	303 00 0 00 000172 		CAILE	0,"Z"+40
  4435	005351	254 00 0 00 005353 		JRST	.+2
  4436	005352	275 00 0 00 000040 		SUBI	0,40
  4437	005353	202 00 0 00 030232 		MOVEM	0,$CHRIN#	;SAVE CHARACTER
  4438	005354	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  4439	005355	254 00 0 00 005370 		JRST	$HEAR3		;NO
  4440	005356	402 00 0 00 007650 		SETZM	$CARCT		;CLEAR CHARACTER COUNTER
  4441	005357	332 00 0 00 030037 		SKIPE	USER		;YES ..USER MODE ?
  4442	005360	051 00 0 00 000000 		INCHRW			;YES, GET RID OF LF
  4443	005361	200 00 0 00 030046 		MOVE	0,CONSW
  4444	005362	607 00 0 00 020000 		TLNN	0,PNTLPT	;LPT/LOGICAL DEVICE OUTPUT ?
  4445	005363	254 00 0 00 005365 		JRST	$HEAR2		;NO
  4446	005364	037 00 0 00 030242 		PCRL			;YES-ADD CRLF
  4447	005365	200 00 0 00 030232 	$HEAR2:	MOVE	0,$CHRIN	;PUT INPUT CHAR IN AC0
  4448	005366	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN +2 
  4449	005367	263 17 0 00 000000 		RTN			;NORMAL RETURN +1 
  4450
  4451	005370	306 00 0 00 000004 	$HEAR3:	CAIN	0,04
  4452	005371	254 00 0 00 002404 		JRST	$DDTENT		;CONTROL D, GO TO DDT
  4453	005372	200 00 0 00 030046 		MOVE	0,CONSW		;GET DATA SWITCHES
  4454	005373	607 00 0 00 020000 		TLNN	0,PNTLPT	;PRINT ON LPT?
  4455	005374	254 00 0 00 005365 		JRST	$HEAR2		;NO-EXIT 
  4456	005375	200 00 0 00 030232 		MOVE	0,$CHRIN	;YES
  4457	005376	037 12 0 00 000000 		PNTCHR			;SEND CHAR TO LPT/LOGICAL DEV
  4458	005377	254 00 0 00 005365 		JRST	$HEAR2		;EXIT 
  4459
  4460	005400	201 00 0 00 005310 	$HEAR1:	MOVEI	0,$HEAR+0	;CONTROL C, SAVE ENTRY TO 
  4461	005401	202 00 0 00 000130 		MOVEM	0,JOBOPC	;TTY ROUTINE FOR RESTART
  4462	005402	254 00 1 00 030062 		JRST	@CNTLC		;TERMINATE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 79
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE                                          SEQ 0189

  4463					SUBTTL	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
  4464
  4465					S^;*********************************************************************^
  4466					;*ACCEPTS Y OR N
  4467					;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
  4468					;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
  4469					;*'Y OR N <CR> - ' ASKED UPON ENTRY
  4470					S^;*********************************************************************^
  4471
  4472	005403	201 00 0 00 000001 	$NOYES:	MOVEI	0,1		;INIT FOR N ANSWER
  4473	005404	254 00 0 00 005406 		JRST	.+2
  4474	005405	201 00 0 00 000000 	$YESNO:	MOVEI	0,0		;INIT FOR Y ANSWER
  4475	005406	202 01 0 00 007725 		MOVEM	1,$TACC1#	;SAVE AC'S
  4476	005407	202 02 0 00 007726 		MOVEM	2,$TACC2#
  4477	005410	200 02 0 00 000000 		MOVE	2,0
  4478
  4479	005411				$YN1:	PMSGF	< Y OR N <CR> - >^
  4480	005411	037 04 0 00 007467 		PSIXMF	[SIXBIT\ Y OR N <CR> - _\]^
  4481	005412	260 17 0 00 005242 		GO	$OPTLK
  4482	005413	254 00 0 00 005433 		JRST	$YN2		;NO RESPONSE
  4483	005414	302 00 0 00 000131 		CAIE	0,"Y"		;IS IT A 'Y' ?
  4484	005415	306 00 0 00 000116 		CAIN	0,"N"		;OR AN 'N' ?
  4485	005416	254 00 0 00 005420 		JRST	.+2		;YES
  4486	005417	254 00 0 00 005437 		JRST	$YN3		;NEITHER, ERROR
  4487	005420	200 01 0 00 000000 		MOVE	1,0
  4488	005421	242 01 0 00 000007 		LSH	1,7		;POSITION 1ST CHAR
  4489	005422	260 17 0 00 005242 		GO	$OPTLK
  4490	005423	254 00 0 00 005433 		JRST	$YN2		;NO RESPONSE
  4491	005424	434 01 0 00 000000 		OR	1,0		;MERGE 2ND CHAR
  4492	005425	316 01 0 02 005443 		CAMN	1,$YN4(2)	;COMPARE FOR REQUESTED
  4493	005426	254 00 0 00 005432 		JRST	.+4		;YES, RETURN +2
  4494	005427	316 01 0 02 005444 		CAMN	1,$YN4+1(2)	;COMPARE FOR OPPOSITE
  4495	005430	254 00 0 00 005433 		JRST	.+3		;YES, RETURN +1
  4496	005431	254 00 0 00 005437 		JRST	$YN3		;ERROR, REPEAT
  4497	005432	350 00 0 17 000000 		AOS	(P)		;YES, RETURN +2
  4498	005433	200 02 0 00 007726 	$YN2:	MOVE	2,$TACC2	;RESTORE AC2
  4499	005434	200 00 0 00 000001 		MOVE	0,1
  4500	005435	200 01 0 00 007725 		MOVE	1,$TACC1	;RESTORE AC1
  4501	005436	263 17 0 00 000000 		RTN			;RETURN +1
  4502
  4503	005437	037 01 0 00 030242 	$YN3:	PCRLF
  4504	005440	332 00 0 00 030037 		SKIPE	USER
  4505	005441	051 11 0 00 000000 		CLRBFI			;ERROR, CLEAR INPUT BUFFER
  4506	005442	254 00 0 00 005411 		JRST	$YN1
  4507
  4508	005443	000000	026215		$YN4:	EXP	26215		;'Y' (CR)
  4509	005444	000000	023415			EXP	23415		;'N' (CR)
  4510	005445	000000	026215			EXP	26215		;'Y' (CR)
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 80
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0190

  4511					SUBTTL	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
  4512
  4513					S^;*********************************************************************^
  4514					;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
  4515					;*NUMBER RETURNED IN AC0.
  4516					S^;*********************************************************************^
  4517
  4518	005446	201 00 0 00 000002 	$TPCNV:	MOVEI	AC0,2		;SET INDEX TO CONVERT
  4519	005447	254 00 0 00 005453 		JRST	$TPCV1
  4520	005450	201 00 0 00 000001 	$TPDEC:	MOVEI	AC0,1		;SET INDEX TO DECIMAL
  4521	005451	254 00 0 00 005453 		JRST	$TPCV1
  4522	005452	201 00 0 00 000000 	$TPOCT:	MOVEI	AC0,0		;SET INDEX TO OCTAL
  4523
  4524	005453	202 01 0 00 007727 	$TPCV1:	MOVEM	1,$TACD1#	;SAVE AC'S 1-3
  4525	005454	202 02 0 00 007730 		MOVEM	2,$TACD2#
  4526	005455	202 03 0 00 007731 		MOVEM	3,$TACD3#
  4527	005456	200 03 0 00 000000 		MOVE	3,0		;LOAD AC3 WITH THE INDEX
  4528	005457	403 01 0 00 000002 		SETZB	1,2		;CLEAR DATA REG, CHAR COUNTER
  4529	005460	402 00 0 00 030233 		SETZM	$TYPNB#		;CLEAR ERR NUMBER
  4530	005461	402 00 0 00 007674 		SETZM	$NEGF#		;CLEAR NEGATE FLAG
  4531	005462	402 00 0 00 007651 		SETZM	$CNVD#		;CLEAR DECIMAL CONVERT FLAG
  4532	005463	402 00 0 00 030510 		SETZM	TTNBRF		;CLEAR DIGIT TYPED FLAG
  4533
  4534
  4535					;*INPUT AND COMPUTE NUMBER
  4536					S^;*********************************************************************^
  4537
  4538	005464	260 17 0 00 005242 	$TYPLP:	GO	$OPTLK
  4539	005465	254 00 0 00 005523 		JRST	$TPERR		;NO RESPONSE, GO TO ERROR EXIT
  4540	005466	306 00 0 00 000055 		CAIN	0,"-"		;IS IT MINUS ?
  4541	005467	254 00 0 00 005541 		JRST	$NEGX		;YES
  4542	005470	306 00 0 00 000056 		CAIN	0,"."		;IS IT PERIOD ?
  4543	005471	254 00 0 00 005545 		JRST	$CNVX		;YES
  4544	005472	306 00 0 00 000015 		CAIN	0,15		;IS IT CR ?
  4545	005473	254 00 0 00 005507 		JRST	$TPEXT		;YES
  4546	005474	306 00 0 00 000054 		CAIN	0,","		;IS IT COMMA ?
  4547	005475	254 00 0 00 005507 		JRST	$TPEXT		;YES
  4548	005476	301 00 0 00 000060 		CAIL	0,"0"		;A VALID DIGIT ?
  4549	005477	256 00 0 03 005530 		XCT	$TPCK(3)	;YES
  4550	005500	254 00 0 00 005523 		JRST	$TPERR		;NO ...ERROR EXIT
  4551
  4552	005501	476 00 0 00 030510 	$TYPL1:	SETOM	TTNBRF		;SET DIGIT TYPED FLAG
  4553	005502	350 00 0 00 000002 		AOS	2		;INCREMENT CHARACTER COUNTER
  4554	005503	256 00 0 03 005533 		XCT	$TPMUL(3)	;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
  4555	005504	275 00 0 00 000060 		SUBI	60		;ADD IN NEW CHAR
  4556	005505	270 01 0 00 000000 		ADD	1,0
  4557	005506	254 00 0 00 005464 		JRST	$TYPLP		;REPEAT TILL CR OR COMMA
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 81
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0191

  4558					;*CHECK FOR PROPER AMOUNT OF CHARACTERS
  4559					S^;*********************************************************************^
  4560
  4561	005507	256 00 0 03 005536 	$TPEXT:	XCT	$TPNBR(3)	;PROPER NUMBER OF CHARACTERS
  4562	005510	254 00 0 00 005523 		JRST	$TPERR		;NO ...ERROR EXIT 
  4563	005511	306 03 0 00 000002 		CAIN	3,2		;CONVERT ? (INDEX = 2)
  4564	005512	254 00 0 00 005551 		JRST	$CNVX1		;YES
  4565									;NO, EXIT
  4566
  4567	005513	200 03 0 00 007731 	$TPEX1:	MOVE	3,$TACD3	;RESTORE AC'S 3 & 2
  4568	005514	200 02 0 00 007730 		MOVE	2,$TACD2
  4569	005515	200 00 0 00 000001 		MOVE	0,1		;PUT NUMBER IN AC0
  4570	005516	332 00 0 00 007674 		SKIPE	$NEGF		;NEGATE ?
  4571	005517	210 00 0 00 000001 		MOVN	0,1		;YES
  4572	005520	200 01 0 00 007727 		MOVE	1,$TACD1	;RESTORE AC1
  4573	005521	350 00 0 17 000000 		AOS	(P)		;RETURN +2 
  4574	005522	263 17 0 00 000000 		RTN			;RETURN +1 
  4575
  4576	005523	202 01 0 00 030233 	$TPERR:	MOVEM	1,$TYPNB	;SAVE NUMBER - ERROR EXIT
  4577	005524	200 03 0 00 007731 		MOVE	3,$TACD3	;RESTORE AC'S
  4578	005525	200 02 0 00 007730 		MOVE	2,$TACD2
  4579	005526	200 01 0 00 007727 		MOVE	1,$TACD1
  4580	005527	263 17 0 00 000000 		RTN			;ERROR EXIT )
  4581
  4582
  4583					;*NUMBER COMPUTING CONSTANTS
  4584					S^;*********************************************************************^
  4585
  4586	005530	303 00 0 00 000067 	$TPCK:	CAILE	0,"7"		;OCTAL NUMBER CHECK
  4587	005531	303 00 0 00 000071 		CAILE	0,"9"		;DECIMAL NUMBER CHECK
  4588	005532	303 00 0 00 000071 		CAILE	0,"9"		;CONVERT NUMBER CHECK
  4589	005533	242 01 0 00 000003 	$TPMUL:	LSH	1,3		;OCTAL BASE SHIFT
  4590	005534	221 01 0 00 000012 		IMULI	1,^D10		;DECIMAL BASE MULTIPLIER
  4591	005535	242 01 0 00 000004 		LSH	1,4		;CONVERT SHIFT
  4592	005536	303 02 0 00 000014 	$TPNBR:	CAILE	2,^D12		;ACCEPT UP TO 12 OCTALS
  4593	005537	303 02 0 00 000013 		CAILE	2,^D11		;ACCEPT UP TO 11 DECIMALS
  4594	005540	303 02 0 00 000011 		CAILE	2,^D9		;ACCEPT UP TO 9 CONVERT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 82
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0192

  4595	005541	332 00 0 00 000002 	$NEGX:	SKIPE	2		;1ST CHAR ?
  4596	005542	254 00 0 00 005523 		JRST	$TPERR		;NO, ERROR EXIT )
  4597	005543	476 00 0 00 007674 		SETOM	$NEGF		;YES, SET NEGATE FLAG
  4598	005544	254 00 0 00 005464 		JRST	$TYPLP		;GET NEXT CHAR
  4599
  4600	005545	302 03 0 00 000002 	$CNVX:	CAIE	3,2		;PERIOD, IN CONVERT ?
  4601	005546	254 00 0 00 005523 		JRST	$TPERR		;NO, ERROR EXIT )
  4602	005547	476 00 0 00 007651 		SETOM	$CNVD		;YES, SET DECIMAL FLAG
  4603	005550	254 00 0 00 005464 		JRST	$TYPLP		;GET NEXT CHAR
  4604
  4605
  4606					;*CONVERT CONVERSION ROUTINE
  4607					S^;*********************************************************************^
  4608
  4609	005551	201 02 0 00 000011 	$CNVX1:	MOVEI	2,^D9		;NINE DIGITS
  4610	005552	402 00 0 00 000000 		SETZM	0
  4611	005553	332 00 0 00 007651 		SKIPE	$CNVD		;OCTAL OR DECIMAL ?
  4612	005554	254 00 0 00 005564 		JRST	$CNVX2		;DECIMAL
  4613	005555	612 01 0 00 007472 		TDNE	1,[421042104210]	;OCTAL
  4614	005556	254 00 0 00 005523 		JRST	$TPERR		;OCTAL ERROR, 8 OR 9 INPUT
  4615	005557	242 01 0 00 000001 		LSH	1,1		;SQUEEZE OUT 4TH BIT
  4616	005560	246 00 0 00 000003 		LSHC	0,3		;COMPACT INTO OCTAL
  4617	005561	366 02 0 00 005557 		SOJN	2,.-2		;COMPLETED ?
  4618	005562	200 01 0 00 000000 		MOVE	1,0		;YES
  4619	005563	254 00 0 00 005513 		JRST	$TPEX1		;RETURN 
  4620
  4621	005564	402 00 0 00 000003 	$CNVX2:	SETZM	3		;DECIMAL
  4622	005565	402 00 0 00 000000 		SETZM	0
  4623	005566	221 03 0 00 000012 		IMULI	3,^D10		;MULTIPLY BY DECIMAL BASE
  4624	005567	246 00 0 00 000004 		LSHC	0,4		;UNPACK NEXT DIGIT
  4625	005570	270 03 0 00 000000 		ADD	3,0		;ADD IN
  4626	005571	366 02 0 00 005565 		SOJN	2,.-4		;COMPLETED ?
  4627	005572	200 01 0 00 000003 		MOVE	1,3		;YES
  4628	005573	254 00 0 00 005513 		JRST	$TPEX1		;RETURN )
  4629
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 83
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE                                            SEQ 0193

  4630					SUBTTL	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
  4631
  4632					S^;*********************************************************************^
  4633					;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
  4634					;*SIXBIT WORD RETURNED IN AC0
  4635					S^;*********************************************************************^
  4636
  4637	005574	202 01 0 00 007732 	$TISIX:	MOVEM	1,$TSX1#	;SAVE AC'S
  4638	005575	202 02 0 00 007733 		MOVEM	2,$TSX2#
  4639	005576	200 02 0 00 007473 		MOVE	2,[POINT 6,1]
  4640	005577	201 01 0 00 000000 		MOVEI	1,0
  4641
  4642	005600	260 17 0 00 005242 	$TSXB1:	GO	$OPTLK
  4643	005601	254 00 0 00 005623 		JRST	$TSXB3		;NO RESPONSE, RTN + 1
  4644	005602	306 00 0 00 000015 		CAIN	0,15
  4645	005603	254 00 0 00 005622 		JRST	$TSXB2		;CR, TERMINATE, RTN + 2 
  4646	005604	306 00 0 00 000054 		CAIN	0,","
  4647	005605	254 00 0 00 005622 		JRST	$TSXB2		;COMMA, TERMINATE, RTN + 2
  4648	005606	301 00 0 00 000060 		CAIL	0,"0"
  4649	005607	303 00 0 00 000132 		CAILE	0,"Z"
  4650	005610	254 00 0 00 005623 		JRST	$TSXB3		;ERROR, RTN + 1 
  4651	005611	303 00 0 00 000071 		CAILE	0,"9"
  4652	005612	301 00 0 00 000101 		CAIL	0,"A"
  4653	005613	254 00 0 00 005615 		JRST	$TSXB4		;ALPHA-NUMERIC
  4654	005614	254 00 0 00 005623 		JRST	$TSXB3		;ERROR, RTN + 1 
  4655
  4656	005615	640 00 0 00 000040 	$TSXB4:	TRC	0,40		;CONVERT TO SIX-BIT
  4657	005616	602 01 0 00 000077 		TRNE	1,77
  4658	005617	254 00 0 00 005623 		JRST	$TSXB3		;TOO MANY CHAR'S, RTN + 1
  4659	005620	136 00 0 00 000002 		IDPB	0,2		;PUT INTO WORD
  4660	005621	254 00 0 00 005600 		JRST	$TSXB1		;GET NEXT CHARACTER
  4661
  4662	005622	350 00 0 17 000000 	$TSXB2:	AOS	(P)		;INCR USRPC FOR RTN + 2 (NORMAL)
  4663
  4664	005623	200 00 0 00 000001 	$TSXB3:	MOVE	0,1		;SIXBIT WORD IN AC0
  4665	005624	200 01 0 00 007732 		MOVE	1,$TSX1		;RESTORE AC'S
  4666	005625	200 02 0 00 007733 		MOVE	2,$TSX2
  4667	005626	263 17 0 00 000000 		RTN			;EXIT + 1/+2
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 84
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0194

  4668					SUBTTL	*SUBRTN* PRINT SUBROUTINES
  4669
  4670					S^;*********************************************************************^
  4671					;*	$PNTSX		PRINT SIXBIT NORMAL
  4672					;*	$PTSXF		PRINT SIXBIT FORCED
  4673					;*	$PNTCW		PRINT DF10 CONTROL WORD
  4674					;*	$PNTI1		PRINT OCTAL NUMBER
  4675					;*	$CHRPN		PRINT CHARACTER
  4676					;*	$ASCPN		PRINT ASCII CHARACTER/LINE
  4677					;*	$DECPN		PRINT DECIMAL NUMBER
  4678					S^;*********************************************************************^
  4679
  4680					S^;*********************************************************************^
  4681					;*PRINT SUBROUTINE INITIALIZATION
  4682					;*INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
  4683					S^;*********************************************************************^
  4684
  4685	005627	402 00 0 00 007656 	$PNTIN:	SETZM	$INTDF#		;CLEAR DEVICE DEFAULT FLAG
  4686	005630	402 00 0 00 030226 		SETZM	$DVOFF#		;CLEAR DEVICE INITED FLAG
  4687	005631	402 00 0 00 030221 		SETZM	PDISF#		;CLEAR PRINT DISABLED FLAG
  4688	005632	402 00 0 00 007715 		SETZM	$PTINH#		;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
  4689	005633	402 00 0 00 030222 		SETZM	PNTINH#		;ALLOW EXEC PRINT TYPE IN INHIBIT
  4690	005634	402 00 0 00 007634 		SETZM	XOFFLAG#	;CLEAR XOFF FLAG
  4691	005635	402 00 0 00 030217 		SETZM	PNTFLG#		;CLEAR IN PRINT FLAG
  4692	005636	476 00 0 00 030223 		SETOM	PNTSPC#		;SET PRINT SPACE FLAG
  4693	005637	211 00 0 00 011610 		MOVNI	0,^D5000	;SET PRINT ENABLE TO 5000 LINES
  4694	005640	202 00 0 00 030220 		MOVEM	0,PNTENB
  4695	005641	402 00 0 00 030227 		SETZM	TTYFIL		;ALLOW EXEC FILLERS
  4696	005642	402 00 0 00 030234 		SETZM	$CRLF#		;ALLOW FREE CR/LF
  4697	005643	402 00 0 00 030235 		SETZM	$TABF		;ALLOW TAB CONVERSION
  4698	005644	402 00 0 00 030236 		SETZM	$FFF		;ALLOW FORM FEED CONVERSION
  4699	005645	402 00 0 00 030237 		SETZM	$VTF		;ALLOW VERTICAL TAB CONVERSION
  4700	005646	336 00 0 00 030037 		SKIPN	USER
  4701	005647	332 00 0 00 030041 		SKIPE	KLFLG
  4702	005650	254 00 0 00 005652 		JRST	.+2		;USER OR KL10
  4703	005651	254 00 0 00 006601 		JRST	$TYSPD		;COMPUTE TTY BAUD RATE
  4704
  4705	005652	201 00 0 00 030006 	$PNTIX:	MOVEI	REENTR		;SETUP REENTER ADDRESS
  4706	005653	202 00 0 00 000124 		MOVEM	JOBREN
  4707	005654	335 00 0 00 030043 		SKIPGE	MONCTL		;MONITOR CONTROL ?
  4708	005655	263 17 0 00 000000 		RTN			;YES, DON'T PRINT TITLE
  4709	005656	332 00 0 00 030056 		SKIPE	$ONETM		;FIRST TIME?
  4710	005657	263 17 0 00 000000 		RTN			;NO .....EXIT
  4711	005660	254 00 0 00 002414 		JRST	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  4712									;AND EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 85
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0195

  4713					S^;*********************************************************************^
  4714					;*PRINT SUBROUTINE ENTRY POINT
  4715					;*EXIT VIA $PNTI4 BELOW
  4716					S^;*********************************************************************^
  4717
  4718	005661	476 00 0 00 030217 	$PNTIF:	SETOM	PNTFLG		;SET IN PRINT FLAG
  4719	005662	476 00 0 00 007710 		SETOM	$PNTTY#		;FORCE TO TTY
  4720	005663	332 00 0 00 030037 		SKIPE	USER
  4721	005664	051 13 0 00 000000 		TTCALL	13,0		;CLEAR CONTROL O
  4722	005665	255 00 0 00 000000 		JFCL
  4723	005666	402 00 0 00 007715 		SETZM	$PTINH
  4724	005667	254 00 0 00 005701 		JRST	$PTKL
  4725
  4726	005670	476 00 0 00 030217 	$PNTIT:	SETOM	PNTFLG		;SET IN PRINT FLAG
  4727	005671	402 00 0 00 007710 		SETZM	$PNTTY		;NOT FORCED TO TTY
  4728	005672	331 00 0 00 030220 		SKIPL	PNTENB#		;PRINT LIMIT REACHED YET?
  4729	005673	254 00 0 00 005716 		JRST	$PNTIB		;YES ..DON'T PRINT
  4730	005674	260 17 0 00 004751 		GO	$SWTCH		;READ DATA SWITCHES INTO AC0
  4731	005675	607 00 0 00 040000 		TLNN	0,NOPNT		;NO PRINT SWITCH SET?
  4732	005676	254 00 0 00 005701 		JRST	$PTKL
  4733	005677	262 17 0 00 000000 		GET	AC0		;YES ...RESTORE AC0 FROM STACK (P - 1)
  4734	005700	254 00 0 00 005714 		JRST	$PRNTX		;EXIT, DON'T PRINT
  4735
  4736	005701	201 00 0 00 003000 	$PTKL:	MOVEI	AC0,3000	;NORMAL PRINTOUT
  4737	005702	332 00 0 00 007710 		SKIPE	$PNTTY
  4738	005703	350 00 0 00 000000 		AOS	AC0		;FORCED PRINTOUT
  4739	005704	260 17 0 00 002043 		GO	$DTEXX
  4740	005705	254 00 0 00 005732 		JRST	$PNTIA
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 86
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0196

  4741					;*PRINT ROUTINE EXIT
  4742					S^;*********************************************************************^
  4743
  4744	005706	402 00 0 00 007710 	$PNTI4:	SETZM	$PNTTY		;CLEAR FORCE TO TTY FLAG
  4745
  4746	005707	200 01 0 00 007675 		MOVE	1,$PACA1	;RESTORE AC'S
  4747	005710	200 02 0 00 007676 		MOVE	2,$PACA2
  4748	005711	200 03 0 00 007677 		MOVE	3,$PACA3
  4749	005712	200 04 0 00 007700 		MOVE	4,$PACA4
  4750	005713	200 05 0 00 007701 		MOVE	5,$PACA5
  4751	005714	402 00 0 00 030217 	$PRNTX:	SETZM	PNTFLG		;CLEAR IN PRINT FLAG
  4752	005715	263 17 0 00 000000 		RTN			;RETURN 
  4753
  4754					;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
  4755					S^;*********************************************************************^
  4756
  4757	005716	262 17 0 00 000000 	$PNTIB:	GET	AC0		;RESTORE THE STACK (P - 1)
  4758	005717	332 00 0 00 030221 		SKIPE	PDISF#		;FIRST TIME PRINT DISABLED?
  4759	005720	254 00 0 00 005714 		JRST	$PRNTX		;YES	...EXIT )
  4760
  4761	005721	476 00 0 00 030221 	$PNTB1:	SETOM	PDISF		;NO ........SET IT
  4762	005722	202 01 0 00 007675 		MOVEM	1,$PACA1	;SAVE AC'S 1 - 5
  4763	005723	202 02 0 00 007676 		MOVEM	2,$PACA2
  4764	005724	202 03 0 00 007677 		MOVEM	3,$PACA3
  4765	005725	202 04 0 00 007700 		MOVEM	4,$PACA4
  4766	005726	202 05 0 00 007701 		MOVEM	5,$PACA5
  4767	005727	476 00 0 00 007710 		SETOM	$PNTTY		;SET FORCE TO TTY FLAG
  4768						MOVEI	[ASCIZ/
  4769					******
  4770					EXCEEDED ALLOWED PRINTOUTS
  4771	005730	201 00 0 00 007474 	/]
  4772	005731	254 00 0 00 006203 		JRST	$ASCPN-1	;PRINT THE WARNING & EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 87
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0197

  4773					S^;*********************************************************************^
  4774					;*PRINT ROUTINE SELECTOR
  4775					;*BASED ON "AC FIELD" = 12 - 17
  4776					S^;*********************************************************************^
  4777
  4778	005732	202 01 0 00 007675 	$PNTIA:	MOVEM	1,$PACA1#	;SAVE AC1.
  4779	005733	202 02 0 00 007676 		MOVEM	2,$PACA2#	;SAVE AC2.
  4780	005734	202 03 0 00 007677 		MOVEM	3,$PACA3#	;SAVE AC3.
  4781	005735	202 04 0 00 007700 		MOVEM	4,$PACA4#	;SAVE AC4.
  4782	005736	202 05 0 00 007701 		MOVEM	5,$PACA5#	;SAVE AC5.
  4783	005737	262 17 0 00 000000 		GET	AC0		;RESTORE AC0 FROM STACK (P - 1)
  4784	005740	402 00 0 00 007706 		SETZM	$PNT#		;CLEAR PRINT HALF WORDS FLAG
  4785	005741	200 02 0 00 000040 		MOVE	2,LUUO
  4786	005742	241 02 0 00 000015 		ROT	2,15		;GET X (AC FIELD)
  4787	005743	405 02 0 00 000017 		ANDI	2,17		;OUT OF THE UUO
  4788
  4789	005744	306 02 0 00 000017 	$PNTIC:	CAIN	2,17		;X=17?
  4790	005745	254 00 0 00 006203 		JRST	$PNTLN		;YES. PRINT ASCII LINE
  4791	005746	322 02 0 00 006204 		JUMPE	2,$ASCPN	;X=0? YES. GO PRINT 1 WORD ASCII
  4792	005747	306 02 0 00 000015 		CAIN	2,15		;X=15?
  4793	005750	254 00 0 00 006221 		JRST	$DECPN		;YES, PRINT DECIMALS )
  4794	005751	306 02 0 00 000016 		CAIN	2,16		;X=16?
  4795	005752	254 00 0 00 006220 		JRST	$DECSP		;YES, PRINT DECIMALS, LEADING SPACES 
  4796	005753	306 02 0 00 000013 		CAIN	2,13		;X=13?
  4797	005754	254 00 0 00 006171 		JRST	$PNTI3		;YES, PRINT OCTALS, 6 SP 6
  4798	005755	306 02 0 00 000012 		CAIN	2,12		;X=12?
  4799	005756	254 00 0 00 006177 		JRST	$CHRPN		;YES, PRINT CHARACTER )
  4800
  4801	005757	254 00 0 00 006147 		JRST	$PNTI1		;NONE OF THE ABOVE, PRINT OCTAL
  4802									;(AC FIELD <12 OR = TO 14)
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 88
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0198

  4803					S^;*********************************************************************^
  4804					;*SIXBIT PRINT SUBROUTINE
  4805					;*PRINTS SIXBIT WORD IN AC0
  4806					S^;*********************************************************************^
  4807
  4808					;*NORMAL PRINTOUT
  4809					S^;*********************************************************************^
  4810
  4811	005760	261 17 0 00 000001 	$PNTSX:	PUT	1		;SAVE AC1 ON STACK (P + 1)
  4812	005761	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  4813	005762	201 00 0 00 000000 		MOVEI	0,0
  4814	005763	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  4815	005764	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  4816	005765	037 12 0 00 000000 		PNTCHR			;PRINT IT
  4817	005766	326 01 0 00 005762 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  4818	005767	262 17 0 00 000001 		GET	1		;RESTORE AC1 FROM THE STACK (P - 1)
  4819	005770	263 17 0 00 000000 		RTN			;EXIT
  4820
  4821					;*FORCED PRINTOUT
  4822					S^;*********************************************************************^
  4823
  4824	005771	261 17 0 00 000001 	$PTSXF:	PUT	1		;SAVE AC1 ON THE STACK (P + 1)
  4825	005772	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  4826	005773	201 00 0 00 000000 		MOVEI	0,0
  4827	005774	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  4828	005775	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  4829	005776	037 12 0 00 000001 		PNTCHF			;PRINT
  4830	005777	326 01 0 00 005773 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  4831	006000	262 17 0 00 000001 		GET	1		;FROM THE STACK (P - 1)
  4832	006001	263 17 0 00 000000 		RTN			;EXIT 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 89
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0199

  4833					S^;*********************************************************************^
  4834					;*SIXBIT MESSAGE PRINT ROUTINE
  4835					;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
  4836					;*"BACKARROW" (77) SIGNIFIES END OF TEXT
  4837					;*"UPARROW" (76) SIGNIFIES CR/LF
  4838					;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
  4839					S^;*********************************************************************^
  4840
  4841	006002	261 17 0 00 000005 	$PSIXF:	PUT	5
  4842	006003	474 05 0 00 000000 		SETO	5,		;SET FORCED PRINTING FLAG
  4843	006004	254 00 0 00 006007 		JRST	.+3
  4844
  4845	006005	261 17 0 00 000005 	$PSIX:	PUT	5
  4846	006006	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTING
  4847	006007	261 17 0 00 000001 		PUT	1
  4848	006010	261 17 0 00 000002 		PUT	2
  4849	006011	261 17 0 00 000003 		PUT	3
  4850	006012	261 17 0 00 000004 		PUT	4
  4851
  4852	006013	550 04 0 00 000000 		HRRZ	4,0		;MESSAGE ADDRESS TO AC4
  4853
  4854	006014	201 03 0 00 000006 	$PSIX1:	MOVEI	3,6		;6 = NUM OF 6BIT CHAR PER WORD
  4855	006015	200 01 0 04 000000 		MOVE	1,(4)		;GET FIRST/NEXT WORD OF MESSAGE
  4856
  4857	006016	400 02 0 00 000000 	$PSIX2:	SETZ	2,
  4858	006017	245 01 0 00 000006 		ROTC	1,6		;C(AC1) = CHAR TO BE PRINTED
  4859	006020	306 02 0 00 000077 		CAIN	2,77
  4860	006021	254 00 0 00 006036 		JRST	$PSIX5		;"BACKARROW", DONE
  4861	006022	306 02 0 00 000076 		CAIN	2,76
  4862	006023	254 00 0 00 006033 		JRST	$PSIX4		;"UPARROW", CR/LF
  4863	006024	306 02 0 00 000075 		CAIN	2,75
  4864	006025	201 02 0 00 000151 		MOVEI	2,151		;"BRACKET", CHANGE TO TAB (151+40=11)
  4865	006026	201 00 0 02 000040 		MOVEI	0,40(2)		;CHANGE TO ASCII
  4866						JUMPN	5,[PNTCHF
  4867	006027	326 05 0 00 007504 			JRST	.+2]	;FORCED PRINT
  4868	006030	037 12 0 00 000000 		PNTCHR
  4869	006031	366 03 0 00 006016 	$PSIX3:	SOJN	3,$PSIX2	;PRINTED ALL CHARS FROM THIS WORD ?
  4870	006032	344 04 0 00 006014 		AOJA	4,$PSIX1	;YES, DO NEXT WORD
  4871
  4872					$PSIX4:	JUMPN	5,[PCRLF
  4873	006033	326 05 0 00 007506 			JRST	.+2]
  4874	006034	037 00 0 00 030242 		PCRL			;PRINT CR/LF
  4875	006035	254 00 0 00 006031 		JRST	$PSIX3
  4876
  4877	006036	262 17 0 00 000004 	$PSIX5:	GET	4
  4878	006037	262 17 0 00 000003 		GET	3
  4879	006040	262 17 0 00 000002 		GET	2
  4880	006041	262 17 0 00 000001 		GET	1
  4881	006042	262 17 0 00 000005 		GET	5
  4882	006043	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 90
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0200

  4883					S^;*********************************************************************^
  4884					;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
  4885					;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
  4886					;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
  4887					S^;*********************************************************************^
  4888
  4889	006044	261 17 0 00 000005 	$POCSF:	PUT	5
  4890	006045	474 05 0 00 000000 		SETO	5,		;FORCED PRINTOUT
  4891	006046	254 00 0 00 006051 		JRST	.+3
  4892
  4893	006047	261 17 0 00 000005 	$POCS:	PUT	5
  4894	006050	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTOUT
  4895	006051	261 17 0 00 000001 		PUT	1
  4896	006052	261 17 0 00 000002 		PUT	2
  4897	006053	261 17 0 00 000003 		PUT	3
  4898	006054	261 17 0 00 000004 		PUT	4
  4899
  4900	006055	200 02 0 00 000000 		MOVE	2,0
  4901	006056	325 02 0 00 006063 		JUMPGE	2,$POCS1	;IS NUMBER NEGATIVE ?
  4902	006057	201 00 0 00 000055 		MOVEI	"-"
  4903						JUMPN	5,[PNTCHF
  4904	006060	326 05 0 00 007510 			JRST	.+2]
  4905	006061	037 12 0 00 000000 		PNTCHR			;YES, PRINT MINUS SIGN
  4906	006062	210 02 0 00 000002 		MOVN	2,2		;MAKE NUMBER POSITIVE
  4907
  4908	006063	400 04 0 00 000000 	$POCS1:	SETZ	4,
  4909	006064	403 03 0 00 000001 		SETZB	3,1
  4910	006065	322 02 0 00 006073 		JUMPE	2,$POCS3	;IF NUMBER 0, PRINT 1 ZERO
  4911
  4912	006066	201 03 0 00 000014 		MOVEI	3,^D12		;PRINT UP TO 12 DIGITS
  4913	006067	400 01 0 00 000000 	$POCS2:	SETZ	1,
  4914	006070	246 01 0 00 000003 		LSHC	1,3
  4915	006071	322 01 0 00 006105 		JUMPE	1,$POCS5	;IS THIS DIGIT ZERO ?
  4916	006072	474 04 0 00 000000 		SETO	4,		;NO, SET NON-ZERO DIGIT FLAG
  4917	006073	201 00 0 01 000060 	$POCS3:	MOVEI	"0"(1)		;MAKE ASCII NUMBER
  4918						JUMPN	5,[PNTCHF
  4919	006074	326 05 0 00 007512 			JRST	.+2]
  4920	006075	037 12 0 00 000000 		PNTCHR			;PRINT DIGIT
  4921
  4922	006076	367 03 0 00 006067 	$POCS4:	SOJG	3,$POCS2	;ALL DONE ?
  4923	006077	262 17 0 00 000004 		GET	4
  4924	006100	262 17 0 00 000003 		GET	3
  4925	006101	262 17 0 00 000002 		GET	2
  4926	006102	262 17 0 00 000001 		GET	1
  4927	006103	262 17 0 00 000005 		GET	5
  4928	006104	263 17 0 00 000000 		RTN
  4929
  4930	006105	322 04 0 00 006076 	$POCS5:	JUMPE	4,$POCS4	;PRINTED NON-ZERO DIGIT ?
  4931	006106	254 00 0 00 006073 		JRST	$POCS3		;YES, PRINT ZEROS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 91
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0201

  4932					S^;*********************************************************************^
  4933					;*DF10 CONTROL WORD PRINT ROUTINE
  4934					;*PRINTS WORD IN AC0
  4935					;*DF22F = 0, ######  ######  ,18 BIT DF10
  4936					;*       -1, ##### ########  ,22 BIT DF10
  4937					S^;*********************************************************************^
  4938
  4939	006107	202 01 0 00 007713 	$PNTCW:	MOVEM	1,$PTCA#	;SAVE AC1
  4940	006110	201 01 0 00 000000 		MOVEI	1,0		;NORMAL PRINTOUT
  4941	006111	202 02 0 00 007714 		MOVEM	2,$PTCB#	;SAVE AC2
  4942	006112	200 02 0 00 000000 		MOVE	2,0
  4943	006113	336 00 0 00 030142 		SKIPN	DF22F#		;22 OR 18 BIT DF10 ?
  4944	006114	254 00 0 00 006130 		JRST	$PNTC2
  4945	006115	242 00 0 00 777753 		LSH	0,-^D21		;NEW 22 BIT DF10
  4946	006116	620 00 0 00 000001 		TRZ	0,1
  4947						JUMPN	1,[PNT5F
  4948	006117	326 01 0 00 007514 			JRST .+2]
  4949	006120	037 05 0 00 000000 		PNT5			;PRINT WORD COUNT, 14 BITS
  4950	006121	200 00 0 00 000002 		MOVE	0,2
  4951	006122	621 00 0 00 777760 		TLZ	0,777760
  4952						JUMPN	1,[PNTADF
  4953	006123	326 01 0 00 007516 			JRST .+2]
  4954	006124	037 10 0 00 000000 		PNTADR			;PRINT ADDRESS, 22 BITS
  4955	006125	200 02 0 00 007714 	$PNTC3:	MOVE	2,$PTCB
  4956	006126	200 01 0 00 007713 		MOVE	1,$PTCA
  4957	006127	263 17 0 00 000000 		RTN			;EXIT
  4958
  4959	006130	554 00 0 00 000000 	$PNTC2:	HLRZ			;18 BIT DF10
  4960						JUMPN	1,[PNT6F
  4961	006131	326 01 0 00 007520 			JRST .+2]
  4962	006132	037 06 0 00 000000 		PNT6			;PRINT WORD COUNT, 18 BITS
  4963	006133	201 00 0 00 000040 		MOVEI	40
  4964						JUMPN	1,[PNTCHF
  4965	006134	326 01 0 00 007522 			JRST .+2]
  4966	006135	037 12 0 00 000000 		PNTCHR			;EXTRA SPACE
  4967	006136	550 00 0 00 000002 		HRRZ	0,2
  4968						JUMPN	1,[PNT6F
  4969	006137	326 01 0 00 007524 			JRST .+2]
  4970	006140	037 06 0 00 000000 		PNT6			;PRINT ADDRESS, 18 BITS
  4971	006141	254 00 0 00 006125 		JRST	$PNTC3
  4972
  4973	006142	202 01 0 00 007713 	$PNTCF:	MOVEM	1,$PTCA		;SAVE AC1
  4974									;FORCED PRINTOUT
  4975	006143	200 01 0 00 006142 		MOVE	1,$PNTCF
  4976	006144	202 01 0 00 006107 		MOVEM	1,$PNTCW	;SETUP RETURN
  4977	006145	201 01 0 00 000001 		MOVEI	1,1		;FORCED PRINT INDEX
  4978	006146	254 00 0 00 006111 		JRST	$PNTCW+2	;REST AS ABOVE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 92
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0202

  4979					S^;*********************************************************************^
  4980					;*OCTAL PRINTOUT ROUTINE
  4981					;*PRINTS NUMBER IN AC0
  4982					S^;*********************************************************************^
  4983
  4984	006147	200 03 0 00 000002 	$PNTI1:	MOVE	3,2		;MOVE X INTO AC3.
  4985	006150	241 00 0 00 777775 		ROT	0,-3		;ROT OCTAL NUM 3 PLACES
  4986	006151	366 03 0 00 006150 		SOJN	3,.-1		;X AMOUNT OF TIMES.
  4987
  4988	006152	201 01 0 00 000006 	$PNTI2:	MOVEI	1,6		;PUT 6 INTO AC1 SO THAT
  4989	006153	245 00 0 00 000003 		ROTC	0,3		;C(AC1) AFTER THE ROTC WILL BE 60
  4990	006154	265 03 0 00 006251 		JSP	3,$TOUT		;PLUS NUMBER TO BE PRINTED
  4991	006155	366 02 0 00 006152 		SOJN	2,$PNTI2	;SUB 1 FROM X...PRINT UNTIL X=0.
  4992	006156	202 01 0 00 007707 		MOVEM	1,$PNTSV#	;SAVE NUMBER
  4993	006157	336 00 0 00 030223 		SKIPN	PNTSPC
  4994	006160	254 00 0 00 006163 		JRST	.+3
  4995	006161	201 01 0 00 000040 		MOVEI	1,40		;AT THIS POINT WE HAVE PRINTED
  4996	006162	265 03 0 00 006251 		JSP	3,$TOUT		;X AMOUNT OF NUMBER(S) AND NOW A SPACE
  4997	006163	336 00 0 00 007706 		SKIPN	$PNT#		;PRINT 6 SP 6 FLAG SET?
  4998	006164	254 00 0 00 005706 		JRST	$PNTI4		;NO, EXIT )
  4999	006165	200 01 0 00 007707 		MOVE	1,$PNTSV	;RESTORE NUMBER
  5000	006166	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR 2ND HALF
  5001	006167	402 00 0 00 007706 		SETZM	$PNT		;CLEAR PRINT SPACE FLAG
  5002	006170	254 00 0 00 006152 		JRST	$PNTI2		;PRINT REST OF NUMBER
  5003
  5004	006171	201 03 0 00 000014 	$PNTI3:	MOVEI	3,14		;SETUP FOR LH WORD
  5005	006172	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR FIRST HALF
  5006	006173	476 00 0 00 007706 		SETOM	$PNT		;SET PRINT 6 SP 6 FLAG
  5007	006174	476 00 0 00 030223 		SETOM	PNTSPC		;SET THE PRINT SPACE FLAG
  5008	006175	254 00 0 00 006150 		JRST	$PNTI1+1	;PRINT FIRST HALF NUMBER
  5009	006176	254 00 0 00 005706 		JRST	$PNTI4		;EXIT
  5010
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 93
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0203

  5011					S^;*********************************************************************^
  5012					;*ASCII/CHARACTER PRINTOUT ROUTINE
  5013					;*PRINTS CHAR IN LOWER 7 BITS OF AC0
  5014					S^;*********************************************************************^
  5015
  5016	006177	405 00 0 00 000177 	$CHRPN:	ANDI	0,177		;STRIP CHAR TO 7 BITS
  5017	006200	200 01 0 00 000000 		MOVE	1,0
  5018	006201	265 03 0 00 006251 		JSP	3,$TOUT		;PRINT A CHARACTER
  5019	006202	254 00 0 00 005706 		JRST	$PNTI4		;LEAVE 
  5020
  5021					S^;*********************************************************************^
  5022					;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
  5023					S^;*********************************************************************^
  5024
  5025	006203	476 00 0 00 007706 	$PNTLN:	SETOM	$PNT#		;SET PRINT MORE THAN 1 WORD FLAG.
  5026
  5027	006204	202 00 0 00 007712 	$ASCPN:	MOVEM	0,$POINT#	;SAVE ADDRESS OF ASCII MESSAGE.
  5028	006205	201 02 0 00 000005 	$ASCP1:	MOVEI	2,5		;5 = NUM OF ASCII CHAR. IN A WORD.
  5029	006206	200 00 1 00 007712 		MOVE	0,@$POINT	;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
  5030
  5031	006207	400 01 0 00 000000 	$ASCP2:	SETZ	1,		;CLEAR AC1.
  5032	006210	245 00 0 00 000007 		ROTC	0,7		;C(AC1) = CHAR TO BE PRINTED.
  5033	006211	322 01 0 00 005706 		JUMPE	1,$PNTI4	;CHAR = NULL?..NO MORE CHAR..EXIT
  5034	006212	265 03 0 00 006251 		JSP	3,$TOUT		;PRINT A CHAR
  5035	006213	366 02 0 00 006207 		SOJN	2,$ASCP2	;PNT ALL CHAR FROM THIS WORD?
  5036	006214	350 00 0 00 007712 		AOS	$POINT		;YES. INC TO GET NEXT WORD.
  5037	006215	336 00 0 00 007706 		SKIPN	$PNT		;PNT MORE THAN ONE WORD FLAG SET?
  5038	006216	254 00 0 00 005706 		JRST	$PNTI4		;NO..LEAVE
  5039	006217	254 00 0 00 006205 		JRST	$ASCP1		;YES...RETURN TO PNT NEXT WORD.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 94
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0204

  5040					S^;*********************************************************************^
  5041					;*DECIMAL PRINTOUT ROUTINE
  5042					;*PRINTS NUMBER IN AC0
  5043					S^;*********************************************************************^
  5044
  5045	006220	476 00 0 00 007706 	$DECSP:	SETOM	$PNT		;SET LEADING SPACES PRINT CONTROL
  5046
  5047	006221	325 00 0 00 006225 	$DECPN:	JUMPGE	0,.+4		;IS NUMBER NEGATIVE ?
  5048	006222	201 01 0 00 000055 		MOVEI	1,"-"		;YES, PRINT MINUS SIGN
  5049	006223	265 03 0 00 006251 		JSP	3,$TOUT
  5050	006224	210 00 0 00 000000 		MOVN	0,0		;MAKE NUMBER POSITIVE
  5051	006225	260 17 0 00 006227 		GO	$RADIX		;DECIMAL-ASCII CONVERSION & PRINT CHARS
  5052	006226	254 00 0 00 005706 		JRST	$PNTI4		;EXIT
  5053
  5054	006227	200 02 0 00 030264 	$RADIX:	MOVE	2,RADLSC	;SETUP DIGIT COUNTER
  5055	006230	246 00 0 00 777735 		LSHC	0,-^D35		;SHIFT RIGHT 35 BITS INTO AC1
  5056	006231	242 01 0 00 777777 		LSH	1,-1		;VACATE AC1 SIGN BIT
  5057
  5058	006232	234 00 0 00 030262 	$DCCMP:	DIV	0,RADIX		;DIVIDE DOUBLE LENGTH INTERGER BY 10
  5059	006233	506 01 0 17 000000 		HRLM	1,(17)		;SAVE DIGIT
  5060	006234	370 00 0 00 000002 		SOS	2		;COUNT DIGIT
  5061	006235	322 00 0 00 006243 		JUMPE	0,$LDSPS	;ALL DIGITS FORMED?
  5062	006236	260 17 0 00 006230 		GO	$RADIX+1	;NO, COMPUTE NEXT ONE
  5063
  5064	006237	554 01 0 17 000000 	$DECP1:	HLRZ	1,(17)		;YES, RETRIEVE DIGIT
  5065	006240	271 01 0 00 000060 		ADDI	1,60		;CONVERT TO ASCII
  5066	006241	265 03 0 00 006251 		JSP	3,$TOUT		;TYPE-OUT A DIGIT
  5067	006242	263 17 0 00 000000 		RTN			;GET NEXT/EXIT
  5068
  5069	006243	336 00 0 00 007706 	$LDSPS:	SKIPN	$PNT		;LEADING SPACES PRINT SET?
  5070	006244	254 00 0 00 006237 		JRST	$DECP1		;NO ...GO PRINT
  5071									;YES ...DO IT
  5072	006245	361 02 0 00 006237 	$DCSPS:	SOJL	2,$DECP1	;SPACES COMPLETE ?  YES
  5073	006246	200 01 0 00 030263 		MOVE	1,RADLSP	;NO, PRINT LEADING SPACE
  5074	006247	265 03 0 00 006251 		JSP	3,$TOUT		;TYPE OUT THE SPACE
  5075	006250	254 00 0 00 006245 		JRST	.-3		;CHECK FOR NEXT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 97
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0205

  5076					SUBTTL	*SUBRTN*  CHARACTER OUTPUT ROUTINES
  5077
  5078					S^;*********************************************************************^
  5079					;*OUTPUT TERMINATION CONTROL ROUTINE
  5080					S^;*********************************************************************^
  5081
  5082	006251	202 00 0 00 007702 	$TOUT:	MOVEM	0,$PACB0#	;SAVE AC0.
  5083	006252	202 01 0 00 007711 		MOVEM	1,$PNTYC#	;SAVE CHARACTER TO BE PRINTED
  5084	006253	332 00 0 00 030037 		SKIPE	USER		;USER MODE?
  5085	006254	254 00 0 00 006307 		JRST	$TOUTB		;YES - GO  OUTPUT 
  5086	006255	332 00 0 00 030041 		SKIPE	KLFLG		;KL10 CPU ?
  5087	006256	254 00 0 00 006307 		JRST	$TOUTB		;YES  ...DON'T CHECK FOR TYPE INS 
  5088
  5089	006257	332 00 0 00 030222 	$TOUTY:	SKIPE	PNTINH		;INHIBIT INPUT CHECKS ?
  5090	006260	254 00 0 00 006307 		JRST	$TOUTB		;YES - GO OUTPUT 
  5091
  5092					;LOOK FOR TTY TYPE INS
  5093
  5094	006261	7 120 34 0 00 000040 	$TOUTZ:	CONSO	TTY,40		;KEY STRUCK ?
  5095	006262	254 00 0 00 006307 		JRST	$TOUTB		;NO  ...GO OUTPUT 
  5096	006263	7 120 04 0 00 000000 		DATAI	TTY,0		;YES- GET IT
  5097	006264	405 00 0 00 000177 		ANDI	0,177		;STRIP IT
  5098
  5099	006265	306 00 0 00 000004 	$TOUTX:	CAIN	0,004		;IS IT ^D ?
  5100	006266	254 00 0 00 002404 		JRST	$DDTENT		;YES, GO TO DDT
  5101	006267	306 00 0 00 000003 		CAIN	0,003		;IS IT ^C ?
  5102	006270	254 00 0 00 006370 		JRST	$TUTX2		;YES, TERMINATE THE OUTPUT
  5103	006271	260 17 0 00 005262 		GO	$TALT2		;CHECK FOR ALTMODE INPUT
  5104	006272	254 00 0 00 006274 		JRST	$TOUTW		;NO
  5105	006273	254 00 0 00 006374 		JRST	$TUTX3		;YES, GO TO USER'S ROUTINE
  5106
  5107	006274	302 00 0 00 000017 	$TOUTW:	CAIE	0,017		;IS IT ^O ?
  5108	006275	254 00 0 00 006304 		JRST	$TOUTV		;NO
  5109	006276	201 00 0 00 000136 	  	MOVEI	0,136		;"^"
  5110	006277	260 17 0 00 006506 		GO	$TYOUT
  5111	006300	201 00 0 00 000117 		MOVEI	0,117		;"O"
  5112	006301	260 17 0 00 006506 		GO	$TYOUT
  5113	006302	462 00 0 00 007715 		SETCMM	$PTINH		;STOP OUTPUT NEXT TIME AROUND
  5114	006303	254 00 0 00 006307 		JRST	$TOUTB	 	;GO OUTPUT 
  5115
  5116	006304	302 00 0 00 000023 	$TOUTV:	CAIE	0,023		;IS IT XOFF (^S) ?
  5117	006305	254 00 0 00 006307 		JRST	$TOUTB		;NO
  5118	006306	476 00 0 00 007634 		SETOM	XOFFLAG		;YES, SET FLAG, STOP BEFORE CR
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 98
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0206

  5119					S^;*********************************************************************^
  5120					;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
  5121					S^;*********************************************************************^
  5122
  5123	006307	200 00 0 00 030046 	$TOUTB:	MOVE	AC0,CONSW	;DATA SWITCHES INTO AC0
  5124	006310	350 00 0 00 007650 		AOS	$CARCT#		;INC CHAR CNTR.
  5125	006311	306 01 0 00 000007 		CAIN	1,7		;CHAR A BELL ?
  5126	006312	402 00 0 00 007715 		SETZM	$PTINH		;YES, CLEAR PRINT INHIBIT
  5127	006313	302 01 0 00 000015 		CAIE	1,15		;CHAR A CR?
  5128	006314	254 00 0 00 006322 		JRST	$TOUB1		;NO-CHK FOR LF
  5129	006315	332 00 0 00 007634 		SKIPE	XOFFLAG		;XOFF BEEN TYPED ?
  5130	006316	260 17 0 00 006340 		GO	XONCHK		;YES, WAIT FOR XON TO CONTINUE
  5131	006317	336 00 0 00 007715 		SKIPN	$PTINH		;DON'T COUNT ^O'ED LINES
  5132	006320	350 00 0 00 030220 		AOS	PNTENB		;COUNT LINES, TILL NO MORE
  5133	006321	402 00 0 00 007650 		SETZM	$CARCT		;CLR CHAR CNTR.
  5134
  5135	006322	306 01 0 00 000012 	$TOUB1:	CAIN	1,12		;IS CHAR A LF?
  5136	006323	402 00 0 00 007650 		SETZM	$CARCT		;YES-CLR CHAR CNTR.
  5137	006324	332 00 0 00 007710 		SKIPE	$PNTTY		;NO-IS PRINT FORCED ON?
  5138	006325	254 00 0 00 006330 		JRST	$TOUB2		;YES-DON'T CHECK NON-PNT SW
  5139	006326	603 00 0 00 040000 		TLNE	0,NOPNT		;IS NON PNT SWITCH ON?
  5140	006327	254 00 0 03 000000 		JRST	(3)		;YES, RETURN
  5141
  5142	006330	336 00 0 00 030037 	$TOUB2:	SKIPN	USER		;EXEC MODE ?
  5143	006331	254 00 0 00 006376 		JRST	$TOUTC		;YES-SEND CHAR EXEC MODE 
  5144	006332	265 04 0 00 006656 		JSP	4,$TOUT2	;NO-.SEND CHARACTER USER MODE 
  5145
  5146	006333	332 00 0 00 030240 	$TOUB3:	SKIPE	USRLFF#		;NEED USER LF FILLERS ?
  5147	006334	254 00 0 00 006357 		JRST	$USRFL		;YES
  5148	006335	332 00 0 00 030241 		SKIPE	USRCRF#		;NEED USER CR FILLERS ?
  5149	006336	254 00 0 00 006353 		JRST	$USRFC		;YES
  5150	006337	254 00 0 00 006442 		JRST	$TOUTA		;NO-BACK TO PRINT ROUTINE
  5151
  5152	006340	7 120 34 0 00 000040 	XONCHK:	CONSO	TTY,40		;ANY KEY STRUCK ?
  5153	006341	254 00 0 00 006340 		JRST	.-1		;NO, WAIT
  5154	006342	7 120 04 0 00 000000 		DATAI	TTY,0		;YES, GET THE CHARACTER
  5155	006343	405 00 0 00 000177 		ANDI	177
  5156	006344	306 00 0 00 000003 		CAIN	003		;CONTROL C ?
  5157	006345	254 00 0 00 006370 		JRST	$TUTX2		;YES, ABORT
  5158	006346	302 00 0 00 000021 		CAIE	021		;XON (^Q) ?
  5159	006347	254 00 0 00 006340 		JRST	XONCHK		;NO
  5160	006350	402 00 0 00 007634 		SETZM	XOFFLAG		;YES, CLEAR FLAG & CONTINUE PRINTING
  5161	006351	402 00 0 00 007715 		SETZM	$PTINH
  5162	006352	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 99
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0207

  5163					;*USER MODE LF & CR FILLERS
  5164					S^;*********************************************************************^
  5165
  5166	006353	302 01 0 00 000015 	$USRFC:	CAIE	1,15		;CR ?
  5167	006354	254 00 0 00 006442 		JRST	$TOUTA		;NO-RETURN TO PRINT ROUTINE 
  5168	006355	200 05 0 00 030241 		MOVE	5,USRCRF	;SEND FILLERS FOR CR
  5169	006356	254 00 0 00 006362 		JRST	$USRF1		;DEPENDING ON 'USRCRF'
  5170
  5171	006357	302 01 0 00 000012 	$USRFL:	CAIE	1,12		;LF ?
  5172	006360	254 00 0 00 006442 		JRST	$TOUTA		;NO-RETURN TO PRINT 
  5173	006361	200 05 0 00 030240 		MOVE	5,USRLFF	;SEND FILLERS FOR LF
  5174	006362	361 05 0 00 006442 	$USRF1:	SOJL	5,$TOUTA	;DEPENDING ON 'USRLFF'
  5175	006363	201 01 0 00 000001 		MOVEI	1,001		;^A
  5176	006364	265 04 0 00 006656 		JSP	4,$TOUT2	;SEND CHARACTER 
  5177	006365	254 00 0 00 006362 		JRST	$USRF1
  5178
  5179					;*ALT-MODE TRANSFER TO USER ROUTINE
  5180					S^;*********************************************************************^
  5181
  5182	006366	202 00 0 00 000130 		MOVEM	0,JOBOPC	;2-TERMINATED IN JOBOPC
  5183	006367	254 00 1 00 030062 		JRST	@CNTLC		;3-TERMINATE
  5184	006370	265 00 0 00 006366 	$TUTX2:	JSP	0,.-2		;1-SAVE PC WHERE
  5185	006371	254 00 0 00 006307 		JRST	$TOUTB		;4-HERE IF CONTINUED
  5186	006372	202 00 0 00 000130 		MOVEM	0,JOBOPC	;2-TERMINATED IN JOBOPC
  5187	006373	254 00 1 00 030063 		JRST	@ALTMGO		;3-TERMINATE
  5188	006374	265 00 0 00 006372 	$TUTX3:	JSP	0,.-2		;1-SAVE PC WHERE
  5189	006375	254 00 0 00 006307 		JRST	$TOUTB		;4-HERE IF CONTINUED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 100
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0208

  5190					S^;*********************************************************************^
  5191					;*EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE
  5192					S^;*********************************************************************^
  5193
  5194	006376	603 00 0 00 020000 	$TOUTC:	TLNE	0,PNTLPT	;PRINT ON LINE PRINTER ?
  5195	006377	254 00 0 00 006444 		JRST	$TOUT1		;YES 
  5196
  5197	006400	332 00 0 00 007715 	$PNTY1:	SKIPE	$PTINH		;NO, TYPE-OUT INHIBIT ?
  5198	006401	254 00 0 00 006442 		JRST	$TOUTA		;YES-EXIT 
  5199	006402	332 00 0 00 030041 		SKIPE	KLFLG		;KL10 ?
  5200	006403	254 00 0 00 006422 		JRST	$PNTY2		;YES
  5201
  5202	006404	332 00 0 00 030234 		SKIPE	$CRLF		;NO, WANT FREE CRLF ?
  5203	006405	254 00 0 00 006422 		JRST	$PNTY2		;NO
  5204	006406	306 01 0 00 000007 		CAIN	1,7		;YES, BELL, NO FREE CRLF'S?
  5205	006407	254 00 0 00 006422 		JRST	$PNTY2		;NO
  5206	006410	306 01 0 00 000026 		CAIN	1,26		;YES, NULL, NO FREE CRLF'S ?
  5207	006411	254 00 0 00 006422 		JRST	$PNTY2		;NO
  5208	006412	200 01 0 00 007650 		MOVE	1,$CARCT	;GET CHAR COUNTER
  5209	006413	307 01 0 00 000110 		CAIG	1,^D72		;DONE FULL LINE, 72 CHARS ?
  5210	006414	254 00 0 00 006422 		JRST	$PNTY2		;NO-CONTINUE OUTPUT
  5211	006415	201 00 0 00 000015 		MOVEI	0,15		;YES-TERMINATE OUTPUT
  5212	006416	260 17 0 00 006506 		GO	$TYOUT		;CR OUT
  5213	006417	201 00 0 00 000012 		MOVEI	0,12
  5214	006420	260 17 0 00 006506 		GO	$TYOUT		;LF OUT
  5215	006421	402 00 0 00 007650 		SETZM	$CARCT		;CLEAR CHAR COUNTER
  5216
  5217	006422	200 00 0 00 007711 	$PNTY2:	MOVE	0,$PNTYC	;RESTORE CHAR (SAVED @ $TOUT)
  5218	006423	336 00 0 00 030041 		SKIPN	KLFLG		;KL10 - LEAVE TABS ALONE
  5219	006424	332 00 0 00 030235 		SKIPE	$TABF		;TAB CONV INHIBITED ?
  5220	006425	254 00 0 00 006430 		JRST	.+3		;YES, DON'T DO IT
  5221	006426	306 00 0 00 000011 		CAIN	0,11		;IS CHAR A TAB?
  5222	006427	254 00 0 00 006466 		JRST	$TABS		;YES. TURN TAB INTO SPACES.
  5223	006430	332 00 0 00 030236 		SKIPE	$FFF		;FORM FEED CONV INHIBITED ?
  5224	006431	254 00 0 00 006434 		JRST	.+3		;YES, DON'T DO IT
  5225	006432	306 00 0 00 000014 		CAIN	0,14		;IS CHAR A FF ?
  5226	006433	254 00 0 00 006501 		JRST	$FFEED		;YES, SUBSTITUTE 8 LF'S
  5227	006434	332 00 0 00 030237 		SKIPE	$VTF		;VERT TAB CONV INHIBITED ?
  5228	006435	254 00 0 00 006440 		JRST	$PNTY3		;YES, DON'T DO IT
  5229	006436	306 00 0 00 000013 		CAIN	0,13		;IS CHAR A VT ?
  5230	006437	254 00 0 00 006477 		JRST	$VTAB		;YES, SUBSTITUTE 4 LF'S
  5231
  5232	006440	260 17 0 00 006506 	$PNTY3:	GO	$TYOUT
  5233	006441	254 00 0 00 006442 		JRST	$TOUTA		;RETURN 
  5234
  5235					;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
  5236					S^;*********************************************************************^
  5237	006442	200 00 0 00 007702 	$TOUTA:	MOVE	AC0,$PACB0	;RESTORE AC0
  5238	006443	254 00 0 03 000000 		JRST	(3)		;RETURN TO PRINT ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 101
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0209

  5239					S^;*********************************************************************^
  5240					;*EXEC MODE LPT OUTPUT
  5241					S^;*********************************************************************^
  5242
  5243	006444	306 01 0 00 000007 	$TOUT1:	CAIN	1,7		;NO BELLS TO LPT
  5244	006445	254 00 0 00 006400 		JRST	$PNTY1
  5245	006446	306 01 0 00 000026 		CAIN	1,26		;NO NULLS TO LPT
  5246	006447	254 00 0 00 006400 		JRST	$PNTY1
  5247	006450	242 01 0 00 000001 		LSH	1,1		;C(AC1) HAS TO BE LEFT JUSTIFIED.
  5248	006451	405 01 0 00 000376 		ANDI	1,376		;CLEAR PARITY BIT
  5249	006452	7 124 14 0 00 000001 		DATAO	LPT,1		;PRINT CHAR ONTO LPT.
  5250	006453	200 01 0 00 007526 		MOVE	1,[^D<<1000*2000>/7>]	;ABOUT TWO SECONDS
  5251	006454	7 124 34 0 00 000100 		CONSO	LPT,100		;LPT DONE?
  5252	006455	367 01 0 00 006454 		SOJG	1,.-1		;NO.
  5253	006456	327 01 0 00 006462 		JUMPG	1,.+4		;IF LPT HUNG, CLEAR LPT PRINT
  5254	006457	200 00 0 00 030046 		MOVE	0,CONSW		;FOR THIS PRINT ENTRY
  5255	006460	621 00 0 00 020000 		TLZ	0,PNTLPT
  5256	006461	202 00 0 00 030046 		MOVEM	0,CONSW
  5257	006462	336 00 0 00 007710 		SKIPN	$PNTTY		;SKIP IF MSG ALSO FORCED TO TTY
  5258	006463	327 01 0 00 006442 		JUMPG	1,$TOUTA	;RETURN IF LPT NOT HUNG, ELSE ALL TO TTY
  5259	006464	200 01 0 00 007711 		MOVE	1,$PNTYC
  5260	006465	254 00 0 00 006400 		JRST	$PNTY1		;GO SET UP MORE OUTPUT, IF ANY
  5261
  5262
  5263					;*TELETYPE TABS CONVERSION
  5264					S^;*********************************************************************^
  5265
  5266	006466	370 01 0 00 007650 	$TABS:	SOS	1,$CARCT	;PUT CHAR CNT - 1 TAB INTO AC1.
  5267	006467	275 01 0 00 000010 		SUBI	1,10		;DIVIDE
  5268	006470	325 01 0 00 006467 		JUMPGE	1,.-1		;BY 10.
  5269	006471	210 01 0 00 000001 		MOVN	1,1		;C(AC1) NOW = NO. OF SPACES TO PNT.
  5270
  5271	006472	201 00 0 00 000040 	$TABS1:	MOVEI	0,40		;PRINT SPACES
  5272	006473	260 17 0 00 006506 		GO	$TYOUT		;SEND A SPACE 
  5273	006474	350 00 0 00 007650 		AOS	$CARCT		;INCREMENT CHAR CNTR.
  5274	006475	367 01 0 00 006472 		SOJG	1,$TABS1	;DECREMENT SPACES CNTR.
  5275	006476	254 00 0 00 006442 		JRST	$TOUTA		;RETURN 
  5276
  5277					;*TELETYPE FF & VT CONVERSION
  5278					S^;*********************************************************************^
  5279
  5280	006477	201 01 0 00 000004 	$VTAB:	MOVEI	1,4
  5281	006500	334 00 0 00 000000 		SKIPA
  5282
  5283	006501	201 01 0 00 000010 	$FFEED:	MOVEI	1,^D8
  5284	006502	201 00 0 00 000012 		MOVEI	0,12
  5285	006503	260 17 0 00 006506 		GO	$TYOUT		;SEND LF'S 
  5286	006504	367 01 0 00 006502 		SOJG	1,$FFEED+1
  5287	006505	254 00 0 00 006442 		JRST	$TOUTA		;RETURN 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 102
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0210

  5288					S^;*********************************************************************^
  5289					;*EXEC MODE CHARACTER OUTPUT
  5290					S^;*********************************************************************^
  5291
  5292	006506	332 00 0 00 030041 	$TYOUT:	SKIPE	KLFLG		;KL10 ?
  5293	006507	254 00 0 00 006544 		JRST	$TYKL		;YES-SEND DATA VIA DTE-20
  5294
  5295					;*KA/KI EXEC MODE TELETYPE OUTPUT ROUTINE (DIRECT)
  5296					S^;*********************************************************************^
  5297
  5298	006510	202 00 0 00 007734 	$TYOU1:	MOVEM	AC0,$TYAC0#	;SAVE AC0
  5299	006511	202 01 0 00 007735 		MOVEM	1,$TYAC1#	;SAVE AC1 & AC2
  5300	006512	202 02 0 00 007736 		MOVEM	2,$TYAC2#
  5301	006513	405 00 0 00 000177 		ANDI	0,177		;STRIP TO 7 BITS
  5302	006514	306 00 0 00 000026 		CAIN	0,26		;DON'T PRINT NULLS
  5303	006515	254 00 0 00 006540 		JRST	$TYOU3
  5304	006516	200 01 0 00 000000 		MOVE	1,0		;PUT CHAR IN AC1
  5305	006517	400 02 0 00 000000 		SETZ	2,		;CLEAR AC2..USE AS BIT CNTR.
  5306	006520	405 01 0 01 777777 		ANDI	1,-1(1)		;THIS WILL CLEAR 1 BIT AT A TIME.
  5307	006521	332 00 0 00 000001 		SKIPE	1		;ALL THE BITS?
  5308	006522	344 02 0 00 006520 		AOJA	2,.-2		;NO. RETURN TO DO ANDI AGAIN.
  5309	006523	606 02 0 00 000001 		TRNN	2,1		;BIT CNTR ODD?
  5310	006524	640 00 0 00 000200 		TRC	0,200		;COMP HI ORDER BIT..EVEN PAR.
  5311
  5312	006525	7 120 14 0 00 000000 	$TYOU4:	DATAO	TTY,0		;SEND CHAR TO TTY
  5313	006526	7 120 34 0 00 000010 		CONSO	TTY,10		;WAIT TILL DONE
  5314	006527	254 00 0 00 006526 		JRST	.-1
  5315	006530	332 00 0 00 030227 		SKIPE	TTYFIL		;FILLERS INHIBITED ?
  5316	006531	254 00 0 00 006540 		JRST	$TYOU3		;YES-EXIT 
  5317
  5318	006532	306 00 0 00 000012 	$TYOU2:	CAIN	0,12		;NO-LF ?
  5319	006533	254 00 0 00 006574 		JRST	$TYFLF		;YES-DO FILLERS
  5320	006534	306 00 0 00 000215 		CAIN	0,215		;NO-CR ?
  5321	006535	254 00 0 00 006551 		JRST	$TYFCR		;YES-DO FILLERS
  5322	006536	306 00 0 00 000207 		CAIN	0,207		;NO-BELL ?
  5323	006537	254 00 0 00 006577 		JRST	$TYFBL		;YES-DO FILLERS
  5324									;NONE OF THE ABOVE !
  5325	006540	200 00 0 00 007734 	$TYOU3:	MOVE	0,$TYAC0	;DONE, RESTORE AC'S
  5326	006541	200 01 0 00 007735 		MOVE	1,$TYAC1
  5327	006542	200 02 0 00 007736 		MOVE	2,$TYAC2
  5328	006543	263 17 0 00 000000 		RTN			;EXIT 
  5329
  5330					;*KL10 EXEC MODE TTY OUTPUT
  5331					S^;*********************************************************************^
  5332
  5333	006544	261 17 0 00 000000 	$TYKL:	PUT	AC0
  5334	006545	405 00 0 00 000177 		ANDI	AC0,177		;CLEAR JUNK BITS
  5335	006546	260 17 0 00 002043 		GO	$DTEXX		;SEND TO PDP-11
  5336	006547	262 17 0 00 000000 		GET	AC0
  5337	006550	263 17 0 00 000000 		RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 103
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0211

  5338					;*CONSOLE TTY FILLER ROUTINE
  5339					S^;*********************************************************************^
  5340
  5341	006551	7 120 14 0 00 000000 	$TYFCR:	DATAO	TTY,0		;ALWAYS GIVE 1 EXTRA CR
  5342	006552	7 120 34 0 00 000010 		CONSO	TTY,10
  5343	006553	254 00 0 00 006552 		JRST	.-1
  5344	006554	200 01 0 00 030230 		MOVE	1,TTYSPD	;DETERMINE FILLERS REQUIRED
  5345	006555	402 00 0 00 000002 		SETZM	2		;FOR CR
  5346	006556	306 01 0 00 000002 		CAIN	1,2
  5347	006557	201 02 0 00 000011 		MOVEI	2,^D9		;LA30, REQ 9 FILLERS @ 300 BAUD
  5348	006560	306 01 0 00 000005 	$TYFC1:	CAIN	1,5
  5349	006561	201 02 0 00 000004 		MOVEI	2,4		;4 FILLERS @ 2400 BAUD
  5350	006562	306 01 0 00 000004 		CAIN	1,4
  5351	006563	201 02 0 00 000002 		MOVEI	2,2		;2 FILLERS @ 1200 BAUD
  5352	006564	306 01 0 00 000003 		CAIN	1,3
  5353	006565	201 02 0 00 000001 		MOVEI	2,1		;1 FILLER @ 600 BAUD
  5354
  5355	006566	361 02 0 00 006540 	$TYFLX:	SOJL	2,$TYOU3
  5356	006567	201 00 0 00 000000 		MOVEI	0,0		;USE 000 AS FILLER
  5357	006570	7 120 14 0 00 000000 		DATAO	TTY,0
  5358	006571	7 120 34 0 00 000010 		CONSO	TTY,10
  5359	006572	254 00 0 00 006571 		JRST	.-1
  5360	006573	254 00 0 00 006566 		JRST	$TYFLX
  5361
  5362	006574	200 01 0 00 030230 	$TYFLF:	MOVE	1,TTYSPD	;DETERMINE FILLERS REQ FOR LF
  5363	006575	402 00 0 00 000002 		SETZM	2
  5364	006576	254 00 0 00 006560 		JRST	$TYFC1		;FILLERS AS CR EXCEPT FOR 300 BAUD
  5365
  5366	006577	201 02 0 00 000002 	$TYFBL:	MOVEI	2,2		;DO 2 FILLERS FOR THE BELL
  5367	006600	254 00 0 00 006566 		JRST	$TYFLX
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 104
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0212

  5368					;*EXEC MODE CONSOLE TTY BAUD RATE DETERMINATION
  5369					S^;*********************************************************************^
  5370
  5371	006601	336 00 0 00 030056 	$TYSPD:	SKIPN	$ONETM
  5372	006602	254 00 0 00 006605 		JRST	.+3
  5373	006603	331 00 0 00 030230 		SKIPL	TTYSPD
  5374	006604	254 00 0 00 005652 		JRST	$PNTIX		;DO ONLY FIRST TIME
  5375	006605	335 00 0 00 030043 		SKIPGE	MONCTL		;UNDER DIAG MONITOR ?
  5376	006606	254 00 0 00 006651 		JRST	$TYMON		;YES
  5377	006607	7 000 04 0 00 000000 	$TYMN1:	DATAI	APR,0		;GET SWITCHES
  5378	006610	201 01 0 00 000060 		MOVEI	1,60
  5379	006611	332 00 0 00 030505 		SKIPE	CYCL60		;50 OR 60 CYCLES ?
  5380	006612	201 01 0 00 000050 		MOVEI	1,50
  5381	006613	7 000 20 0 00 001000 		CONO	APR,1000	;CLEAR AND WAIT FOR CLOCK
  5382	006614	7 000 34 0 00 001000 		CONSO	APR,1000
  5383	006615	254 00 0 00 006614 		JRST	.-1
  5384	006616	7 000 20 0 00 001000 		CONO	APR,1000
  5385	006617	402 00 0 00 000000 		SETZM	0
  5386	006620	7 120 14 0 00 007527 	$TYSP1:	DATAO	TTY,[377]	;COUNT # OF CHARS SENT IN 1 SEC
  5387	006621	350 00 0 00 000000 		AOS	0
  5388	006622	7 120 34 0 00 000010 	$TYSP2:	CONSO	TTY,10
  5389	006623	254 00 0 00 006625 		JRST	$TYSP3
  5390	006624	254 00 0 00 006620 		JRST	$TYSP1
  5391	006625	7 000 34 0 00 001000 	$TYSP3:	CONSO	APR,1000
  5392	006626	254 00 0 00 006622 		JRST	$TYSP2
  5393	006627	7 000 20 0 00 001000 		CONO	APR,1000
  5394	006630	365 01 0 00 006622 		SOJGE	1,$TYSP2
  5395
  5396	006631	7 120 34 0 00 000010 	$TYSP4:	CONSO	TTY,10		;WAIT TILL TTY GETS DONE
  5397	006632	254 00 0 00 006631 		JRST	.-1
  5398	006633	201 01 0 00 000005 		MOVEI	1,5		;5 = 2400 BAUD
  5399	006634	307 00 0 00 000172 		CAIG	0,^D122
  5400	006635	370 00 0 00 000001 		SOS	1		;4 = 1200 BAUD
  5401	006636	307 00 0 00 000076 		CAIG	0,^D62
  5402	006637	370 00 0 00 000001 		SOS	1		;3 = 600 BAUD
  5403	006640	307 00 0 00 000040 		CAIG	0,^D32
  5404	006641	370 00 0 00 000001 		SOS	1		;2 = 300 BAUD
  5405	006642	307 00 0 00 000020 		CAIG	0,^D16
  5406	006643	370 00 0 00 000001 		SOS	1		;1 = 150 BAUD
  5407	006644	307 00 0 00 000014 		CAIG	0,^D12
  5408	006645	370 00 0 00 000001 		SOS	1		;0 = 110 BAUD
  5409	006646	202 01 0 00 030230 	$TYMN2:	MOVEM	1,TTYSPD#	;SAVE TTY SPEED
  5410	006647	202 01 0 00 001007 		MOVEM	1,$TTYSPD
  5411	006650	254 00 0 00 005652 		JRST	$PNTIX		;CONTINUE WITH $PNTIN 
  5412
  5413	006651	200 01 0 00 001007 	$TYMON:	MOVE	1,$TTYSPD	;DIAG MON, GET TTY SPEED
  5414	006652	321 01 0 00 006607 		JUMPL	1,$TYMN1	;IS IT A PROPER VALUE ?
  5415	006653	303 01 0 00 000012 		CAILE	1,^D10		;MUST BE BETWEEN 0-10
  5416	006654	254 00 0 00 006607 		JRST	$TYMN1		;OTHERWISE COMPUTE OWN
  5417	006655	254 00 0 00 006646 		JRST	$TYMN2		;OK - SAVE AS TTY SPEED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 105
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0213

  5418					S^;*********************************************************************^
  5419					;*USER MODE CHARACTER OUTPUT
  5420					S^;*********************************************************************^
  5421
  5422	006656	202 04 0 00 007703 	$TOUT2:	MOVEM	4,$PACC4#
  5423	006657	306 01 0 00 000026 		CAIN	1,26		;DON'T PRINT NULLS
  5424	006660	254 00 1 00 007703 		JRST	@$PACC4
  5425	006661	200 00 0 00 030046 		MOVE	0,CONSW
  5426	006662	603 00 0 00 020000 		TLNE	0,PNTLPT	;IS LPT PRINT SWITCH UP ?
  5427	006663	254 00 0 00 006676 		JRST	$TOUT3		;YES, GO PRINT ON LOGICAL DEVICE
  5428	006664	037 05 0 00 000002 		DROPDV			;CLOSE DEV IF SWITCH CHANGED
  5429	006665	200 00 0 00 007650 	$TOUT6:	MOVE	0,$CARCT	;CHARACTER NUMBER
  5430	006666	306 00 0 00 000001 		CAIN	0,1		;FIRST CHAR IN LINE ?
  5431	006667	254 00 0 00 006672 		JRST	$TOUT4		;YES
  5432	006670	051 01 0 00 000001 	$TOUT5:	OUTCHR	1		;OUTPUT VIA MONITOR TTCALL
  5433	006671	254 00 1 00 007703 		JRST	@$PACC4		;GO RESTORE AC0 AND RETURN
  5434
  5435	006672	331 00 0 00 030043 	$TOUT4:	SKIPL	MONCTL		;SYSTEM EXERCISER
  5436	006673	254 00 0 00 006670 		JRST	$TOUT5		;NO
  5437	006674	051 03 0 00 030257 		OUTSTR	QUEST		;PRECEDE LINE WITH ?
  5438	006675	254 00 0 00 006670 		JRST	$TOUT5
  5439
  5440
  5441					;*USER MODE LOGICAL DEVICE OUTPUT
  5442					S^;*********************************************************************^
  5443
  5444	006676	336 00 0 00 030226 	$TOUT3:	SKIPN	$DVOFF		;DEVICE BEEN INITED YET ?
  5445	006677	260 17 0 00 006714 		GO	$INTDV		;NO, GO DO IT
  5446	006700	260 17 0 00 006704 		GO	$PUTCR		;GO OUTPUT CHAR
  5447	006701	336 00 0 00 007710 		SKIPN	$PNTTY		;SKIP IF MESSAGE ALSO FORCED TO TTY
  5448	006702	254 00 1 00 007703 		JRST	@$PACC4
  5449	006703	254 00 0 00 006665 		JRST	$TOUT6		;OUTPUT 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 106
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES                                            SEQ 0214

  5450					SUBTTL	*SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES
  5451
  5452					S^;*********************************************************************^
  5453					;*OUTPUT TO LOGICAL DEVICE
  5454					S^;*********************************************************************^
  5455
  5456	006704	332 00 0 00 007653 	$PUTCR:	SKIPE	$DVTTY#		;IF DEVICE IS TTY
  5457	006705	254 00 0 00 006712 		JRST	$PUTBF		;EMPTY AFTER EACH CHAR
  5458	006706	377 00 0 00 030267 		SOSG	$OBUF+2		;INCREMENT BYTE COUNT
  5459	006707	254 00 0 00 006712 		JRST	$PUTBF		;NO MORE ROOM, OR FIRST CALL AFTER INIT
  5460	006710	136 01 0 00 030266 	$PTNXT:	IDPB	1,$OBUF+1	;STORE CHAR IN AC1
  5461	006711	263 17 0 00 000000 		RTN			;EXIT 
  5462	006712	057 17 0 00 000000 	$PUTBF:	OUT	$DEVCH,		;CALL MONITOR TO EMPTY BUFFER
  5463	006713	254 00 0 00 006710 		JRST	$PTNXT
  5464
  5465					S^;*********************************************************************^
  5466					;*LOGICAL DEVICE INITIALIZATION
  5467					;*PHY DEV ASSIGNED AT RUN TIME
  5468					S^;*********************************************************************^
  5469	006714	200 00 0 00 030021 	$INTDV:	MOVE	0,PNTEXT
  5470	006715	202 00 0 00 030271 		MOVEM	0,$OUTEX
  5471	006716	200 00 0 00 030020 		MOVE	0,PNTNAM	;SETUP LOGICAL OUTPUT FILE NAME
  5472	006717	202 00 0 00 030270 		MOVEM	0,$OUTNM
  5473	006720	041 17 0 00 000000 		INIT	$DEVCH,0	;ASCII MODE, DEV CHANNEL
  5474	006721	44 45 66 00 00 00 		SIXBIT	/DEV/		;LOGICAL DEVICE, LPT,DSK,DTAX
  5475	006722	030265	000000			XWD	$OBUF,		;OUTPUT ONLY
  5476	006723	254 00 0 00 006735 		JRST	$INTD1		;DEV NOT AVAIL, DEFAULT TO DISK
  5477	006724	065 17 0 00 000001 	$INTD2:	OUTBUF	$DEVCH,1	;SETUP OUTPUT BUFFER
  5478	006725	077 17 0 00 030270 		ENTER	$DEVCH,$OUTNM	;INIT OUTPUT FILE
  5479	006726	254 00 0 00 006764 		JRST	$OERR2		;NO DIR ROOM, ERROR
  5480	006727	476 00 0 00 030226 		SETOM	$DVOFF		;SET DEVICE INITED FLAG
  5481	006730	201 00 0 00 000017 		MOVEI	0,$DEVCH
  5482	006731	047 00 0 00 000004 		DEVCHR			;GET DEVICE CHARACTERISTICS
  5483	006732	603 00 0 00 000010 		TLNE	0,10
  5484	006733	476 00 0 00 007653 		SETOM	$DVTTY		;DEVICE IS TTY
  5485	006734	263 17 0 00 000000 		RTN			;EXIT 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 107
SUBRTM	MAC	23-Mar-78 15:08		*SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES                                            SEQ 0215

  5486	006735	336 00 0 00 007656 	$INTD1:	SKIPN	$INTDF		;FIRST DEFAULT INIT ?
  5487						OUTSTR	[ASCIZ/
  5488					****
  5489					USING 'DSK' PRINT FILE
  5490					****
  5491	006736	051 03 0 00 007530 	/]
  5492	006737	476 00 0 00 007656 		SETOM	$INTDF
  5493	006740	041 17 0 00 000000 		INIT	$DEVCH,0
  5494	006741	44 63 53 00 00 00 		SIXBIT	/DSK/
  5495	006742	030265	000000			XWD	$OBUF,
  5496	006743	254 00 0 00 006762 		JRST	$OERR1
  5497	006744	254 00 0 00 006724 		JRST	$INTD2
  5498
  5499
  5500					;*USER MODE CLOSE FILE
  5501					S^;*********************************************************************^
  5502	006745	336 00 0 00 030226 	$DRPDV:	SKIPN	$DVOFF		;DEVICE INITED?
  5503	006746	263 17 0 00 000000 		RTN			;NO, DON'T BOTHER 
  5504	006747	070 17 0 00 000000 		CLOSE	$DEVCH,		;CLOSE FILE
  5505	006750	063 17 0 00 740000 		STATZ	$DEVCH,740000	;RECHECK FINAL ERROR BITS
  5506						OUTSTR	[ASCIZ/
  5507					%PRINT CLOSE ERROR
  5508	006751	051 03 0 00 007540 	/]
  5509	006752	071 17 0 00 000000 		RELEAS	$DEVCH,		;RELINQUISH DEVICE, WRITE DIRECTORY
  5510	006753	402 00 0 00 030226 		SETZM	$DVOFF
  5511	006754	263 17 0 00 000000 		RTN			;EXIT 
  5512
  5513	006755				$OUTER:	OUTSTR	[ASCIZ/
  5514					%PRINT OUTPUT ERROR
  5515	006755	051 03 0 00 007545 	/]
  5516	006756	332 00 0 00 030520 		SKIPE	$$OUTER
  5517	006757	256 00 0 00 030520 		XCT	$$OUTER		;EXECUTE USERS ERROR RTN, IF PROV.
  5518	006760	047 01 0 00 000012 		EXIT	1,		;ERROR, QUIT
  5519	006761	254 00 0 00 030000 		JRST	BEGIN		;RESTART USER SEGMENT 
  5520
  5521	006762				$OERR1:	OUTSTR	[ASCIZ/
  5522	006762	051 03 0 00 007552 	DSK INIT ERROR/]
  5523	006763	254 00 0 00 006755 		JRST	$OUTER		;DISK PRINT OUTPUT ERROR
  5524
  5525	006764				$OERR2:	OUTSTR	[ASCIZ/
  5526	006764	051 03 0 00 007556 	NO DIR ROOM/]
  5527	006765	254 00 0 00 006755 		JRST	$OUTER		;DISK PRINT OUTPUT ERROR
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 1
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0216

  5528					SUBTTL	*STOR* RESERVED STORAGE
  5529
  5530					;MODIFY DEVICE CODE CODE TABLE
  5531	006766				$MDLST:	$MDSXB	CCI,14^
  5532	006766	434351	000014			<SIXBIT/CCI/>!14		;CCI DEVICE CODE IS 14^
  5533						$MDSXB	CCI2,20^
  5534	006767	434351	220020			<SIXBIT/CCI2/>!20		;CCI2 DEVICE CODE IS 20^
  5535						$MDSXB	ADC,24^
  5536	006770	414443	000024			<SIXBIT/ADC/>!24		;ADC DEVICE CODE IS 24^
  5537						$MDSXB	ADC2,30^
  5538	006771	414443	220030			<SIXBIT/ADC2/>!30		;ADC2 DEVICE CODE IS 30^
  5539						$MDSXB	DLB,60^
  5540	006772	445442	000060			<SIXBIT/DLB/>!60		;DLB DEVICE CODE IS 60^
  5541						$MDSXB	DLC,64^
  5542	006773	445443	000064			<SIXBIT/DLC/>!64		;DLC DEVICE CODE IS 64^
  5543						$MDSXB	DLB2,160^
  5544	006774	445442	220160			<SIXBIT/DLB2/>!160		;DLB2 DEVICE CODE IS 160^
  5545						$MDSXB	DLC2,164^
  5546	006775	445443	220164			<SIXBIT/DLC2/>!164		;DLC2 DEVICE CODE IS 164^
  5547						$MDSXB	CLK,70^
  5548	006776	435453	000070			<SIXBIT/CLK/>!70		;CLK DEVICE CODE IS 70^
  5549						$MDSXB	CLK2,74^
  5550	006777	435453	220074			<SIXBIT/CLK2/>!74		;CLK2 DEVICE CODE IS 74^
  5551						$MDSXB	LPT,124^
  5552	007000	546064	000124			<SIXBIT/LPT/>!124		;LPT DEVICE CODE IS 124^
  5553						$MDSXB	LPT2,234^
  5554	007001	546064	220234			<SIXBIT/LPT2/>!234		;LPT2 DEVICE CODE IS 234^
  5555						$MDSXB	CDP,110^
  5556	007002	434460	000110			<SIXBIT/CDP/>!110		;CDP DEVICE CODE IS 110^
  5557						$MDSXB	DIS,130^
  5558	007003	445163	000130			<SIXBIT/DIS/>!130		;DIS DEVICE CODE IS 130^
  5559						$MDSXB	DIS2,134^
  5560	007004	445163	220134			<SIXBIT/DIS2/>!134		;DIS2 DEVICE CODE IS 134^
  5561						$MDSXB	PLT,140^
  5562	007005	605464	000140			<SIXBIT/PLT/>!140		;PLT DEVICE CODE IS 140^
  5563						$MDSXB	PLT2,144^
  5564	007006	605464	220144			<SIXBIT/PLT2/>!144		;PLT2 DEVICE CODE IS 144^
  5565						$MDSXB	CR,150^
  5566	007007	436200	000150			<SIXBIT/CR/>!150		;CR DEVICE CODE IS 150^
  5567						$MDSXB	CR2,154^
  5568	007010	436222	000154			<SIXBIT/CR2/>!154		;CR2 DEVICE CODE IS 154^
  5569						$MDSXB	DSK,170^
  5570	007011	446353	000170			<SIXBIT/DSK/>!170		;DSK DEVICE CODE IS 170^
  5571						$MDSXB	DSK2,174^
  5572	007012	446353	220174			<SIXBIT/DSK2/>!174		;DSK2 DEVICE CODE IS 174^
  5573						$MDSXB	DLS,240^
  5574	007013	445463	000240			<SIXBIT/DLS/>!240		;DLS DEVICE CODE IS 240^
  5575						$MDSXB	DLS2,244^
  5576	007014	445463	220244			<SIXBIT/DLS2/>!244		;DLS2 DEVICE CODE IS 244^
  5577						$MDSXB	DPC,250^
  5578	007015	446043	000250			<SIXBIT/DPC/>!250		;DPC DEVICE CODE IS 250^
  5579						$MDSXB	DPC2,254^
  5580	007016	446043	220254			<SIXBIT/DPC2/>!254		;DPC2 DEVICE CODE IS 254^
  5581						$MDSXB	DPC3,260^
  5582	007017	446043	230260			<SIXBIT/DPC3/>!260		;DPC3 DEVICE CODE IS 260^
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 1-1
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0217

  5583						$MDSXB	DPC4,264^
  5584	007020	446043	240264			<SIXBIT/DPC4/>!264		;DPC4 DEVICE CODE IS 264^
  5585						$MDSXB	RHA,270^
  5586	007021	625041	000270			<SIXBIT/RHA/>!270		;RHA DEVICE CODE IS 270^
  5587						$MDSXB	RHB,274^
  5588	007022	625042	000274			<SIXBIT/RHB/>!274		;RHB DEVICE CODE IS 274^
  5589						$MDSXB	DTC,320^
  5590	007023	446443	000320			<SIXBIT/DTC/>!320		;DTC DEVICE CODE IS 320^
  5591						$MDSXB	DTC2,330^
  5592	007024	446443	220330			<SIXBIT/DTC2/>!330		;DTC2 DEVICE CODE IS 330^
  5593						$MDSXB	DTS,324^
  5594	007025	446463	000324			<SIXBIT/DTS/>!324		;DTS DEVICE CODE IS 324^
  5595						$MDSXB	DTS2,334^
  5596	007026	446463	220334			<SIXBIT/DTS2/>!334		;DTS2 DEVICE CODE IS 334^
  5597						$MDSXB	TMC,340^
  5598	007027	645543	000340			<SIXBIT/TMC/>!340		;TMC DEVICE CODE IS 340^
  5599						$MDSXB	TMC2,350^
  5600	007030	645543	220350			<SIXBIT/TMC2/>!350		;TMC2 DEVICE CODE IS 350^
  5601						$MDSXB	TMS,344^
  5602	007031	645563	000344			<SIXBIT/TMS/>!344		;TMS DEVICE CODE IS 344^
  5603						$MDSXB	TMS2,354^
  5604	007032	645563	220354			<SIXBIT/TMS2/>!354		;TMS2 DEVICE CODE IS 354^
  5605						$MDSXB	DSS,460^
  5606	007033	446363	000460			<SIXBIT/DSS/>!460		;DSS DEVICE CODE IS 460^
  5607						$MDSXB	DSS2,470^
  5608	007034	446363	220470			<SIXBIT/DSS2/>!470		;DSS2 DEVICE CODE IS 470^
  5609						$MDSXB	DSI,464^
  5610	007035	446351	000464			<SIXBIT/DSI/>!464		;DSI DEVICE CODE IS 464^
  5611						$MDSXB	DSI2,474^
  5612	007036	446351	220474			<SIXBIT/DSI2/>!474		;DSI2 DEVICE CODE IS 474^
  5613						$MDSXB	RH0,540^
  5614	007037	625020	000540			<SIXBIT/RH0/>!540		;RH0 DEVICE CODE IS 540^
  5615						$MDSXB	RH1,544^
  5616	007040	625021	000544			<SIXBIT/RH1/>!544		;RH1 DEVICE CODE IS 544^
  5617						$MDSXB	RH2,550^
  5618	007041	625022	000550			<SIXBIT/RH2/>!550		;RH2 DEVICE CODE IS 550^
  5619						$MDSXB	RH3,554^
  5620	007042	625023	000554			<SIXBIT/RH3/>!554		;RH3 DEVICE CODE IS 554^
  5621						$MDSXB	RH4,560^
  5622	007043	625024	000560			<SIXBIT/RH4/>!560		;RH4 DEVICE CODE IS 560^
  5623						$MDSXB	RH5,564^
  5624	007044	625025	000564			<SIXBIT/RH5/>!564		;RH5 DEVICE CODE IS 564^
  5625						$MDSXB	RH6,570^
  5626	007045	625026	000570			<SIXBIT/RH6/>!570		;RH6 DEVICE CODE IS 570^
  5627						$MDSXB	RH7,574^
  5628	007046	625027	000574			<SIXBIT/RH7/>!574		;RH7 DEVICE CODE IS 574^
  5629
  5630			000061		$MDEND=.-$MDLST			;COMPUTES LENGTH OF TABLE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0218

  5631					;PROGRAM LITERALS
  5632	007047					LIT
  5633	007047	254 00 0 00 002404 
  5634	007050	254 00 0 00 002504 
  5635	007051	015 012 105 130 105 
  5636	007052	103 040 117 116 114 
  5637	007053	131 015 012 000 000 
  5638	007054	540000	540001
  5639	007055	020000	020000
  5640	007056	000002	000002
  5641	007057	260 17 0 00 001173 
  5642	007060	254 00 0 00 001267 
  5643	007061	76 51 54 54 45 47 
  5644	007062	41 54 00 65 65 57 
  5645	007063	76 65 65 57 75 75 
  5646	007064	46 54 41 47 63 75 
  5647	007065	00 00 60 43 76 77 
  5648	007066	777577	030303
  5649	007067	76 12 12 12 12 12 
  5650	007070	76 65 65 57 00 60 
  5651	007071	54 51 63 64 00 45 
  5652	007072	62 62 00 60 35 77 
  5653	007073	76 45 62 62 57 62 
  5654	007074	00 55 65 65 57 00 
  5655	007075	35 00 77 00 00 00 
  5656	007076	037 12 0 00 000001 
  5657	007077	254 00 0 00 001423 
  5658	007100	037 15 0 00 000003 
  5659	007101	254 00 0 00 001423 
  5660	007102	037 14 0 00 000003 
  5661	007103	254 00 0 00 001423 
  5662	007104	037 17 0 00 000001 
  5663	007105	254 00 0 00 001423 
  5664	007106	000001	000001
  5665	007107	002000	010000
  5666	007110	76 64 45 63 64 00 
  5667	007111	60 41 63 63 00 43 
  5668	007112	57 65 56 64 00 35 
  5669	007113	00 77 00 00 00 00 
  5670	007114	76 60 43 35 00 00 
  5671	007115	77 00 00 00 00 00 
  5672	007116	76 63 67 51 64 43 
  5673	007117	50 45 63 00 35 00 
  5674	007120	77 00 00 00 00 00 
  5675	007121	76 45 62 62 57 62 
  5676	007122	00 51 56 00 77 00 
  5677	007123	00 15 00 77 00 00 
  5678	007124	76 77 00 00 00 00 
  5679	007125	037 00 0 00 000000 
  5680	007126	76 43 57 62 62 45 
  5681	007127	43 64 32 00 00 77 
  5682	007130	76 41 43 64 65 41 
  5683	007131	54 32 00 00 00 77 
  5684	007132	76 44 51 63 43 62 
  5685	007133	45 60 32 00 00 77 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2-1
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0219

  5686	007134	000140	000141
  5687	007135	000444	000445
  5688	007136	264 00 0 00 007601 
  5689	007137	76 63 60 65 62 51 
  5690	007140	57 65 63 00 44 64 
  5691	007141	45 00 51 56 64 76 
  5692	007142	77 00 00 00 00 00 
  5693	007143	777777	777777
  5694	007144	264 00 0 00 002143 
  5695	007145	300000	400000
  5696	007146	400000	400000
  5697	007147	000001	007613
  5698	007150	45 62 62 57 62 00 
  5699	007151	50 41 54 64 00 41 
  5700	007152	64 00 77 00 00 00 
  5701	007153	46 41 64 41 54 00 
  5702	007154	60 62 57 47 62 41 
  5703	007155	55 00 45 62 62 57 
  5704	007156	62 00 41 64 00 77 
  5705	007157	104 104 124 000 000 
  5706	007160	66 45 62 63 51 57 
  5707	007161	56 00 77 00 00 00 
  5708	007162	14 00 63 66 35 77 
  5709	007163	14 00 55 43 66 35 
  5710	007164	77 00 00 00 00 00 
  5711	007165	14 00 55 43 57 35 
  5712	007166	77 00 00 00 00 00 
  5713	007167	14 00 50 57 35 77 
  5714	007170	14 00 26 20 50 72 
  5715	007171	77 00 00 00 00 00 
  5716	007172	14 00 25 20 50 72 
  5717	007173	77 00 00 00 00 00 
  5718	007174	14 00 43 60 65 03 
  5719	007175	35 77 00 00 00 00 
  5720	007176	76 12 12 12 12 12 
  5721	007177	76 60 54 51 63 64 
  5722	007200	00 65 46 54 57 67 
  5723	007201	76 77 00 00 00 00 
  5724	007202	264 00 0 00 030104 
  5725	007203	254 00 0 00 002641 
  5726	007204	254 00 0 00 002655 
  5727	007205	76 12 12 12 12 12 
  5728	007206	76 60 54 51 63 64 
  5729	007207	00 57 66 45 62 46 
  5730	007210	54 57 67 00 60 35 
  5731	007211	77 00 00 00 00 00 
  5732	007212	76 55 45 55 57 62 
  5733	007213	71 00 60 62 57 64 
  5734	007214	77 00 00 00 00 00 
  5735	007215	76 56 57 56 15 45 
  5736	007216	70 00 55 45 55 57 
  5737	007217	62 71 77 00 00 00 
  5738	007220	76 55 45 55 57 62 
  5739	007221	71 00 60 41 62 51 
  5740	007222	64 71 77 00 00 00 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2-2
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0220

  5741	007223	76 65 56 53 56 57 
  5742	007224	67 56 00 51 56 64 
  5743	007225	45 62 62 65 60 64 
  5744	007226	77 00 00 00 00 00 
  5745	007227	76 45 62 62 57 62 
  5746	007230	00 41 44 44 62 45 
  5747	007231	63 63 00 62 45 47 
  5748	007232	00 35 00 77 00 00 
  5749	007233	44 55 41 00 35 00 
  5750	007234	77 00 00 00 00 00 
  5751	007235	76 41 60 62 00 00 
  5752	007236	00 00 00 00 00 00 
  5753	007237	00 00 00 00 60 51 
  5754	007240	00 00 00 00 00 00 
  5755	007241	00 00 00 00 00 00 
  5756	007242	00 46 54 41 47 63 
  5757	007243	00 00 60 43 00 00 
  5758	007244	00 00 00 00 60 62 
  5759	007245	57 47 76 77 00 00 
  5760	007246	76 60 57 67 45 62 
  5761	007247	00 46 41 51 54 00 
  5762	007250	62 45 63 64 41 62 
  5763	007251	64 76 77 00 00 00 
  5764	007252	76 60 57 67 45 62 
  5765	007253	00 51 56 64 45 62 
  5766	007254	62 65 60 64 00 46 
  5767	007255	41 51 54 45 44 76 
  5768	007256	77 00 00 00 00 00 
  5769	007257	254 00 0 00 030005 
  5770	007260	76 60 41 47 45 00 
  5771	007261	46 41 51 54 00 64 
  5772	007262	62 41 60 00 45 62 
  5773	007263	62 57 62 76 60 41 
  5774	007264	47 45 00 46 41 51 
  5775	007265	54 00 67 57 62 44 
  5776	007266	15 00 77 00 00 00 
  5777	007267	76 64 62 41 60 00 
  5778	007270	23 00 45 62 62 57 
  5779	007271	62 77 00 00 00 00 
  5780	007272	265 00 0 00 003011 
  5781	007273	400000	420000
  5782	007274	265 00 0 00 003005 
  5783	007275	265 00 0 00 003027 
  5784	007276	76 63 15 42 65 63 
  5785	007277	77 00 00 00 00 00 
  5786	007300	76 51 17 57 00 60 
  5787	007301	41 47 45 00 46 41 
  5788	007302	51 54 77 00 00 00 
  5789	007303	76 43 41 43 50 45 
  5790	007304	00 41 44 62 00 60 
  5791	007305	41 62 51 64 71 77 
  5792	007306	76 63 15 42 65 63 
  5793	007307	00 41 44 62 00 60 
  5794	007310	41 62 51 64 71 77 
  5795	007311	76 55 47 56 00 35 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2-3
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0221

  5796	007312	00 77 00 00 00 00 
  5797	007313	42 41 71 00 77 00 
  5798	007314	00 62 57 67 00 77 
  5799	007315	44 06 0 00 003303 
  5800	007316	00 55 66 57 54 64 
  5801	007317	63 77 00 00 00 00 
  5802	007320	14 00 63 60 45 45 
  5803	007321	44 77 00 00 00 00 
  5804	007322	45 56 44 00 60 41 
  5805	007323	63 63 00 77 00 00 
  5806	007324	17 03 0 00 000000 
  5807	007325	43 63 67 45 45 60 
  5808	007326	00 64 51 55 45 57 
  5809	007327	65 64 76 77 00 00 
  5810	007330	7 003 1 0 00 000000 
  5811	007331	7 000 6 0 00 200000 
  5812	007332	366 04 0 00 000001 
  5813	007333	254 00 0 00 003701 
  5814	007334	7 003 2 0 00 000000 
  5815	007335	701540	000000
  5816	007336	030146	030147
  5817	007337	540336	540337
  5818	007340	400000	777777
  5819	007341	540376	540377
  5820	007342	000000	420000
  5821	007343	76 64 57 57 00 55 
  5822	007344	41 56 71 00 55 41 
  5823	007345	60 00 63 45 47 55 
  5824	007346	45 56 64 63 76 77 
  5825	007347	000200	000201
  5826	007350	44 22 0 00 000200 
  5827	007351	400000	400001
  5828	007352	76 55 45 55 57 62 
  5829	007353	71 00 55 41 60 00 
  5830	007354	35 76 46 62 57 55 
  5831	007355	00 00 00 00 00 64 
  5832	007356	57 00 00 00 00 00 
  5833	007357	00 00 00 00 63 51 
  5834	007360	72 45 17 53 77 00 
  5835	007361	75 63 64 41 62 64 
  5836	007362	00 41 44 62 17 53 
  5837	007363	77 00 00 00 00 00 
  5838	007364	64 57 64 41 54 00 
  5839	007365	55 45 55 57 62 71 
  5840	007366	17 53 00 35 00 77 
  5841	007367	76 43 50 41 56 47 
  5842	007370	45 00 44 45 66 51 
  5843	007371	43 45 00 43 57 44 
  5844	007372	45 63 14 77 00 00 
  5845	007373	57 54 44 00 44 45 
  5846	007374	66 51 43 45 00 43 
  5847	007375	57 44 45 00 15 00 
  5848	007376	77 00 00 00 00 00 
  5849	007377	56 45 67 00 44 45 
  5850	007400	66 51 43 45 00 43 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2-4
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0222

  5851	007401	57 44 45 00 15 00 
  5852	007402	77 00 00 00 00 00 
  5853	007403	43 50 41 56 47 51 
  5854	007404	56 47 00 46 62 57 
  5855	007405	55 00 77 00 00 00 
  5856	007406	00 64 57 00 77 00 
  5857	007407	66 41 54 51 44 00 
  5858	007410	43 50 41 56 47 45 
  5859	007411	14 77 00 00 00 00 
  5860	007412	32 12 0 02 000000 
  5861	007413	777717	006766
  5862	007414	00 11 0 02 000000 
  5863	007415	76 44 45 66 00 43 
  5864	007416	57 44 45 00 45 62 
  5865	007417	62 14 00 21 24 15 
  5866	007420	27 27 24 00 57 56 
  5867	007421	54 71 76 77 00 00 
  5868	007422	001600	001600
  5869	007423	43 54 53 00 63 57 
  5870	007424	65 62 43 45 00 35 
  5871	007425	00 77 00 00 00 00 
  5872	007426	56 57 62 55 41 54 
  5873	007427	46 41 63 64 00 00 
  5874	007430	45 70 64 45 62 56 
  5875	007431	65 56 65 63 45 44 
  5876	007432	14 00 43 54 53 00 
  5877	007433	62 41 64 45 00 35 
  5878	007434	00 77 00 00 00 00 
  5879	007435	46 65 54 54 00 00 
  5880	007436	21 17 22 00 00 00 
  5881	007437	21 17 24 00 00 00 
  5882	007440	21 17 30 00 00 00 
  5883	007441	14 00 41 43 00 42 
  5884	007442	54 53 00 77 00 00 
  5885	007443	14 00 43 41 43 50 
  5886	007444	45 32 77 00 00 00 
  5887	007445	00 20 77 00 00 00 
  5888	007446	00 21 77 00 00 00 
  5889	007447	00 22 77 00 00 00 
  5890	007450	00 23 77 00 00 00 
  5891	007451	76 64 64 71 00 63 
  5892	007452	67 51 64 43 50 00 
  5893	007453	43 57 56 64 62 57 
  5894	007454	54 00 37 00 15 00 
  5895	007455	20 14 63 14 71 00 
  5896	007456	57 62 00 56 00 34 
  5897	007457	43 62 36 00 15 00 
  5898	007460	77 00 00 00 00 00 
  5899	007461	76 54 50 00 63 67 
  5900	007462	51 64 43 50 45 63 
  5901	007463	00 15 00 77 00 00 
  5902	007464	62 50 00 63 67 51 
  5903	007465	64 43 50 45 63 00 
  5904	007466	15 00 77 00 00 00 
  5905	007467	00 71 00 57 62 00 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2-5
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0223

  5906	007470	56 00 34 43 62 36 
  5907	007471	00 15 00 77 00 00 
  5908	007472	421042	104210
  5909	007473	44 06 0 00 000001 
  5910	007474	015 012 052 052 052 
  5911	007475	052 052 052 015 012 
  5912	007476	105 130 103 105 105 
  5913	007477	104 105 104 040 101 
  5914	007500	114 114 117 127 105 
  5915	007501	104 040 120 122 111 
  5916	007502	116 124 117 125 124 
  5917	007503	123 015 012 000 000 
  5918	007504	037 12 0 00 000001 
  5919	007505	254 00 0 00 006031 
  5920	007506	037 01 0 00 030242 
  5921	007507	254 00 0 00 006035 
  5922	007510	037 12 0 00 000001 
  5923	007511	254 00 0 00 006062 
  5924	007512	037 12 0 00 000001 
  5925	007513	254 00 0 00 006076 
  5926	007514	037 05 0 00 000001 
  5927	007515	254 00 0 00 006121 
  5928	007516	037 10 0 00 000001 
  5929	007517	254 00 0 00 006125 
  5930	007520	037 06 0 00 000001 
  5931	007521	254 00 0 00 006133 
  5932	007522	037 12 0 00 000001 
  5933	007523	254 00 0 00 006136 
  5934	007524	037 06 0 00 000001 
  5935	007525	254 00 0 00 006141 
  5936	007526	000001	056022
  5937	007527	000000	000377
  5938	007530	015 012 052 052 052 
  5939	007531	052 015 012 125 123 
  5940	007532	111 116 107 040 047 
  5941	007533	104 123 113 047 040 
  5942	007534	120 122 111 116 124 
  5943	007535	040 106 111 114 105 
  5944	007536	015 012 052 052 052 
  5945	007537	052 015 012 000 000 
  5946	007540	015 012 045 120 122 
  5947	007541	111 116 124 040 103 
  5948	007542	114 117 123 105 040 
  5949	007543	105 122 122 117 122 
  5950	007544	015 012 000 000 000 
  5951	007545	015 012 045 120 122 
  5952	007546	111 116 124 040 117 
  5953	007547	125 124 120 125 124 
  5954	007550	040 105 122 122 117 
  5955	007551	122 015 012 000 000 
  5956	007552	015 012 104 123 113 
  5957	007553	040 111 116 111 124 
  5958	007554	040 105 122 122 117 
  5959	007555	122 000 000 000 000 
  5960	007556	015 012 116 117 040 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 2-6
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0224

  5961	007557	104 111 122 040 122 
  5962	007560	117 117 115 000 000 
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:21 23-Mar-78 Page 3
SUBRTS	MAC	23-Mar-78 15:08		*STOR* RESERVED STORAGE                                                            SEQ 0225

  5963	007573	000000	000000		ENDSLD:	0
  5964
  5965					;END OF PROGRAM VARIABLES
  5966
  5967	007574	000 00 0 00 000000 	$SVERA:	Z			;ERROR ADDRESS REGISTER
  5968
  5969	007575	100000	000000		$SBRD:	100000,,0		;S-BUS DIAG READ
  5970	007576	000 00 0 00 000000 		Z
  5971
  5972	007577	110000	000000		$SBRD1:	110000,,0		;S-BUS DIAG ERROR RESET
  5973	007600	000 00 0 00 000000 		Z
  5974
  5975	007601	000 00 0 00 000000 	$DTRPT:	Z
  5976	007602	254 00 0 00 002027 		JRST	$$DTEI		;DTE20 INTERRUPT JSR
  5977
  5978	007603	000000	000000		$MTRI:	0			;METER XCT INSTRUCTION
  5979	007604	000000	000000		$MTRWC:	0			;METER WAIT COUNT
  5980	007605	000000	000000		MTRCNT:	0			;METER COUNT
  5981	007606	000000	000000		$MTRAC:	0			;METER SAVED AC
  5982
  5983	007607	000 00 0 00 000000 	%ERIN1:	Z			;COR/ACT/DESC PRINT JSR
  5984	007610	000 00 0 00 000000 	%ERIN2:	Z
  5985	007611	254 00 1 00 007607 		JRST	@%ERIN1		;ERROR HANDLER SPECIAL STORAGE WORDS
  5986
  5987	007612				POWER:	BLOCK	20		;POWER FAIL AC SAVE
  5988
  5989					IFDEF	DEBUG,<
  5990	007632				PATCH:	BLOCK	DEBUG		;DEBUGGING AREA
  5991					>
  5992
  5993					;PROGRAM VARIABLE WORDS
  5994
  5995	007632					VAR
  5996
  5997					IFDEF	PGMEND,<
  5998	007754	000000	000000		END:	0
  5999			001000			END	START

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:19.614

26P CORE USED

AABCLR	   548#	  2739
AADRBK	   564#                                                                                                            SEQ 0226
AAPRC1	   541#	  2745
ABORT	   119#	  3023
AC0	    68#	  1594	  1595	  1596	  1598	  1600	  1601	  1603	  1605	  1606	  1607	  1609	  1611	  1613
	  1616	  1618	  1620	  1621	  1622	  1631	  1634	  1635	  1647	  1648	  1652	  1658	  1661	  1664
	  1665	  1691	  1692	  1789	  1790	  1791	  1792	  1794	  1796	  1798	  1804	  1805	  1806	  1813
	  1817	  1856	  2103	  2104	  2105	  2106	  2107	  2108	  2109	  2110	  2111	  2146	  2155	  2169
	  2172	  2173	  2175	  2177	  2179	  2182	  2186	  2187	  2190	  2204	  2210	  2211	  2213	  2215
	  2398	  2410	  2414	  2416	  2427	  2438	  2442	  2443	  2646	  2649	  2650	  2652	  2780	  2787
	  2788	  2799	  2804	  2807	  3043	  3063	  3426	  3436	  4056	  4057	  4083	  4089	  4172	  4174
	  4180	  4286	  4411	  4413	  4414	  4416	  4518	  4520	  4522	  4733	  4736	  4738	  4757	  4783
	  5123	  5237	  5298	  5333	  5334	  5336
AFOCLR	   553#	  2739
AFODIS	   551#	  2739
AFOENB	   552#	   567#
AFOV	   568#
ALTMGO	  1144#	  2035	  5187
AMCLRB	   685#
AMPCLR	   549#	  2739
AMPV	   565#	  2715
ANXCLR	   550#	  2739
ANXM	   499#	   566#	  2717	  3483
AOVCLR	   556#	  2739
AOVDIS	   554#	  2739
AOVENB	   555#	   570#
AOVFLO	   571#
APAREN	   579#	  2731
APARER	   578#	  2711
APDCLR	   547#	  2739
APDLOV	   562#	  2713
APR	  1472	  1696	  1855	  2084	  2281	  2322	  2335	  2481	  2647	  2680	  2681	  2683	  2684	  2713
	  2715	  2717	  2724	  2742	  2745	  2752	  2764	  2768	  2773	  2781	  2789	  2805	  2812	  2815
	  2843	  2846	  2850	  2857	  2885	  2936	  2944	  2954	  3111	  3296	  3299	  3301	  3479	  3499
	  3504	  3507	  3523	  3525	  3528	  3545	  4083	  5377	  5381	  5382	  5384	  5391	  5393
APWRFL	   577#	  2699
AROV	   402#
AROVTP	   721#	   730#	  2865
AROVU	   466#
AST	  1259#
ATRPOS	   569#
ATSIN	  1260#
AUSRIO	   563#
BEGEND	  1140#	  1439	  1446
BEGIN	    39	    40	    41	    42	    43	    44	    45	    46	    47	    48	    49	  1071#	  1444	  1535
	  2694	  2709	  2766	  2898	  3075	  5519
BEGIN1	  1087#	  1141
BELL	  1263#
BIS	   406#
CCA	   483#	  3290	  3321
CHAIN	   139#	  2287	  4107
CHNOFF	   513#	  2725	  2743	  2813	  2840
CHNON	   512#	  2733	  2746	  2822	  2858
CLK	   498#	  2681
CLKCLR	   491#	  2680	  2683	  2739	  2812	  2843	  2846                                                             SEQ 0227
CLKDFL	  3089	  4125	  4134	  4152	  4174#	  4174
CLKDIS	   489#	  2739	  2812	  2843	  2846
CLKENB	   490#	   497#
CLKU	   464#
CLOCKF	  1126#	  2124	  2250
CNTLC	  1143#	  4462	  5183
CNTRP	   744#	  2875
COMMA	  1252#
CONSW	  1127#	  1485	  1487#	  1487	  1898	  1905	  2001	  2016	  2036	  2853	  2940	  3083	  3372	  3843
	  4086	  4089	  4090	  4092	  4106	  4114	  4149	  4196	  4233	  4251	  4443	  4453	  5123	  5254
	  5256	  5425
CPIERR	  1427#	  2299	  2304	  2330	  2948
CPOPJ	  1147#
CPOPJ1	  1145#	  4358
CR01	  3139	  3206#
CR012	  3141	  3159#
CR0123	  3142	  3147#
CR013	  3140	  3194#
CR02	  3137	  3217#
CR023	  3138	  3182#
CR03	  3136	  3229#
CR12	  3133	  3241#
CR123	  3134	  3170#
CR13	  3132	  3253#
CR23	  3130	  3264#
CRLF	   269	   270	  1247#
CRLF2	   273	   274	  1249#
CRY0	   403#
CRY1	   404#
CSHFLG	  1306#	  1557	  1562	  2285	  3081	  3379	  4147
CSHMEM	  1307#	  3405	  3605	  3676	  3741
CTABLE	  3098	  3127#
CTRP	   745#	  2876
CYCL60	  1300#	  2220	  2222	  2242	  2244	  2267	  2283	  2324	  2337	  2501	  2503	  5379
DCK	   410#
DDT	    70#	  1396	  2442
DDTLNK	   153#	  1085	  1402#	  2446
DDTSRT	  1085#	  1490
DEBUG	    36#	  5989	  5990
DECVER	     3#	    10	    15	  1106	  1418
DF22F	  1211#	  4943#	  4943
DIAGMN	  1074#
DIAGNO	    69#	  1395
DIAMON	    71#	  1397	  1435
DIASWS	    72#	  4246
DING	   125#	  2065
DING10	    74#
DNG10C	    75#	  2119
DOLLAR	  1266#
DONG11	    73#	  2150
DSKUPD	  1111
DTE	    83#	  2119	  2150	  2194
DTE0	    84#                                                                                                            SEQ 0228
DTE1	    85#
DTE2	    86#
DTE3	    87#
DTEBER	  1425#
DTECER	  1426#
END	  5998#
ENDFIX	  1386#
ENDSLD	    38	  5963#
EOPERR	  1428#	  3065
ERMORE	  1160#	  2023
ERRPC	  1131#	  1517	  1806	  1866	  1881	  1904	  2056	  3021
ERRTLS	  1132#	  1443	  1862	  2074
ERSTOP	   128#	  2037	  2407	  2434
EXCASB	    34#	  1109
EXCMEM	   684#
EXCPFW	   737#	  2793
EXIOT	   408#
FOV	   405#
FOVU	   465#
FRDLNK	   151#	  2380	  2385
FSELNK	   150#	  2352	  2355
FXU	   409#
HYPEN	  1257#
IADBRK	   674#
IADEXC	   675#
IADSTP	   673#
IADUSR	   676#
IAPRC1	   603#
IAPRE1	   604#	  2857
IASRTC	   613#	  2812	  2843
IASRTE	   627#
IASRTS	   614#
ICNSLL	   638#
ICNSLR	   637#
IDATAF	   671#
IEVNPR	   655#
IFMMAN	   635#
IINSTF	   670#
IIOPFC	   615#	  2812	  2843
IIOPFL	   628#
IMAINT	   641#
IMGINM	   640#
IMGNLO	   643#
IMGNOF	   658#	  1855	  2815	  2850
IMGNON	   659#
IMIPGD	   636#
IMLAPD	   634#
INHCSH	   136#	  3084	  4150
INHPAG	   133#	  2855	  2942	  3374	  3845
INXCLR	   616#	  2812	  2843	  2846
INXM	   500#	   629#	  2773	  3485
INXSTP	   678#
IOCLR	   488#	  1472	  2739	  2812	  2843	  2846                                                                     SEQ 0229
IP50HZ	   639#	  2323
IPAREN	   624#	  2824
IPARER	   623#	  2768
IPRSTP	   677#
IPWRFL	   626#	  2752
IPWRLO	   642#
IRQCLR	   665#	  2813	  2840
ISPDOF	   656#	  1855	  2815	  2850
ISPDON	   657#	  3004
ITERAT	    57#	  1104
ITMDIS	   611#	  2812	  2843
ITMENB	   612#	  2829
ITMOEN	   625#	  2828
ITMOUT	   622#
ITMSET	   610#	  2829
ITRCH1	  1164#	  1695	  2533	  2543	  2563	  2633	  2706	  2759	  2780	  2788	  2804	  2892
ITRCNT	  1104#	  1434	  1530	  3019	  3027	  3039
ITRUSR	  2553	  2561#
IWRITE	   672#
JOB41	   424#	  1575	  1691	  2649
JOBAPR	   432#	  2554
JOBCNI	   433#	  2564
JOBDDT	   426#
JOBFF	   430#	  1480	  3394	  3415	  3433	  3935
JOBOPC	   435#	  2034	  4461	  5182	  5186
JOBREL	   425#	  3352
JOBREN	   431#	  4706
JOBSA	   429#	  1479
JOBSYM	   427#
JOBTPC	   434#	  2562
JOBUSY	   428#
JOBUUO	   423#	  1605	  1616	  1650	  1659	  1708	  1717	  1754	  1761	  1789	  1815
JOBVER	   436#	  2456	  2459
KA10	    31#	   536
KAHZ50	   141#	  2336
KAIFLG	  1121#	  1851	  2080	  2269	  2306	  2311	  2316	  2319	  2471	  2548	  2655	  2666	  3367	  3484
	  3519	  3521	  3596	  3850
KI10	    30#	   583
KL10	    28#	   751
KL10P0	    29#	   751	  1013
KLEXCK	  3276#	  3319	  3327
KLFLG	  1122#	  1503	  1513	  2057	  2093	  2138	  2268	  2274	  2278	  2469	  2546	  2614	  2653	  2664
	  2678	  2786	  2794	  2797	  3037	  3051	  3277	  3287	  3365	  3410	  3412	  3486	  3516	  3542
	  3594	  3705	  3707	  3848	  4080	  4082	  4118	  4289	  4306	  4346	  4385	  4701	  5086	  5199
	  5218	  5292
KLNSW	  2413	  2437	  4175#	  4175	  4178
KLOLD	   349
KLPAG	  2943	  3411	  3490#	  3595	  3706
KNTRP	   740#	  2871
KTRP	   741#	  2872
LAPRAL	   806#	  2936	  3525
LAPRP1	   773#	   839#	  2944
LAPRP2	   772#	   838#                                                                                                    SEQ 0230
LAPRP3	   771#	   837#
LAPRP4	   770#	   836#
LAPRP5	   769#	   835#
LAPRP6	   768#	   834#
LAPRP7	   767#	   833#
LAROVT	  1018#	  1031#
LCADEN	   815#
LCADRP	   763#	   829#	  2904	  2914	  2960
LCASDE	   818#
LCASLD	   990#	  3087	  3117	  3279
LCASLO	   989#	  3087	  3117	  3279
LCASWB	   824#	  3301
LCASWD	   766#	   832#
LCCAER	   792#
LCCASD	   804#
LCHNOF	   903#	  2935
LCHNON	   902#	  2945
LCIOPF	   784#
LCNTRP	  1043#
LCNTXT	  1037#
LCNXER	   780#	  3487
LCPAER	   788#
LCPWRF	   800#
LCSAER	   796#
LCSBER	   776#
LCSLOA	  1002#
LCSLOO	  1001#
LCTRP	  1044#
LCWSX	   955#	   974#
LDATAF	   847#	   865#
LDCAER	   791#
LDCASD	   803#	  3298
LDEXCB	   699#	  2327	  2818	  2856	  3413	  3597	  3708
LDIOPF	   783#
LDLNK	   152#	  1074	  1076
LDNXER	   779#
LDPAER	   787#
LDPWRF	   799#
LDSAER	   795#
LDSBER	   775#
LDUSRB	   691#	  2327	  2817	  2856
LEBXMH	  1052#
LEBXML	  1053#
LECAER	   790#
LECASD	   802#
LEIOPF	   782#
LENXER	   778#
LEPAER	   786#
LEPWRF	   798#
LESAER	   794#
LESBER	   774#
LEUPFW	  1048#	  2795	  2950
LEVNCD	   898#	   932#                                                                                                    SEQ 0231
LEVNPA	   896#	   930#
LEVNPD	   897#	   931#
LEXCMP	   850#	   868#
LFLGCL	   757#
LFLGDS	   756#
LFLGEN	   755#
LFLGST	   758#
LFP	  1261#
LINSTF	   846#	   864#
LINT	   840#
LIOCLR	   754#
LIOPFE	   761#	   813#	   827#	  2904	  2912	  2960
LIP	   588#
LKNTRP	  1039#
LKTRP	  1040#
LLACBL	   952#	   971#
LLDUSB	   954#	   973#	  2300
LLPRCN	   953#	   972#	  2300
LMBXMH	  1054#
LMBXML	  1055#
LMUUO	  1035#	  1651	  1699
LMUUOP	  1036#	  1649	  1694
LNXMEN	   812#
LNXMER	   760#	   826#	  2904	  2906	  2954	  2960	  3544
LOOPER	   127#	  1809	  2053
LPAREN	   814#
LPARER	   762#	   828#	  2904	  2908	  2960
LPDOVT	  1019#	  1032#
LPFWPC	  1049#	  2787	  2956	  2957
LPGFTR	  1050#	  2292	  2933
LPICH1	   906#	   941#
LPICH2	   907#	   942#
LPICH3	   908#	   943#
LPICH4	   909#	   944#
LPICH5	   910#	   945#
LPICH6	   911#	   946#
LPICH7	   912#	   947#
LPICHA	   913#	  2945
LPICLR	   900#	  2935
LPIIP1	   933#
LPIIP2	   934#
LPIIP3	   935#
LPIIP4	   936#
LPIIP5	   937#
LPIIP6	   938#
LPIIP7	   939#
LPIOFF	   904#	  2935
LPION	   905#	   940#	  2945
LPNTRP	  1045#
LPRCH1	   919#
LPRCH2	   920#
LPRCH3	   921#
LPRCH4	   922#                                                                                                            SEQ 0232
LPRCH5	   923#
LPRCH6	   924#
LPRCH7	   925#
LPRFMH	  1024#
LPRFML	  1025#
LPT	  5249	  5251
LPTRP	  1046#
LPWRFE	   817#
LPWRFL	   765#	   831#	  2885
LREQSE	   901#
LRQCLR	   899#	  2935
LSADEN	   816#
LSADRP	   764#	   830#	  2904	  2916	  2960
LSBSEN	   811#
LSBUSE	   759#	   825#	  2904	  2910	  2960
LSCAER	   793#
LSCASD	   805#
LSECMO	  1003#
LSIOPF	   785#
LSMODE	   991#
LSNTRP	  1041#
LSNXER	   781#
LSPAER	   789#
LSPWRF	   801#
LSSAER	   797#
LSSBER	   777#
LSTRP	  1042#
LTBASH	  1022#
LTBASL	  1023#
LTRP3T	  1020#	  1033#
LTRPAE	  1004#
LTRPEN	   992#	  3492
LUOERR	  1429#	  2651
LUSCMP	   849#	   867#
LUUO	   416#	  1848	  4785
LUUO1	  1191	  1192
LUUO10	  1191	  1196
LUUO11	  1191	  1196
LUUO12	  1191	  1197
LUUO13	  1191	  1197
LUUO14	  1191	  1198
LUUO15	  1191	  1198
LUUO16	  1191	  1199
LUUO17	  1191	  1199
LUUO2	  1191	  1193
LUUO20	  1191	  1200
LUUO21	  1191	  1200
LUUO22	  1191	  1201
LUUO23	  1191	  1201
LUUO24	  1191	  1202
LUUO25	  1191	  1202
LUUO26	  1191	  1203
LUUO27	  1191	  1203                                                                                                     SEQ 0233
LUUO3	  1191	  1193
LUUO30	  1191	  1204
LUUO31	  1191	  1204
LUUO32	  1191	  1205
LUUO33	  1191	  1205
LUUO4	  1191	  1194
LUUO5	  1191	  1194
LUUO6	  1191	  1195
LUUO7	  1191	  1195
LUUOI	   417#
LWRITE	   848#	   866#
MAPNEW	  1212#	  1437	  3355	  3386	  3416	  3639	  3702	  3726	  3799
MARGIN	  1134#	  1854	  2083	  2084	  2971	  2976	  2980	  2986	  2995	  3003
MCNVER	     4#	    10	    15	  1106	  1418
MEMLOW	  1214#	  3649	  3654	  3663	  3683	  3771	  3817	  3938
MEMMAP	    32#	  1112
MEMSIZ	  1215#	  3351	  3353	  3354	  3361	  3362	  3363	  3429	  3443	  3447	  3451	  3452	  3455	  3717
	  3721	  3766	  3768	  3818	  3821	  3826	  3887	  3908	  3911	  3913	  3916	  3918	  3926
MEMTOT	  1213#	  3934	  3944
MINUS	  1256#
MODCHK	  1403	  1415#
MODDVC	   135#	  3954
MODDVL	    37#	   334	  1107
MODDVU	    38#	   335	  1108
MODLNK	   154#	  1071	  1403#
MONCTL	  1124#	  1531	  1886	  2072	  2289	  2325	  2338	  2403	  2431	  2452	  2842	  2845	  2849	  3041
	  3890	  3894	  4084	  4085	  4109	  4191	  4293	  4707	  5375	  5435
MONFLG	  1123#	  1467	  1532	  2851	  2938	  3369
MONTEN	  1125#	  1533	  3060	  3069	  3073
MONTYP	  1338#
MPVU	   461#	  2555	  2571
MTR	    77#	  2206	  2224	  2227	  2241	  2246
MTRCNT	  2219	  2230	  2247	  2256	  5980#
MUOERR	  1424#	  1693
MUUO	   734#
MUUOER	  1653	  1689#	  2870
MUUOPC	   735#
NOEXEC	  1421#	  1539
NOPNT	   123#	  1882	  4731	  5139
NXMU	   462#	  2555	  2573
OPRSEL	   137#
OPTIME	  1226#	  4278	  4332
P	   180	   181	   182	   183	   394#	  1146	  1493	  1495	  1496	  1590	  1592	  1595	  1600	  1613
	  1631	  1674	  1675	  1676	  1679	  1804	  1814	  1864	  2359	  2427	  2582	  2583	  2585	  2636
	  3035	  3281	  3709	  3859	  4337	  4448	  4497	  4573	  4662
PAG	   481#	  2293	  2295	  2296	  2300	  2301	  2327	  2328	  2474	  2751	  2814	  2819	  2847	  2856
	  2883	  2884	  3058	  3087	  3116	  3118	  3279	  3413	  3491	  3493	  3597	  3708	  4143
PALERS	   129#	  1873
PARCLR	   507#	  2725	  2743	  2813	  2840
PARDIS	   508#	  2725	  2743	  2813	  2840
PAREA1	    51#	  1102
PAREA2	    52#	  1103
PAREA3	    53#	  1100                                                                                                     SEQ 0234
PAREA4	    54#	  1101
PAREA5	    55#	  1113
PAREA6	    56#	  1114
PAREA7	  1113#
PAREA8	  1114#
PARENB	   509#	  2732	  2746	  2825	  2858
PARU	   463#	  2555	  2567
PASCNT	  1128#	  1442	  1889	  1892	  3018	  3031
PATCH	  5990#
PDISF	  1223#	  4687#	  4687	  4758#	  4758	  4761
PDLOVU	   460#	  2555	  2569
PDOVTP	   722#	   731#	  2867
PERIOD	  1253#
PFSTRT	  1080#	  2761	  2894
PGFTRP	   720#	   729#	  2837
PGINGO	  1502#
PGMEND	    33#	  5997
PGMNAM	  1105	  1448#
PI	  1471	  1697	  2060	  2342	  2607	  2648	  2685	  2699	  2711	  2725	  2743	  2746	  2763	  2782
	  2790	  2806	  2813	  2840	  2858	  2935	  2945	  3039	  3477	  3478	  3531
PICHN1	   527#
PICHN2	   528#
PICHN3	   529#
PICHN4	   530#
PICHN5	   531#
PICHN6	   532#
PICHN7	   533#
PICHNA	   534#	  2746	  2858
PICLR	   510#	  1471	  2725	  2743	  2813	  2840
PIOFF	   514#	  2607	  2725	  2743	  2813	  2840	  3478
PION	   515#	   521#	  2746	  2858	  3530	  3531
PLERR	  1422#	  1672
PLERR1	  1423#	  1677
PLIST	  1292#	  1292	  1493	  1596	  1675	  1676	  2583
PLISTE	  1292	  1294#	  1598	  1676
PLISTS	  1293#
PLUS	  1258#
PNTENB	  1222#	  4694	  4728#	  4728	  5132
PNTEXT	  1101#	  5469
PNTFLG	  1221#	  4691#	  4691	  4718	  4726	  4751
PNTINH	  1224#	  4689#	  4689	  5089
PNTLPT	   124#	  4104	  4444	  4454	  5194	  5255	  5426
PNTNAM	  1100#	  5471
PNTRP	   746#	  2877
PNTSPC	  1225#	  4692#	  4692	  4993	  5007
POWER	  2349	  2350	  2361	  2382	  2383	  2672	  2676	  2686	  2688	  2702	  2703	  2705	  2755	  2756
	  2758	  2888	  2889	  2891	  2964	  5987#
PSHERR	  1491	  2520#
PTRP	   747#	  2878
PVPAGI	  1319#	  2854	  2941	  3373	  3844
PWFCLR	   506#	  2725	  2763	  2813	  2840
QUEST	  1264#	  5437
RADIX	  1267#	  5058                                                                                                     SEQ 0235
RADLSC	  1269#	  5054
RADLSP	  1268#	  5073
RANDBS	  1102#
REENTR	  1082#	  4705
REINIT	  1398	  1413#
RELIAB	   131#
REPT	   395#	  1801	  1870	  1879
REPT1	   396#	  1802	  1871	  1880
REPTU	  1180#	  1826#	  1826
REQSET	   511#
RESRT1	  1157#	  2545
RESRT2	  1158#
RESRTX	  2544	  2662#
RETURN	  1089#	  1436	  1536	  1547	  3061	  3070	  3074
RSTART	   120#
RTP	  1262#
RUNFLG	  1129#
SADR1	    39#	  1078
SADR10	    48#	  1094
SADR11	    49#	  1095
SADR2	    40#	  1080
SADR3	    41#	  1082
SADR4	    42#
SADR5	    43#	  1143
SADR6	    44#	  1144
SADR7	    45#	  1091
SADR8	    46#	  1092
SADR9	    47#	  1093
SBINIT	   193	  1088#
SCOPE	  1181#	  1516	  1810	  1811	  1850	  2054	  3020
SENSE1	   644#
SENSE2	   645#
SENSE3	   646#
SENSE4	   647#
SENSE5	   648#
SENSE6	   649#
SFSTRT	  1078#
SLASH	  1265#
SM10	  1369#
SMLUSR	   692#	   706#
SNTRP	   742#	  2873
SPACE	  1254#
SRTDDT	  1084#
START	    37	  1072	  1412#	  5999
START1	  1091#
START2	  1092#
START3	  1093#
START4	  1094#
START5	  1095#
STARTA	  1087	  1446#
STRP	   743#	  2874
SUBINI	  1404	  1414#
SUBLNK	   155#	  1088	  1404#                                                                                            SEQ 0236
SUBRTN	  1417#
SUBVER	  1418#	  2462	  2465
SWPTAB	  1375#
SWTEXR	  1103#
SYSEXR	  1076#
TAB	  1255#
TABLE0	  1635	  1638#
TESTPC	  1130#
TICKS	  1133#
TIM	    78#	  2207	  2221	  2223	  2243	  2245
TN0	   589#
TN1	   590#
TOTALS	   121#
TRP3TP	   723#	   732#	  2869
TRPENB	   700#	   708#	  2856	  3413	  3597	  3708
TTNBRF	  1313#	  4532	  4552
TTY	  4391	  4394	  5094	  5096	  5152	  5154	  5312	  5313	  5341	  5342	  5357	  5358	  5386	  5388
	  5396
TTYFIL	  1229#	  4695	  5315
TTYSPD	  1230#	  5344	  5362	  5373	  5409#	  5409
TXTINH	   132#	  1906	  2002	  2017
UOLIP	   596#
UOUSR	   597#
USER	  1120#	  1463	  1466	  1468	  1469	  1481	  1554	  1852	  2058	  2081	  2094	  2139	  2276	  2417
	  2467	  2528	  2613	  3025	  3050	  3067	  3079	  3276	  3286	  3345	  3585	  3637	  3866	  3874
	  3892	  4078	  4117	  4189	  4218	  4287	  4304	  4345	  4382	  4441	  4504	  4700	  4720	  5084
	  5142
USERF	   407#	  1465	  1528
USRASB	    35#	  1110
USRCMP	   693#	   707#
USRCRF	  1239#	  5148#	  5148	  5168
USRLFF	  1238#	  5146#	  5146	  5173
USRPFW	   738#
UUODIS	  1192#	  1625
UUOEXT	  1148#
UUORTN	  1149#	  1619
UUOSKP	  1146#
XOFFLA	  4690#	  4690	  5118	  5129	  5160
XONCHK	  5130	  5152#	  5159
$$DTE0	  2104	  2150#
$$DTE1	  2105	  2119#
$$DTE2	  2106	  2194#
$$DTEI	  2118#	  5976
$$DTER	  2121	  2129#
$$MUUO	  1344#	  1689	  1690
$$OUTE	  1350#	  5516	  5517
$$PAC0	  1462	  1518#	  1518
$$TAX1	  1362#	  4362	  4363
$$TAX2	  1363#	  4365	  4366
$$TOGG	  1356#	  4072	  4111	  4187
$$UUO	  1333#	  1588	  1589
$ACC0	  1171#	  2561	  2575	  2597	  2605	  2639	  2646#	  2646	  2652	  2704	  2757	  2890
$ACMP0	  3839#	  3839	  3860                                                                                             SEQ 0237
$ACMP1	  3471#	  3471	  3532
$ACMP2	  3472#	  3472	  3533
$ACMP3	  3473#	  3473	  3534
$ACMP4	  3588#	  3588	  3598
$ACMP5	  3629#	  3629	  3697
$ACMP6	  3630#	  3630	  3698
$ACMP7	  3631#	  3631	  3699
$ACMP8	  3632#	  3632	  3700
$ACMP9	  3633#	  3633	  3701
$ASCP1	  5028#	  5039
$ASCP2	  5031#	  5035
$ASCPN	  4772	  4791	  5027#
$BEND1	  1141#
$BEND2	  1142#	  2076	  2411	  2435	  2444
$CARCT	  4397	  4403	  4440	  5124#	  5124	  5133	  5136	  5208	  5215	  5266	  5273	  5429
$CFLUS	  1746	  2896	  3319#	  4046
$CHRIN	  1232#	  4437#	  4437	  4447	  4456
$CHRPN	  4799	  5016#
$CINVA	  1745	  3114	  3286#
$CLKDT	  2123#
$CLKOF	  2172	  2182#
$CLKON	  2174	  2179#
$CLKRD	  2170	  2190#
$CLKWT	  2176	  2185#
$CLKXX	  2180	  2188	  2193#
$CLOCK	  1750	  2169#
$CNVD	  4531#	  4531	  4602	  4611
$CNVX	  4543	  4600#
$CNVX1	  4564	  4609#
$CNVX2	  4612	  4621#
$CPAII	  2279	  2319#
$CPDP6	  2273	  2306#
$CPIII	  2322#
$CPINI	  2276#	  2317
$CPKA1	  2320	  2335#
$CPKAI	  2308	  2311#
$CPKL	  2270#
$CPLII	  2280#
$CPUTP	  1502	  2267#
$CPX1	  2331	  2341#
$CRLF	  1234#	  4696#	  4696	  5202
$CSH	  3087#
$CSH1	  3107#	  3112	  3122
$CSH2	  3116#
$CSH3	  3100	  3102	  3104	  3106	  3121#
$CSHER	  3124#	  3308
$CSHX	  3303	  3307#
$CSHZ	  3292#	  3322	  3330
$CWRTB	  1746	  3057	  3327#	  3565
$DCCMP	  5058#
$DCSPS	  5072#
$DDT	    93#
$DDTEN	  1489	  2441#	  4452	  5100                                                                                     SEQ 0238
$DECP1	  5064#	  5070	  5072
$DECPN	  4793	  5047#
$DECSP	  4795	  5045#
$DEVCH	   474#	  5462	  5473	  5477	  5478	  5481	  5493	  5504	  5505	  5509
$DRPDV	  1729	  5502#
$DSKUP	  1111#
$DTCHR	   105#	  4369	  4375	  4415
$DTCI	    99#	  2125	  2126	  2171	  2177	  2185
$DTCLK	    98#	  2101	  2120	  2123
$DTCMD	   102#	  2146
$DTEIN	  1506	  2093#
$DTER1	  2096#	  2096	  2143
$DTEX1	  2142#
$DTEX2	  2145#
$DTEX3	  2154#
$DTEXX	  2138#	  2183	  2191	  2195	  2415	  2439	  3044	  3064	  4170	  4173	  4310	  4412	  4739	  5335
$DTF11	   101#	  2147	  2155
$DTFLG	    97#	  2098	  2101	  2142	  2145	  2151	  2154
$DTMTD	   106#
$DTMTI	   107#
$DTOPR	   104#	  2103
$DTRPT	  2107	  2127	  2133	  5975#
$DTSEQ	   103#	  2102	  2148
$DTSWR	   108#	  2286	  4171	  4180
$DTT11	   100#	  2186
$DVCH1	   475#
$DVOFF	  1228#	  4686#	  4686	  5444	  5480	  5502	  5510
$DVTTY	  5456#	  5456	  5484
$ECK	  1530#
$EG177	  1713	  1761#
$EG4	  1715	  1754#
$EGX	  1757	  1759	  1764	  1767	  1770	  1772#
$EMODE	  1109#	  1537
$END	  1750	  3018#
$END1	  3028#
$END2	  3024	  3030#
$END3	  3028	  3035#
$END4	  3026	  3037#
$EOP	  1752	  3050#
$EOP1	  3052	  3067#
$EOP2	  3068	  3073#
$ERH0	  2396	  2398#	  2398	  2418	  2420
$ERHL1	  2406#
$ERHL3	  2410#
$ERHL4	  2404	  2408	  2413#
$ERHLT	  1751	  2043	  2393#
$FATAL	  1751	  2424#
$FATL1	  2432	  2437#
$FFEED	  5226	  5283#	  5286
$FFF	  1236#	  4698	  5223
$FRD36	  1748	  2374#
$FRD8	  1749	  2372#
$FREAD	  1748	  2376#                                                                                                    SEQ 0239
$FSEL1	  2353	  2366#
$FSEL2	  2356	  2360#	  2367	  2386	  2387
$FSELE	  1747	  2347#
$FSELF	  2348#	  2348	  2358	  2378
$HEAR	  4318	  4335	  4382#	  4460
$HEAR1	  4400	  4460#
$HEAR2	  4445	  4447#	  4455	  4458
$HEAR3	  4439	  4451#
$HEAR4	  4297	  4323	  4402	  4406	  4416	  4424	  4431#
$IBUF	  1284#
$INEXT	  1286#
$INNM	  1285#
$INTD1	  5476	  5486#
$INTD2	  5477#	  5497
$INTDF	  4685#	  4685	  5486	  5492
$INTDV	  5445	  5469#
$IPGFL	  2291	  2948#
$ITR1A	  2593	  2596	  2600	  2613#	  2921	  2923	  2925	  2927
$ITR1B	  1702	  2590	  2615	  2624#	  2800	  2808	  2961
$ITRC1	  2542	  2646#
$ITRHL	  1152#	  2606
$ITRHZ	  2577	  2605#	  2719	  2775	  2905	  2918
$ITRIN	  1510	  2528#
$ITRUS	  2529	  2553#
$ITRX1	  1153#	  2640
$KA10	  2549	  2741#
$KACLR	  2742#
$KAENB	  2745#
$KAINT	  2724	  2739#	  2742
$KAIT1	  2700	  2711#
$KAITR	  2656	  2699#
$KAMPV	  2716#
$KAMUU	  1608	  1610	  1647#
$KANXM	  2718#
$KAPAR	  2712#
$KAPDL	  2714#
$KAPWR	  2702#
$KARST	  2667	  2724#
$KI10	  2550	  2835#
$KI10A	  2836#
$KICLR	  2840#
$KIENB	  2849#
$KIIT1	  2753	  2768#
$KIITR	  2657	  2751#
$KIKLI	  2838	  2864#	  2934
$KINXM	  2769	  2773#
$KIPWR	  2755#
$KIRST	  2668	  2812#
$KISN	  2474#
$KISNX	  2474#	  2474	  2475
$KL10	  2547	  2932#
$KLCAD	  2915	  2924#
$KLCLR	  2935#	  2965                                                                                                     SEQ 0240
$KLCSH	  1514	  2966	  3079#
$KLENB	  2938#
$KLIOP	  2913	  2922#
$KLIT1	  2886	  2900#	  2962
$KLITR	  2654	  2883#
$KLPGF	  2932	  2950#
$KLPWR	  2888#
$KLRST	  2665	  2964#
$KLSAD	  2917	  2926#
$KLSBE	  2911	  2920#
$KLSN	  2470	  2481#
$KLSNX	  2481#	  2481	  2482	  2486	  2491	  2496
$KLSWI	  4102	  4169#	  4179
$KLSWR	  4081	  4178#
$LDSPS	  5061	  5069#
$M2	  3507#
$M4	  3548#
$M5	  3505	  3560#
$M6	  3546	  3563#
$M7	  3551	  3568#
$MAC0	  1648#	  1648	  1652
$MAPEX	  1504	  1554#
$MDEND	  4029	  5630#
$MDLST	  4029	  5531#	  5630
$MDSR1	  4037#	  4041
$MDSR2	  4032	  4038#
$MDSRC	  3980	  3983	  4027#
$MDVCN	  3976#	  3976	  3982	  4000	  4059
$MDVCO	  3971#	  3971	  3979	  4002	  4058
$MEEX1	  3365#
$MEMEX	  3346	  3361#
$MEMKI	  3366	  3369#
$MEMMP	  1512	  1745	  3345#
$MEPAG	  3375	  3377#
$MMAP	  1112#	  1511
$MNCON	  3634#	  3634	  3685	  3693
$MODCK	  1415	  1527#
$MODD0	  3957#
$MODD1	  3964#	  3988	  3990
$MODD2	  3969	  3974	  4010#
$MODD3	  3968#	  4044
$MODD4	  3973#
$MODD5	  3978#
$MODD6	  3981#
$MODD7	  3986#
$MODD8	  3989	  3996#	  4064
$MODD9	  4013#
$MODDB	  3957#	  3957	  4049	  4060
$MODDC	  3958#	  3958	  4048	  4061
$MODDD	  3959#	  3959	  4047	  4062
$MODDP	  1730	  4056#
$MODDV	  1730	  3953#
$MODDX	  3966	  4046#	  4065                                                                                             SEQ 0241
$MODER	  4014	  4017	  4019	  4043#
$MODVL	  1107#	  3996	  3999
$MODVU	  1108#	  3997
$MPAD2	  3847	  3851	  3865#
$MPAD3	  3842	  3860#	  3863	  3867	  3873	  3880
$MPAD4	  3854	  3862#
$MPAD5	  3855#	  3864
$MPAD6	  3852#
$MPAD7	  3859#	  3877	  3882
$MPADL	  3849	  3874#
$MPADR	  1732	  3572	  3839#
$MPCM1	  3432#	  3441	  3448
$MPCM2	  3435	  3450#
$MPCM3	  3443#
$MPCMB	  3401	  3418	  3424#
$MPCMX	  3445	  3455#
$MPCN1	  3483#	  3566
$MPCNK	  1733	  3399	  3417	  3471#	  3652
$MPCXX	  3560	  3563	  3568	  3571#
$MPEXM	  3538#	  3550	  3561
$MPNEW	  3394#
$MPNXM	  3488	  3499#	  3510
$MPOL1	  3368	  3370	  3376	  3414#
$MPOLD	  3387	  3403#
$MPRKL	  3517	  3525#
$MPRPI	  3524	  3529#
$MPRST	  3516#	  3569
$MPSE1	  3588#
$MPSE2	  3589	  3601#
$MPSE3	  3594#	  3613
$MPSET	  1733	  3397	  3585#	  3650
$MPVU	  2572	  2592#	  2716
$MSAPR	  3479#	  3479	  3518	  3526
$MSEG	  1731	  3629#	  3807
$MSEG2	  3684	  3691#	  3743
$MSEG3	  3655	  3696#	  3718	  3720	  3763	  3767	  3769	  3776	  3779	  3783	  3788
$MSEG4	  3705#
$MSEGP	  3643	  3714#	  3780
$MSEGV	  3644	  3649#
$MSGV1	  3654#
$MSGV2	  3660#	  3686
$MSGV3	  3678	  3683#
$MSKA	  3640	  3760#	  3785
$MSKAP	  3727	  3761	  3778#	  3787
$MSPI	  3477#	  3477	  3529
$MSUSR	  3638	  3785#
$MTIR1	  2250#	  2263
$MTIR2	  2249	  2255#
$MTIR3	  2258	  2262#
$MTRAC	  2255	  2259	  2262	  5981#
$MTRI	  1473	  2208	  2215	  2233	  2251	  2252	  5978#
$MTRIR	  2217	  2240#	  2253	  2260
$MTROF	  2210	  2227#                                                                                                    SEQ 0242
$MTRON	  2212	  2217#	  2235
$MTROP	  1747	  2204#
$MTRRD	  2205	  2230#
$MTRW	  2214	  2233#
$MTRWC	  1474	  2209	  2234	  2248	  2257	  5979#
$MZRO	  1732	  3797#
$MZRO1	  3802#	  3809	  3814
$MZRO2	  3800	  3816#
$MZRO3	  3821#	  3828
$MZROB	  3797#	  3797	  3831
$MZROC	  3798#	  3798	  3830
$MZROX	  3805	  3819	  3822	  3830#
$NEGF	  4530#	  4530	  4570	  4597
$NEGX	  4541	  4595#
$NOUSR	  1543#
$NOYES	  1737	  4472#
$NXMU	  2574	  2595#	  2718	  2774	  2907
$OBUF	  1275#	  5458	  5460	  5475	  5495
$OERR1	  5496	  5521#
$OERR2	  5479	  5525#
$ONETM	  1135#	  1441	  1515	  2288	  3897	  4709	  5371
$OPTLK	  1736	  4200	  4206	  4331#	  4481	  4489	  4538	  4642
$OUTER	  5513#	  5523	  5527
$OUTEX	  1277#	  5470
$OUTNM	  1276#	  5472	  5478
$PACA1	  4746	  4762	  4778#	  4778
$PACA2	  4747	  4763	  4779#	  4779
$PACA3	  4748	  4764	  4780#	  4780
$PACA4	  4749	  4765	  4781#	  4781
$PACA5	  4750	  4766	  4782#	  4782
$PACB0	  5082#	  5082	  5237
$PACC4	  5422#	  5422	  5424	  5433	  5448
$PAPER	    59#	   387	   536	   583	   751	   859	  1013
$PARER	  1159#	  2598
$PAREX	  2568	  2597#	  2712	  2771	  2909
$PARKI	  2771#
$PDLOV	  2780#	  2866
$PDOVP	  1674	  1681	  2582#	  2582	  2587
$PDOVU	  2570	  2582#	  2714	  2783
$PDP6	  2309	  2316#
$PGFL	  2786#	  2836	  2953	  2955
$PGFL1	  2793#
$PGFL2	  2798	  2959#
$PGMIN	  1414	  1462#
$PGMN1	  1470	  1479#
$PMAP	  1734	  3356	  3453	  3459	  3886#
$PMAP1	  3893	  3896	  3899#
$PMAP3	  3891	  3897#
$PMAP4	  3909	  3934#
$PMAP5	  3921	  3931#
$PMAP6	  3939	  3941	  3949#
$PMAP7	  3922#
$PMAPL	  3899	  3908#	  3932                                                                                             SEQ 0243
$PMG1	  2973#	  2973	  3007
$PNAME	  1105#	  1546	  2454
$PNM1	  2472	  2480	  2501#
$PNM2	  2453	  2468	  2506#
$PNT	  4784#	  4784	  4997#	  4997	  5001	  5006	  5025#	  5025	  5037	  5045	  5069
$PNTB1	  4761#
$PNTC2	  4944	  4959#
$PNTC3	  4955#	  4971
$PNTCF	  1728	  4973#	  4975
$PNTCW	  1728	  4939#	  4976	  4978
$PNTI1	  4801	  4984#	  5008
$PNTI2	  4988#	  4991	  5002
$PNTI3	  4797	  5004#
$PNTI4	  4744#	  4998	  5009	  5019	  5033	  5038	  5052
$PNTIA	  4740	  4778#
$PNTIB	  4729	  4757#
$PNTIC	  4789#
$PNTIF	  1711	  4718#
$PNTIN	  1507	  4685#
$PNTIT	  1709	  4726#
$PNTIX	  4705#	  5374	  5411
$PNTLN	  4790	  5025#
$PNTMG	  1734	  2026	  2971#
$PNTNM	  1729	  2452#	  4105	  4711
$PNTSV	  4992#	  4992	  4999
$PNTSX	  1727	  4811#
$PNTTY	  4719#	  4719	  4727	  4737	  4744	  4767	  5137	  5257	  5447
$PNTY1	  5197#	  5244	  5246	  5260
$PNTY2	  5200	  5203	  5205	  5207	  5210	  5217#
$PNTY3	  5228	  5232#
$PNTYC	  5083#	  5083	  5217	  5259
$POCS	  1743	  4893#
$POCS1	  4901	  4908#
$POCS2	  4913#	  4922
$POCS3	  4910	  4917#	  4931
$POCS4	  4922#	  4930
$POCS5	  4915	  4930#
$POCSF	  1743	  4889#
$POINT	  5027#	  5027	  5029	  5036
$PRNTX	  4734	  4751#	  4759
$PSHER	  1163#	  1492	  1494	  1678	  2584
$PSIX	  1742	  4845#
$PSIX1	  4854#	  4870
$PSIX2	  4857#	  4869
$PSIX3	  4869#	  4875
$PSIX4	  4862	  4872#
$PSIX5	  4860	  4877#
$PSIXF	  1742	  4841#
$PTCA	  4939#	  4939	  4956	  4973
$PTCB	  4941#	  4941	  4955
$PTINH	  4688#	  4688	  4723	  5113	  5126	  5131	  5161	  5197
$PTKL	  4724	  4732	  4736#
$PTMG1	  2978	  3003#                                                                                                    SEQ 0244
$PTNXT	  5460#	  5463
$PTSXF	  1727	  4824#
$PUTBF	  5457	  5459	  5462#
$PUTCR	  5446	  5456#
$PVER	  1106#
$PWRF	  2662	  2675#	  2675	  2708	  2744	  2765	  2897
$PWRFL	  2663	  2692#
$PWRST	  2690	  2707#	  2707	  2760#	  2760	  2893#	  2893
$RADIX	  5051	  5054#	  5062
$REINI	  1413	  1441#
$ROW	  2988	  3010#
$RSRTX	  1155#	  2677
$RSRTY	  1156#	  2689
$RSTCM	  2670#	  2734	  2831	  2967
$SBRD	  2621	  2901	  5969#
$SBRD1	  2280	  2902	  5972#
$SBSRT	  1412	  1433#
$SNPNT	  2479	  2484	  2509#
$SPAG1	  1175#	  2884#	  2884
$START	  1072#	  1538	  1542
$STD	    92#
$STL	    94#
$STM	    95#
$SUBUO	  1612	  1634#
$SVAPR	  1173#	  1696	  2565	  2627#	  2627	  2647	  2671	  2684	  2726	  2781	  2789	  2805	  2823	  2903
	  2959
$SVCSW	  1486#	  1486	  4243	  4249
$SVERA	  2618	  2900	  5967#
$SVPAG	  1174#	  2751#	  2751	  2816	  2883#	  2883
$SVPI	  1172#	  1697	  2566	  2630#	  2630	  2648	  2670	  2685	  2728	  2730	  2782	  2790	  2806	  2820
$SVUPC	  1178#	  1615
$SVUUO	  1177#	  1617	  1621
$SW	  4205#	  4205	  4208	  4227#	  4227	  4232
$SW0	  4099	  4186#	  4364
$SW1	  4199#	  4201	  4207	  4220	  4250
$SW10	  4192	  4246#
$SW11	  4194	  4249#
$SW12	  4195#	  4252
$SW2	  4214	  4224#	  4226
$SW3	  4229#	  4231
$SW4	  4222	  4233#	  4244	  4247
$SW5	  4234#
$SW6	  4210	  4221#
$SW7	  4216	  4238#
$SW8	  4190	  4235#	  4239	  4242
$SW9	  4188	  4212	  4241#
$SWCH1	  4084#	  4091
$SWERR	  4203	  4218#
$SWFLG	  1488#	  1488	  2830#	  2830	  4074	  4101
$SWIN1	  4100#
$SWIN3	  4148	  4151	  4156	  4166#
$SWONC	  4098#	  4098	  4100	  4193	  4241
$SWTCH	  1731	  1808	  1863	  2027	  2406	  2433	  3022	  3953	  4072#	  4103	  4730                             SEQ 0245
$SWTIN	  1509	  4097#
$SWU1	  4075	  4077	  4090#
$SWU2	  4073	  4092#
$SWUSR	  4079	  4088#
$TABF	  1235#	  4697	  5219
$TABS	  5222	  5266#
$TABS1	  5271#	  5274
$TACB4	  4331#	  4331	  4339
$TACC1	  4475#	  4475	  4500
$TACC2	  4476#	  4476	  4498
$TACD1	  4524#	  4524	  4572	  4579
$TACD2	  4525#	  4525	  4568	  4578
$TACD3	  4526#	  4526	  4567	  4577
$TALT1	  4354	  4358#
$TALT2	  4352#	  4376	  5103
$TALT3	  4348	  4369#
$TALTM	  1739	  2031	  4345#
$TIEX1	  4291	  4391#
$TIEX2	  4314	  4394#
$TIEXC	  4385#
$TIKL	  4386	  4411#
$TISIX	  1740	  4637#
$TIUSR	  4383	  4423#
$TOUB1	  5128	  5135#
$TOUB2	  5138	  5142#
$TOUB3	  5146#
$TOUT	  4990	  4996	  5018	  5034	  5049	  5066	  5074	  5082#
$TOUT1	  5195	  5243#
$TOUT2	  5144	  5176	  5422#
$TOUT3	  5427	  5444#
$TOUT4	  5431	  5435#
$TOUT5	  5432#	  5436	  5438
$TOUT6	  5429#	  5449
$TOUTA	  5150	  5167	  5172	  5174	  5198	  5233	  5237#	  5258	  5275	  5287
$TOUTB	  5085	  5087	  5090	  5095	  5114	  5117	  5123#	  5185	  5189
$TOUTC	  5143	  5194#
$TOUTV	  5108	  5116#
$TOUTW	  5104	  5107#
$TOUTX	  5099#
$TOUTY	  5089#
$TOUTZ	  5094#
$TPCK	  4549	  4586#
$TPCNV	  1738	  4518#
$TPCV1	  4519	  4521	  4524#
$TPDEC	  1738	  4520#
$TPERR	  4539	  4550	  4562	  4576#	  4596	  4601	  4614
$TPEX1	  4567#	  4619	  4628
$TPEXT	  4545	  4547	  4561#
$TPMUL	  4554	  4589#
$TPNBR	  4561	  4592#
$TPOCT	  1737	  4010	  4225	  4230	  4522#
$TRP3	  2804#	  2868
$TSX1	  4637#	  4637	  4665                                                                                             SEQ 0246
$TSX2	  4638#	  4638	  4666
$TSXB1	  4642#	  4660
$TSXB2	  4645	  4647	  4662#
$TSXB3	  4643	  4650	  4654	  4658	  4664#
$TSXB4	  4653	  4656#
$TTCHR	  1231#	  4295	  4322	  4395#	  4395	  4414	  4423#	  4423	  4431
$TTLK	  1739	  4286#	  4349
$TTLK1	  4288	  4293#
$TTYIN	  1740	  4304#
$TTYIX	  4307	  4318#
$TTYIY	  4305	  4322#
$TTYSP	  1419#	  5410	  5413
$TUTX2	  5102	  5157	  5184#
$TUTX3	  5105	  5188#
$TWCNT	  1227#	  4338
$TYAC0	  5298#	  5298	  5325
$TYAC1	  5299#	  5299	  5326
$TYAC2	  5300#	  5300	  5327
$TYFBL	  5323	  5366#
$TYFC1	  5348#	  5364
$TYFCR	  5321	  5341#
$TYFLF	  5319	  5362#
$TYFLX	  5355#	  5360	  5367
$TYKL	  5293	  5333#
$TYMN1	  5377#	  5414	  5416
$TYMN2	  5409#	  5417
$TYMON	  5376	  5413#
$TYOU1	  5298#
$TYOU2	  5318#
$TYOU3	  5303	  5316	  5325#	  5355
$TYOU4	  5312#
$TYOUT	  4396	  4405	  5110	  5112	  5212	  5214	  5232	  5272	  5285	  5292#
$TYPIN	  1508	  4277#
$TYPL1	  4552#
$TYPLP	  4538#	  4557	  4598	  4603
$TYPNB	  1233#	  4529#	  4529	  4576
$TYSP1	  5386#	  5390
$TYSP2	  5388#	  5392	  5394
$TYSP3	  5389	  5391#
$TYSP4	  5396#
$TYSPD	  4703	  5371#
$UCK	  1529	  1541#
$UMODE	  1110#	  1541
$UMPV	  2572#
$UNXM	  2574#
$UOERX	  1576	  1659#	  1741	  1749	  1752	  1799
$UOPLE	  1591	  1593	  1597	  1599	  1602	  1604	  1671#
$UORTN	  1574	  1588#	  1692	  2650
$UORTX	  1150#	  1668
$UOTAB	  1723	  1726#
$UPAR	  2568#
$UPDL	  2570#
$UPLER	  1578#	  1578	  1671	  1673                                                                                     SEQ 0247
$USRF1	  5169	  5174#	  5177
$USRFC	  5149	  5166#
$USRFL	  5147	  5171#
$USRHL	  1154#	  2576
$USRMP	  3351#
$USRUO	  1613#
$USWTF	  4076	  4097#	  4097	  4234	  4238
$UUO37	  1641	  1708#
$UUOER	  1151#	  1192	  1577
$UUOIN	  1505	  1574#
$VTAB	  5230	  5280#
$VTF	  1237#	  4699	  5227
$XUUO	  1626#	  1724
$YESNO	  1736	  3965	  3987	  4474#
$YN1	  4479#	  4506
$YN2	  4482	  4490	  4498#
$YN3	  4486	  4496	  4503#
$YN4	  4492	  4494	  4508#
%AC0	  1834#	  1834	  1840	  2019	  2021	  2022	  2077
%AC1	  1835#	  1835	  1841	  1948	  1972
%AC2	  1836#	  1836	  1842	  1950	  1974
%AC3	  1837#	  1837	  1843	  1952	  1976
%ACTFL	  1184#	  1861#	  1861	  1968
%ACTUL	  1185#	  1986#	  1986	  1992
%COREC	  1183#	  1962#	  1962	  1991
%CORFL	  1182#	  1860#	  1860	  1944
%DISCR	  1186#	  1924#	  1924	  1942	  1966	  1989	  1996
%EACR	  1840#	  1900	  2042
%EACR1	  1841#	  2013	  2071
%EACS	  1834#	  1859	  2025
%ERCNT	  1885#	  1885	  2055
%ERFLG	  1788#	  1788	  1800	  1868
%ERFST	  2045#	  2045	  2047
%ERHI1	  1325#	  1857	  1858
%ERHI2	  1326#	  2078	  2079
%ERHI3	  1327#	  1901	  1902
%ERIN1	  1961	  1985	  1995	  5983#	  5985
%ERIN2	  1938	  5984#
%ERLP	  1639	  1788#
%ERLP0	  1797	  1800#
%ERLP1	  1795	  1804#
%ERLP2	  1793	  1808#
%ERMOR	  2015	  2018	  2022#
%ERP2A	  1946	  1954#
%ERP2B	  1929#
%ERP3A	  1970	  1978#
%ERPNT	  1867	  1872	  1879#
%ERPR1	  1910	  1916#
%ERPR2	  1907	  1920	  1924#
%ERPR3	  1943	  1963#
%ERPR4	  1967	  1988#
%ERPR5	  1990	  2001#
%ERPR6	  2003	  2007	  2011#                                                                                            SEQ 0248
%ERPRA	  1887	  2045#
%ERPRB	  1889#	  2048
%ERS1A	  2042#
%ERSW1	  1874	  1883	  2031#
%ERSW2	  2038	  2053#
%ERSW3	  2059	  2065#
%ERUUO	  1640	  1848#
%ERX	  1813#	  1827
%ERX1	  1803	  1807	  1812	  1817#	  1828
%ERXTR	  2014#	  2014	  2020
%EXCAL	  2071#
%EXCL1	  2073	  2077#
%LUUO	  1849#	  1849	  1929
%REPT	  1638	  1826#
%RP	  1801	  1870	  1879#	  1879
%RP1	  1802	  1871	  1880#	  1880
.JB41	   442#
.JBAPR	   450#
.JBCNI	   451#
.JBDDT	   444#
.JBFF	   448#
.JBOPC	   453#
.JBREL	   443#
.JBREN	   449#
.JBSA	   447#
.JBSYM	   445#
.JBTPC	   452#
.JBUSY	   446#
.JBUUO	   441#
.JBVER	   454#

APRENB	  2556
CFLUSH	   305#                                                                                                            SEQ 0249
CINVAL	   304#
CLOKOP	   299#	  3055
CLRBFI	  4219	  4505
CWRTBI	   306#
DEVCHR	  5482
DROPDV	   266#	  5428
ENDUUO	   312#	  1140
EOPUUO	   313#	  1142
ERLOOP	   357#
ERLP1	   358#
ERLP2	   359#
ERRHLT	   200#
ERROR	   366#
ERROR1	   377#
ERUUO	   356#
EXIT	  2419	  3071	  5518
FATAL	   199#	  1669	  1683	  1935	  2379	  2381	  2522	  2641	  3126	  3428	  3481	  3573	  3602	  3636
	  3667	  3671	  3773	  3808	  4315
FRD36	   341#
FRD8	   342#
FREAD	   340#
FSELEC	   339#
GET	   183#	  1618	  1630	  1647	  1649	  1658	  1661	  1664	  1772	  1798	  1813	  1817	  1856	  2132
	  2351	  2363	  2384	  2396	  2410	  2416	  2445	  2511	  2623	  3309	  3310	  3311	  3312	  3313
	  3494	  4235	  4733	  4757	  4783	  4818	  4831	  4877	  4878	  4879	  4880	  4881	  4923	  4924
	  4925	  4926	  4927	  5336
GO	   180#	  1502	  1504	  1505	  1506	  1507	  1508	  1509	  1510	  1512	  1514	  1574	  1692	  1808
	  1859	  1863	  1900	  2013	  2020	  2025	  2026	  2027	  2031	  2042	  2071	  2355	  2385	  2406
	  2415	  2433	  2439	  2479	  2484	  2650	  2838	  2896	  2934	  2943	  2965	  2966	  3022	  3026
	  3044	  3057	  3064	  3114	  3319	  3327	  3397	  3399	  3411	  3417	  3560	  3563	  3565	  3568
	  3572	  3595	  3650	  3652	  3706	  3807	  3953	  3965	  3987	  3989	  4010	  4046	  4064	  4081
	  4099	  4102	  4103	  4105	  4170	  4173	  4179	  4200	  4206	  4225	  4230	  4310	  4314	  4318
	  4323	  4335	  4349	  4364	  4396	  4405	  4412	  4481	  4489	  4538	  4642	  4730	  4739	  5051
	  5062	  5103	  5110	  5112	  5130	  5212	  5214	  5232	  5272	  5285	  5335	  5445	  5446
HALT	   185#	  1161	  1421	  1422	  1423	  1424	  1425	  1426	  1427	  1428	  1429	  1539	  1672	  1677
	  1693	  2299	  2304	  2330	  2418	  2651	  2694	  2709	  2766	  2898	  2948	  3065	  3075
INCHRS	  4295
INCHRW	  4322	  4442
INCHWL	  4423
JEN	   187#	  2127	  2133	  2253	  2260
JRSTF	   186#	  2690	  2957
MAPADR	   322#
MAPCNK	   323#
MAPMEM	   319#
MAPPNT	   325#
MAPSET	   324#
MEMSEG	   321#
MEMZRO	   320#
MODPCP	   332#
MODPCU	   331#
MTROP	   300#
NAME	     7#	    10
OUTCHR	  5432                                                                                                             SEQ 0250
OUTSTR	  1543	  1546	  5437	  5487	  5506	  5513	  5521	  5525
PBELL	   275#	  2066
PCRL	   269#	  1667	  2008	  2011	  2506	  2638	  3006	  3905	  3929	  3946	  3947	  4166	  4446	  4874
PCRL2	   273#
PCRL2F	   274#
PCRLF	   270#	  2401	  2430	  3034	  3984	  4116	  4503	  4872
PFORCE	   277#	  1884
PGMINT	   193#	  1438	  2692
PJRST	   184#	  2183	  2191	  2195
PMSG	   279#	  1660	  1698	  1891	  1894	  1897	  2455	  2461	  2485	  2490	  2495	  2502	  2504	  2510
	  2586	  2617	  2620	  2626	  2791	  2974	  2979	  2985	  2994	  3002	  3005	  3901	  3904	  3943
	  4124	  4133	  4142	  4157	  4159	  4161	  4163	  4165
PMSGF	   282#	  1680	  2130	  2394	  2425	  2520	  2674	  2693	  3030	  3124	  3457	  3964	  3968	  3973
	  3978	  3981	  3986	  4043	  4113	  4195	  4199	  4224	  4229	  4479
PNT1	   235#	  4146
PNT11	   249#
PNT11F	   250#
PNT1F	   236#
PNT2	   237#
PNT2F	   238#
PNT3	   239#
PNT3F	   240#	  4035
PNT4	   241#
PNT4F	   242#
PNT5	   243#	  4949
PNT5F	   244#	  4947
PNT6	   245#	  1896	  2637	  4962	  4970
PNT6F	   246#	  2400	  2429	  4960	  4968
PNT7	   247#
PNT7F	   248#
PNTA	   221#	  1937
PNTADF	   252#	  4952
PNTADR	   251#	  3912	  3914	  4954
PNTAF	   222#
PNTAL	   223#	  1771
PNTALF	   224#	  1769
PNTCHF	   234#	  1756	  4829	  4866	  4903	  4918	  4964
PNTCHR	   233#	  1758	  2984	  2993	  4457	  4816	  4868	  4905	  4920	  4966
PNTCI	   231#	  2458	  2464	  3915	  3925
PNTCIF	   232#	  3033
PNTCW	   267#
PNTCWF	   268#
PNTDCF	   260#	  3032
PNTDEC	   259#	  1893	  2512	  3001	  3922	  3928	  3945
PNTDS	   261#
PNTDSF	   262#
PNTHW	   255#	  1662	  1666	  1700	  1899	  2588	  2619	  2622	  2628	  2631	  2634	  2796	  2975
PNTHWF	   256#	  1682	  4115	  4197
PNTMGN	   346#
PNTMSF	   228#
PNTMSG	   227#	  2454
PNTNM	   263#	  2046	  2393	  2424
PNTOCF	   258#                                                                                                            SEQ 0251
PNTOCS	   257#	  2457	  2460	  2463	  2466	  2489	  2494	  2499
PNTOCT	   253#
PNTOTF	   254#
PNTSIX	   264#	  4132	  4140
PNTSXF	   265#	  4040
PSIXL	   225#	  1766	  1911	  1913	  1921	  1923	  1959	  1983	  1993	  2010	  2625
PSIXLF	   226#	  1763
PSIXM	   229#	  1660	  1698	  1891	  1894	  1897	  2455	  2461	  2485	  2490	  2495	  2502	  2504	  2510
	  2586	  2617	  2620	  2626	  2792	  2974	  2979	  2985	  2994	  3002	  3005	  3901	  3904	  3943
	  4124	  4133	  4142	  4157	  4159	  4161	  4163	  4165
PSIXMF	   230#	  1680	  2131	  2395	  2426	  2521	  2674	  2693	  3030	  3125	  3458	  3964	  3968	  3973
	  3978	  3981	  3986	  4043	  4113	  4195	  4199	  4224	  4229	  4480
PSP	   271#	  1663	  2629	  2632	  2635
PSPF	   272#
PUT	   182#	  1594	  1620	  1623	  1659	  1716	  2129	  2347	  2360	  2377	  2397	  2441	  2509	  2616
	  3289	  3292	  3293	  3294	  3295	  3320	  3328	  3490	  4186	  4811	  4824	  4841	  4845	  4847
	  4848	  4849	  4850	  4889	  4893	  4895	  4896	  4897	  4898	  5333
REPTUO	   360#
RTN	   181#	  1148	  1555	  1567	  1579	  1632	  1773	  1818	  1838	  1844	  2085	  2095	  2112	  2140
	  2156	  2225	  2228	  2231	  2277	  2290	  2305	  2326	  2339	  2343	  2364	  2507	  2513	  2557
	  2747	  2859	  2879	  2946	  2972	  3008	  3029	  3036	  3040	  3042	  3045	  3080	  3082	  3085
	  3088	  3093	  3119	  3280	  3282	  3288	  3314	  3495	  3535	  3575	  3586	  3599	  3703	  3710
	  3832	  3861	  3949	  3955	  4005	  4050	  4087	  4093	  4108	  4110	  4119	  4167	  4176	  4181
	  4236	  4279	  4290	  4294	  4296	  4316	  4320	  4325	  4340	  4350	  4361	  4367	  4392	  4418
	  4449	  4501	  4574	  4580	  4667	  4708	  4710	  4752	  4819	  4832	  4882	  4928	  4957	  5067
	  5162	  5328	  5337	  5461	  5485	  5503	  5511
S	    66	    81	    90	   111#	   113	   117	   146	   148	   157	   160	   175	   176	   178	   189
	   191	   195	   197	   202	   206	   352	   354	   390	   392	   398	   400	   412	   414	   419
	   421	   437	   439	   456	   458	   468	   472	   477	   479	   484	   486	   493	   495	   502
	   504	   517	   519	   523	   525	   537	   539	   543	   545	   558	   560	   573	   575	   584
	   586	   592	   594	   599	   601	   606	   608	   618	   620	   630	   632	   651	   653	   661
	   663	   666	   668	   680	   682	   687	   689	   695	   697	   702	   704	   710	   712	   716
	   718	   725	   727	   753	   807	   809	   820	   822	   842	   844	   852	   854	   860	   862
	   870	   872	   876	   878	   883	   885	   892	   894	   915	   917	   926	   928	   948	   950
	   961	   963	   967	   969	   980	   982	   985	   987	   996	   998	  1008	  1010	  1014	  1016
	  1027	  1029	  1063	  1069	  1096	  1098	  1116	  1118	  1136	  1138	  1167	  1169	  1187	  1189
	  1207	  1209	  1217	  1219	  1240	  1245	  1271	  1273	  1280	  1282	  1288	  1290	  1296	  1298
	  1302	  1304	  1309	  1311	  1315	  1317	  1321	  1323	  1329	  1331	  1334	  1336	  1340	  1342
	  1346	  1348	  1352	  1354	  1358	  1360	  1365	  1367	  1371	  1373	  1377	  1379	  1381	  1383
	  1389	  1391	  1408	  1410	  1430	  1432	  1458	  1460	  1475	  1477	  1498	  1500	  1519	  1525
	  1549	  1552	  1570	  1572	  1581	  1586	  1643	  1645	  1654	  1656	  1685	  1687	  1704	  1706
	  1776	  1786	  1820	  1824	  1830	  1832	  1846	  1877	  1927	  1957	  1981	  1999	  2030	  2040
	  2051	  2063	  2069	  2088	  2091	  2114	  2116	  2134	  2136	  2157	  2167	  2196	  2202	  2236
	  2238	  2265	  2345	  2370	  2391	  2422	  2450	  2518	  2524	  2526	  2580	  2603	  2611	  2644
	  2660	  2697	  2722	  2737	  2749	  2778	  2785	  2803	  2811	  2833	  2862	  2881	  2930	  2969
	  3016	  3048	  3077	  3284	  3317	  3325	  3333	  3343	  3349	  3359	  3389	  3392	  3419	  3422
	  3463	  3469	  3497	  3514	  3537	  3553	  3558	  3578	  3583	  3616	  3627	  3647	  3689	  3712
	  3749	  3758	  3791	  3795	  3834	  3837	  3884	  3962	  3994	  4008	  4025	  4054	  4067	  4070
	  4095	  4122	  4184	  4256	  4272	  4276	  4281	  4284	  4298	  4302	  4327	  4329	  4341	  4343
	  4377	  4380	  4389	  4409	  4421	  4425	  4429	  4465	  4470	  4513	  4516	  4536	  4559	  4584
	  4607	  4632	  4635	  4670	  4678	  4680	  4683	  4713	  4716	  4742	  4755	  4773	  4776	  4803
	  4806	  4809	  4822	  4833	  4839	  4883	  4887	  4932	  4937	  4979	  4982	  5011	  5014	  5021
	  5023	  5040	  5043	  5078	  5080	  5119	  5121	  5164	  5180	  5190	  5192	  5236	  5239	  5241     SEQ 0252
	  5264	  5278	  5288	  5290	  5296	  5331	  5339	  5369	  5418	  5420	  5442	  5452	  5454	  5465
	  5468	  5501
SIXBTZ	   288#	  1908	  1914	  1916	  1939	  1963	  1988	  2592	  2595	  2599	  2608	  2807	  2920	  2922
	  2924	  2926
SWITCH	   294#
TTALTM	   215#
TTICHR	   208#
TTICLR	   218#
TTICNV	   213#
TTIDEC	   212#
TTINO	   210#
TTIOCT	   211#
TTIYES	   209#
TTLOOK	   214#
TTSIXB	   216#
TTYINP	   217#
$MDSXB	    63#	  5531	  5533	  5535	  5537	  5539	  5541	  5543	  5545	  5547	  5549	  5551	  5553	  5555
	  5557	  5559	  5561	  5563	  5565	  5567	  5569	  5571	  5573	  5575	  5577	  5579	  5581	  5583
	  5585	  5587	  5589	  5591	  5593	  5595	  5597	  5599	  5601	  5603	  5605	  5607	  5609	  5611
	  5613	  5615	  5617	  5619	  5621	  5623	  5625	  5627
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1
SUBUST	MAC	23-Mar-78 15:03		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977                                SEQ 0253

     1					;*MAINDEC-10-DDQDA (SUBUSR)
     2
     3					SEARCH	MONSYM,MACSYM
     4
     5			000014		DECVER=014
     6			000000		MCNVER=000
     7
     8						XLIST
     9						LIST
    10						LALL
    11
    12					NAME	\MCNVER,\DECVER^
    13
    14					TITLE	SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^
    15
    16	000137					LOC	137
    17	000137	000000	000014		MCNVER,,DECVER
    18
    19					;*COPYRIGHT 1977,1978
    20					;*DIGITAL EQUIPMENT CORPORATION
    21					;*MARLBORO, MASS.
    22
    23					;*JOHN R. KIRCHOFF
    24
    25						NOSYM
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 2
SUBUST	MAC	23-Mar-78 15:03		*SUBUSR SPECIAL ASSEMBLY PARAMETERS                                                SEQ 0254

    26					SUBTTL	*SUBUSR SPECIAL ASSEMBLY PARAMETERS
    27
    28					;*ASSEMBLY PARAMETERS
    29
    30			000001		MEMMAP==1
    31			000001		PGMEND==1
    32			000001		USRASB==1
    33			000000		DEBUG==00
    34			001000		MODDVL==START
    35			005235		MODDVU==ENDSLD
    36			030000		SADR1=BEGIN
    37			030000		SADR2=BEGIN
    38			030000		SADR3=BEGIN
    39			030000		SADR4=BEGIN
    40			030000		SADR5=BEGIN
    41			030000		SADR6=BEGIN
    42			030000		SADR7=BEGIN
    43			030000		SADR8=BEGIN
    44			030000		SADR9=BEGIN
    45			030000		SADR10=BEGIN
    46			030000		SADR11=BEGIN
    47
    48		123456	123456		PAREA1=123456,,123456
    49			000000		PAREA2=0
    50		636542	626456		PAREA3=SIXBIT/SUBRTN/
    51		645560	000000		PAREA4=SIXBIT/TMP/
    52			000000		PAREA5=0
    53			000000		PAREA6=0
    54			000001		ITERAT=1
    55
    56			000001		$PAPER==1
    57
    58					;*A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
    59
    60						DEFINE	$MDSXB	(A,B)<
    61						<SIXBIT/A/>!B		;A DEVICE CODE IS B>
    62
    63					;*DEFINITIONS USED BY THE USER SUBROUTINE PACKAGE
    64					S^;*********************************************************************^
    65
    66			000000		AC0=	0
    67			030000		DIAGNOS=30000		;PDP-10 DIAGNOSTIC START ADDRESS
    68			010000		DDT=	10000		;PDP-10 DDT START ADDRESS
    69			020000		DIAMON=	20000		;PDP-10 DIAMON LOADER START ADDRESS
    70			020007		DIASWS=	20007		;DIAMON LH SWITCHES
    71
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1
PARAM	KLM	 1-Aug-77 08:33		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977                                SEQ 0255

    72					SUBTTL	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
    73
    74					DEFINE	S,<;*********************************************************************>
    75
    76					S^;*********************************************************************^
    77					;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
    78					;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
    79					;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
    80					S^;*********************************************************************^
    81
    82			400000		ABORT==	400000			;ABORT PROGRAM ON PASS COMPLETION
    83			200000		RSTART==200000			;RESTART TEST, PRINT TOTALS
    84			100000		TOTALS==100000			;PRINT TOTALS, CONTINUE
    85
    86			040000		NOPNT==	040000			;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
    87			020000		PNTLPT==020000			;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
    88			010000		DING==	010000			;RING BELL ON ERROR
    89
    90			004000		LOOPER==004000			;ENTER EXERCISE/CHECK LOOP ON ERROR
    91			002000		ERSTOP==002000			;HALT ON TEST ERROR
    92			001000		PALERS==001000			;PRINT ALL ERRORS
    93
    94			000400		RELIAB==000400			;RELIABILITY MODE
    95			000200		TXTINH==000200			;INHIBIT ERROR TEXT
    96			000100		INHPAG==000100			;INHIBIT PAGING
    97
    98			000040		MODDVC==000040			;MODIFY DEVICE CODE
    99			000020		INHCSH==000020			;INHIBIT CACHE
   100			000010		OPRSEL==000010			;OPERATOR SELECTION
   101
   102			000004		CHAIN==	000004			;CHAIN CONTROL SWITCH
   103
   104			000002		KAHZ50==000002			;KA10 50 HERTZ POWER
   105
   106									;SWITCH 17 RESERVED !!!
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 2
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0256

   107					SUBTTL	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
   108
   109					S^;*********************************************************************^
   110					;*SPECIAL SUBPROGRAM LINKAGES
   111					S^;*********************************************************************^
   112
   113			027772		FSELNK=	27772	;FILE SELECT LINK
   114			027773		FRDLNK=	27773	;FILE READ LINK
   115			027774		LDLNK=	27774	;LOAD LINKAGE ADDRESS
   116			027775		DDTLNK=	27775	;DDT LINKAGE ADDRESS
   117			027776		MODLNK=	27776	;OPERATIONAL MODE CHECK LINKAGE ADDRESS
   118			027777		SUBLNK=	27777	;SUBROUTINE LINKAGE ADDRESS
   119
   120					S^;*********************************************************************^
   121					;*SPECIAL SUBROUTINE FATAL HALTS
   122					;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
   123					S^;*********************************************************************^
   124
   125					;ADDRESS   TAG	REASON
   126					;---------------------
   127
   128					; 1010 	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
   129					; 1011  PLERR	;FATAL PUSH LIST POINTER ERROR
   130					; 1012  PLERR1	;INITIAL PUSH LIST POINTER ERROR
   131					; 1013  MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
   132					; 1014  DTEBER	;DTE20 INTERRUPT WITHOUT DOORBELL
   133					; 1015  DTECER	;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
   134					; 1016  CPIERR	;CPU INITIALIZATION ERROR
   135					; 1017  EOPERR	;END OF PROGRAM ERROR
   136					; 1020  LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT
   137
   138					S^;*********************************************************************^
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 3
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0257

   139					S^;*********************************************************************^
   140					;OPERATOR DEFINITIONS (NON-UUO'S)
   141					S^;*********************************************************************^
   142
   143		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
   144		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
   145		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
   146		262740	000000		OPDEF	GET	[POP	P,]	;GET DATA FROM PUSH LIST 
   147		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
   148		254200	000000		OPDEF	HALT	[JRST	4,]	;DEFINITION FOR DDT
   149		254100	000000		OPDEF	JRSTF	[JRST	2,]	;DEFINITION FOR DDT
   150		254500	000000		OPDEF	JEN	[JRST	12,]	;DEFINITION FOR DDT
   151
   152					S^;*********************************************************************^
   153					;*SUBROUTINE INITIALIZATION CALL
   154					S^;*********************************************************************^
   155
   156		265000	030011		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
   157
   158					S^;*********************************************************************^
   159					;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
   160					S^;*********************************************************************^
   161
   162		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
   163		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
   164
   165					S^;*********************************************************************^
   166					;*TERMINAL INPUT UUO'S
   167					;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
   168					;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
   169					S^;*********************************************************************^
   170
   171		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
   172		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
   173		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
   174		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
   175		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
   176		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
   177		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
   178		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
   179		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
   180		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
   181		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 4
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0258

   182					;*TERMINAL OUTPUT UUO'S.
   183
   184		037000	000000		OPDEF	PNTA	[37B8!0B12!0]	;PRINT ASCII WORD
   185		037000	000001		OPDEF	PNTAF	[37B8!0B12!1]	;PRINT ASCII WORD FORCED
   186		037740	000000		OPDEF	PNTAL	[37B8!17B12!0]	;PRINT ASCIZ LINE
   187		037740	000001		OPDEF	PNTALF	[37B8!17B12!1]	;PRINT ASCIZ LINE FORCED
   188		037600	000003		OPDEF	PSIXL	[37B8!14B12!3]	;PRINT SIXBIT'Z LINE
   189		037640	000003		OPDEF	PSIXLF	[37B8!15B12!3]	;PRINT SIXBIT'Z LINE FORCED
   190		037000	000000		OPDEF	PNTMSG	[37B8!0B12!0]	;PRINT MESSAGE IMMEDIATE
   191		037040	000000		OPDEF	PNTMSF	[37B8!1B12!0]	;PRINT MESSAGE IMMEDIATE FORCED
   192		037100	000000		OPDEF	PSIXM	[37B8!2B12!0]	;PRINT SIXBIT'Z MSG IMMEDIATE
   193		037200	000000		OPDEF	PSIXMF	[37B8!4B12!0]	;PRINT SIXBIT'Z MSG IMM FORCED
   194		037000	000000		OPDEF	PNTCI	[37B8!0B12!0]	;PRINT CHARACTER IMMEDIATE
   195		037040	000000		OPDEF	PNTCIF	[37B8!1B12!0]	;PRINT CHARACTER IMMEDIATE FORCED
   196		037500	000000		OPDEF	PNTCHR	[37B8!12B12!0]	;PRINT CHARACTER
   197		037500	000001		OPDEF	PNTCHF	[37B8!12B12!1]	;PRINT CHARACTER FORCED
   198		037040	000000		OPDEF	PNT1	[37B8!1B12!0]	;PRINT ONE OCTAL DIGIT
   199		037040	000001		OPDEF	PNT1F	[37B8!1B12!1]	;PRINT 1 OCTAL DIGIT FORCED	
   200		037100	000000		OPDEF	PNT2	[37B8!2B12!0]	;PRINT TWO OCTAL DIGITS
   201		037100	000001		OPDEF	PNT2F	[37B8!2B12!1]	;PRINT 2 OCTAL DIGITS FORCED	
   202		037140	000000		OPDEF	PNT3	[37B8!3B12!0]	;PRINT THREE OCTAL DIGITS
   203		037140	000001		OPDEF	PNT3F	[37B8!3B12!1]	;PRINT THREE OCTAL DIGITS FORCED	
   204		037200	000000		OPDEF	PNT4	[37B8!4B12!0]	;PRINT FOUR OCTAL DIGITS
   205		037200	000001		OPDEF	PNT4F	[37B8!4B12!1]	;PRINT FOUR OCTAL DIGITS FORCED
   206		037240	000000		OPDEF	PNT5	[37B8!5B12!0]	;PRINT FIVE OCTAL DIGITS
   207		037240	000001		OPDEF	PNT5F	[37B8!5B12!1]	;PRINT FIVE OCTAL DIGITS FORCED
   208		037300	000000		OPDEF	PNT6	[37B8!6B12!0]	;PRINT SIX OCTAL DIGITS
   209		037300	000001		OPDEF	PNT6F	[37B8!6B12!1]	;PRINT SIX OCTAL DIGITS FORCED
   210		037340	000000		OPDEF	PNT7	[37B8!7B12!0]	;PRINT 7 OCTAL DIGITS
   211		037340	000001		OPDEF	PNT7F	[37B8!7B12!1]	;PRINT 7 OCTAL DIGITS FORCED
   212		037440	000000		OPDEF	PNT11	[37B8!11B12!0]	;PRINT 11 OCTAL DIGITS
   213		037440	000001		OPDEF	PNT11F	[37B8!11B12!1]	;PRINT 11 OCTAL DIGITS FORCED.
   214		037400	000000		OPDEF	PNTADR	[37B8!10B12!0]	;PRINT PHYSICAL ADDRESS
   215		037400	000001		OPDEF	PNTADF	[37B8!10B12!1]	;PRINT PHYSICAL ADDRESS FORCED
   216		037600	000000		OPDEF	PNTOCT  [37B8!14B12!0]	;PRINT FULL WORD OCTAL
   217		037600	000001		OPDEF	PNTOTF	[37B8!14B12!1]	;PRINT FULL WORD OCTAL FORCED
   218		037540	000000		OPDEF	PNTHW	[37B8!13B12!0]	;PRINT OCTAL HALF WORDS, 6 SP 6
   219		037540	000001		OPDEF	PNTHWF	[37B8!13B12!1]	;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
   220		037700	000003		OPDEF	PNTOCS	[37B8!16B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S
   221		037740	000003		OPDEF	PNTOCF	[37B8!17B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
   222		037640	000000		OPDEF	PNTDEC	[37B8!15B12!0]	;PRINT DECIMAL, SUPRESS LEADING 0'S
   223		037640	000001		OPDEF	PNTDCF	[37B8!15B12!1]	;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
   224		037700	000000		OPDEF	PNTDS	[37B8!16B12!0]	;PRINT DECIMAL, SPACES FOR LD 0'S
   225		037700	000001		OPDEF	PNTDSF	[37B8!16B12!1]	;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 5
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0259

   226		037200	000002		OPDEF	PNTNM	[37B8!4B12!2]	;PRINT PROGRAM NAME
   227		037000	000002		OPDEF	PNTSIX	[37B8!0B12!2]	;PRINT SIXBIT WORD
   228		037040	000002		OPDEF	PNTSXF	[37B8!1B12!2]	;PRINT SIXBIT WORD FORCED
   229		037240	000002		OPDEF	DROPDV	[37B8!5B12!2]	;CLOSE LOGICAL FILE, USER MODE
   230		037100	000002		OPDEF	PNTCW	[37B8!2B12!2]	;PRINT DF10 CONTROL WORD
   231		037140	000002		OPDEF	PNTCWF	[37B8!3B12!2]	;PRINT DF10 CONTROL WORD FORCED
   232		037000	030242		OPDEF	PCRL	[37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
   233		037040	030242		OPDEF	PCRLF	[37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
   234		037000	000040		OPDEF	PSP	[37B8!0B12!40]	;PRINT SPACE
   235		037040	000040		OPDEF	PSPF	[37B8!1B12!40]	;PRINT SPACE FORCED
   236		037000	030243		OPDEF	PCRL2	[37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
   237		037040	030243		OPDEF	PCRL2F	[37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
   238		037040	000007		OPDEF	PBELL	[37B8!1B12!7]	;PRINT TTY BELL
   239
   240		037040	000026		OPDEF	PFORCE	[37B8!1B12!26]	;PRINT FORCE, CONTROL O OVERRIDE
   241
   242					DEFINE	PMSG	(ARG),<
   243						PSIXM	[SIXBIT\ARG'_\]>
   244
   245					DEFINE	PMSGF	(ARG),<
   246						PSIXMF	[SIXBIT\ARG'_\]>
   247
   248					;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
   249					;*	CONSERVES CORE OVER ASCIZ
   250
   251					DEFINE	SIXBTZ	(ARG),<	[SIXBIT\ARG'_\]>
   252
   253					;*CONSOLE SWITCH INPUT UUO.
   254					;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
   255					;* USER MODE.
   256
   257		037400	000002		OPDEF	SWITCH	[37B8!10B12!2]	;INPUT CONSOLE SWITCHES
   258
   259					;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
   260					;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
   261
   262		037540	000004		OPDEF	CLOKOP	[37B8!13B12!4]	;CLOCK OPERATION UUO - PDP-11 CLOCK
   263		037200	000004		OPDEF	MTROP	[37B8!4B12!4]	;CLOCK OPERATION UUO - DK20 METER
   264
   265					;*KL10 ONLY CACHE OPERATION UUO'S
   266
   267		037040	000004		OPDEF	CINVAL	[37B8!1B12!4]	;CACHE INVALIDATE
   268		037100	000004		OPDEF	CFLUSH	[37B8!2B12!4]	;CACHE FLUSH
   269		037140	000004		OPDEF	CWRTBI	[37B8!3B12!4]	;CACHE WRITE-BACK & INVALIDATE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 6
PARAM	KLM	 1-Aug-77 08:33		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0260

   270					;*END OF PASS/PROGRAM UUOS
   271
   272					;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
   273					;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
   274
   275		037500	000004		OPDEF	ENDUUO	[37B8!12B12!4]	;UUO TO DISPLAY LIGHTS
   276		037700	000004		OPDEF	EOPUUO	[37B8!16B12!4]	;END OF PROGRAM UUO
   277
   278					;*MEMORY MANAGEMENT UUO'S
   279					;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
   280					;*ADDRESS CONVERSION, ETC...
   281
   282		037000	000004		OPDEF	MAPMEM	[37B8!0B12!4]	;MAP MEMORY
   283		037500	000002		OPDEF	MEMZRO	[37B8!12B12!2]	;ZERO MEMORY
   284		037440	000002		OPDEF	MEMSEG	[37B8!11B12!2]	;SETUP MEMORY SEGMENT
   285		037540	000002		OPDEF	MAPADR	[37B8!13B12!2]	;VIRTUAL TO PHYSICAL ADR CONVERT
   286		037640	000002		OPDEF	MAPCNK	[37B8!15B12!2]	;MAP MEMORY CHUNK
   287		037600	000002		OPDEF	MAPSET	[37B8!14B12!2]	;SET KI10 EXEC PAGE MAP
   288		037740	000002		OPDEF	MAPPNT	[37B8!17B12!2]	;PRINT MEMORY MAP
   289
   290					;*DEVICE CODE MODIFICATION UUO
   291					;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
   292					;*IOT'S TO A DIFFERENT DEVICE CODE.
   293
   294		037340	000002		OPDEF	MODPCU	[37B8!7B12!2]	;MODIFY PERHIPERAL CODE, USER
   295		037300	000002		OPDEF	MODPCP	[37B8!6B12!2]	;MODIFY PERHIPERAL CODE, PROGRAM
   296
   297						IFNDEF	MODDVL,<MODDVL==BEGIN>
   298						IFNDEF	MODDVU,<MODDVU==BEGIN>
   299
   300					;*"DIAMON" FILE SELECTION AND READ UUOS
   301
   302		037240	000004		OPDEF	FSELECT	[37B8!5B12!4]	;FILE SELECTION
   303		037300	000004		OPDEF	FREAD	[37B8!6B12!4]	;FILE READ - ASCII DATA
   304		037340	000004		OPDEF	FRD36	[37B8!7B12!4]	;FILE READ - 36 BIT DATA
   305		037400	000004		OPDEF	FRD8	[37B8!10B12!4]	;FILE READ - 8 BIT DATA
   306
   307					;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
   308
   309		037700	000002		OPDEF	PNTMGN	[37B8!16B12!2]	;PRINT MARGIN VALUE
   310
   311						XLIST
   312					IFNDEF	KLOLD,<LIST
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 7
PARAM	KLM	 1-Aug-77 08:33		ERROR HANDLING UUO DEFINITIONS, JAN 5,1976                                         SEQ 0261

   313					SUBTTL	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
   314
   315					S^;*********************************************************************^
   316					;*ERROR HANDLER PARAMETERS
   317					S^;*********************************************************************^
   318
   319		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
   320		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
   321		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
   322		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
   323		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
   324
   325					;*THE ERROR HANDLER MACROS
   326
   327					;*A MACRO TO REPORT AN ERROR AND LOOP
   328
   329						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
   330												SALL
   331						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   332							   CORECT,,ACTUAL
   333							   [SIXBIT\D'_\],,ERR]
   334												XALL
   335						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
   336					>
   337
   338					;*A MACRO TO REPORT AN ERROR AND NOT LOOP
   339
   340						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
   341												SALL
   342						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   343							   CORECT,,ACTUAL
   344							   [SIXBIT\D'_\],,ERR]
   345												XALL>
   346
   347					>;END OF KLOLD CONDITIONAL
   348
   349						XLIST
   350					IFDEF	$PAPER,<LIST>
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 8
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0262

   351					SUBTTL	STANDARD PROGRAM ASSIGNMENTS
   352
   353					S^;*********************************************************************^
   354					;*ACCUMULATORS
   355					S^;*********************************************************************^
   356
   357			000017		P=	17			;PUSHDOWN POINTER AC (IF PUSH LIST USED)
   358			000015		REPT==	15			;ERROR HANDLER REPEAT AC
   359			000016		REPT1==	16			; "
   360
   361					S^;*********************************************************************^
   362					;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
   363					S^;*********************************************************************^
   364
   365			400000		AROV==	400000			;ARITHMETIC OVERFLOW
   366			200000		CRY0==	200000			;CARRY 0
   367			100000		CRY1==	100000			;CARRY 1
   368			040000		FOV==	40000			;FLOATING POINT OVERFLOW
   369			020000		BIS==	20000			;BYTE INTERRUPT
   370			010000		USERF==	10000			;USER MODE
   371			004000		EXIOT==	4000			;USER PRIV I/O
   372			000100		FXU==	100			;FLOATING POINT UNDERFLOW
   373			000040		DCK==	40			;DIVIDE CHECK
   374
   375					S^;*********************************************************************^
   376					;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
   377					S^;*********************************************************************^
   378
   379			000040		LUUO==	40			;UUO STORAGE, UUO 1-37
   380			000041		LUUOI==	41			;UUO SERVICE INSTRUCTION
   381
   382					S^;*********************************************************************^
   383					;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
   384					S^;*********************************************************************^
   385
   386			000040		JOBUUO==40
   387			000041		JOB41==	41
   388			000044		JOBREL==44
   389			000074		JOBDDT==74
   390			000116		JOBSYM==116
   391			000117		JOBUSY==117
   392			000120		JOBSA==	120
   393			000121		JOBFF==	121
   394			000124		JOBREN==124
   395			000125		JOBAPR==125
   396			000126		JOBCNI==126
   397			000127		JOBTPC==127
   398			000130		JOBOPC==130
   399			000137		JOBVER==137
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 9
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0263

   400					S^;*********************************************************************^
   401					;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
   402					S^;*********************************************************************^
   403
   404			000040		.JBUUO==40
   405			000041		.JB41==	41
   406			000044		.JBREL==44
   407			000074		.JBDDT==74
   408			000116		.JBSYM==116
   409			000117		.JBUSY==117
   410			000120		.JBSA==	120
   411			000121		.JBFF==	121
   412			000124		.JBREN==124
   413			000125		.JBAPR==125
   414			000126		.JBCNI==126
   415			000127		.JBTPC==127
   416			000130		.JBOPC==130
   417			000137		.JBVER==137
   418
   419					S^;*********************************************************************^
   420					;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
   421					S^;*********************************************************************^
   422
   423			200000		PDLOVU==200000			;PUSHDOWN LIST OVERFLOW
   424			020000		MPVU==	20000			;MEMORY PROTECTION VIOLATION
   425			010000		NXMU==	10000			;NON-X-MEMORY
   426			004000		PARU==	4000			;PARITY ERROR
   427			001000		CLKU==	1000			;CLOCK
   428			000100		FOVU==	100			;FLOATING OVERFLOW
   429			000010		AROVU==	10			;ARITHMETIC OVERFLOW
   430
   431					S^;*********************************************************************^
   432					;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
   433					;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
   434					;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
   435					S^;*********************************************************************^
   436
   437			000017		$DEVCH==17			;LOGICAL DEVICE CHANNEL
   438			000016		$DVCH1==16			;LOGICAL DEV UPDATE INPUT CHANNEL
   439
   440					S^;*********************************************************************^
   441					;*PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
   442					S^;*********************************************************************^
   443
   444			000010		PAG==	010		;PAGING I/O DEVICE CODE, KI/KL
   445
   446			000014		CCA==	014		;CACHE I/O DEVICE CODE, KL10
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 10
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0264

   447					S^;*********************************************************************^
   448					;*PDP-10 STANDARD APR CONO ASSIGNMENTS
   449					S^;*********************************************************************^
   450
   451			200000		IOCLR==	200000			;CLEAR ALL I/O DEVICES
   452			004000		CLKDIS==4000			;DISABLE CLOCK INTERRUPTS
   453			002000		CLKENB==2000			;ENABLE CLOCK INTERRUPTS
   454			001000		CLKCLR==1000			;CLEAR CLOCK FLAG
   455
   456					S^;*********************************************************************^
   457					;*PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
   458					S^;*********************************************************************^
   459
   460			002000		CLKENB==2000			;CLOCK INTERRUPT ENABLED
   461			001000		CLK==	1000			;CLOCK FLAG
   462			010000		ANXM==	10000			;KA10, NON-X-MEMORY
   463			000100		INXM==	100			;KI10
   464
   465					S^;*********************************************************************^
   466					;*PDP-10 STANDARD PI CONO ASSIGNMENTS
   467					S^;*********************************************************************^
   468
   469			400000		PWFCLR==400000			;CLEAR POWER FAIL FLAG
   470			200000		PARCLR==200000			;CLEAR PARITY ERROR FLAG
   471			100000		PARDIS==100000			;DISABLE PARITY INTERRUPTS
   472			040000		PARENB==40000			;ENABLE PARITY INTERRUPTS
   473			010000		PICLR==	10000			;CLEAR PI SYSTEM
   474			004000		REQSET==4000			;SET PROGRAM PI REQUEST
   475			002000		CHNON==	2000			;TURN ON CHANNEL
   476			001000		CHNOFF==1000			;TURN OFF CHANNEL
   477			000400		PIOFF==	400			;TURN OFF PI SYSTEM
   478			000200		PION==	200			;TURN ON PI SYSTEM
   479
   480					S^;*********************************************************************^
   481					;*PDP-10 STANDARD PI CONI ASSIGNMENTS
   482					S^;*********************************************************************^
   483
   484			000200		PION==	200			;PI SYSTEM ON
   485
   486					S^;*********************************************************************^
   487					;*PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
   488					S^;*********************************************************************^
   489
   490			000100		PICHN1==100			;PI CHANNEL 1
   491			000040		PICHN2==40			;PI CHANNEL 2
   492			000020		PICHN3==20			;PI CHANNEL 3
   493			000010		PICHN4==10			;PI CHANNEL 4
   494			000004		PICHN5==4			;PI CHANNEL 5
   495			000002		PICHN6==2			;PI CHANNEL 6
   496			000001		PICHN7==1			;PI CHANNEL 7
   497			000177		PICHNA==177			;ALL PI CHANNELS, 1 THRU 7
   498						XLIST
   499						LIST
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0265

   500					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
   501
   502	030000					LOC	30000
   503
   504					S^;*********************************************************************^
   505					;*PROGRAM STARTING ADDRESSES
   506					;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
   507					;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
   508					;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
   509					;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
   510					S^;*********************************************************************^
   511
   512	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
   513	030001	254 00 0 00 001000 	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
   514
   515	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
   516
   517	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
   518
   519	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
   520
   521	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
   522
   523	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
   524
   525	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
   526	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
   527
   528	030010	254 00 0 00 001034 	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
   529	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
   530	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
   531
   532	030013	000000	030000		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
   533	030014	000000	030000		START2:	SADR8			; "
   534	030015	000000	030000		START3:	SADR9			; "
   535	030016	000000	030000		START4:	SADR10			; "
   536	030017	000000	030000		START5:	SADR11			; "
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 2
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0266

   537					S^;*********************************************************************^
   538					;*PROGRAM FIXED PARAMETER AREA
   539					S^;*********************************************************************^
   540
   541	030020	636542	626456		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
   542	030021	645560	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
   543	030022	123456	123456		RANDBS:	PAREA1		;RANDOM BASE NUMBER
   544	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
   545	030024	000000	000001		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
   546	030025	000000	001035		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
   547	030026	000000	000014		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
   548	030027	000000	001000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
   549	030030	000000	005235		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
   550	030031	000000	000000		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
   551	030032	777777	777777		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
   552	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
   553	030034	777777	777777		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
   554	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
   555	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
   556
   557					S^;*********************************************************************^
   558					;*PROGRAM VARIABLE PARAMETER AREA
   559					S^;*********************************************************************^
   560
   561	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
   562	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
   563	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
   564	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
   565	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
   566	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
   567	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
   568	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
   569	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
   570	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
   571	030051	000000	000000		TESTPC:	0		;SUBTEST PC
   572	030052	000000	000000		ERRPC:	0		;ERROR PC
   573	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
   574	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
   575	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
   576	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 3
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0267

   577					S^;*********************************************************************^
   578					;*SPECIAL PROGRAM DISPATCH ADDRESSES
   579					S^;*********************************************************************^
   580
   581	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
   582	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
   583	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
   584	030062	000000	030000		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
   585	030063	000000	030000		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
   586	030064				CPOPJ1:			;SKIP RETURN
   587	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
   588	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
   589	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
   590	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
   591	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
   592	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
   593	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
   594	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
   595	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
   596	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
   597	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
   598	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
   599	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
   600	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
   601	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
   602	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
   603
   604	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
   605	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
   606	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
   607
   608					S^;*********************************************************************^
   609					;*PROCESSOR CONTROL STORAGE
   610					S^;*********************************************************************^
   611
   612	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
   613	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
   614	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
   615	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
   616	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
   617
   618	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
   619	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
   620
   621	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
   622	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
   623	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
   624	030120	000000	000000		%COREC:	0		; " CORRECT DATA
   625	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
   626	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
   627	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 4
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0268

   628					S^;*********************************************************************^
   629					;*UUO DISPATCH TABLE
   630					S^;*********************************************************************^
   631						XLIST
   632						LIST
   633	030124	030070	030070		UUODIS:	LUUO1,,$UUOER
   634	030125	030070	030070			LUUO3,,LUUO2
   635	030126	030070	030070			LUUO5,,LUUO4
   636	030127	030070	030070			LUUO7,,LUUO6
   637	030130	030070	030070			LUUO11,,LUUO10
   638	030131	030070	030070			LUUO13,,LUUO12
   639	030132	030070	030070			LUUO15,,LUUO14
   640	030133	030070	030070			LUUO17,,LUUO16
   641	030134	030070	030070			LUUO21,,LUUO20
   642	030135	030070	030070			LUUO23,,LUUO22
   643	030136	030070	030070			LUUO25,,LUUO24
   644	030137	030070	030070			LUUO27,,LUUO26
   645	030140	030070	030070			LUUO31,,LUUO30
   646	030141	030070	030070			LUUO33,,LUUO32
   647
   648					S^;*********************************************************************^
   649					;*MEMORY MANAGMENT STORAGE
   650					S^;*********************************************************************^
   651
   652	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
   653	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
   654	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
   655	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
   656	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
   657
   658					S^;*********************************************************************^
   659					;*PRINT CONTROL STORAGE
   660					S^;*********************************************************************^
   661
   662	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
   663	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
   664	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
   665	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
   666	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
   667	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
   668	030225	000000	000000		$TWCNT:	0		;TIME WAITED
   669	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
   670	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
   671	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
   672	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
   673	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
   674	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
   675	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
   676	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
   677	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
   678	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
   679	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
   680	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 5
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0269

   681					S^;*********************************************************************^
   682					;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
   683					;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
   684					;*	MOVEI	NAME
   685					;*	PNTA		;OR PNTAF
   686					S^;*********************************************************************^
   687
   688	030242				CRLF:	ASCII/
   689	030242	015 012 000 000 000 	/
   690	030243				CRLF2:	ASCII/
   691
   692	030243	015 012 015 012 000 	/
   693	030244	054 000 000 000 000 	COMMA:	ASCII/,/
   694	030245	056 000 000 000 000 	PERIOD:	ASCII/./
   695	030246	040 000 000 000 000 	SPACE:	ASCII/ /
   696	030247	011 000 000 000 000 	TAB:	ASCII/	/
   697	030250				MINUS:
   698	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
   699	030251	053 000 000 000 000 	PLUS:	ASCII/+/
   700	030252	052 000 000 000 000 	AST:	ASCII/*/
   701	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
   702	030254	050 000 000 000 000 	LFP:	ASCII/(/
   703	030255	051 000 000 000 000 	RTP:	ASCII/)/
   704	030256	007 0000000000 		BELL:	BYTE (7) 007
   705	030257	077 000 000 000 000 	QUEST:	ASCII/?/
   706	030260	057 000 000 000 000 	SLASH:	ASCII!/!
   707	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
   708	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
   709	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
   710	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
   711
   712					S^;*********************************************************************^
   713					;*USER MODE OUTPUT FILE INFORMATION
   714					S^;*********************************************************************^
   715
   716	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
   717	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
   718	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
   719	030272					BLOCK	2
   720
   721					S^;*********************************************************************^
   722					;*DISK UPDATE MODE FILE INFORMATION
   723					S^;*********************************************************************^
   724
   725	030274				$IBUF:	BLOCK	3
   726	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
   727	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
   728	030301					BLOCK	2
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 6
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0270

   729					S^;*********************************************************************^
   730					;*PUSHDOWN LIST CONTROL INFORMATION
   731					S^;*********************************************************************^
   732
   733	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
   734	030304				PLISTS:	BLOCK	200
   735	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
   736
   737					S^;*********************************************************************^
   738					;*POWER LINE CLOCK FREQUENCY FLAG
   739					S^;*********************************************************************^
   740
   741	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
   742
   743					S^;*********************************************************************^
   744					;*KL10 CACHE CONTROL FLAGS
   745					S^;*********************************************************************^
   746
   747	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
   748	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
   749
   750					S^;*********************************************************************^
   751					;*NUMBER INPUT DIGIT FLAG
   752					S^;*********************************************************************^
   753
   754	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
   755
   756					S^;*********************************************************************^
   757					;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
   758					S^;*********************************************************************^
   759
   760	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
   761
   762					S^;*********************************************************************^
   763					;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
   764					S^;*********************************************************************^
   765
   766	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
   767	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
   768	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
   769
   770					S^;*********************************************************************^
   771					;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
   772					S^;*********************************************************************^
   773
   774	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 7
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0271

   775					S^;*********************************************************************^
   776					;*USER MODE MONITOR TYPE FLAG
   777					S^;*********************************************************************^
   778
   779	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
   780
   781					S^;*********************************************************************^
   782					;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
   783					S^;*********************************************************************^
   784
   785	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
   786
   787					S^;*********************************************************************^
   788					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
   789					S^;*********************************************************************^
   790
   791	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
   792
   793					S^;*********************************************************************^
   794					;*"SWITCH" CALL USAGE CONTROL
   795					S^;*********************************************************************^
   796
   797	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
   798
   799					S^;*********************************************************************^
   800					;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
   801					S^;*********************************************************************^
   802
   803	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
   804	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
   805
   806					S^;*********************************************************************^
   807					;*SM10 (KS-10) PROCESSOR TYPE FLAG
   808					S^;*********************************************************************^
   809
   810	030524	000000	000000		SM10:	0	;IF -1 THIS IS A KS-10
   811
   812					S^;*********************************************************************^
   813					;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
   814					S^;*********************************************************************^
   815
   816	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
   817
   818					S^;*********************************************************************^
   819					;*SPECIAL FUTURE EXPANSION ROOM
   820					S^;*********************************************************************^
   821
   822					S^;*********************************************************************^
   823					;*END OF FIXED STORAGE
   824					S^;*********************************************************************^
   825
   826	030577					LOC	30577
   827	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0272

   828					SUBTTL	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
   829
   830					S^;*********************************************************************^
   831					;*SPECIAL SUBPROGRAM LINKAGES
   832					S^;*********************************************************************^
   833
   834	000440					LOC	440
   835
   836	000440	254 00 0 00 030000 		JRST	DIAGNOS
   837	000441	254 00 0 00 010000 		JRST	DDT
   838	000442	254 00 0 00 020000 		JRST	DIAMON
   839	000443	254 00 0 00 001001 		JRST	REINIT
   840
   841	027775					LOC	27775
   842
   843	027775	000000	010000		DDTLNK:	10000			;DDT LINKAGE
   844	027776	000000	001003		MODLNK:	MODCHK			;OPERATIONAL MODE CHECK LINKAGE
   845	027777	000000	001002		SUBLNK:	SUBINI			;SUBROUTINE LINKAGE
   846
   847	001000					LOC	1000		;RESET THE PC AFTER "FIXED" @ 30,000
   848
   849					S^;*********************************************************************^
   850					;*INITIALIZE THE SUBROUTINE PACKAGE
   851					S^;*********************************************************************^
   852
   853	001000	254 00 0 00 001021 	START:	JRST	$SBSRT		;START SUBROUTINE BY ITSELF
   854	001001	254 00 0 00 001030 	REINIT:	JRST	$REINI		;REINIT SUBROUTINE
   855	001002	254 00 0 00 001046 	SUBINI:	JRST	$PGMIN		;SUBROUTINE INIT ROUTINE
   856	001003	254 00 0 00 001121 	MODCHK:	JRST	$MODCK		;OPERATIONAL MODE CHECK LINKAGE
   857	001004	000000	000000			0
   858	001005	63 65 42 62 64 56 	SUBRTN:	SIXBIT/SUBRTN/		;"SUBRTN" IDENTIFICATION WORD
   859	001006	000000	000014		SUBVER:	MCNVER,,DECVER		;"SUBRTN" VERSION INFORMATION
   860	001007	777777	777777		$TTYSPD:-1			;MONITOR TTY SPEED
   861
   862	001010	254 04 0 00 001010 	NOEXEC:	HALT	.		;PROGRAM NOT CODED FOR EXEC MODE
   863	001011	254 04 0 00 001011 	PLERR:	HALT	.		;FATAL PUSH LIST POINTER ERROR
   864	001012	254 04 0 00 001012 	PLERR1:	HALT	.		;INITIAL PUSH LIST POINTER ERROR
   865	001013	254 04 0 00 001013 	MUOERR:	HALT	.		;MUUO WITH LUUO HANDLER WIPED OUT
   866	001014	254 04 0 00 001014 	DTEBER:	HALT	.		;DTE20 INTERRUPT WITHOUT DOORBELL
   867	001015	254 04 0 00 001015 	DTECER:	HALT	.		;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
   868	001016	254 04 0 00 001016 	CPIERR:	HALT	.		;CPU INITIALIZATION ERROR
   869	001017	254 04 0 00 001017 	EOPERR:	HALT	.		;END OF PROGRAM ERROR
   870	001020	254 04 0 00 001020 	LUOERR:	HALT	.		;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 2
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0273

   871					S^;*********************************************************************^
   872					;*SPECIAL SUBROUTINE ONLY INITIALIZATION
   873					S^;*********************************************************************^
   874
   875	001021	201 00 0 00 000001 	$SBSRT:	MOVEI	1
   876	001022	202 00 0 00 030024 		MOVEM	ITRCNT		;ALLOW ONLY ONE PASS
   877	001023	201 00 0 00 020000 		MOVEI	DIAMON
   878	001024	202 00 0 00 030012 		MOVEM	RETURN
   879	001025	476 00 0 00 030143 		SETOM	MAPNEW		;FULL 4096K MAPPING
   880	001026	265 00 0 00 030011 		PGMINT
   881	001027	254 00 0 00 030057 		JRST	BEGEND
   882
   883	001030	402 00 0 00 030056 	$REINI:	SETZM	$ONETM		;FOR NOW
   884	001031	402 00 0 00 030047 		SETZM	PASCNT
   885	001032	402 00 0 00 030053 		SETZM	ERRTLS
   886	001033	254 00 0 00 030000 		JRST	BEGIN
   887
   888	001034	254 00 0 00 030057 	STARTA:	JRST	BEGEND
   889
   890	001035				PGMNAM:	ASCIZ	%
   891	001035	015 012 104 105 103 	DECSYSTEM DIAGNOSTIC USER SUBROUTINE'S
   892	001036	123 131 123 124 105 
   893	001037	115 040 104 111 101 
   894	001040	107 116 117 123 124 
   895	001041	111 103 040 125 123 
   896	001042	105 122 040 123 125 
   897	001043	102 122 117 125 124 
   898	001044	111 116 105 047 123 
   899	001045	015 012 000 000 000 	%
   900
   901					S^;*********************************************************************^
   902					;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
   903					S^;*********************************************************************^
   904
   905	001046	202 00 0 00 005325 	$PGMIN:	MOVEM	0,$$PAC0
   906	001047	476 00 0 00 030037 		SETOM	USER
   907	001050	265 00 0 00 001051 		JSP	0,.+1		;LOAD FLAGS INTO AC0
   908	001051	607 00 0 00 010000 		TLNN	0,USERF		;USER MODE ?
   909	001052	254 04 0 00 001052 		HALT	.		;EXEC MODE
   910	001053	402 00 0 00 030516 		SETZM	MONTYP
   911	001054	200 00 0 00 004643 		MOVE	[112,,11]
   912	001055	047 00 0 00 000041 		GETTAB			;GET MONITOR TYPE ID
   913	001056	310 00 0 00 000000 		CAM
   914	001057	306 00 0 00 040000 		CAIN	40000		;TOPS20 ?
   915	001060	476 00 0 00 030516 		SETOM	MONTYP		;YES
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 3
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0274

   916					S^;*********************************************************************^
   917					;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
   918					S^;*********************************************************************^
   919
   920	001061	554 00 0 00 000120 	$PGMN1:	HLRZ	JOBSA		;RESET JOB FIRST FREE TO
   921	001062	202 00 0 00 000121 		MOVEM	JOBFF		;END OF LOW SEGMENT
   922	001063	336 00 0 00 030516 		SKIPN	MONTYP
   923	001064	047 00 0 00 000000 		CALLI	0		;TOPS10 RESET
   924	001065	332 00 0 00 030516 		SKIPE	MONTYP
   925	001066	104 00 0 00 000147 		RESET			;CLEAR USER I/O
   926	001067	254 02 1 00 001070 		JRST	2,@.+1		;CLEAR PC FLAGS
   927	001070	000000	001071				0,,.+1
   928	001071	200 00 0 00 030046 		MOVE	CONSW
   929	001072	202 00 0 00 005401 		MOVEM	$SVCSW#		;SAVE PREVIOUS SWITCHES
   930	001073	402 00 0 00 030046 		SETZM	CONSW#		;CLEAR SWITCH REGISTER
   931	001074	402 00 0 00 005403 		SETZM	$SWFLG#		;DISALLOW SWITCHES TILL INITED
   932	001075	200 00 0 00 004644 		MOVE	[JRST $DDTENT]	;SETUP DDT START
   933	001076	202 00 0 00 030007 		MOVEM	DDTSRT		;DDT IF LOADED, EOPUUO IF NOT
   934	001077	200 00 0 00 004645 		MOVE	[JRST PSHERR]
   935	001100	202 00 0 00 030103 		MOVEM	$PSHER		;INIT FOR UNDERFLOW
   936	001101	200 17 0 00 030303 		MOVE	P,PLIST		;INIT PUSH POINTER
   937	001102	201 00 0 00 030103 		MOVEI	0,$PSHER
   938	001103	261 17 0 00 000000 		PUSH	P,0		;SET ERR FOR EXCESSIVE POP'S
   939	001104	261 17 0 00 000000 		PUSH	P,0
   940
   941					S^;*********************************************************************^
   942					;*INITIALIZE SUBROUTINES
   943					S^;*********************************************************************^
   944
   945	001105	260 17 0 00 001730 	PGINGO:	GO	$CPUTP		;DETERMINE CPU TYPE (KS/KL/KI/KA)
   946	001106	260 17 0 00 001155 		GO	$UUOIN		;INIT UUO TRAP TRANSFER LOCATION
   947	001107	260 17 0 00 003651 		GO	$PNTIN		;INIT PRINT SUBROUTINE
   948	001110	260 17 0 00 003237 		GO	$TYPIN		;INIT TTY INPUT SUBROUTINE
   949	001111	260 17 0 00 002772 		GO	$SWTIN		;INIT SWITCH INPUT SUBROUTINE
   950	001112	260 17 0 00 002140 		GO	$ITRIN		;INIT INTERRUPT SUBROUTINE
   951	001113	332 00 0 00 030034 		SKIPE	$MMAP		;MEMORY ROUTINES ?
   952	001114	260 17 0 00 002415 		GO	$MEMMP		;MAP MEMORY
   953	001115	476 00 0 00 030056 		SETOM	$ONETM		;SET ONE TIME FLAG
   954	001116	402 00 0 00 030116 		SETZM	SCOPE		;INIT ERROR SCOPE LOOP
   955	001117	402 00 0 00 030052 		SETZM	ERRPC		;INIT ERROR PC
   956	001120	254 00 1 00 005325 		JRST	@$$PAC0#
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 4
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0275

   957					S^;*********************************************************************^
   958					;* -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
   959					;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
   960					;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
   961					;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
   962					;*AT ASSEMBLY TIME.
   963					S^;*********************************************************************^
   964
   965	001121	265 00 0 00 001122 	$MODCK:	JSP	0,.+1		;GET FLAG CONDITIONS
   966	001122	603 00 0 00 010000 		TLNE	0,USERF		;IN USER MODE ?
   967	001123	254 00 0 00 001136 		JRST	$UCK		;YES
   968	001124	476 00 0 00 030024 	$ECK:	SETOM	ITRCNT		;EXEC, RUN FOREVER
   969	001125	402 00 0 00 030043 		SETZM	MONCTL		;NOT HERE IF UNDER MONITOR CONTROL
   970	001126	476 00 0 00 030042 		SETOM	MONFLG		;SET TO NORMAL OPERATION
   971	001127	332 00 0 00 030044 		SKIPE	MONTEN		;LOADED BY "DIAMON" ?
   972	001130	254 00 0 00 001133 		JRST	.+3		;YES, RETURN TO "DIAMON" UPON COMPLETION
   973	001131	201 00 0 00 030000 		MOVEI	BEGIN		;SET UP RETURN IN CASE WE EVER COUNT OUT
   974	001132	202 00 0 00 030012 		MOVEM	RETURN		;FOR THE RETURN ADDRESS
   975	001133	332 00 0 00 030031 		SKIPE	$EMODE		;EXEC MODE ALLOWED?
   976	001134	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
   977	001135	254 04 0 00 001010 		HALT	NOEXEC		;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
   978
   979	001136	332 00 0 00 030032 	$UCK:	SKIPE	$UMODE		;USER MODE ALLOWED?
   980	001137	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
   981	001140	200 00 0 00 004643 	$NOUSR:	MOVE	[112,,11]
   982	001141	047 00 0 00 000041 		GETTAB
   983	001142	310 00 0 00 000000 		CAM
   984	001143	306 00 0 00 040000 		CAIN	40000
   985	001144	254 00 0 00 001150 		JRST	$NOU20
   986						OUTSTR	[ASCIZ/
   987					EXEC ONLY
   988	001145	051 03 0 00 004646 	/]
   989	001146	051 03 1 00 030025 		OUTSTR	@$PNAME
   990	001147	254 00 1 00 030012 		JRST	@RETURN
   991	001150				$NOU20:	HRROI	1,[ASCIZ/
   992					EXEC ONLY
   993	001150	561 01 0 00 004646 	/]
   994	001151	104 00 0 00 000076 		PSOUT
   995	001152	561 01 1 00 030025 		HRROI	1,@$PNAME	;PRINT THE NAME OF THIS FILE
   996	001153	104 00 0 00 000076 		PSOUT
   997	001154	254 00 1 00 030012 		JRST	@RETURN		;LEAVE FOR EVER
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 5
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0276

   998					SUBTTL	*CONTRL* UUO HANDLING SUBROUTINE
   999
  1000					S^;*********************************************************************^
  1001					;*UUO INITIALIZATION
  1002					S^;*********************************************************************^
  1003
  1004	001155	200 00 0 00 004651 	$UUOIN:	MOVE	[GO  $UORTN]	;BRING IN UUORTN ENTRY INSTR.
  1005	001156	202 00 0 00 000041 		MOVEM	JOB41		;SETUP UUO TRAP AT JOB41
  1006	001157	200 00 0 00 004652 		MOVE	[JRST $UOERX]
  1007	001160	202 00 0 00 030070 		MOVEM	$UUOER		;SET UUO ERROR IN "FIXED"
  1008	001161	402 00 0 00 005416 		SETZM	$UPLER#
  1009	001162	263 17 0 00 000000 		RTN			;EXIT
  1010
  1011					S^;*********************************************************************^
  1012					;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
  1013					;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
  1014					;*PROGRAM SEGMENT UUO'S (001 - 033).
  1015					;*AC0 IS SAVED ON THE STACK INITIALLY
  1016					S^;*********************************************************************^
  1017
  1018	001163	332 00 0 00 030515 	$UORTN:	SKIPE	$$UUO		;IF NON-ZERO, XCT USERS UUO INTERCEPT
  1019	001164	256 00 0 00 030515 		XCT	$$UUO
  1020	001165	607 17 0 00 777000 		TLNN	P,777000
  1021	001166	254 00 0 00 001257 		JRST	$UOPLE		;CHECK THAT P LOOKS LIKE A P POINTER
  1022	001167	602 17 0 00 747000 		TRNE	P,747000
  1023	001170	254 00 0 00 001257 		JRST	$UOPLE
  1024	001171	261 17 0 00 000000 		PUT	AC0		;SAVE AC0 ON PUSH LIST
  1025	001172	550 00 0 00 000017 		HRRZ	AC0,P		;VERIFY THAT THE PUSH POINTER
  1026	001173	307 00 0 00 030303 		CAIG	AC0,PLIST	;IS STILL OK
  1027	001174	254 00 0 00 001257 		JRST	$UOPLE		;OUT OF RANGE
  1028	001175	301 00 0 00 030504 		CAIL	AC0,PLISTE
  1029	001176	254 00 0 00 001257 		JRST	$UOPLE
  1030	001177	554 00 0 00 000017 		HLRZ	AC0,P		;GET CONTROL COUNT
  1031	001200	307 00 0 00 777577 		CAIG	AC0,777577
  1032	001201	254 00 0 00 001257 		JRST	$UOPLE		;OUT OF RANGE
  1033	001202	301 00 0 00 777777 		CAIL	AC0,777777
  1034	001203	254 00 0 00 001257 		JRST	$UOPLE
  1035	001204	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET THE UUO
  1036	001205	242 00 0 00 777745 		LSH	AC0,-^D27	;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
  1037	001206	303 00 0 00 000033 		CAILE	AC0,33		;IS IT 33 OR LESS? (LOW)
  1038	001207	254 00 0 00 001234 		JRST	$SUBUO		;DECODE 34 - 37 @ $SUBUO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 6
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0277

  1039	001210	200 00 0 17 777777 	$USRUO:	MOVE	AC0,-1(P)	;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
  1040	001211	275 00 0 00 000001 		SUBI	1		; - 1
  1041	001212	202 00 0 00 030114 		MOVEM	$SVUPC		;SAVE FOR USER UUO ROUTINE (IF NEEDED)
  1042	001213	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET UUO FROM LOCATION 40 IN JDA
  1043	001214	202 00 0 00 030113 		MOVEM	$SVUUO		;SAVE FOR USER UUO ROUTINE
  1044	001215	262 17 0 00 000000 		GET	AC0
  1045	001216	256 00 0 00 030066 		XCT	UUORTN		;EXECUTE USERS ROUTINE IF SUPPLIED
  1046	001217	261 17 0 00 000000 		PUT	AC0
  1047	001220	200 00 0 00 030113 		MOVE	AC0,$SVUUO
  1048	001221	242 00 0 00 777745 		LSH	AC0,-^D27	;RIGHT SHIFT FOR INDEX INTO UUO TABLE
  1049	001222	261 17 0 00 000001 		PUT	1
  1050	001223	246 00 0 00 777777 		LSHC	0,-1
  1051	001224	271 00 0 00 030124 		ADDI	UUODIS		;ADD USER UUO TABLE START TO THE UUO
  1052	001225	607 01 0 00 400000 	$XUUO:	TLNN	1,400000
  1053	001226	550 00 1 00 000000 		HRRZ	@0		;EVEN UUO
  1054	001227	603 01 0 00 400000 		TLNE	1,400000
  1055	001230	554 00 1 00 000000 		HLRZ	@0		;ODD UUO
  1056	001231	262 17 0 00 000001 		GET	1
  1057	001232	250 00 0 17 000000 		EXCH	AC0,(P)		;PUT ADR ON STACK, AC0 BACK IN AC0
  1058	001233	263 17 0 00 000000 		RTN			;SPECIAL XFER TO ROUTINE USING ADR ON STACK
  1059
  1060	001234	275 00 0 00 000034 	$SUBUO:	SUBI	AC0,34		;NORMALIZE TO MAKE LOWEST UUO = 0
  1061	001235	271 00 0 00 001237 		ADDI	AC0,TABLE0	;ADDR OF TABLE + NORM. UUO (0-3)
  1062	001236	254 00 1 00 000000 		JRST	@0		;SELECT THE CORRECT ERROR UUO VIA TABLE
  1063
  1064	001237	254 00 0 00 001427 	TABLE0:	JRST	%REPT		;UUO = 34 ......................REPEAT
  1065	001240	254 00 0 00 001371 		JRST	%ERLP		;UUO = 35 ...........LOOP ON THE ERROR
  1066	001241	254 00 0 00 001444 		JRST	%ERUUO		;UUO = 36 .REPORT THE ERROR CONDITIONS
  1067	001242	254 00 0 00 001274 		JRST	$UUO37		;UUO = 37 .......DECODE SUBROUTINE UUO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 7
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0278

  1068					S^;*********************************************************************^
  1069					;*UUO ERROR EXIT ROUTINE
  1070					S^;*********************************************************************^
  1071						SALL
  1072	001243	262 17 0 00 000000 		GET	AC0		;POP OFF AC0 (KA MUUO'S)
  1073	001244	261 17 0 00 000040 	$UOERX:	PUT	JOBUUO		;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
  1074	001245	037 02 0 00 004653 		PMSG	<^ILLEGAL UUO^UUO]]FLAGS]  PC^>
  1075	001246	262 17 0 00 000000 		GET	AC0		;GET BAD UUO FROM THE STACK (P - 1)
  1076	001247	037 13 0 00 000000 		PNTHW			;PRINT IT
  1077	001250	037 00 0 00 000040 		PSP			;PRINT SPACE
  1078	001251	262 17 0 00 000000 		GET	AC0		;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
  1079	001252	275 00 0 00 000001 		SUBI	AC0,1		;SUBTRACT 1
  1080	001253	037 13 0 00 000000 		PNTHW			;PRINT FLAGS & UUO PC
  1081	001254	037 00 0 00 030242 		PCRL			;PRINT C/R & L/F
  1082	001255	256 00 0 00 030067 		XCT	$UORTX		;EXECUTE USERS UUO EXIT, IF PROV
  1083	001256	037 15 0 00 000004 		FATAL
  1084
  1085	001257	332 00 0 00 005416 	$UOPLE:	SKIPE	$UPLER		;FIRST TIME ?
  1086	001260	254 04 0 00 001011 		HALT	PLERR		;NO, FATAL HALT THEN
  1087	001261	476 00 0 00 005416 		SETOM	$UPLER
  1088	001262	202 17 0 00 005370 		MOVEM	P,$PDOVP#	;SAVE "P"
  1089	001263	200 17 0 00 030303 		MOVE	P,PLIST
  1090	001264	312 17 0 00 004660 		CAME	P,[PLIST-PLISTE,,PLIST]
  1091	001265	254 04 0 00 001012 		HALT	PLERR1		;INITIAL POINTER BAD
  1092	001266	201 00 0 00 030103 		MOVEI	$PSHER
  1093	001267	261 17 0 00 000000 		PUSH	P,0
  1094	001270	037 04 0 00 004661 		PMSGF	<^*****^UUO PLIST ERR P=>
  1095	001271	200 00 0 00 005370 		MOVE	$PDOVP
  1096	001272	037 13 0 00 000001 		PNTHWF
  1097	001273	037 15 0 00 000004 		FATAL
  1098						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 8
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0279

  1099					S^;*********************************************************************^
  1100					;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
  1101					S^;*********************************************************************^
  1102
  1103	001274	550 00 0 00 000040 	$UUO37:	HRRZ	JOBUUO		;GET CALLING UUO
  1104	001275	322 00 0 00 003713 		JUMPE	$PNTIT		;PRINT UUO
  1105	001276	306 00 0 00 000001 		CAIN	0,1
  1106	001277	254 00 0 00 003706 		JRST	$PNTIF		;PRINT FORCED UUO
  1107	001300	602 00 0 00 777600 		TRNE	777600
  1108	001301	254 00 0 00 001354 		JRST	$EG177		;PRINT MESSAGE UUO
  1109	001302	301 00 0 00 000005 		CAIL	5
  1110	001303	254 00 0 00 001345 		JRST	$EG4		;PRINT CHAR IMMEDIATE UUO
  1111	001304	261 17 0 00 000001 		PUT	1
  1112	001305	200 01 0 00 000040 		MOVE	1,JOBUUO
  1113	001306	242 01 0 00 777751 		LSH	1,-^D23		;EXTRACT UUO AC FIELD
  1114	001307	405 01 0 00 000017 		ANDI	1,17
  1115	001310	242 00 0 00 000004 		LSH	0,4		;POSITION E FIELD
  1116	001311	434 00 0 00 000001 		IOR	0,1		;COMBINE E & AC FIELD
  1117	001312	246 00 0 00 777777 		LSHC	0,-1		;SET ODD/EVEN
  1118	001313	271 00 0 00 001275 		ADDI	$UOTAB-20	;COMPUTE TABLE ENTRY OFFSET
  1119	001314	254 00 0 00 001225 		JRST	$XUUO
  1120
  1121	001315				$UOTAB:				;E FIELD = 2
  1122	001315	004026	004015			$PTSXF,,$PNTSX
  1123	001316	004177	004144			$PNTCF,,$PNTCW
  1124	001317	004515	002077			$DRPDV,,$PNTNM
  1125	001320	002626	002736			$MODDV,,$MODDP
  1126	001321	002423	002747			$MSEG,,$SWTCH
  1127	001322	002524	002502			$MPADR,,$MZRO
  1128	001323	001370	001370			$MPCNK,,$MPSET
  1129	001324	002567	001370			$PMAP,,$PNTMG
  1130									;E FIELD = 3
  1131	001325	003430	003301			$YESNO,,$OPTLK
  1132	001326	003474	003426			$TPOCT,,$NOYES
  1133	001327	003470	003472			$TPCNV,,$TPDEC
  1134	001330	003311	003241			$TALTM,,$TTLK
  1135	001331	003266	003616			$TTYIN,,$TISIX
  1136	001332	001244	003360			$UOERX,,$TPCLR
  1137	001333	004037	004042			$PSIXF,,$PSIX
  1138	001334	004101	004104			$POCSF,,$POCS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 9
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0280

  1139									;E FIELD = 4
  1140	001335	001370	002415			$CINVAL,,$MEMMP
  1141	001336	001370	001370			$CWRTB,,$CFLUSH
  1142	001337	001766	001370			$FSELECT,,$MTROP
  1143	001340	002012	002014			$FRD36,,$FREAD
  1144	001341	001244	002010			$UOERX,,$FRD8
  1145	001342	001370	002366			$CLOCK,,$END
  1146	001343	002056	002030			$FATAL,,$ERHLT
  1147	001344	001244	002407			$UOERX,,$EOP
  1148
  1149	001345	200 00 0 00 000040 	$EG4:	MOVE	JOBUUO		;IMMEDIATE CHARACTER PRINT
  1150	001346	316 00 0 00 004665 		CAMN	[PFORCE]	;"PFORCE" CALL ?
  1151	001347	254 00 0 00 001366 		JRST	$EGX1		;YES
  1152	001350	603 00 0 00 000040 		TLNE	(1B12)
  1153						JRST	[PNTCHF
  1154	001351	254 00 0 00 004666 			JRST	$EGX]
  1155	001352	037 12 0 00 000000 		PNTCHR
  1156	001353	254 00 0 00 001364 		JRST	$EGX
  1157
  1158	001354	200 00 0 00 000040 	$EG177:	MOVE	JOBUUO		;IMMEDIATE MESSAGE PRINT
  1159	001355	603 00 0 00 000200 		TLNE	(4B12)
  1160						JRST	[PSIXLF
  1161	001356	254 00 0 00 004670 			JRST	$EGX]
  1162	001357	603 00 0 00 000100 		TLNE	(2B12)
  1163						JRST	[PSIXL
  1164	001360	254 00 0 00 004672 			JRST	$EGX]
  1165	001361	603 00 0 00 000040 		TLNE	(1B12)
  1166						JRST	[PNTALF
  1167	001362	254 00 0 00 004674 			JRST	$EGX]
  1168	001363	037 17 0 00 000000 		PNTAL
  1169	001364	262 17 0 00 000000 	$EGX:	GET	0
  1170	001365	263 17 0 00 000000 		RTN
  1171
  1172	001366	260 17 0 00 003724 	$EGX1:	GO	$PCLRO		;CLEAR CONTROL O & INPUT BUFFER
  1173	001367	254 00 0 00 001364 		JRST	$EGX
  1174
  1175	001370				$CFLUSH:
  1176	001370				$CINVAL:
  1177	001370				$CLOCK:
  1178	001370				$CWRTB:
  1179	001370				$MPCNK:
  1180	001370				$MPSET:
  1181	001370				$MTROP:
  1182	001370				$PNTMG:
  1183	001370	263 17 0 00 000000 		RTN			;NON-USER MODE UUO'S
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 10
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0281

  1184					SUBTTL	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
  1185
  1186					S^;*********************************************************************^
  1187					;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
  1188					;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
  1189					;*INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
  1190					;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
  1191					;*ERROR, AND BELL ON ERROR.
  1192					;*ERROR LOOPING ROUTINE
  1193					;*EITHER CONTINUES IN-LINE
  1194					;*OR TRANSFERS TO E FIELD OF UUO
  1195					;*CHECKS PC OF ERROR TO DETERMINE LOOPING
  1196					S^;*********************************************************************^
  1197
  1198	001371	402 00 0 00 005425 	%ERLP:	SETZM	%ERFLG#
  1199	001372	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET AC FIELD OF UUO
  1200	001373	242 00 0 00 777751 		LSH	AC0,-^D23
  1201	001374	405 00 0 00 000017 		ANDI	AC0,17
  1202	001375	306 00 0 00 000002 		CAIN	AC0,2
  1203	001376	254 00 0 00 001415 		JRST	%ERLP2		; 2 = LOOP IF ANY ERROR
  1204	001377	306 00 0 00 000001 		CAIN	AC0,1
  1205	001400	254 00 0 00 001411 		JRST	%ERLP1		; 1 = LOOP IF PC'S MATCH
  1206	001401	306 00 0 00 000000 		CAIN	AC0,0
  1207	001402	254 00 0 00 001405 		JRST	%ERLP0		; 0 = PC'S, REPT, REPT1 & ERROR
  1208	001403	262 17 0 00 000000 		GET	AC0
  1209	001404	254 00 0 00 001244 		JRST	$UOERX
  1210	001405	476 00 0 00 005425 	%ERLP0:	SETOM	%ERFLG
  1211	001406	316 15 0 00 005431 		CAMN	REPT,%RP	;ARE REPEAT COUNTS SAME AS ERROR ?
  1212	001407	312 16 0 00 005432 		CAME	REPT1,%RP1	;(AT RIGHT PLACE IN TEST LOOPS ?)
  1213	001410	254 00 0 00 001425 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1214	001411	550 00 0 17 777777 	%ERLP1:	HRRZ	AC0,-1(P)	;GET PC OF LOOP CALL FROM STACK
  1215	001412	275 00 0 00 000002 		SUBI	AC0,2		;LESS 2
  1216	001413	312 00 0 00 030052 		CAME	AC0,ERRPC	;NOW EQUAL TO PC OF ERROR CALL ?
  1217	001414	254 00 0 00 001425 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1218	001415	260 17 0 00 002747 	%ERLP2:	GO	$SWTCH		;READ SWITCHES INTO AC0
  1219	001416	607 00 0 00 004000 		TLNN	LOOPER		;LOOP ON ERROR ?
  1220	001417	402 00 0 00 030116 		SETZM	SCOPE		;NO ..........CLEAR LOOP CONTROL
  1221	001420	331 00 0 00 030116 		SKIPL	SCOPE		;YES ...WAS THERE AN ERROR ?
  1222	001421	254 00 0 00 001425 		JRST	%ERX1		;NO, CONTINUE IN LINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 11
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0282

  1223	001422	262 17 0 00 000000 	%ERX:	GET	AC0		;RESTORE AC0
  1224	001423	274 17 0 00 004676 		SUB	P,[1,,1]	;CORRECT PUSH LIST POINTER FOR NO "RTN"
  1225	001424	254 00 1 00 000040 		JRST	@JOBUUO		;TRANSFER TO E FIELD OF UUO
  1226
  1227	001425	262 17 0 00 000000 	%ERX1:	GET	AC0		;RESTORE AC0
  1228	001426	263 17 0 00 000000 		RTN
  1229
  1230					S^;*********************************************************************^
  1231					;*REPEAT LOOP ROUTINE
  1232					;*EITHER CONTINUES IN-LINE
  1233					;*OR TRANSFERS TO E FIELD OF UUO
  1234					S^;*********************************************************************^
  1235
  1236	001427	373 00 0 00 030115 	%REPT:	SOSLE	REPTU#		;REPEAT TEST SECTION ?
  1237	001430	254 00 0 00 001422 		JRST	%ERX		;YES, E FIELD OF UUO IS RETURN
  1238	001431	254 00 0 00 001425 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1239
  1240					S^;*********************************************************************^
  1241					;*COMMON ERROR HANDLER AC SAVE/RESTORE
  1242					S^;*********************************************************************^
  1243
  1244	001432	202 00 0 00 005420 	%EACS:	MOVEM	0,%AC0#
  1245	001433	202 01 0 00 005421 		MOVEM	1,%AC1#
  1246	001434	202 02 0 00 005422 		MOVEM	2,%AC2#
  1247	001435	202 03 0 00 005423 		MOVEM	3,%AC3#
  1248	001436	263 17 0 00 000000 		RTN
  1249
  1250	001437	200 00 0 00 005420 	%EACR:	MOVE	0,%AC0
  1251	001440	200 01 0 00 005421 	%EACR1:	MOVE	1,%AC1
  1252	001441	200 02 0 00 005422 		MOVE	2,%AC2
  1253	001442	200 03 0 00 005423 		MOVE	3,%AC3
  1254	001443	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 12
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0283

  1255					;*ERROR REPORTING ROUTINE
  1256					S^;*********************************************************************^
  1257
  1258	001444	200 00 0 00 000040 	%ERUUO:	MOVE	LUUO
  1259	001445	202 00 0 00 005430 		MOVEM	%LUUO#
  1260	001446	476 00 0 00 030116 		SETOM	SCOPE
  1261	001447	262 17 0 00 000000 		GET	AC0
  1262	001450	332 00 0 00 030512 		SKIPE	%ERHI1		;ANY USERS INSTRUCTION ?
  1263	001451	256 00 0 00 030512 		XCT	%ERHI1		;YES, DO USERS ROUTINE
  1264	001452	260 17 0 00 001432 		GO	%EACS		;SAVE AC0 - AC3
  1265	001453	402 00 0 00 030117 		SETZM	%CORFLG#
  1266	001454	402 00 0 00 030121 		SETZM	%ACTFL#
  1267	001455	350 00 0 00 030053 		AOS	ERRTLS		;INCREMENT ERROR TOTALS
  1268	001456	260 17 0 00 002747 		GO	$SWTCH
  1269	001457	550 03 0 17 000000 		HRRZ	3,(P)		;GET <ADDRESS> OF ERROR CALL FROM STACK
  1270	001460	275 03 0 00 000001 		SUBI	3,1
  1271	001461	312 03 0 00 030052 		CAME	3,ERRPC		;SKIP IF SAME ERROR
  1272	001462	254 00 0 00 001472 		JRST	%ERPNT
  1273	001463	336 00 0 00 005425 		SKIPN	%ERFLG
  1274	001464	254 00 0 00 001470 		JRST	.+4		;DON'T CHECK REPEAT COUNTS
  1275	001465	316 15 0 00 005431 		CAMN	REPT,%RP
  1276	001466	312 16 0 00 005432 		CAME	REPT1,%RP1
  1277	001467	254 00 0 00 001472 		JRST	%ERPNT		;DIFFERENT, PRINT ERROR
  1278	001470	607 00 0 00 001000 		TLNN	PALERS		;PRINT ALL ERRORS ?
  1279	001471	254 00 0 00 001673 		JRST	%ERSW1		;THIS ERROR ALREADY REPORTED ONCE.
  1280
  1281					;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
  1282					S^;*********************************************************************^
  1283
  1284	001472	202 15 0 00 005431 	%ERPNT:	MOVEM	REPT,%RP#	;SAVE REPEAT COUNTS
  1285	001473	202 16 0 00 005432 		MOVEM	REPT1,%RP1#
  1286	001474	202 03 0 00 030052 		MOVEM	3,ERRPC		;SAVE ERROR CALL ADDRESS
  1287	001475	603 00 0 00 040000 		TLNE	0,NOPNT
  1288	001476	254 00 0 00 001673 		JRST	%ERSW1
  1289	001477	037 01 0 00 000026 		PFORCE			;OVERRIDE CONTROL O
  1290	001500	402 00 0 00 005424 		SETZM	%ERCNT#
  1291	001501	335 00 0 00 030043 		SKIPGE	MONCTL		;DIAG MON OR SYS EXER ?
  1292	001502	254 00 0 00 001705 		JRST	%ERPRA		;YES, GO PRINT TITLE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 13
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0284

  1293						SALL
  1294	001503	336 00 0 00 030047 	%ERPRB:	SKIPN	PASCNT
  1295	001504	254 00 0 00 001510 		JRST	.+4		;DON'T PRINT PASS COUNTER ON FIRST PASS
  1296	001505	037 02 0 00 004677 		PMSG	<^TEST PASS COUNT = >
  1297	001506	200 00 0 00 030047 		MOVE	0,PASCNT
  1298	001507	037 15 0 00 000000 		PNTDEC			;PRINT TEST PASS COUNTER
  1299	001510	037 02 0 00 004703 		PMSG	<^PC=  >
  1300	001511	201 00 0 03 000000 		MOVEI	0,(3)
  1301	001512	037 06 0 00 000000 		PNT6			;PRINT PC OF ERROR CALL.
  1302	001513	037 02 0 00 004705 		PMSG	<^SWITCHES = >
  1303	001514	200 00 0 00 030046 		MOVE	CONSW
  1304	001515	037 13 0 00 000000 		PNTHW			;PRINT SWITCHES AT ERROR
  1305	001516	260 17 0 00 001437 		GO	%EACR
  1306	001517	332 00 0 00 030514 		SKIPE	%ERHI3		;IF NON-ZERO, XCT USERS ROUTINE
  1307	001520	256 00 0 00 030514 		XCT	%ERHI3
  1308
  1309	001521	550 03 1 00 030052 		HRRZ	3,@ERRPC	;GET "E FIELD" OF ERROR CALL
  1310	001522	200 00 0 00 030046 		MOVE	0,CONSW		;AC3 HAS THE ERROR CALL ADDR IN IT
  1311	001523	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1312	001524	254 00 0 00 001545 		JRST	%ERPR2		;YES
  1313	001525	201 00 0 00 004710 		MOVEI	0,SIXBTZ	<^ERROR IN >
  1314	001526	554 01 0 03 000000 		HLRZ	1,(3)		;GET NAME OF FAILING TEST
  1315	001527	322 01 0 00 001535 		JUMPE	1,%ERPR1	;JUMP IF NO TEST NAME
  1316	001530	037 14 0 00 000003 		PSIXL			;*DEFINE T=0 TO INHIBIT TEST NAME		
  1317	001531	200 00 0 00 000001 		MOVE	0,1
  1318	001532	037 14 0 00 000003 		PSIXL			;REPORT NAME OF FAILING TEST
  1319	001533	201 00 0 00 004712 		MOVEI	0,SIXBTZ	< - >
  1320	001534	254 00 0 00 001536 		JRST	.+2
  1321	001535	201 00 0 00 004713 	%ERPR1:	MOVEI	0,SIXBTZ	<^>
  1322	001536	550 01 0 03 000000 		HRRZ	1,(3)		;GET ADDRESS OF FUNCTION MSG
  1323	001537	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1324	001540	316 01 0 00 004704 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1325	001541	254 00 0 00 001545 		JRST	%ERPR2		;JUMP IF NO FUNCTION CALLED OUT.
  1326	001542	037 14 0 00 000003 		PSIXL		
  1327	001543	550 00 0 03 000000 		HRRZ	0,(3)		;GET MESSAGE ADDRESS AGAIN
  1328	001544	037 14 0 00 000003 		PSIXL			;REPORT FUNCTION BEING TESTED.
  1329	001545	476 00 0 00 030123 	%ERPR2:	SETOM	%DISCR#		;SET 'DISCREPANCY FLAG'.
  1330						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 14
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0285

  1331					;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
  1332					S^;*********************************************************************^
  1333						SALL
  1334	001546	200 00 0 00 005430 	%ERP2B:	MOVE	%LUUO
  1335	001547	241 00 0 00 000015 		ROT	0,15		;GET THE X ARGUEMENT
  1336	001550	405 00 0 00 000017 		ANDI	0,17
  1337	001551	326 00 0 00 001553 		JUMPN	0,.+2		;PRINT 12 OCTAL DIGITS IF X=0
  1338	001552	201 00 0 00 000014 		MOVEI	0,14
  1339	001553	303 00 0 00 000014 		CAILE	0,14		;MAKE SURE THAT X IS A LEGAL ARGUMENT
  1340	001554	037 15 0 00 000004 		FATAL			;PROGRAM CALL ERROR
  1341	001555	242 00 0 00 000027 		LSH	0,^D<35-12>	;PUT X IN AC FIELD
  1342	001556	270 00 0 00 004714 		ADD	0,[PNTA]	;PRINT THE X ARGUEMENT
  1343	001557	202 00 0 00 005237 		MOVEM	0,%ERIN2
  1344	001560	201 00 0 00 004715 		MOVEI	0,SIXBTZ	<^CORRECT:  >
  1345	001561	554 02 0 03 000001 		HLRZ	2,1(3)		;GET ADDRESS OF EXPECTED TEST RESULTS
  1346	001562	326 02 0 00 001565 		JUMPN	2,.+3
  1347	001563	402 00 0 00 030123 		SETZM	%DISCR		;NO 'CORRECT RESULT' TYPEOUT
  1348	001564	254 00 0 00 001604 		JRST	%ERPR3
  1349	001565	476 00 0 00 030117 		SETOM	%CORFLG
  1350	001566	303 02 0 00 000003 		CAILE	2,3		;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
  1351	001567	254 00 0 00 001577 		JRST	%ERP2A
  1352	001570	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1353	001571	200 01 0 00 005421 		MOVE	1,%AC1
  1354	001572	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1355	001573	200 01 0 00 005422 		MOVE	1,%AC2
  1356	001574	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1357	001575	200 01 0 00 005423 		MOVE	1,%AC3
  1358	001576	254 00 0 00 001600 		JRST	.+2
  1359	001577	200 01 0 02 000000 	%ERP2A:	MOVE	1,(2)
  1360						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 15
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0286

  1361					;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
  1362					S^;*********************************************************************^
  1363						SALL
  1364	001600	037 14 0 00 000003 		PSIXL			;CORRECT RESULTS.
  1365	001601	200 00 0 00 000001 		MOVE	0,1
  1366	001602	264 00 0 00 005236 		JSR	%ERIN1		;REPORT CORRECT DATA
  1367	001603	202 01 0 00 030120 		MOVEM	1,%COREC#	;SAVE CORRECT DATA
  1368	001604	201 00 0 00 004717 	%ERPR3:	MOVEI	0,SIXBTZ	<^ACTUAL:   >
  1369	001605	550 02 0 03 000001 		HRRZ	2,1(3)		;GET ADDRESS OF ACTUAL TEST RESULTS.
  1370	001606	326 02 0 00 001611 		JUMPN	2,.+3
  1371	001607	402 00 0 00 030123 		SETZM	%DISCR		;NO 'ACTUAL RESULT' TYPEOUT.
  1372	001610	254 00 0 00 001630 		JRST	%ERPR4
  1373	001611	476 00 0 00 030121 		SETOM	%ACTFL
  1374	001612	303 02 0 00 000003 		CAILE	2,3		;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
  1375	001613	254 00 0 00 001623 		JRST	%ERP3A
  1376	001614	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1377	001615	200 01 0 00 005421 		MOVE	1,%AC1
  1378	001616	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1379	001617	200 01 0 00 005422 		MOVE	1,%AC2
  1380	001620	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1381	001621	200 01 0 00 005423 		MOVE	1,%AC3
  1382	001622	254 00 0 00 001624 		JRST	.+2
  1383	001623	200 01 0 02 000000 	%ERP3A:	MOVE	1,(2)
  1384						LALL
  1385					;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
  1386					S^;*********************************************************************^
  1387						SALL
  1388	001624	037 14 0 00 000003 		PSIXL			;ACTUAL RESULTS
  1389	001625	200 00 0 00 000001 		MOVE	0,1
  1390	001626	264 00 0 00 005236 		JSR	%ERIN1		;REPORT ACTUAL DATA
  1391	001627	202 01 0 00 030122 		MOVEM	1,%ACTUL#	;SAVE ACTUAL DATA
  1392
  1393	001630	201 00 0 00 004721 	%ERPR4:	MOVEI	0,SIXBTZ	<^DISCREP:  >
  1394	001631	336 00 0 00 030123 		SKIPN	%DISCR		;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
  1395	001632	254 00 0 00 001641 		JRST	%ERPR5		;ACTUAL DATA REPORTED.
  1396	001633	200 01 0 00 030120 		MOVE	1,%COREC
  1397	001634	430 01 0 00 030122 		XOR	1,%ACTUL	;XOR CORRECT & ACTUAL DATA
  1398	001635	037 14 0 00 000003 		PSIXL		
  1399	001636	200 00 0 00 000001 		MOVE	0,1
  1400	001637	264 00 0 00 005236 		JSR	%ERIN1		;REPORT DISC BETWEEN COR & ACT
  1401	001640	202 01 0 00 030123 		MOVEM	1,%DISCR	;SAVE DISCREPANCY DATA
  1402						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 16
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0287

  1403					;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
  1404					S^;*********************************************************************^
  1405
  1406	001641	200 00 0 00 030046 	%ERPR5:	MOVE	0,CONSW
  1407	001642	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1408	001643	254 00 0 00 001653 		JRST	%ERPR6		;YES
  1409	001644	554 01 0 03 000002 		HLRZ	1,2(3)		;GET ADDRESS OF ASCIZ TEXT.
  1410	001645	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1411	001646	316 01 0 00 004704 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1412	001647	254 00 0 00 001653 		JRST	%ERPR6		;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
  1413	001650	037 00 0 00 030242 		PCRL
  1414	001651	554 00 0 03 000002 		HLRZ	0,2(3)		;GET MESSAGE ADDRESS AGAIN
  1415	001652	037 14 0 00 000003 		PSIXL		
  1416	001653	037 00 0 00 030242 	%ERPR6:	PCRL
  1417	001654	550 00 0 03 000002 		HRRZ	0,2(3)		;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
  1418	001655	260 17 0 00 001440 		GO	%EACR1
  1419	001656	202 00 0 00 005427 		MOVEM	0,%ERXTR#
  1420	001657	322 00 0 00 001666 		JUMPE	0,%ERMORE	;JUMP IF NONE
  1421	001660	200 00 0 00 030046 		MOVE	0,CONSW
  1422	001661	603 00 0 00 000200 		TLNE	0,TXTINH	;TEXT INHIBITED ?
  1423	001662	254 00 0 00 001666 		JRST	%ERMORE		;YES, NO ADDITIONAL PRINT
  1424	001663	200 00 0 00 005420 		MOVE	0,%AC0
  1425	001664	260 17 1 00 005427 		GO	@%ERXTR		;XFER TO PRINT ROUTINE, RETURN TO ERMORE
  1426	001665	202 00 0 00 005420 		MOVEM	0,%AC0
  1427	001666	200 00 0 00 005420 	%ERMORE:MOVE	0,%AC0
  1428	001667	256 00 0 00 030101 		XCT	ERMORE		;TO ADD ROUTINE PLACE XFR AT ERMORE
  1429									;IN "FIXED"
  1430	001670	260 17 0 00 001432 		GO	%EACS
  1431	001671	260 17 0 00 001370 		GO	$PNTMG		;IF KI10, PRINT MARGINS
  1432	001672	260 17 0 00 002747 		GO	$SWTCH
  1433
  1434					;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
  1435					S^;*********************************************************************^
  1436	001673	260 17 0 00 003311 	%ERSW1:	GO	$TALTM		;ALTMODE CHECK
  1437	001674	254 00 0 00 001700 		JRST	.+4		;NONE
  1438	001675	201 00 0 00 001700 		MOVEI	.+3		;SAVE ADDRESS FOR CONTINUE
  1439	001676	202 00 0 00 000130 		MOVEM	JOBOPC
  1440	001677	254 00 1 00 030063 		JRST	@ALTMGO		;PERFORM TRANSFER
  1441	001700	200 03 0 00 030046 		MOVE	3,CONSW
  1442	001701	607 03 0 00 002000 		TLNN	3,ERSTOP	;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
  1443	001702	254 00 0 00 001711 		JRST	%ERSW2		;NO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 17
SUBUSM	MAC	23-Mar-78 15:02		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0288

  1444					;*EXECUTE HALT IF SWITCH ERSTOP SET.
  1445					S^;*********************************************************************^
  1446
  1447	001703	260 17 0 00 001437 	%ERS1A:	GO	%EACR		;RESTORE AC'S
  1448	001704	254 00 0 00 002030 		JRST	$ERHLT		;USE SUBROUTINE ERROR HALT
  1449
  1450	001705	336 00 0 00 005426 	%ERPRA:	SKIPN	%ERFST#		;PRINT PROGRAM NAME
  1451	001706	037 04 0 00 000002 		PNTNM
  1452	001707	476 00 0 00 005426 		SETOM	%ERFST
  1453	001710	254 00 0 00 001503 		JRST	%ERPRB
  1454
  1455					;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
  1456					S^;*********************************************************************^
  1457
  1458	001711	607 03 0 00 004000 	%ERSW2:	TLNN	3,LOOPER
  1459	001712	402 00 0 00 030116 		SETZM	SCOPE		;CLEAR SCOPE LOOP CONTROL
  1460	001713	350 01 0 00 005424 		AOS	1,%ERCNT	;INCREMENT ERROR COUNT
  1461
  1462					;*RING TTY BELL IF DING SWITCH IS SET.
  1463					S^;*********************************************************************^
  1464
  1465	001714	603 03 0 00 010000 	%ERSW3:	TLNE	3,DING
  1466	001715	037 01 0 00 000007 		PBELL
  1467
  1468					;*RETURN TO ERROR CALL ADDRESS+1
  1469					S^;*********************************************************************^
  1470
  1471	001716	260 17 0 00 001440 	%EXCAL:	GO	%EACR1
  1472	001717	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  1473	001720	254 00 0 00 001724 		JRST	%EXCL1		;NO, CONTINUE PROGRAM
  1474	001721	200 00 0 00 030053 		MOVE	0,ERRTLS	;YES
  1475	001722	301 00 0 00 000005 		CAIL	0,5		;PRINTED ALLOWED ERRORS ?
  1476	001723	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  1477	001724	200 00 0 00 005420 	%EXCL1:	MOVE	0,%AC0
  1478	001725	332 00 0 00 030513 		SKIPE	%ERHI2		;ANY USERS INSTRUCTION ?
  1479	001726	256 00 0 00 030513 		XCT	%ERHI2		;YES, DO USERS ROUTINE
  1480	001727	263 17 0 00 000000 		RTN			;CONTINUE PROGRAM
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 18
SUBUSM	MAC	23-Mar-78 15:02		PROCESSOR TYPE DETERMINATION                                                       SEQ 0289

  1481					SUBTTL	PROCESSOR TYPE DETERMINATION
  1482					S^;*********************************************************************^
  1483
  1484	001730	402 00 0 00 030505 	$CPUTP:	SETZM	CYCL60
  1485	001731	402 00 0 00 030524 		SETZM	SM10
  1486	001732	402 00 0 00 030041 		SETZM	KLFLG
  1487	001733	402 00 0 00 030040 		SETZM	KAIFLG
  1488	001734	200 01 0 00 004676 	$CPKL:	MOVE	1,[1,,1]	;IF KL10, AC1 AFTER BLT WILL CHANGE
  1489	001735	251 01 0 00 000001 		BLT	1,1
  1490	001736	316 01 0 00 004676 		CAMN	1,[1,,1]
  1491	001737	254 00 0 00 001760 		JRST	$CPKAI
  1492	001740	476 00 0 00 030041 		SETOM	KLFLG		;KL10 - SET FLAG
  1493
  1494	001741	336 00 0 00 030516 	$CPINI:	SKIPN	MONTYP
  1495	001742	254 00 0 00 001747 		JRST	.+5		;TOPS-10
  1496	001743	200 01 0 00 004723 		MOVE	1,[SIXBIT/APRID/]
  1497	001744	104 00 0 00 000016 		SYSGT			;GET SERIAL NUMBER
  1498	001745	200 00 0 00 000001 		MOVE	0,1
  1499	001746	254 00 0 00 001752 		JRST	.+4
  1500	001747	200 00 0 00 004724 		MOVE	0,[20,,11]
  1501	001750	047 00 0 00 000041 		GETTAB
  1502	001751	400 00 0 00 000000 		SETZ	0,
  1503	001752	202 00 0 00 005326 		MOVEM	0,$$SNX#	;SAVE IT
  1504	001753	336 00 0 00 030041 		SKIPN	KLFLG
  1505	001754	263 17 0 00 000000 		RTN
  1506	001755	303 00 0 00 010000 		CAILE	0,^D4096	;IS THIS A KS10 ?
  1507	001756	476 00 0 00 030524 		SETOM	SM10		;YES, SERIAL # GT 4096.
  1508	001757	263 17 0 00 000000 		RTN
  1509
  1510	001760	476 00 0 00 030040 	$CPKAI:	SETOM	KAIFLG
  1511	001761	211 00 0 00 000001 		MOVNI	0,1
  1512	001762	253 00 0 00 001763 		AOBJN	0,.+1
  1513	001763	332 00 0 00 000000 		SKIPE
  1514	001764	402 00 0 00 030040 		SETZM	KAIFLG		;KA10
  1515
  1516	001765	254 00 0 00 001741 		JRST	$CPINI
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 19
SUBUSM	MAC	23-Mar-78 15:02		"DIAMON" FILE SELECTION & READ                                                     SEQ 0290

  1517					SUBTTL	"DIAMON" FILE SELECTION & READ
  1518					S^;*********************************************************************^
  1519
  1520	001766	261 17 0 00 000000 	$FSELECT:PUT	0
  1521	001767	402 00 0 00 005342 		SETZM	$FSELF#
  1522	001770	200 00 0 00 004725 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  1523	001771	251 00 0 00 005320 		BLT	POWER+16
  1524	001772	262 17 0 00 000000 		GET	0
  1525	001773	336 00 0 00 027772 		SKIPN	FSELNK		;ANY FILE SELECT LINK ?
  1526	001774	254 00 0 00 002006 		JRST	$FSEL1		;NO
  1527
  1528	001775	260 17 1 00 027772 		GO	@FSELNK		;TRANSFER TO "DIAMON"
  1529	001776	254 00 0 00 002001 		JRST	$FSEL2		;ERROR RTN, AC0 HAS CODE
  1530
  1531	001777	476 00 0 00 005342 		SETOM	$FSELF		;FOUND, SET FILE SELECTED FLAG
  1532	002000	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN
  1533	002001	261 17 0 00 000000 	$FSEL2:	PUT	0
  1534	002002	204 00 0 00 004725 		MOVS	0,[1,,POWER+1]	;RESTORE ACS
  1535	002003	251 00 0 00 000016 		BLT	16
  1536	002004	262 17 0 00 000000 		GET	0
  1537	002005	263 17 0 00 000000 		RTN
  1538
  1539	002006	402 00 0 00 000000 	$FSEL1:	SETZM	0		;NO "DIAMON" CAPABILTY
  1540	002007	254 00 0 00 002001 		JRST	$FSEL2
  1541
  1542					;*"DIAMON" FILE READ
  1543					S^;*********************************************************************^
  1544
  1545	002010	201 00 0 00 000001 	$FRD8:	MOVEI	0,1		;SET FLAG FOR 8BIT READ
  1546	002011	254 00 0 00 002015 		JRST	.+4
  1547	002012	474 00 0 00 000000 	$FRD36:	SETO			;SET FLAG FOR 36 BIT READ
  1548	002013	254 00 0 00 002015 		JRST	.+2
  1549	002014	400 00 0 00 000000 	$FREAD:	SETZ			;SET FLAG FOR 7 BIT ASCII READ
  1550	002015	261 17 0 00 000000 		PUT	0
  1551	002016	336 00 0 00 005342 		SKIPN	$FSELF		;WAS ANY FILE SELECTED ?
  1552	002017	037 15 0 00 000004 		FATAL			;NO
  1553	002020	336 00 0 00 027773 		SKIPN	FRDLNK		;ANY FILE READ LINK ?
  1554	002021	037 15 0 00 000004 		FATAL			;NO
  1555	002022	200 00 0 00 004725 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  1556	002023	251 00 0 00 005320 		BLT	POWER+16
  1557	002024	262 17 0 00 000000 		GET	0		;GET FORMAT FLAG
  1558	002025	260 17 1 00 027773 		GO	@FRDLNK		;TRANSFER TO "DIAMON"
  1559	002026	254 00 0 00 002001 		JRST	$FSEL2		;EOF
  1560	002027	254 00 0 00 002000 		JRST	$FSEL2-1	;OK, SKIP RETURN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 20
SUBUSM	MAC	23-Mar-78 15:02		PROGRAM HALTS                                                                      SEQ 0291

  1561					SUBTTL	PROGRAM HALTS
  1562
  1563					;*SUBROUTINE ERROR HALT
  1564					S^;*********************************************************************^
  1565						SALL
  1566	002030	037 04 0 00 000002 	$ERHLT:	PNTNM			;PRINT PROGRAM NAME
  1567	002031	037 04 0 00 004726 		PMSGF	<ERROR HALT AT >
  1568	002032	262 17 0 00 005341 		GET	$ERH0
  1569	002033	261 17 0 00 000000 		PUT	0
  1570	002034	200 00 0 00 005341 		MOVE	AC0,$ERH0#	;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
  1571	002035	370 00 0 00 000000 		SOS			;SUBTRACT ONE FOR USRPC OF ERROR
  1572	002036	037 06 0 00 000001 		PNT6F			;PRINT USRPC FORCED
  1573	002037	037 01 0 00 030242 		PCRLF
  1574
  1575	002040	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER MONITOR CONTROL ?
  1576	002041	254 00 0 00 002047 		JRST	$ERHL4		;NO..HALT AT USRPC WHERE UUO OCCURRED
  1577
  1578	002042	260 17 0 00 002747 	$ERHL1:	GO	$SWTCH		;READ SWITCHES INTO AC0
  1579	002043	603 00 0 00 002000 		TLNE	0,ERSTOP	;HALT ON ERROR SWITCH SET ?
  1580	002044	254 00 0 00 002047 		JRST	$ERHL4		;YES...HALT
  1581
  1582	002045	262 17 0 00 000000 	$ERHL3:	GET	AC0		;RESTORE  THE STACK (P - 1)
  1583	002046	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  1584
  1585	002047	262 17 0 00 000000 	$ERHL4:	GET	AC0
  1586	002050	332 00 0 00 030516 		SKIPE	MONTYP
  1587	002051	254 00 0 00 002054 		JRST	.+3
  1588	002052	047 01 0 00 000012 		EXIT	1,
  1589	002053	254 00 1 00 005341 		JRST	@$ERH0
  1590	002054	104 00 0 00 000170 		HALTF			;RETURN TO MONITOR
  1591	002055	254 00 1 00 005341 		JRST	@$ERH0		;IF CONTINUED
  1592						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 21
SUBUSM	MAC	23-Mar-78 15:02		PROGRAM HALTS                                                                      SEQ 0292

  1593					;*FATAL PROGRAM ERROR HALT
  1594					S^;*********************************************************************^
  1595						SALL
  1596	002056	037 04 0 00 000002 	$FATAL:	PNTNM
  1597	002057	037 04 0 00 004731 		PMSGF	<FATAL PROGRAM ERROR AT >
  1598	002060	200 00 0 17 000000 		MOVE	AC0,(P)		;RETRIEVE USRPC + 1 FROM THE STACK
  1599	002061	370 00 0 00 000000 		SOS			;- 1
  1600	002062	037 06 0 00 000001 		PNT6F			;PRINT IT
  1601	002063	037 01 0 00 030242 		PCRLF
  1602	002064	331 00 0 00 030043 		SKIPL	MONCTL		;EXEC - DIAGNOSTIC MONITOR ?
  1603	002065	254 00 0 00 002071 		JRST	$FATL1		;NO, END OF PROGRAM
  1604	002066	260 17 0 00 002747 		GO	$SWTCH		;YES ... READ SWITCHES
  1605	002067	607 00 0 00 002000 		TLNN	ERSTOP		;STOP ON ERROR ?
  1606	002070	254 00 0 00 030061 		JRST	$BEND2		;NO, END OF PROGRAM
  1607
  1608	002071				$FATL1:
  1609	002071	261 17 0 00 000000 	$DDTENT:PUT	0
  1610	002072	200 00 0 00 010001 		MOVE	AC0,DDT+1	;GET DDT ID
  1611	002073	312 00 0 00 004735 		CAME	AC0,[ASCII/DDT/]
  1612	002074	254 00 0 00 030061 		JRST	$BEND2		;NOT LOADED, END PROGRAM
  1613	002075	262 17 0 00 000000 		GET	0
  1614	002076	254 00 1 00 027775 		JRST	@DDTLNK		;DDT LOADED, GO TO IT
  1615						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 22
SUBUSM	MAC	23-Mar-78 15:02		PROGRAM NAME PRINTER                                                               SEQ 0293

  1616					SUBTTL	PROGRAM NAME PRINTER
  1617
  1618					;*PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
  1619					S^;*********************************************************************^
  1620						SALL
  1621	002077	331 00 0 00 030043 	$PNTNM:	SKIPL	MONCTL		;DIAG MON / SYS EXR ?
  1622	002100	254 00 0 00 002134 		JRST	$PNM2		;NO
  1623	002101	037 00 1 00 030025 		PNTMSG	@$PNAME		;PRINT PROGRAM NAME
  1624	002102	037 02 0 00 004736 		PMSG	<VERSION >
  1625	002103	554 00 0 00 000137 		HLRZ	JOBVER
  1626	002104	037 16 0 00 000003 		PNTOCS			;PRINT MCN LEVEL
  1627	002105	037 00 0 00 000056 		PNTCI	"."
  1628	002106	550 00 0 00 000137 		HRRZ	JOBVER
  1629	002107	037 16 0 00 000003 		PNTOCS			;PRINT DEC VERSION
  1630	002110	037 02 0 00 004740 		PMSG	<, SV=>
  1631	002111	554 00 0 00 001006 		HLRZ	SUBVER
  1632	002112	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" MCN LEVEL
  1633	002113	037 00 0 00 000056 		PNTCI	"."
  1634	002114	550 00 0 00 001006 		HRRZ	SUBVER
  1635	002115	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" DEC VERSION
  1636
  1637	002116	336 00 0 00 030516 		SKIPN	MONTYP
  1638	002117	037 02 0 00 004741 		PMSG	<, TOPS-10>
  1639	002120	332 00 0 00 030516 		SKIPE	MONTYP
  1640	002121	037 02 0 00 004743 		PMSG	<, TOPS-20>
  1641	
  1642	002122	332 00 0 00 030041 		SKIPE	KLFLG
  1643						JRST	[SKIPE	SM10
  1644							 JRST	[PMSG	<, KS10>
  1645								 JRST	$PNM3]
  1646							 PMSG	<, KL10>
  1647	002123	254 00 0 00 004753 			 JRST	$PNM3]
  1648	002124	336 00 0 00 030040 		SKIPN	KAIFLG
  1649						JRST	[PMSG	<, KA10>
  1650	002125	254 00 0 00 004761 			 JRST	$PNM3]
  1651	002126	037 02 0 00 004763 		PMSG	<, KI10>
  1652
  1653	002127	336 00 0 00 005326 	$PNM3:	SKIPN	$$SNX		;ANY SERIAL NUMBER ?
  1654	002130	254 00 0 00 002134 		JRST	$PNM2		;NO
  1655	002131	037 02 0 00 004765 		PMSG	<, CPU#=>
  1656	002132	200 00 0 00 005326 		MOVE	$$SNX
  1657	002133	037 15 0 00 000000 		PNTDEC			;PRINT SERIAL NUMBER
  1658
  1659	002134	037 00 0 00 030242 	$PNM2:	PCRL
  1660	002135	263 17 0 00 000000 		RTN			;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 23
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0294

  1661					SUBTTL	*SUBRTN* INTERRUPT HANDLING ROUTINES
  1662						LALL
  1663
  1664					;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
  1665					S^;*********************************************************************^
  1666						SALL
  1667	002136	037 04 0 00 004767 	PSHERR:	PMSGF	<^*****^PLIST UFLOW^>
  1668	002137	037 15 0 00 000004 		FATAL			;PRINT LOCATION AND EXIT
  1669						LALL
  1670					S^;*********************************************************************^
  1671					;*INTERRUPT ROUTINE INITIALIZATION
  1672					S^;*********************************************************************^
  1673						SALL
  1674	002140	332 00 0 00 030516 	$ITRIN:	SKIPE	MONTYP
  1675	002141	254 00 0 00 002147 		JRST	.+6
  1676	002142	201 00 0 00 002321 		MOVEI	ITRUSR		;TOPS10, SETUP USER APR TRAPPING
  1677	002143	202 00 0 00 000125 		MOVEM	JOBAPR
  1678	002144	201 00 0 00 234000 		MOVEI	PDLOVU!MPVU!NXMU!PARU
  1679	002145	047 00 0 00 000016 		APRENB			;ENABLE PROCESSOR TRAPS
  1680	002146	263 17 0 00 000000 		RTN
  1681
  1682	002147	201 01 0 00 400000 		MOVEI	1,.FHSLF	;CURRENT PROCESS
  1683	002150	200 02 0 00 004773 		MOVE	2,[LEVTAB,,CHNTAB]
  1684	002151	104 00 0 00 000125 		SIR			;SPECIFY INTERRUPT TABLES
  1685	002152	104 00 0 00 000126 		EIR			;ENABLE SYSTEM
  1686	002153	200 02 0 00 004774 		MOVE	2,[1B1+1B<.ICPOV>+1B<.ICILI>+1B<.ICIRD>+1B<.ICIWR>]
  1687	002154	104 00 0 00 000131 		AIC			;ACTIVATE CHANNELS
  1688	002155	200 01 0 00 004775 		MOVE	1,[.TICCG,,1]
  1689	002156	104 00 0 00 000137 		ATI			;ASSIGN CTRL/G TO CHANNEL 1
  1690	002157	263 17 0 00 000000 		RTN
  1691						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 24
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0295

  1692					;*INTERRUPT TABLES
  1693					S^;*********************************************************************^
  1694						SALL
  1695
  1696	002160	000000	000000		LEVTAB:	0			;LEVEL TABLE
  1697	002161	000000	002163			PC2
  1698	002162	000000	000000			0
  1699
  1700	002163	000000	000000		PC2:	0
  1701
  1702	002164	000000	000000		CHNTAB:	0			;CHANNEL TABLE
  1703	002165	000002	002230			2,,CNTRLG		;CHANNEL 1 IS CTRL/G
  1704						REPEAT	^D7,<0>		;CHANNEL 2-8 NOT USED
  1705	002166	000000	000000
  1706	002167	000000	000000
  1707	002170	000000	000000
  1708	002171	000000	000000
  1709	002172	000000	000000
  1710	002173	000000	000000
  1711	002174	000000	000000
  1712	002175	000002	002257			2,,PDLINT		;CHANNEL 9 IS PDL
  1713						REPEAT	^D5,<0>		;CHANNEL 10-14 NOT USED
  1714	002176	000000	000000
  1715	002177	000000	000000
  1716	002200	000000	000000
  1717	002201	000000	000000
  1718	002202	000000	000000
  1719	002203	000002	002264			2,,IININT		;CHANNEL 15 IS ILLEGAL INST
  1720	002204	000002	002267			2,,IMRINT		;CHANNEL 16 IS ILLEGAL MEMORY READ
  1721	002205	000002	002272			2,,IMWINT		;CHANNEL 17 IS ILLEGAL MEMORY WRITE
  1722						REPEAT	^D18,<0>	;CHANNEL 18-35 NOT USED
  1723	002206	000000	000000
  1724	002207	000000	000000
  1725	002210	000000	000000
  1726	002211	000000	000000
  1727	002212	000000	000000
  1728	002213	000000	000000
  1729	002214	000000	000000
  1730	002215	000000	000000
  1731	002216	000000	000000
  1732	002217	000000	000000
  1733	002220	000000	000000
  1734	002221	000000	000000
  1735	002222	000000	000000
  1736	002223	000000	000000
  1737	002224	000000	000000
  1738	002225	000000	000000
  1739	002226	000000	000000
  1740	002227	000000	000000
  1741						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 25
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0296

  1742					;*TOPS20 CONTROL G ROUTINE
  1743					S^;*********************************************************************^
  1744						SALL
  1745	002230	202 00 0 00 005336 	CNTRLG:	MOVEM	0,$CGAC0#
  1746	002231	607 17 0 00 777000 		TLNN	P,777000	;CHECK THAT P IS "SUBUSR'S" P
  1747	002232	254 00 0 00 002255 		JRST	CNTRG1		;NO
  1748	002233	602 17 0 00 747000 		TRNE	P,747000
  1749	002234	254 00 0 00 002255 		JRST	CNTRG1
  1750	002235	550 00 0 00 000017 		HRRZ	0,P
  1751	002236	307 00 0 00 030303 		CAIG	0,PLIST
  1752	002237	254 00 0 00 002255 		JRST	CNTRG1
  1753	002240	301 00 0 00 030504 		CAIL	0,PLISTE
  1754	002241	254 00 0 00 002255 		JRST	CNTRG1
  1755	002242	554 00 0 00 000017 		HLRZ	0,P
  1756	002243	307 00 0 00 777577 		CAIG	0,777577
  1757	002244	254 00 0 00 002255 		JRST	CNTRG1
  1758	002245	301 00 0 00 777777 		CAIL	0,777777
  1759	002246	254 00 0 00 002255 		JRST	CNTRG1
  1760
  1761	002247	332 00 0 00 030522 		SKIPE	$$TAX1
  1762	002250	256 00 0 00 030522 		XCT	$$TAX1		;EXECUTE USER ROUTINE IF SUPPLIED
  1763	002251	260 17 0 00 003016 		GO	$SW0		;DO SWITCHES
  1764	002252	332 00 0 00 030523 		SKIPE	$$TAX2
  1765	002253	256 00 0 00 030523 		XCT	$$TAX2		;EXECUTE USER ROUTINE IF SUPPLIED
  1766	002254	104 00 0 00 000136 		DEBRK			;DISMISS INTERRUPT
  1767
  1768	002255	200 00 0 00 005336 	CNTRG1:	MOVE	0,$CGAC0
  1769	002256	104 00 0 00 000136 		DEBRK
  1770						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 26
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0297

  1771					;*TOPS20 INTERRUPT PROCESSOR
  1772					S^;*********************************************************************^
  1773						SALL
  1774
  1775	002257	202 00 0 00 030106 	PDLINT:	MOVEM	0,$ACC0
  1776	002260	201 00 0 00 002275 		MOVEI	$PDOVU		;SETUP TRANSFER
  1777	002261	250 00 0 00 002163 	$$INT:	EXCH	PC2
  1778	002262	202 00 0 00 030104 		MOVEM	ITRCH1		;SAVE TRAPPED ADDRESS
  1779	002263	104 00 0 00 000136 		DEBRK			;DISMISS INTERRUPT
  1780
  1781	002264	202 00 0 00 030106 	IININT:	MOVEM	0,$ACC0
  1782	002265	201 00 0 00 002306 		MOVEI	$IIN
  1783	002266	254 00 0 00 002261 		JRST	$$INT
  1784
  1785	002267	202 00 0 00 030106 	IMRINT:	MOVEM	0,$ACC0
  1786	002270	201 00 0 00 002315 		MOVEI	$IMR
  1787	002271	254 00 0 00 002261 		JRST	$$INT
  1788
  1789	002272	202 00 0 00 030106 	IMWINT:	MOVEM	0,$ACC0
  1790	002273	201 00 0 00 002317 		MOVEI	$IMW
  1791	002274	254 00 0 00 002261 		JRST	$$INT
  1792
  1793	002275	202 17 0 00 005370 	$PDOVU:	MOVEM	P,$PDOVP#
  1794	002276	200 17 0 00 030303 		MOVE	P,PLIST		;RESET POINTER
  1795	002277	201 00 0 00 030103 		MOVEI	0,$PSHER
  1796	002300	261 17 0 00 000000 		PUSH	P,0
  1797	002301	037 02 0 00 004776 		PMSG	<^*****^PLIST OVERFLOW P=>
  1798	002302	200 00 0 00 005370 		MOVE	0,$PDOVP
  1799	002303	037 13 0 00 000000 		PNTHW
  1800	002304	400 00 0 00 000000 		SETZ
  1801	002305	254 00 0 00 002347 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  1802
  1803	002306	037 02 0 00 005003 	$IIN:	PMSG	<^*****^ILLEGAL INSTRUCTION >
  1804	002307	200 00 0 00 030104 		MOVE	ITRCH1
  1805	002310	370 00 0 00 000000 		SOS
  1806	002311	200 00 1 00 000000 		MOVE	@0
  1807	002312	037 13 0 00 000000 		PNTHW			;PRINT OFFENDING INSTRUCTION
  1808	002313	400 00 0 00 000000 		SETZ
  1809	002314	254 00 0 00 002347 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  1810
  1811	002315	201 00 0 00 005010 	$IMR:	MOVEI	SIXBTZ	<^ILLEGAL MEMORY READ>
  1812	002316	254 00 0 00 002347 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  1813
  1814	002317	201 00 0 00 005014 	$IMW:	MOVEI	SIXBTZ	<^ILLEGAL MEMORY WRITE>
  1815	002320	254 00 0 00 002347 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  1816
  1817						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 27
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0298

  1818					;*TOPS10 USER INTERRUPT HANDLER
  1819					S^;*********************************************************************^
  1820						SALL
  1821
  1822	002321	202 00 0 00 030106 	ITRUSR:	MOVEM	$ACC0
  1823	002322	200 00 0 00 000127 		MOVE	JOBTPC
  1824	002323	202 00 0 00 030104 		MOVEM	ITRCH1		;SAVE TRAPPED ADDRESS
  1825	002324	200 00 0 00 000126 		MOVE	JOBCNI		;GET CAUSE
  1826	002325	602 00 0 00 004000 		TRNE	PARU
  1827	002326	254 00 0 00 002343 	$UPAR:	JRST	$PAREX		;PARITY ERROR
  1828	002327	602 00 0 00 200000 		TRNE	PDLOVU
  1829	002330	254 00 0 00 002275 	$UPDL:	JRST	$PDOVU		;PUSHDOWN OVERFLOW
  1830	002331	602 00 0 00 020000 		TRNE	MPVU
  1831	002332	254 00 0 00 002337 	$UMPV:	JRST	$MPVU		;MEMORY PROTECTION VIOLATION
  1832	002333	602 00 0 00 010000 		TRNE	NXMU
  1833	002334	254 00 0 00 002341 	$UNXM:	JRST	$NXMU		;NON-X-MEMORY
  1834
  1835	002335	201 00 0 00 005020 		MOVEI	SIXBTZ	<^UNKNOWN INTERRUPT>
  1836	002336	254 00 0 00 002347 		JRST	$ITR1A
  1837
  1838	002337	201 00 0 00 005024 	$MPVU:	MOVEI	SIXBTZ	<^MEMORY PROT>
  1839	002340	254 00 0 00 002347 		JRST	$ITR1A
  1840
  1841	002341	201 00 0 00 005027 	$NXMU:	MOVEI	SIXBTZ	<^NON-X-MEMORY>
  1842	002342	254 00 0 00 002347 		JRST	$ITR1A
  1843
  1844	002343	200 00 0 00 030106 	$PAREX:	MOVE	$ACC0
  1845	002344	256 00 0 00 030100 		XCT	$PARER		;EXECUTE USERS ROUTINE IF SUPPLIED
  1846	002345	201 00 0 00 005032 		MOVEI	SIXBTZ	<^MEMORY PARITY>
  1847	002346	254 00 0 00 002347 		JRST	$ITR1A
  1848						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 28
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0299

  1849					;*COMMON INTERRUPT HANDLERS
  1850					;*PRINT CAUSE AND OTHER PERTINENT INFO
  1851					S^;*********************************************************************^
  1852						SALL
  1853	002347	261 17 0 00 000000 	$ITR1A:	PUT	0
  1854	002350	037 01 0 00 000026 		PFORCE
  1855	002351	262 17 0 00 000000 		GET	0
  1856
  1857	002352	332 00 0 00 000000 	$ITR1B:	SKIPE	0
  1858	002353	037 14 0 00 000003 		PSIXL			;PRINT CAUSE
  1859	002354	037 02 0 00 005035 		PMSG	<^FLAGS  PC      PROG^>
  1860	002355	200 00 0 00 030104 		MOVE	ITRCH1
  1861	002356	037 13 0 00 000000 		PNTHW			;PRINT FLAGS, PC
  1862	002357	037 00 0 00 000040 		PSP
  1863	002360	550 00 0 17 000000 		HRRZ	0,(P)
  1864	002361	037 06 0 00 000000 		PNT6			;PRINT LAST PUSHJ ENTRY
  1865	002362	037 00 0 00 030242 		PCRL
  1866	002363	200 00 0 00 030106 		MOVE	0,$ACC0
  1867	002364	256 00 0 00 030072 		XCT	$ITRX1		;EXECUTE USER ROUTINE, IF SUPPLIED
  1868	002365	037 15 0 00 000004 		FATAL
  1869
  1870						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 29
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0300

  1871					SUBTTL	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
  1872						LALL
  1873					;*END OF PASS ROUTINE
  1874					S^;*********************************************************************^
  1875						SALL
  1876	002366	350 00 0 00 030047 	$END:	AOS	PASCNT		;INCREMENT PASS COUNTER
  1877	002367	370 00 0 00 030024 		SOS	ITRCNT
  1878	002370	402 00 0 00 030116 		SETZM	SCOPE
  1879	002371	402 00 0 00 030052 		SETZM	ERRPC
  1880	002372	260 17 0 00 002747 		GO	$SWTCH
  1881	002373	603 00 0 00 400000 		TLNE	ABORT		;ABORT AT END OF PASS ?
  1882	002374	254 00 0 00 002400 		JRST	$END2		;YES
  1883	002375	336 00 0 00 030024 		SKIPN	ITRCNT
  1884	002376	254 00 0 00 002405 	$END1:	JRST	$END3		;SKIP RETURN, COMPLETED ALL ITERATIONS
  1885	002377	263 17 0 00 000000 		RTN			;NON - SKIP , KEEP RUNNING
  1886	002400	037 04 0 00 005041 	$END2:	PMSGF	<END PASS >
  1887	002401	200 00 0 00 030047 		MOVE	PASCNT		;PRINT END OF PASS COUNT
  1888	002402	037 15 0 00 000001 		PNTDCF
  1889	002403	037 01 0 00 000056 		PNTCIF	"."
  1890	002404	037 01 0 00 030242 		PCRLF
  1891	002405	350 00 0 17 000000 	$END3:	AOS	(P)
  1892	002406	263 17 0 00 000000 		RTN
  1893						LALL
  1894
  1895					;*END OF PROGRAM ROUTINE
  1896					S^;*********************************************************************^
  1897
  1898	002407	332 00 0 00 030044 	$EOP:	SKIPE	MONTEN		;USER, LOADED BY ITSELF ?
  1899	002410	254 00 1 00 030012 		JRST	@RETURN		;NO, RETURN TO LOADER
  1900	002411	336 00 0 00 030516 		SKIPN	MONTYP
  1901	002412	047 00 0 00 000012 		EXIT
  1902	002413	104 00 0 00 000170 		HALTF			;YES, EXIT
  1903	002414	254 00 0 00 030000 		JRST	BEGIN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 30
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* MEMORY MANAGMENT ROUTINES                                                 SEQ 0301

  1904					SUBTTL	*SUBRTN* MEMORY MANAGMENT ROUTINES
  1905
  1906					S^;*********************************************************************^
  1907					;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
  1908					;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
  1909					;*	$MPCNK	(MAPCNK)	ACTUAL MEMORY CHUNK MAPPER
  1910					;*	$MPSET	(MAPSET)	SETS UP PAGE MAP FOR KI10
  1911					;*	$MSEG	(MEMSEG)	SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
  1912					;*	$MZRO	(MEMZRO)	ZERO'S THE MAPPED MEMORY
  1913					;*	$MPADR	(MAPADR)	VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  1914					S^;*********************************************************************^
  1915
  1916	002415	402 00 0 00 030146 	$MEMMP:	SETZM	MEMSIZ		;USER MEMORY STARTS AT 0
  1917	002416	550 00 0 00 000044 		HRRZ	JOBREL		;GET HIGHEST REL ADDRESS
  1918	002417	202 00 0 00 030147 		MOVEM	MEMSIZ+1	;SAVE AS MEMORY SIZE
  1919	002420	476 00 0 00 030150 		SETOM	MEMSIZ+2	;FLAG END OF MEMSIZ TABLE
  1920	002421	402 00 0 00 030143 		SETZM	MAPNEW		;CLEAR 4096K MAPPING FLAG
  1921	002422	254 00 0 00 002567 		JRST	$PMAP		;GO PRINT MAP
  1922
  1923					S^;*********************************************************************^
  1924					;*MEMSEG, ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
  1925					;*		  11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
  1926					;*		  USER MODE, 1-37 ALWAYS RETURNS 0
  1927					;*	  	  GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
  1928					;*RETURNED IN AC0:
  1929					;*		  0 - NO MEMORY AVAILABLE
  1930					;*		  START ADDRESS,,END ADDRESS
  1931					;*RETURNS +1
  1932					S^;*********************************************************************^
  1933
  1934	002423	202 01 0 00 005330 	$MSEG:	MOVEM	1,$ACMP5#	;AC1 = TEMP STORAGE POINTER
  1935	002424	202 02 0 00 005331 		MOVEM	2,$ACMP6#	;AC2 = MAP STORAGE POINTER
  1936	002425	202 03 0 00 005332 		MOVEM	3,$ACMP7#	;AC3 = CHUNK START ADR
  1937	002426	202 04 0 00 005333 		MOVEM	4,$ACMP8#	;AC4 = CHUNK END ADR
  1938	002427	202 05 0 00 005334 		MOVEM 	5,$ACMP9#	;AC5 = PAGE COUNTER
  1939	002430	403 05 0 00 005347 		SETZB	5,$MNCON#	;SAVED AC1 - AC5
  1940	002431	603 00 0 00 777760 		TLNE	0,777760	;VALID ARGUMENT ?
  1941	002432	037 15 0 00 000004 		FATAL			;NO
  1942	002433	322 00 0 00 002465 		JUMPE	0,$MSKA		;USER MODE, SEGMENT 0 ONLY
  1943	002434	301 00 0 00 000040 		CAIL	0,40		;IF 1-37, NO MEMORY
  1944	002435	254 00 0 00 002445 		JRST	$MSKAP		;PHY, DO DIRECT PHYSICAL
  1945
  1946	002436	200 00 0 00 000005 	$MSEG3:	MOVE	0,5		;AC0 = RESULTS (SEE TITLE BLOCK)
  1947	002437	200 01 0 00 005330 		MOVE	1,$ACMP5	;RESTORE AC'S
  1948	002440	200 02 0 00 005331 		MOVE	2,$ACMP6
  1949	002441	200 03 0 00 005332 		MOVE	3,$ACMP7
  1950	002442	200 04 0 00 005333 		MOVE	4,$ACMP8
  1951	002443	200 05 0 00 005334 		MOVE	5,$ACMP9
  1952	002444	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 31
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* MEMORY MANAGMENT ROUTINES                                                 SEQ 0302

  1953					;*PHYSICAL CORE ASSIGNMENT
  1954					S^;*********************************************************************^
  1955
  1956	002445	303 00 0 00 777000 	$MSKAP:	CAILE	0,777000	;REQUEST FOR OVER 256K ?
  1957	002446	254 00 0 00 002436 		JRST	$MSEG3		;YES, NO MEMORY
  1958
  1959	002447	200 01 0 00 000000 	$MSEGP:	MOVE	1,0
  1960	002450	620 01 0 00 000777 		TRZ	1,777		;MAKE PHYSICAL EVEN PAGE
  1961	002451	400 04 0 00 000000 		SETZ	4,
  1962	002452	200 00 0 04 030146 		MOVE	MEMSIZ(4)	;GET START ADDRESS
  1963	002453	321 00 0 00 002436 		JUMPL	$MSEG3		;IF END OF TABLE, NO CORE ..EXIT
  1964	002454	315 01 0 00 000000 		CAMGE	1,0		;PHY = OR GT START ?
  1965	002455	254 00 0 00 002436 		JRST	$MSEG3		;NO, NO CORE ...EXIT
  1966	002456	200 00 0 04 030147 		MOVE	MEMSIZ+1(4)	;GET END ADDRESS
  1967	002457	271 04 0 00 000002 		ADDI	4,2
  1968	002460	311 01 0 00 000000 		CAML	1,0		;PHY GT END ?
  1969	002461	254 00 0 00 002452 		JRST	.-7		;YES, TRY NEXT CHUNK
  1970
  1971	002462	200 05 0 00 000000 		MOVE	5,0		;1= PHY ADR, 0= END ADR
  1972	002463	504 05 0 00 000001 		HRL	5,1		; START ADR,,END ADR
  1973	002464	254 00 0 00 002436 		JRST	$MSEG3		;EXIT
  1974
  1975	002465	200 01 0 00 000000 	$MSKA:	MOVE	1,0
  1976	002466	242 01 0 00 000001 		LSH	1,1		;DOUBLE, 2 ENTRIES PER
  1977	002467	200 00 0 01 030146 		MOVE	0,MEMSIZ(1)	;GET START ADDRESS
  1978	002470	321 00 0 00 002436 		JUMPL	0,$MSEG3	;NO MEMORY ...EXIT
  1979	002471	200 02 0 01 030147 		MOVE	2,MEMSIZ+1(1)	;GET END ADDRESS
  1980	002472	322 02 0 00 002436 		JUMPE	2,$MSEG3	;NO MEMORY ...EXIT
  1981	002473	326 00 0 00 002475 		JUMPN	0,.+2		;IF START ADDRESS IS 0
  1982	002474	200 00 0 00 030145 		MOVE	0,MEMLOW	;USE 'MEMLOW'
  1983	002475	317 02 0 00 000000 		CAMG	2,0		;END GREATER THAN START ?
  1984	002476	037 15 0 00 000004 		FATAL			;NO ...ABORT
  1985	002477	200 05 0 00 000002 		MOVE	5,2		;SETUP START ADR,,END ADR
  1986	002500	504 05 0 00 000000 		HRL	5,0
  1987	002501	254 00 0 00 002436 		JRST	$MSEG3		;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 32
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* MEMORY MANAGMENT ROUTINES                                                 SEQ 0303

  1988					S^;*********************************************************************^
  1989					;*MEMZRO, ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
  1990					;*MAPNEW = 0	 DIRECT MEMORY ZERO
  1991					S^;*********************************************************************^
  1992
  1993	002502	202 01 0 00 005354 	$MZRO:	MOVEM	1,$MZROB#	;SAVE AC1 & AC2
  1994	002503	202 02 0 00 005355 		MOVEM	2,$MZROC#
  1995
  1996	002504	400 02 0 00 000000 	$MZRO2:	SETZ	2,		;DIRECT MEMORY ZERO
  1997	002505	200 00 0 00 030145 		MOVE	0,MEMLOW	;START ADDRESS
  1998	002506	311 00 0 00 030147 		CAML	0,MEMSIZ+1
  1999	002507	254 00 0 00 002521 		JRST	$MZROX
  2000	002510	254 00 0 00 002513 		JRST	.+3
  2001	002511	200 00 0 02 030146 	$MZRO3:	MOVE	0,MEMSIZ(2)	;SEGMENT START ADDRESS
  2002	002512	321 00 0 00 002521 		JUMPL	0,$MZROX	;DONE 
  2003	002513	402 00 1 00 000000 		SETZM	@0
  2004	002514	507 00 0 00 000000 		HRLS			;CREATE BLT POINTER
  2005	002515	271 00 0 00 000001 		ADDI	1
  2006	002516	251 00 1 02 030147 		BLT	0,@MEMSIZ+1(2)	;ZERO DIRECT
  2007	002517	271 02 0 00 000002 		ADDI	2,2
  2008	002520	254 00 0 00 002511 		JRST	$MZRO3		;DO NEXT SEGMENT
  2009
  2010	002521	200 02 0 00 005355 	$MZROX:	MOVE	2,$MZROC	;RESTORE AC'S
  2011	002522	200 01 0 00 005354 		MOVE	1,$MZROB
  2012	002523	263 17 0 00 000000 		RTN			;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 33
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* MEMORY MANAGMENT ROUTINES                                                 SEQ 0304

  2013					S^;*********************************************************************^
  2014					;*MAPADR, VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
  2015					;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE
  2016					S^;*********************************************************************^
  2017
  2018	002524	202 01 0 00 005353 	$MPADR:	MOVEM	1,$MPAC0#
  2019	002525	550 01 0 00 000000 		HRRZ	1,0
  2020	002526	307 01 0 00 000017 		CAIG	1,17		;ACCUMULATOR ADDRESS ?
  2021	002527	254 00 0 00 002550 		JRST	$MPAD3-1	;YES
  2022
  2023	002530	200 00 0 00 030046 		MOVE	CONSW
  2024	002531	336 00 0 00 030511 		SKIPN	PVPAGI
  2025	002532	607 00 0 00 000100 		TLNN	INHPAG
  2026	002533	254 00 0 00 002535 		JRST	.+2
  2027	002534	254 00 0 00 002556 		JRST	$MPAD2		;PAGING INHIBITED
  2028	002535	332 00 0 00 030041 		SKIPE	KLFLG		;KL10 ?
  2029	002536	254 00 0 00 002565 		JRST	$MPADL		;YES
  2030	002537	336 00 0 00 030040 		SKIPN	KAIFLG		;KA10 ?
  2031	002540	254 00 0 00 002556 		JRST	$MPAD2		;YES
  2032
  2033	002541	257 00 0 01 000000 	$MPAD6:	MAP	0,(1)		;KI10, GET RELOCATION DATA
  2034	002542	602 00 0 00 400000 		TRNE	0,400000	;PAGE FAILURE ?
  2035	002543	254 00 0 00 002553 		JRST	$MPAD4		;YES, SEE IF VALID ANYWAY
  2036	002544	620 00 0 00 760000 	$MPAD5:	TRZ	0,760000	;CLEAR P,W,S, NO MATCH BITS
  2037	002545	242 00 0 00 000011 		LSH	0,^D9		;HI-ORDER 13 FROM MAP
  2038	002546	405 01 0 00 000777 		ANDI	1,777		;LO-ORDER 9 FROM VIRTUAL
  2039	002547	434 00 0 00 000001 		OR	0,1		;COMBINE
  2040	002550	350 00 0 17 000000 	$MPAD7:	AOS	(P)		;SKIP RETURN
  2041	002551	200 01 0 00 005353 	$MPAD3:	MOVE	1,$MPAC0
  2042	002552	263 17 0 00 000000 		RTN
  2043
  2044	002553	602 00 0 00 020000 	$MPAD4:	TRNE	0,20000		;PAGE FAILURE, ALSO NO MATCH ?
  2045	002554	254 00 0 00 002551 		JRST	$MPAD3		;YES, ERROR
  2046	002555	254 00 0 00 002544 		JRST	$MPAD5		;MATCH (RELOCATION VALID)
  2047
  2048	002556	200 00 0 00 000001 	$MPAD2:	MOVE	0,1		;KA10
  2049	002557	561 00 0 00 000001 		HRROI	1
  2050	002560	047 00 0 00 000041 		CALLI	41		;GETTAB - RELOCATION TABLE
  2051	002561	400 00 0 00 000000 		SETZ			;ERROR
  2052	002562	550 00 0 00 000000 		HRRZ			;RELOCATION ONLY
  2053	002563	270 00 0 00 000001 		ADD	0,1		;RELOC + VIRTUAL = PHYSICAL
  2054	002564	254 00 0 00 002550 		JRST	$MPAD7
  2055
  2056	002565	200 00 0 00 000001 	$MPADL:	MOVE	0,1		;MAP ILLEGAL ON KL10
  2057	002566	254 00 0 00 002550 		JRST	$MPAD7		;SO VIRTUAL GIVEN BACK
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 34
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* MEMORY MANAGMENT ROUTINES                                                 SEQ 0305

  2058					;*MAPPNT, PRINT MEMORY MAP
  2059					S^;*********************************************************************^
  2060
  2061						SALL
  2062	002567	400 04 0 00 000000 	$PMAP:	SETZ	4,
  2063	002570	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  2064	002571	254 00 0 00 002573 		JRST	$PMAP3		;NO
  2065	002572	254 00 0 00 002575 		JRST	$PMAP1		;YES
  2066	002573	336 00 0 00 030056 	$PMAP3:	SKIPN	$ONETM		;FIRST TIME ?
  2067	002574	474 04 0 00 000000 		SETO	4,		;YES, SET FLAG FOR PRINTING
  2068	002575	322 04 0 00 002600 	$PMAP1:	JUMPE	4,$PMAPL-1	;NO
  2069
  2070	002576	037 02 0 00 005043 		PMSG	<^MEMORY MAP =^FROM     TO         SIZE/K>
  2071
  2072	002577	037 00 0 00 030242 		PCRL
  2073	002600	403 03 0 00 000005 		SETZB	3,5
  2074
  2075	002601	322 04 0 00 002607 	$PMAPL:	JUMPE	4,.+6
  2076	002602	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  2077	002603	037 10 0 00 000000 		PNTADR			;PRINT START ADDRESS
  2078	002604	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  2079	002605	037 10 0 00 000000 		PNTADR			;PRINT END ADDRESS
  2080	002606	037 00 0 00 000011 		PNTCI	"	"
  2081	002607	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  2082	002610	271 00 0 00 000001 		ADDI	0,1
  2083	002611	274 00 0 03 030146 		SUB	MEMSIZ(3)
  2084	002612	231 00 0 00 002000 		IDIVI	^D1024
  2085	002613	270 05 0 00 000000 		ADD	5,0
  2086	002614	322 04 0 00 002616 		JUMPE	4,$PMAP4
  2087	002615	037 15 0 00 000000 	$PMAP7:	PNTDEC			;PRINT DECIMAL SIZE
  2088
  2089	002616	202 05 0 00 030144 	$PMAP4:	MOVEM	5,MEMTOT	;SAVE TOTAL # OF K
  2090	002617	550 00 0 00 000121 		HRRZ	JOBFF		;SETUP LOWEST USABLE
  2091	002620	271 00 0 00 001000 		ADDI	1000		;MEMORY ADDRESS
  2092	002621	620 00 0 00 000777 		TRZ	777		;EVEN BREAK ABOVE JOBFF
  2093	002622	202 00 0 00 030145 		MOVEM	MEMLOW
  2094	002623	322 04 0 00 002625 		JUMPE	4,$PMAP6	;RETURN
  2095	002624	037 00 0 00 030242 		PCRL
  2096
  2097	002625	263 17 0 00 000000 	$PMAP6:	RTN			;EXIT
  2098						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 35
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0306

  2099					SUBTTL	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE
  2100					S^;*********************************************************************^
  2101
  2102	002626	260 17 0 00 002747 	$MODDV:	GO	$SWTCH		;LOAD SWITCHES INTO AC0
  2103	002627	607 00 0 00 000040 		TLNN	0,MODDVC	;DEVICE CODE CHANGE SELECTED ?
  2104	002630	263 17 0 00 000000 		RTN			;NO, DON'T DO IT 
  2105
  2106	002631	202 01 0 00 005350 	$MODD0:	MOVEM	1,$MODDB#	;SAVE AC'S
  2107	002632	202 02 0 00 005351 		MOVEM	2,$MODDC#
  2108	002633	202 03 0 00 005352 		MOVEM	3,$MODDD#
  2109
  2110					;*ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
  2111					S^;*********************************************************************^
  2112						SALL
  2113	002634	037 04 0 00 005052 	$MODD1:	PMSGF	<^CHANGE DEVICE CODES,>
  2114	002635	260 17 0 00 003430 		GO	$YESNO		;AFFIRMATIVE ?
  2115	002636	254 00 0 00 002732 		JRST	$MODDX		;NO/NO MORE CHANGES, EXIT
  2116
  2117	002637	037 04 0 00 005056 	$MODD3:	PMSGF	<OLD DEVICE CODE - >
  2118	002640	265 03 0 00 002675 		JSP	3,$MODD2	;GET OLD DEVICE CODE
  2119	002641	254 00 0 00 002637 		JRST	.-2		;NO RESPONSE ...ASK AGAIN
  2120	002642	202 00 0 00 005346 		MOVEM	0,$MDVCO#	;SAVE THE OLD CODE
  2121
  2122	002643	037 04 0 00 005062 	$MODD4:	PMSGF	<NEW DEVICE CODE - >
  2123	002644	265 03 0 00 002675 		JSP	3,$MODD2	;GET NEW DEVICE CODE
  2124	002645	254 00 0 00 002643 		JRST	.-2		;NO RESPONSE ...ASK AGAIN
  2125	002646	202 00 0 00 005345 		MOVEM	0,$MDVCN#	;SAVE THE NEW CODE
  2126
  2127	002647	037 04 0 00 005066 	$MODD5:	PMSGF	<CHANGING FROM > 
  2128	002650	200 01 0 00 005346 		MOVE	1,$MDVCO	;GET OLD CODE
  2129	002651	265 03 0 00 002712 		JSP	3,$MDSRC	;GET THAT CODE OUT OF LIST
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 36
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0307

  2130	002652	037 04 0 00 005071 	$MODD6:	PMSGF	< TO >
  2131	002653	200 01 0 00 005345 		MOVE	1,$MDVCN	;GET NEW CODE
  2132	002654	265 03 0 00 002712 		JSP	3,$MDSRC	;GET THAT CODE OUT OF LIST (
  2133	002655	037 01 0 00 030242 		PCRLF
  2134
  2135	002656	037 04 0 00 005072 	$MODD7:	PMSGF	<VALID CHANGE,>
  2136	002657	260 17 0 00 003430 		GO	$YESNO		;AFFIRMATIVE ?
  2137	002660	254 00 0 00 002634 		JRST	$MODD1		;NO ...START OVER )
  2138	002661	260 17 0 00 002663 		GO	$MODD8		;YES ...CHANGE THE LIST
  2139	002662	254 00 0 00 002634 		JRST	$MODD1
  2140						LALL
  2141
  2142					;*CHANGE THE DEVICE CODE LIST
  2143					S^;*********************************************************************^
  2144
  2145	002663	200 02 0 00 030027 	$MODD8:	MOVE	2,$MODVL
  2146	002664	274 02 0 00 030030 		SUB	2,$MODVU
  2147	002665	514 02 0 00 000002 		HRLZ	2,2
  2148	002666	540 02 0 00 030027 		HRR	2,$MODVL
  2149	002667	200 01 0 00 005345 		MOVE	1,$MDVCN
  2150	002670	135 00 0 00 005075 		LDB	0,[POINT 10,(2),9] 	;GET IOT & DEVICE CODE
  2151	002671	316 00 0 00 005346 		CAMN	0,$MDVCO	;IS IT REQUESTED ONE ?
  2152	002672	137 01 0 00 005075 		DPB	1,[POINT 10,(2),9] 	;YES, MAKE THE CHANGE
  2153	002673	253 02 0 00 002670 		AOBJN	2,.-3
  2154	002674	263 17 0 00 000000 		RTN
  2155
  2156					;*INPUT OLD CODE AND CHECK FOR VALIDITY
  2157					S^;*********************************************************************^
  2158
  2159	002675	260 17 0 00 003474 	$MODD2:	GO	$TPOCT		;INPUT THE OLD CODE
  2160	002676	254 00 1 00 000003 		JRST	@3		;NO RESPONSE, RETURN + 1 )
  2161
  2162	002677	602 00 0 00 000003 	$MODD9:	TRNE	0,3		;MUST END IN 0 OR 4
  2163	002700	254 00 0 00 002730 		JRST	$MODER		;ERROR! ASK AGAIN
  2164	002701	307 00 0 00 000774 		CAIG	0,774		;IS DEVICE CODE IN PROPER RANGE
  2165	002702	305 00 0 00 000014 		CAIGE	0,14
  2166	002703	254 00 0 00 002730 		JRST	$MODER		;ERROR, 14 TO 774 ONLY 
  2167	002704	306 00 0 00 000120 		CAIN	0,120		;CTY MAY NOT CHANGE!
  2168	002705	254 00 0 00 002730 		JRST	$MODER		;ASK AGAIN
  2169	002706	660 00 0 00 007000 		TRO	0,7000		;INSERT IOT CODE
  2170	002707	242 00 0 00 777776 		LSH	0,-2		;POSITION
  2171	002710	350 00 0 00 000003 		AOS	3		;RETURN + 2
  2172	002711	254 00 1 00 000003 		JRST	@3		;RETURN 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 37
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0308

  2173					;*GET THE OLD/NEW CODE FROM DEVICE CODE LIST
  2174					S^;*********************************************************************^
  2175						SALL
  2176	002712	242 01 0 00 000002 	$MDSRC:	LSH	1,2		;POSITION FOR COMPARE
  2177	002713	620 01 0 00 007000 		TRZ	1,7000		;MASK IOT
  2178	002714	200 02 0 00 005076 		MOVE	2,[-$MDEND,,$MDLST]
  2179	002715	135 00 0 00 005077 		LDB	[POINT 9,(2),35] ;EXTRACT CODE FROM LIST
  2180	002716	316 00 0 00 000001 		CAMN	0,1		;IS THIS THE ONE?
  2181	002717	254 00 0 00 002724 		JRST	$MDSR2		;YES! ...PRINT IT & EXIT
  2182	002720	253 02 0 00 002715 		AOBJN	2,.-3		;NOT YET ...GET NEXT
  2183	002721	200 00 0 00 000001 		MOVE	0,1
  2184	002722	037 03 0 00 000001 		PNT3F
  2185
  2186	002723	254 00 1 00 000003 	$MDSR1:	JRST	@3		;RETURN 
  2187	002724	200 00 0 02 000000 	$MDSR2:	MOVE	0,(2)
  2188	002725	620 00 0 00 000777 		TRZ	0,777		;MASK CODE
  2189	002726	037 01 0 00 000002 		PNTSXF			;PRINT IT
  2190	002727	254 00 0 00 002723 		JRST	$MDSR1		;EXIT
  2191
  2192	002730	037 04 0 00 005100 	$MODER:	PMSGF	<^DEV CODE ERR, 14-774 ONLY^>
  2193	002731	254 00 0 00 002637 		JRST	$MODD3		;ASK WHICH ONE TO CHANGE AGAIN
  2194
  2195	002732	200 03 0 00 005352 	$MODDX:	MOVE	3,$MODDD	;RESTORE AC'S
  2196	002733	200 02 0 00 005351 		MOVE	2,$MODDC
  2197	002734	200 01 0 00 005350 		MOVE	1,$MODDB
  2198	002735	263 17 0 00 000000 		RTN			;EXIT
  2199						LALL
  2200					;*DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
  2201					;* AC0 = [OLD,,NEW]
  2202					S^;*********************************************************************^
  2203
  2204	002736	242 00 0 00 777776 	$MODDP:	LSH	AC0,-2		;RIGHT JUSTIFY
  2205	002737	434 00 0 00 005105 		OR	AC0,[1600,,1600] ;INSERT IOT CODE
  2206	002740	556 00 0 00 005346 		HLRZM	$MDVCO		;SETUP OLD CODE
  2207	002741	552 00 0 00 005345 		HRRZM	$MDVCN		;SETUP NEW CODE
  2208	002742	202 01 0 00 005350 		MOVEM	1,$MODDB
  2209	002743	202 02 0 00 005351 		MOVEM	2,$MODDC
  2210	002744	202 03 0 00 005352 		MOVEM	3,$MODDD
  2211
  2212	002745	260 17 0 00 002663 		GO	$MODD8		;CHANGE CODES
  2213	002746	254 00 0 00 002732 		JRST	$MODDX		;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 38
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0309

  2214					SUBTTL	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
  2215					S^;*********************************************************************^
  2216					;*INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
  2217					;*USER MODE IF NON-TTY SWITCH CONTROL
  2218					S^;*********************************************************************^
  2219
  2220	002747	332 00 0 00 030521 	$SWTCH:	SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  2221	002750	254 00 0 00 002770 		JRST	$SWU2		;YES, USE C(CONSW)
  2222	002751	336 00 0 00 005403 		SKIPN	$SWFLG		;BEEN INITED ?
  2223	002752	254 00 0 00 002766 		JRST	$SWU1		;NO, USE SAVED SWITCHES
  2224	002753	332 00 0 00 005417 		SKIPE	$USWTF		;TTY SWITCH CONTROL ?
  2225	002754	254 00 0 00 002766 		JRST	$SWU1		;YES, USE SAVED SWITCHES
  2226	002755	254 00 0 00 002762 		JRST	$SWUSR		;USER MODE
  2227	002756	335 00 0 00 030043 	$SWCH1:	SKIPGE	MONCTL		;MONITR CONTROL ?
  2228	002757	540 00 0 00 030043 		HRR	0,MONCTL	;YES, USE PRESTORED RH SWITCHES
  2229	002760	202 00 0 00 030046 		MOVEM	0,CONSW		;SAVE
  2230	002761	263 17 0 00 000000 		RTN			;EXIT
  2231	002762	400 00 0 00 000000 	$SWUSR:	SETZ			;KL'S DON'T HAVE SWITCHES
  2232	002763	336 00 0 00 030516 		SKIPN	MONTYP
  2233	002764	047 00 0 00 000020 		CALLI	20		;TOPS10 SWITCH CALL
  2234	002765	202 00 0 00 030046 		MOVEM	AC0,CONSW
  2235	002766	200 00 0 00 030046 	$SWU1:	MOVE	0,CONSW
  2236	002767	254 00 0 00 002756 		JRST	$SWCH1
  2237	002770	200 00 0 00 030046 	$SWU2:	MOVE	0,CONSW
  2238	002771	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 39
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0310

  2239					;*SWITCH INITIALIZATION ROUTINE
  2240					S^;*********************************************************************^
  2241						SALL
  2242	002772	402 00 0 00 005417 	$SWTIN:	SETZM	$USWTF#		;CLEAR TTY CONTROL FLAG
  2243	002773	402 00 0 00 005404 		SETZM	$SWONCE#
  2244	002774	260 17 0 00 003016 		GO	$SW0		;INIT SWITCH ROUTINE
  2245	002775	476 00 0 00 005404 	$SWIN1:	SETOM	$SWONCE
  2246	002776	476 00 0 00 005403 		SETOM	$SWFLG		;SET INITED FLAG
  2247	002777	260 17 0 00 002747 		GO	$SWTCH		;READ CONSOLE SWITCHES
  2248	003000	603 00 0 00 020000 		TLNE	PNTLPT		;PRINT ON LPT/LOGICAL DEVICE ?
  2249	003001	260 17 0 00 002101 		GO	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  2250	003002	200 00 0 00 030046 		MOVE	CONSW
  2251	003003	603 00 0 00 000004 		TLNE	CHAIN		;IN CHAIN MODE ?
  2252	003004	263 17 0 00 000000 		RTN			;YES, DON'T PRINT FOLLOWING
  2253	003005	335 00 0 00 030043 		SKIPGE	MONCTL
  2254	003006	263 17 0 00 000000 		RTN			;DIAGNOSTIC MONITOR
  2255	003007	332 00 0 00 030521 		SKIPE	$$TOGGLE
  2256	003010	254 00 0 00 003015 		JRST	.+5
  2257	003011	037 04 0 00 004705 		PMSGF	<^SWITCHES = >
  2258	003012	200 00 0 00 030046 		MOVE	CONSW		;GET THE SAVED SWITCHES
  2259	003013	037 13 0 00 000001 		PNTHWF			;PRINT PRESENT SWITCH SETTINGS
  2260	003014	037 01 0 00 030242 		PCRLF
  2261	003015	263 17 0 00 000000 		RTN			;EXIT
  2262						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 40
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0311

  2263					;*SWITCH INITIALIZATION ROUTINE
  2264					S^;*********************************************************************^
  2265						SALL
  2266	003016	261 17 0 00 000000 	$SW0:	PUT	0
  2267	003017	332 00 0 00 030521 		SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  2268	003020	254 00 0 00 003076 		JRST	$SW9+2		;YES, USE C(CONSW)
  2269	003021	335 00 0 00 030043 		SKIPGE	MONCTL		;DIAGNOSTIC MONITOR MODE ?
  2270	003022	254 00 0 00 003100 		JRST	$SW10		;YES
  2271	003023	336 00 0 00 005404 		SKIPN	$SWONCE		;INITIALIZATION ?
  2272	003024	254 00 0 00 003102 		JRST	$SW11		;YES
  2273	003025	037 04 0 00 004705 	$SW12:	PMSGF	<^SWITCHES = >
  2274	003026	200 00 0 00 030046 		MOVE	CONSW
  2275	003027	037 13 0 00 000001 		PNTHWF
  2276
  2277	003030	037 04 0 00 005106 	$SW1:	PMSGF	<^TTY SWITCH CONTROL ? - 0,S, Y OR N <CR> - >
  2278	003031	260 17 0 00 003301 		GO	$OPTLK		;INPUT THE ANSWER
  2279	003032	254 00 0 00 003030 		JRST	$SW1		;NO CHARACTER RETURNED, ASK AGAIN
  2280	003033	306 00 0 00 000015 		CAIN	0,15
  2281	003034	254 00 0 00 003052 		JRST	$SWERR		;1ST CHAR CR, ERROR
  2282	003035	242 00 0 00 000007 		LSH	0,7		;POSITION 1ST CHAR
  2283	003036	202 00 0 00 005402 		MOVEM	$SW#
  2284	003037	260 17 0 00 003301 		GO	$OPTLK		;INPUT THE CR
  2285	003040	254 00 0 00 003030 		JRST	$SW1		;NO CHAR, ASK AGAIN
  2286	003041	434 00 0 00 005402 		OR	0,$SW
  2287	003042	306 00 0 00 014015 		CAIN	0,14015		;"0" (CR) ?
  2288	003043	254 00 0 00 003054 		JRST	$SW6		;YES-USE ALL SWITCHES = 0
  2289	003044	306 00 0 00 024615 		CAIN	0,24615		;"S" (CR) ?
  2290	003045	254 00 0 00 003074 		JRST	$SW9		;YES-USE SAVED SWITCHES
  2291	003046	306 00 0 00 026215 		CAIN	0,26215		;"Y" (CR) ?
  2292	003047	254 00 0 00 003056 		JRST	$SW2		;YES-USE TTY INPUT SWITCHES
  2293	003050	306 00 0 00 023415 		CAIN	0,23415		;"N" (CR) ?
  2294	003051	254 00 0 00 003072 		JRST	$SW7		;YES-READ CONSOLE SWITCHES & RETURN
  2295
  2296	003052	260 17 0 00 003360 	$SWERR:	GO	$TPCLR		;CLEAR INPUT
  2297	003053	254 00 0 00 003030 		JRST	$SW1		;ASK AGAIN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 41
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0312

  2298	003054	402 00 0 00 000000 	$SW6:	SETZM	0
  2299	003055	254 00 0 00 003066 		JRST	$SW4
  2300
  2301	003056	037 04 0 00 005116 	$SW2:	PMSGF	<^LH SWITCHES <# OR ?> - >
  2302	003057	260 17 0 00 003474 		GO	$TPOCT		;INPUT 6 OCTALS
  2303	003060	254 00 0 00 003106 		JRST	$SW13		;ERROR .....TRY AGAIN
  2304	003061	516 00 0 00 005402 		HRLZM	0,$SW#		;MOVE LH WORD TO SW
  2305
  2306	003062	037 04 0 00 005123 	$SW3:	PMSGF	<RH SWITCHES <# OR ?> - >
  2307	003063	260 17 0 00 003474 		GO	$TPOCT		;INPUT 6 OCTALS
  2308	003064	254 00 0 00 003113 		JRST	$SW14		;ERROR .....TRY AGAIN
  2309	003065	500 00 0 00 005402 		HLL	0,$SW		;GET LH SWITCHES
  2310	003066	202 00 0 00 030046 	$SW4:	MOVEM	0,CONSW		;SAVE SWITCHES IN CONSW
  2311	003067	476 00 0 00 005417 	$SW5:	SETOM	$USWTF		;SET TTY INPUT SWITCH FLAG
  2312	003070	262 17 0 00 000000 	$SW8:	GET	0
  2313	003071	263 17 0 00 000000 		RTN
  2314
  2315	003072	402 00 0 00 005417 	$SW7:	SETZM	$USWTF		;N, USE REAL SWITCHES
  2316	003073	254 00 0 00 003070 		JRST	$SW8
  2317
  2318	003074	332 00 0 00 005404 	$SW9:	SKIPE	$SWONCE		;S, USE SAME AS BEFORE ON "DING" REQUEST
  2319	003075	254 00 0 00 003070 		JRST	$SW8
  2320	003076	200 00 0 00 005401 		MOVE	$SVCSW		;ON INITIALIZATION USE PREVIOUS SWITCHES
  2321	003077	254 00 0 00 003066 		JRST	$SW4
  2322
  2323	003100	200 00 0 00 020007 	$SW10:	MOVE	0,DIASWS	;GET DIAMON SWITCHES
  2324	003101	254 00 0 00 003066 		JRST	$SW4
  2325
  2326	003102	200 00 0 00 005401 	$SW11:	MOVE	0,$SVCSW	;IF SAVED SW'S ARE ZERO
  2327	003103	322 00 0 00 003030 		JUMPE	0,$SW1		;DON'T PRINT THEM
  2328	003104	202 00 0 00 030046 		MOVEM	0,CONSW
  2329	003105	254 00 0 00 003025 		JRST	$SW12
  2330
  2331	003106	302 00 0 00 000077 	$SW13:	CAIE	"?"		;QMARK ?
  2332	003107	254 00 0 00 003056 		JRST	$SW2		;NO, ERROR
  2333	003110	201 00 0 00 003152 		MOVEI	SWTAB
  2334	003111	260 17 0 00 003121 		GO	$SWXX		;PROMPT FOR SWITCHES
  2335	003112	254 00 0 00 003061 		JRST	$SW3-1
  2336
  2337	003113	302 00 0 00 000077 	$SW14:	CAIE	"?"		;QMARK ?
  2338	003114	254 00 0 00 003062 		JRST	$SW3		;NO, ERROR
  2339	003115	200 00 0 00 030525 		MOVE	SWPTAB		;GET ADDRESS OF USERS TABLE
  2340	003116	322 00 0 00 003062 		JUMPE	$SW3		;IF NONE, ERROR
  2341	003117	260 17 0 00 003121 		GO	$SWXX		;PROMPT FOR SWITCHES
  2342	003120	254 00 0 00 003065 		JRST	$SW4-1
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 42
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0313

  2343					;*PROMPT FOR SWITCHES
  2344
  2345	003121	261 17 0 00 000001 	$SWXX:	PUT	1
  2346	003122	261 17 0 00 000002 		PUT	2
  2347	003123	261 17 0 00 000003 		PUT	3
  2348	003124	200 01 0 00 000000 		MOVE	1,0		;PUT SWITCH PROMPT TABLE ADDRESS IN 1
  2349	003125	505 01 0 00 777756 		HRLI	1,-^D18		;18 SWITCHES
  2350	003126	201 02 0 00 400000 		MOVEI	2,400000
  2351	003127	400 03 0 00 000000 		SETZ	3,
  2352	003130	037 01 0 00 030242 		PCRLF
  2353
  2354	003131	200 00 0 01 000000 	$SWXX1:	MOVE	(1)		;GET SIXBIT PROMPT
  2355	003132	322 00 0 00 003142 		JUMPE	0,$SWXX2	;IF BLANK, NO PROMPT
  2356	003133	037 01 0 00 000002 		PNTSXF
  2357	003134	037 01 0 00 000011 		PNTCIF	11		;PRINT A TAB
  2358	003135	260 17 0 00 003203 		GO	$SWZZ		;GET SWITCH ANSWER
  2359	003136	254 00 0 00 003130 		JRST	$SWXX1-1	;ERROR
  2360	003137	254 00 0 00 003144 		JRST	$SWXX3		;CONTROL Z
  2361	003140	254 00 0 00 003174 		JRST	$SWXX4		;UPARROW
  2362	003141	434 03 0 00 000002 		OR	3,2		;YES, OR SWITCH BIT IN
  2363									;NO, LEAVE SWITCH BIT CLEAR
  2364	003142	242 02 0 00 777777 	$SWXX2:	LSH	2,-1		;POSITION TO NEXT SWITCH
  2365	003143	253 01 0 00 003131 		AOBJN	1,$SWXX1
  2366	003144	037 01 0 00 030242 	$SWXX3:	PCRLF
  2367	003145	200 00 0 00 000003 		MOVE	0,3		;RETURN SWITCHES IN 0
  2368	003146	262 17 0 00 000003 		GET	3
  2369	003147	262 17 0 00 000002 		GET	2
  2370	003150	262 17 0 00 000001 		GET	1
  2371	003151	263 17 0 00 000000 		RTN
  2372
  2373	003152	41 42 57 62 64 00 	SWTAB:	SIXBIT/ABORT/
  2374	003153	62 63 64 41 62 64 		SIXBIT/RSTART/
  2375	003154	64 57 64 41 54 63 		SIXBIT/TOTALS/
  2376	003155	56 57 60 56 64 00 		SIXBIT/NOPNT/
  2377	003156	60 56 64 54 60 64 		SIXBIT/PNTLPT/
  2378	003157	44 51 56 47 00 00 		SIXBIT/DING/
  2379	003160	54 57 57 60 45 62 		SIXBIT/LOOPER/
  2380	003161	45 62 63 64 57 60 		SIXBIT/ERSTOP/
  2381	003162	60 41 54 45 62 63 		SIXBIT/PALERS/
  2382	003163	62 45 54 51 41 42 		SIXBIT/RELIAB/
  2383	003164	64 70 64 51 56 50 		SIXBIT/TXTINH/
  2384	003165	000000	000000			0
  2385	003166	55 57 44 44 66 43 		SIXBIT/MODDVC/
  2386	003167	000000	000000			0
  2387	003170	57 60 62 63 45 54 		SIXBIT/OPRSEL/
  2388	003171	43 50 41 51 56 00 		SIXBIT/CHAIN/
  2389	003172	000000	000000			0
  2390	003173	000000	000000			0
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 43
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0314

  2391					;*PROCESS PROMPT
  2392					;*	CONTROL Z, ENDS PROMPTING
  2393					;*	UPARROW, BACK UP ONE PROMPT
  2394					;*	Y, SET SWITCH
  2395					;*	N, DON'T SET SWITCH
  2396					;*	CR, DON'T SET SWITCH
  2397
  2398	003174	306 02 0 00 400000 	$SWXX4:	CAIN	2,400000	;BACKED UP ALL THE WAY ?
  2399	003175	254 00 0 00 003202 		JRST	.+5		;YES
  2400	003176	242 02 0 00 000001 		LSH	2,1		;BACKUP SWITCH BIT
  2401	003177	274 01 0 00 004676 		SUB	1,[1,,1]	;BACKUP SWITCH TABLE POINTER
  2402	003200	336 00 0 01 000000 		SKIPN	(1)		;THIS POSITION BLANK ?
  2403	003201	254 00 0 00 003174 		JRST	.-5		;YES, BACK UP ANOTHER
  2404	003202	254 00 0 00 003130 		JRST	$SWXX1-1
  2405
  2406	003203	037 01 0 00 005127 	$SWZZ:	PNTMSF	[ASCIZ/- Y,N,^ <CR> OR ^Z - /]
  2407	003204	260 17 0 00 003301 		GO	$OPTLK
  2408	003205	263 17 0 00 000000 		RTN			;NO RESPONSE
  2409	003206	306 00 0 00 000032 		CAIN	"Z"-100
  2410	003207	254 00 0 00 003235 		JRST	$SWZZ1		;^Z, DONE
  2411	003210	306 00 0 00 000136 		CAIN	"^"
  2412	003211	254 00 0 00 003234 		JRST	$SWZZ2		;^, BACKUP
  2413	003212	306 00 0 00 000015 		CAIN	15
  2414	003213	254 00 0 00 003232 		JRST	$SWZZ4		;CR, SAME AS NO
  2415
  2416	003214	302 00 0 00 000131 		CAIE	"Y"		;Y, SET SWITCH BIT
  2417	003215	306 00 0 00 000116 		CAIN	"N"		;N, DON'T SET SWITCH BIT
  2418	003216	254 00 0 00 003220 		JRST	.+2
  2419	003217	263 17 0 00 000000 		RTN			;NEITHER, ERROR
  2420	003220	242 00 0 00 000007 		LSH	0,7
  2421	003221	202 00 0 00 005405 		MOVEM	$SWYYY#
  2422	003222	260 17 0 00 003301 		GO	$OPTLK		;GET CR
  2423	003223	263 17 0 00 000000 		RTN			;NO RESPONSE
  2424	003224	434 00 0 00 005405 		OR	0,$SWYYY
  2425	003225	306 00 0 00 026215 		CAIN	0,26215
  2426	003226	254 00 0 00 003233 		JRST	$SWZZ3		;Y <CR>
  2427	003227	306 00 0 00 023415 		CAIN	0,23415
  2428	003230	254 00 0 00 003232 		JRST	$SWZZ4		;N <CR>
  2429	003231	263 17 0 00 000000 		RTN			;ERROR
  2430
  2431	003232	350 00 0 17 000000 	$SWZZ4:	AOS	(P)		;NO
  2432	003233	350 00 0 17 000000 	$SWZZ3:	AOS	(P)		;YES
  2433	003234	350 00 0 17 000000 	$SWZZ2:	AOS	(P)		;UPARROW
  2434	003235	350 00 0 17 000000 	$SWZZ1:	AOS	(P)		;CONTROL Z
  2435	003236	263 17 0 00 000000 		RTN
  2436
  2437						LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 44
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0315

  2438					SUBTTL	*SUBRTN* TELETYPE INPUT ROUTINES
  2439
  2440					S^;*********************************************************************^
  2441					;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
  2442					;*CHARACTER OR NUMBER RETURNED IN AC0.
  2443					;*CALL SEQUENCE IS AS FOLLOWS:
  2444					;*	NAME
  2445					;*	NO/ERROR RESPONSE RETURN (+ 1)
  2446					;*	NORMAL RESPONSE RETURN (+ 2)
  2447					;*$OPTLK =	INPUT ANY CHARACTER
  2448					;*$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
  2449					;*$NOYES =	ASK QUESTION, CORRECT RESPONSE N
  2450					;*$TPOCT =	INPUT UP TO 12 OCTALS
  2451					;*$TPDEC =	INPUT UP TO 11 DECIMALS
  2452					;*$TPCNV =	INPUT UP TO 9 CONVERT'S
  2453					;*$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
  2454					;*$TALTM =	KEYBOARD, ALT-MODE CHECK
  2455					;*$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS
  2456					S^;*********************************************************************^
  2457
  2458					;*TELETYPE INPUT INITIALIZATION
  2459					S^;*********************************************************************^
  2460	003237	402 00 0 00 005323 	$TYPIN:	SETZM	INUPTR		;CLEAR INPUT POINTER
  2461	003240	263 17 0 00 000000 		RTN			;NO TYPE-IN AVAILABLE
  2462
  2463					S^;*********************************************************************^
  2464					;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
  2465					;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
  2466					S^;*********************************************************************^
  2467
  2468	003241	400 00 0 00 000000 	$TTLK:	SETZ	AC0,
  2469	003242	335 00 0 00 030043 		SKIPGE	MONCTL		;NO CHECK IF "MONITOR"
  2470	003243	263 17 0 00 000000 		RTN
  2471	003244	332 00 0 00 030516 		SKIPE	MONTYP
  2472	003245	254 00 0 00 003251 		JRST	.+4
  2473	003246	051 02 0 00 030231 		INCHRS	$TTCHR		;TOPS10 INPUT CHAR AND SKIP
  2474	003247	263 17 0 00 000000 		RTN			;NONE AVAILABLE
  2475	003250	254 00 0 00 003371 		JRST	$HEAR4		;GO PROCESS
  2476	003251	261 17 0 00 000001 		PUT	1
  2477	003252	261 17 0 00 000002 		PUT	2
  2478	003253	201 01 0 00 000100 		MOVEI	1,.PRIIN
  2479	003254	104 00 0 00 000102 		SIBE			;ANY INPUT AVAILABLE ?
  2480	003255	254 00 0 00 003261 		 JRST	.+4		;YES
  2481	003256	262 17 0 00 000002 		GET	2
  2482	003257	262 17 0 00 000001 		GET	1
  2483	003260	263 17 0 00 000000 		RTN
  2484	003261	104 00 0 00 000073 		PBIN			;GET INPUT CHAR
  2485	003262	202 01 0 00 030231 		MOVEM	1,$TTCHR
  2486	003263	262 17 0 00 000002 		GET	2
  2487	003264	262 17 0 00 000001 		GET	1
  2488	003265	254 00 0 00 003371 		JRST	$HEAR4		;CHAR TYPED, GO PROCESS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 45
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0316

  2489					S^;*********************************************************************^
  2490					;*TELETYPE IMAGE MODE INPUT
  2491					;*PROVIDES UNBUFFERED MODE INPUT
  2492					;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
  2493					S^;*********************************************************************^
  2494
  2495	003266	332 00 0 00 030516 	$TTYIN:	SKIPE	MONTYP
  2496	003267	254 00 0 00 003272 		JRST	.+3
  2497	003270	051 00 0 00 000000 		INCHRW			;TOPS10 INPUT CHAR AND WAIT
  2498	003271	254 00 0 00 003276 		JRST	.+5
  2499	003272	261 17 0 00 000001 		PUT	1
  2500	003273	104 00 0 00 000073 		PBIN
  2501	003274	202 01 0 00 030231 		MOVEM	1,$TTCHR
  2502	003275	262 17 0 00 000001 		GET	1
  2503	003276	260 17 0 00 003371 		GO	$HEAR4		;PROCESS IT
  2504	003277	254 00 0 00 003276 		JRST	.-1
  2505	003300	263 17 0 00 000000 		RTN
  2506
  2507	003301	202 04 0 00 005406 	$OPTLK:	MOVEM	4,$TACB4#
  2508	003302	260 17 0 00 003331 		GO	$HEAR
  2509	003303	254 00 0 00 003302 		JRST	.-1
  2510	003304	350 00 0 17 000000 		AOS	(P)
  2511	003305	201 04 0 00 000001 		MOVEI	4,1
  2512	003306	202 04 0 00 030225 		MOVEM	4,$TWCNT	;INDICATE NO TIMEOUT
  2513	003307	200 04 0 00 005406 		MOVE	4,$TACB4
  2514	003310	263 17 0 00 000000 		RTN
  2515
  2516					S^;*********************************************************************^
  2517					;*TELETYPE ALT-MODE CHECK ROUTINE
  2518					S^;*********************************************************************^
  2519
  2520	003311	260 17 0 00 003241 	$TALTM:	GO	$TTLK
  2521	003312	263 17 0 00 000000 		RTN			;NO TYPE-IN  ...EXIT
  2522
  2523	003313	302 00 0 00 000175 	$TALT2:	CAIE	175
  2524	003314	306 00 0 00 000176 		CAIN	176
  2525	003315	254 00 0 00 003320 		JRST	$TALT1		;ALT-MODE WAS TYPED
  2526	003316	302 00 0 00 000033 		CAIE	33
  2527	003317	254 00 0 00 003321 		JRST	.+2		;NO ALT-MODE
  2528
  2529	003320	254 00 0 00 030064 	$TALT1:	JRST	CPOPJ1		;ALT-MODE, RETURN +2
  2530
  2531	003321	302 00 0 00 000007 		CAIE	007		;IS CHAR A BELL ?
  2532	003322	263 17 0 00 000000 		RTN
  2533	003323	332 00 0 00 030522 		SKIPE	$$TAX1
  2534	003324	256 00 0 00 030522 		XCT	$$TAX1		;XCT USERS PRE-ROUTINE
  2535	003325	260 17 0 00 003016 		GO	$SW0		;YES, DING FOR SWITCH CONTROL
  2536	003326	332 00 0 00 030523 		SKIPE	$$TAX2
  2537	003327	256 00 0 00 030523 		XCT	$$TAX2		;XCT USERS POST-ROUTINE
  2538	003330	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 46
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0317

  2539					S^;*********************************************************************^
  2540					;*TELETYPE INPUT CHARACTER 
  2541					S^;*********************************************************************^
  2542
  2543	003331	332 00 0 00 030516 	$HEAR:	SKIPE	MONTYP
  2544	003332	254 00 0 00 003335 		JRST	.+3
  2545	003333	051 04 0 00 030231 		INCHWL	$TTCHR		;TOPS10 INPUT CHAR LINE MODE
  2546	003334	254 00 0 00 003371 		JRST	$HEAR4
  2547	003335	336 00 0 00 005323 		SKIPN	INUPTR		;ANY INPUT POINTER ?
  2548	003336	254 00 0 00 003343 		JRST	.+5		;NO, INPUT CLEARED
  2549	003337	134 00 0 00 005323 		ILDB	0,INUPTR	;GET CHAR FROM STORE
  2550	003340	322 00 0 00 003343 		JUMPE	0,.+3		;USED IT ALL, GET NEW INPUT
  2551	003341	202 00 0 00 030231 		MOVEM	0,$TTCHR	;SAVE IT
  2552	003342	254 00 0 00 003371 		JRST	$HEAR4		;GO PROCESS
  2553
  2554	003343	261 17 0 00 000001 		PUT	1
  2555	003344	261 17 0 00 000002 		PUT	2
  2556	003345	261 17 0 00 000003 		PUT	3
  2557	003346	200 01 0 00 005134 		MOVE	1,[POINT 7,D$ISTR]
  2558	003347	202 01 0 00 005323 		MOVEM	1,INUPTR#	;SETUP INPUT POINTER
  2559	003350	200 02 0 00 005135 		MOVE	2,[RD%BRK!RD%TOP!^D132]
  2560	003351	400 03 0 00 000000 		SETZ	3,
  2561
  2562	003352	104 00 0 00 000523 		RDTTY			;GET TTY INPUT FROM MONITOR
  2563	003353	254 00 0 00 004530 		 JRST	T20ERR
  2564
  2565	003354	262 17 0 00 000003 		GET	3
  2566	003355	262 17 0 00 000002 		GET	2
  2567	003356	262 17 0 00 000001 		GET	1
  2568	003357	254 00 0 00 003331 		JRST	$HEAR		;NOW GO PROCESS
  2569
  2570	003360	261 17 0 00 000001 	$TPCLR:	PUT	1
  2571	003361	402 00 0 00 005323 		SETZM	INUPTR		;CLEAR INPUT POINTER
  2572	003362	201 01 0 00 000100 		MOVEI	1,.PRIIN
  2573	003363	336 00 0 00 030516 		SKIPN	MONTYP
  2574	003364	051 11 0 00 000000 		CLRBFI			;TOPS10 CLEAR BUFFER
  2575	003365	332 00 0 00 030516 		SKIPE	MONTYP
  2576	003366	104 00 0 00 000100 		CFIBF			;ERROR, CLEAR TYPE-IN BUFFER
  2577	003367	262 17 0 00 000001 		GET	1
  2578	003370	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 47
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0318

  2579					S^;*********************************************************************^
  2580					;*CHARACTER PROCESSING ROUTINE FOR INPUT
  2581					;*CHARACTER RETURNED IN AC0 IS UPPER CASE
  2582					;*ACTUAL CHARACTER IS IN $TTCHR
  2583					S^;*********************************************************************^
  2584
  2585	003371	200 00 0 00 030231 	$HEAR4:	MOVE	0,$TTCHR	;GET ACTUAL CHARACTER
  2586	003372	405 00 0 00 000177 		ANDI	0,177		;CLEAR PARITY BIT
  2587	003373	301 00 0 00 000141 		CAIL	0,"A"+40	;CONVERT TO UPPER CASE
  2588	003374	303 00 0 00 000172 		CAILE	0,"Z"+40
  2589	003375	254 00 0 00 003377 		JRST	.+2
  2590	003376	275 00 0 00 000040 		SUBI	0,40
  2591	003377	202 00 0 00 030232 		MOVEM	0,$CHRIN#	;SAVE CHARACTER
  2592	003400	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  2593	003401	254 00 0 00 003416 		JRST	$HEAR3		;NO
  2594	003402	402 00 0 00 005335 		SETZM	$CARCT		;CLEAR CHARACTER COUNTER
  2595	003403	336 00 0 00 030516 		SKIPN	MONTYP
  2596	003404	051 00 0 00 000000 		INCHRW			;TOPS10 FLUSH LF
  2597	003405	332 00 0 00 030516 		SKIPE	MONTYP
  2598	003406	133 00 0 00 005323 		IBP	INUPTR		;GET RID OF LF
  2599	003407	200 00 0 00 030046 		MOVE	0,CONSW
  2600	003410	607 00 0 00 020000 		TLNN	0,PNTLPT	;LPT/LOGICAL DEVICE OUTPUT ?
  2601	003411	254 00 0 00 003413 		JRST	$HEAR2		;NO
  2602	003412	037 00 0 00 030242 		PCRL			;YES-ADD CRLF
  2603	003413	200 00 0 00 030232 	$HEAR2:	MOVE	0,$CHRIN	;PUT INPUT CHAR IN AC0
  2604	003414	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN +2 
  2605	003415	263 17 0 00 000000 		RTN			;NORMAL RETURN +1 
  2606
  2607	003416	306 00 0 00 000004 	$HEAR3:	CAIN	0,04
  2608	003417	254 00 0 00 002071 		JRST	$DDTENT		;CONTROL D, GO TO DDT
  2609	003420	200 00 0 00 030046 		MOVE	0,CONSW		;GET DATA SWITCHES
  2610	003421	607 00 0 00 020000 		TLNN	0,PNTLPT	;PRINT ON LPT?
  2611	003422	254 00 0 00 003413 		JRST	$HEAR2		;NO-EXIT 
  2612	003423	200 00 0 00 030232 		MOVE	0,$CHRIN	;YES
  2613	003424	037 12 0 00 000000 		PNTCHR			;SEND CHAR TO LPT/LOGICAL DEV
  2614	003425	254 00 0 00 003413 		JRST	$HEAR2		;EXIT 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 48
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE                                          SEQ 0319

  2615					SUBTTL	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
  2616
  2617					S^;*********************************************************************^
  2618					;*ACCEPTS Y OR N
  2619					;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
  2620					;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
  2621					;*'Y OR N <CR> - ' ASKED UPON ENTRY
  2622					S^;*********************************************************************^
  2623
  2624	003426	201 00 0 00 000001 	$NOYES:	MOVEI	0,1		;INIT FOR N ANSWER
  2625	003427	254 00 0 00 003431 		JRST	.+2
  2626	003430	201 00 0 00 000000 	$YESNO:	MOVEI	0,0		;INIT FOR Y ANSWER
  2627	003431	202 01 0 00 005407 		MOVEM	1,$TACC1#	;SAVE AC'S
  2628	003432	202 02 0 00 005410 		MOVEM	2,$TACC2#
  2629	003433	200 02 0 00 000000 		MOVE	2,0
  2630
  2631	003434				$YN1:	PMSGF	< Y OR N <CR> - >^
  2632	003434	037 04 0 00 005136 		PSIXMF	[SIXBIT\ Y OR N <CR> - _\]^
  2633	003435	260 17 0 00 003301 		GO	$OPTLK
  2634	003436	254 00 0 00 003456 		JRST	$YN2		;NO RESPONSE
  2635	003437	302 00 0 00 000131 		CAIE	0,"Y"		;IS IT A 'Y' ?
  2636	003440	306 00 0 00 000116 		CAIN	0,"N"		;OR AN 'N' ?
  2637	003441	254 00 0 00 003443 		JRST	.+2		;YES
  2638	003442	254 00 0 00 003462 		JRST	$YN3		;NEITHER, ERROR
  2639	003443	200 01 0 00 000000 		MOVE	1,0
  2640	003444	242 01 0 00 000007 		LSH	1,7		;POSITION 1ST CHAR
  2641	003445	260 17 0 00 003301 		GO	$OPTLK
  2642	003446	254 00 0 00 003456 		JRST	$YN2		;NO RESPONSE
  2643	003447	434 01 0 00 000000 		OR	1,0		;MERGE 2ND CHAR
  2644	003450	316 01 0 02 003465 		CAMN	1,$YN4(2)	;COMPARE FOR REQUESTED
  2645	003451	254 00 0 00 003455 		JRST	.+4		;YES, RETURN +2
  2646	003452	316 01 0 02 003466 		CAMN	1,$YN4+1(2)	;COMPARE FOR OPPOSITE
  2647	003453	254 00 0 00 003456 		JRST	.+3		;YES, RETURN +1
  2648	003454	254 00 0 00 003462 		JRST	$YN3		;ERROR, REPEAT
  2649	003455	350 00 0 17 000000 		AOS	(P)		;YES, RETURN +2
  2650	003456	200 02 0 00 005410 	$YN2:	MOVE	2,$TACC2	;RESTORE AC2
  2651	003457	200 00 0 00 000001 		MOVE	0,1
  2652	003460	200 01 0 00 005407 		MOVE	1,$TACC1	;RESTORE AC1
  2653	003461	263 17 0 00 000000 		RTN			;RETURN +1
  2654
  2655	003462	037 01 0 00 030242 	$YN3:	PCRLF
  2656	003463	260 17 0 00 003360 		GO	$TPCLR		;CLEAR INPUT
  2657	003464	254 00 0 00 003434 		JRST	$YN1
  2658
  2659	003465	000000	026215		$YN4:	EXP	26215		;'Y' (CR)
  2660	003466	000000	023415			EXP	23415		;'N' (CR)
  2661	003467	000000	026215			EXP	26215		;'Y' (CR)
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 49
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0320

  2662					SUBTTL	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
  2663
  2664					S^;*********************************************************************^
  2665					;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
  2666					;*NUMBER RETURNED IN AC0.
  2667					S^;*********************************************************************^
  2668
  2669	003470	201 00 0 00 000002 	$TPCNV:	MOVEI	AC0,2		;SET INDEX TO CONVERT
  2670	003471	254 00 0 00 003475 		JRST	$TPCV1
  2671	003472	201 00 0 00 000001 	$TPDEC:	MOVEI	AC0,1		;SET INDEX TO DECIMAL
  2672	003473	254 00 0 00 003475 		JRST	$TPCV1
  2673	003474	201 00 0 00 000000 	$TPOCT:	MOVEI	AC0,0		;SET INDEX TO OCTAL
  2674
  2675	003475	202 01 0 00 005411 	$TPCV1:	MOVEM	1,$TACD1#	;SAVE AC'S 1-3
  2676	003476	202 02 0 00 005412 		MOVEM	2,$TACD2#
  2677	003477	202 03 0 00 005413 		MOVEM	3,$TACD3#
  2678	003500	200 03 0 00 000000 		MOVE	3,0		;LOAD AC3 WITH THE INDEX
  2679	003501	403 01 0 00 000002 		SETZB	1,2		;CLEAR DATA REG, CHAR COUNTER
  2680	003502	402 00 0 00 030233 		SETZM	$TYPNB#		;CLEAR ERR NUMBER
  2681	003503	402 00 0 00 005356 		SETZM	$NEGF#		;CLEAR NEGATE FLAG
  2682	003504	402 00 0 00 005337 		SETZM	$CNVD#		;CLEAR DECIMAL CONVERT FLAG
  2683	003505	402 00 0 00 030510 		SETZM	TTNBRF		;CLEAR DIGIT TYPED FLAG
  2684
  2685
  2686					;*INPUT AND COMPUTE NUMBER
  2687					S^;*********************************************************************^
  2688
  2689	003506	260 17 0 00 003301 	$TYPLP:	GO	$OPTLK
  2690	003507	254 00 0 00 003545 		JRST	$TPERR		;NO RESPONSE, GO TO ERROR EXIT
  2691	003510	306 00 0 00 000055 		CAIN	0,"-"		;IS IT MINUS ?
  2692	003511	254 00 0 00 003563 		JRST	$NEGX		;YES
  2693	003512	306 00 0 00 000056 		CAIN	0,"."		;IS IT PERIOD ?
  2694	003513	254 00 0 00 003567 		JRST	$CNVX		;YES
  2695	003514	306 00 0 00 000015 		CAIN	0,15		;IS IT CR ?
  2696	003515	254 00 0 00 003531 		JRST	$TPEXT		;YES
  2697	003516	306 00 0 00 000054 		CAIN	0,","		;IS IT COMMA ?
  2698	003517	254 00 0 00 003531 		JRST	$TPEXT		;YES
  2699	003520	301 00 0 00 000060 		CAIL	0,"0"		;A VALID DIGIT ?
  2700	003521	256 00 0 03 003552 		XCT	$TPCK(3)	;YES
  2701	003522	254 00 0 00 003545 		JRST	$TPERR		;NO ...ERROR EXIT
  2702
  2703	003523	476 00 0 00 030510 	$TYPL1:	SETOM	TTNBRF		;SET DIGIT TYPED FLAG
  2704	003524	350 00 0 00 000002 		AOS	2		;INCREMENT CHARACTER COUNTER
  2705	003525	256 00 0 03 003555 		XCT	$TPMUL(3)	;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
  2706	003526	275 00 0 00 000060 		SUBI	60		;ADD IN NEW CHAR
  2707	003527	270 01 0 00 000000 		ADD	1,0
  2708	003530	254 00 0 00 003506 		JRST	$TYPLP		;REPEAT TILL CR OR COMMA
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 50
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0321

  2709					;*CHECK FOR PROPER AMOUNT OF CHARACTERS
  2710					S^;*********************************************************************^
  2711
  2712	003531	256 00 0 03 003560 	$TPEXT:	XCT	$TPNBR(3)	;PROPER NUMBER OF CHARACTERS
  2713	003532	254 00 0 00 003545 		JRST	$TPERR		;NO ...ERROR EXIT 
  2714	003533	306 03 0 00 000002 		CAIN	3,2		;CONVERT ? (INDEX = 2)
  2715	003534	254 00 0 00 003573 		JRST	$CNVX1		;YES
  2716									;NO, EXIT
  2717
  2718	003535	200 03 0 00 005413 	$TPEX1:	MOVE	3,$TACD3	;RESTORE AC'S 3 & 2
  2719	003536	200 02 0 00 005412 		MOVE	2,$TACD2
  2720	003537	200 00 0 00 000001 		MOVE	0,1		;PUT NUMBER IN AC0
  2721	003540	332 00 0 00 005356 		SKIPE	$NEGF		;NEGATE ?
  2722	003541	210 00 0 00 000001 		MOVN	0,1		;YES
  2723	003542	200 01 0 00 005411 		MOVE	1,$TACD1	;RESTORE AC1
  2724	003543	350 00 0 17 000000 		AOS	(P)		;RETURN +2 
  2725	003544	263 17 0 00 000000 		RTN			;RETURN +1 
  2726
  2727	003545	202 01 0 00 030233 	$TPERR:	MOVEM	1,$TYPNB	;SAVE NUMBER - ERROR EXIT
  2728	003546	200 03 0 00 005413 		MOVE	3,$TACD3	;RESTORE AC'S
  2729	003547	200 02 0 00 005412 		MOVE	2,$TACD2
  2730	003550	200 01 0 00 005411 		MOVE	1,$TACD1
  2731	003551	263 17 0 00 000000 		RTN			;ERROR EXIT )
  2732
  2733
  2734					;*NUMBER COMPUTING CONSTANTS
  2735					S^;*********************************************************************^
  2736
  2737	003552	303 00 0 00 000067 	$TPCK:	CAILE	0,"7"		;OCTAL NUMBER CHECK
  2738	003553	303 00 0 00 000071 		CAILE	0,"9"		;DECIMAL NUMBER CHECK
  2739	003554	303 00 0 00 000071 		CAILE	0,"9"		;CONVERT NUMBER CHECK
  2740	003555	242 01 0 00 000003 	$TPMUL:	LSH	1,3		;OCTAL BASE SHIFT
  2741	003556	221 01 0 00 000012 		IMULI	1,^D10		;DECIMAL BASE MULTIPLIER
  2742	003557	242 01 0 00 000004 		LSH	1,4		;CONVERT SHIFT
  2743	003560	303 02 0 00 000014 	$TPNBR:	CAILE	2,^D12		;ACCEPT UP TO 12 OCTALS
  2744	003561	303 02 0 00 000013 		CAILE	2,^D11		;ACCEPT UP TO 11 DECIMALS
  2745	003562	303 02 0 00 000011 		CAILE	2,^D9		;ACCEPT UP TO 9 CONVERT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 51
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0322

  2746	003563	332 00 0 00 000002 	$NEGX:	SKIPE	2		;1ST CHAR ?
  2747	003564	254 00 0 00 003545 		JRST	$TPERR		;NO, ERROR EXIT )
  2748	003565	476 00 0 00 005356 		SETOM	$NEGF		;YES, SET NEGATE FLAG
  2749	003566	254 00 0 00 003506 		JRST	$TYPLP		;GET NEXT CHAR
  2750
  2751	003567	302 03 0 00 000002 	$CNVX:	CAIE	3,2		;PERIOD, IN CONVERT ?
  2752	003570	254 00 0 00 003545 		JRST	$TPERR		;NO, ERROR EXIT )
  2753	003571	476 00 0 00 005337 		SETOM	$CNVD		;YES, SET DECIMAL FLAG
  2754	003572	254 00 0 00 003506 		JRST	$TYPLP		;GET NEXT CHAR
  2755
  2756
  2757					;*CONVERT CONVERSION ROUTINE
  2758					S^;*********************************************************************^
  2759
  2760	003573	201 02 0 00 000011 	$CNVX1:	MOVEI	2,^D9		;NINE DIGITS
  2761	003574	402 00 0 00 000000 		SETZM	0
  2762	003575	332 00 0 00 005337 		SKIPE	$CNVD		;OCTAL OR DECIMAL ?
  2763	003576	254 00 0 00 003606 		JRST	$CNVX2		;DECIMAL
  2764	003577	612 01 0 00 005141 		TDNE	1,[421042104210]	;OCTAL
  2765	003600	254 00 0 00 003545 		JRST	$TPERR		;OCTAL ERROR, 8 OR 9 INPUT
  2766	003601	242 01 0 00 000001 		LSH	1,1		;SQUEEZE OUT 4TH BIT
  2767	003602	246 00 0 00 000003 		LSHC	0,3		;COMPACT INTO OCTAL
  2768	003603	366 02 0 00 003601 		SOJN	2,.-2		;COMPLETED ?
  2769	003604	200 01 0 00 000000 		MOVE	1,0		;YES
  2770	003605	254 00 0 00 003535 		JRST	$TPEX1		;RETURN 
  2771
  2772	003606	402 00 0 00 000003 	$CNVX2:	SETZM	3		;DECIMAL
  2773	003607	402 00 0 00 000000 		SETZM	0
  2774	003610	221 03 0 00 000012 		IMULI	3,^D10		;MULTIPLY BY DECIMAL BASE
  2775	003611	246 00 0 00 000004 		LSHC	0,4		;UNPACK NEXT DIGIT
  2776	003612	270 03 0 00 000000 		ADD	3,0		;ADD IN
  2777	003613	366 02 0 00 003607 		SOJN	2,.-4		;COMPLETED ?
  2778	003614	200 01 0 00 000003 		MOVE	1,3		;YES
  2779	003615	254 00 0 00 003535 		JRST	$TPEX1		;RETURN )
  2780
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 52
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE                                            SEQ 0323

  2781					SUBTTL	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
  2782
  2783					S^;*********************************************************************^
  2784					;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
  2785					;*SIXBIT WORD RETURNED IN AC0
  2786					S^;*********************************************************************^
  2787
  2788	003616	202 01 0 00 005414 	$TISIX:	MOVEM	1,$TSX1#	;SAVE AC'S
  2789	003617	202 02 0 00 005415 		MOVEM	2,$TSX2#
  2790	003620	200 02 0 00 005142 		MOVE	2,[POINT 6,1]
  2791	003621	201 01 0 00 000000 		MOVEI	1,0
  2792
  2793	003622	260 17 0 00 003301 	$TSXB1:	GO	$OPTLK
  2794	003623	254 00 0 00 003645 		JRST	$TSXB3		;NO RESPONSE, RTN + 1
  2795	003624	306 00 0 00 000015 		CAIN	0,15
  2796	003625	254 00 0 00 003644 		JRST	$TSXB2		;CR, TERMINATE, RTN + 2 
  2797	003626	306 00 0 00 000054 		CAIN	0,","
  2798	003627	254 00 0 00 003644 		JRST	$TSXB2		;COMMA, TERMINATE, RTN + 2
  2799	003630	301 00 0 00 000060 		CAIL	0,"0"
  2800	003631	303 00 0 00 000132 		CAILE	0,"Z"
  2801	003632	254 00 0 00 003645 		JRST	$TSXB3		;ERROR, RTN + 1 
  2802	003633	303 00 0 00 000071 		CAILE	0,"9"
  2803	003634	301 00 0 00 000101 		CAIL	0,"A"
  2804	003635	254 00 0 00 003637 		JRST	$TSXB4		;ALPHA-NUMERIC
  2805	003636	254 00 0 00 003645 		JRST	$TSXB3		;ERROR, RTN + 1 
  2806
  2807	003637	640 00 0 00 000040 	$TSXB4:	TRC	0,40		;CONVERT TO SIX-BIT
  2808	003640	602 01 0 00 000077 		TRNE	1,77
  2809	003641	254 00 0 00 003645 		JRST	$TSXB3		;TOO MANY CHAR'S, RTN + 1
  2810	003642	136 00 0 00 000002 		IDPB	0,2		;PUT INTO WORD
  2811	003643	254 00 0 00 003622 		JRST	$TSXB1		;GET NEXT CHARACTER
  2812
  2813	003644	350 00 0 17 000000 	$TSXB2:	AOS	(P)		;INCR USRPC FOR RTN + 2 (NORMAL)
  2814
  2815	003645	200 00 0 00 000001 	$TSXB3:	MOVE	0,1		;SIXBIT WORD IN AC0
  2816	003646	200 01 0 00 005414 		MOVE	1,$TSX1		;RESTORE AC'S
  2817	003647	200 02 0 00 005415 		MOVE	2,$TSX2
  2818	003650	263 17 0 00 000000 		RTN			;EXIT + 1/+2
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 53
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0324

  2819					SUBTTL	*SUBRTN* PRINT SUBROUTINES
  2820
  2821					S^;*********************************************************************^
  2822					;*	$PNTSX		PRINT SIXBIT NORMAL
  2823					;*	$PTSXF		PRINT SIXBIT FORCED
  2824					;*	$PNTCW		PRINT DF10 CONTROL WORD
  2825					;*	$PNTI1		PRINT OCTAL NUMBER
  2826					;*	$CHRPN		PRINT CHARACTER
  2827					;*	$ASCPN		PRINT ASCII CHARACTER/LINE
  2828					;*	$DECPN		PRINT DECIMAL NUMBER
  2829					S^;*********************************************************************^
  2830
  2831					S^;*********************************************************************^
  2832					;*PRINT SUBROUTINE INITIALIZATION
  2833					;*INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
  2834					S^;*********************************************************************^
  2835
  2836	003651	402 00 0 00 005344 	$PNTIN:	SETZM	$INTDF#		;CLEAR DEVICE DEFAULT FLAG
  2837	003652	402 00 0 00 030226 		SETZM	$DVOFF#		;CLEAR DEVICE INITED FLAG
  2838	003653	402 00 0 00 030221 		SETZM	PDISF#		;CLEAR PRINT DISABLED FLAG
  2839	003654	402 00 0 00 005400 		SETZM	$PTINH#		;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
  2840	003655	402 00 0 00 030222 		SETZM	PNTINH#		;ALLOW EXEC PRINT TYPE IN INHIBIT
  2841	003656	402 00 0 00 005324 		SETZM	XOFFLAG#	;CLEAR XOFF FLAG
  2842	003657	402 00 0 00 030217 		SETZM	PNTFLG#		;CLEAR IN PRINT FLAG
  2843	003660	476 00 0 00 030223 		SETOM	PNTSPC#		;SET PRINT SPACE FLAG
  2844	003661	211 00 0 00 011610 		MOVNI	0,^D5000	;SET PRINT ENABLE TO 5000 LINES
  2845	003662	202 00 0 00 030220 		MOVEM	0,PNTENB
  2846	003663	402 00 0 00 030227 		SETZM	TTYFIL		;ALLOW EXEC FILLERS
  2847	003664	402 00 0 00 030234 		SETZM	$CRLF#		;ALLOW FREE CR/LF
  2848	003665	402 00 0 00 030235 		SETZM	$TABF		;ALLOW TAB CONVERSION
  2849	003666	402 00 0 00 030236 		SETZM	$FFF		;ALLOW FORM FEED CONVERSION
  2850	003667	402 00 0 00 030237 		SETZM	$VTF		;ALLOW VERTICAL TAB CONVERSION
  2851
  2852	003670	336 00 0 00 030516 		SKIPN	MONTYP
  2853	003671	254 00 0 00 003677 		JRST	$PNTIX
  2854	003672	201 01 0 00 000101 		movei	1,.priou
  2855	003673	104 00 0 00 000107 		rfmod			;don't translate print output
  2856	003674	620 02 0 00 000300 		trz	2,tt%dam
  2857	003675	660 02 0 00 000300 		tro	2,3b29
  2858	003676	104 00 0 00 000110 		sfmod
  2859
  2860	003677	201 00 0 00 030006 	$PNTIX:	MOVEI	REENTR		;SETUP REENTER ADDRESS
  2861	003700	202 00 0 00 000124 		MOVEM	JOBREN
  2862	003701	335 00 0 00 030043 		SKIPGE	MONCTL		;MONITOR CONTROL ?
  2863	003702	263 17 0 00 000000 		RTN			;YES, DON'T PRINT TITLE
  2864	003703	332 00 0 00 030056 		SKIPE	$ONETM		;FIRST TIME?
  2865	003704	263 17 0 00 000000 		RTN			;NO .....EXIT
  2866	003705	254 00 0 00 002101 		JRST	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  2867									;AND EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 54
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0325

  2868					S^;*********************************************************************^
  2869					;*PRINT SUBROUTINE ENTRY POINT
  2870					;*EXIT VIA $PNTI4 BELOW
  2871					S^;*********************************************************************^
  2872
  2873	003706	476 00 0 00 030217 	$PNTIF:	SETOM	PNTFLG		;SET IN PRINT FLAG
  2874	003707	476 00 0 00 005373 		SETOM	$PNTTY#		;FORCE TO TTY
  2875	003710	402 00 0 00 005400 		SETZM	$PTINH
  2876	003711	260 17 0 00 003724 		GO	$PCLRO		;CLEAR CONTROL 0 & INPUT BUFFER
  2877	003712	254 00 0 00 003767 		JRST	$PNTIA
  2878
  2879	003713	476 00 0 00 030217 	$PNTIT:	SETOM	PNTFLG		;SET IN PRINT FLAG
  2880	003714	402 00 0 00 005373 		SETZM	$PNTTY		;NOT FORCED TO TTY
  2881	003715	331 00 0 00 030220 		SKIPL	PNTENB#		;PRINT LIMIT REACHED YET?
  2882	003716	254 00 0 00 003753 		JRST	$PNTIB		;YES ..DON'T PRINT
  2883	003717	260 17 0 00 002747 		GO	$SWTCH		;READ DATA SWITCHES INTO AC0
  2884	003720	607 00 0 00 040000 		TLNN	0,NOPNT		;NO PRINT SWITCH SET?
  2885	003721	254 00 0 00 003767 		JRST	$PNTIA
  2886	003722	262 17 0 00 000000 		GET	AC0		;YES ...RESTORE AC0 FROM STACK (P - 1)
  2887	003723	254 00 0 00 003751 		JRST	$PRNTX		;EXIT, DON'T PRINT
  2888
  2889	003724	332 00 0 00 030516 	$PCLRO:	SKIPE	MONTYP
  2890	003725	254 00 0 00 003731 		JRST	.+4
  2891	003726	051 13 0 00 000000 		TTCALL	13,0		;TOPS10 CLEAR CONTROL O
  2892	003727	255 00 0 00 000000 		JFCL
  2893	003730	263 17 0 00 000000 		RTN
  2894	003731	261 17 0 00 000001 		PUT	1
  2895	003732	261 17 0 00 000002 		PUT	2
  2896	003733	201 01 0 00 000101 		MOVEI	1,.PRIOU
  2897	003734	104 00 0 00 000107 		RFMOD
  2898	003735	621 02 0 00 400000 		TLZ	2,(TT%OSP)	;CLEAR CONTROL O
  2899	003736	104 00 0 00 000110 		SFMOD
  2900	003737	262 17 0 00 000002 		GET	2
  2901	003740	262 17 0 00 000001 		GET	1
  2902	003741	402 00 0 00 005323 		SETZM	INUPTR		;CLEAR TTY INPUT BUFFER
  2903	003742	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 55
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0326

  2904					;*PRINT ROUTINE EXIT
  2905					S^;*********************************************************************^
  2906
  2907	003743	402 00 0 00 005373 	$PNTI4:	SETZM	$PNTTY		;CLEAR FORCE TO TTY FLAG
  2908
  2909	003744	200 01 0 00 005357 		MOVE	1,$PACA1	;RESTORE AC'S
  2910	003745	200 02 0 00 005360 		MOVE	2,$PACA2
  2911	003746	200 03 0 00 005361 		MOVE	3,$PACA3
  2912	003747	200 04 0 00 005362 		MOVE	4,$PACA4
  2913	003750	200 05 0 00 005363 		MOVE	5,$PACA5
  2914	003751	402 00 0 00 030217 	$PRNTX:	SETZM	PNTFLG		;CLEAR IN PRINT FLAG
  2915	003752	263 17 0 00 000000 		RTN			;RETURN 
  2916
  2917					;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
  2918					S^;*********************************************************************^
  2919
  2920	003753	262 17 0 00 000000 	$PNTIB:	GET	AC0		;RESTORE THE STACK (P - 1)
  2921	003754	332 00 0 00 030221 		SKIPE	PDISF#		;FIRST TIME PRINT DISABLED?
  2922	003755	254 00 0 00 003751 		JRST	$PRNTX		;YES	...EXIT )
  2923
  2924	003756	476 00 0 00 030221 	$PNTB1:	SETOM	PDISF		;NO ........SET IT
  2925	003757	202 01 0 00 005357 		MOVEM	1,$PACA1	;SAVE AC'S 1 - 5
  2926	003760	202 02 0 00 005360 		MOVEM	2,$PACA2
  2927	003761	202 03 0 00 005361 		MOVEM	3,$PACA3
  2928	003762	202 04 0 00 005362 		MOVEM	4,$PACA4
  2929	003763	202 05 0 00 005363 		MOVEM	5,$PACA5
  2930	003764	476 00 0 00 005373 		SETOM	$PNTTY		;SET FORCE TO TTY FLAG
  2931						MOVEI	[ASCIZ/
  2932					******
  2933					EXCEEDED ALLOWED PRINTOUTS
  2934	003765	201 00 0 00 005143 	/]
  2935	003766	254 00 0 00 004240 		JRST	$ASCPN-1	;PRINT THE WARNING & EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 56
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0327

  2936					S^;*********************************************************************^
  2937					;*PRINT ROUTINE SELECTOR
  2938					;*BASED ON "AC FIELD" = 12 - 17
  2939					S^;*********************************************************************^
  2940
  2941	003767	202 01 0 00 005357 	$PNTIA:	MOVEM	1,$PACA1#	;SAVE AC1.
  2942	003770	202 02 0 00 005360 		MOVEM	2,$PACA2#	;SAVE AC2.
  2943	003771	202 03 0 00 005361 		MOVEM	3,$PACA3#	;SAVE AC3.
  2944	003772	202 04 0 00 005362 		MOVEM	4,$PACA4#	;SAVE AC4.
  2945	003773	202 05 0 00 005363 		MOVEM	5,$PACA5#	;SAVE AC5.
  2946	003774	262 17 0 00 000000 		GET	AC0		;RESTORE AC0 FROM STACK (P - 1)
  2947	003775	402 00 0 00 005371 		SETZM	$PNT#		;CLEAR PRINT HALF WORDS FLAG
  2948	003776	200 02 0 00 000040 		MOVE	2,LUUO
  2949	003777	241 02 0 00 000015 		ROT	2,15		;GET X (AC FIELD)
  2950	004000	405 02 0 00 000017 		ANDI	2,17		;OUT OF THE UUO
  2951
  2952	004001	306 02 0 00 000017 	$PNTIC:	CAIN	2,17		;X=17?
  2953	004002	254 00 0 00 004240 		JRST	$PNTLN		;YES. PRINT ASCII LINE
  2954	004003	322 02 0 00 004241 		JUMPE	2,$ASCPN	;X=0? YES. GO PRINT 1 WORD ASCII
  2955	004004	306 02 0 00 000015 		CAIN	2,15		;X=15?
  2956	004005	254 00 0 00 004256 		JRST	$DECPN		;YES, PRINT DECIMALS )
  2957	004006	306 02 0 00 000016 		CAIN	2,16		;X=16?
  2958	004007	254 00 0 00 004255 		JRST	$DECSP		;YES, PRINT DECIMALS, LEADING SPACES 
  2959	004010	306 02 0 00 000013 		CAIN	2,13		;X=13?
  2960	004011	254 00 0 00 004226 		JRST	$PNTI3		;YES, PRINT OCTALS, 6 SP 6
  2961	004012	306 02 0 00 000012 		CAIN	2,12		;X=12?
  2962	004013	254 00 0 00 004234 		JRST	$CHRPN		;YES, PRINT CHARACTER )
  2963
  2964	004014	254 00 0 00 004204 		JRST	$PNTI1		;NONE OF THE ABOVE, PRINT OCTAL
  2965									;(AC FIELD <12 OR = TO 14)
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 57
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0328

  2966					S^;*********************************************************************^
  2967					;*SIXBIT PRINT SUBROUTINE
  2968					;*PRINTS SIXBIT WORD IN AC0
  2969					S^;*********************************************************************^
  2970
  2971					;*NORMAL PRINTOUT
  2972					S^;*********************************************************************^
  2973
  2974	004015	261 17 0 00 000001 	$PNTSX:	PUT	1		;SAVE AC1 ON STACK (P + 1)
  2975	004016	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  2976	004017	201 00 0 00 000000 		MOVEI	0,0
  2977	004020	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  2978	004021	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  2979	004022	037 12 0 00 000000 		PNTCHR			;PRINT IT
  2980	004023	326 01 0 00 004017 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  2981	004024	262 17 0 00 000001 		GET	1		;RESTORE AC1 FROM THE STACK (P - 1)
  2982	004025	263 17 0 00 000000 		RTN			;EXIT
  2983
  2984					;*FORCED PRINTOUT
  2985					S^;*********************************************************************^
  2986
  2987	004026	261 17 0 00 000001 	$PTSXF:	PUT	1		;SAVE AC1 ON THE STACK (P + 1)
  2988	004027	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  2989	004030	201 00 0 00 000000 		MOVEI	0,0
  2990	004031	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  2991	004032	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  2992	004033	037 12 0 00 000001 		PNTCHF			;PRINT
  2993	004034	326 01 0 00 004030 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  2994	004035	262 17 0 00 000001 		GET	1		;FROM THE STACK (P - 1)
  2995	004036	263 17 0 00 000000 		RTN			;EXIT 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 58
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0329

  2996					S^;*********************************************************************^
  2997					;*SIXBIT MESSAGE PRINT ROUTINE
  2998					;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
  2999					;*"BACKARROW" (77) SIGNIFIES END OF TEXT
  3000					;*"UPARROW" (76) SIGNIFIES CR/LF
  3001					;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
  3002					S^;*********************************************************************^
  3003
  3004	004037	261 17 0 00 000005 	$PSIXF:	PUT	5
  3005	004040	474 05 0 00 000000 		SETO	5,		;SET FORCED PRINTING FLAG
  3006	004041	254 00 0 00 004044 		JRST	.+3
  3007
  3008	004042	261 17 0 00 000005 	$PSIX:	PUT	5
  3009	004043	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTING
  3010	004044	261 17 0 00 000001 		PUT	1
  3011	004045	261 17 0 00 000002 		PUT	2
  3012	004046	261 17 0 00 000003 		PUT	3
  3013	004047	261 17 0 00 000004 		PUT	4
  3014
  3015	004050	550 04 0 00 000000 		HRRZ	4,0		;MESSAGE ADDRESS TO AC4
  3016
  3017	004051	201 03 0 00 000006 	$PSIX1:	MOVEI	3,6		;6 = NUM OF 6BIT CHAR PER WORD
  3018	004052	200 01 0 04 000000 		MOVE	1,(4)		;GET FIRST/NEXT WORD OF MESSAGE
  3019
  3020	004053	400 02 0 00 000000 	$PSIX2:	SETZ	2,
  3021	004054	245 01 0 00 000006 		ROTC	1,6		;C(AC1) = CHAR TO BE PRINTED
  3022	004055	306 02 0 00 000077 		CAIN	2,77
  3023	004056	254 00 0 00 004073 		JRST	$PSIX5		;"BACKARROW", DONE
  3024	004057	306 02 0 00 000076 		CAIN	2,76
  3025	004060	254 00 0 00 004070 		JRST	$PSIX4		;"UPARROW", CR/LF
  3026	004061	306 02 0 00 000075 		CAIN	2,75
  3027	004062	201 02 0 00 000151 		MOVEI	2,151		;"BRACKET", CHANGE TO TAB (151+40=11)
  3028	004063	201 00 0 02 000040 		MOVEI	0,40(2)		;CHANGE TO ASCII
  3029						JUMPN	5,[PNTCHF
  3030	004064	326 05 0 00 005153 			JRST	.+2]	;FORCED PRINT
  3031	004065	037 12 0 00 000000 		PNTCHR
  3032	004066	366 03 0 00 004053 	$PSIX3:	SOJN	3,$PSIX2	;PRINTED ALL CHARS FROM THIS WORD ?
  3033	004067	344 04 0 00 004051 		AOJA	4,$PSIX1	;YES, DO NEXT WORD
  3034
  3035					$PSIX4:	JUMPN	5,[PCRLF
  3036	004070	326 05 0 00 005155 			JRST	.+2]
  3037	004071	037 00 0 00 030242 		PCRL			;PRINT CR/LF
  3038	004072	254 00 0 00 004066 		JRST	$PSIX3
  3039
  3040	004073	262 17 0 00 000004 	$PSIX5:	GET	4
  3041	004074	262 17 0 00 000003 		GET	3
  3042	004075	262 17 0 00 000002 		GET	2
  3043	004076	262 17 0 00 000001 		GET	1
  3044	004077	262 17 0 00 000005 		GET	5
  3045	004100	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 59
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0330

  3046					S^;*********************************************************************^
  3047					;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
  3048					;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
  3049					;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
  3050					S^;*********************************************************************^
  3051
  3052	004101	261 17 0 00 000005 	$POCSF:	PUT	5
  3053	004102	474 05 0 00 000000 		SETO	5,		;FORCED PRINTOUT
  3054	004103	254 00 0 00 004106 		JRST	.+3
  3055
  3056	004104	261 17 0 00 000005 	$POCS:	PUT	5
  3057	004105	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTOUT
  3058	004106	261 17 0 00 000001 		PUT	1
  3059	004107	261 17 0 00 000002 		PUT	2
  3060	004110	261 17 0 00 000003 		PUT	3
  3061	004111	261 17 0 00 000004 		PUT	4
  3062
  3063	004112	200 02 0 00 000000 		MOVE	2,0
  3064	004113	325 02 0 00 004120 		JUMPGE	2,$POCS1	;IS NUMBER NEGATIVE ?
  3065	004114	201 00 0 00 000055 		MOVEI	"-"
  3066						JUMPN	5,[PNTCHF
  3067	004115	326 05 0 00 005157 			JRST	.+2]
  3068	004116	037 12 0 00 000000 		PNTCHR			;YES, PRINT MINUS SIGN
  3069	004117	210 02 0 00 000002 		MOVN	2,2		;MAKE NUMBER POSITIVE
  3070
  3071	004120	400 04 0 00 000000 	$POCS1:	SETZ	4,
  3072	004121	403 03 0 00 000001 		SETZB	3,1
  3073	004122	322 02 0 00 004130 		JUMPE	2,$POCS3	;IF NUMBER 0, PRINT 1 ZERO
  3074
  3075	004123	201 03 0 00 000014 		MOVEI	3,^D12		;PRINT UP TO 12 DIGITS
  3076	004124	400 01 0 00 000000 	$POCS2:	SETZ	1,
  3077	004125	246 01 0 00 000003 		LSHC	1,3
  3078	004126	322 01 0 00 004142 		JUMPE	1,$POCS5	;IS THIS DIGIT ZERO ?
  3079	004127	474 04 0 00 000000 		SETO	4,		;NO, SET NON-ZERO DIGIT FLAG
  3080	004130	201 00 0 01 000060 	$POCS3:	MOVEI	"0"(1)		;MAKE ASCII NUMBER
  3081						JUMPN	5,[PNTCHF
  3082	004131	326 05 0 00 005161 			JRST	.+2]
  3083	004132	037 12 0 00 000000 		PNTCHR			;PRINT DIGIT
  3084
  3085	004133	367 03 0 00 004124 	$POCS4:	SOJG	3,$POCS2	;ALL DONE ?
  3086	004134	262 17 0 00 000004 		GET	4
  3087	004135	262 17 0 00 000003 		GET	3
  3088	004136	262 17 0 00 000002 		GET	2
  3089	004137	262 17 0 00 000001 		GET	1
  3090	004140	262 17 0 00 000005 		GET	5
  3091	004141	263 17 0 00 000000 		RTN
  3092
  3093	004142	322 04 0 00 004133 	$POCS5:	JUMPE	4,$POCS4	;PRINTED NON-ZERO DIGIT ?
  3094	004143	254 00 0 00 004130 		JRST	$POCS3		;YES, PRINT ZEROS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 60
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0331

  3095					S^;*********************************************************************^
  3096					;*DF10 CONTROL WORD PRINT ROUTINE
  3097					;*PRINTS WORD IN AC0
  3098					;*DF22F = 0, ######  ######  ,18 BIT DF10
  3099					;*       -1, ##### ########  ,22 BIT DF10
  3100					S^;*********************************************************************^
  3101
  3102	004144	202 01 0 00 005376 	$PNTCW:	MOVEM	1,$PTCA#	;SAVE AC1
  3103	004145	201 01 0 00 000000 		MOVEI	1,0		;NORMAL PRINTOUT
  3104	004146	202 02 0 00 005377 		MOVEM	2,$PTCB#	;SAVE AC2
  3105	004147	200 02 0 00 000000 		MOVE	2,0
  3106	004150	336 00 0 00 030142 		SKIPN	DF22F#		;22 OR 18 BIT DF10 ?
  3107	004151	254 00 0 00 004165 		JRST	$PNTC2
  3108	004152	242 00 0 00 777753 		LSH	0,-^D21		;NEW 22 BIT DF10
  3109	004153	620 00 0 00 000001 		TRZ	0,1
  3110						JUMPN	1,[PNT5F
  3111	004154	326 01 0 00 005163 			JRST .+2]
  3112	004155	037 05 0 00 000000 		PNT5			;PRINT WORD COUNT, 14 BITS
  3113	004156	200 00 0 00 000002 		MOVE	0,2
  3114	004157	621 00 0 00 777760 		TLZ	0,777760
  3115						JUMPN	1,[PNTADF
  3116	004160	326 01 0 00 005165 			JRST .+2]
  3117	004161	037 10 0 00 000000 		PNTADR			;PRINT ADDRESS, 22 BITS
  3118	004162	200 02 0 00 005377 	$PNTC3:	MOVE	2,$PTCB
  3119	004163	200 01 0 00 005376 		MOVE	1,$PTCA
  3120	004164	263 17 0 00 000000 		RTN			;EXIT
  3121
  3122	004165	554 00 0 00 000000 	$PNTC2:	HLRZ			;18 BIT DF10
  3123						JUMPN	1,[PNT6F
  3124	004166	326 01 0 00 005167 			JRST .+2]
  3125	004167	037 06 0 00 000000 		PNT6			;PRINT WORD COUNT, 18 BITS
  3126	004170	201 00 0 00 000040 		MOVEI	40
  3127						JUMPN	1,[PNTCHF
  3128	004171	326 01 0 00 005171 			JRST .+2]
  3129	004172	037 12 0 00 000000 		PNTCHR			;EXTRA SPACE
  3130	004173	550 00 0 00 000002 		HRRZ	0,2
  3131						JUMPN	1,[PNT6F
  3132	004174	326 01 0 00 005173 			JRST .+2]
  3133	004175	037 06 0 00 000000 		PNT6			;PRINT ADDRESS, 18 BITS
  3134	004176	254 00 0 00 004162 		JRST	$PNTC3
  3135
  3136	004177	202 01 0 00 005376 	$PNTCF:	MOVEM	1,$PTCA		;SAVE AC1
  3137									;FORCED PRINTOUT
  3138	004200	200 01 0 00 004177 		MOVE	1,$PNTCF
  3139	004201	202 01 0 00 004144 		MOVEM	1,$PNTCW	;SETUP RETURN
  3140	004202	201 01 0 00 000001 		MOVEI	1,1		;FORCED PRINT INDEX
  3141	004203	254 00 0 00 004146 		JRST	$PNTCW+2	;REST AS ABOVE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 61
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0332

  3142					S^;*********************************************************************^
  3143					;*OCTAL PRINTOUT ROUTINE
  3144					;*PRINTS NUMBER IN AC0
  3145					S^;*********************************************************************^
  3146
  3147	004204	200 03 0 00 000002 	$PNTI1:	MOVE	3,2		;MOVE X INTO AC3.
  3148	004205	241 00 0 00 777775 		ROT	0,-3		;ROT OCTAL NUM 3 PLACES
  3149	004206	366 03 0 00 004205 		SOJN	3,.-1		;X AMOUNT OF TIMES.
  3150
  3151	004207	201 01 0 00 000006 	$PNTI2:	MOVEI	1,6		;PUT 6 INTO AC1 SO THAT
  3152	004210	245 00 0 00 000003 		ROTC	0,3		;C(AC1) AFTER THE ROTC WILL BE 60
  3153	004211	265 03 0 00 004306 		JSP	3,$TOUT		;PLUS NUMBER TO BE PRINTED
  3154	004212	366 02 0 00 004207 		SOJN	2,$PNTI2	;SUB 1 FROM X...PRINT UNTIL X=0.
  3155	004213	202 01 0 00 005372 		MOVEM	1,$PNTSV#	;SAVE NUMBER
  3156	004214	336 00 0 00 030223 		SKIPN	PNTSPC
  3157	004215	254 00 0 00 004220 		JRST	.+3
  3158	004216	201 01 0 00 000040 		MOVEI	1,40		;AT THIS POINT WE HAVE PRINTED
  3159	004217	265 03 0 00 004306 		JSP	3,$TOUT		;X AMOUNT OF NUMBER(S) AND NOW A SPACE
  3160	004220	336 00 0 00 005371 		SKIPN	$PNT#		;PRINT 6 SP 6 FLAG SET?
  3161	004221	254 00 0 00 003743 		JRST	$PNTI4		;NO, EXIT )
  3162	004222	200 01 0 00 005372 		MOVE	1,$PNTSV	;RESTORE NUMBER
  3163	004223	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR 2ND HALF
  3164	004224	402 00 0 00 005371 		SETZM	$PNT		;CLEAR PRINT SPACE FLAG
  3165	004225	254 00 0 00 004207 		JRST	$PNTI2		;PRINT REST OF NUMBER
  3166
  3167	004226	201 03 0 00 000014 	$PNTI3:	MOVEI	3,14		;SETUP FOR LH WORD
  3168	004227	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR FIRST HALF
  3169	004230	476 00 0 00 005371 		SETOM	$PNT		;SET PRINT 6 SP 6 FLAG
  3170	004231	476 00 0 00 030223 		SETOM	PNTSPC		;SET THE PRINT SPACE FLAG
  3171	004232	254 00 0 00 004205 		JRST	$PNTI1+1	;PRINT FIRST HALF NUMBER
  3172	004233	254 00 0 00 003743 		JRST	$PNTI4		;EXIT
  3173
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 62
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0333

  3174					S^;*********************************************************************^
  3175					;*ASCII/CHARACTER PRINTOUT ROUTINE
  3176					;*PRINTS CHAR IN LOWER 7 BITS OF AC0
  3177					S^;*********************************************************************^
  3178
  3179	004234	405 00 0 00 000177 	$CHRPN:	ANDI	0,177		;STRIP CHAR TO 7 BITS
  3180	004235	200 01 0 00 000000 		MOVE	1,0
  3181	004236	265 03 0 00 004306 		JSP	3,$TOUT		;PRINT A CHARACTER
  3182	004237	254 00 0 00 003743 		JRST	$PNTI4		;LEAVE 
  3183
  3184					S^;*********************************************************************^
  3185					;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
  3186					S^;*********************************************************************^
  3187
  3188	004240	476 00 0 00 005371 	$PNTLN:	SETOM	$PNT#		;SET PRINT MORE THAN 1 WORD FLAG.
  3189
  3190	004241	202 00 0 00 005375 	$ASCPN:	MOVEM	0,$POINT#	;SAVE ADDRESS OF ASCII MESSAGE.
  3191	004242	201 02 0 00 000005 	$ASCP1:	MOVEI	2,5		;5 = NUM OF ASCII CHAR. IN A WORD.
  3192	004243	200 00 1 00 005375 		MOVE	0,@$POINT	;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
  3193
  3194	004244	400 01 0 00 000000 	$ASCP2:	SETZ	1,		;CLEAR AC1.
  3195	004245	245 00 0 00 000007 		ROTC	0,7		;C(AC1) = CHAR TO BE PRINTED.
  3196	004246	322 01 0 00 003743 		JUMPE	1,$PNTI4	;CHAR = NULL?..NO MORE CHAR..EXIT
  3197	004247	265 03 0 00 004306 		JSP	3,$TOUT		;PRINT A CHAR
  3198	004250	366 02 0 00 004244 		SOJN	2,$ASCP2	;PNT ALL CHAR FROM THIS WORD?
  3199	004251	350 00 0 00 005375 		AOS	$POINT		;YES. INC TO GET NEXT WORD.
  3200	004252	336 00 0 00 005371 		SKIPN	$PNT		;PNT MORE THAN ONE WORD FLAG SET?
  3201	004253	254 00 0 00 003743 		JRST	$PNTI4		;NO..LEAVE
  3202	004254	254 00 0 00 004242 		JRST	$ASCP1		;YES...RETURN TO PNT NEXT WORD.
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 63
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0334

  3203					S^;*********************************************************************^
  3204					;*DECIMAL PRINTOUT ROUTINE
  3205					;*PRINTS NUMBER IN AC0
  3206					S^;*********************************************************************^
  3207
  3208	004255	476 00 0 00 005371 	$DECSP:	SETOM	$PNT		;SET LEADING SPACES PRINT CONTROL
  3209
  3210	004256	325 00 0 00 004262 	$DECPN:	JUMPGE	0,.+4		;IS NUMBER NEGATIVE ?
  3211	004257	201 01 0 00 000055 		MOVEI	1,"-"		;YES, PRINT MINUS SIGN
  3212	004260	265 03 0 00 004306 		JSP	3,$TOUT
  3213	004261	210 00 0 00 000000 		MOVN	0,0		;MAKE NUMBER POSITIVE
  3214	004262	260 17 0 00 004264 		GO	$RADIX		;DECIMAL-ASCII CONVERSION & PRINT CHARS
  3215	004263	254 00 0 00 003743 		JRST	$PNTI4		;EXIT
  3216
  3217	004264	200 02 0 00 030264 	$RADIX:	MOVE	2,RADLSC	;SETUP DIGIT COUNTER
  3218	004265	246 00 0 00 777735 		LSHC	0,-^D35		;SHIFT RIGHT 35 BITS INTO AC1
  3219	004266	242 01 0 00 777777 		LSH	1,-1		;VACATE AC1 SIGN BIT
  3220
  3221	004267	234 00 0 00 030262 	$DCCMP:	DIV	0,RADIX		;DIVIDE DOUBLE LENGTH INTERGER BY 10
  3222	004270	506 01 0 17 000000 		HRLM	1,(17)		;SAVE DIGIT
  3223	004271	370 00 0 00 000002 		SOS	2		;COUNT DIGIT
  3224	004272	322 00 0 00 004300 		JUMPE	0,$LDSPS	;ALL DIGITS FORMED?
  3225	004273	260 17 0 00 004265 		GO	$RADIX+1	;NO, COMPUTE NEXT ONE
  3226
  3227	004274	554 01 0 17 000000 	$DECP1:	HLRZ	1,(17)		;YES, RETRIEVE DIGIT
  3228	004275	271 01 0 00 000060 		ADDI	1,60		;CONVERT TO ASCII
  3229	004276	265 03 0 00 004306 		JSP	3,$TOUT		;TYPE-OUT A DIGIT
  3230	004277	263 17 0 00 000000 		RTN			;GET NEXT/EXIT
  3231
  3232	004300	336 00 0 00 005371 	$LDSPS:	SKIPN	$PNT		;LEADING SPACES PRINT SET?
  3233	004301	254 00 0 00 004274 		JRST	$DECP1		;NO ...GO PRINT
  3234									;YES ...DO IT
  3235	004302	361 02 0 00 004274 	$DCSPS:	SOJL	2,$DECP1	;SPACES COMPLETE ?  YES
  3236	004303	200 01 0 00 030263 		MOVE	1,RADLSP	;NO, PRINT LEADING SPACE
  3237	004304	265 03 0 00 004306 		JSP	3,$TOUT		;TYPE OUT THE SPACE
  3238	004305	254 00 0 00 004302 		JRST	.-3		;CHECK FOR NEXT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 66
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0335

  3239					SUBTTL	*SUBRTN*  CHARACTER OUTPUT ROUTINES
  3240
  3241					S^;*********************************************************************^
  3242					;*OUTPUT TERMINATION CONTROL ROUTINE
  3243					S^;*********************************************************************^
  3244
  3245	004306	202 00 0 00 005364 	$TOUT:	MOVEM	0,$PACB0#	;SAVE AC0.
  3246	004307	202 01 0 00 005374 		MOVEM	1,$PNTYC#	;SAVE CHARACTER TO BE PRINTED
  3247
  3248					S^;*********************************************************************^
  3249					;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
  3250					S^;*********************************************************************^
  3251
  3252	004310	200 00 0 00 030046 	$TOUTB:	MOVE	AC0,CONSW	;DATA SWITCHES INTO AC0
  3253	004311	350 00 0 00 005335 		AOS	$CARCT#		;INC CHAR CNTR.
  3254	004312	306 01 0 00 000007 		CAIN	1,7		;CHAR A BELL ?
  3255	004313	402 00 0 00 005400 		SETZM	$PTINH		;YES, CLEAR PRINT INHIBIT
  3256	004314	302 01 0 00 000015 		CAIE	1,15		;CHAR A CR?
  3257	004315	254 00 0 00 004321 		JRST	$TOUB1		;NO-CHK FOR LF
  3258	004316	336 00 0 00 005400 		SKIPN	$PTINH		;DON'T COUNT ^O'ED LINES
  3259	004317	350 00 0 00 030220 		AOS	PNTENB		;COUNT LINES, TILL NO MORE
  3260	004320	402 00 0 00 005335 		SETZM	$CARCT		;CLR CHAR CNTR.
  3261
  3262	004321	306 01 0 00 000012 	$TOUB1:	CAIN	1,12		;IS CHAR A LF?
  3263	004322	402 00 0 00 005335 		SETZM	$CARCT		;YES-CLR CHAR CNTR.
  3264	004323	332 00 0 00 005373 		SKIPE	$PNTTY		;NO-IS PRINT FORCED ON?
  3265	004324	254 00 0 00 004327 		JRST	$TOUB2		;YES-DON'T CHECK NON-PNT SW
  3266	004325	603 00 0 00 040000 		TLNE	0,NOPNT		;IS NON PNT SWITCH ON?
  3267	004326	254 00 0 03 000000 		JRST	(3)		;YES, RETURN
  3268
  3269	004327	265 04 0 00 004352 	$TOUB2:	JSP	4,$TOUT2	;SEND CHARACTER USER MODE 
  3270
  3271	004330	332 00 0 00 030240 	$TOUB3:	SKIPE	USRLFF#		;NEED USER LF FILLERS ?
  3272	004331	254 00 0 00 004341 		JRST	$USRFL		;YES
  3273	004332	332 00 0 00 030241 		SKIPE	USRCRF#		;NEED USER CR FILLERS ?
  3274	004333	254 00 0 00 004335 		JRST	$USRFC		;YES
  3275	004334	254 00 0 00 004350 		JRST	$TOUTA		;NO-BACK TO PRINT ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 67
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0336

  3276					;*USER MODE LF & CR FILLERS
  3277					S^;*********************************************************************^
  3278
  3279	004335	302 01 0 00 000015 	$USRFC:	CAIE	1,15		;CR ?
  3280	004336	254 00 0 00 004350 		JRST	$TOUTA		;NO-RETURN TO PRINT ROUTINE 
  3281	004337	200 05 0 00 030241 		MOVE	5,USRCRF	;SEND FILLERS FOR CR
  3282	004340	254 00 0 00 004344 		JRST	$USRF1		;DEPENDING ON 'USRCRF'
  3283
  3284	004341	302 01 0 00 000012 	$USRFL:	CAIE	1,12		;LF ?
  3285	004342	254 00 0 00 004350 		JRST	$TOUTA		;NO-RETURN TO PRINT 
  3286	004343	200 05 0 00 030240 		MOVE	5,USRLFF	;SEND FILLERS FOR LF
  3287	004344	361 05 0 00 004350 	$USRF1:	SOJL	5,$TOUTA	;DEPENDING ON 'USRLFF'
  3288	004345	201 01 0 00 000001 		MOVEI	1,001		;^A
  3289	004346	265 04 0 00 004352 		JSP	4,$TOUT2	;SEND CHARACTER 
  3290	004347	254 00 0 00 004344 		JRST	$USRF1
  3291
  3292					;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
  3293					S^;*********************************************************************^
  3294	004350	200 00 0 00 005364 	$TOUTA:	MOVE	AC0,$PACB0	;RESTORE AC0
  3295	004351	254 00 0 03 000000 		JRST	(3)		;RETURN TO PRINT ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 68
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0337

  3296					S^;*********************************************************************^
  3297					;*USER MODE CHARACTER OUTPUT
  3298					S^;*********************************************************************^
  3299
  3300	004352	202 04 0 00 005365 	$TOUT2:	MOVEM	4,$PACC4#
  3301	004353	200 00 0 00 030046 		MOVE	0,CONSW
  3302	004354	603 00 0 00 020000 		TLNE	0,PNTLPT	;IS LPT PRINT SWITCH UP ?
  3303	004355	254 00 0 00 004401 		JRST	$TOUT3		;YES, GO PRINT ON LOGICAL DEVICE
  3304	004356	037 05 0 00 000002 		DROPDV			;CLOSE DEV IF SWITCH CHANGED
  3305	004357	200 00 0 00 005335 	$TOUT6:	MOVE	0,$CARCT	;CHARACTER NUMBER
  3306	004360	306 00 0 00 000001 		CAIN	0,1		;FIRST CHAR IN LINE ?
  3307	004361	254 00 0 00 004367 		JRST	$TOUT4		;YES
  3308	004362	336 00 0 00 030516 	$TOUT5:	SKIPN	MONTYP
  3309	004363	051 01 0 00 000001 		OUTCHR	1
  3310	004364	332 00 0 00 030516 		SKIPE	MONTYP
  3311	004365	260 17 0 00 004407 		GO	$$TOU5		;TOPS-20 OUTPUT
  3312	004366	254 00 1 00 005365 		JRST	@$PACC4		;GO RESTORE AC0 AND RETURN
  3313
  3314	004367	331 00 0 00 030043 	$TOUT4:	SKIPL	MONCTL		;SYSTEM EXERCISER
  3315	004370	254 00 0 00 004362 		JRST	$TOUT5		;NO
  3316	004371	261 17 0 00 000001 		PUT	1
  3317	004372	201 01 0 00 000077 		MOVEI	1,"?"		;PRECEDE LINE WITH ?
  3318	004373	336 00 0 00 030516 		SKIPN	MONTYP
  3319	004374	051 01 0 00 000001 		OUTCHR	1
  3320	004375	332 00 0 00 030516 		SKIPE	MONTYP
  3321	004376	104 00 0 00 000074 		PBOUT
  3322	004377	262 17 0 00 000001 		GET	1
  3323	004400	254 00 0 00 004362 		JRST	$TOUT5
  3324
  3325					;*USER MODE LOGICAL DEVICE OUTPUT
  3326					S^;*********************************************************************^
  3327
  3328	004401	336 00 0 00 030226 	$TOUT3:	SKIPN	$DVOFF		;DEVICE BEEN INITED YET ?
  3329	004402	260 17 0 00 004452 		GO	$INTDV		;NO, GO DO IT
  3330	004403	260 17 0 00 004440 		GO	$PUTCR		;GO OUTPUT CHAR
  3331	004404	336 00 0 00 005373 		SKIPN	$PNTTY		;SKIP IF MESSAGE ALSO FORCED TO TTY
  3332	004405	254 00 1 00 005365 		JRST	@$PACC4
  3333	004406	254 00 0 00 004357 		JRST	$TOUT6		;OUTPUT 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 69
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0338

  3334					;*TOPS-20 TTY OUTPUT
  3335
  3336	004407	302 01 0 00 000033 	$$TOU5:	CAIE	1,33		;PRINTING AN ALTMODE ?
  3337	004410	254 00 0 00 004436 		JRST	$$TOU6		;NO
  3338	004411	261 17 0 00 000001 		PUT	1
  3339	004412	261 17 0 00 000002 		PUT	2
  3340	004413	261 17 0 00 000003 		PUT	3
  3341	004414	202 01 0 00 005327 		MOVEM	1,$$TO5A#
  3342	004415	201 01 0 00 000101 		MOVEI	1,.PRIOU
  3343	004416	104 00 0 00 000112 		RFCOC			;YES, DON'T TRANSLATE IT
  3344	004417	261 17 0 00 000002 		PUT	2
  3345	004420	261 17 0 00 000003 		PUT	3
  3346	004421	620 03 0 00 600000 		TRZ	3,600000
  3347	004422	660 03 0 00 400000 		TRO	3,400000
  3348	004423	104 00 0 00 000113 		SFCOC
  3349	004424	200 01 0 00 005327 		MOVE	1,$$TO5A
  3350	004425	104 00 0 00 000074 		PBOUT			;PRINT AN ACTUAL 33 CODE
  3351	004426	201 01 0 00 000101 		MOVEI	1,.PRIOU
  3352	004427	262 17 0 00 000003 		GET	3
  3353	004430	262 17 0 00 000002 		GET	2
  3354	004431	104 00 0 00 000113 		SFCOC			;RESTORE OUTPUT TRANSLATION
  3355	004432	262 17 0 00 000003 		GET	3
  3356	004433	262 17 0 00 000002 		GET	2
  3357	004434	262 17 0 00 000001 		GET	1
  3358	004435	263 17 0 00 000000 		RTN
  3359
  3360	004436	104 00 0 00 000074 	$$TOU6:	PBOUT			;NORMAL OUTPUT
  3361	004437	263 17 0 00 000000 		RTN
  3362
  3363					;* LOGICAL DEVICE OUTPUT ROUTINES
  3364					S^;*********************************************************************^
  3365
  3366	004440	336 00 0 00 030516 	$PUTCR:	SKIPN	MONTYP
  3367	004441	254 00 0 00 004566 		JRST	$PUT10
  3368	004442	261 17 0 00 000001 		PUT	1
  3369	004443	261 17 0 00 000002 		PUT	2
  3370	004444	200 02 0 00 000001 		MOVE	2,1
  3371	004445	200 01 0 00 005322 		MOVE	1,DEVJFN
  3372	004446	104 00 0 00 000051 		BOUT
  3373	004447	262 17 0 00 000002 		GET	2
  3374	004450	262 17 0 00 000001 		GET	1
  3375	004451	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 70
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0339

  3376					S^;*********************************************************************^
  3377					;*LOGICAL DEVICE INITIALIZATION
  3378					;*PHY DEV ASSIGNED AT RUN TIME
  3379					S^;*********************************************************************^
  3380
  3381	004452	200 00 0 00 030021 	$INTDV:	MOVE	0,PNTEXT
  3382	004453	202 00 0 00 030271 		MOVEM	0,$OUTEX
  3383	004454	200 00 0 00 030020 		MOVE	0,PNTNAM	;SETUP LOGICAL OUTPUT FILE NAME
  3384	004455	202 00 0 00 030270 		MOVEM	0,$OUTNM
  3385	004456	202 01 0 00 005366 		MOVEM	1,$PACF1#
  3386	004457	202 02 0 00 005367 		MOVEM	2,$PACF2#
  3387	004460	402 00 0 00 005343 		SETZM	$INTD3#
  3388	004461	336 00 0 00 030516 		SKIPN	MONTYP
  3389	004462	254 00 0 00 004576 		JRST	$INT10		;TOPS10
  3390	004463	200 00 0 00 005175 		MOVE	[POINT 7,FILASC,27]
  3391	004464	200 01 0 00 005176 		MOVE	1,[ASCII/DEV:/]
  3392	004465	202 01 0 00 005241 		MOVEM	1,FILASC
  3393	004466	201 01 0 00 030270 	$INT21:	MOVEI	1,$OUTNM
  3394	004467	260 17 0 00 004537 		GO	SIXASC		;CONVERT SIXBIT TO ASCII
  3395	004470	515 01 0 00 400001 		HRLZI	1,(GJ%FOU!GJ%SHT)
  3396	004471	561 02 0 00 005241 		HRROI	2,FILASC
  3397	004472	104 00 0 00 000020 		GTJFN
  3398	004473	320 16 0 00 004504 		 ERJMP	$INT22		;DEVICE NOT AVAILABLE, DEFAULT TO DSK
  3399	004474	202 01 0 00 005322 		MOVEM	1,DEVJFN#
  3400	004475	200 02 0 00 005177 		MOVE	2,[7B5!OF%WR]
  3401	004476	104 00 0 00 000021 		OPENF
  3402	004477	254 00 0 00 004530 		 JRST	T20ERR
  3403	004500	476 00 0 00 030226 	$INT12:	SETOM	$DVOFF
  3404	004501	200 02 0 00 005367 		MOVE	2,$PACF2
  3405	004502	200 01 0 00 005366 		MOVE	1,$PACF1
  3406	004503	263 17 0 00 000000 		RTN
  3407
  3408	004504	332 00 0 00 005343 	$INT22:	SKIPE	$INTD3
  3409	004505	254 00 0 00 004530 		 JRST	T20ERR
  3410						HRROI	1,[ASCIZ/
  3411					****
  3412					USING 'DSK' PRINT FILE
  3413					****
  3414	004506	561 01 0 00 005200 	/]
  3415	004507	104 00 0 00 000076 		PSOUT
  3416	004510	200 00 0 00 005175 		MOVE	[POINT 7,FILASC,27]
  3417	004511	200 01 0 00 005210 		MOVE	1,[ASCII/DSK:/]
  3418	004512	202 01 0 00 005241 		MOVEM	1,FILASC
  3419	004513	476 00 0 00 005343 		SETOM	$INTD3
  3420	004514	254 00 0 00 004466 		JRST	$INT21
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 71
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0340

  3421					;*USER MODE CLOSE FILE
  3422					S^;*********************************************************************^
  3423
  3424	004515	336 00 0 00 030226 	$DRPDV:	SKIPN	$DVOFF		;DEVICE INITED?
  3425	004516	263 17 0 00 000000 		RTN			;NO, DON'T BOTHER 
  3426	004517	336 00 0 00 030516 		SKIPN	MONTYP
  3427	004520	254 00 0 00 004624 		JRST	$DRP10		;TOPS10
  3428	004521	261 17 0 00 000001 		PUT	1
  3429	004522	200 01 0 00 005322 		MOVE	1,DEVJFN
  3430	004523	104 00 0 00 000022 		CLOSF
  3431	004524	254 00 0 00 004530 		 JRST	T20ERR
  3432	004525	262 17 0 00 000001 		GET	1
  3433	004526	402 00 0 00 030226 		SETZM	$DVOFF
  3434	004527	263 17 0 00 000000 		RTN			;EXIT 
  3435
  3436	004530	201 01 0 00 000101 	T20ERR:	MOVEI	1,.PRIOU
  3437	004531	525 02 0 00 400000 		HRLOI	2,.FHSLF
  3438	004532	400 03 0 00 000000 		SETZ	3,
  3439	004533	104 00 0 00 000011 		ERSTR
  3440	004534	104 00 0 00 000170 		 HALTF
  3441	004535	104 00 0 00 000170 		 HALTF
  3442	004536	104 00 0 00 000170 		HALTF
  3443
  3444	004537	261 17 0 00 000002 	SIXASC:	PUT	2
  3445	004540	261 17 0 00 000003 		PUT	3
  3446	004541	261 17 0 00 000004 		PUT	4
  3447	004542	200 03 0 00 000000 		MOVE	3,0
  3448	004543	200 04 0 00 000001 		MOVE	4,1
  3449	004544	200 01 0 04 000000 		MOVE	1,(4)
  3450	004545	260 17 0 00 004560 		GO	SIXSTR
  3451	004546	201 00 0 00 000056 		MOVEI	"."
  3452	004547	136 00 0 00 000003 		IDPB	0,3
  3453	004550	510 01 0 04 000001 		HLLZ	1,1(4)
  3454	004551	332 00 0 00 000001 		SKIPE	1
  3455	004552	260 17 0 00 004560 		GO	SIXSTR
  3456	004553	136 01 0 00 000003 		IDPB	1,3
  3457	004554	262 17 0 00 000004 		GET	4
  3458	004555	262 17 0 00 000003 		GET	3
  3459	004556	262 17 0 00 000002 		GET	2
  3460	004557	263 17 0 00 000000 		RTN
  3461
  3462	004560	403 00 0 00 000002 	SIXSTR:	SETZB	0,2
  3463	004561	246 00 0 00 000006 		LSHC	0,6
  3464	004562	271 00 0 00 000040 		ADDI	0,40
  3465	004563	136 00 0 00 000003 		IDPB	0,3
  3466	004564	326 01 0 00 004560 		JUMPN	1,.-4
  3467	004565	263 17 0 00 000000 		RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 72
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0341

  3468					;*TOPS10, LOGICAL DEVICE OUTPUT
  3469
  3470	004566	332 00 0 00 005340 	$PUT10:	SKIPE	$DVTTY#		;IF DEVICE IS TTY
  3471	004567	254 00 0 00 004574 		JRST	.+5		;EMPTY BUFFER AFTER EACH CHAR
  3472	004570	377 00 0 00 030267 		SOSG	$OBUF+2		;INCREMENT BYTE COUNT
  3473	004571	254 00 0 00 004574 		JRST	.+3
  3474	004572	136 01 0 00 030266 		IDPB	1,$OBUF+1	;STORE CHAR
  3475	004573	263 17 0 00 000000 		RTN
  3476	004574	057 17 0 00 000000 		OUT	$DEVCH,		;EMPTY BUFFER
  3477	004575	254 00 0 00 004572 		JRST	.-3
  3478
  3479					;*$INT10, TOPS10 INITIALIZE LOGICAL OUTPUT
  3480
  3481	004576	202 00 0 00 030270 	$INT10:	MOVEM	0,$OUTNM
  3482	004577	041 17 0 00 000000 		INIT	$DEVCH,0	;ASCII MODE, DEV CHANNEL
  3483	004600	44 45 66 00 00 00 		SIXBIT	/DEV/		;LOGICAL DEVICE, LPT,DSK,DTAX
  3484	004601	030265	000000			XWD	$OBUF,		;OUTPUT ONLY
  3485	004602	254 00 0 00 004614 		JRST	$INT13		;DEV NOT AVAIL, DEFAULT TO DISK
  3486	004603	065 17 0 00 000001 	$INT11:	OUTBUF	$DEVCH,1	;SETUP OUTPUT BUFFER
  3487	004604	077 17 0 00 030270 		ENTER	$DEVCH,$OUTNM	;INIT OUTPUT FILE
  3488	004605	254 00 0 00 004641 		JRST	$OERR2		;NO DIR ROOM, ERROR
  3489	004606	476 00 0 00 030226 		SETOM	$DVOFF		;SET DEVICE INITED FLAG
  3490	004607	201 00 0 00 000017 		MOVEI	0,$DEVCH
  3491	004610	047 00 0 00 000004 		DEVCHR			;GET DEVICE CHARACTERISTICS
  3492	004611	603 00 0 00 000010 		TLNE	0,10
  3493	004612	476 00 0 00 005340 		SETOM	$DVTTY		;DEVICE IS TTY
  3494	004613	254 00 0 00 004500 		JRST	$INT12		;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 73
SUBUSM	MAC	23-Mar-78 15:02		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0342

  3495	004614	336 00 0 00 005344 	$INT13:	SKIPN	$INTDF		;FIRST DEFAULT INIT ?
  3496						OUTSTR	[ASCIZ/
  3497					****
  3498					USING 'DSK' PRINT FILE
  3499					****
  3500	004615	051 03 0 00 005200 	/]
  3501	004616	476 00 0 00 005344 		SETOM	$INTDF
  3502	004617	041 17 0 00 000000 		INIT	$DEVCH,0
  3503	004620	44 63 53 00 00 00 		SIXBIT	/DSK/
  3504	004621	030265	000000			XWD	$OBUF,
  3505	004622	254 00 0 00 004637 		JRST	$OERR1
  3506	004623	254 00 0 00 004603 		JRST	$INT11
  3507
  3508					;*USER MODE CLOSE FILE
  3509
  3510	004624	070 17 0 00 000000 	$DRP10:	CLOSE	$DEVCH,		;CLOSE FILE
  3511	004625	063 17 0 00 740000 		STATZ	$DEVCH,740000	;RECHECK FINAL ERROR BITS
  3512						OUTSTR	[ASCIZ/
  3513					%PRINT CLOSE ERROR
  3514	004626	051 03 0 00 005211 	/]
  3515	004627	071 17 0 00 000000 		RELEAS	$DEVCH,		;RELINQUISH DEVICE, WRITE DIRECTORY
  3516	004630	402 00 0 00 030226 		SETZM	$DVOFF
  3517	004631	263 17 0 00 000000 		RTN			;EXIT 
  3518
  3519	004632				$OUTER:	OUTSTR	[ASCIZ/
  3520					%PRINT OUTPUT ERROR
  3521	004632	051 03 0 00 005216 	/]
  3522	004633	332 00 0 00 030520 		SKIPE	$$OUTER
  3523	004634	256 00 0 00 030520 		XCT	$$OUTER		;EXECUTE USERS ERROR RTN, IF PROV.
  3524	004635	047 01 0 00 000012 		EXIT	1,		;ERROR, QUIT
  3525	004636	254 00 0 00 030000 		JRST	BEGIN		;RESTART USER SEGMENT 
  3526
  3527	004637				$OERR1:	OUTSTR	[ASCIZ/
  3528	004637	051 03 0 00 005223 	DSK INIT ERROR/]
  3529	004640	254 00 0 00 004632 		JRST	$OUTER		;DISK PRINT OUTPUT ERROR
  3530
  3531	004641				$OERR2:	OUTSTR	[ASCIZ/
  3532	004641	051 03 0 00 005227 	NO DIR ROOM/]
  3533	004642	254 00 0 00 004632 		JRST	$OUTER		;DISK PRINT OUTPUT ERROR
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1
SUBUSS	MAC	23-Mar-78 15:04		*STOR* RESERVED STORAGE                                                            SEQ 0343

  3534					SUBTTL	*STOR* RESERVED STORAGE
  3535
  3536					;MODIFY DEVICE CODE CODE TABLE
  3537	004643				$MDLST:
  3538			000000		$MDEND=.-$MDLST			;COMPUTES LENGTH OF TABLE
  3539
  3540					;PROGRAM LITERALS
  3541	004643					LIT
  3542	004643	000112	000011
  3543	004644	254 00 0 00 002071 
  3544	004645	254 00 0 00 002136 
  3545	004646	015 012 105 130 105 
  3546	004647	103 040 117 116 114 
  3547	004650	131 015 012 000 000 
  3548	004651	260 17 0 00 001163 
  3549	004652	254 00 0 00 001244 
  3550	004653	76 51 54 54 45 47 
  3551	004654	41 54 00 65 65 57 
  3552	004655	76 65 65 57 75 75 
  3553	004656	46 54 41 47 63 75 
  3554	004657	00 00 60 43 76 77 
  3555	004660	777577	030303
  3556	004661	76 12 12 12 12 12 
  3557	004662	76 65 65 57 00 60 
  3558	004663	54 51 63 64 00 45 
  3559	004664	62 62 00 60 35 77 
  3560	004665	037 01 0 00 000026 
  3561	004666	037 12 0 00 000001 
  3562	004667	254 00 0 00 001364 
  3563	004670	037 15 0 00 000003 
  3564	004671	254 00 0 00 001364 
  3565	004672	037 14 0 00 000003 
  3566	004673	254 00 0 00 001364 
  3567	004674	037 17 0 00 000001 
  3568	004675	254 00 0 00 001364 
  3569	004676	000001	000001
  3570	004677	76 64 45 63 64 00 
  3571	004700	60 41 63 63 00 43 
  3572	004701	57 65 56 64 00 35 
  3573	004702	00 77 00 00 00 00 
  3574	004703	76 60 43 35 00 00 
  3575	004704	77 00 00 00 00 00 
  3576	004705	76 63 67 51 64 43 
  3577	004706	50 45 63 00 35 00 
  3578	004707	77 00 00 00 00 00 
  3579	004710	76 45 62 62 57 62 
  3580	004711	00 51 56 00 77 00 
  3581	004712	00 15 00 77 00 00 
  3582	004713	76 77 00 00 00 00 
  3583	004714	037 00 0 00 000000 
  3584	004715	76 43 57 62 62 45 
  3585	004716	43 64 32 00 00 77 
  3586	004717	76 41 43 64 65 41 
  3587	004720	54 32 00 00 00 77 
  3588	004721	76 44 51 63 43 62 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1-1
SUBUSS	MAC	23-Mar-78 15:04		*STOR* RESERVED STORAGE                                                            SEQ 0344

  3589	004722	45 60 32 00 00 77 
  3590	004723	41 60 62 51 44 00 
  3591	004724	000020	000011
  3592	004725	000001	005303
  3593	004726	45 62 62 57 62 00 
  3594	004727	50 41 54 64 00 41 
  3595	004730	64 00 77 00 00 00 
  3596	004731	46 41 64 41 54 00 
  3597	004732	60 62 57 47 62 41 
  3598	004733	55 00 45 62 62 57 
  3599	004734	62 00 41 64 00 77 
  3600	004735	104 104 124 000 000 
  3601	004736	66 45 62 63 51 57 
  3602	004737	56 00 77 00 00 00 
  3603	004740	14 00 63 66 35 77 
  3604	004741	14 00 64 57 60 63 
  3605	004742	15 21 20 77 00 00 
  3606	004743	14 00 64 57 60 63 
  3607	004744	15 22 20 77 00 00 
  3608	004745	14 00 53 63 21 20 
  3609	004746	77 00 00 00 00 00 
  3610	004747	037 02 0 00 004745 
  3611	004750	254 00 0 00 002127 
  3612	004751	14 00 53 54 21 20 
  3613	004752	77 00 00 00 00 00 
  3614	004753	332 00 0 00 030524 
  3615	004754	254 00 0 00 004747 
  3616	004755	037 02 0 00 004751 
  3617	004756	254 00 0 00 002127 
  3618	004757	14 00 53 41 21 20 
  3619	004760	77 00 00 00 00 00 
  3620	004761	037 02 0 00 004757 
  3621	004762	254 00 0 00 002127 
  3622	004763	14 00 53 51 21 20 
  3623	004764	77 00 00 00 00 00 
  3624	004765	14 00 43 60 65 03 
  3625	004766	35 77 00 00 00 00 
  3626	004767	76 12 12 12 12 12 
  3627	004770	76 60 54 51 63 64 
  3628	004771	00 65 46 54 57 67 
  3629	004772	76 77 00 00 00 00 
  3630	004773	002160	002164
  3631	004774	200407	000000
  3632	004775	000007	000001
  3633	004776	76 12 12 12 12 12 
  3634	004777	76 60 54 51 63 64 
  3635	005000	00 57 66 45 62 46 
  3636	005001	54 57 67 00 60 35 
  3637	005002	77 00 00 00 00 00 
  3638	005003	76 12 12 12 12 12 
  3639	005004	76 51 54 54 45 47 
  3640	005005	41 54 00 51 56 63 
  3641	005006	64 62 65 43 64 51 
  3642	005007	57 56 00 77 00 00 
  3643	005010	76 51 54 54 45 47 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1-2
SUBUSS	MAC	23-Mar-78 15:04		*STOR* RESERVED STORAGE                                                            SEQ 0345

  3644	005011	41 54 00 55 45 55 
  3645	005012	57 62 71 00 62 45 
  3646	005013	41 44 77 00 00 00 
  3647	005014	76 51 54 54 45 47 
  3648	005015	41 54 00 55 45 55 
  3649	005016	57 62 71 00 67 62 
  3650	005017	51 64 45 77 00 00 
  3651	005020	76 65 56 53 56 57 
  3652	005021	67 56 00 51 56 64 
  3653	005022	45 62 62 65 60 64 
  3654	005023	77 00 00 00 00 00 
  3655	005024	76 55 45 55 57 62 
  3656	005025	71 00 60 62 57 64 
  3657	005026	77 00 00 00 00 00 
  3658	005027	76 56 57 56 15 70 
  3659	005030	15 55 45 55 57 62 
  3660	005031	71 77 00 00 00 00 
  3661	005032	76 55 45 55 57 62 
  3662	005033	71 00 60 41 62 51 
  3663	005034	64 71 77 00 00 00 
  3664	005035	76 46 54 41 47 63 
  3665	005036	00 00 60 43 00 00 
  3666	005037	00 00 00 00 60 62 
  3667	005040	57 47 76 77 00 00 
  3668	005041	45 56 44 00 60 41 
  3669	005042	63 63 00 77 00 00 
  3670	005043	76 55 45 55 57 62 
  3671	005044	71 00 55 41 60 00 
  3672	005045	35 76 46 62 57 55 
  3673	005046	00 00 00 00 00 64 
  3674	005047	57 00 00 00 00 00 
  3675	005050	00 00 00 00 63 51 
  3676	005051	72 45 17 53 77 00 
  3677	005052	76 43 50 41 56 47 
  3678	005053	45 00 44 45 66 51 
  3679	005054	43 45 00 43 57 44 
  3680	005055	45 63 14 77 00 00 
  3681	005056	57 54 44 00 44 45 
  3682	005057	66 51 43 45 00 43 
  3683	005060	57 44 45 00 15 00 
  3684	005061	77 00 00 00 00 00 
  3685	005062	56 45 67 00 44 45 
  3686	005063	66 51 43 45 00 43 
  3687	005064	57 44 45 00 15 00 
  3688	005065	77 00 00 00 00 00 
  3689	005066	43 50 41 56 47 51 
  3690	005067	56 47 00 46 62 57 
  3691	005070	55 00 77 00 00 00 
  3692	005071	00 64 57 00 77 00 
  3693	005072	66 41 54 51 44 00 
  3694	005073	43 50 41 56 47 45 
  3695	005074	14 77 00 00 00 00 
  3696	005075	32 12 0 02 000000 
  3697	005076	000000	004643
  3698	005077	00 11 0 02 000000 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1-3
SUBUSS	MAC	23-Mar-78 15:04		*STOR* RESERVED STORAGE                                                            SEQ 0346

  3699	005100	76 44 45 66 00 43 
  3700	005101	57 44 45 00 45 62 
  3701	005102	62 14 00 21 24 15 
  3702	005103	27 27 24 00 57 56 
  3703	005104	54 71 76 77 00 00 
  3704	005105	001600	001600
  3705	005106	76 64 64 71 00 63 
  3706	005107	67 51 64 43 50 00 
  3707	005110	43 57 56 64 62 57 
  3708	005111	54 00 37 00 15 00 
  3709	005112	20 14 63 14 00 71 
  3710	005113	00 57 62 00 56 00 
  3711	005114	34 43 62 36 00 15 
  3712	005115	00 77 00 00 00 00 
  3713	005116	76 54 50 00 63 67 
  3714	005117	51 64 43 50 45 63 
  3715	005120	00 34 03 00 57 62 
  3716	005121	00 37 36 00 15 00 
  3717	005122	77 00 00 00 00 00 
  3718	005123	62 50 00 63 67 51 
  3719	005124	64 43 50 45 63 00 
  3720	005125	34 03 00 57 62 00 
  3721	005126	37 36 00 15 00 77 
  3722	005127	055 040 131 054 116 
  3723	005130	054 136 040 074 103 
  3724	005131	122 076 040 117 122 
  3725	005132	040 136 132 040 055 
  3726	005133	040 000 000 000 000 
  3727	005134	44 07 0 00 005244 
  3728	005135	600000	000204
  3729	005136	00 71 00 57 62 00 
  3730	005137	56 00 34 43 62 36 
  3731	005140	00 15 00 77 00 00 
  3732	005141	421042	104210
  3733	005142	44 06 0 00 000001 
  3734	005143	015 012 052 052 052 
  3735	005144	052 052 052 015 012 
  3736	005145	105 130 103 105 105 
  3737	005146	104 105 104 040 101 
  3738	005147	114 114 117 127 105 
  3739	005150	104 040 120 122 111 
  3740	005151	116 124 117 125 124 
  3741	005152	123 015 012 000 000 
  3742	005153	037 12 0 00 000001 
  3743	005154	254 00 0 00 004066 
  3744	005155	037 01 0 00 030242 
  3745	005156	254 00 0 00 004072 
  3746	005157	037 12 0 00 000001 
  3747	005160	254 00 0 00 004117 
  3748	005161	037 12 0 00 000001 
  3749	005162	254 00 0 00 004133 
  3750	005163	037 05 0 00 000001 
  3751	005164	254 00 0 00 004156 
  3752	005165	037 10 0 00 000001 
  3753	005166	254 00 0 00 004162 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 1-4
SUBUSS	MAC	23-Mar-78 15:04		*STOR* RESERVED STORAGE                                                            SEQ 0347

  3754	005167	037 06 0 00 000001 
  3755	005170	254 00 0 00 004170 
  3756	005171	037 12 0 00 000001 
  3757	005172	254 00 0 00 004173 
  3758	005173	037 06 0 00 000001 
  3759	005174	254 00 0 00 004176 
  3760	005175	10 07 0 00 005241 
  3761	005176	104 105 126 072 000 
  3762	005177	070000	100000
  3763	005200	015 012 052 052 052 
  3764	005201	052 015 012 125 123 
  3765	005202	111 116 107 040 047 
  3766	005203	104 123 113 047 040 
  3767	005204	120 122 111 116 124 
  3768	005205	040 106 111 114 105 
  3769	005206	015 012 052 052 052 
  3770	005207	052 015 012 000 000 
  3771	005210	104 123 113 072 000 
  3772	005211	015 012 045 120 122 
  3773	005212	111 116 124 040 103 
  3774	005213	114 117 123 105 040 
  3775	005214	105 122 122 117 122 
  3776	005215	015 012 000 000 000 
  3777	005216	015 012 045 120 122 
  3778	005217	111 116 124 040 117 
  3779	005220	125 124 120 125 124 
  3780	005221	040 105 122 122 117 
  3781	005222	122 015 012 000 000 
  3782	005223	015 012 104 123 113 
  3783	005224	040 111 116 111 124 
  3784	005225	040 105 122 122 117 
  3785	005226	122 000 000 000 000 
  3786	005227	015 012 116 117 040 
  3787	005230	104 111 122 040 122 
  3788	005231	117 117 115 000 000 
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14	MACRO %53(1020) 15:25 23-Mar-78 Page 2
SUBUSS	MAC	23-Mar-78 15:04		*STOR* RESERVED STORAGE                                                            SEQ 0348

  3789	005235	000000	000000		ENDSLD:	0
  3790
  3791					;END OF PROGRAM VARIABLES
  3792
  3793	005236	000 00 0 00 000000 	%ERIN1:	Z			;COR/ACT/DESC PRINT JSR
  3794	005237	000 00 0 00 000000 	%ERIN2:	Z
  3795	005240	254 00 1 00 005236 		JRST	@%ERIN1		;ERROR HANDLER SPECIAL STORAGE WORDS
  3796
  3797	005241				FILASC:	BLOCK	3
  3798
  3799	005244				D$ISTR:	BLOCK	^D30		;INPUT STORAGE
  3800
  3801	005302				POWER:	BLOCK	20		;AC SAVE AREA
  3802
  3803					IFDEF	DEBUG,<
  3804	005322				PATCH:	BLOCK	DEBUG		;DEBUGGING AREA
  3805					>
  3806
  3807					;PROGRAM VARIABLE WORDS
  3808
  3809	005322					VAR
  3810
  3811					IFDEF	PGMEND,<
  3812	005433	000000	000000		END:	0
  3813			001000			END	START

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:13.472

62P CORE USED

ABORT	    82#	  1881
AC0	    66#	  1024	  1025	  1026	  1028	  1030	  1031	  1033	  1035	  1036	  1037	  1039	  1042	  1044     SEQ 0349
	  1046	  1047	  1048	  1057	  1060	  1061	  1072	  1075	  1078	  1079	  1199	  1200	  1201	  1202
	  1204	  1206	  1208	  1214	  1215	  1216	  1223	  1227	  1261	  1570	  1582	  1585	  1598	  1610
	  1611	  2204	  2205	  2234	  2468	  2669	  2671	  2673	  2886	  2920	  2946	  3252	  3294
ALTMGO	   585#	  1440
ANXM	   462#
AROV	   365#
AROVU	   429#
AST	   700#
ATSIN	   701#
BEGEND	   581#	   881	   888
BEGIN	    36	    37	    38	    39	    40	    41	    42	    43	    44	    45	    46	   512#	   886	   973
	  1903	  3525
BEGIN1	   528#	   582
BELL	   704#
BIS	   369#
CCA	   446#
CHAIN	   102#	  2251
CHNOFF	   476#
CHNON	   475#
CHNTAB	  1683	  1702#
CLK	   461#
CLKCLR	   454#
CLKDIS	   452#
CLKENB	   453#	   460#
CLKU	   427#
CLOCKF	   567#
CNTLC	   584#
CNTRG1	  1747	  1749	  1752	  1754	  1757	  1759	  1768#
CNTRLG	  1703	  1745#
COMMA	   693#
CONSW	   568#	   928	   930#	   930	  1303	  1310	  1406	  1421	  1441	  2023	  2229	  2234	  2235	  2237
	  2250	  2258	  2274	  2310	  2328	  2599	  2609	  3252	  3301
CPIERR	   868#
CPOPJ	   588#
CPOPJ1	   586#	  2529
CRLF	   232	   233	   688#
CRLF2	   236	   237	   690#
CRY0	   366#
CRY1	   367#
CSHFLG	   747#
CSHMEM	   748#
CYCL60	   741#	  1484
D$ISTR	  2557	  3799#
DCK	   373#
DDT	    68#	   837	  1610
DDTLNK	   116#	   526	   843#	  1614
DDTSRT	   526#	   933
DEBUG	    33#	  3803	  3804
DECVER	     5#	    12	    17	   547	   859
DEVJFN	  3371	  3399#	  3399	  3429
DF22F	   652#	  3106#	  3106
DIAGMN	   515#
DIAGNO	    67#	   836                                                                                                     SEQ 0350
DIAMON	    69#	   838	   877
DIASWS	    70#	  2323
DING	    88#	  1465
DOLLAR	   707#
DSKUPD	   552
DTEBER	   866#
DTECER	   867#
END	  3812#
ENDFIX	   827#
ENDSLD	    35	  3789#
EOPERR	   869#
ERMORE	   601#	  1428
ERRPC	   572#	   955	  1216	  1271	  1286	  1309	  1879
ERRTLS	   573#	   885	  1267	  1474
ERSTOP	    91#	  1442	  1579	  1605
EXCASB	   550
EXIOT	   371#
FILASC	  3390	  3392	  3396	  3416	  3418	  3797#
FOV	   368#
FOVU	   428#
FRDLNK	   114#	  1553	  1558
FSELNK	   113#	  1525	  1528
FXU	   372#
GJ%FOU	  3395
GJ%SHT	  3395
HYPEN	   698#
IININT	  1719	  1781#
IMRINT	  1720	  1785#
IMWINT	  1721	  1789#
INHCSH	    99#
INHPAG	    96#	  2025
INUPTR	  2460	  2547	  2549	  2558#	  2558	  2571	  2598	  2902
INXM	   463#
IOCLR	   451#
ITERAT	    54#	   545
ITRCH1	   605#	  1778	  1804	  1824	  1860
ITRCNT	   545#	   876	   968	  1877	  1883
ITRUSR	  1676	  1822#
JOB41	   387#	  1005
JOBAPR	   395#	  1677
JOBCNI	   396#	  1825
JOBDDT	   389#
JOBFF	   393#	   921	  2090
JOBOPC	   398#	  1439
JOBREL	   388#	  1917
JOBREN	   394#	  2861
JOBSA	   392#	   920
JOBSYM	   390#
JOBTPC	   397#	  1823
JOBUSY	   391#
JOBUUO	   386#	  1035	  1042	  1073	  1103	  1112	  1149	  1158	  1199	  1225
JOBVER	   399#	  1625	  1628
KA10	   499                                                                                                             SEQ 0351
KAHZ50	   104#
KAIFLG	   562#	  1487	  1510	  1514	  1648	  2030
KI10	   499
KL10	   499
KLFLG	   563#	  1486	  1492	  1504	  1642	  2028
KLOLD	   312
LDLNK	   115#	   515	   517
LEVTAB	  1683	  1696#
LFP	   702#
LOOPER	    90#	  1219	  1458
LUOERR	   870#
LUUO	   379#	  1258	  2948
LUUO1	   632	   633
LUUO10	   632	   637
LUUO11	   632	   637
LUUO12	   632	   638
LUUO13	   632	   638
LUUO14	   632	   639
LUUO15	   632	   639
LUUO16	   632	   640
LUUO17	   632	   640
LUUO2	   632	   634
LUUO20	   632	   641
LUUO21	   632	   641
LUUO22	   632	   642
LUUO23	   632	   642
LUUO24	   632	   643
LUUO25	   632	   643
LUUO26	   632	   644
LUUO27	   632	   644
LUUO3	   632	   634
LUUO30	   632	   645
LUUO31	   632	   645
LUUO32	   632	   646
LUUO33	   632	   646
LUUO4	   632	   635
LUUO5	   632	   635
LUUO6	   632	   636
LUUO7	   632	   636
LUUOI	   380#
MAPNEW	   653#	   879	  1920
MARGIN	   575#
MCNVER	     6#	    12	    17	   547	   859
MEMLOW	   655#	  1982	  1997	  2093
MEMMAP	    30#	   553
MEMSIZ	   656#	  1916	  1918	  1919	  1962	  1966	  1977	  1979	  1998	  2001	  2006	  2076	  2078	  2081
	  2083
MEMTOT	   654#	  2089
MINUS	   697#
MODCHK	   844	   856#
MODDVC	    98#	  2103
MODDVL	    34#	   297	   548
MODDVU	    35#	   298	   549                                                                                             SEQ 0352
MODLNK	   117#	   512	   844#
MONCTL	   565#	   969	  1291	  1472	  1575	  1602	  1621	  2063	  2227	  2228	  2253	  2269	  2469	  2862
	  3314
MONFLG	   564#	   970
MONTEN	   566#	   971	  1898
MONTYP	   779#	   910	   915	   922	   924	  1494	  1586	  1637	  1639	  1674	  1900	  2232	  2471	  2495
	  2543	  2573	  2575	  2595	  2597	  2852	  2889	  3308	  3310	  3318	  3320	  3366	  3388	  3426
MPVU	   424#	  1678	  1830
MUOERR	   865#
NOEXEC	   862#	   977
NOPNT	    86#	  1287	  2884	  3266
NXMU	   425#	  1678	  1832
OF%WR	  3400
OPRSEL	   100#
OPTIME	   667#
P	   143	   144	   145	   146	   357#	   587	   936	   938	   939	  1020	  1022	  1025	  1030	  1039
	  1057	  1088	  1089	  1090	  1093	  1214	  1224	  1269	  1532	  1598	  1746	  1748	  1750	  1755
	  1793	  1794	  1796	  1863	  1891	  2040	  2431	  2432	  2433	  2434	  2510	  2604	  2649	  2724
	  2813
PAG	   444#
PALERS	    92#	  1278
PARCLR	   470#
PARDIS	   471#
PAREA1	    48#	   543
PAREA2	    49#	   544
PAREA3	    50#	   541
PAREA4	    51#	   542
PAREA5	    52#	   554
PAREA6	    53#	   555
PAREA7	   554#
PAREA8	   555#
PARENB	   472#
PARU	   426#	  1678	  1826
PASCNT	   569#	   884	  1294	  1297	  1876	  1887
PATCH	  3804#
PC2	  1697	  1700#	  1777
PDISF	   664#	  2838#	  2838	  2921#	  2921	  2924
PDLINT	  1712	  1775#
PDLOVU	   423#	  1678	  1828
PERIOD	   694#
PFSTRT	   521#
PGINGO	   945#
PGMEND	    31#	  3811
PGMNAM	   546	   890#
PICHN1	   490#
PICHN2	   491#
PICHN3	   492#
PICHN4	   493#
PICHN5	   494#
PICHN6	   495#
PICHN7	   496#
PICHNA	   497#
PICLR	   473#                                                                                                            SEQ 0353
PIOFF	   477#
PION	   478#	   484#
PLERR	   863#	  1086
PLERR1	   864#	  1091
PLIST	   733#	   733	   936	  1026	  1089	  1090	  1751	  1794
PLISTE	   733	   735#	  1028	  1090	  1753
PLISTS	   734#
PLUS	   699#
PNTENB	   663#	  2845	  2881#	  2881	  3259
PNTEXT	   542#	  3381
PNTFLG	   662#	  2842#	  2842	  2873	  2879	  2914
PNTINH	   665#	  2840#	  2840
PNTLPT	    87#	  2248	  2600	  2610	  3302
PNTNAM	   541#	  3383
PNTSPC	   666#	  2843#	  2843	  3156	  3170
POWER	  1522	  1523	  1534	  1555	  1556	  3801#
PSHERR	   934	  1667#
PVPAGI	   760#	  2024
PWFCLR	   469#
QUEST	   705#
RADIX	   708#	  3221
RADLSC	   710#	  3217
RADLSP	   709#	  3236
RANDBS	   543#
RD%BRK	  2559
RD%TOP	  2559
REENTR	   523#	  2860
REINIT	   839	   854#
RELIAB	    94#
REPT	   358#	  1211	  1275	  1284
REPT1	   359#	  1212	  1276	  1285
REPTU	   621#	  1236#	  1236
REQSET	   474#
RESRT1	   598#
RESRT2	   599#
RETURN	   530#	   878	   974	   990	   997	  1899
RSTART	    83#
RTP	   703#
RUNFLG	   570#
SADR1	    36#	   519
SADR10	    45#	   535
SADR11	    46#	   536
SADR2	    37#	   521
SADR3	    38#	   523
SADR4	    39#
SADR5	    40#	   584
SADR6	    41#	   585
SADR7	    42#	   532
SADR8	    43#	   533
SADR9	    44#	   534
SBINIT	   156	   529#
SCOPE	   622#	   954	  1220	  1221	  1260	  1459	  1878
SFSTRT	   519#                                                                                                            SEQ 0354
SIXASC	  3394	  3444#
SIXSTR	  3450	  3455	  3462#
SLASH	   706#
SM10	   810#	  1485	  1507	  1643
SPACE	   695#
SRTDDT	   525#
START	    34	   513	   853#	  3813
START1	   532#
START2	   533#
START3	   534#
START4	   535#
START5	   536#
STARTA	   528	   888#
SUBINI	   845	   855#
SUBLNK	   118#	   529	   845#
SUBRTN	   858#
SUBVER	   859#	  1631	  1634
SWPTAB	   816#	  2339
SWTAB	  2333	  2373#
SWTEXR	   544#
SYSEXR	   517#
T20ERR	  2563	  3402	  3409	  3431	  3436#
TAB	   696#
TABLE0	  1061	  1064#
TESTPC	   571#
TICKS	   574#
TOTALS	    84#
TT%DAM	  2856
TT%OSP	  2898
TTNBRF	   754#	  2683	  2703
TTYFIL	   670#	  2846
TTYSPD	   671#
TXTINH	    95#	  1311	  1407	  1422
USER	   561#	   906
USERF	   370#	   908	   966
USRASB	    32#	   551
USRCRF	   680#	  3273#	  3273	  3281
USRLFF	   679#	  3271#	  3271	  3286
UUODIS	   633#	  1051
UUOEXT	   589#
UUORTN	   590#	  1045
UUOSKP	   587#
XOFFLA	  2841#	  2841
$$INT	  1777#	  1783	  1787	  1791
$$MUUO	   785#
$$OUTE	   791#	  3522	  3523
$$PAC0	   905	   956#	   956
$$SNX	  1503#	  1503	  1653	  1656
$$TAX1	   803#	  1761	  1762	  2533	  2534
$$TAX2	   804#	  1764	  1765	  2536	  2537
$$TO5A	  3341#	  3341	  3349
$$TOGG	   797#	  2220	  2255	  2267
$$TOU5	  3311	  3336#                                                                                                    SEQ 0355
$$TOU6	  3337	  3360#
$$UUO	   774#	  1018	  1019
$ACC0	   612#	  1775	  1781	  1785	  1789	  1822	  1844	  1866
$ACMP5	  1934#	  1934	  1947
$ACMP6	  1935#	  1935	  1948
$ACMP7	  1936#	  1936	  1949
$ACMP8	  1937#	  1937	  1950
$ACMP9	  1938#	  1938	  1951
$ASCP1	  3191#	  3202
$ASCP2	  3194#	  3198
$ASCPN	  2935	  2954	  3190#
$BEND1	   582#
$BEND2	   583#	  1476	  1583	  1606	  1612
$CARCT	  2594	  3253#	  3253	  3260	  3263	  3305
$CFLUS	  1141	  1175#
$CGAC0	  1745#	  1745	  1768
$CHRIN	   673#	  2591#	  2591	  2603	  2612
$CHRPN	  2962	  3179#
$CINVA	  1140	  1176#
$CLOCK	  1145	  1177#
$CNVD	  2682#	  2682	  2753	  2762
$CNVX	  2694	  2751#
$CNVX1	  2715	  2760#
$CNVX2	  2763	  2772#
$CPINI	  1494#	  1516
$CPKAI	  1491	  1510#
$CPKL	  1488#
$CPUTP	   945	  1484#
$CRLF	   675#	  2847#	  2847
$CWRTB	  1141	  1178#
$DCCMP	  3221#
$DCSPS	  3235#
$DDTEN	   932	  1609#	  2608
$DECP1	  3227#	  3233	  3235
$DECPN	  2956	  3210#
$DECSP	  2958	  3208#
$DEVCH	   437#	  3476	  3482	  3486	  3487	  3490	  3502	  3510	  3511	  3515
$DRP10	  3427	  3510#
$DRPDV	  1124	  3424#
$DSKUP	   552#
$DVCH1	   438#
$DVOFF	   669#	  2837#	  2837	  3328	  3403	  3424	  3433	  3489	  3516
$DVTTY	  3470#	  3470	  3493
$ECK	   968#
$EG177	  1108	  1158#
$EG4	  1110	  1149#
$EGX	  1154	  1156	  1161	  1164	  1167	  1169#	  1173
$EGX1	  1151	  1172#
$EMODE	   550#	   975
$END	  1145	  1876#
$END1	  1884#
$END2	  1882	  1886#
$END3	  1884	  1891#                                                                                                    SEQ 0356
$EOP	  1147	  1898#
$ERH0	  1568	  1570#	  1570	  1589	  1591
$ERHL1	  1578#
$ERHL3	  1582#
$ERHL4	  1576	  1580	  1585#
$ERHLT	  1146	  1448	  1566#
$FATAL	  1146	  1596#
$FATL1	  1603	  1608#
$FFF	   677#	  2849
$FRD36	  1143	  1547#
$FRD8	  1144	  1545#
$FREAD	  1143	  1549#
$FSEL1	  1526	  1539#
$FSEL2	  1529	  1533#	  1540	  1559	  1560
$FSELE	  1142	  1520#
$FSELF	  1521#	  1521	  1531	  1551
$HEAR	  2508	  2543#	  2568
$HEAR2	  2601	  2603#	  2611	  2614
$HEAR3	  2593	  2607#
$HEAR4	  2475	  2488	  2503	  2546	  2552	  2585#
$IBUF	   725#
$IIN	  1782	  1803#
$IMR	  1786	  1811#
$IMW	  1790	  1814#
$INEXT	   727#
$INNM	   726#
$INT10	  3389	  3481#
$INT11	  3486#	  3506
$INT12	  3403#	  3494
$INT13	  3485	  3495#
$INT21	  3393#	  3420
$INT22	  3398	  3408#
$INTD3	  3387#	  3387	  3408	  3419
$INTDF	  2836#	  2836	  3495	  3501
$INTDV	  3329	  3381#
$ITR1A	  1801	  1809	  1812	  1815	  1836	  1839	  1842	  1847	  1853#
$ITR1B	  1857#
$ITRHL	   593#
$ITRIN	   950	  1674#
$ITRX1	   594#	  1867
$LDSPS	  3224	  3232#
$MDEND	  2178	  3538#
$MDLST	  2178	  3537#	  3538
$MDSR1	  2186#	  2190
$MDSR2	  2181	  2187#
$MDSRC	  2129	  2132	  2176#
$MDVCN	  2125#	  2125	  2131	  2149	  2207
$MDVCO	  2120#	  2120	  2128	  2151	  2206
$MEMMP	   952	  1140	  1916#
$MMAP	   553#	   951
$MNCON	  1939#	  1939
$MODCK	   856	   965#
$MODD0	  2106#                                                                                                            SEQ 0357
$MODD1	  2113#	  2137	  2139
$MODD2	  2118	  2123	  2159#
$MODD3	  2117#	  2193
$MODD4	  2122#
$MODD5	  2127#
$MODD6	  2130#
$MODD7	  2135#
$MODD8	  2138	  2145#	  2212
$MODD9	  2162#
$MODDB	  2106#	  2106	  2197	  2208
$MODDC	  2107#	  2107	  2196	  2209
$MODDD	  2108#	  2108	  2195	  2210
$MODDP	  1125	  2204#
$MODDV	  1125	  2102#
$MODDX	  2115	  2195#	  2213
$MODER	  2163	  2166	  2168	  2192#
$MODVL	   548#	  2145	  2148
$MODVU	   549#	  2146
$MPAC0	  2018#	  2018	  2041
$MPAD2	  2027	  2031	  2048#
$MPAD3	  2021	  2041#	  2045
$MPAD4	  2035	  2044#
$MPAD5	  2036#	  2046
$MPAD6	  2033#
$MPAD7	  2040#	  2054	  2057
$MPADL	  2029	  2056#
$MPADR	  1127	  2018#
$MPCNK	  1128	  1179#
$MPSET	  1128	  1180#
$MPVU	  1831	  1838#
$MSEG	  1126	  1934#
$MSEG3	  1946#	  1957	  1963	  1965	  1973	  1978	  1980	  1987
$MSEGP	  1959#
$MSKA	  1942	  1975#
$MSKAP	  1944	  1956#
$MTROP	  1142	  1181#
$MZRO	  1127	  1993#
$MZRO2	  1996#
$MZRO3	  2001#	  2008
$MZROB	  1993#	  1993	  2011
$MZROC	  1994#	  1994	  2010
$MZROX	  1999	  2002	  2010#
$NEGF	  2681#	  2681	  2721	  2748
$NEGX	  2692	  2746#
$NOU20	   985	   991#
$NOUSR	   981#
$NOYES	  1132	  2624#
$NXMU	  1833	  1841#
$OBUF	   716#	  3472	  3474	  3484	  3504
$OERR1	  3505	  3527#
$OERR2	  3488	  3531#
$ONETM	   576#	   883	   953	  2066	  2864
$OPTLK	  1131	  2278	  2284	  2407	  2422	  2507#	  2633	  2641	  2689	  2793                                     SEQ 0358
$OUTER	  3519#	  3529	  3533
$OUTEX	   718#	  3382
$OUTNM	   717#	  3384	  3393	  3481	  3487
$PACA1	  2909	  2925	  2941#	  2941
$PACA2	  2910	  2926	  2942#	  2942
$PACA3	  2911	  2927	  2943#	  2943
$PACA4	  2912	  2928	  2944#	  2944
$PACA5	  2913	  2929	  2945#	  2945
$PACB0	  3245#	  3245	  3294
$PACC4	  3300#	  3300	  3312	  3332
$PACF1	  3385#	  3385	  3405
$PACF2	  3386#	  3386	  3404
$PAPER	    56#	   350
$PARER	   600#	  1845
$PAREX	  1827	  1844#
$PCLRO	  1172	  2876	  2889#
$PDOVP	  1088#	  1088	  1095	  1793#	  1793	  1798
$PDOVU	  1776	  1793#	  1829
$PGMIN	   855	   905#
$PGMN1	   920#
$PMAP	  1129	  1921	  2062#
$PMAP1	  2065	  2068#
$PMAP3	  2064	  2066#
$PMAP4	  2086	  2089#
$PMAP6	  2094	  2097#
$PMAP7	  2087#
$PMAPL	  2068	  2075#
$PNAME	   546#	   989	   995	  1623
$PNM2	  1622	  1654	  1659#
$PNM3	  1645	  1647	  1650	  1653#
$PNT	  2947#	  2947	  3160#	  3160	  3164	  3169	  3188#	  3188	  3200	  3208	  3232
$PNTB1	  2924#
$PNTC2	  3107	  3122#
$PNTC3	  3118#	  3134
$PNTCF	  1123	  3136#	  3138
$PNTCW	  1123	  3102#	  3139	  3141
$PNTI1	  2964	  3147#	  3171
$PNTI2	  3151#	  3154	  3165
$PNTI3	  2960	  3167#
$PNTI4	  2907#	  3161	  3172	  3182	  3196	  3201	  3215
$PNTIA	  2877	  2885	  2941#
$PNTIB	  2882	  2920#
$PNTIC	  2952#
$PNTIF	  1106	  2873#
$PNTIN	   947	  2836#
$PNTIT	  1104	  2879#
$PNTIX	  2853	  2860#
$PNTLN	  2953	  3188#
$PNTMG	  1129	  1182#	  1431
$PNTNM	  1124	  1621#	  2249	  2866
$PNTSV	  3155#	  3155	  3162
$PNTSX	  1122	  2974#
$PNTTY	  2874#	  2874	  2880	  2907	  2930	  3264	  3331                                                             SEQ 0359
$PNTYC	  3246#	  3246
$POCS	  1138	  3056#
$POCS1	  3064	  3071#
$POCS2	  3076#	  3085
$POCS3	  3073	  3080#	  3094
$POCS4	  3085#	  3093
$POCS5	  3078	  3093#
$POCSF	  1138	  3052#
$POINT	  3190#	  3190	  3192	  3199
$PRNTX	  2887	  2914#	  2922
$PSHER	   604#	   935	   937	  1092	  1795
$PSIX	  1137	  3008#
$PSIX1	  3017#	  3033
$PSIX2	  3020#	  3032
$PSIX3	  3032#	  3038
$PSIX4	  3025	  3035#
$PSIX5	  3023	  3040#
$PSIXF	  1137	  3004#
$PTCA	  3102#	  3102	  3119	  3136
$PTCB	  3104#	  3104	  3118
$PTINH	  2839#	  2839	  2875	  3255	  3258
$PTSXF	  1122	  2987#
$PUT10	  3367	  3470#
$PUTCR	  3330	  3366#
$PVER	   547#
$RADIX	  3214	  3217#	  3225
$REINI	   854	   883#
$RSRTX	   596#
$RSRTY	   597#
$SBSRT	   853	   875#
$SPAG1	   616#
$START	   513#	   976	   980
$SUBUO	  1038	  1060#
$SVAPR	   614#
$SVCSW	   929#	   929	  2320	  2326
$SVPAG	   615#
$SVPI	   613#
$SVUPC	   619#	  1041
$SVUUO	   618#	  1043	  1047
$SW	  2283#	  2283	  2286	  2304#	  2304	  2309
$SW0	  1763	  2244	  2266#	  2535
$SW1	  2277#	  2279	  2285	  2297	  2327
$SW10	  2270	  2323#
$SW11	  2272	  2326#
$SW12	  2273#	  2329
$SW13	  2303	  2331#
$SW14	  2308	  2337#
$SW2	  2292	  2301#	  2332
$SW3	  2306#	  2335	  2338	  2340
$SW4	  2299	  2310#	  2321	  2324	  2342
$SW5	  2311#
$SW6	  2288	  2298#
$SW7	  2294	  2315#                                                                                                    SEQ 0360
$SW8	  2312#	  2316	  2319
$SW9	  2268	  2290	  2318#
$SWCH1	  2227#	  2236
$SWERR	  2281	  2296#
$SWFLG	   931#	   931	  2222	  2246
$SWIN1	  2245#
$SWONC	  2243#	  2243	  2245	  2271	  2318
$SWTCH	  1126	  1218	  1268	  1432	  1578	  1604	  1880	  2102	  2220#	  2247	  2883
$SWTIN	   949	  2242#
$SWU1	  2223	  2225	  2235#
$SWU2	  2221	  2237#
$SWUSR	  2226	  2231#
$SWXX	  2334	  2341	  2345#
$SWXX1	  2354#	  2359	  2365	  2404
$SWXX2	  2355	  2364#
$SWXX3	  2360	  2366#
$SWXX4	  2361	  2398#
$SWYYY	  2421#	  2421	  2424
$SWZZ	  2358	  2406#
$SWZZ1	  2410	  2434#
$SWZZ2	  2412	  2433#
$SWZZ3	  2426	  2432#
$SWZZ4	  2414	  2428	  2431#
$TABF	   676#	  2848
$TACB4	  2507#	  2507	  2513
$TACC1	  2627#	  2627	  2652
$TACC2	  2628#	  2628	  2650
$TACD1	  2675#	  2675	  2723	  2730
$TACD2	  2676#	  2676	  2719	  2729
$TACD3	  2677#	  2677	  2718	  2728
$TALT1	  2525	  2529#
$TALT2	  2523#
$TALTM	  1134	  1436	  2520#
$TISIX	  1135	  2788#
$TOUB1	  3257	  3262#
$TOUB2	  3265	  3269#
$TOUB3	  3271#
$TOUT	  3153	  3159	  3181	  3197	  3212	  3229	  3237	  3245#
$TOUT2	  3269	  3289	  3300#
$TOUT3	  3303	  3328#
$TOUT4	  3307	  3314#
$TOUT5	  3308#	  3315	  3323
$TOUT6	  3305#	  3333
$TOUTA	  3275	  3280	  3285	  3287	  3294#
$TOUTB	  3252#
$TPCK	  2700	  2737#
$TPCLR	  1136	  2296	  2570#	  2656
$TPCNV	  1133	  2669#
$TPCV1	  2670	  2672	  2675#
$TPDEC	  1133	  2671#
$TPERR	  2690	  2701	  2713	  2727#	  2747	  2752	  2765
$TPEX1	  2718#	  2770	  2779
$TPEXT	  2696	  2698	  2712#                                                                                            SEQ 0361
$TPMUL	  2705	  2740#
$TPNBR	  2712	  2743#
$TPOCT	  1132	  2159	  2302	  2307	  2673#
$TSX1	  2788#	  2788	  2816
$TSX2	  2789#	  2789	  2817
$TSXB1	  2793#	  2811
$TSXB2	  2796	  2798	  2813#
$TSXB3	  2794	  2801	  2805	  2809	  2815#
$TSXB4	  2804	  2807#
$TTCHR	   672#	  2473	  2485	  2501	  2545	  2551	  2585
$TTLK	  1134	  2468#	  2520
$TTYIN	  1135	  2495#
$TTYSP	   860#
$TWCNT	   668#	  2512
$TYPIN	   948	  2460#
$TYPL1	  2703#
$TYPLP	  2689#	  2708	  2749	  2754
$TYPNB	   674#	  2680#	  2680	  2727
$UCK	   967	   979#
$UMODE	   551#	   979
$UMPV	  1831#
$UNXM	  1833#
$UOERX	  1006	  1073#	  1136	  1144	  1147	  1209
$UOPLE	  1021	  1023	  1027	  1029	  1032	  1034	  1085#
$UORTN	  1004	  1018#
$UORTX	   591#	  1082
$UOTAB	  1118	  1121#
$UPAR	  1827#
$UPDL	  1829#
$UPLER	  1008#	  1008	  1085	  1087
$USRF1	  3282	  3287#	  3290
$USRFC	  3274	  3279#
$USRFL	  3272	  3284#
$USRHL	   595#
$USRUO	  1039#
$USWTF	  2224	  2242#	  2242	  2311	  2315
$UUO37	  1067	  1103#
$UUOER	   592#	   633	  1007
$UUOIN	   946	  1004#
$VTF	   678#	  2850
$XUUO	  1052#	  1119
$YESNO	  1131	  2114	  2136	  2626#
$YN1	  2631#	  2657
$YN2	  2634	  2642	  2650#
$YN3	  2638	  2648	  2655#
$YN4	  2644	  2646	  2659#
%AC0	  1244#	  1244	  1250	  1424	  1426	  1427	  1477
%AC1	  1245#	  1245	  1251	  1353	  1377
%AC2	  1246#	  1246	  1252	  1355	  1379
%AC3	  1247#	  1247	  1253	  1357	  1381
%ACTFL	   625#	  1266#	  1266	  1373
%ACTUL	   626#	  1391#	  1391	  1397
%COREC	   624#	  1367#	  1367	  1396                                                                                     SEQ 0362
%CORFL	   623#	  1265#	  1265	  1349
%DISCR	   627#	  1329#	  1329	  1347	  1371	  1394	  1401
%EACR	  1250#	  1305	  1447
%EACR1	  1251#	  1418	  1471
%EACS	  1244#	  1264	  1430
%ERCNT	  1290#	  1290	  1460
%ERFLG	  1198#	  1198	  1210	  1273
%ERFST	  1450#	  1450	  1452
%ERHI1	   766#	  1262	  1263
%ERHI2	   767#	  1478	  1479
%ERHI3	   768#	  1306	  1307
%ERIN1	  1366	  1390	  1400	  3793#	  3795
%ERIN2	  1343	  3794#
%ERLP	  1065	  1198#
%ERLP0	  1207	  1210#
%ERLP1	  1205	  1214#
%ERLP2	  1203	  1218#
%ERMOR	  1420	  1423	  1427#
%ERP2A	  1351	  1359#
%ERP2B	  1334#
%ERP3A	  1375	  1383#
%ERPNT	  1272	  1277	  1284#
%ERPR1	  1315	  1321#
%ERPR2	  1312	  1325	  1329#
%ERPR3	  1348	  1368#
%ERPR4	  1372	  1393#
%ERPR5	  1395	  1406#
%ERPR6	  1408	  1412	  1416#
%ERPRA	  1292	  1450#
%ERPRB	  1294#	  1453
%ERS1A	  1447#
%ERSW1	  1279	  1288	  1436#
%ERSW2	  1443	  1458#
%ERSW3	  1465#
%ERUUO	  1066	  1258#
%ERX	  1223#	  1237
%ERX1	  1213	  1217	  1222	  1227#	  1238
%ERXTR	  1419#	  1419	  1425
%EXCAL	  1471#
%EXCL1	  1473	  1477#
%LUUO	  1259#	  1259	  1334
%REPT	  1064	  1236#
%RP	  1211	  1275	  1284#	  1284
%RP1	  1212	  1276	  1285#	  1285
.FHSLF	  1682	  3437
.ICILI	  1686
.ICIRD	  1686
.ICIWR	  1686
.ICPOV	  1686
.JB41	   405#
.JBAPR	   413#
.JBCNI	   414#
.JBDDT	   407#                                                                                                            SEQ 0363
.JBFF	   411#
.JBOPC	   416#
.JBREL	   406#
.JBREN	   412#
.JBSA	   410#
.JBSYM	   408#
.JBTPC	   415#
.JBUSY	   409#
.JBUUO	   404#
.JBVER	   417#
.PRIIN	  2478	  2572
.PRIOU	  2854	  2896	  3342	  3351	  3436
.TICCG	  1688

AIC	  1687
APRENB	  1679                                                                                                             SEQ 0364
ATI	  1689
BOUT	  3372
CFIBF	  2576
CFLUSH	   268#
CINVAL	   267#
CLOKOP	   262#
CLOSF	  3430
CLRBFI	  2574
CWRTBI	   269#
DEBRK	  1766	  1769	  1779
DEVCHR	  3491
DROPDV	   229#	  3304
EIR	  1685
ENDUUO	   275#	   581
EOPUUO	   276#	   583
ERJMP	  3398
ERLOOP	   320#
ERLP1	   321#
ERLP2	   322#
ERRHLT	   163#
ERROR	   329#
ERROR1	   340#
ERSTR	  3439
ERUUO	   319#
EXIT	  1588	  1901	  3524
FATAL	   162#	  1083	  1097	  1340	  1552	  1554	  1668	  1868	  1941	  1984
FRD36	   304#
FRD8	   305#
FREAD	   303#
FSELEC	   302#
GET	   146#	  1044	  1056	  1072	  1075	  1078	  1169	  1208	  1223	  1227	  1261	  1524	  1536	  1557
	  1568	  1582	  1585	  1613	  1855	  2312	  2368	  2369	  2370	  2481	  2482	  2486	  2487	  2502
	  2565	  2566	  2567	  2577	  2886	  2900	  2901	  2920	  2946	  2981	  2994	  3040	  3041	  3042
	  3043	  3044	  3086	  3087	  3088	  3089	  3090	  3322	  3352	  3353	  3355	  3356	  3357	  3373
	  3374	  3432	  3457	  3458	  3459
GETTAB	   912	   982	  1501
GO	   143#	   945	   946	   947	   948	   949	   950	   952	  1004	  1172	  1218	  1264	  1268	  1305
	  1418	  1425	  1430	  1431	  1432	  1436	  1447	  1471	  1528	  1558	  1578	  1604	  1763	  1880
	  2102	  2114	  2136	  2138	  2159	  2212	  2244	  2247	  2249	  2278	  2284	  2296	  2302	  2307
	  2334	  2341	  2358	  2407	  2422	  2503	  2508	  2520	  2535	  2633	  2641	  2656	  2689	  2793
	  2876	  2883	  3214	  3225	  3311	  3329	  3330	  3394	  3450	  3455
GTJFN	  3397
HALT	   148#	   602	   862	   863	   864	   865	   866	   867	   868	   869	   870	   909	   977	  1086
	  1091
HALTF	  1590	  1902	  3440	  3441	  3442
INCHRS	  2473
INCHRW	  2497	  2596
INCHWL	  2545
JEN	   150#
JRSTF	   149#
MAPADR	   285#
MAPCNK	   286#
MAPMEM	   282#                                                                                                            SEQ 0365
MAPPNT	   288#
MAPSET	   287#
MEMSEG	   284#
MEMZRO	   283#
MODPCP	   295#
MODPCU	   294#
MTROP	   263#
NAME	     9#	    12
OPENF	  3401
OUTCHR	  3309	  3319
OUTSTR	   986	   989	  3496	  3512	  3519	  3527	  3531
PBELL	   238#	  1466
PBIN	  2484	  2500
PBOUT	  3321	  3350	  3360
PCRL	   232#	  1081	  1413	  1416	  1659	  1865	  2072	  2095	  2602	  3037
PCRL2	   236#
PCRL2F	   237#
PCRLF	   233#	  1573	  1601	  1890	  2133	  2260	  2352	  2366	  2655	  3035
PFORCE	   240#	  1150	  1289	  1854
PGMINT	   156#	   880
PJRST	   147#
PMSG	   242#	  1074	  1296	  1299	  1302	  1624	  1630	  1638	  1640	  1644	  1646	  1649	  1651	  1655
	  1797	  1803	  1859	  2070
PMSGF	   245#	  1094	  1567	  1597	  1667	  1886	  2113	  2117	  2122	  2127	  2130	  2135	  2192	  2257
	  2273	  2277	  2301	  2306	  2631
PNT1	   198#
PNT11	   212#
PNT11F	   213#
PNT1F	   199#
PNT2	   200#
PNT2F	   201#
PNT3	   202#
PNT3F	   203#	  2184
PNT4	   204#
PNT4F	   205#
PNT5	   206#	  3112
PNT5F	   207#	  3110
PNT6	   208#	  1301	  1864	  3125	  3133
PNT6F	   209#	  1572	  1600	  3123	  3131
PNT7	   210#
PNT7F	   211#
PNTA	   184#	  1342
PNTADF	   215#	  3115
PNTADR	   214#	  2077	  2079	  3117
PNTAF	   185#
PNTAL	   186#	  1168
PNTALF	   187#	  1166
PNTCHF	   197#	  1153	  2992	  3029	  3066	  3081	  3127
PNTCHR	   196#	  1155	  2613	  2979	  3031	  3068	  3083	  3129
PNTCI	   194#	  1627	  1633	  2080
PNTCIF	   195#	  1889	  2357
PNTCW	   230#
PNTCWF	   231#                                                                                                            SEQ 0366
PNTDCF	   223#	  1888
PNTDEC	   222#	  1298	  1657	  2087
PNTDS	   224#
PNTDSF	   225#
PNTHW	   218#	  1076	  1080	  1304	  1799	  1807	  1861
PNTHWF	   219#	  1096	  2259	  2275
PNTMGN	   309#
PNTMSF	   191#	  2406
PNTMSG	   190#	  1623
PNTNM	   226#	  1451	  1566	  1596
PNTOCF	   221#
PNTOCS	   220#	  1626	  1629	  1632	  1635
PNTOCT	   216#
PNTOTF	   217#
PNTSIX	   227#
PNTSXF	   228#	  2189	  2356
PSIXL	   188#	  1163	  1316	  1318	  1326	  1328	  1364	  1388	  1398	  1415	  1858
PSIXLF	   189#	  1160
PSIXM	   192#	  1074	  1296	  1299	  1302	  1624	  1630	  1638	  1640	  1644	  1646	  1649	  1651	  1655
	  1797	  1803	  1859	  2070
PSIXMF	   193#	  1094	  1567	  1597	  1667	  1886	  2113	  2117	  2122	  2127	  2130	  2135	  2192	  2257
	  2273	  2277	  2301	  2306	  2632
PSOUT	   994	   996	  3415
PSP	   234#	  1077	  1862
PSPF	   235#
PUT	   145#	  1024	  1046	  1049	  1073	  1111	  1520	  1533	  1550	  1569	  1609	  1853	  2266	  2345
	  2346	  2347	  2476	  2477	  2499	  2554	  2555	  2556	  2570	  2894	  2895	  2974	  2987	  3004
	  3008	  3010	  3011	  3012	  3013	  3052	  3056	  3058	  3059	  3060	  3061	  3316	  3338	  3339
	  3340	  3344	  3345	  3368	  3369	  3428	  3444	  3445	  3446
RDTTY	  2562
REPTUO	   323#
RESET	   925
RFCOC	  3343
RFMOD	  2855	  2897
RTN	   144#	   589	  1009	  1058	  1170	  1183	  1228	  1248	  1254	  1480	  1505	  1508	  1537	  1660
	  1680	  1690	  1885	  1892	  1952	  2012	  2042	  2097	  2104	  2154	  2198	  2230	  2238	  2252
	  2254	  2261	  2313	  2371	  2408	  2419	  2423	  2429	  2435	  2461	  2470	  2474	  2483	  2505
	  2514	  2521	  2532	  2538	  2578	  2605	  2653	  2725	  2731	  2818	  2863	  2865	  2893	  2903
	  2915	  2982	  2995	  3045	  3091	  3120	  3230	  3358	  3361	  3375	  3406	  3425	  3434	  3460
	  3467	  3475	  3517
S	    64	    74#	    76	    80	   109	   111	   120	   123	   138	   139	   141	   152	   154	   158
	   160	   165	   169	   315	   317	   353	   355	   361	   363	   375	   377	   382	   384	   400
	   402	   419	   421	   431	   435	   440	   442	   447	   449	   456	   458	   465	   467	   480
	   482	   486	   488	   504	   510	   537	   539	   557	   559	   577	   579	   608	   610	   628
	   630	   648	   650	   658	   660	   681	   686	   712	   714	   721	   723	   729	   731	   737
	   739	   743	   745	   750	   752	   756	   758	   762	   764	   770	   772	   775	   777	   781
	   783	   787	   789	   793	   795	   799	   801	   806	   808	   812	   814	   818	   820	   822
	   824	   830	   832	   849	   851	   871	   873	   901	   903	   916	   918	   941	   943	   957
	   963	  1000	  1002	  1011	  1016	  1068	  1070	  1099	  1101	  1186	  1196	  1230	  1234	  1240
	  1242	  1256	  1282	  1332	  1362	  1386	  1404	  1435	  1445	  1456	  1463	  1469	  1482	  1518
	  1543	  1564	  1594	  1619	  1665	  1670	  1672	  1693	  1743	  1772	  1819	  1851	  1874	  1896
	  1906	  1914	  1923	  1932	  1954	  1988	  1991	  2013	  2016	  2059	  2100	  2111	  2143	  2157
	  2174	  2202	  2215	  2218	  2240	  2264	  2440	  2456	  2459	  2463	  2466	  2489	  2493	  2516     SEQ 0367
	  2518	  2539	  2541	  2579	  2583	  2617	  2622	  2664	  2667	  2687	  2710	  2735	  2758	  2783
	  2786	  2821	  2829	  2831	  2834	  2868	  2871	  2905	  2918	  2936	  2939	  2966	  2969	  2972
	  2985	  2996	  3002	  3046	  3050	  3095	  3100	  3142	  3145	  3174	  3177	  3184	  3186	  3203
	  3206	  3241	  3243	  3248	  3250	  3277	  3293	  3296	  3298	  3326	  3364	  3376	  3379	  3422
SFCOC	  3348	  3354
SFMOD	  2858	  2899
SIBE	  2479
SIR	  1684
SIXBTZ	   251#	  1313	  1319	  1321	  1344	  1368	  1393	  1811	  1814	  1835	  1838	  1841	  1846
SWITCH	   257#
SYSGT	  1497
TTALTM	   178#
TTICHR	   171#
TTICLR	   181#
TTICNV	   176#
TTIDEC	   175#
TTINO	   173#
TTIOCT	   174#
TTIYES	   172#
TTLOOK	   177#
TTSIXB	   179#
TTYINP	   180#
$MDSXB	    60#