Google
 

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





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

	PRODUCT CODE:		AH-F079A-DD

	DIAGNOSTIC CODE:	DFQDA (SUBKL)

	PRODUCT NAME:	 	DFQDAA0 DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM
	VERSION:		0.1

	DATE RELEASED:		SEPTEMBER 1978

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)                                                       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-DFQDA.TXT (SUBKL)
						PAGE 3                                                                     SEQ 0004
1.0  ABSTRACT
     --------

     THE PDP-10 SUBROUTINES (PARAM.KLM,FIXED.KLM,STOR.KLM & SUBKL.SAV)
     PROVIDE THE BASIC SUBROUTINES AND SOURCE FILES NEEDED TO
     FACILITATE DEVELOPMENT OF DIAGNOSTIC AND UTILITY PROGRAMS FOR
     THE PDP-10 KL10 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
	SUBKL - 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-DFQDA.TXT (SUBKL)                                                       SEQ 0005
						PAGE 4

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

2.1  EQUIPMENT
     ---------

     THE PDP-10 KL10 SUBROUTINES ARE CONFIGURED TO BE ABLE TO OPERATE
     ONLY IN EXEC MODE.  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-DFQDA.TXT (SUBKL)
						PAGE 5                                                                     SEQ 0006

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


	0	-----------------------------------------
		I
		I   EXEC PAGE TABLE
		I
	1000	-----------------------------------------
		I
		I   SUBKL
		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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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:

		    EXEC MODE - KL10 - SWITCHES READ FROM DTE20 COMM
				AREA.  THESE ARE DEPOSITED INTO THE DTE20
				COMM AREA BY THE CONSOLE PROCESSOR.

	B.  PRINT INITIALIZATION - THE PRINT SUBROUTINE PROVIDES OUTPUT
	    TO THE TTY AND/OR LPT IN EXEC MODE.
	    USE OF THE TTY OR LPT DEVICE IS SPECIFIED BY THE SWITCHES.
					MAINDEC-10-DFQDA.TXT (SUBKL)
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)			RESERVED

    17	(000001)			RESERVED
					MAINDEC-10-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
							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-DFQDA.TXT (SUBKL)
							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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
(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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
						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-DFQDA.TXT (SUBKL)
	     					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
     --------------------
		HISTORY FILE FOR SUBKL                                                                                     SEQ 0039
		----------------------

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

CODE:		MAINDEC-10-SUBKL

TITLE:		DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM

VERSION:	0.1

DATE:		SEPTEMBER 1978

REASON:		ORIGINAL RELEASE OF THIS PROGRAM FOR KL-10.
		SUBRTN WAS SPLIT INTO SEPARATE VERSIONS FOR THE KL10 AND
		KA/KI TO PROVIDE ROOM IN SUBKL FOR MEMORY ERROR HANDLING.
---------------------------------------------------------------
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 1             
                                                                                                                           SEQ 0040




















				   DOCUMENT
				**************
    SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^
				**************

















		    COPYRIGHT 1978
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 2             
                                                                                                                           SEQ 0041

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


	24	*SUBKL* SPECIAL ASSEMBLY PARAMETERS

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

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

	347	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976

	385	STANDARD PROGRAM ASSIGNMENTS

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

	1169	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL

	1347	*CONTRL* UUO HANDLING SUBROUTINE

	1540	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER

	1843	*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES

	2015	PROCESSOR TYPE DETERMINATION

	2052	"DIAMON" FILE SELECTION & READ

	2096	PROGRAM HALTS

	2152	PROGRAM NAME PRINTER

	2205	*SUBRTN* INTERRUPT HANDLING ROUTINES

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

	2512	*SUBRTN* KL10 CACHE ENABLE

	2759	*SUBRTN* KL10 MEMORY INITIALIZE

	2863	*SUBRTN* MEMORY MAPPING ROUTINES

	2973	*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER

	3073	*SUBRTN* "MAPSET" SETUP KL10 PAGE MAP 

	3108	*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 3             
                                                                                                                           SEQ 0042

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


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

	3277	*SUBRTN* "MEMZRO"

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

	3347	*SUBRTN* PRINT MEMORY MAP

	3416	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE

	3534	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE

	3816	*SUBRTN* TELETYPE INPUT ROUTINES

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

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

	4159	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE

	4197	*SUBRTN* PRINT SUBROUTINES

	4598	*SUBRTN*  CHARACTER OUTPUT ROUTINES

	4712	*STOR* RESERVED STORAGE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 4             
                                                                                                                           SEQ 0043
		1	MAINDEC-10-DFQDA (SUBKL)

		17	COPYRIGHT 1978
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS.

		21	JOHN R. KIRCHOFF

		*****************************************************************
	24	*SUBKL* SPECIAL ASSEMBLY PARAMETERS
		*****************************************************************

		26	ASSEMBLY PARAMETERS

		58	A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE

		62	DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE

		77	DTE20 DEVICE CODES

		86	KL10 EPT COMMUNICATION AREA

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

		111	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

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

		144	SPECIAL SUBPROGRAM LINKAGES

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

		187	SUBROUTINE INITIALIZATION CALL

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

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

		216	TERMINAL OUTPUT UUO'S.

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 5             
                                                                                                                           SEQ 0044
		282	SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
				CONSERVES CORE OVER ASCIZ

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

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

		299	KL10 ONLY CACHE OPERATION UUO'S

		304	END OF PASS/PROGRAM UUOS

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

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

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

		334	"DIAMON" FILE SELECTION AND READ UUOS

		341	KI10 ONLY UUO FOR PRINTING MARGIN VALUES

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

		350	ERROR HANDLER PARAMETERS

		359	THE ERROR HANDLER MACROS

		361	A MACRO TO REPORT AN ERROR AND LOOP

		372	A MACRO TO REPORT AN ERROR AND NOT LOOP

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 6             
                                                                                                                           SEQ 0045
		*****************************************************************
	385	STANDARD PROGRAM ASSIGNMENTS
		*****************************************************************

		388	ACCUMULATORS

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

		410	PDP-10 STANDARD ADDRESS ASSIGNMENTS

		417	JOB DATA AREA EXTERNALS (OLD DEFINITIONS)

		435	JOB DATA AREA EXTERNALS (NEW DEFINITIONS)

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

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

		475	PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS

		482	PDP-10 STANDARD APR CONO ASSIGNMENTS

		491	PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF

		500	PDP-10 STANDARD PI CONO ASSIGNMENTS

		515	PDP-10 STANDARD PI CONI ASSIGNMENTS

		521	PDP-10 STANDARD PI CHANNEL ASSIGNMENTS

		534	KL10 CONO APR 000 ASSIGMENTS

		590	KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)

		603	KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)

		625	KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)

		635	KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)

		643	KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)

		653	KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)

		659	KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)

		666	KL10 BLKI APR 000 ASSIGMENTS

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 7             
                                                                                                                           SEQ 0046
		675	KL10 CONO PI 004 ASSIGMENTS

		698	KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)

		709	KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)

		731	KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)

		744	KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)

		750	KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)

		763	KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)

		768	KL10 CONO PAG 010 ASSIGMENTS

		779	KL10 CONI PAG 010 ASSIGMENTS

		791	KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)

		797	KL10 EXEC PAGE MAP PAGE ASSIGNMENTS

		810	KL10 USER PAGE MAP PAGE ASSIGNMENTS

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

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

		879	PROGRAM FIXED PARAMETER AREA

		899	PROGRAM VARIABLE PARAMETER AREA

		919	SPECIAL PROGRAM DISPATCH ADDRESSES

		950	PROCESSOR CONTROL STORAGE

		970	UUO DISPATCH TABLE

		990	MEMORY MANAGMENT STORAGE

		1000	PRINT CONTROL STORAGE

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

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 8             
                                                                                                                           SEQ 0047
		1054	USER MODE OUTPUT FILE INFORMATION

		1063	DISK UPDATE MODE FILE INFORMATION

		1071	PUSHDOWN LIST CONTROL INFORMATION

		1079	POWER LINE CLOCK FREQUENCY FLAG

		1085	KL10 CACHE CONTROL FLAGS

		1092	NUMBER INPUT DIGIT FLAG

		1098	KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION

		1104	ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS

		1112	SPECIAL USERS UUO INTERCEPT INSTRUCTION

		1117	USER MODE MONITOR TYPE FLAG

		1123	SPECIAL USERS MUUO INTERCEPT INSTRUCTION

		1129	SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION

		1135	"SWITCH" CALL USAGE CONTROL

		1141	SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS

		1148	SM10 (KS-10) PROCESSOR TYPE FLAG

		1154	RIGHT HALF SWITCHES PROMPT TABLE ADDRESS

		1160	SPECIAL FUTURE EXPANSION ROOM

		1164	END OF FIXED STORAGE

		*****************************************************************
	1169	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
		*****************************************************************

		1172	SPECIAL SUBPROGRAM LINKAGES

		1191	INITIALIZE THE SUBROUTINE PACKAGE

		1213	SPECIAL SUBROUTINE ONLY INITIALIZATION

		1242	CONTRL* SUBROUTINE PACKAGE INITIALIZATION

		1259	INITIALIZE PROCESSOR FLAGS AND PUSH LIST

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 9             
                                                                                                                           SEQ 0048
		1280	INITIALIZE SUBROUTINES

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

		1331	 $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
				    0 TO 112K POINTS TO ITSELF

		*****************************************************************
	1347	*CONTRL* UUO HANDLING SUBROUTINE
		*****************************************************************

		1350	UUO INITIALIZATION

		1361	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

		1418	UUO ERROR EXIT ROUTINE

		1449	MONITOR UUO ERROR EXIT ROUTINE

		1468	DECODE ROUTINE FOR SUBROUTINE UUO'S (037)

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

		1543	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

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

		1604	COMMON ERROR HANDLER AC SAVE/RESTORE

		1618	ERROR REPORTING ROUTINE

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 10            
                                                                                                                           SEQ 0049
		1644	BYPASS ERROR REPORT IF NOPNT SWITCH IS SET

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

		1724	AC1 NOW CONTAINS THE CORRECT TEST RESULTS.

		1748	AC1 CONTAINS THE ACTUAL TEST RESULTS.

		1766	PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.

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

		1806	EXECUTE HALT IF SWITCH ERSTOP SET.

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

		1824	RING TTY BELL IF DING SWITCH IS SET.

		1830	RETURN TO ERROR CALL ADDRESS+1

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

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

		1869	DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE

		1889	DTE20 COMMUNICATIONS ROUTINE

		1909	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

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

		1988	METER INTERRUPT ROUTINE

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 11            
                                                                                                                           SEQ 0050
		*****************************************************************
	2015	PROCESSOR TYPE DETERMINATION
		*****************************************************************

		*****************************************************************
	2052	"DIAMON" FILE SELECTION & READ
		*****************************************************************

		2077	"DIAMON" FILE READ

		*****************************************************************
	2096	PROGRAM HALTS
		*****************************************************************

		2098	SUBROUTINE ERROR HALT

		2126	FATAL PROGRAM ERROR HALT

		*****************************************************************
	2152	PROGRAM NAME PRINTER
		*****************************************************************

		2154	PRINT PROGRAM NAME IF NOT STAND-ALONE

		*****************************************************************
	2205	*SUBRTN* INTERRUPT HANDLING ROUTINES
		*****************************************************************

		2208	PUSH DOWN LIST EXCESSIVE POPJ ROUTINE

		2216	INTERRUPT ROUTINE INITIALIZATION
			SETUP INTERRUPT VECTORS

		2234	DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES

		2258	COMMON INTERRUPT HANDLERS

		2266	PRINT CAUSE AND OTHER PERTINENT INFO

		2297	COMMON INTERRUPT ROUTINE

		2309	RESTORE PROCESSOR ON POWER FAIL RESTART

		2336	KL10 PUSHDOWN OVERFLOW TRAP ROUTINE

		2344	KL10 PAGE FAIL TRAP ROUTINE

		2356	KL10 TRAP 3 ROUTINE

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 12            
                                                                                                                           SEQ 0051
		2364	KL10 COMMON TRAP & MMUO SETUP

		2383	KL10 INTERRUPT ROUTINE

		2429	KL10 INTERRUPT AND TRAP INITIALIZATION

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

		2470	END OF PASS ROUTINE

		2497	END OF PROGRAM ROUTINE

		*****************************************************************
	2512	*SUBRTN* KL10 CACHE ENABLE
		*****************************************************************

		2714	KL10 CACHE INVALIDATE

		2744	KL10 CACHE FLUSH

		2752	KL10 CACHE WRITE-BACK & INVALIDATE

		*****************************************************************
	2759	*SUBRTN* KL10 MEMORY INITIALIZE
		*****************************************************************

		2762	MFICE - FIND ALL MF20 MEMORY CONTROLLERS IN THE SYSTEM AND MAKES
				SURE THAT ALL IGNORE-CORRECTABLE-ERROR BITS ARE SET.
				ALSO KNOCKS SOFTWARE STATUS 3 DOWN TO 2 AND CLEARS THE
				ERROR FLAGS.

		2775		<START HERE> TOP OF CONTROLLER LOOP.  IF CONTROLLER IS MF20 THEN
				SET ITS SOFTWARE STATUS PROPERLY & THEN DO BITSUB RAM LOOP, ELSE
				JUST GO ON TO NEXT CONTROLLER.

		2792		BITSUB RAM LOOP.  READ EACH RAM LOC & CHANGE STATE OF ICE
				BIT.  IF WAS OFF THEN SET IT ELSE GO ON TO NEXT LOCATION.

		2805		CREATE THE SBDIAG FCN 0 WORD TO CLEAR THE ERROR FLAGS,
				AND THEN GO CLEAR THEM.

		2816	MREPORT - REPORT MEMORY CONTROLLERS WITH ERRORS

		2833	MEMSAV - DETERMINE MEMORY CONTROLLERS ON SYSTEM AND SAVE THE
				ERROR STATUS FROM THEM.

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 13            
                                                                                                                           SEQ 0052
		*****************************************************************
	2863	*SUBRTN* MEMORY MAPPING ROUTINES
		*****************************************************************

		2866	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 KL10
				$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

		2877	EXEC MODE MEMORY MAPPING

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

		2932	COMBINE EXISTENT CHUNKS FROM MAPCNK
			PUT POINTERS IN MEMSIZ TABLE

		*****************************************************************
	2973	*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
		*****************************************************************

		2976	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

		3004	NON-X-MEMORY SEGMENT MAPPER

		3021	RESTORE OVERALL SYSTEM STATUS AFTER MAPPING

		3035	EXISTANT MEMORY MAPPER

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

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 14            
                                                                                                                           SEQ 0053
		*****************************************************************
	3073	*SUBRTN* "MAPSET" SETUP KL10 PAGE MAP 
		*****************************************************************

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

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

		3111	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

		3138	SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE

		3180	EXIT FROM MEMSEG ROUTINE

		3200	PHYSICAL CORE ASSIGNMENT

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

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

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 15            
                                                                                                                           SEQ 0054
		*****************************************************************
	3277	*SUBRTN* "MEMZRO"
		*****************************************************************

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

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

		3324	VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
			SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KL10 PAGE INACCESSIBLE

		*****************************************************************
	3347	*SUBRTN* PRINT MEMORY MAP
		*****************************************************************

		*****************************************************************
	3416	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE
		*****************************************************************

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

		3459	CHANGE THE DEVICE CODE LIST

		3473	INPUT OLD CODE AND CHECK FOR VALIDITY

		3490	GET THE OLD/NEW CODE FROM DEVICE CODE LIST

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

		*****************************************************************
	3534	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
		*****************************************************************

		3537	INPUT CONSOLE SWITCHES IN EXEC MODE

		3555	SWITCH INITIALIZATION ROUTINE

		3580	PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES

		3643	SWITCH INITIALIZATION ROUTINE

		3721	PROMPT FOR SWITCHES

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

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 16            
                                                                                                                           SEQ 0055
		*****************************************************************
	3816	*SUBRTN* TELETYPE INPUT ROUTINES
		*****************************************************************

		3819	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

		3837	TELETYPE INPUT INITIALIZATION

		3844	CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
			RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
			NO INPUT CHECKING ON KL10

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

		3866	TELETYPE INPUT OPERATOR RESPONSE ROUTINE

		3880	TELETYPE ALT-MODE CHECK ROUTINE

		3934	TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC

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

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 17            
                                                                                                                           SEQ 0056
		*****************************************************************
	3994	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
		*****************************************************************

		3997	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

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

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

		4064	INPUT AND COMPUTE NUMBER

		4087	CHECK FOR PROPER AMOUNT OF CHARACTERS

		4112	NUMBER COMPUTING CONSTANTS

		4135	CONVERT CONVERSION ROUTINE

		*****************************************************************
	4159	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
		*****************************************************************

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

		*****************************************************************
	4197	*SUBRTN* PRINT SUBROUTINES
		*****************************************************************

		4200		$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

		4210	PRINT SUBROUTINE INITIALIZATION
			INITIALIZES CONTROL WORDS

		4239	PRINT SUBROUTINE ENTRY POINT
			EXIT VIA $PNTI4 BELOW

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 18            
                                                                                                                           SEQ 0057
		4263	PRINT ROUTINE EXIT

		4276	PRINT LIMIT WARNING & ALTERNATE EXIT PATH

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

		4326	SIXBIT PRINT SUBROUTINE
			PRINTS SIXBIT WORD IN AC0

		4330	NORMAL PRINTOUT

		4343	FORCED PRINTOUT

		4356	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

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

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

		4502	OCTAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

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

		4544	PRINTS ASCII WHOSE ADDRESS IS IN AC0

		4563	DECIMAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^   DECDOC VER  00.24   11-SEP-78 15:06:41   PAGE 19            
                                                                                                                           SEQ 0058
		*****************************************************************
	4598	*SUBRTN*  CHARACTER OUTPUT ROUTINES
		*****************************************************************

		4601	OUTPUT TERMINATION CONTROL ROUTINE

		4609	OVERALL CHARACTER OUTPUT CONTROL ROUTINE

		4631	ALT-MODE TRANSFER TO USER ROUTINE

		4643	EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE

		4665	RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT

		4670	EXEC MODE LPT OUTPUT

		4692	TELETYPE FF & VT CONVERSION

		4704	EXEC MODE CHARACTER OUTPUT

		*****************************************************************
	4712	*STOR* RESERVED STORAGE
		*****************************************************************
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 1
SUBKLT	MAC	11-Sep-78 11:38		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977                                SEQ 0059

     1					;*MAINDEC-10-DFQDA (SUBKL)
     2
     3			000001		DECVER=001
     4			000000		MCNVER=000
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^
    13
    14	000137					LOC	137
    15	000137	000000	000001		MCNVER,,DECVER
    16
    17					;*COPYRIGHT 1978
    18					;*DIGITAL EQUIPMENT CORPORATION
    19					;*MARLBORO, MASS.
    20
    21					;*JOHN R. KIRCHOFF
    22
    23						NOSYM
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2
SUBKLT	MAC	11-Sep-78 11:38		*SUBKL* SPECIAL ASSEMBLY PARAMETERS                                                SEQ 0060

    24					SUBTTL	*SUBKL* SPECIAL ASSEMBLY PARAMETERS
    25
    26					;*ASSEMBLY PARAMETERS
    27
    28			000001		KL10==1
    29			000001		KL10P0==1
    30			000001		MEMMAP==1
    31			000001		PGMEND==1
    32			000001		EXCASB==1
    33			000000		DEBUG==00
    34			001000		MODDVL==START
    35			006541		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	535400		PAREA3=SIXBIT/SUBKL/
    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>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 3
SUBKLT	MAC	11-Sep-78 11:38		*SUBKL* SPECIAL ASSEMBLY PARAMETERS                                                SEQ 0061

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

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

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

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

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

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

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

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

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

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

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

   534					;*KL10 CONO APR 000 ASSIGMENTS
   535					S^;*********************************************************************^
   536			200000		LIOCLR==200000			;CLEAR ALL I/O DEVICES
   537			100000		LFLGEN==100000			;ENABLE SELECTED FLAG
   538			040000		LFLGDS==40000			;DISABLE SELECTED FLAG
   539			020000		LFLGCL==20000			;CLEAR SELECTED FLAG
   540			010000		LFLGST==10000			;SET SELECTED FLAG
   541			004000		LSBUSE==4000			;SBUS ERROR FLAG
   542			002000		LNXMER==2000			;NON-EXISTENT MEMORY FLAG
   543			001000		LIOPFE==1000			;I/O PAGE FAIL FLAG
   544			000400		LPARER==400			;MB PARITY ERROR FLAG
   545			000200		LCADRP==200			;CACHE ADDRESS PARITY ERROR FLAG
   546			000100		LSADRP==100			;S-BUS ADDRESS PARITY ERROR FLAG
   547			000040		LPWRFL==40			;POWER FAIL FLAG
   548			000020		LCASWD==20			;CACHE SWEEP DONE FLAG
   549			000007		LAPRP7==7			;APR PI CHANNEL 7
   550			000006		LAPRP6==6			;APR PI CHANNEL 6
   551			000005		LAPRP5==5			;APR PI CHANNEL 5
   552			000004		LAPRP4==4			;APR PI CHANNEL 4
   553			000003		LAPRP3==3			;APR PI CHANNEL 3
   554			000002		LAPRP2==2			;APR PI CHANNEL 2
   555			000001		LAPRP1==1			;APR PI CHANNEL 1
   556			104000		LESBER==104000			;ENABLE SBUS ERRORS
   557			044000		LDSBER==044000			;DISABLE SBUS ERRORS
   558			024000		LCSBER==024000			;CLR SBUS ERRORS
   559			014000		LSSBER==014000			;SET SBUS ERROR
   560			102000		LENXER==102000			;ENABLE NON-EXISTENT MEMORY
   561			042000		LDNXER==042000			;DISABLE NON-EXISTENT MEORY
   562			022000		LCNXER==022000			;CLR NON-EXISTENT MEMORY
   563			012000		LSNXER==012000			;SET NON-EXISTENT MEMORY
   564			101000		LEIOPF==101000			;ENABLE I/O PAGE FAILS
   565			041000		LDIOPF==041000			;DISABLE I/O PAGE FAILS
   566			021000		LCIOPF==021000			;CLR I/O PAGE FAIL
   567			011000		LSIOPF==011000			;SET I/O PAGE FAIL
   568			100400		LEPAER==100400			;ENABLE PARITY ERRORS
   569			040400		LDPAER==040400			;DISABLE PARITY ERRORS
   570			020400		LCPAER==020400			;CLR PARITY ERROR
   571			010400		LSPAER==010400			;SET PARITY ERROR
   572			100200		LECAER==100200			;ENABLE CACHE ADR PARITY ERRORS
   573			040200		LDCAER==040200			; " DISABLE
   574			020200		LCCAER==020200			; " CLR
   575			010200		LSCAER==010200			; " SET
   576			100100		LESAER==100100			;ENABLE S-BUS ADR PARITY ERRORS
   577			040100		LDSAER==040100			; " DISABLE
   578			020100		LCSAER==020100			; " CLR
   579			010100		LSSAER==010100			; " SET
   580			100040		LEPWRF==100040			;ENABLE POWER FAIL
   581			040400		LDPWRF==040400			;DISABLE POWER FAIL
   582			020040		LCPWRF==020040			;CLR POWER FAIL
   583			010040		LSPWRF==010040			;SET POWER FAIL
   584			100020		LECASD==100020			;ENABLE CACHE SWEEP DONE
   585			040020		LDCASD==040020			;DISABLE CACHE SWEEP DONE
   586			020020		LCCASD==020020			;CLR CACHE SWEEP DONE
   587			010020		LSCASD==010020			;SET CACHE SWEEP DONE
   588			127760		LAPRAL==127760			;CLR ALL ERROR FLAGS & ENABLE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 19
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0073

   589					S^;*********************************************************************^
   590					;*KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)
   591					S^;*********************************************************************^
   592
   593			004000		LSBSEN==4000			;SBUS ERRORS ENABLED
   594			002000		LNXMEN==2000			;NON-EXISTENT MEMORY ERRORS ENABLED
   595			001000		LIOPFE==1000			;I/O PAGE FAILURES ENABLED
   596			000400		LPAREN==400			;PARITY ERRORS ENABLED
   597			000200		LCADEN==200			;CACHE ADR PARITY ERRORS ENABLED
   598			000100		LSADEN==100			;S-BUS ADR PARITY ERRORS ENABLED
   599			000040		LPWRFE==40			;POWER FAILURES ENABLED
   600			000020		LCASDE==20			;CACHE SWEEP DONE ENABLED
   601
   602					S^;*********************************************************************^
   603					;*KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
   604					S^;*********************************************************************^
   605
   606			200000		LCASWB==200000			;CACHE SWEEP BUSY
   607			004000		LSBUSE==4000			;SBUS ERROR FLAG
   608			002000		LNXMER==2000			;NON-EXISTENT MEMORY FLAG
   609			001000		LIOPFE==1000			;I/O PAGE FAIL FLAG
   610			000400		LPARER==400			;PARITY ERROR FLAG
   611			000200		LCADRP==200			;CACHE ADR PARITY ERROR FLAG
   612			000100		LSADRP==100			;S-BUS ADR PARITY ERROR FLAG
   613			000040		LPWRFL==40			;POWER FAIL FLAG
   614			000020		LCASWD==20			;CACHE SWEEP DONE FLAG
   615			000007		LAPRP7==7			;APR PI CHANNEL 7
   616			000006		LAPRP6==6			;APR PI CHANNEL 6
   617			000005		LAPRP5==5			;APR PI CHANNEL 5
   618			000004		LAPRP4==4			;APR PI CHANNEL 4
   619			000003		LAPRP3==3			;APR PI CHANNEL 3
   620			000002		LAPRP2==2			;APR PI CHANNEL 2
   621			000001		LAPRP1==1			;APR PI CHANNEL 1
   622			000010		LINT==10			;APR INTERRUPT
   623
   624					S^;*********************************************************************^
   625					;*KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
   626					S^;*********************************************************************^
   627
   628			000400		LINSTF==400			;ADDRESS BREAK REQUEST FOR INST. FETCH
   629			000200		LDATAF==200			;ADDRESS BREAK REQUEST FOR DATA FETCH
   630			000100		LWRITE==100			;ADDRESS BREAK REQUEST FOR DATA WRITE
   631			000040		LUSCMP==40			;USER ADDRESS COMPARE
   632			000000		LEXCMP==0			;EXEC ADDRESS COMPARE
   633
   634					S^;*********************************************************************^
   635					;*KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
   636					S^;*********************************************************************^
   637
   638					;DATAO APR,ADDRESS SWITCHES=13-35
   639					>
   640						XLIST
   641					IFDEF	$PAPER,<LIST>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 20
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0074

   642					S^;*********************************************************************^
   643					;*KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
   644					S^;*********************************************************************^
   645
   646			000400		LINSTF==400			;ADDRESS BREAK REQUEST FOR INST. FETCH
   647			000200		LDATAF==200			;ADDRESS BREAK REQUEST FOR DATA FETCH
   648			000100		LWRITE==100			;ADDRESS BREAK REQUEST FOR DATA WRITE
   649			000040		LUSCMP==40			;USER ADDRESS COMPARE
   650			000000		LEXCMP==0			;EXEC ADDRESS COMPARE
   651
   652					S^;*********************************************************************^
   653					;*KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
   654					S^;*********************************************************************^
   655
   656					;DATAI APR,ADDRESS SWITCHES=13-35
   657
   658					S^;*********************************************************************^
   659					;*KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
   660					S^;*********************************************************************^
   661
   662					;REFILL ALGORITHM BITS 18-20
   663					;REFILL ALGORITHM ADDRESS 27-33
   664
   665					S^;*********************************************************************^
   666					;*KL10 BLKI APR 000 ASSIGMENTS
   667					S^;*********************************************************************^
   668
   669					;MICRO-CODE OPTIONS = 0-8
   670					;MICRO-CODE VERSION NUMBER = 9-17
   671					;HARDWARE OPTIONS =18-23
   672
   673					;PROCESSOR SERIAL NUMBER = 24-35
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 22
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0075

   674					S^;*********************************************************************^
   675					;*KL10 CONO PI 004 ASSIGMENTS
   676					S^;*********************************************************************^
   677
   678			400000		LEVNPA==400000			;WRITE EVEN PARITY ADDRESS
   679			200000		LEVNPD==200000			;WRITE EVEN PARITY DATA
   680			100000		LEVNCD==100000			;WRITE EVEN CACHE DIRECTORY PARITY *P0
   681			020000		LRQCLR==20000			;DROP INTERRUPT ON SELECTED CHANNEL
   682			010000		LPICLR==10000			;CLEAR PI SYSTEM
   683			004000		LREQSE==4000			;REQUEST INTERRUPT ON SELECTED CHANNEL
   684			002000		LCHNON=2000			;TURN ON SELECTED CHANNEL
   685			001000		LCHNOF==1000			;TURN OFF SELECTED CHANNEL
   686			000400		LPIOFF==400			;TURN PI SYSTEM OFF
   687			000200		LPION==200			;TURN PI SYSTEM ON
   688			000100		LPICH1==100			;PI CHANNEL 1
   689			000040		LPICH2==40			;PI CHANNEL 2
   690			000020		LPICH3==20			;PI CHANNEL 3
   691			000010		LPICH4==10			;PI CHANNEL 4
   692			000004		LPICH5==4			;PI CHANNEL 5
   693			000002		LPICH6==2			;PI CHANNEL 6
   694			000001		LPICH7==1			;PI CHANNEL 7
   695			000177		LPICHA==177			;ALL PI CHANNELS
   696
   697					S^;*********************************************************************^
   698					;*KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)
   699					S^;*********************************************************************^
   700
   701			000100		LPRCH1==100			;PROGRAM REQUEST ON CHANNEL 1
   702			000040		LPRCH2==40			;PROGRAM REQUEST ON CHANNEL 2
   703			000020		LPRCH3==20			;PROGRAM REQUEST ON CHANNEL 3
   704			000010		LPRCH4==10			;PROGRAM REQUEST ON CHANNEL 4
   705			000004		LPRCH5==4			;PROGRAM REQUEST ON CHANNEL 5
   706			000002		LPRCH6==2			;PROGRAM REQUEST ON CHANNEL 6
   707			000001		LPRCH7==1			;PROGRAM REQUEST ON CHANNEL 7
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 23
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0076

   708					S^;*********************************************************************^
   709					;*KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
   710					S^;*********************************************************************^
   711
   712			400000		LEVNPA==400000			;WRITE EVEN PARITY ADDRESS
   713			200000		LEVNPD==200000			;WRITE EVEN PARITY DATA
   714			100000		LEVNCD==100000			;WRITE EVEN CACHE DIRECTORY PARITY *P0
   715			040000		LPIIP1==40000			;PI IN PROGRESS ON CHANNEL 1
   716			020000		LPIIP2==20000			;PI IN PROGRESS ON CHANNEL 2
   717			010000		LPIIP3==10000			;PI IN PROGRESS ON CHANNEL 3
   718			004000		LPIIP4==4000			;PI IN PROGRESS ON CHANNEL 4
   719			002000		LPIIP5==2000			;PI IN PROGRESS ON CHANNEL 5
   720			001000		LPIIP6==1000			;PI IN PROGRESS ON CHANNEL 6
   721			000400		LPIIP7==400			;PI IN PROGRESS ON CHANNEL 7
   722			000200		LPION==200			;PI SYSTEM ON
   723			000100		LPICH1==100			;PI CHANNEL 1 ON
   724			000040		LPICH2==40			;PI CHANNEL 2 ON
   725			000020		LPICH3==20			;PI CHANNEL 3 ON
   726			000010		LPICH4==10			;PI CHANNEL 4 ON
   727			000004		LPICH5==4			;PI CHANNEL 5 ON
   728			000002		LPICH6==2			;PI CHANNEL 6 ON
   729			000001		LPICH7==1			;PI CHANNEL 7 ON
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 24
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0077

   730					S^;*********************************************************************^
   731					;*KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
   732					S^;*********************************************************************^
   733
   734			400000		LLACBL==400000			;LOAD AC BLOCKS
   735			200000		LLPRCN==200000			;LOAD PREVIOUS CONTEXT SECTION
   736			100000		LLDUSB==100000			;LOAD USER BASE REGISTER
   737			000040		LCWSX==40			;
   738
   739					;CURRENT AC BLOCKS BITS 6 - 8
   740					;PREVIOUS AC BLOCKS BITS 9 - 11
   741					;PREVIOUS CONTEXT SECTION BITS 13 - 17
   742
   743					S^;*********************************************************************^
   744					;*KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
   745					S^;*********************************************************************^
   746
   747					;USER BASE REGISTER BITS 23 - 35
   748
   749					S^;*********************************************************************^
   750					;*KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
   751					S^;*********************************************************************^
   752
   753			400000		LLACBL==400000			;LOAD AC BLOCKS
   754			200000		LLPRCN==200000			;LOAD PREVIOUS CONTEXT SECTION
   755			100000		LLDUSB==100000			;LOAD USER BASE REGISTER
   756			000040		LCWSX==40			;
   757
   758					;CURRENT AC BLOCKS BITS 6 - 8
   759					;PREVIOUS AC BLOCKS BITS 9 - 11
   760					;PREVIOUS CONTEXT SECTION BITS 13 - 17
   761
   762					S^;*********************************************************************^
   763					;*KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
   764					S^;*********************************************************************^
   765
   766					;USER BASE REGISTER BITS 23 - 35
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 25
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0078

   767					S^;*********************************************************************^
   768					;*KL10 CONO PAG 010 ASSIGMENTS
   769					S^;*********************************************************************^
   770
   771			400000		LCASLO==400000			;CACHE STRATEGY LOOK
   772			200000		LCASLD==200000			;CACHE STRATEGY LOAD
   773			040000		LSMODE==40000			;SECTION MODE
   774			020000		LTRPEN==20000			;TRAP AND PAGE ENABLE
   775
   776					;EXEC BASE REGISTER = 23-35
   777
   778					S^;*********************************************************************^
   779					;*KL10 CONI PAG 010 ASSIGMENTS
   780					S^;*********************************************************************^
   781
   782
   783			400000		LCSLOO==400000			;CACHE STRATEGY LOOK
   784			200000		LCSLOA==200000			;CACHE STRATEGY LOAD
   785			040000		LSECMO==40000			;SECTION MODE
   786			020000		LTRPAE==20000			;TRAP AND PAGE ENABLE
   787
   788					;EXEC BASE REGISTER = 23-35
   789
   790					S^;*********************************************************************^
   791					;*KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
   792					S^;*********************************************************************^
   793
   794						XLIST
   795					IFDEF	$PAPER,<LIST>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 27
PARAM	KLM	 1-Aug-77 08:33		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0079

   796					S^;*********************************************************************^
   797					;*KL10 EXEC PAGE MAP PAGE ASSIGNMENTS
   798					S^;*********************************************************************^
   799
   800			000421		LAROVT==421			;ARITHMETIC TRAP
   801			000422		LPDOVT==422			;PUSHDOWN OVERFLOW TRAP
   802			000423		LTRP3T==423			;TRAP 3 TRAP
   803
   804			000510		LTBASH==510			;TIME-BASE, HI
   805			000511		LTBASL==511			;TIME-BASE, LO
   806			000512		LPRFMH==512			;PERFORMANCE ANAYLYSIS, HI
   807			000513		LPRFML==513			;PERFORMANCE ANAYLYSIS, LO
   808
   809					S^;*********************************************************************^
   810					;*KL10 USER PAGE MAP PAGE ASSIGNMENTS
   811					S^;*********************************************************************^
   812
   813			000421		LAROVT==421			;ARITHMETIC TRAP
   814			000422		LPDOVT==422			;PUSHDOWN OVERFLOW TRAP
   815			000423		LTRP3T==423			;TRAP 3 TRAP
   816
   817			000424		LMUUO==	424			;MUUO STORAGE
   818			000425		LMUUOP==425			;C(PC) OF MUUO STORAGE
   819			000426		LCNTXT==426			;PROCESS CONTEXT WORD
   820
   821			000430		LKNTRP==430			;KERNAL	 	NO TRAP - NEW PC'S-
   822			000431		LKTRP==	431			;"	 	TRAP
   823			000432		LSNTRP==432			;SUPERVISOR	NO TRAP
   824			000433		LSTRP==	433			;"		TRAP
   825			000434		LCNTRP==434			;CONCEAL 	NO TRAP
   826			000435		LCTRP==	435			;"		TRAP
   827			000436		LPNTRP==436			;PUBLIC		NO TRAP
   828			000437		LPTRP==	437			;"		TRAP
   829
   830			000500		LEUPFW==500			;EXEC & USER PAGE FAIL WORD
   831			000501		LPFWPC==501			;C(PC) OF PAGE FAIL WORD
   832			000502		LPGFTR==502			;PAGE FAIL NEW PC
   833
   834			000504		LEBXMH==504			;E-BOX CLOCK TICK METER, HI
   835			000505		LEBXML==505			;E-BOX CLOCK TICK METER, LO
   836			000506		LMBXMH==506			;M-BOX CYCLE METER, HI
   837			000507		LMBXML==507			;M-BOX CYCLE METER, LO
   838
   839					>>				;END CONDITIONAL ON KL10
   840						LIST
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 1
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0080

   841					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
   842
   843	030000					LOC	30000
   844
   845					S^;*********************************************************************^
   846					;*PROGRAM STARTING ADDRESSES
   847					;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
   848					;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
   849					;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
   850					;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
   851					S^;*********************************************************************^
   852
   853	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
   854	030001	254 00 0 00 001000 	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
   855
   856	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
   857
   858	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
   859
   860	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
   861
   862	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
   863
   864	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
   865
   866	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
   867	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
   868
   869	030010	254 00 0 00 001034 	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
   870	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
   871	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
   872
   873	030013	000000	030000		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
   874	030014	000000	030000		START2:	SADR8			; "
   875	030015	000000	030000		START3:	SADR9			; "
   876	030016	000000	030000		START4:	SADR10			; "
   877	030017	000000	030000		START5:	SADR11			; "
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0081

   878					S^;*********************************************************************^
   879					;*PROGRAM FIXED PARAMETER AREA
   880					S^;*********************************************************************^
   881
   882	030020	636542	535400		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
   883	030021	645560	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
   884	030022	123456	123456		RANDBS:	PAREA1		;RANDOM BASE NUMBER
   885	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
   886	030024	000000	000001		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
   887	030025	000000	001035		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
   888	030026	000000	000001		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
   889	030027	000000	001000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
   890	030030	000000	006541		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
   891	030031	777777	777777		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
   892	030032	000000	000000		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
   893	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
   894	030034	777777	777777		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
   895	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
   896	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
   897
   898					S^;*********************************************************************^
   899					;*PROGRAM VARIABLE PARAMETER AREA
   900					S^;*********************************************************************^
   901
   902	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
   903	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
   904	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
   905	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
   906	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
   907	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
   908	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
   909	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
   910	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
   911	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
   912	030051	000000	000000		TESTPC:	0		;SUBTEST PC
   913	030052	000000	000000		ERRPC:	0		;ERROR PC
   914	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
   915	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
   916	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
   917	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 3
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0082

   918					S^;*********************************************************************^
   919					;*SPECIAL PROGRAM DISPATCH ADDRESSES
   920					S^;*********************************************************************^
   921
   922	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
   923	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
   924	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
   925	030062	000000	030000		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
   926	030063	000000	030000		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
   927	030064				CPOPJ1:			;SKIP RETURN
   928	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
   929	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
   930	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
   931	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
   932	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
   933	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
   934	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
   935	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
   936	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
   937	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
   938	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
   939	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
   940	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
   941	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
   942	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
   943	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
   944
   945	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
   946	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
   947	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
   948
   949					S^;*********************************************************************^
   950					;*PROCESSOR CONTROL STORAGE
   951					S^;*********************************************************************^
   952
   953	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
   954	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
   955	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
   956	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
   957	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
   958
   959	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
   960	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
   961
   962	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
   963	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
   964	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
   965	030120	000000	000000		%COREC:	0		; " CORRECT DATA
   966	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
   967	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
   968	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 4
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0083

   969					S^;*********************************************************************^
   970					;*UUO DISPATCH TABLE
   971					S^;*********************************************************************^
   972						XLIST
   973						LIST
   974	030124	030070	030070		UUODIS:	LUUO1,,$UUOER
   975	030125	030070	030070			LUUO3,,LUUO2
   976	030126	030070	030070			LUUO5,,LUUO4
   977	030127	030070	030070			LUUO7,,LUUO6
   978	030130	030070	030070			LUUO11,,LUUO10
   979	030131	030070	030070			LUUO13,,LUUO12
   980	030132	030070	030070			LUUO15,,LUUO14
   981	030133	030070	030070			LUUO17,,LUUO16
   982	030134	030070	030070			LUUO21,,LUUO20
   983	030135	030070	030070			LUUO23,,LUUO22
   984	030136	030070	030070			LUUO25,,LUUO24
   985	030137	030070	030070			LUUO27,,LUUO26
   986	030140	030070	030070			LUUO31,,LUUO30
   987	030141	030070	030070			LUUO33,,LUUO32
   988
   989					S^;*********************************************************************^
   990					;*MEMORY MANAGMENT STORAGE
   991					S^;*********************************************************************^
   992
   993	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
   994	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
   995	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
   996	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
   997	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
   998
   999					S^;*********************************************************************^
  1000					;*PRINT CONTROL STORAGE
  1001					S^;*********************************************************************^
  1002
  1003	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
  1004	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
  1005	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
  1006	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
  1007	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
  1008	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
  1009	030225	000000	000000		$TWCNT:	0		;TIME WAITED
  1010	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
  1011	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
  1012	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
  1013	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
  1014	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
  1015	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
  1016	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
  1017	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
  1018	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
  1019	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
  1020	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
  1021	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 5
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0084

  1022					S^;*********************************************************************^
  1023					;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
  1024					;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
  1025					;*	MOVEI	NAME
  1026					;*	PNTA		;OR PNTAF
  1027					S^;*********************************************************************^
  1028
  1029	030242				CRLF:	ASCII/
  1030	030242	015 012 000 000 000 	/
  1031	030243				CRLF2:	ASCII/
  1032
  1033	030243	015 012 015 012 000 	/
  1034	030244	054 000 000 000 000 	COMMA:	ASCII/,/
  1035	030245	056 000 000 000 000 	PERIOD:	ASCII/./
  1036	030246	040 000 000 000 000 	SPACE:	ASCII/ /
  1037	030247	011 000 000 000 000 	TAB:	ASCII/	/
  1038	030250				MINUS:
  1039	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
  1040	030251	053 000 000 000 000 	PLUS:	ASCII/+/
  1041	030252	052 000 000 000 000 	AST:	ASCII/*/
  1042	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
  1043	030254	050 000 000 000 000 	LFP:	ASCII/(/
  1044	030255	051 000 000 000 000 	RTP:	ASCII/)/
  1045	030256	007 0000000000 		BELL:	BYTE (7) 007
  1046	030257	077 000 000 000 000 	QUEST:	ASCII/?/
  1047	030260	057 000 000 000 000 	SLASH:	ASCII!/!
  1048	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
  1049	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
  1050	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
  1051	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
  1052
  1053					S^;*********************************************************************^
  1054					;*USER MODE OUTPUT FILE INFORMATION
  1055					S^;*********************************************************************^
  1056
  1057	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
  1058	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
  1059	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
  1060	030272					BLOCK	2
  1061
  1062					S^;*********************************************************************^
  1063					;*DISK UPDATE MODE FILE INFORMATION
  1064					S^;*********************************************************************^
  1065
  1066	030274				$IBUF:	BLOCK	3
  1067	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
  1068	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
  1069	030301					BLOCK	2
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 6
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0085

  1070					S^;*********************************************************************^
  1071					;*PUSHDOWN LIST CONTROL INFORMATION
  1072					S^;*********************************************************************^
  1073
  1074	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
  1075	030304				PLISTS:	BLOCK	200
  1076	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
  1077
  1078					S^;*********************************************************************^
  1079					;*POWER LINE CLOCK FREQUENCY FLAG
  1080					S^;*********************************************************************^
  1081
  1082	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
  1083
  1084					S^;*********************************************************************^
  1085					;*KL10 CACHE CONTROL FLAGS
  1086					S^;*********************************************************************^
  1087
  1088	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
  1089	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
  1090
  1091					S^;*********************************************************************^
  1092					;*NUMBER INPUT DIGIT FLAG
  1093					S^;*********************************************************************^
  1094
  1095	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
  1096
  1097					S^;*********************************************************************^
  1098					;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
  1099					S^;*********************************************************************^
  1100
  1101	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
  1102
  1103					S^;*********************************************************************^
  1104					;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
  1105					S^;*********************************************************************^
  1106
  1107	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
  1108	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
  1109	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
  1110
  1111					S^;*********************************************************************^
  1112					;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
  1113					S^;*********************************************************************^
  1114
  1115	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 7
FIXED	KLM	19-Jul-77 16:36		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977                           SEQ 0086

  1116					S^;*********************************************************************^
  1117					;*USER MODE MONITOR TYPE FLAG
  1118					S^;*********************************************************************^
  1119
  1120	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
  1121
  1122					S^;*********************************************************************^
  1123					;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
  1124					S^;*********************************************************************^
  1125
  1126	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
  1127
  1128					S^;*********************************************************************^
  1129					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
  1130					S^;*********************************************************************^
  1131
  1132	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
  1133
  1134					S^;*********************************************************************^
  1135					;*"SWITCH" CALL USAGE CONTROL
  1136					S^;*********************************************************************^
  1137
  1138	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
  1139
  1140					S^;*********************************************************************^
  1141					;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
  1142					S^;*********************************************************************^
  1143
  1144	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
  1145	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
  1146
  1147					S^;*********************************************************************^
  1148					;*SM10 (KS-10) PROCESSOR TYPE FLAG
  1149					S^;*********************************************************************^
  1150
  1151	030524	000000	000000		SM10:	0	;IF -1 THIS IS A KS-10
  1152
  1153					S^;*********************************************************************^
  1154					;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
  1155					S^;*********************************************************************^
  1156
  1157	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
  1158
  1159					S^;*********************************************************************^
  1160					;*SPECIAL FUTURE EXPANSION ROOM
  1161					S^;*********************************************************************^
  1162
  1163					S^;*********************************************************************^
  1164					;*END OF FIXED STORAGE
  1165					S^;*********************************************************************^
  1166
  1167	030577					LOC	30577
  1168	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 1
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0087

  1169					SUBTTL	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
  1170
  1171					S^;*********************************************************************^
  1172					;*SPECIAL SUBPROGRAM LINKAGES
  1173					S^;*********************************************************************^
  1174
  1175	000440					LOC	440
  1176
  1177	000440	254 00 0 00 030000 		JRST	DIAGNOS
  1178	000441	254 00 0 00 010000 		JRST	DDT
  1179	000442	254 00 0 00 020000 		JRST	DIAMON
  1180	000443	254 00 0 00 001001 		JRST	REINIT
  1181
  1182	027775					LOC	27775
  1183
  1184	027775	000000	010000		DDTLNK:	10000			;DDT LINKAGE
  1185	027776	000000	001003		MODLNK:	MODCHK			;OPERATIONAL MODE CHECK LINKAGE
  1186	027777	000000	001002		SUBLNK:	SUBINI			;SUBROUTINE LINKAGE
  1187
  1188	001000					LOC	1000		;RESET THE PC AFTER "FIXED" @ 30,000
  1189
  1190					S^;*********************************************************************^
  1191					;*INITIALIZE THE SUBROUTINE PACKAGE
  1192					S^;*********************************************************************^
  1193
  1194	001000	254 00 0 00 001021 	START:	JRST	$SBSRT		;START SUBROUTINE BY ITSELF
  1195	001001	254 00 0 00 001030 	REINIT:	JRST	$REINI		;REINIT SUBROUTINE
  1196	001002	254 00 0 00 001046 	SUBINI:	JRST	$PGMIN		;SUBROUTINE INIT ROUTINE
  1197	001003	254 00 0 00 001124 	MODCHK:	JRST	$MODCK		;OPERATIONAL MODE CHECK LINKAGE
  1198	001004	000000	000000			0
  1199	001005	63 65 42 62 64 56 	SUBRTN:	SIXBIT/SUBRTN/		;"SUBRTN" IDENTIFICATION WORD
  1200	001006	000000	000001		SUBVER:	MCNVER,,DECVER		;"SUBRTN" VERSION INFORMATION
  1201	001007	777777	777777		$TTYSPD:-1			;MONITOR TTY SPEED
  1202
  1203	001010	254 04 0 00 001010 	NOEXEC:	HALT	.		;PROGRAM NOT CODED FOR EXEC MODE
  1204	001011	254 04 0 00 001011 	PLERR:	HALT	.		;FATAL PUSH LIST POINTER ERROR
  1205	001012	254 04 0 00 001012 	PLERR1:	HALT	.		;INITIAL PUSH LIST POINTER ERROR
  1206	001013	254 04 0 00 001013 	MUOERR:	HALT	.		;MUUO WITH LUUO HANDLER WIPED OUT
  1207	001014	254 04 0 00 001014 	DTEBER:	HALT	.		;DTE20 INTERRUPT WITHOUT DOORBELL
  1208	001015	254 04 0 00 001015 	DTECER:	HALT	.		;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
  1209	001016	254 04 0 00 001016 	CPIERR:	HALT	.		;CPU INITIALIZATION ERROR
  1210	001017	254 04 0 00 001017 	EOPERR:	HALT	.		;END OF PROGRAM ERROR
  1211	001020	254 04 0 00 001020 	LUOERR:	HALT	.		;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0088

  1212					S^;*********************************************************************^
  1213					;*SPECIAL SUBROUTINE ONLY INITIALIZATION
  1214					S^;*********************************************************************^
  1215	001021	201 00 0 00 000001 	$SBSRT:	MOVEI	1
  1216	001022	202 00 0 00 030024 		MOVEM	ITRCNT		;ALLOW ONLY ONE PASS
  1217	001023	201 00 0 00 020000 		MOVEI	DIAMON
  1218	001024	202 00 0 00 030012 		MOVEM	RETURN
  1219	001025	476 00 0 00 030143 		SETOM	MAPNEW		;FULL 4096K MAPPING
  1220	001026	265 00 0 00 030011 		PGMINT
  1221	001027	254 00 0 00 030057 		JRST	BEGEND
  1222
  1223	001030	402 00 0 00 030056 	$REINI:	SETZM	$ONETM		;FOR NOW
  1224	001031	402 00 0 00 030047 		SETZM	PASCNT
  1225	001032	402 00 0 00 030053 		SETZM	ERRTLS
  1226	001033	254 00 0 00 030000 		JRST	BEGIN
  1227
  1228	001034	254 00 0 00 030057 	STARTA:	JRST	BEGEND
  1229
  1230	001035				PGMNAM:	ASCIZ/
  1231	001035	015 012 104 105 103 	DECSYSTEM DIAGNOSTIC KL10 SUBROUTINE'S
  1232	001036	123 131 123 124 105 
  1233	001037	115 040 104 111 101 
  1234	001040	107 116 117 123 124 
  1235	001041	111 103 040 113 114 
  1236	001042	061 060 040 123 125 
  1237	001043	102 122 117 125 124 
  1238	001044	111 116 105 047 123 
  1239	001045	015 012 000 000 000 	/
  1240
  1241					S^;*********************************************************************^
  1242					;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
  1243					S^;*********************************************************************^
  1244
  1245	001046	202 00 0 00 006637 	$PGMIN:	MOVEM	0,$$PAC0
  1246	001047	476 00 0 00 030037 		SETOM	USER
  1247	001050	265 00 0 00 001051 		JSP	0,.+1		;LOAD FLAGS INTO AC0
  1248	001051	607 00 0 00 010000 		TLNN	0,USERF		;USER MODE ?
  1249	001052	402 00 0 00 030037 		SETZM	USER		;EXEC MODE
  1250	001053	336 00 0 00 030042 		SKIPN	MONFLG		;DIAG MON, SPECIAL USER MODE ?
  1251	001054	402 00 0 00 030037 		SETZM	USER		;YES, TREAT I/O AS EXEC
  1252	001055	332 00 0 00 030037 		SKIPE	USER
  1253	001056	254 00 0 00 001143 		JRST	$NOUSR		;NO USER MODE IN "SUBKL"
  1254	001057	7 004 20 0 00 010000 		CONO	PI,PICLR	;CLEAR PI SYSTEM
  1255	001060	7 000 20 0 00 200000 		CONO	APR,IOCLR	;CLEAR I/O
  1256	001061	402 00 0 00 006605 		SETZM	$MTRI		;CLEAR METER
  1257	001062	402 00 0 00 006606 		SETZM	$MTRWC
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 3
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0089

  1258					S^;*********************************************************************^
  1259					;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
  1260					S^;*********************************************************************^
  1261
  1262	001063	554 00 0 00 000120 	$PGMN1:	HLRZ	JOBSA		;RESET JOB FIRST FREE TO
  1263	001064	202 00 0 00 000121 		MOVEM	JOBFF		;END OF LOW SEGMENT
  1264	001065	254 02 1 00 001066 		JRST	2,@.+1		;CLEAR PC FLAGS
  1265	001066	000000	001067				0,,.+1
  1266	001067	200 00 0 00 030046 		MOVE	CONSW
  1267	001070	202 00 0 00 006715 		MOVEM	$SVCSW#		;SAVE PREVIOUS SWITCHES
  1268	001071	402 00 0 00 030046 		SETZM	CONSW#		;CLEAR SWITCH REGISTER
  1269	001072	402 00 0 00 006717 		SETZM	$SWFLG#		;DISALLOW SWITCHES TILL INITED
  1270	001073	200 00 0 00 006043 		MOVE	[JRST $DDTENT]	;SETUP DDT START
  1271	001074	202 00 0 00 030007 		MOVEM	DDTSRT		;DDT IF LOADED, EOPUUO IF NOT
  1272	001075	200 00 0 00 006044 		MOVE	[JRST PSHERR]
  1273	001076	202 00 0 00 030103 		MOVEM	$PSHER		;INIT FOR UNDERFLOW
  1274	001077	200 17 0 00 030303 		MOVE	P,PLIST		;INIT PUSH POINTER
  1275	001100	201 00 0 00 030103 		MOVEI	0,$PSHER
  1276	001101	261 17 0 00 000000 		PUSH	P,0		;SET ERR FOR EXCESSIVE POP'S
  1277	001102	261 17 0 00 000000 		PUSH	P,0
  1278
  1279					S^;*********************************************************************^
  1280					;*INITIALIZE SUBROUTINES
  1281					S^;*********************************************************************^
  1282
  1283	001103	260 17 0 00 002135 	PGINGO:	GO	$CPUTP		;DETERMINE CPU TYPE (KL/KI/KA)
  1284	001104	332 00 0 00 030041 		SKIPE	KLFLG
  1285	001105	260 17 0 00 001146 		GO	$MAPEX		;MAP EXEC
  1286	001106	260 17 0 00 001162 		GO	$UUOIN		;INIT UUO TRAP TRANSFER LOCATION
  1287	001107	260 17 0 00 001755 		GO	$DTEIN		;INIT DTE-20 INTERRUPT TRANSFER PROCESS
  1288	001110	260 17 0 00 005235 		GO	$PNTIN		;INIT PRINT SUBROUTINE
  1289	001111	260 17 0 00 004633 		GO	$TYPIN		;INIT TTY INPUT SUBROUTINE
  1290	001112	260 17 0 00 004311 		GO	$SWTIN		;INIT SWITCH INPUT SUBROUTINE
  1291	001113	260 17 0 00 003253 		GO	MFICE		;INIT MF20 MEMORY
  1292	001114	260 17 0 00 002367 		GO	$ITRIN		;INIT INTERRUPT SUBROUTINE
  1293	001115	332 00 0 00 030034 		SKIPE	$MMAP		;MEMORY ROUTINES ?
  1294	001116	260 17 0 00 003343 		GO	$MEMMP		;MAP MEMORY
  1295	001117	260 17 0 00 002730 		GO	$KLCSH		;DO CACHE
  1296	001120	476 00 0 00 030056 		SETOM	$ONETM		;SET ONE TIME FLAG
  1297	001121	402 00 0 00 030116 		SETZM	SCOPE		;INIT ERROR SCOPE LOOP
  1298	001122	402 00 0 00 030052 		SETZM	ERRPC		;INIT ERROR PC
  1299	001123	254 00 1 00 006637 		JRST	@$$PAC0#
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 4
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0090

  1300					S^;*********************************************************************^
  1301					;* -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
  1302					;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
  1303					;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
  1304					;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
  1305					;*AT ASSEMBLY TIME.
  1306					S^;*********************************************************************^
  1307
  1308	001124	265 00 0 00 001125 	$MODCK:	JSP	0,.+1		;GET FLAG CONDITIONS
  1309	001125	603 00 0 00 010000 		TLNE	0,USERF		;IN USER MODE ?
  1310	001126	254 00 0 00 001141 		JRST	$UCK		;YES
  1311	001127	476 00 0 00 030024 	$ECK:	SETOM	ITRCNT		;EXEC, RUN FOREVER
  1312	001130	402 00 0 00 030043 		SETZM	MONCTL		;NOT HERE IF UNDER MONITOR CONTROL
  1313	001131	476 00 0 00 030042 		SETOM	MONFLG		;SET TO NORMAL OPERATION
  1314	001132	332 00 0 00 030044 		SKIPE	MONTEN		;LOADED BY "DIAMON" ?
  1315	001133	254 00 0 00 001136 		JRST	.+3		;YES, RETURN TO "DIAMON" UPON COMPLETION
  1316	001134	201 00 0 00 030000 		MOVEI	BEGIN		;SET UP RETURN IN CASE WE EVER COUNT OUT
  1317	001135	202 00 0 00 030012 		MOVEM	RETURN		;FOR THE RETURN ADDRESS
  1318	001136	332 00 0 00 030031 		SKIPE	$EMODE		;EXEC MODE ALLOWED?
  1319	001137	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
  1320	001140	254 04 0 00 001010 		HALT	NOEXEC		;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
  1321
  1322	001141	332 00 0 00 030032 	$UCK:	SKIPE	$UMODE		;USER MODE ALLOWED?
  1323	001142	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
  1324	001143				$NOUSR:	OUTSTR	[ASCIZ/
  1325					EXEC ONLY
  1326	001143	051 03 0 00 006045 	/]
  1327	001144	051 03 1 00 030025 		OUTSTR	@$PNAME		;PRINT THE NAME OF THIS FILE
  1328	001145	254 00 1 00 030012 		JRST	@RETURN		;LEAVE FOR EVER
  1329
  1330					S^;*********************************************************************^
  1331					;* $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
  1332					;*	    0 TO 112K POINTS TO ITSELF
  1333					S^;*********************************************************************^
  1334
  1335	001146	200 00 0 00 006050 	$MAPEX:	MOVE	[540000,,540001]
  1336	001147	336 00 0 00 030506 		SKIPN	CSHFLG
  1337	001150	660 00 0 00 020000 		TRO	020000
  1338	001151	202 00 0 00 000600 		MOVEM	600		;SET EPT NON-CACHED
  1339	001152	205 01 0 00 777621 		MOVSI	1,-157
  1340	001153	200 00 0 00 006050 		MOVE	[540000,,540001]
  1341	001154	336 00 0 00 030506 		SKIPN	CSHFLG		;REST CACHED IF ALLOWED
  1342	001155	670 00 0 00 006051 		TDO	[020000,,020000]
  1343	001156	270 00 0 00 006052 		ADD	[2,,2]
  1344	001157	202 00 0 01 000601 		MOVEM	601(1)
  1345	001160	253 01 0 00 001156 		AOBJN	1,.-2
  1346	001161	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 5
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0091

  1347					SUBTTL	*CONTRL* UUO HANDLING SUBROUTINE
  1348
  1349					S^;*********************************************************************^
  1350					;*UUO INITIALIZATION
  1351					S^;*********************************************************************^
  1352
  1353	001162	200 00 0 00 006053 	$UUOIN:	MOVE	[GO  $UORTN]	;BRING IN UUORTN ENTRY INSTR.
  1354	001163	202 00 0 00 000041 		MOVEM	JOB41		;SETUP UUO TRAP AT JOB41
  1355	001164	200 00 0 00 006054 		MOVE	[JRST $UOERX]
  1356	001165	202 00 0 00 030070 		MOVEM	$UUOER		;SET UUO ERROR IN "FIXED"
  1357	001166	402 00 0 00 006732 		SETZM	$UPLER#
  1358	001167	263 17 0 00 000000 		RTN			;EXIT
  1359
  1360					S^;*********************************************************************^
  1361					;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
  1362					;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
  1363					;*PROGRAM SEGMENT UUO'S (001 - 033).
  1364					;*AC0 IS SAVED ON THE STACK INITIALLY
  1365					S^;*********************************************************************^
  1366
  1367	001170	332 00 0 00 030515 	$UORTN:	SKIPE	$$UUO		;IF NON-ZERO, XCT USERS UUO INTERCEPT
  1368	001171	256 00 0 00 030515 		XCT	$$UUO
  1369	001172	607 17 0 00 777000 		TLNN	P,777000
  1370	001173	254 00 0 00 001264 		JRST	$UOPLE		;CHECK THAT P LOOKS LIKE A P POINTER
  1371	001174	602 17 0 00 747000 		TRNE	P,747000
  1372	001175	254 00 0 00 001264 		JRST	$UOPLE
  1373	001176	261 17 0 00 000000 		PUT	AC0		;SAVE AC0 ON PUSH LIST
  1374	001177	550 00 0 00 000017 		HRRZ	AC0,P		;VERIFY THAT THE PUSH POINTER
  1375	001200	307 00 0 00 030303 		CAIG	AC0,PLIST	;IS STILL OK
  1376	001201	254 00 0 00 001264 		JRST	$UOPLE		;OUT OF RANGE
  1377	001202	301 00 0 00 030504 		CAIL	AC0,PLISTE
  1378	001203	254 00 0 00 001264 		JRST	$UOPLE
  1379	001204	554 00 0 00 000017 		HLRZ	AC0,P		;GET CONTROL COUNT
  1380	001205	307 00 0 00 777577 		CAIG	AC0,777577
  1381	001206	254 00 0 00 001264 		JRST	$UOPLE		;OUT OF RANGE
  1382	001207	301 00 0 00 777777 		CAIL	AC0,777777
  1383	001210	254 00 0 00 001264 		JRST	$UOPLE
  1384	001211	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET THE UUO
  1385	001212	242 00 0 00 777745 		LSH	AC0,-^D27	;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
  1386	001213	303 00 0 00 000033 		CAILE	AC0,33		;IS IT 33 OR LESS? (LOW)
  1387	001214	254 00 0 00 001241 		JRST	$SUBUO		;DECODE 34 - 37 @ $SUBUO
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 6
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0092

  1388	001215	200 00 0 17 777777 	$USRUO:	MOVE	AC0,-1(P)	;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
  1389	001216	275 00 0 00 000001 		SUBI	1		; - 1
  1390	001217	202 00 0 00 030114 		MOVEM	$SVUPC		;SAVE FOR USER UUO ROUTINE (IF NEEDED)
  1391	001220	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET UUO FROM LOCATION 40 IN JDA
  1392	001221	202 00 0 00 030113 		MOVEM	$SVUUO		;SAVE FOR USER UUO ROUTINE
  1393	001222	262 17 0 00 000000 		GET	AC0
  1394	001223	256 00 0 00 030066 		XCT	UUORTN		;EXECUTE USERS ROUTINE IF SUPPLIED
  1395	001224	261 17 0 00 000000 		PUT	AC0
  1396	001225	200 00 0 00 030113 		MOVE	AC0,$SVUUO
  1397	001226	242 00 0 00 777745 		LSH	AC0,-^D27	;RIGHT SHIFT FOR INDEX INTO UUO TABLE
  1398	001227	261 17 0 00 000001 		PUT	1
  1399	001230	246 00 0 00 777777 		LSHC	0,-1
  1400	001231	271 00 0 00 030124 		ADDI	UUODIS		;ADD USER UUO TABLE START TO THE UUO
  1401	001232	607 01 0 00 400000 	$XUUO:	TLNN	1,400000
  1402	001233	550 00 1 00 000000 		HRRZ	@0		;EVEN UUO
  1403	001234	603 01 0 00 400000 		TLNE	1,400000
  1404	001235	554 00 1 00 000000 		HLRZ	@0		;ODD UUO
  1405	001236	262 17 0 00 000001 		GET	1
  1406	001237	250 00 0 17 000000 		EXCH	AC0,(P)		;PUT ADR ON STACK, AC0 BACK IN AC0
  1407	001240	263 17 0 00 000000 		RTN			;SPECIAL XFER TO ROUTINE USING ADR ON STACK
  1408
  1409	001241	275 00 0 00 000034 	$SUBUO:	SUBI	AC0,34		;NORMALIZE TO MAKE LOWEST UUO = 0
  1410	001242	271 00 0 00 001244 		ADDI	AC0,TABLE0	;ADDR OF TABLE + NORM. UUO (0-3)
  1411	001243	254 00 1 00 000000 		JRST	@0		;SELECT THE CORRECT ERROR UUO VIA TABLE
  1412
  1413	001244	254 00 0 00 001455 	TABLE0:	JRST	%REPT		;UUO = 34 ......................REPEAT
  1414	001245	254 00 0 00 001410 		JRST	%ERLP		;UUO = 35 ...........LOOP ON THE ERROR
  1415	001246	254 00 0 00 001472 		JRST	%ERUUO		;UUO = 36 .REPORT THE ERROR CONDITIONS
  1416	001247	254 00 0 00 001317 		JRST	$UUO37		;UUO = 37 .......DECODE SUBROUTINE UUO
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 7
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0093

  1417					S^;*********************************************************************^
  1418					;*UUO ERROR EXIT ROUTINE
  1419					S^;*********************************************************************^
  1420						SALL
  1421	001250	262 17 0 00 000000 		GET	AC0		;POP OFF AC0 (KA MUUO'S)
  1422	001251	261 17 0 00 000040 	$UOERX:	PUT	JOBUUO		;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
  1423	001252	037 02 0 00 006055 		PMSG	<^ILLEGAL UUO^UUO]]FLAGS]  PC^>
  1424	001253	262 17 0 00 000000 		GET	AC0		;GET BAD UUO FROM THE STACK (P - 1)
  1425	001254	037 13 0 00 000000 		PNTHW			;PRINT IT
  1426	001255	037 00 0 00 000040 		PSP			;PRINT SPACE
  1427	001256	262 17 0 00 000000 		GET	AC0		;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
  1428	001257	275 00 0 00 000001 		SUBI	AC0,1		;SUBTRACT 1
  1429	001260	037 13 0 00 000000 		PNTHW			;PRINT FLAGS & UUO PC
  1430	001261	037 00 0 00 030242 		PCRL			;PRINT C/R & L/F
  1431	001262	256 00 0 00 030067 		XCT	$UORTX		;EXECUTE USERS UUO EXIT, IF PROV
  1432	001263	037 15 0 00 000004 		FATAL
  1433
  1434	001264	332 00 0 00 006732 	$UOPLE:	SKIPE	$UPLER		;FIRST TIME ?
  1435	001265	254 04 0 00 001011 		HALT	PLERR		;NO, FATAL HALT THEN
  1436	001266	476 00 0 00 006732 		SETOM	$UPLER
  1437	001267	202 17 0 00 006702 		MOVEM	P,$PDOVP	;SAVE "P"
  1438	001270	200 17 0 00 030303 		MOVE	P,PLIST
  1439	001271	312 17 0 00 006062 		CAME	P,[PLIST-PLISTE,,PLIST]
  1440	001272	254 04 0 00 001012 		HALT	PLERR1		;INITIAL POINTER BAD
  1441	001273	201 00 0 00 030103 		MOVEI	$PSHER
  1442	001274	261 17 0 00 000000 		PUSH	P,0
  1443	001275	037 04 0 00 006063 		PMSGF	<^*****^UUO PLIST ERR P=>
  1444	001276	200 00 0 00 006702 		MOVE	$PDOVP
  1445	001277	037 13 0 00 000001 		PNTHWF
  1446	001300	037 15 0 00 000004 		FATAL
  1447						LALL
  1448					S^;*********************************************************************^
  1449					;*MONITOR UUO ERROR EXIT ROUTINE
  1450					S^;*********************************************************************^
  1451						SALL
  1452	001301	332 00 0 00 030517 	MUUOER:	SKIPE	$$MUUO
  1453	001302	256 00 0 00 030517 		XCT	$$MUUO		;EXECUTE USERS MUUO ROUTINE, IF PROV
  1454	001303	200 00 0 00 000041 		MOVE	AC0,JOB41	;GET UUO HANDLER
  1455	001304	312 00 0 00 006053 		CAME	AC0,[GO	$UORTN]
  1456	001305	254 04 0 00 001013 		HALT	MUOERR		;NOT VALID
  1457	001306	200 00 0 00 000425 		MOVE	LMUUOP
  1458	001307	202 00 0 00 030104 		MOVEM	ITRCH1
  1459	001310	7 000 24 0 00 030110 		CONI	APR,$SVAPR
  1460	001311	7 004 24 0 00 030107 		CONI	PI,$SVPI
  1461	001312	037 02 0 00 006067 		PMSG	<^ERROR MUUO = >
  1462	001313	200 00 0 00 000424 		MOVE	LMUUO
  1463	001314	037 13 0 00 000000 		PNTHW			;PRINT MUUO
  1464	001315	402 00 0 00 000000 		SETZM	0
  1465	001316	254 00 0 00 002442 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE START
  1466						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 8
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0094

  1467					S^;*********************************************************************^
  1468					;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
  1469					S^;*********************************************************************^
  1470
  1471	001317	550 00 0 00 000040 	$UUO37:	HRRZ	JOBUUO		;GET CALLING UUO
  1472	001320	322 00 0 00 005267 		JUMPE	$PNTIT		;PRINT UUO
  1473	001321	306 00 0 00 000001 		CAIN	0,1
  1474	001322	254 00 0 00 005263 		JRST	$PNTIF		;PRINT FORCED UUO
  1475	001323	602 00 0 00 777600 		TRNE	777600
  1476	001324	254 00 0 00 001375 		JRST	$EG177		;PRINT MESSAGE UUO
  1477	001325	301 00 0 00 000005 		CAIL	5
  1478	001326	254 00 0 00 001370 		JRST	$EG4		;PRINT CHAR IMMEDIATE UUO
  1479	001327	261 17 0 00 000001 		PUT	1
  1480	001330	200 01 0 00 000040 		MOVE	1,JOBUUO
  1481	001331	242 01 0 00 777751 		LSH	1,-^D23		;EXTRACT UUO AC FIELD
  1482	001332	405 01 0 00 000017 		ANDI	1,17
  1483	001333	242 00 0 00 000004 		LSH	0,4		;POSITION E FIELD
  1484	001334	434 00 0 00 000001 		IOR	0,1		;COMBINE E & AC FIELD
  1485	001335	246 00 0 00 777777 		LSHC	0,-1		;SET ODD/EVEN
  1486	001336	271 00 0 00 001320 		ADDI	$UOTAB-20	;COMPUTE TABLE ENTRY OFFSET
  1487	001337	254 00 0 00 001232 		JRST	$XUUO
  1488
  1489	001340				$UOTAB:				;E FIELD = 2
  1490	001340	005370	005357			$PTSXF,,$PNTSX
  1491	001341	005541	005506			$PNTCF,,$PNTCW
  1492	001342	001407	002310			$DRPDV,,$PNTNM
  1493	001343	004150	004261			$MODDV,,$MODDP
  1494	001344	003602	004272			$MSEG,,$SWTCH
  1495	001345	004036	003775			$MPADR,,$MZRO
  1496	001346	003453	003553			$MPCNK,,$MPSET
  1497	001347	004057	001407			$PMAP,,$PNTMG
  1498									;E FIELD = 3
  1499	001350	005015	004647			$YESNO,,$OPTLK
  1500	001351	005060	005013			$TPOCT,,$NOYES
  1501	001352	005054	005056			$TPCNV,,$TPDEC
  1502	001353	004661	004636			$TALTM,,$TTLK
  1503	001354	004640	005202			$TTYIN,,$TISIX
  1504	001355	001251	001251			$UOERX,,$UOERX
  1505	001356	005401	005404			$PSIXF,,$PSIX
  1506	001357	005443	005446			$POCSF,,$POCS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 9
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0095

  1507									;E FIELD = 4
  1508	001360	003214	003343			$CINVAL,,$MEMMP
  1509	001361	003247	003243			$CWRTB,,$CFLUSH
  1510	001362	002176	002053			$FSELECT,,$MTROP
  1511	001363	002222	002224			$FRD36,,$FREAD
  1512	001364	001251	002220			$UOERX,,$FRD8
  1513	001365	002026	002670			$CLOCK,,$END
  1514	001366	002264	002240			$FATAL,,$ERHLT
  1515	001367	001251	002717			$UOERX,,$EOP
  1516
  1517	001370	200 00 0 00 000040 	$EG4:	MOVE	JOBUUO		;IMMEDIATE CHARACTER PRINT
  1518	001371	603 00 0 00 000040 		TLNE	(1B12)
  1519						JRST	[PNTCHF
  1520	001372	254 00 0 00 006072 			JRST	$EGX]
  1521	001373	037 12 0 00 000000 		PNTCHR
  1522	001374	254 00 0 00 001405 		JRST	$EGX
  1523
  1524	001375	200 00 0 00 000040 	$EG177:	MOVE	JOBUUO		;IMMEDIATE MESSAGE PRINT
  1525	001376	603 00 0 00 000200 		TLNE	(4B12)
  1526						JRST	[PSIXLF
  1527	001377	254 00 0 00 006074 			JRST	$EGX]
  1528	001400	603 00 0 00 000100 		TLNE	(2B12)
  1529						JRST	[PSIXL
  1530	001401	254 00 0 00 006076 			JRST	$EGX]
  1531	001402	603 00 0 00 000040 		TLNE	(1B12)
  1532						JRST	[PNTALF
  1533	001403	254 00 0 00 006100 			JRST	$EGX]
  1534	001404	037 17 0 00 000000 		PNTAL
  1535	001405	262 17 0 00 000000 	$EGX:	GET	0
  1536	001406	263 17 0 00 000000 		RTN
  1537
  1538	001407				$DRPDV:				;N/A IN EXEC MODE
  1539	001407	263 17 0 00 000000 	$PNTMG:	RTN			;N/A ON KL-10
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 10
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0096

  1540					SUBTTL	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
  1541
  1542					S^;*********************************************************************^
  1543					;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
  1544					;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
  1545					;*INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
  1546					;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
  1547					;*ERROR, AND BELL ON ERROR.
  1548					;*ERROR LOOPING ROUTINE
  1549					;*EITHER CONTINUES IN-LINE
  1550					;*OR TRANSFERS TO E FIELD OF UUO
  1551					;*CHECKS PC OF ERROR TO DETERMINE LOOPING
  1552					S^;*********************************************************************^
  1553
  1554	001410	402 00 0 00 006741 	%ERLP:	SETZM	%ERFLG#
  1555	001411	261 17 0 00 000040 		PUT	JOBUUO
  1556	001412	260 17 0 00 004661 		GO	$TALTM		;DO ALTMODE CHECK
  1557	001413	254 00 0 00 001417 		JRST	.+4		;NOT ONE
  1558	001414	201 00 0 00 001417 		MOVEI	.+3		;SAVE RESTART ADDRESS
  1559	001415	202 00 0 00 000130 		MOVEM	JOBOPC
  1560	001416	254 00 1 00 030063 		JRST	@ALTMGO		;TRANSFER TO ALTMODE ROUTINE
  1561	001417	262 17 0 00 000040 		GET	JOBUUO
  1562	001420	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET AC FIELD OF UUO
  1563	001421	242 00 0 00 777751 		LSH	AC0,-^D23
  1564	001422	405 00 0 00 000017 		ANDI	AC0,17
  1565	001423	306 00 0 00 000002 		CAIN	AC0,2
  1566	001424	254 00 0 00 001443 		JRST	%ERLP2		; 2 = LOOP IF ANY ERROR
  1567	001425	306 00 0 00 000001 		CAIN	AC0,1
  1568	001426	254 00 0 00 001437 		JRST	%ERLP1		; 1 = LOOP IF PC'S MATCH
  1569	001427	306 00 0 00 000000 		CAIN	AC0,0
  1570	001430	254 00 0 00 001433 		JRST	%ERLP0		; 0 = PC'S, REPT, REPT1 & ERROR
  1571	001431	262 17 0 00 000000 		GET	AC0
  1572	001432	254 00 0 00 001251 		JRST	$UOERX
  1573	001433	476 00 0 00 006741 	%ERLP0:	SETOM	%ERFLG
  1574	001434	316 15 0 00 006745 		CAMN	REPT,%RP	;ARE REPEAT COUNTS SAME AS ERROR ?
  1575	001435	312 16 0 00 006746 		CAME	REPT1,%RP1	;(AT RIGHT PLACE IN TEST LOOPS ?)
  1576	001436	254 00 0 00 001453 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1577	001437	550 00 0 17 777777 	%ERLP1:	HRRZ	AC0,-1(P)	;GET PC OF LOOP CALL FROM STACK
  1578	001440	275 00 0 00 000002 		SUBI	AC0,2		;LESS 2
  1579	001441	312 00 0 00 030052 		CAME	AC0,ERRPC	;NOW EQUAL TO PC OF ERROR CALL ?
  1580	001442	254 00 0 00 001453 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1581	001443	260 17 0 00 004272 	%ERLP2:	GO	$SWTCH		;READ SWITCHES INTO AC0
  1582	001444	607 00 0 00 004000 		TLNN	LOOPER		;LOOP ON ERROR ?
  1583	001445	402 00 0 00 030116 		SETZM	SCOPE		;NO ..........CLEAR LOOP CONTROL
  1584	001446	331 00 0 00 030116 		SKIPL	SCOPE		;YES ...WAS THERE AN ERROR ?
  1585	001447	254 00 0 00 001453 		JRST	%ERX1		;NO, CONTINUE IN LINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 11
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0097

  1586	001450	262 17 0 00 000000 	%ERX:	GET	AC0		;RESTORE AC0
  1587	001451	274 17 0 00 006102 		SUB	P,[1,,1]	;CORRECT PUSH LIST POINTER FOR NO "RTN"
  1588	001452	254 00 1 00 000040 		JRST	@JOBUUO		;TRANSFER TO E FIELD OF UUO
  1589
  1590	001453	262 17 0 00 000000 	%ERX1:	GET	AC0		;RESTORE AC0
  1591	001454	263 17 0 00 000000 		RTN
  1592
  1593					S^;*********************************************************************^
  1594					;*REPEAT LOOP ROUTINE
  1595					;*EITHER CONTINUES IN-LINE
  1596					;*OR TRANSFERS TO E FIELD OF UUO
  1597					S^;*********************************************************************^
  1598
  1599	001455	373 00 0 00 030115 	%REPT:	SOSLE	REPTU#		;REPEAT TEST SECTION ?
  1600	001456	254 00 0 00 001450 		JRST	%ERX		;YES, E FIELD OF UUO IS RETURN
  1601	001457	254 00 0 00 001453 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1602
  1603					S^;*********************************************************************^
  1604					;*COMMON ERROR HANDLER AC SAVE/RESTORE
  1605					S^;*********************************************************************^
  1606
  1607	001460	202 00 0 00 006734 	%EACS:	MOVEM	0,%AC0#
  1608	001461	202 01 0 00 006735 		MOVEM	1,%AC1#
  1609	001462	202 02 0 00 006736 		MOVEM	2,%AC2#
  1610	001463	202 03 0 00 006737 		MOVEM	3,%AC3#
  1611	001464	263 17 0 00 000000 		RTN
  1612
  1613	001465	200 00 0 00 006734 	%EACR:	MOVE	0,%AC0
  1614	001466	200 01 0 00 006735 	%EACR1:	MOVE	1,%AC1
  1615	001467	200 02 0 00 006736 		MOVE	2,%AC2
  1616	001470	200 03 0 00 006737 		MOVE	3,%AC3
  1617	001471	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 12
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0098

  1618					;*ERROR REPORTING ROUTINE
  1619					S^;*********************************************************************^
  1620
  1621	001472	200 00 0 00 000040 	%ERUUO:	MOVE	LUUO
  1622	001473	202 00 0 00 006744 		MOVEM	%LUUO#
  1623	001474	476 00 0 00 030116 		SETOM	SCOPE
  1624	001475	262 17 0 00 000000 		GET	AC0
  1625	001476	332 00 0 00 030512 		SKIPE	%ERHI1		;ANY USERS INSTRUCTION ?
  1626	001477	256 00 0 00 030512 		XCT	%ERHI1		;YES, DO USERS ROUTINE
  1627	001500	260 17 0 00 001460 		GO	%EACS		;SAVE AC0 - AC3
  1628	001501	402 00 0 00 030117 		SETZM	%CORFLG#
  1629	001502	402 00 0 00 030121 		SETZM	%ACTFL#
  1630	001503	350 00 0 00 030053 		AOS	ERRTLS		;INCREMENT ERROR TOTALS
  1631	001504	260 17 0 00 004272 		GO	$SWTCH
  1632	001505	550 03 0 17 000000 		HRRZ	3,(P)		;GET <ADDRESS> OF ERROR CALL FROM STACK
  1633	001506	275 03 0 00 000001 		SUBI	3,1
  1634	001507	312 03 0 00 030052 		CAME	3,ERRPC		;SKIP IF SAME ERROR
  1635	001510	254 00 0 00 001520 		JRST	%ERPNT
  1636	001511	336 00 0 00 006741 		SKIPN	%ERFLG
  1637	001512	254 00 0 00 001516 		JRST	.+4		;DON'T CHECK REPEAT COUNTS
  1638	001513	316 15 0 00 006745 		CAMN	REPT,%RP
  1639	001514	312 16 0 00 006746 		CAME	REPT1,%RP1
  1640	001515	254 00 0 00 001520 		JRST	%ERPNT		;DIFFERENT, PRINT ERROR
  1641	001516	607 00 0 00 001000 		TLNN	PALERS		;PRINT ALL ERRORS ?
  1642	001517	254 00 0 00 001720 		JRST	%ERSW1		;THIS ERROR ALREADY REPORTED ONCE.
  1643
  1644					;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
  1645					S^;*********************************************************************^
  1646
  1647	001520	202 15 0 00 006745 	%ERPNT:	MOVEM	REPT,%RP#	;SAVE REPEAT COUNTS
  1648	001521	202 16 0 00 006746 		MOVEM	REPT1,%RP1#
  1649	001522	202 03 0 00 030052 		MOVEM	3,ERRPC		;SAVE ERROR CALL ADDRESS
  1650	001523	603 00 0 00 040000 		TLNE	0,NOPNT
  1651	001524	254 00 0 00 001720 		JRST	%ERSW1
  1652	001525	037 01 0 00 000026 		PFORCE			;OVERRIDE CONTROL O
  1653	001526	402 00 0 00 006740 		SETZM	%ERCNT#
  1654	001527	335 00 0 00 030043 		SKIPGE	MONCTL		;DIAG MON OR SYS EXER ?
  1655	001530	254 00 0 00 001732 		JRST	%ERPRA		;YES, GO PRINT TITLE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 13
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0099

  1656						SALL
  1657	001531	336 00 0 00 030047 	%ERPRB:	SKIPN	PASCNT
  1658	001532	254 00 0 00 001536 		JRST	.+4		;DON'T PRINT PASS COUNTER ON FIRST PASS
  1659	001533	037 02 0 00 006103 		PMSG	<^TEST PASS COUNT = >
  1660	001534	200 00 0 00 030047 		MOVE	0,PASCNT
  1661	001535	037 15 0 00 000000 		PNTDEC			;PRINT TEST PASS COUNTER
  1662	001536	037 02 0 00 006107 		PMSG	<^PC=  >
  1663	001537	201 00 0 03 000000 		MOVEI	0,(3)
  1664	001540	037 06 0 00 000000 		PNT6			;PRINT PC OF ERROR CALL.
  1665	001541	037 02 0 00 006111 		PMSG	<^SWITCHES = >
  1666	001542	200 00 0 00 030046 		MOVE	CONSW
  1667	001543	037 13 0 00 000000 		PNTHW			;PRINT SWITCHES AT ERROR
  1668	001544	260 17 0 00 001465 		GO	%EACR
  1669	001545	332 00 0 00 030514 		SKIPE	%ERHI3		;IF NON-ZERO, XCT USERS ROUTINE
  1670	001546	256 00 0 00 030514 		XCT	%ERHI3
  1671
  1672	001547	550 03 1 00 030052 		HRRZ	3,@ERRPC	;GET "E FIELD" OF ERROR CALL
  1673	001550	200 00 0 00 030046 		MOVE	0,CONSW		;AC3 HAS THE ERROR CALL ADDR IN IT
  1674	001551	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1675	001552	254 00 0 00 001573 		JRST	%ERPR2		;YES
  1676	001553	201 00 0 00 006114 		MOVEI	0,SIXBTZ	<^ERROR IN >
  1677	001554	554 01 0 03 000000 		HLRZ	1,(3)		;GET NAME OF FAILING TEST
  1678	001555	322 01 0 00 001563 		JUMPE	1,%ERPR1	;JUMP IF NO TEST NAME
  1679	001556	037 14 0 00 000003 		PSIXL			;*DEFINE T=0 TO INHIBIT TEST NAME		
  1680	001557	200 00 0 00 000001 		MOVE	0,1
  1681	001560	037 14 0 00 000003 		PSIXL			;REPORT NAME OF FAILING TEST
  1682	001561	201 00 0 00 006116 		MOVEI	0,SIXBTZ	< - >
  1683	001562	254 00 0 00 001564 		JRST	.+2
  1684	001563	201 00 0 00 006117 	%ERPR1:	MOVEI	0,SIXBTZ	<^>
  1685	001564	550 01 0 03 000000 		HRRZ	1,(3)		;GET ADDRESS OF FUNCTION MSG
  1686	001565	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1687	001566	316 01 0 00 006110 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1688	001567	254 00 0 00 001573 		JRST	%ERPR2		;JUMP IF NO FUNCTION CALLED OUT.
  1689	001570	037 14 0 00 000003 		PSIXL		
  1690	001571	550 00 0 03 000000 		HRRZ	0,(3)		;GET MESSAGE ADDRESS AGAIN
  1691	001572	037 14 0 00 000003 		PSIXL			;REPORT FUNCTION BEING TESTED.
  1692	001573	476 00 0 00 030123 	%ERPR2:	SETOM	%DISCR#		;SET 'DISCREPANCY FLAG'.
  1693						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 14
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0100

  1694					;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
  1695					S^;*********************************************************************^
  1696						SALL
  1697	001574	200 00 0 00 006744 	%ERP2B:	MOVE	%LUUO
  1698	001575	241 00 0 00 000015 		ROT	0,15		;GET THE X ARGUEMENT
  1699	001576	405 00 0 00 000017 		ANDI	0,17
  1700	001577	326 00 0 00 001601 		JUMPN	0,.+2		;PRINT 12 OCTAL DIGITS IF X=0
  1701	001600	201 00 0 00 000014 		MOVEI	0,14
  1702	001601	303 00 0 00 000014 		CAILE	0,14		;MAKE SURE THAT X IS A LEGAL ARGUMENT
  1703	001602	037 15 0 00 000004 		FATAL			;PROGRAM CALL ERROR
  1704	001603	242 00 0 00 000027 		LSH	0,^D<35-12>	;PUT X IN AC FIELD
  1705	001604	270 00 0 00 006120 		ADD	0,[PNTA]	;PRINT THE X ARGUEMENT
  1706	001605	202 00 0 00 006612 		MOVEM	0,%ERIN2
  1707	001606	201 00 0 00 006121 		MOVEI	0,SIXBTZ	<^CORRECT:  >
  1708	001607	554 02 0 03 000001 		HLRZ	2,1(3)		;GET ADDRESS OF EXPECTED TEST RESULTS
  1709	001610	326 02 0 00 001613 		JUMPN	2,.+3
  1710	001611	402 00 0 00 030123 		SETZM	%DISCR		;NO 'CORRECT RESULT' TYPEOUT
  1711	001612	254 00 0 00 001632 		JRST	%ERPR3
  1712	001613	476 00 0 00 030117 		SETOM	%CORFLG
  1713	001614	303 02 0 00 000003 		CAILE	2,3		;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
  1714	001615	254 00 0 00 001625 		JRST	%ERP2A
  1715	001616	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1716	001617	200 01 0 00 006735 		MOVE	1,%AC1
  1717	001620	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1718	001621	200 01 0 00 006736 		MOVE	1,%AC2
  1719	001622	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1720	001623	200 01 0 00 006737 		MOVE	1,%AC3
  1721	001624	254 00 0 00 001626 		JRST	.+2
  1722	001625	200 01 0 02 000000 	%ERP2A:	MOVE	1,(2)
  1723						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 15
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0101

  1724					;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
  1725					S^;*********************************************************************^
  1726						SALL
  1727	001626	037 14 0 00 000003 		PSIXL			;CORRECT RESULTS.
  1728	001627	200 00 0 00 000001 		MOVE	0,1
  1729	001630	264 00 0 00 006611 		JSR	%ERIN1		;REPORT CORRECT DATA
  1730	001631	202 01 0 00 030120 		MOVEM	1,%COREC#	;SAVE CORRECT DATA
  1731	001632	201 00 0 00 006123 	%ERPR3:	MOVEI	0,SIXBTZ	<^ACTUAL:   >
  1732	001633	550 02 0 03 000001 		HRRZ	2,1(3)		;GET ADDRESS OF ACTUAL TEST RESULTS.
  1733	001634	326 02 0 00 001637 		JUMPN	2,.+3
  1734	001635	402 00 0 00 030123 		SETZM	%DISCR		;NO 'ACTUAL RESULT' TYPEOUT.
  1735	001636	254 00 0 00 001656 		JRST	%ERPR4
  1736	001637	476 00 0 00 030121 		SETOM	%ACTFL
  1737	001640	303 02 0 00 000003 		CAILE	2,3		;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
  1738	001641	254 00 0 00 001651 		JRST	%ERP3A
  1739	001642	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1740	001643	200 01 0 00 006735 		MOVE	1,%AC1
  1741	001644	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1742	001645	200 01 0 00 006736 		MOVE	1,%AC2
  1743	001646	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1744	001647	200 01 0 00 006737 		MOVE	1,%AC3
  1745	001650	254 00 0 00 001652 		JRST	.+2
  1746	001651	200 01 0 02 000000 	%ERP3A:	MOVE	1,(2)
  1747						LALL
  1748					;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
  1749					S^;*********************************************************************^
  1750						SALL
  1751	001652	037 14 0 00 000003 		PSIXL			;ACTUAL RESULTS
  1752	001653	200 00 0 00 000001 		MOVE	0,1
  1753	001654	264 00 0 00 006611 		JSR	%ERIN1		;REPORT ACTUAL DATA
  1754	001655	202 01 0 00 030122 		MOVEM	1,%ACTUL#	;SAVE ACTUAL DATA
  1755
  1756	001656	201 00 0 00 006125 	%ERPR4:	MOVEI	0,SIXBTZ	<^DISCREP:  >
  1757	001657	336 00 0 00 030123 		SKIPN	%DISCR		;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
  1758	001660	254 00 0 00 001667 		JRST	%ERPR5		;ACTUAL DATA REPORTED.
  1759	001661	200 01 0 00 030120 		MOVE	1,%COREC
  1760	001662	430 01 0 00 030122 		XOR	1,%ACTUL	;XOR CORRECT & ACTUAL DATA
  1761	001663	037 14 0 00 000003 		PSIXL		
  1762	001664	200 00 0 00 000001 		MOVE	0,1
  1763	001665	264 00 0 00 006611 		JSR	%ERIN1		;REPORT DISC BETWEEN COR & ACT
  1764	001666	202 01 0 00 030123 		MOVEM	1,%DISCR	;SAVE DISCREPANCY DATA
  1765						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 16
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0102

  1766					;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
  1767					S^;*********************************************************************^
  1768
  1769	001667	200 00 0 00 030046 	%ERPR5:	MOVE	0,CONSW
  1770	001670	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1771	001671	254 00 0 00 001701 		JRST	%ERPR6		;YES
  1772	001672	554 01 0 03 000002 		HLRZ	1,2(3)		;GET ADDRESS OF ASCIZ TEXT.
  1773	001673	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1774	001674	316 01 0 00 006110 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1775	001675	254 00 0 00 001701 		JRST	%ERPR6		;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
  1776	001676	037 00 0 00 030242 		PCRL
  1777	001677	554 00 0 03 000002 		HLRZ	0,2(3)		;GET MESSAGE ADDRESS AGAIN
  1778	001700	037 14 0 00 000003 		PSIXL		
  1779	001701	037 00 0 00 030242 	%ERPR6:	PCRL
  1780	001702	550 00 0 03 000002 		HRRZ	0,2(3)		;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
  1781	001703	260 17 0 00 001466 		GO	%EACR1
  1782	001704	202 00 0 00 006743 		MOVEM	0,%ERXTR#
  1783	001705	322 00 0 00 001714 		JUMPE	0,%ERMORE	;JUMP IF NONE
  1784	001706	200 00 0 00 030046 		MOVE	0,CONSW
  1785	001707	603 00 0 00 000200 		TLNE	0,TXTINH	;TEXT INHIBITED ?
  1786	001710	254 00 0 00 001714 		JRST	%ERMORE		;YES, NO ADDITIONAL PRINT
  1787	001711	200 00 0 00 006734 		MOVE	0,%AC0
  1788	001712	260 17 1 00 006743 		GO	@%ERXTR		;XFER TO PRINT ROUTINE, RETURN TO ERMORE
  1789	001713	202 00 0 00 006734 		MOVEM	0,%AC0
  1790	001714	200 00 0 00 006734 	%ERMORE:MOVE	0,%AC0
  1791	001715	256 00 0 00 030101 		XCT	ERMORE		;TO ADD ROUTINE PLACE XFR AT ERMORE
  1792									;IN "FIXED"
  1793	001716	260 17 0 00 001460 		GO	%EACS
  1794	001717	260 17 0 00 004272 		GO	$SWTCH
  1795
  1796					;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
  1797					S^;*********************************************************************^
  1798	001720	260 17 0 00 004661 	%ERSW1:	GO	$TALTM		;ALTMODE CHECK
  1799	001721	254 00 0 00 001725 		JRST	.+4		;NONE
  1800	001722	201 00 0 00 001725 		MOVEI	.+3		;SAVE ADDRESS FOR CONTINUE
  1801	001723	202 00 0 00 000130 		MOVEM	JOBOPC
  1802	001724	254 00 1 00 030063 		JRST	@ALTMGO		;PERFORM TRANSFER
  1803	001725	200 03 0 00 030046 		MOVE	3,CONSW
  1804	001726	607 03 0 00 002000 		TLNN	3,ERSTOP	;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
  1805	001727	254 00 0 00 001736 		JRST	%ERSW2		;NO
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 17
SUBKLM	MAC	11-Sep-78 11:38		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0103

  1806					;*EXECUTE HALT IF SWITCH ERSTOP SET.
  1807					S^;*********************************************************************^
  1808
  1809	001730	260 17 0 00 001465 	%ERS1A:	GO	%EACR		;RESTORE AC'S
  1810	001731	254 00 0 00 002240 		JRST	$ERHLT		;USE SUBROUTINE ERROR HALT
  1811
  1812	001732	336 00 0 00 006742 	%ERPRA:	SKIPN	%ERFST#		;PRINT PROGRAM NAME
  1813	001733	037 04 0 00 000002 		PNTNM
  1814	001734	476 00 0 00 006742 		SETOM	%ERFST
  1815	001735	254 00 0 00 001531 		JRST	%ERPRB
  1816
  1817					;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
  1818					S^;*********************************************************************^
  1819
  1820	001736	607 03 0 00 004000 	%ERSW2:	TLNN	3,LOOPER
  1821	001737	402 00 0 00 030116 		SETZM	SCOPE		;CLEAR SCOPE LOOP CONTROL
  1822	001740	350 00 0 00 006740 		AOS	%ERCNT	;INCREMENT ERROR COUNT
  1823
  1824					;*RING TTY BELL IF DING SWITCH IS SET.
  1825					S^;*********************************************************************^
  1826
  1827	001741	603 03 0 00 010000 	%ERSW3:	TLNE	3,DING
  1828	001742	037 01 0 00 000007 		PBELL
  1829
  1830					;*RETURN TO ERROR CALL ADDRESS+1
  1831					S^;*********************************************************************^
  1832
  1833	001743	260 17 0 00 001466 	%EXCAL:	GO	%EACR1
  1834	001744	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  1835	001745	254 00 0 00 001751 		JRST	%EXCL1		;NO, CONTINUE PROGRAM
  1836	001746	200 00 0 00 030053 		MOVE	0,ERRTLS	;YES
  1837	001747	301 00 0 00 000005 		CAIL	0,5		;PRINTED ALLOWED ERRORS ?
  1838	001750	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  1839	001751	200 00 0 00 006734 	%EXCL1:	MOVE	0,%AC0
  1840	001752	332 00 0 00 030513 		SKIPE	%ERHI2		;ANY USERS INSTRUCTION ?
  1841	001753	256 00 0 00 030513 		XCT	%ERHI2		;YES, DO USERS ROUTINE
  1842	001754	263 17 0 00 000000 		RTN			;CONTINUE PROGRAM
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 18
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0104

  1843					SUBTTL	*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
  1844
  1845					S^;*********************************************************************^
  1846					;*THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
  1847					;*THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA
  1848					S^;*********************************************************************^
  1849
  1850	001755	402 00 0 00 006654 	$DTEIN:	SETZM	$DTER1#		;CLEAR DTE20 OUT-OF-SEQUENCE COUNT
  1851	001756	402 00 0 00 000140 		SETZM	140
  1852	001757	402 00 0 00 000444 		SETZM	$DTFLG
  1853	001760	200 00 0 00 006127 		MOVE	0,[140,,141]
  1854	001761	251 00 0 00 000177 		BLT	0,177		;CLEAR DTE20 EPT LOCATIONS
  1855	001762	200 00 0 00 006130 		MOVE	0,[$DTFLG,,$DTCLK]
  1856	001763	251 00 0 00 000452 		BLT	0,$DTSEQ	;CLEAR DTE COMMUNICATIONS AREA
  1857	001764	200 00 0 00 000453 		MOVE	AC0,$DTOPR	;GET OPERATIONAL DTE #
  1858	001765	436 00 0 00 002020 		ORM	AC0,$$DTE0	;INSERT IN DTE I/O INST'S
  1859	001766	436 00 0 00 001776 		ORM	AC0,$$DTE1
  1860	001767	436 00 0 00 002051 		ORM	AC0,$$DTE2
  1861	001770	200 00 0 00 006131 		MOVE	AC0,[JSR $DTRPT];LOAD INTERRUPT TRANSFER INSTR.
  1862	001771	202 00 0 00 000142 		MOVEM	AC0,142		;PUT IN THE DTE-20 AREA
  1863	001772	202 00 0 00 000152 		MOVEM	AC0,152
  1864	001773	202 00 0 00 000162 		MOVEM	AC0,162
  1865	001774	202 00 0 00 000172 		MOVEM	AC0,172
  1866	001775	263 17 0 00 000000 		RTN			;EXIT
  1867
  1868					S^;*********************************************************************^
  1869					;*DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE
  1870					S^;*********************************************************************^
  1871
  1872	001776				$$DTEI:
  1873	001776	7 200 20 0 00 001000 	$$DTE1:	CONO	DTE,DNG10C	;CLEAR THE 10 DOORBELL BIT
  1874	001777	336 00 0 00 000445 		SKIPN	$DTCLK		;THIS DTE20 CLOCK INTERRUPT ?
  1875	002000	254 00 0 00 002006 		JRST	$$DTER		;NO FLAGS SET, IMPOSSIBLE CONDITION
  1876	
  1877	002001	402 00 0 00 000445 	$CLKDTE:SETZM	$DTCLK		;CLEAR CLOCK FLAG
  1878	002002	476 00 0 00 030045 		SETOM	CLOCKF		;SET DIAG SEGMENT CLOCK FLAG
  1879	002003	332 00 0 00 000446 		SKIPE	$DTCI		;ANY XCT INSTRUCTION ?
  1880	002004	256 00 0 00 000446 		XCT	$DTCI		;YES, DO USERS REQUEST
  1881	002005	254 12 1 00 006603 		JEN	@$DTRPT		;RESUME PROGRAM
  1882
  1883	002006	261 17 0 00 000000 	$$DTER:	PUT	0		;REPORT DTE ERROR
  1884						PMSGF	<^SPURIOUS DTE INT^>^
  1885	002007	037 04 0 00 006132 		PSIXMF	[SIXBIT\^SPURIOUS DTE INT^_\]^
  1886	002010	262 17 0 00 000000 		GET	0
  1887	002011	254 12 1 00 006603 		JEN	@$DTRPT		;RESUME
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 19
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0105

  1888					S^;*********************************************************************^
  1889					;*DTE20 COMMUNICATIONS ROUTINE
  1890					S^;*********************************************************************^
  1891
  1892	002012				$DTEXX:
  1893	002012	332 00 0 00 000444 	$DTEX1:	SKIPE	$DTFLG		;DTE20 INTERRUPT FLAG SET?
  1894	002013	350 00 0 00 006654 		AOS	$DTER1		;YES, NEVER FINISHED LAST OPERATION
  1895
  1896	002014	402 00 0 00 000444 	$DTEX2:	SETZM	$DTFLG		;INITIALIZE INTERRUPT FLAG
  1897	002015	202 00 0 00 000451 		MOVEM	AC0,$DTCMD	;SETUP 10 TO 11 COMMAND WORD
  1898	002016	402 00 0 00 000450 		SETZM	$DTF11		;CLEAR RESPONSE WORD
  1899	002017	350 00 0 00 000452 		AOS	$DTSEQ		;COUNT DTE20 OPERATION
  1900
  1901	002020	7 200 20 0 00 020000 	$$DTE0:	CONO	DTE,DONG11	;RING BELL
  1902	002021	336 00 0 00 000444 		SKIPN	$DTFLG		;WAIT FOR DTE20 COMM INTERRUPT
  1903	002022	254 00 0 00 002021 		JRST	.-1
  1904
  1905	002023	402 00 0 00 000444 	$DTEX3:	SETZM	$DTFLG		;CLEAR INTERRUPT FLAG
  1906	002024	200 00 0 00 000450 		MOVE	AC0,$DTF11	;PUT RESPONSE IN AC0
  1907	002025	263 17 0 00 000000 		RTN			;RESUME CALLING SUBROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 20
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0106

  1908					S^;*********************************************************************^
  1909					;*this routine looks @ ac0 to determine whether to enable/disable
  1910					;*setting clock ticked flag "clockf" IN THE 10 WHEN A POWER LINE
  1911					;*CLOCK CYCLE OCCURS IN THE 11 (EVERY 16.67 MS)
  1912					;*or TO executE an instruction upon occurrence of the clock tick
  1913					;*	ac0 = 0 for disable
  1914					;*	ac0 = -1 for enable
  1915					;*	AC0 = INST FOR ENABLE & EXECUTE INST
  1916					;*	AC0 = 0,,X FOR WAIT X THEN CLOCK XCT OF INST IN AC1
  1917					;*	AC0 = 0,,1 FOR READ PRESENT CLOCK COUNT SINCE ENABLED
  1918					s^;*********************************************************************^
  1919
  1920	002026	306 00 0 00 000001 	$clock:	CAIN	AC0,1
  1921	002027	254 00 0 00 002047 		JRST	$CLKRD		;READ CLOCK COUNT
  1922	002030	402 00 0 00 000446 		SETZM	$DTCI
  1923	002031	322 00 0 00 002041 		JUMPE	AC0,$CLKOF	;ENABLE the 11 clock to 10?
  1924	002032	316 00 0 00 006136 		CAMN	AC0,[-1]	;YES ...DOES AC0 HAVE -1?
  1925	002033	254 00 0 00 002037 		JRST	$CLKON		;YES ...NOTIFY WHEN CLOCK TICKS
  1926	002034	607 00 0 00 777777 		TLNN	AC0,-1		;IS AC0 = 0,,X ?
  1927	002035	254 00 0 00 002043 		JRST	$CLKWT		;YES...(AC1) IS INST, AC0 = WAIT COUNT
  1928	002036	202 00 0 00 000446 		MOVEM	AC0,$DTCI	;INST IN AC0, SAVE
  1929
  1930	002037	201 00 0 00 001001 	$CLKON:	MOVEI	AC0,1001	;TURN CLOCK ON
  1931	002040	254 00 0 00 002051 		JRST	$CLKXX
  1932
  1933	002041	201 00 0 00 001000 	$clkof:	MOVEI	ac0,1000	;TURN CLOCK OFF
  1934	002042	254 00 0 00 002012 		PJRST	$DTEXX
  1935
  1936	002043	202 01 0 00 000446 	$CLKWT:	MOVEM	1,$DTCI		;(AC1) = INST, (AC0) = WAIT COUNT
  1937	002044	202 00 0 00 000447 		MOVEM	AC0,$DTT11	;SETUP DATA WORD TO PDP-11
  1938	002045	201 00 0 00 001002 		MOVEI	AC0,1002
  1939	002046	254 00 0 00 002051 		JRST	$CLKXX
  1940
  1941	002047	201 00 0 00 001003 	$CLKRD:	MOVEI	AC0,1003	;READ CLOCK COUNT
  1942	002050	254 00 0 00 002012 		PJRST	$DTEXX		;CLOCK COUNT RETURNED IN AC0
  1943
  1944	002051				$CLKXX:
  1945	002051	7 200 20 0 00 000021 	$$DTE2:	CONO	DTE,21		;TURN DTE20 INTERRUPTS ON
  1946	002052	254 00 0 00 002012 		PJRST	$DTEXX
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 21
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0107

  1947					S^;*********************************************************************^
  1948					;*THIS ROUTINE CONTROLS THE DK20 METER FOR NORMAL DIAGNOSTICS
  1949					;*ALLOWS METER TO BE ENABLED/DISABLED AND FOR EVERY METER
  1950					;*PERIOD THE "CLOCKF" FLAG IS SET AND AN OPTIONAL INSTRUCTION 
  1951					;*EXECUTED.  THE METER PERIOD IS SET FOR 16.67 MS (60 HZ).
  1952					;*	OR FOR 20 MS FOR A 50HZ PROCESSOR.
  1953					S^;*********************************************************************^
  1954
  1955	002053	306 00 0 00 000001 	$MTROP:	CAIN	AC0,1
  1956	002054	254 00 0 00 002102 		JRST	$MTRRD		;0,,1 = READ CLOCK COUNT
  1957	002055	7 024 20 0 00 000000 		CONO	MTR,0		;CLEAR INTERRUPT ASSIGNMENT
  1958	002056	7 020 20 0 00 400000 		CONO	TIM,400000	;CLEAR TIMER
  1959	002057	402 00 0 00 006605 		SETZM	$MTRI
  1960	002060	402 00 0 00 006606 		SETZM	$MTRWC
  1961	002061	322 00 0 00 002100 		JUMPE	AC0,$MTROF	;0,,0 = DISABLE
  1962	002062	316 00 0 00 006136 		CAMN	AC0,[-1]
  1963	002063	254 00 0 00 002067 		JRST	$MTRON		;-1 = ENABLE
  1964	002064	607 00 0 00 777777 		TLNN	AC0,-1
  1965	002065	254 00 0 00 002104 		JRST	$MTRW		;0,,X = WAIT
  1966	002066	202 00 0 00 006605 		MOVEM	AC0,$MTRI	;XCT INST
  1967
  1968	002067	200 00 0 00 006137 	$MTRON:	MOVE	[JSR $MTRIR]
  1969	002070	202 00 0 00 000514 		MOVEM	514		;SETUP METER VECTOR
  1970	002071	402 00 0 00 006607 		SETZM	MTRCNT		;CLEAR METER COUNT
  1971	002072	336 00 0 00 030505 		SKIPN	CYCL60
  1972	002073	7 020 20 0 00 463203 		CONO	TIM,463203	;60 HZ
  1973	002074	332 00 0 00 030505 		SKIPE	CYCL60
  1974	002075	7 020 20 0 00 463720 		CONO	TIM,463720	;50 HZ
  1975	002076	7 024 20 0 00 000001 		CONO	MTR,1		;ON PI CHN 1
  1976	002077	263 17 0 00 000000 		RTN
  1977
  1978	002100	7 024 20 0 00 000000 	$MTROF:	CONO	MTR,0		;TURN METER OFF
  1979	002101	263 17 0 00 000000 		RTN
  1980
  1981	002102	200 00 0 00 006607 	$MTRRD:	MOVE	0,MTRCNT	;READ METER COUNT
  1982	002103	263 17 0 00 000000 		RTN
  1983
  1984	002104	202 01 0 00 006605 	$MTRW:	MOVEM	1,$MTRI		;WAIT, INSTRUCTION IN AC1
  1985	002105	202 00 0 00 006606 		MOVEM	0,$MTRWC	;WAIT COUNT IN AC0
  1986	002106	254 00 0 00 002067 		JRST	$MTRON
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 22
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES                                              SEQ 0108

  1987					S^;*********************************************************************^
  1988					;*METER INTERRUPT ROUTINE
  1989					S^;*********************************************************************^
  1990
  1991	002107	000000	000000		$MTRIR:	0			;METER INTERRUPT ROUTINE
  1992	002110	7 024 20 0 00 000000 		CONO	MTR,0		;CLEAR METER
  1993	002111	336 00 0 00 030505 		SKIPN	CYCL60
  1994	002112	7 020 20 0 00 063203 		CONO	TIM,63203	;RESET PERIOD
  1995	002113	332 00 0 00 030505 		SKIPE	CYCL60
  1996	002114	7 020 20 0 00 063720 		CONO	TIM,63720
  1997	002115	7 024 20 0 00 000001 		CONO	MTR,1		;REENABLE
  1998	002116	350 00 0 00 006607 		AOS	MTRCNT		;COUNT CLOCK INTERVAL
  1999	002117	332 00 0 00 006606 		SKIPE	$MTRWC		;DOING A WAIT ?
  2000	002120	254 00 0 00 002125 		JRST	$MTIR2		;YES
  2001	002121	476 00 0 00 030045 	$MTIR1:	SETOM	CLOCKF		;SET DIAG SEGMENT CLOCK FLAG
  2002	002122	332 00 0 00 006605 		SKIPE	$MTRI		;ANY XCT INSTRUCTION ?
  2003	002123	256 00 0 00 006605 		XCT	$MTRI		;YES, DO USERS REQUEST
  2004	002124	254 12 1 00 002107 		JEN	@$MTRIR		;RESUME PROGRAM
  2005
  2006	002125	202 00 0 00 006610 	$MTIR2:	MOVEM	0,$MTRAC
  2007	002126	200 00 0 00 006607 		MOVE	0,MTRCNT
  2008	002127	311 00 0 00 006606 		CAML	0,$MTRWC	;WAITED LONG ENOUGH ?
  2009	002130	254 00 0 00 002133 		JRST	$MTIR3		;YES
  2010	002131	200 00 0 00 006610 		MOVE	0,$MTRAC	;NOT YET
  2011	002132	254 12 1 00 002107 		JEN	@$MTRIR		;JUST EXIT
  2012
  2013	002133	200 00 0 00 006610 	$MTIR3:	MOVE	0,$MTRAC
  2014	002134	254 00 0 00 002121 		JRST	$MTIR1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 23
SUBKLM	MAC	11-Sep-78 11:38		PROCESSOR TYPE DETERMINATION                                                       SEQ 0109

  2015					SUBTTL	PROCESSOR TYPE DETERMINATION
  2016					S^;*********************************************************************^
  2017
  2018	002135	402 00 0 00 030505 	$CPUTP:	SETZM	CYCL60
  2019	002136	402 00 0 00 030041 		SETZM	KLFLG
  2020	002137	402 00 0 00 030040 		SETZM	KAIFLG
  2021	002140	200 01 0 00 006102 	$CPKL:	MOVE	1,[1,,1]	;IF KL10, AC1 AFTER BLT WILL CHANGE
  2022	002141	251 01 0 00 000001 		BLT	1,1
  2023	002142	316 01 0 00 006102 		CAMN	1,[1,,1]
  2024	002143	254 00 0 00 001016 		JRST	CPIERR		;WRONG PROCESSOR
  2025	002144	476 00 0 00 030041 		SETOM	KLFLG		;KL10 - SET FLAG
  2026
  2027	002145	7 000 00 0 00 000000 	$CPLII:	BLKI	APR,0		;GET KL10 HARDWARE OPTIONS
  2028	002146	602 00 0 00 400000 		TRNE	0,1B18		;50 HZ BIT SET ?
  2029	002147	476 00 0 00 030505 		SETOM	CYCL60		;YES, SET INDICATOR
  2030	002150	606 00 0 00 200000 		TRNN	0,1B19		;CACHE OPTION BIT SET ?
  2031	002151	476 00 0 00 030506 		SETOM	CSHFLG		;NO, INHIBIT CACHE
  2032	002152	200 00 0 00 000457 		MOVE	$DTSWR		;GET INITIAL SWITCHES
  2033	002153	603 00 0 00 000004 		TLNE	CHAIN		;IS "CHAIN MODE" SET ?
  2034	002154	476 00 0 00 030056 		SETOM	$ONETM		;YES, DON'T PRINT ID INFO
  2035	002155	332 00 0 00 030043 		SKIPE	MONCTL		;DIAGNOSTIC MONITOR ?
  2036	002156	263 17 0 00 000000 		RTN			;YES, NO FURTHER INIT
  2037	002157	201 00 0 00 002647 		MOVEI	$IPGFL		;SETUP INITIALIZATION PAGE FAIL TRAP
  2038	002160	202 00 0 00 000502 		MOVEM	LPGFTR
  2039	002161	7 010 24 0 00 000000 		CONI	PAG,0
  2040	002162	620 00 0 00 057777 		TRZ	0,57777
  2041	002163	7 010 20 1 00 000000 		CONO	PAG,@0		;CLEAR EBR
  2042	002164	7 010 24 0 00 000000 		CONI	PAG,0		;READ EBR
  2043	002165	620 00 0 00 620000 		TRZ	0,620000	;CLEAR CACHE & TRPENB
  2044	002166	302 00 0 00 000000 		CAIE	0,0
  2045	002167	254 04 0 00 001016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  2046	002170	7 010 14 0 00 006140 		DATAO	PAG,[LLPRCN!LLDUSB,,400000] ;CLEAR UBR
  2047	002171	7 010 04 0 00 000000 		DATAI	PAG,0		;READ UBR
  2048	002172	621 00 0 00 747700 		TLZ	0,747700	;CLEAR MISC, CURR & PREV AC BLOCK
  2049	002173	302 00 0 00 000000 		CAIE	0,0
  2050	002174	254 04 0 00 001016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  2051	002175	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 24
SUBKLM	MAC	11-Sep-78 11:38		"DIAMON" FILE SELECTION & READ                                                     SEQ 0110

  2052					SUBTTL	"DIAMON" FILE SELECTION & READ
  2053					S^;*********************************************************************^
  2054
  2055	002176	261 17 0 00 000000 	$FSELECT:PUT	0
  2056	002177	402 00 0 00 006656 		SETZM	$FSELF#
  2057	002200	200 00 0 00 006141 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  2058	002201	251 00 0 00 006632 		BLT	POWER+16
  2059	002202	262 17 0 00 000000 		GET	0
  2060	002203	336 00 0 00 027772 		SKIPN	FSELNK		;ANY FILE SELECT LINK ?
  2061	002204	254 00 0 00 002216 		JRST	$FSEL1		;NO
  2062
  2063	002205	260 17 1 00 027772 		GO	@FSELNK		;TRANSFER TO "DIAMON"
  2064	002206	254 00 0 00 002211 		JRST	$FSEL2		;ERROR RTN, AC0 HAS CODE
  2065
  2066	002207	476 00 0 00 006656 		SETOM	$FSELF		;FOUND, SET FILE SELECTED FLAG
  2067	002210	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN
  2068	002211	261 17 0 00 000000 	$FSEL2:	PUT	0
  2069	002212	204 00 0 00 006141 		MOVS	0,[1,,POWER+1]	;RESTORE ACS
  2070	002213	251 00 0 00 000016 		BLT	16
  2071	002214	262 17 0 00 000000 		GET	0
  2072	002215	263 17 0 00 000000 		RTN
  2073
  2074	002216	402 00 0 00 000000 	$FSEL1:	SETZM	0		;NO "DIAMON" CAPABILTY
  2075	002217	254 00 0 00 002211 		JRST	$FSEL2
  2076
  2077					;*"DIAMON" FILE READ
  2078					S^;*********************************************************************^
  2079
  2080	002220	201 00 0 00 000001 	$FRD8:	MOVEI	0,1		;SET FLAG FOR 8BIT READ
  2081	002221	254 00 0 00 002225 		JRST	.+4
  2082	002222	474 00 0 00 000000 	$FRD36:	SETO			;SET FLAG FOR 36 BIT READ
  2083	002223	254 00 0 00 002225 		JRST	.+2
  2084	002224	400 00 0 00 000000 	$FREAD:	SETZ			;SET FLAG FOR 7 BIT ASCII READ
  2085	002225	261 17 0 00 000000 		PUT	0
  2086	002226	336 00 0 00 006656 		SKIPN	$FSELF		;WAS ANY FILE SELECTED ?
  2087	002227	037 15 0 00 000004 		FATAL			;NO
  2088	002230	336 00 0 00 027773 		SKIPN	FRDLNK		;ANY FILE READ LINK ?
  2089	002231	037 15 0 00 000004 		FATAL			;NO
  2090	002232	200 00 0 00 006141 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  2091	002233	251 00 0 00 006632 		BLT	POWER+16
  2092	002234	262 17 0 00 000000 		GET	0		;GET FORMAT FLAG
  2093	002235	260 17 1 00 027773 		GO	@FRDLNK		;TRANSFER TO "DIAMON"
  2094	002236	254 00 0 00 002211 		JRST	$FSEL2		;EOF
  2095	002237	254 00 0 00 002210 		JRST	$FSEL2-1	;OK, SKIP RETURN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 25
SUBKLM	MAC	11-Sep-78 11:38		PROGRAM HALTS                                                                      SEQ 0111

  2096					SUBTTL	PROGRAM HALTS
  2097
  2098					;*SUBROUTINE ERROR HALT
  2099					S^;*********************************************************************^
  2100
  2101	002240	037 04 0 00 000002 	$ERHLT:	PNTNM			;PRINT PROGRAM NAME
  2102						PMSGF	<ERROR HALT AT >^
  2103	002241	037 04 0 00 006142 		PSIXMF	[SIXBIT\ERROR HALT AT _\]^
  2104	002242	262 17 0 00 006655 		GET	$ERH0
  2105	002243	261 17 0 00 000000 		PUT	0
  2106	002244	200 00 0 00 006655 		MOVE	AC0,$ERH0#	;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
  2107	002245	370 00 0 00 000000 		SOS			;SUBTRACT ONE FOR USRPC OF ERROR
  2108	002246	037 06 0 00 000001 		PNT6F			;PRINT USRPC FORCED
  2109	002247	037 01 0 00 030242 		PCRLF
  2110
  2111	002250	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER MONITOR CONTROL ?
  2112	002251	254 00 0 00 002257 		JRST	$ERHL4		;NO..HALT AT USRPC WHERE UUO OCCURRED
  2113
  2114	002252	260 17 0 00 004272 	$ERHL1:	GO	$SWTCH		;READ SWITCHES INTO AC0
  2115	002253	603 00 0 00 002000 		TLNE	0,ERSTOP	;HALT ON ERROR SWITCH SET ?
  2116	002254	254 00 0 00 002257 		JRST	$ERHL4		;YES...HALT
  2117
  2118	002255	262 17 0 00 000000 	$ERHL3:	GET	AC0		;RESTORE  THE STACK (P - 1)
  2119	002256	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  2120
  2121	002257	476 00 0 00 006635 	$ERHL4:	SETOM	KLNSW
  2122	002260	201 00 0 00 000402 		MOVEI	AC0,402		;IF KL10, NOTIFY PDP-11
  2123	002261	260 17 0 00 002012 		GO	$DTEXX
  2124	002262	262 17 0 00 000000 		GET	AC0
  2125	002263	254 04 1 00 006655 		HALT	@$ERH0		;NO, HALT WHERE ERROR OCCURED
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 26
SUBKLM	MAC	11-Sep-78 11:38		PROGRAM HALTS                                                                      SEQ 0112

  2126					;*FATAL PROGRAM ERROR HALT
  2127					S^;*********************************************************************^
  2128
  2129	002264	037 04 0 00 000002 	$FATAL:	PNTNM
  2130						PMSGF	<FATAL PROGRAM ERROR AT >^
  2131	002265	037 04 0 00 006145 		PSIXMF	[SIXBIT\FATAL PROGRAM ERROR AT _\]^
  2132	002266	200 00 0 17 000000 		MOVE	AC0,(P)		;RETRIEVE USRPC + 1 FROM THE STACK
  2133	002267	370 00 0 00 000000 		SOS			;- 1
  2134	002270	037 06 0 00 000001 		PNT6F			;PRINT IT
  2135	002271	037 01 0 00 030242 		PCRLF
  2136	002272	331 00 0 00 030043 		SKIPL	MONCTL		;EXEC - DIAGNOSTIC MONITOR ?
  2137	002273	254 00 0 00 002277 		JRST	$FATL1		;NO, END OF PROGRAM
  2138	002274	260 17 0 00 004272 		GO	$SWTCH		;YES ... READ SWITCHES
  2139	002275	607 00 0 00 002000 		TLNN	ERSTOP		;STOP ON ERROR ?
  2140	002276	254 00 0 00 030061 		JRST	$BEND2		;NO, END OF PROGRAM
  2141
  2142	002277	476 00 0 00 006635 	$FATL1:	SETOM	KLNSW
  2143	002300	201 00 0 00 000401 		MOVEI	AC0,401
  2144	002301	260 17 0 00 002012 		GO	$DTEXX		;NOTIFY PDP-11
  2145
  2146	002302	261 17 0 00 000000 	$DDTENT:PUT	0
  2147	002303	200 00 0 00 010001 		MOVE	AC0,DDT+1	;GET DDT ID
  2148	002304	312 00 0 00 006151 		CAME	AC0,[ASCII/DDT/]
  2149	002305	254 00 0 00 030061 		JRST	$BEND2		;NOT LOADED, END PROGRAM
  2150	002306	262 17 0 00 000000 		GET	0
  2151	002307	254 00 1 00 027775 		JRST	@DDTLNK		;DDT LOADED, GO TO IT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 27
SUBKLM	MAC	11-Sep-78 11:38		PROGRAM NAME PRINTER                                                               SEQ 0113

  2152					SUBTTL	PROGRAM NAME PRINTER
  2153
  2154					;*PRINT PROGRAM NAME IF NOT STAND-ALONE
  2155					S^;*********************************************************************^
  2156						SALL
  2157	002310	331 00 0 00 030043 	$PNTNM:	SKIPL	MONCTL		;DIAG MON / SYS EXR ?
  2158	002311	254 00 0 00 002356 		JRST	$PNM2		;NO
  2159	002312	037 00 1 00 030025 		PNTMSG	@$PNAME		;PRINT PROGRAM NAME
  2160	002313	037 02 0 00 006152 		PMSG	<VERSION >
  2161	002314	554 00 0 00 000137 		HLRZ	JOBVER
  2162	002315	037 16 0 00 000003 		PNTOCS			;PRINT MCN LEVEL
  2163	002316	037 00 0 00 000056 		PNTCI	"."
  2164	002317	550 00 0 00 000137 		HRRZ	JOBVER
  2165	002320	037 16 0 00 000003 		PNTOCS			;PRINT DEC VERSION
  2166	002321	037 02 0 00 006154 		PMSG	<, SV=>
  2167	002322	554 00 0 00 001006 		HLRZ	SUBVER
  2168	002323	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" MCN LEVEL
  2169	002324	037 00 0 00 000056 		PNTCI	"."
  2170	002325	550 00 0 00 001006 		HRRZ	SUBVER
  2171	002326	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" DEC VERSION
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 28
SUBKLM	MAC	11-Sep-78 11:38		PROGRAM NAME PRINTER                                                               SEQ 0114

  2172	002327	7 000 00 0 00 006660 	$KLSN:	BLKI	APR,$KLSNX#	;GET KL10 CPU ID INFO
  2173	002330	200 00 0 00 006660 		MOVE	$KLSNX
  2174	002331	405 00 0 00 007777 		ANDI	7777
  2175	002332	260 17 0 00 002360 		GO	$SNPNT		;PRINT CPU SERIAL NUMBER
  2176	002333	037 02 0 00 006155 		PMSG	<, MCV=>
  2177	002334	200 00 0 00 006660 		MOVE	$KLSNX
  2178	002335	207 00 0 00 000000 		MOVSS
  2179	002336	405 00 0 00 000777 		ANDI	777
  2180	002337	037 16 0 00 000003 		PNTOCS			;PRINT MICRO-CODE VERSION
  2181	002340	037 02 0 00 006157 		PMSG	<, MCO=>
  2182	002341	200 00 0 00 006660 		MOVE	$KLSNX
  2183	002342	242 00 0 00 777745 		LSH	-^D27
  2184	002343	405 00 0 00 000777 		ANDI	777
  2185	002344	037 16 0 00 000003 		PNTOCS			;PRINT MICRO-CODE OPTIONS
  2186	002345	037 02 0 00 006161 		PMSG	<, HO=>
  2187	002346	200 00 0 00 006660 		MOVE	$KLSNX
  2188	002347	242 00 0 00 777764 		LSH	-^D12
  2189	002350	405 00 0 00 000077 		ANDI	77
  2190	002351	037 16 0 00 000003 		PNTOCS			;PRINT HARDWARE OPTIONS
  2191
  2192	002352	336 00 0 00 030505 	$PNM1:	SKIPN	CYCL60
  2193	002353	037 02 0 00 006162 		PMSG	<, 60HZ>
  2194	002354	332 00 0 00 030505 		SKIPE	CYCL60
  2195	002355	037 02 0 00 006164 		PMSG	<, 50HZ>
  2196
  2197	002356	037 00 0 00 030242 	$PNM2:	PCRL
  2198	002357	263 17 0 00 000000 		RTN			;EXIT
  2199
  2200	002360	261 17 0 00 000000 	$SNPNT:	PUT	0
  2201	002361	037 02 0 00 006166 		PMSG	<, CPU#=>
  2202	002362	262 17 0 00 000000 		GET	0
  2203	002363	037 15 0 00 000000 		PNTDEC			;PRINT CPU SERIAL NUMBER
  2204	002364	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 29
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0115

  2205					SUBTTL	*SUBRTN* INTERRUPT HANDLING ROUTINES
  2206						LALL
  2207
  2208					;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
  2209					S^;*********************************************************************^
  2210
  2211	002365				PSHERR:	PMSGF	<^*****^PLIST UFLOW^>^
  2212	002365	037 04 0 00 006170 		PSIXMF	[SIXBIT\^*****^PLIST UFLOW^_\]^
  2213	002366	037 15 0 00 000004 		FATAL			;PRINT LOCATION AND EXIT
  2214
  2215					S^;*********************************************************************^
  2216					;*INTERRUPT ROUTINE INITIALIZATION
  2217					;*SETUP INTERRUPT VECTORS
  2218					S^;*********************************************************************^
  2219
  2220	002367	200 00 0 00 006174 	$ITRIN:	MOVE	[JSR ITRCH1]
  2221	002370	202 00 0 00 000042 		MOVEM	42
  2222	002371	202 00 0 00 000044 		MOVEM	44
  2223	002372	202 00 0 00 000046 		MOVEM	46
  2224	002373	202 00 0 00 000050 		MOVEM	50
  2225	002374	202 00 0 00 000052 		MOVEM	52
  2226	002375	202 00 0 00 000054 		MOVEM	54
  2227	002376	202 00 0 00 000056 		MOVEM	56
  2228
  2229	002377	200 00 0 00 006175 		MOVE	[JRST $ITRC1]	;SETUP "FIXED" LINKING
  2230	002400	202 00 0 00 030105 		MOVEM	ITRCH1+1
  2231	002401	200 00 0 00 006176 		MOVE	[JRST RESRTX]
  2232	002402	202 00 0 00 030076 		MOVEM	RESRT1
  2233	002403	254 00 0 00 002631 		JRST	$KL10
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 30
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0116

  2234					;*DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
  2235					S^;*********************************************************************^
  2236						SALL
  2237	002404	202 17 0 00 006702 	$PDOVU:	MOVEM	P,$PDOVP#
  2238	002405	200 17 0 00 030303 		MOVE	P,PLIST		;RESET POINTER
  2239	002406	201 00 0 00 030103 		MOVEI	0,$PSHER
  2240	002407	261 17 0 00 000000 		PUSH	P,0
  2241	002410	037 02 0 00 006177 		PMSG	<^*****^PLIST OVERFLOW P=>
  2242	002411	200 00 0 00 006702 		MOVE	0,$PDOVP
  2243	002412	037 13 0 00 000000 		PNTHW
  2244	002413	400 00 0 00 000000 		SETZ
  2245	002414	254 00 0 00 002442 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE
  2246
  2247	002415	201 00 0 00 006204 	$MPVU:	MOVEI	SIXBTZ	<^MEMORY PROT>
  2248	002416	254 00 0 00 002431 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2249
  2250	002417	201 00 0 00 006207 	$NXMU:	MOVEI	SIXBTZ	<^NON-EX MEMORY>
  2251	002420	254 00 0 00 002431 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2252
  2253	002421	200 00 0 00 030106 	$PAREX:	MOVE	0,$ACC0
  2254	002422	256 00 0 00 030100 		XCT	$PARER		;EXECUTE USER ROUTINE, IF PROVIDED
  2255	002423	201 00 0 00 006212 		MOVEI	SIXBTZ	<^MEMORY PARITY>
  2256	002424	254 00 0 00 002431 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2257						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 31
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0117

  2258					;*COMMON INTERRUPT HANDLERS
  2259					S^;*********************************************************************^
  2260						SALL
  2261	002425	200 00 0 00 030106 	$ITRHZ:	MOVE	0,$ACC0
  2262	002426	256 00 0 00 030071 		XCT	$ITRHL		;EXECUTE USER ROUTINE, IF SUPPLIED
  2263	002427	7 004 20 0 00 000400 		CONO	PI,PIOFF	;CLEAR PI SYSTEM
  2264	002430	201 00 0 00 006215 		MOVEI	SIXBTZ	<^UNKNOWN INTERRUPT>
  2265						LALL
  2266					;*PRINT CAUSE AND OTHER PERTINENT INFO
  2267					S^;*********************************************************************^
  2268						SALL
  2269	002431	261 17 0 00 000000 	$ITR1A:	PUT	0
  2270	002432	037 01 0 00 000026 		PFORCE
  2271	002433	700400	006542			700400,,$SVERA		;READ ERA
  2272	002434	037 02 0 00 006221 		PMSG	<^ERROR ADDRESS REG = >
  2273	002435	200 00 0 00 006542 		MOVE	$SVERA
  2274	002436	037 13 0 00 000000 		PNTHW
  2275	002437	260 17 0 00 003316 		GO	MEMSAV		;SAVE & RESET MEMORY CONTROLLERS
  2276	002440	260 17 0 00 003305 		GO	MREPORT		;REPORT CONTROLLERS WITH ERRORS
  2277	002441	262 17 0 00 000000 		GET	0
  2278	002442	332 00 0 00 000000 	$ITR1B:	SKIPE	0
  2279	002443	037 14 0 00 000003 		PSIXL			;PRINT CAUSE
  2280	002444	037 02 0 00 006225 		PMSG	<^APR            PI             FLAGS  PC      PROG^>
  2281	002445	200 00 0 00 030110 		MOVE	$SVAPR#
  2282	002446	037 13 0 00 000000 		PNTHW			;PRINT APR CONI BITS
  2283	002447	037 00 0 00 000040 		PSP
  2284	002450	200 00 0 00 030107 		MOVE	$SVPI#
  2285	002451	037 13 0 00 000000 		PNTHW			;PRINT PI CONI BITS
  2286	002452	037 00 0 00 000040 		PSP
  2287	002453	200 00 0 00 030104 		MOVE	ITRCH1
  2288	002454	037 13 0 00 000000 		PNTHW			;PRINT FLAGS, PC
  2289	002455	037 00 0 00 000040 		PSP
  2290	002456	550 00 0 17 000000 		HRRZ	0,(P)
  2291	002457	037 06 0 00 000000 		PNT6			;PRINT LAST PUSHJ ENTRY
  2292	002460	037 00 0 00 030242 		PCRL
  2293	002461	200 00 0 00 030106 		MOVE	0,$ACC0
  2294	002462	256 00 0 00 030072 		XCT	$ITRX1		;EXECUTE USER ROUTINE, IF SUPPLIED
  2295	002463	037 15 0 00 000004 		FATAL
  2296						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 32
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0118

  2297					;*COMMON INTERRUPT ROUTINE
  2298					S^;*********************************************************************^
  2299
  2300	002464	202 00 0 00 030106 	$ITRC1:	MOVEM	AC0,$ACC0#	;SAVE AC0
  2301	002465	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE APR SYSTEM
  2302	002466	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI SYSTEM
  2303	002467	200 00 0 00 000041 		MOVE	AC0,JOB41
  2304	002470	312 00 0 00 006053 		CAME	AC0,[GO	$UORTN]
  2305	002471	254 04 0 00 001020 		HALT	LUOERR		;UUO HANDLER INVALID
  2306	002472	200 00 0 00 030106 		MOVE	AC0,$ACC0
  2307	002473	254 00 0 00 002562 		JRST	$KLITR
  2308
  2309					;*RESTORE PROCESSOR ON POWER FAIL RESTART
  2310					S^;*********************************************************************^
  2311						SALL
  2312	002474	336 00 0 00 006713 	RESRTX:	SKIPN	$PWRF		;DID POWER FAIL WORK?
  2313	002475	254 00 0 00 002516 		JRST	$PWRFL		;NO
  2314	002476	254 00 0 00 002664 		JRST	$KLRST		;KL10
  2315
  2316	002477	552 01 0 00 030107 	$RSTCM:	HRRZM	1,$SVPI
  2317	002500	552 03 0 00 030110 		HRRZM	3,$SVAPR
  2318	002501	204 00 0 00 006141 		MOVS	[1,,POWER+1]	;RESTORE AC'S
  2319	002502	251 00 0 00 000017 		BLT	17
  2320	002503	037 04 0 00 006236 		PMSGF	<^POWER FAIL RESTART^>
  2321	002504	402 00 0 00 006713 		SETZM	$PWRF#
  2322	002505	200 00 0 00 006614 		MOVE	0,POWER
  2323	002506	256 00 0 00 030074 		XCT	$RSRTX		;EXECUTE USER ROUTINE, IF PROVIDED
  2324	002507	7 000 20 1 00 030110 		CONO	APR,@$SVAPR	;RESET APR SYSTEM
  2325	002510	7 004 20 1 00 030107 		CONO	PI,@$SVPI	;RESET PI SYSTEM
  2326	002511	204 00 0 00 006141 		MOVS	[1,,POWER+1]	;RESTORE AC'S
  2327	002512	251 00 0 00 000017 		BLT	17
  2328	002513	200 00 0 00 006614 		MOVE	0,POWER
  2329	002514	256 00 0 00 030075 		XCT	$RSRTY		;EXECUTE USER ROUTINE, IF PROVIDED
  2330	002515	254 02 1 00 006714 		JRSTF	@$PWRST
  2331
  2332	002516	265 00 0 00 030011 	$PWRFL:	PGMINT			;REINIT THE SUBROUTINE PACKAGE
  2333	002517	037 04 0 00 006242 		PMSGF	<^POWER INTERRUPT FAILED^>
  2334	002520	254 04 0 00 030000 		HALT	BEGIN
  2335						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 33
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0119

  2336					;*KL10 PUSHDOWN OVERFLOW TRAP ROUTINE
  2337					S^;*********************************************************************^
  2338
  2339	002521	202 00 0 00 030104 	$PDLOV:	MOVEM	AC0,ITRCH1	;SAVE USRPC  (VIA JSP)
  2340	002522	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2341	002523	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2342	002524	254 00 0 00 002404 		JRST	$PDOVU		;GO HANDLE IT
  2343
  2344					;*KL10 PAGE FAIL TRAP ROUTINE
  2345					S^;*********************************************************************^
  2346	002525	200 00 0 00 000501 	$PGFL:	MOVE	AC0,LPFWPC	;KL10, GET PAGE FAIL PC
  2347	002526	202 00 0 00 030104 		MOVEM	AC0,ITRCH1	;SAVE USRPC
  2348	002527	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2349	002530	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2350						PMSG	<^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- >^
  2351	002531	037 02 0 00 006247 		PSIXM	[SIXBIT\^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- _\]^
  2352	002532	200 00 0 00 000500 	$PGFL1:	MOVE	LEUPFW		;GET KL10 PAGE FAIL WORD
  2353	002533	037 13 0 00 000000 		PNTHW			;PRINT IT
  2354	002534	254 00 0 00 002660 		JRST	$PGFL2		;KL10, REPORT APR ERRORS ALSO
  2355
  2356					;*KL10 TRAP 3 ROUTINE
  2357					S^;*********************************************************************^
  2358	002535	202 00 0 00 030104 	$TRP3:	MOVEM	AC0,ITRCH1	;SAVE THE USRPC
  2359	002536	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2360	002537	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2361	002540	201 00 0 00 006256 		MOVEI	AC0,SIXBTZ	^TRAP 3 ERROR^	[SIXBIT\^TRAP 3 ERROR_\]^
  2362	002541	254 00 0 00 002442 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE START 
  2363
  2364					;*KL10 COMMON TRAP & MMUO SETUP
  2365					S^;*********************************************************************^
  2366
  2367	002542	205 00 0 00 255000 	$KIKLI:	MOVSI	(JFCL)
  2368	002543	202 00 0 00 000421 		MOVEM	LAROVT		;SETUP ARITHMETIC OV TRAP
  2369	002544	200 00 0 00 006261 		MOVE	[JSP $PDLOV]
  2370	002545	202 00 0 00 000422 		MOVEM	LPDOVTP		;SETUP PDL OV TRAP
  2371	002546	200 00 0 00 006262 		MOVE	[JSP $TRP3]
  2372	002547	202 00 0 00 000423 		MOVEM	LTRP3TP		;SETUP TRAP 3
  2373	002550	201 00 0 00 001301 		MOVEI	MUUOER		;SETP MUUO AS ERROR FOR THE FOLLOWING:
  2374	002551	202 00 0 00 000430 		MOVEM	LKNTRP		;KERNAL MODE - NO TRAP ENABLED
  2375	002552	202 00 0 00 000431 		MOVEM	LKTRP		;	"	TRAP ENABLED
  2376	002553	202 00 0 00 000432 		MOVEM	LSNTRP		;SUPERVISOR - NO TRAP
  2377	002554	202 00 0 00 000433 		MOVEM	LSTRP		;	"	TRAP
  2378	002555	202 00 0 00 000434 		MOVEM	LCNTRP		;CONCEALED - NO TRAP
  2379	002556	202 00 0 00 000435 		MOVEM	LCTRP		;	"	TRAP
  2380	002557	202 00 0 00 000436 		MOVEM	LPNTRP		;PUBLIC - NO TRAP
  2381	002560	202 00 0 00 000437 		MOVEM	LPTRP		;   "	  TRAP
  2382	002561	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 34
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0120

  2383					;*KL10 INTERRUPT ROUTINE
  2384					S^;*********************************************************************^
  2385						SALL
  2386	002562	7 010 04 0 00 030111 	$KLITR:	DATAI	PAG,$SVPAG#	;SAVE PAGE
  2387	002563	7 010 24 0 00 030112 		CONI	PAG,$SPAG1#
  2388	002564	7 000 34 0 00 000040 		CONSO	APR,LPWRFL	;POWER FAILURE?
  2389	002565	254 00 0 00 002601 		JRST	$KLIT1		;NO ...LOOK FOR PARITY ERROR
  2390
  2391	002566	200 00 0 00 006141 	$KLPWR:	MOVE	[1,,POWER+1]	;YES
  2392	002567	251 00 0 00 006633 		BLT	POWER+17
  2393	002570	200 00 0 00 030106 		MOVE	$ACC0
  2394	002571	202 00 0 00 006614 		MOVEM	POWER
  2395	002572	200 00 0 00 030104 		MOVE	ITRCH1
  2396	002573	202 00 0 00 006714 		MOVEM	$PWRST#		;USER RESTART IF WANTED
  2397	002574	200 00 0 00 006263 		MOVE	[JRST PFSTRT]
  2398	002575	202 00 0 00 000070 		MOVEM	70
  2399	002576	260 17 0 00 003243 		GO	$CFLUSH		;FLUSH CACHE IF ON
  2400	002577	476 00 0 00 006713 		SETOM	$PWRF		;NOTIFY OF POWER FAIL ON RESTART
  2401	002600	254 04 0 00 030000 		HALT	BEGIN		;UNTIL POWER ON 
  2402
  2403	002601	200 00 0 00 030110 	$KLIT1:	MOVE	$SVAPR		;GET APR CONDITIONS
  2404	002602	606 00 0 00 007700 		TRNN	LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
  2405	002603	254 00 0 00 002425 		JRST	$ITRHZ		;NONE OF THESE INTERRUPTS
  2406	002604	602 00 0 00 002000 		TRNE	LNXMER		;NON-X-MEM ERROR ?
  2407	002605	254 00 0 00 002417 		JRST	$NXMU		;YES
  2408	002606	602 00 0 00 000400 		TRNE	LPARER		;PARITY ERROR ?
  2409	002607	254 00 0 00 002421 		JRST	$PAREX		;YES
  2410	002610	602 00 0 00 004000 		TRNE	LSBUSE		;S-BUS ERROR ?
  2411	002611	254 00 0 00 002621 		JRST	$KLSBE
  2412	002612	602 00 0 00 001000 		TRNE	LIOPFE		;I/O PAGE FAIL ?
  2413	002613	254 00 0 00 002623 		JRST	$KLIOP
  2414	002614	602 00 0 00 000200 		TRNE	LCADRP		;CACHE ADR PARITY ?
  2415	002615	254 00 0 00 002625 		JRST	$KLCAD
  2416	002616	602 00 0 00 000100 		TRNE	LSADRP		;S-BUS ADR PARITY ?
  2417	002617	254 00 0 00 002627 		JRST	$KLSAD
  2418	002620	254 00 0 00 002425 		JRST	$ITRHZ		;NO ...REST ARE COMMON 
  2419
  2420	002621	201 00 0 00 006264 	$KLSBE:	MOVEI	SIXBTZ	<^S-BUS>
  2421	002622	254 00 0 00 002431 		JRST	$ITR1A
  2422	002623	201 00 0 00 006266 	$KLIOP:	MOVEI	SIXBTZ	<^I/O PAGE FAIL>
  2423	002624	254 00 0 00 002431 		JRST	$ITR1A
  2424	002625	201 00 0 00 006271 	$KLCAD:	MOVEI	SIXBTZ	<^CACHE ADR PARITY>
  2425	002626	254 00 0 00 002431 		JRST	$ITR1A
  2426	002627	201 00 0 00 006274 	$KLSAD:	MOVEI	SIXBTZ	<^S-BUS ADR PARITY>
  2427	002630	254 00 0 00 002431 		JRST	$ITR1A
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 35
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0121

  2428						LALL
  2429					;*KL10 INTERRUPT AND TRAP INITIALIZATION
  2430					S^;*********************************************************************^
  2431
  2432	002631	201 00 0 00 002650 	$KL10:	MOVEI	$KLPGFL
  2433	002632	202 00 0 00 000502 		MOVEM	LPGFTR		;SETUP PAGE FAIL TRAP
  2434	002633	260 17 0 00 002542 		GO	$KIKLI		;SETUP TRAPS & MUUOS
  2435	002634	7 004 20 0 00 031400 	$KLCLR:	CONO	PI,LRQCLR!LPICLR!LCHNOF!LPIOFF	;CLEAR PI SYSTEM,CHNL & REQ PEND
  2436	002635	7 000 20 0 00 127740 		CONO	APR,LAPRAL-20	;CLEAR PROCESSOR ALL
  2437
  2438	002636	336 00 0 00 030042 	$KLENB:	SKIPN	MONFLG		;MONITOR CONTROL (SPECIAL USER) ?
  2439	002637	254 00 0 00 002644 		JRST	.+5
  2440	002640	200 00 0 00 030046 		MOVE	CONSW
  2441	002641	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2442	002642	607 00 0 00 000100 		TLNN	INHPAG		;PAGING & TRAPPING INHIBITED ?
  2443	002643	260 17 0 00 003467 		GO	KLPAG		;NO, SETUP TRAP ENABLE
  2444	002644	7 000 20 0 00 000001 		CONO	APR,LAPRP1	;ENABLE CHANNEL 1
  2445	002645	7 004 20 0 00 002377 		CONO	PI,LCHNON!LPION!LPICHA	;ENABLE ALL PI CHNS
  2446	002646	263 17 0 00 000000 		RTN			;EXIT
  2447
  2448	002647	254 04 0 00 001016 	$IPGFL:	HALT	CPIERR		;KL10 INITIALIZATION PAGE FAIL
  2449
  2450	002650	554 00 0 00 000500 	$KLPGFL:HLRZ	0,LEUPFW	;GET PAGE FAIL WORD
  2451	002651	405 00 0 00 770000 		ANDI	0,770000	;ISOLATE PAGE FAIL CODE
  2452	002652	302 00 0 00 360000 		CAIE	0,360000	;AR PARITY ERROR ?
  2453	002653	254 00 0 00 002525 		JRST	$PGFL		;NO
  2454	002654	7 000 34 0 00 002000 		CONSO	APR,LNXMER	;YES, ALSO NON-X-MEMORY ?
  2455	002655	254 00 0 00 002525 		JRST	$PGFL		;NO, REAL AR PARITY ERROR
  2456	002656	350 00 0 00 000501 		AOS	LPFWPC		;YES, INCREMENT PAGE FAIL PC
  2457	002657	254 02 1 00 000501 		JRSTF	@LPFWPC		;RETURN TO NEXT INSTRUCTION
  2458
  2459	002660	200 00 0 00 030110 	$PGFL2:	MOVE	$SVAPR
  2460	002661	606 00 0 00 007700 		TRNN	LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
  2461	002662	254 00 0 00 002444 		JRST	$ITR1B+2	;NO APR ERRORS
  2462	002663	254 00 0 00 002601 		JRST	$KLIT1		;YES, REPORT APR ERRORS
  2463
  2464	002664	200 17 0 00 006633 	$KLRST:	MOVE	17,POWER+17	;RESTORE PUSH POINTER
  2465	002665	260 17 0 00 002634 		GO	$KLCLR		;CLEAR & ENABLE APR & PI
  2466	002666	260 17 0 00 002730 		GO	$KLCSH		;SETUP CACHE IF IT WAS ON
  2467	002667	254 00 0 00 002477 		JRST	$RSTCM		;RESTORE CPU & RESTART
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 36
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0122

  2468					SUBTTL	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
  2469						LALL
  2470					;*END OF PASS ROUTINE
  2471					S^;*********************************************************************^
  2472						SALL
  2473	002670	350 00 0 00 030047 	$END:	AOS	PASCNT		;INCREMENT PASS COUNTER
  2474	002671	370 00 0 00 030024 		SOS	ITRCNT
  2475	002672	402 00 0 00 030116 		SETZM	SCOPE
  2476	002673	402 00 0 00 030052 		SETZM	ERRPC
  2477	002674	260 17 0 00 004272 		GO	$SWTCH
  2478	002675	603 00 0 00 400000 		TLNE	ABORT		;ABORT AT END OF PASS ?
  2479	002676	254 00 0 00 002703 		JRST	$END2		;YES
  2480	002677	260 17 0 00 002712 		GO	$END4
  2481	002700	336 00 0 00 030024 		SKIPN	ITRCNT
  2482	002701	254 00 0 00 002710 	$END1:	JRST	$END3		;SKIP RETURN, COMPLETED ALL ITERATIONS
  2483	002702	263 17 0 00 000000 		RTN			;NON - SKIP , KEEP RUNNING
  2484	002703	037 04 0 00 006277 	$END2:	PMSGF	<END PASS >
  2485	002704	200 00 0 00 030047 		MOVE	PASCNT		;PRINT END OF PASS COUNT
  2486	002705	037 15 0 00 000001 		PNTDCF
  2487	002706	037 01 0 00 000056 		PNTCIF	"."
  2488	002707	037 01 0 00 030242 		PCRLF
  2489	002710	350 00 0 17 000000 	$END3:	AOS	(P)
  2490	002711	263 17 0 00 000000 		RTN
  2491	002712	335 00 0 00 030043 	$END4:	SKIPGE	MONCTL
  2492	002713	263 17 0 00 000000 		RTN			;"DIAMON" CONTROL
  2493	002714	201 00 0 00 000404 		MOVEI	AC0,404		;END OF PASS CODE
  2494	002715	260 17 0 00 002012 		GO	$DTEXX		;NOTIFY PDP-11
  2495	002716	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 37
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0123

  2496						LALL
  2497					;*END OF PROGRAM ROUTINE
  2498					S^;*********************************************************************^
  2499
  2500	002717	400 00 0 00 000000 	$EOP:	SETZ
  2501	002720	037 13 0 00 000004 		CLOKOP			;DISABLE PDP-11 CLOCK
  2502
  2503	002721	260 17 0 00 003247 		GO	$CWRTBI		;WRITEBACK & INVALIDATE CACHE IF ON
  2504	002722	7 010 20 0 00 000000 		CONO	PAG,0		;TURN OFF CACHE
  2505
  2506	002723	332 00 0 00 030044 		SKIPE	MONTEN		;KL10 & EXEC
  2507	002724	254 00 1 00 030012 		JRST	@RETURN		;LOADED BY 10, RETURN TO LOADER
  2508
  2509	002725	201 00 0 00 000403 		MOVEI	AC0,403		;LOADED BY PDP-11
  2510	002726	260 17 0 00 002012 		GO	$DTEXX		;NOTIFY OF EOP
  2511	002727	254 04 0 00 001017 		HALT	EOPERR		;SHOULD NEVER GET HERE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 38
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0124

  2512					SUBTTL	*SUBRTN* KL10 CACHE ENABLE
  2513					S^;*********************************************************************^
  2514
  2515	002730	332 00 0 00 030506 	$KLCSH:	SKIPE	CSHFLG
  2516	002731	263 17 0 00 000000 		RTN			;NO CACHE ALLOWED
  2517	002732	200 00 0 00 030046 		MOVE	CONSW
  2518	002733	603 00 0 00 000020 		TLNE	INHCSH
  2519	002734	263 17 0 00 000000 		RTN			;CACHE INHIBITED
  2520
  2521	002735	7 010 30 0 00 600000 	$CSH:	CONSZ	PAG,LCASLO!LCASLD	;CACHE ALREADY SETUP ?
  2522	002736	263 17 0 00 000000 		RTN			;YES, LEAVE IT ALONE THEN
  2523	002737	554 03 0 00 006634 		HLRZ	3,CLKDFL	;GET CACHE ENABLE BITS
  2524	002740	242 03 0 00 777762 		LSH	3,-^D14		;ISOLATE BITS 0,1,2,3
  2525	002741	405 03 0 00 000017 		ANDI	3,17
  2526	002742	336 00 0 00 000003 		SKIPN	3		;ANY CACHES ENABLED ?
  2527	002743	263 17 0 00 000000 		RTN			;NO CACHE
  2528
  2529	002744	561 00 0 00 777774 		HRROI	0,-4		;INITIAL "BLKO E"
  2530	002745	201 01 0 00 000200 		MOVEI	1,200		;"BLKO" COUNT
  2531	002746	402 00 0 00 000004 		SETZM	4
  2532	002747	200 02 0 03 002777 		MOVE	2,CTABLE(3)	;GET CACHE REFILL TABLE POINTER
  2533	002750	306 03 0 00 000010 		CAIN	3,10
  2534	002751	254 00 0 00 002773 		JRST	$CSH3		;CACHE 0
  2535	002752	306 03 0 00 000004 		CAIN	3,4
  2536	002753	254 00 0 00 002773 		JRST	$CSH3		;CACHE 1
  2537	002754	306 03 0 00 000002 		CAIN	3,2
  2538	002755	254 00 0 00 002773 		JRST	$CSH3		;CACHE 2
  2539	002756	306 03 0 00 000001 		CAIN	3,1
  2540	002757	254 00 0 00 002773 		JRST	$CSH3		;CACHE 3
  2541	002760	271 00 0 00 000004 	$CSH1:	ADDI	0,4		;BUMP "BLKO E" BY 4
  2542	002761	336 00 0 00 000004 		SKIPN	4		;SINGLE CACHE ?
  2543	002762	134 03 0 00 000002 		ILDB	3,2		;EXTRACT BYTE FROM TABLE
  2544	002763	137 03 0 00 006301 		DPB	3,[POINT 3,0,20] ;DEPOSIT INTO "BLKO" WORD
  2545	002764	7 000 10 1 00 000000 		BLKO	APR,@0		;LOAD CACHE RAM
  2546	002765	365 01 0 00 002760 		SOJGE	1,$CSH1		;LOOP FOR ALL LOC IN RAM
  2547
  2548	002766	260 17 0 00 003214 		GO	$CINVAL		;INVALIDATE CACHE
  2549
  2550	002767	7 010 24 0 00 000000 	$CSH2:	CONI	PAG,0
  2551	002770	660 00 0 00 600000 		TRO	LCASLO!LCASLD	;ENABLE LOOK & LOAD
  2552	002771	7 010 20 1 00 000000 		CONO	PAG,@0
  2553	002772	263 17 0 00 000000 		RTN
  2554
  2555	002773	200 03 0 00 000002 	$CSH3:	MOVE	3,2		;PUT CACHE DIGIT IN AC3
  2556	002774	344 04 0 00 002760 		AOJA	4,$CSH1
  2557
  2558	002775				$CSHER:	PMSGF	<CSWEEP TIMEOUT^>^
  2559	002775	037 04 0 00 006302 		PSIXMF	[SIXBIT\CSWEEP TIMEOUT^_\]^
  2560	002776	037 15 0 00 000004 		FATAL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 39
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0125

  2561	002777	000000	000000		CTABLE:	0
  2562	003000	000000	000003			3			;CACHE REFILL 3
  2563	003001	000000	000002			2			;CACHE REFILL 2
  2564	003002	44 03 0 00 003175 		POINT	3,CR23		;CACHE REFILL 2 & 3
  2565	003003	000000	000001			1			;CACHE REFILL 1
  2566	003004	44 03 0 00 003162 		POINT	3,CR13		;CACHE REFILL 1 & 3
  2567	003005	44 03 0 00 003147 		POINT	3,CR12		;CACHE REFILL 1 & 2
  2568	003006	44 03 0 00 003045 		POINT	3,CR123		;CACHE REFILL 1 & 2 & 3
  2569	003007	000000	000000			0			;CACHE REFILL 0
  2570	003010	44 03 0 00 003134 		POINT	3,CR03		;CACHE REFILL 0 & 3
  2571	003011	44 03 0 00 003121 		POINT	3,CR02		;CACHE REFILL 0 & 2
  2572	003012	44 03 0 00 003060 		POINT	3,CR023		;CACHE REFILL 0 & 2 & 3
  2573	003013	44 03 0 00 003106 		POINT	3,CR01		;CACHE REFILL 0 & 1
  2574	003014	44 03 0 00 003073 		POINT	3,CR013		;CACHE REFILL 0 & 1 & 3
  2575	003015	44 03 0 00 003032 		POINT	3,CR012		;CACHE REFILL 0 & 1 & 2
  2576	003016	44 03 0 00 003017 		POINT	3,CR0123	;CACHE REFILL 0 & 1 & 2 & 3
  2577
  2578					;CACHE REFILL TABLES FOR 1, 2, 3 AND 4 CACHE COMBINATIONS.
  2579					;DIGITS AFTER 'CR' INDICATE WHICH CACHES ARE ENABLED.
  2580
  2581	003017	012345	673123		CR0123:	012345673123
  2582	003020	212371	271127			212371271127
  2583	003021	656755	670323			656755670323
  2584	003022	022301	234567			022301234567
  2585	003023	077700	074666			077700074666
  2586	003024	446431	331113			446431331113
  2587	003025	077700	070123			077700070123
  2588	003026	456745	574547			456745574547
  2589	003027	012201	210566			012201210566
  2590	003030	056045	654564			056045654564
  2591	003031	012345	670000			012345670000
  2592
  2593	003032	012245	612122		CR012:	012245612122
  2594	003033	212211	211121			212211211121
  2595	003034	656255	620626			656255620626
  2596	003035	022601	264560			022601264560
  2597	003036	000000	004666			000000004666
  2598	003037	446451	551115			446451551115
  2599	003040	044400	040125			044400040125
  2600	003041	456445	504540			456445504540
  2601	003042	012201	210566			012201210566
  2602	003043	056045	654564			056045654564
  2603	003044	012645	640000			012645640000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 40
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0126

  2604	003045	312315	673123		CR123:	312315673123
  2605	003046	212371	271127			212371271127
  2606	003047	656755	677323			656755677323
  2607	003050	722331	232567			722331232567
  2608	003051	377733	372666			377733372666
  2609	003052	226231	331113			226231331113
  2610	003053	777777	777123			777777777123
  2611	003054	156715	571517			156715571517
  2612	003055	512251	216566			512251216566
  2613	003056	656655	655565			656655655565
  2614	003057	612355	670000			612355670000
  2615
  2616	003060	032342	673323		CR023:	032342673323
  2617	003061	232373	273327			232373273327
  2618	003062	626722	670323			626722670323
  2619	003063	022307	234067			022307234067
  2620	003064	077700	074666			077700074666
  2621	003065	446437	337773			446437337773
  2622	003066	077700	070723			077700070723
  2623	003067	406740	074047			406740074047
  2624	003070	062206	260466			062206260466
  2625	003071	046044	644464			046044644464
  2626	003072	062344	670000			062344670000
  2627
  2628	003073	013345	173133		CR013:	013345173133
  2629	003074	313371	371137			313371371137
  2630	003075	151755	170373			151755170373
  2631	003076	077301	734507			077301734507
  2632	003077	077700	074000			077700074000
  2633	003100	440431	331113			440431331113
  2634	003101	077700	070173			077700070173
  2635	003102	450745	574547			450745574547
  2636	003103	015501	510544			015501510544
  2637	003104	054045	454544			054045454544
  2638	003105	015345	470000			015345470000
  2639
  2640	003106	015545	115155		CR01:	015545115155
  2641	003107	515511	411141			515511411141
  2642	003110	151455	140444			151455140444
  2643	003111	044401	444500			044401444500
  2644	003112	000000	004000			000000004000
  2645	003113	440451	551115			440451551115
  2646	003114	044400	040145			044400040145
  2647	003115	450445	504540			450445504540
  2648	003116	015501	510544			015501510544
  2649	003117	054045	454544			054045454544
  2650	003120	015445	440000			015445440000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 41
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0127

  2651	003121	062242	662422		CR02:	062242662422
  2652	003122	242266	266626			242266266626
  2653	003123	626222	620626			626222620626
  2654	003124	022604	264060			022604264060
  2655	003125	000000	004666			000000004666
  2656	003126	446444	444444			446444444444
  2657	003127	044400	040424			044400040424
  2658	003130	406440	004040			406440004040
  2659	003131	062206	260466			062206260466
  2660	003132	046044	644464			046044644464
  2661	003133	062644	640000			062644640000
  2662
  2663	003134	033347	773333		CR03:	033347773333
  2664	003135	333373	373337			333373373337
  2665	003136	777777	770373			777777770373
  2666	003137	077307	734007			077307734007
  2667	003140	077700	074000			077700074000
  2668	003141	440437	337773			440437337773
  2669	003142	077700	070773			077700070773
  2670	003143	400740	074047			400740074047
  2671	003144	044404	440444			044404440444
  2672	003145	044044	444444			044044444444
  2673	003146	044344	470000			044344470000
  2674
  2675	003147	512215	612122		CR12:	512215612122
  2676	003150	212211	211121			212211211121
  2677	003151	656255	621626			656255621626
  2678	003152	122661	262566			122661262566
  2679	003153	666666	662666			666666662666
  2680	003154	226251	551115			226251551115
  2681	003155	555555	555125			555555555125
  2682	003156	156515	521512			156515521512
  2683	003157	512251	216566			512251216566
  2684	003160	656655	655565			656655655565
  2685	003161	612655	660000			612655660000
  2686
  2687	003162	313315	173133		CR13:	313315173133
  2688	003163	313371	371137			313371371137
  2689	003164	151755	177373			151755177373
  2690	003165	777331	737577			777331737577
  2691	003166	377733	377777			377733377777
  2692	003167	777731	331113			777731331113
  2693	003170	777777	777173			777777777173
  2694	003171	157715	571517			157715571517
  2695	003172	515551	515555			515551515555
  2696	003173	555555	355535			555555355535
  2697	003174	515355	570000			515355570000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 42
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0128

  2698	003175	332372	673323		CR23:	332372673323
  2699	003176	232373	273327			232373273327
  2700	003177	626722	677323			626722677323
  2701	003200	722337	232767			722337232767
  2702	003201	377733	372666			377733372666
  2703	003202	226237	337773			226237337773
  2704	003203	777777	777723			777777777723
  2705	003204	776777	777777			776777777777
  2706	003205	362236	266366			362236266366
  2707	003206	636666	666666			636666666666
  2708	003207	662366	670000			662366670000
  2709
  2710	003210	7 010 30 0 00 600000 	KLEXCK:	CONSZ	PAG,LCASLO!LCASLD
  2711	003211	263 17 0 00 000000 		RTN			;CACHE IS ON
  2712	003212	274 17 0 00 006102 		SUB	P,[1,,1]	;OTHERWISE DOUBLE RETURN
  2713	003213	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 43
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 CACHE ENABLE                                                         SEQ 0129

  2714					;*KL10 CACHE INVALIDATE
  2715					S^;*********************************************************************^
  2716
  2717	003214	261 17 0 00 000000 	$CINVAL:PUT	0
  2718	003215	200 00 0 00 006305 		MOVE	0,[DATAI CCA,0]	;CACHE INVALIDATE ALL
  2719
  2720	003216	261 17 0 00 000001 	$CSHZ:	PUT	1
  2721	003217	261 17 0 00 000002 		PUT	2
  2722	003220	261 17 0 00 000003 		PUT	3
  2723	003221	261 17 0 00 000004 		PUT	4
  2724	003222	7 000 24 0 00 000004 		CONI	APR,4
  2725	003223	405 04 0 00 000007 		ANDI	4,7
  2726	003224	660 04 0 00 040020 		TRO	4,LDCASD
  2727	003225	7 000 20 0 04 000000 		CONO	APR,(4)		;DISABLE CACHE SWEEP DONE INTERRUPT
  2728
  2729	003226	200 01 0 00 006306 		MOVE	1,[CONSZ APR,LCASWB]	;CACHE SWEEP BUSY
  2730	003227	200 02 0 00 006307 		MOVE	2,[SOJN 4,1]	;WAIT TILL IT GOES AWAY
  2731	003230	200 03 0 00 006310 		MOVE	3,[JRST $CSHX]	;RETURN FROM AC'S
  2732	003231	201 04 0 00 777777 		MOVEI	4,-1		;WAIT COUNT
  2733	003232	254 00 0 00 000000 		JRST	0		;GO INVALIDATE/FLUSH CACHE
  2734
  2735	003233	336 00 0 00 000004 	$CSHX:	SKIPN	4		;DID WE TIME OUT ?
  2736	003234	254 00 0 00 002775 		JRST	$CSHER		;YES, REPORT ERROR
  2737	003235	262 17 0 00 000004 		GET	4
  2738	003236	262 17 0 00 000003 		GET	3
  2739	003237	262 17 0 00 000002 		GET	2
  2740	003240	262 17 0 00 000001 		GET	1
  2741	003241	262 17 0 00 000000 		GET	0
  2742	003242	263 17 0 00 000000 		RTN
  2743
  2744					;*KL10 CACHE FLUSH
  2745					S^;*********************************************************************^
  2746
  2747	003243	260 17 0 00 003210 	$CFLUSH:GO	KLEXCK
  2748	003244	261 17 0 00 000000 		PUT	0
  2749	003245	200 00 0 00 006311 		MOVE	0,[BLKO CCA,0]	;CACHE FLUSH
  2750	003246	254 00 0 00 003216 		JRST	$CSHZ
  2751
  2752					;*KL10 CACHE WRITE-BACK & INVALIDATE
  2753					S^;*********************************************************************^
  2754
  2755	003247	260 17 0 00 003210 	$CWRTBI:GO	KLEXCK
  2756	003250	261 17 0 00 000000 		PUT	0
  2757	003251	200 00 0 00 006312 		MOVE	0,[701540,,0]	;CACHE WRITE-BACK & INVALIDATE
  2758	003252	254 00 0 00 003216 		JRST	$CSHZ
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 44
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 MEMORY INITIALIZE                                                    SEQ 0130

  2759					SUBTTL	*SUBRTN* KL10 MEMORY INITIALIZE
  2760
  2761					S^;*********************************************************************^
  2762					;*MFICE - FIND ALL MF20 MEMORY CONTROLLERS IN THE SYSTEM AND MAKES
  2763					;*	SURE THAT ALL IGNORE-CORRECTABLE-ERROR BITS ARE SET.
  2764					;*	ALSO KNOCKS SOFTWARE STATUS 3 DOWN TO 2 AND CLEARS THE
  2765					;*	ERROR FLAGS.
  2766					S^;*********************************************************************^
  2767
  2768					;	 DEFINITIONS.
  2769
  2770			000001		MFCN=1				;CURRENT CONTROLLER NUMBER
  2771			000002		MFSDT=2 			;SBUS DIAG WORD TO MEM CONSTRUCTED HERE
  2772			000003		MFSDF=MFSDT+1			;ECHO FOR ABOVE...MODIFIED & SENT OUT AGAIN
  2773		700500	000000		OPDEF	SBDIAG	[BLKO PI,]	;S-BUS DIAG
  2774
  2775					;*	<START HERE> TOP OF CONTROLLER LOOP.  IF CONTROLLER IS MF20 THEN
  2776					;*	SET ITS SOFTWARE STATUS PROPERLY & THEN DO BITSUB RAM LOOP, ELSE
  2777					;*	JUST GO ON TO NEXT CONTROLLER.
  2778
  2779	003253	201 04 00 00 000037 	MFICE:	MOVEI	MFCN,37		;INITIAL CONTROLLER #
  2780
  2781	003254	201 02 0 00 000001 	MFCNLP:	MOVEI	MFSDT,1		;SET UP FUNCTION 1
  2782	003255	137 01 0 00 006313 		DPB	MFCN,[POINT 5,MFSDT,4] ;CONTROLLER # TOO
  2783	003256	700 12 0 00 000002 		SBDIAG	MFSDT		;DO THE FUNCTION 1
  2784	003257	435 02 0 03 000200 		IORI	MFSDT,200(MFSDF);EXISTING SFTWR STAT TO F1 W/LD EN
  2785	003260	242 03 0 00 777750 		LSH	MFSDF,-^D24	;POSITION CONTROLLER TYPE #
  2786	003261	302 03 0 00 000005 		CAIE	MFSDF,5		;SKIP IF IS MF20
  2787	003262	254 00 0 00 003300 		JRST	MFNXTC		;ELSE GO ON TO NEXT CONTROLLER
  2788	003263	602 02 0 00 001000 		TRNE	MFSDT,1000	;SKIP IF CONTR STAT LESS THAN 2
  2789	003264	620 02 0 00 000400 		TRZ	MFSDT,400	;ELSE MAKE SURE IT IS NOT 3
  2790	003265	700 12 0 00 000002 		SBDIAG	MFSDT		;SET PROPER SFTWR STATUS
  2791
  2792					;*	BITSUB RAM LOOP.  READ EACH RAM LOC & CHANGE STATE OF ICE
  2793					;*	BIT.  IF WAS OFF THEN SET IT ELSE GO ON TO NEXT LOCATION.
  2794
  2795	003266	541 02 0 00 060007 		HRRI	MFSDT,60007	;INIT F7
  2796	003267	541 02 0 02 777400 	MFBSRL:	HRRI	MFSDT,-400(MFSDT) ;NEXT RAM LOC
  2797	003270	700 12 0 00 000002 		SBDIAG	MFSDT		;READ RAM LOC
  2798	003271	404 03 0 00 006314 		AND	MFSDF,[3770,,0] ;CLEAR JUNK
  2799	003272	434 03 0 00 000002 		IOR	MFSDF,MFSDT	;CONTR #, LOC, & FUNC TO ECHO
  2800	003273	641 03 0 00 000034 		TLC	MFSDF,34	;COMP ICE, PAR.  SET LD EN BIT
  2801	003274	603 03 0 00 000020 		TLNE	MFSDF,20	;SKIP IF ICE BIT WAS ALREADY ON
  2802	003275	700 12 0 00 000003 		SBDIAG	MFSDF		;ELSE TURN IT ON FOR THIS LOC
  2803	003276	602 02 0 00 077400 		TRNE	MFSDT,77400	;SKIP IF ALL LOCS DONE
  2804	003277	254 00 0 00 003267 		JRST	MFBSRL		;ELSE LOOP TILL THEY ARE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 45
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 MEMORY INITIALIZE                                                    SEQ 0131

  2805					;*	CREATE THE SBDIAG FCN 0 WORD TO CLEAR THE ERROR FLAGS,
  2806					;*	AND THEN GO CLEAR THEM.
  2807
  2808	003300	515 02 0 00 010000 	MFNXTC:	HRLZI	MFSDT,10000	;CREATE A FUNCTION 0 CLEAR
  2809	003301	137 01 0 00 006313 		DPB	MFCN,[POINT 5,MFSDT,4] ;CONTR # TOO
  2810	003302	700 12 0 00 000002 		SBDIAG	MFSDT		;DO THE CLEAR
  2811
  2812	003303	365 01 0 00 003254 		SOJGE	MFCN,MFCNLP	;SEL NXT CONTR UNTIL ALL DONE
  2813	003304	263 17 0 00 000000 		RTN			; <ALL DONE>
  2814
  2815					S^;*********************************************************************^
  2816					;*MREPORT - REPORT MEMORY CONTROLLERS WITH ERRORS
  2817					S^;*********************************************************************^
  2818
  2819	003305	261 17 0 00 000001 	MREPORT:PUT	1
  2820						PMSG	<^MEMORY CONTROLLERS^>^
  2821	003306	037 02 0 00 006315 		PSIXM	[SIXBIT\^MEMORY CONTROLLERS^_\]^
  2822
  2823	003307	201 01 0 00 000037 		MOVEI	1,37
  2824	003310	200 00 0 01 006543 		MOVE	AC0,SBDTBL(1)	;GET CONTROLLER FUNCTION 0
  2825	003311	603 00 0 00 770000 		TLNE	AC0,770000	;ANY ERRORS SET ?
  2826						JRST	[PNTHW
  2827							 PCRL
  2828	003312	254 00 0 00 006321 			 JRST .+1]	;YES, PRINT THE FUNCTION 0
  2829	003313	365 01 0 00 003310 		SOJGE	1,.-3
  2830	003314	262 17 0 00 000001 		GET	1
  2831	003315	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 46
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* KL10 MEMORY INITIALIZE                                                    SEQ 0132

  2832					S^;*********************************************************************^
  2833					;*MEMSAV - DETERMINE MEMORY CONTROLLERS ON SYSTEM AND SAVE THE
  2834					;*	ERROR STATUS FROM THEM.
  2835					S^;*********************************************************************^
  2836
  2837	003316	261 17 0 00 000001 	MEMSAV:	PUT	MFCN
  2838	003317	261 17 0 00 000002 		PUT	MFSDT
  2839	003320	261 17 0 00 000003 		PUT	MFSDF
  2840	003321	201 01 0 00 000037 		MOVEI	MFCN,37		;INIT CONTROLLER #
  2841
  2842	003322	201 02 0 00 000001 	MEMSLP:	MOVEI	MFSDT,1		;SETUP FUNCTION 1
  2843	003323	137 01 0 00 006313 		DPB	MFCN,[POINT 5,MFSDT,4]
  2844	003324	700 12 0 00 000002 		SBDIAG	MFSDT		;READ CONTROLLER TYPE
  2845
  2846	003325	135 03 0 00 006324 		LDB	MFSDF,[POINT 5,MFSDF,11]
  2847	003326	322 03 0 00 003332 		JUMPE	MFSDF,.+4	;NO CONTROLLER TYPE RETURNED
  2848
  2849	003327	400 02 0 00 000000 		SETZ	MFSDT,		;HAVE A CONTROLLER, READ ERROR STATUS
  2850	003330	137 01 0 00 006313 		DPB	MFCN,[POINT 5,MFSDT,4]
  2851	003331	700 12 0 00 000002 		SBDIAG	MFSDT
  2852	003332	202 03 0 01 006543 		MOVEM	MFSDF,SBDTBL(MFCN) ;SAVE ERROR STATUS IN TABLE
  2853
  2854	003333	515 02 0 00 010000 		HRLZI	MFSDT,10000	;CREATE A FUNCTION 0 CLEAR
  2855	003334	137 01 0 00 006313 		DPB	MFCN,[POINT 5,MFSDT,4]
  2856	003335	700 12 0 00 000002 		SBDIAG	MFSDT		;CLEAR THE CONTROLLER
  2857
  2858	003336	365 01 0 00 003322 		SOJGE	MFCN,MEMSLP	;DO ALL CONTROLLERS
  2859	003337	262 17 0 00 000003 		GET	MFSDF
  2860	003340	262 17 0 00 000002 		GET	MFSDT
  2861	003341	262 17 0 00 000001 		GET	MFCN
  2862	003342	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 48
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* MEMORY MAPPING ROUTINES                                                   SEQ 0133

  2863					SUBTTL	*SUBRTN* MEMORY MAPPING ROUTINES
  2864
  2865					S^;*********************************************************************^
  2866					;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
  2867					;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
  2868					;*	$MPCNK	(MAPCNK)	ACTUAL MEMORY CHUNK MAPPER
  2869					;*	$MPSET	(MAPSET)	SETS UP PAGE MAP FOR KL10
  2870					;*	$MSEG	(MEMSEG)	SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
  2871					;*				(MAPNEW=-1 FOR PAGED SEGMENTS UP TO 4096K)
  2872					;*				(MAPNEW= 0 FOR DIRECT ADDRESSING UP TO  256K)
  2873					;*	$MZRO	(MEMZRO)	ZERO'S THE MAPPED MEMORY
  2874					;*	$MPADR	(MAPADR)	VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  2875					S^;*********************************************************************^
  2876
  2877					;*EXEC MODE MEMORY MAPPING
  2878					S^;*********************************************************************^
  2879
  2880	003343	402 00 0 00 030146 	$MEMMP:	SETZM	MEMSIZ		;CLEAR MAP TABLE START ADDR
  2881	003344	200 00 0 00 006325 		MOVE  [MEMSIZ,,MEMSIZ+1]
  2882	003345	251 00 0 00 030216 		BLT	MEMSIZ+^D40	;CLEAR MEMSIZ TABLE
  2883
  2884	003346	336 00 0 00 030042 	$MEEX1:	SKIPN	MONFLG		;SPECIAL USER MODE ?
  2885	003347	254 00 0 00 003411 		JRST	$MPOL1		;YES, USE UPMP & 256K
  2886	003350	201 00 0 00 337777 		MOVEI	0,337777	;NO
  2887	003351	200 01 0 00 030046 		MOVE	1,CONSW		;SETUP SWITCHES
  2888	003352	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2889	003353	607 01 0 00 000100 		TLNN	1,INHPAG	;PAGING INHIBITED ?
  2890	003354	254 00 0 00 003356 		JRST	$MEPAG		;NO ...USE PAGING
  2891	003355	254 00 0 00 003412 		JRST	$MPOL1+1	;YES, USE UNPAGED MEM, 0-112K
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 49
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* MEMORY MAPPING ROUTINES                                                   SEQ 0134

  2892	003356	205 01 0 00 777760 	$MEPAG:	MOVSI	1,-20		;SETUP EXEC-PER-PROCESS MAP
  2893	003357	200 00 0 00 006326 		MOVE	[540336,,540337]
  2894	003360	336 00 0 00 030506 		SKIPN	CSHFLG
  2895	003361	670 00 0 00 006051 		TDO	[020000,,020000]
  2896	003362	270 00 0 00 006052 		ADD	[2,,2]		;SO 112K-128K POINTS TO ITSELF
  2897	003363	202 00 0 01 000400 		MOVEM	400(1)		;VIRTUAL = PHYSICAL
  2898	003364	253 01 0 00 003362 		AOBJN	1,.-2
  2899	003365	205 00 0 00 255000 		MOVSI	(JFCL)		;SETUP ARITHMETIC TRAP
  2900	003366	202 00 0 00 000421 		MOVEM	421		;JUST IN CASE
  2901	003367	336 00 0 00 030143 		SKIPN	MAPNEW		;"MAPNEW" = 0 ?
  2902	003370	254 00 0 00 003401 		JRST	$MPOLD		;YES ...USE 256K MAPPING
  2903
  2904					S^;*********************************************************************^
  2905					;*MEMORY MAPPING CONTROL
  2906					;*MAP 4096K, 256K, 112K OR 256K SPECIAL USER
  2907					S^;*********************************************************************^
  2908
  2909	003371	200 01 0 00 000121 	$MPNEW:	MOVE	1,JOBFF		;USE FIRST FREE UP TEMP
  2910	003372	201 16 0 00 000037 		MOVEI	16,^D31		;4096K IS 32 128K CHUNKS
  2911	003373	200 00 0 00 000016 		MOVE	0,16
  2912	003374	260 17 0 00 003553 		GO	$MPSET		;SET PAGE MAP FOR 128K CHUNK
  2913	003375	200 00 0 00 006327 		MOVE  [400000,,777777]	;LOAD AC0 WITH PAGABLE ADDR BOUNDARIES
  2914	003376	260 17 0 00 003453 		GO	$MPCNK		;MAP 128K-256K VIRTUAL
  2915	003377	365 16 0 00 003373 		SOJGE	16,.-4		;COMPLETED 4096K ?
  2916	003400	254 00 0 00 003416 		JRST	$MPCMB		;YES, COMBINE POINTERS
  2917
  2918	003401	205 01 0 00 777600 	$MPOLD:	MOVSI	1,-200		;128K-256K VIRTUAL POINTS
  2919	003402	200 00 0 00 006330 		MOVE  [540376,,540377] 	;TO PHYSICAL 128K-256K
  2920	003403	336 00 0 00 030507 		SKIPN	CSHMEM
  2921	003404	670 00 0 00 006051 		TDO	[020000,,020000]
  2922	003405	270 00 0 00 006052 		ADD	[2,,2]		;AND MEMORY ENDS AT 256K
  2923	003406	202 00 0 01 000200 		MOVEM	200(1)
  2924	003407	253 01 0 00 003405 		AOBJN	1,.-2
  2925	003410	260 17 0 00 003467 		GO	KLPAG		;SET TRAP ENABLE
  2926	003411	201 00 0 00 777777 	$MPOL1:	MOVEI	0,777777	;MAP 0-256K
  2927	003412	200 01 0 00 000121 		MOVE	1,JOBFF		;USE FIRST FREE UP TEMP
  2928	003413	402 00 0 00 030143 		SETZM	MAPNEW		;DIRECT ADDRESSING ONLY
  2929	003414	260 17 0 00 003453 		GO	$MPCNK		;MAP CHUNK
  2930	003415	254 00 0 00 003416 		JRST	$MPCMB		;COMBINE POINTERS 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 50
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* MEMORY MAPPING ROUTINES                                                   SEQ 0135

  2931					S^;*********************************************************************^
  2932					;*COMBINE EXISTENT CHUNKS FROM MAPCNK
  2933					;*PUT POINTERS IN MEMSIZ TABLE
  2934					S^;*********************************************************************^
  2935
  2936	003416	402 00 0 00 000002 	$MPCMB:	SETZM	2		;SET MEMSIZ TABLE POINTER (AC2) @ 0
  2937	003417	275 01 0 00 000001 		SUBI	1,1		;DECREMENT TEMP POINTER
  2938	003420	200 00 0 01 000000 		MOVE	AC0,(1)		;GET LOWEST ADR OF LOWEST CHUNK
  2939	003421	302 00 0 00 000000 		CAIE	0,0		;SHOULD BE 0 (THATS WHERE MEMORY STARTS)
  2940	003422	037 15 0 00 000004 		FATAL			;NOT 0
  2941	003423	202 00 0 02 030146 		MOVEM	MEMSIZ(2)	;PUT IN MEMSIZ TABLE (AC2 IS PTR)
  2942	003424	271 02 0 00 000001 		ADDI	2,1		;INCR THE TABLE POINTER
  2943
  2944	003425	275 01 0 00 000001 	$MPCM1:	SUBI	1,1		;DECR TEMP POINTER
  2945	003426	307 01 1 00 000121 		CAIG	1,@JOBFF	;COMBINED ALL CHUNK POINTERS ?
  2946									;(TEMP PTR > JOBFF)
  2947	003427	254 00 0 00 003444 		JRST	$MPCM2		;YES )
  2948	003430	200 00 0 01 000000 		MOVE	AC0,(1)		;NO ...GET CHUNK END ADDRESS
  2949	003431	200 03 0 01 777777 		MOVE	3,-1(1)		;GET NEXT CHUNK START ADR IN AC3
  2950	003432	200 04 0 00 000000 		MOVE	4,0		;PUT END ADDR IN AC4
  2951	003433	271 04 0 00 000001 		ADDI	4,1		;INCR THE END ADDR
  2952	003434	316 03 0 00 000004 		CAMN	3,4		;IF END & START NOW EQUAL
  2953	003435	364 01 0 00 003425 		SOJA	1,$MPCM1	;IT IS CONT. CHUNK - DO NEXT ONE
  2954
  2955	003436	202 00 0 02 030146 	$MPCM3:	MOVEM	0,MEMSIZ(2)	;IF NOT =, PUT END ADR IN MEMSIZ TABLE
  2956	003437	301 02 0 00 000046 		CAIL	2,^D38		;HAVE WE FILLED MEMSIZ TABLE ?
  2957	003440	254 00 0 00 003450 		JRST	$MPCMX		;YES ...IGNORE REST OF CHUNKS )
  2958	003441	271 02 0 00 000001 		ADDI	2,1		;NO ...INCR MEMSIZ TABLE PTR (AC2)
  2959	003442	202 03 0 02 030146 		MOVEM	3,MEMSIZ(2)	;AND NEXT CHUNK START ADR
  2960	003443	364 01 0 00 003424 		SOJA	1,$MPCM1-1	;DO NEXT ONE
  2961
  2962	003444	200 00 0 01 000000 	$MPCM2:	MOVE	(1)		;GET LAST ADDR OF LAST CHUNK
  2963	003445	202 00 0 02 030146 		MOVEM	MEMSIZ(2)	;SAVE LAST ADR OF LAST CHUNK
  2964	003446	476 00 0 02 030147 		SETOM	MEMSIZ+1(2)	;FLAG END OF MEMSIZ TABLE WITH 1'S
  2965	003447	254 00 0 00 004057 		JRST	$PMAP		;PRINT THE MAP 
  2966
  2967	003450	476 00 0 02 030147 	$MPCMX:	SETOM	MEMSIZ+1(2)	;FLAG END OF MEMSIZ TABLE WITH 1'S
  2968
  2969						PMSGF	<^TOO MANY MAP SEGMENTS^>^
  2970	003451	037 04 0 00 006331 		PSIXMF	[SIXBIT\^TOO MANY MAP SEGMENTS^_\]^
  2971	003452	254 00 0 00 004057 		JRST	$PMAP		;PRINT THE MAP
  2972
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 51
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER                                              SEQ 0136

  2973					SUBTTL	*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
  2974
  2975					S^;*********************************************************************^
  2976					;*STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
  2977					;*UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
  2978					;*IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
  2979					;*MAPS THE HOLE IN EXISTENT MEMORY
  2980					;*AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS
  2981					S^;*********************************************************************^
  2982
  2983	003453	202 02 0 00 006641 	$MPCNK:	MOVEM	2,$ACMP1#	;SAVE AC2 - AC4
  2984	003454	202 03 0 00 006642 		MOVEM	3,$ACMP2#
  2985	003455	202 04 0 00 006643 		MOVEM	4,$ACMP3#
  2986
  2987	003456	550 02 0 00 000000 		HRRZ	2,0		;LOAD ADDRESSER WITH HIGHEST POSS ADDR
  2988	003457	554 03 0 00 000000 		HLRZ	3,0		;LOAD WITH LOWEST POSS ADDR
  2989	003460	7 004 24 0 00 006670 		CONI	PI,$MSPI#	;SAVE THE PI STATUS
  2990	003461	7 004 20 0 00 000400 		CONO	PI,PIOFF	;TURN OFF INTERRUPTS
  2991	003462	7 000 24 0 00 006667 		CONI	APR,$MSAPR#	;SAVE PROCESSOR STATUS
  2992	003463	317 02 0 00 000003 		CAMG	2,3		;END GREATER THAN START ?
  2993	003464	037 15 0 00 000004 		FATAL			;NO
  2994
  2995	003465	201 04 0 00 022000 	$MPCN1:	MOVEI	4,LCNXER	;SETUP KL10 NXM BIT
  2996	003466	254 00 0 00 003475 		JRST	$MPNXM		;CONO/CONI BIT(S) SET UP - GO MAP 
  2997
  2998	003467	261 17 0 00 000000 	KLPAG:	PUT	0
  2999	003470	7 010 24 0 00 000000 		CONI	PAG,0		;GET PRESENT STATE
  3000	003471	660 00 0 00 020000 		TRO	0,LTRPEN	;MAKE SURE TRAP ENABLE SET
  3001	003472	7 010 20 1 00 000000 		CONO	PAG,@0		;PAGE RESET
  3002	003473	262 17 0 00 000000 		GET	0
  3003	003474	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 52
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER                                              SEQ 0137

  3004					;*NON-X-MEMORY SEGMENT MAPPER
  3005					S^;*********************************************************************^
  3006
  3007	003475	7 000 20 0 04 000000 	$MPNXM:	CONO	APR,(4)		;CLEAR NXM BIT, IF SET
  3008	003476	310 00 0 02 000000 		CAM	(2)		;ADDRESS THE MEMORY
  3009	003477	310 00 0 02 777777 		CAM	-1(2)		;INTERLEAVE MAP
  3010	003500	310 00 0 02 777776 		CAM	-2(2)		;IF NON-X-MEM FROM ANY 4-WAY INTERLEAVE
  3011	003501	310 00 0 02 777775 		CAM	-3(2)		;MARK ALL NON-X-MEM
  3012	003502	7 000 34 0 04 000000 		CONSO	APR,(4)		;NON-X-MEMORY BIT SET ?
  3013	003503	254 00 0 00 003536 		JRST	$M5		;NO  ..CONV VIRT & REMAP EXISTENT
  3014
  3015	003504	7 000 20 0 04 000000 	$M2:	CONO	APR,(4)		;YES ...CLEAR THE BIT
  3016	003505	275 02 0 00 020000 		SUBI	2,20000		;STEP DOWN 8K
  3017	003506	301 02 0 03 000000 		CAIL	2,(3)		;MEMORY CHUNK DONE ? (< LOWEST POSS)
  3018	003507	254 00 0 00 003475 		JRST	$MPNXM		;NO ...MAP THE NEXT CHUNK
  3019
  3020
  3021					;*RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
  3022					S^;*********************************************************************^
  3023
  3024	003510	7 000 20 0 00 127740 	$MPRST:	CONO	APR,LAPRAL-20	;RESET KL APR STATUS
  3025	003511	550 03 0 00 006667 		HRRZ	3,$MSAPR
  3026	003512	405 03 0 00 000007 		ANDI	3,7
  3027	003513	7 000 20 0 03 000000 		CONO	APR,(3)		;REASSIGN APR CHANNEL
  3028	003514	200 03 0 00 006670 	$MPRPI:	MOVE	3,$MSPI		;GET SAVED PI STATUS
  3029	003515	602 03 0 00 000200 		TRNE	3,PION		;IF INTERRUPTS WERE ON
  3030	003516	7 004 20 0 00 000200 		CONO	PI,PION		;TURN BACK ON
  3031	003517	200 02 0 00 006641 		MOVE	2,$ACMP1	;RESTORE AC'S
  3032	003520	200 03 0 00 006642 		MOVE	3,$ACMP2
  3033	003521	200 04 0 00 006643 		MOVE	4,$ACMP3
  3034	003522	263 17 0 00 000000 		RTN			;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 53
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER                                              SEQ 0138

  3035					;*EXISTANT MEMORY MAPPER
  3036					S^;*********************************************************************^
  3037	003523	310 00 0 02 000000 	$MPEXM:	CAM	(2)		;ADDRESS THE MEMORY
  3038	003524	310 00 0 02 777777 		CAM	-1(2)		;INTERLEAVE THE MAP
  3039	003525	310 00 0 02 777776 		CAM	-2(2)
  3040	003526	310 00 0 02 777775 		CAM	-3(2)
  3041	003527	201 04 0 00 002000 		MOVEI	4,LNXMER	;KL10 NXM BIT
  3042	003530	7 000 30 0 04 000000 		CONSZ	APR,(4)		;EXISTANT ?
  3043	003531	344 02 0 00 003540 		AOJA	2,$M6		;NO
  3044
  3045	003532	275 02 0 00 020000 	$M4:	SUBI	2,20000		;YES, STEP DOWN 8K
  3046	003533	301 02 0 03 000000 		CAIL	2,(3)		;BELOW START ADDRESS ?
  3047	003534	254 00 0 00 003523 		JRST	$MPEXM		;NO ...MAP NEXT CHUNK
  3048	003535	344 02 0 00 003544 		AOJA	2,$M7		;YES, THIS CHUNK DONE
  3049
  3050					S^;*********************************************************************^
  3051					;*SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
  3052					;*TEMPORY STORAGE POINTER IN AC1
  3053					;*VIRTUAL ADDRESS IN AC0
  3054					;*"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
  3055					S^;*********************************************************************^
  3056
  3057	003536	260 17 0 00 003546 	$M5:	GO	$MPCXX
  3058	003537	344 01 0 00 003523 		AOJA	1,$MPEXM	;GO MAP EXISTANT CHUNK
  3059
  3060	003540	260 17 0 00 003546 	$M6:	GO	$MPCXX
  3061	003541	271 01 0 00 000001 		ADDI	1,1		;INCREMENT ADDR
  3062	003542	260 17 0 00 003247 		GO	$CWRTBI		;CACHE WRITE-BACK & INVALIDATE
  3063	003543	364 02 0 00 003465 		SOJA	2,$MPCN1	;GO MAP NON-X CHUNK
  3064
  3065	003544	260 17 0 00 003546 	$M7:	GO	$MPCXX
  3066	003545	344 01 0 00 003510 		AOJA	1,$MPRST	;RESTORE AC'S AND RETURN )
  3067
  3068	003546	200 00 0 00 000002 	$MPCXX:	MOVE	0,2
  3069	003547	260 17 0 00 004036 		GO	$MPADR		;CONVERT VIRTUAL TO PHYSICAL
  3070	003550	037 15 0 00 000004 		FATAL			;CAN'T DO IT
  3071	003551	202 00 0 01 000000 		MOVEM	(1)		;SAVE IN TEMP
  3072	003552	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 54
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MAPSET" SETUP KL10 PAGE MAP                                              SEQ 0139

  3073					SUBTTL	*SUBRTN* "MAPSET" SETUP KL10 PAGE MAP 
  3074
  3075					S^;*********************************************************************^
  3076					;*FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  3077					;*ARGUMENTS PASSED IN AC0:
  3078					;*			NEG - CLEAR PAGE MAP
  3079					;*			0-37 - MAP CORRESPONDING 128K SEGMENT
  3080					S^;*********************************************************************^
  3081
  3082	003553	332 00 0 00 030037 	$MPSET:	SKIPE	USER
  3083	003554	263 17 0 00 000000 		RTN			;USER MODE
  3084 
  3085	003555	202 01 0 00 006644 	$MPSE1:	MOVEM	1,$ACMP4#	;SAVE AC1
  3086	003556	325 00 0 00 003565 		JUMPGE	0,$MPSE2	;ARG NEG ?
  3087	003557	402 00 0 00 000200 		SETZM	200		;YES, CLEAR PAGE MAP
  3088	003560	200 00 0 00 006335 		MOVE	0,[200,,201]
  3089	003561	251 00 0 00 000377 		BLT	0,377
  3090
  3091	003562	260 17 0 00 003467 	$MPSE3:	GO	KLPAG		;SET TRAP ENABLE
  3092	003563	200 01 0 00 006644 		MOVE	1,$ACMP4	;RESTORE AC1
  3093	003564	263 17 0 00 000000 		RTN			;EXIT
  3094
  3095	003565	301 00 0 00 000040 	$MPSE2:	CAIL	0,40		;ARG 0-37 ?
  3096	003566	037 15 0 00 000004 		FATAL			;NO, FATAL ERROR
  3097	003567	221 00 0 00 000400 		IMULI	0,400		;COMPUTE PHYSICAL RELOCATION
  3098	003570	660 00 0 00 540000 		TRO	0,540000	;SET A,W,S BITS
  3099	003571	336 00 0 00 030507 		SKIPN	CSHMEM		;MEM SEG'S CACHED ?
  3100	003572	660 00 0 00 020000 		TRO	0,020000	;YES
  3101	003573	504 00 0 00 000000 		HRL	0,0		;MAKE BOTH HALVES SAME
  3102	003574	271 00 0 00 000001 		ADDI	0,1		;RIGHT HALF ODD PAGE
  3103	003575	205 01 0 00 777600 		MOVSI	1,-200		;128K IN PAGE MAP
  3104	003576	202 00 0 01 000200 		MOVEM	200(1)		;PUT RELOCATION DATA IN PAGE MAP
  3105	003577	270 00 0 00 006052 		ADD	[2,,2]		;BUMP FOR NEXT ENTRY
  3106	003600	253 01 0 00 003576 		AOBJN	1,.-2
  3107	003601	254 00 0 00 003562 		JRST	$MPSE3		;CLEAR PAGING MEMORY & EXIT )
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 55
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##                                                SEQ 0140

  3108					SUBTTL	*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
  3109
  3110					S^;*********************************************************************^
  3111					;*SETS UP TO 128K SEGMENT IN PAGE MAP
  3112					;*ARGUMENTS:	0-37 - MAP CORRESPONDING 128K SEGMENT
  3113					;*		GT 37  - MAP USING PHYSICAL ADDRESS
  3114					;*RETURNED IN AC0:
  3115					;		0 - NO MEMORY AVAILABLE
  3116					;*		HIGHEST VIRTUAL ADDRESS
  3117					;*	  	BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
  3118					;*PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
  3119					;*TO MEMORY REQUESTED
  3120					;*		RETURNS +2
  3121					S^;*********************************************************************^
  3122
  3123	003602	202 01 0 00 006645 	$MSEG:	MOVEM	1,$ACMP5#	;AC1 = TEMP STORAGE POINTER
  3124	003603	202 02 0 00 006646 		MOVEM	2,$ACMP6#	;AC2 = MAP STORAGE POINTER
  3125	003604	202 03 0 00 006647 		MOVEM	3,$ACMP7#	;AC3 = CHUNK START ADR
  3126	003605	202 04 0 00 006650 		MOVEM	4,$ACMP8#	;AC4 = CHUNK END ADR
  3127	003606	202 05 0 00 006651 		MOVEM 	5,$ACMP9#	;AC5 = PAGE COUNTER
  3128	003607	403 05 0 00 006663 		SETZB	5,$MNCON#	;SAVED AC1 - AC5
  3129	003610	603 00 0 00 777760 		TLNE	0,777760	;VALID ARGUMENT ?
  3130	003611	037 15 0 00 000004 		FATAL			;NO
  3131	003612	336 00 0 00 030143 		SKIPN	MAPNEW
  3132	003613	254 00 0 00 003742 		JRST	$MSKA		;DIRECT ADDRESSING ONLY
  3133	003614	200 02 0 00 006336 		MOVE	2,[POINT 18,200]
  3134	003615	301 00 0 00 000040 		CAIL	0,40
  3135	003616	254 00 0 00 003702 		JRST	$MSEGP		;ARG IS FOR PHYSICAL CORE
  3136	003617	254 00 0 00 003620 		JRST	$MSEGV		;VIRTUAL CORE
  3137
  3138					;*SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
  3139					S^;*********************************************************************^
  3140
  3141	003620	200 01 0 00 030145 	$MSEGV:	MOVE	1,MEMLOW
  3142	003621	260 17 0 00 003553 		GO	$MPSET		;SETUP MAP FOR REQ SEGMENT
  3143	003622	200 00 0 00 006327 		MOVE	[400000,,777777]
  3144	003623	260 17 0 00 003453 		GO	$MPCNK		;MAP THAT SEGMENT
  3145
  3146	003624	307 01 1 00 030145 	$MSGV1:	CAIG	1,@MEMLOW
  3147	003625	254 00 0 00 003667 		JRST	$MSEG3		;NO CORE IN THIS 128K SEGMENT
  3148									;EXIT
  3149	003626	402 00 0 00 000200 		SETZM	200		;CLEAR PAGE MAP
  3150	003627	200 00 0 00 006335 		MOVE	[200,,201]
  3151	003630	251 00 0 00 000377 		BLT	0,377
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 56
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##                                                SEQ 0141

  3152	003631	275 01 0 00 000001 	$MSGV2:	SUBI	1,1
  3153	003632	200 03 0 01 000000 		MOVE	3,(1)		;GET CHUNK START ADDRESS
  3154	003633	326 03 0 00 003635 		JUMPN	3,.+2		;IF CHUNK ADR IS ZERO
  3155	003634	200 03 0 00 030145 		MOVE	3,MEMLOW	;USE EVEN BREAK ABOVE JOBFF
  3156	003635	275 01 0 00 000001 		SUBI	1,1
  3157	003636	200 04 0 01 000000 		MOVE	4,(1)		;GET CHUNK END ADDRESS
  3158	003637	317 04 0 00 000003 		CAMG	4,3		;END GREATER THAN START ?
  3159	003640	037 15 0 00 000004 		FATAL			;NO ...ABORT
  3160	003641	274 04 0 00 000003 		SUB	4,3		;YES ..END - START = SIZE OF CHUNK
  3161	003642	271 04 0 00 000001 		ADDI	4,1
  3162	003643	602 04 0 00 000777 		TRNE	4,777		;CHUNK SHOULD BE EVEN # OF PAGES
  3163	003644	037 15 0 00 000004 		FATAL			;NO ...ABORT
  3164	003645	242 04 0 00 777767 		LSH	4,-^D9		;COMPUTE # OF PAGES
  3165	003646	270 05 0 00 000004 		ADD	5,4		;KEEP COUNT
  3166	003647	242 03 0 00 777767 		LSH	3,-^D9
  3167	003650	660 03 0 00 540000 		TRO	3,540000	;CREATE RELOCATION DATA
  3168	003651	336 00 0 00 030507 		SKIPN	CSHMEM		;MEM SEG'S CACHED ?
  3169	003652	660 03 0 00 020000 		TRO	3,020000	;YES
  3170	003653	361 04 0 00 003657 		SOJL	4,$MSGV3
  3171	003654	136 03 0 00 000002 		IDPB	3,2		;PUT IN PAGE MAP
  3172	003655	271 03 0 00 000001 		ADDI	3,1		;INCREMENT RELOCATION DATA
  3173	003656	254 00 0 00 003653 		JRST	.-3
  3174
  3175	003657	306 01 1 00 030145 	$MSGV3:	CAIN	1,@MEMLOW	;ANY MORE CHUNKS IN THIS 128K ?
  3176	003660	254 00 0 00 003663 		JRST	$MSEG2		;NO ...EXIT)
  3177	003661	476 00 0 00 006663 		SETOM	$MNCON		;YES, NON-CONSECUTIVE CHUNKS
  3178	003662	254 00 0 00 003631 		JRST	$MSGV2		;PACK INTO VIRTUAL
  3179
  3180					;*EXIT FROM MEMSEG ROUTINE
  3181					S^;*********************************************************************^
  3182
  3183	003663	221 05 0 00 001000 	$MSEG2:	IMULI	5,1000		;CONVERT # OF PAGES INTO
  3184	003664	271 05 0 00 377777 		ADDI	5,377777	;HIGHEST VIRTUAL ADDRESS
  3185	003665	332 00 0 00 006663 		SKIPE	$MNCON		;WERE CHUNKS COMBINED ?
  3186	003666	661 05 0 00 400000 		TLO	5,400000	;YES, SET BIT 0 AS FLAG
  3187
  3188	003667	200 00 0 00 000005 	$MSEG3:	MOVE	0,5		;AC0 = RESULTS (SEE TITLE BLOCK)
  3189	003670	200 01 0 00 006645 		MOVE	1,$ACMP5	;RESTORE AC'S
  3190	003671	200 02 0 00 006646 		MOVE	2,$ACMP6
  3191	003672	200 03 0 00 006647 		MOVE	3,$ACMP7
  3192	003673	200 04 0 00 006650 		MOVE	4,$ACMP8
  3193	003674	200 05 0 00 006651 		MOVE	5,$ACMP9
  3194	003675	336 00 0 00 030143 		SKIPN	MAPNEW		;4096K MAPPING (BIG TROUBLE IF NOT)
  3195	003676	263 17 0 00 000000 		RTN			;NO ...ERROR RETURN +1)
  3196
  3197	003677	260 17 0 00 003467 	$MSEG4:	GO	KLPAG		;SET TRAP ENABLE
  3198	003700	350 00 0 17 000000 		AOS	(P)		;RETURN +2
  3199	003701	263 17 0 00 000000 		RTN			;RETURN +1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 57
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MEMSEG" ## MAPNEW = -1 ##                                                SEQ 0142

  3200					;*PHYSICAL CORE ASSIGNMENT
  3201					S^;*********************************************************************^
  3202
  3203	003702	200 01 0 00 000000 	$MSEGP:	MOVE	1,0
  3204	003703	620 01 0 00 000777 		TRZ	1,777		;MAKE PHYSICAL EVEN PAGE
  3205	003704	400 04 0 00 000000 		SETZ	4,
  3206	003705	200 00 0 04 030146 		MOVE	MEMSIZ(4)	;GET START ADDRESS
  3207	003706	321 00 0 00 003667 		JUMPL	$MSEG3		;IF END OF TABLE, NO CORE ..EXIT
  3208	003707	315 01 0 00 000000 		CAMGE	1,0		;PHY = OR GT START ?
  3209	003710	254 00 0 00 003667 		JRST	$MSEG3		;NO, NO CORE ...EXIT
  3210	003711	200 00 0 04 030147 		MOVE	MEMSIZ+1(4)	;GET END ADDRESS
  3211	003712	271 04 0 00 000002 		ADDI	4,2
  3212	003713	311 01 0 00 000000 		CAML	1,0		;PHY GT END ?
  3213	003714	254 00 0 00 003705 		JRST	.-7		;YES, TRY NEXT CHUNK
  3214
  3215	003715	336 00 0 00 030143 		SKIPN	MAPNEW
  3216	003716	254 00 0 00 003766 		JRST	$MSKAP+3	;DIRECT ADDRESSING
  3217	003717	274 00 0 00 000001 		SUB	0,1		;COMPUTE # OF PAGES
  3218	003720	271 00 0 00 000001 		ADDI	0,1
  3219	003721	242 00 0 00 777767 		LSH	0,-^D9
  3220	003722	303 00 0 00 000400 		CAILE	0,^D256		;MORE THAN 128K WORTH ?
  3221	003723	201 00 0 00 000400 		MOVEI	0,^D256		;YES, LIMIT AT 128K
  3222	003724	202 00 0 00 000003 		MOVEM	0,3		;AC3 = MAP FILL COUNTER
  3223	003725	202 00 0 00 000005 		MOVEM	0,5		;KEEP COUNT OF # OF PAGES
  3224	003726	402 00 0 00 000200 		SETZM	200		;CLEAR PAGE MAP
  3225	003727	200 00 0 00 006335 		MOVE	[200,,201]
  3226	003730	251 00 0 00 000377 		BLT	0,377
  3227	003731	200 00 0 00 000001 		MOVE	0,1
  3228	003732	242 00 0 00 777767 		LSH	0,-^D9		;CREATE RELOCATION DATA
  3229	003733	660 00 0 00 540000 		TRO	0,540000
  3230	003734	336 00 0 00 030507 		SKIPN	CSHMEM		;MEM SEG'S CACHED ?
  3231	003735	660 00 0 00 020000 		TRO	0,020000	;YES
  3232	003736	361 03 0 00 003663 		SOJL	3,$MSEG2	;EXIT
  3233	003737	136 00 0 00 000002 		IDPB	0,2		;PUT DATA IN PAGE MAP
  3234	003740	271 00 0 00 000001 		ADDI	0,1		;INCREMENT RELOCATION DATA
  3235	003741	254 00 0 00 003736 		JRST	.-3
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 58
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MEMSEG" ## MAPNEW = 0 ##                                                 SEQ 0143

  3236					SUBTTL	*SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
  3237
  3238					S^;*********************************************************************^
  3239					;*ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
  3240					;*		  11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
  3241					;*	  	  GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
  3242					;*RETURNED IN AC0:
  3243					;*		  0 - NO MEMORY AVAILABLE
  3244					;*		  START ADDRESS,,END ADDRESS
  3245					;*RETURNS +1
  3246					S^;*********************************************************************^
  3247
  3248	003742	301 00 0 00 000040 	$MSKA:	CAIL	0,40
  3249	003743	254 00 0 00 003763 		JRST	$MSKAP		;DIRECT PHYSICAL CORE
  3250	003744	301 00 0 00 000011 		CAIL	^D9
  3251	003745	254 00 0 00 003667 		JRST	$MSEG3		;NO MEMORY 11-37 ...EXIT
  3252	003746	200 01 0 00 000000 		MOVE	1,0
  3253	003747	242 01 0 00 000001 		LSH	1,1		;DOUBLE, 2 ENTRIES PER
  3254	003750	200 00 0 01 030146 		MOVE	0,MEMSIZ(1)	;GET START ADDRESS
  3255	003751	321 00 0 00 003667 		JUMPL	0,$MSEG3	;NO MEMORY ...EXIT
  3256	003752	200 02 0 01 030147 		MOVE	2,MEMSIZ+1(1)	;GET END ADDRESS
  3257	003753	322 02 0 00 003667 		JUMPE	2,$MSEG3	;NO MEMORY ...EXIT
  3258	003754	326 00 0 00 003756 		JUMPN	0,.+2		;IF START ADDRESS IS 0
  3259	003755	200 00 0 00 030145 		MOVE	0,MEMLOW	;USE 'MEMLOW'
  3260	003756	317 02 0 00 000000 		CAMG	2,0		;END GREATER THAN START ?
  3261	003757	037 15 0 00 000004 		FATAL			;NO ...ABORT
  3262	003760	200 05 0 00 000002 		MOVE	5,2		;SETUP START ADR,,END ADR
  3263	003761	504 05 0 00 000000 		HRL	5,0
  3264	003762	254 00 0 00 003667 		JRST	$MSEG3		;EXIT
  3265
  3266	003763	303 00 0 00 777000 	$MSKAP:	CAILE	0,777000	;REQUEST FOR OVER 256K ?
  3267	003764	254 00 0 00 003667 		JRST	$MSEG3		;YES, NO MEMORY
  3268	003765	254 00 0 00 003702 		JRST	$MSEGP		;DO PHYSICAL SETUP
  3269	003766	200 05 0 00 000000 		MOVE	5,0		;1 = PHY ADR, 0 = END ADR
  3270	003767	504 05 0 00 000001 		HRL	5,1		;  START ADR,,END ADR
  3271	003770	254 00 0 00 003667 		JRST	$MSEG3		;EXIT 
  3272
  3273	003771	322 00 0 00 003742 	$MSUSR:	JUMPE	0,$MSKA		;USER MODE, SEGMENT 0 ONLY
  3274	003772	301 00 0 00 000040 		CAIL	0,40		;IF 1-37 NO MEMORY
  3275	003773	254 00 0 00 003763 		JRST	$MSKAP		;PHY, DO DIRECT PHYSICAL
  3276	003774	254 00 0 00 003667 		JRST	$MSEG3		;EXIT 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 59
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MEMZRO"                                                                  SEQ 0144

  3277					SUBTTL	*SUBRTN* "MEMZRO"
  3278
  3279					S^;*********************************************************************^
  3280					;*ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
  3281					;*MAPNEW = 0	 DIRECT MEMORY ZERO
  3282					;*	 =-1	 4096K KL10 PAGED MEMORY ZERO
  3283					S^;*********************************************************************^
  3284
  3285	003775	202 01 0 00 006671 	$MZRO:	MOVEM	1,$MZROB#	;SAVE AC1 & AC2
  3286	003776	202 02 0 00 006672 		MOVEM	2,$MZROC#
  3287	003777	336 00 0 00 030143 		SKIPN	MAPNEW		;4096K PAGED OR DIRECT ZERO ?
  3288	004000	254 00 0 00 004016 		JRST	$MZRO2		;DIRECT ZEROING 
  3289
  3290	004001	474 02 0 00 000000 	$MZRO1:	SETO	2,		;PAGED ZEROING
  3291	004002	271 02 0 00 000001 		ADDI	2,1
  3292	004003	303 02 0 00 000037 		CAILE	2,37
  3293	004004	254 00 0 00 004033 		JRST	$MZROX		;DONE
  3294	004005	200 00 0 00 000002 		MOVE	0,2
  3295	004006	260 17 0 00 003602 		GO	$MSEG		;SETUP MEMORY SEGMENT
  3296	004007	037 15 0 00 000004 		FATAL
  3297	004010	322 00 0 00 004002 		JUMPE	0,$MZRO1+1	;NO MEMORY THIS SEGMENT
  3298	004011	621 00 0 00 400000 		TLZ	0,400000	;DON'T CARE IF COMBINED
  3299	004012	402 00 0 00 400000 		SETZM	400000
  3300	004013	200 01 0 00 006337 		MOVE	1,[400000,,400001]
  3301	004014	251 01 1 00 000000 		BLT	1,@0		;ZERO VIRTUAL
  3302	004015	254 00 0 00 004002 		JRST	$MZRO1+1
  3303
  3304	004016	400 02 0 00 000000 	$MZRO2:	SETZ	2,		;DIRECT MEMORY ZERO
  3305	004017	200 00 0 00 030145 		MOVE	0,MEMLOW	;START ADDRESS
  3306	004020	311 00 0 00 030147 		CAML	0,MEMSIZ+1
  3307	004021	254 00 0 00 004033 		JRST	$MZROX
  3308	004022	254 00 0 00 004025 		JRST	.+3
  3309	004023	200 00 0 02 030146 	$MZRO3:	MOVE	0,MEMSIZ(2)	;SEGMENT START ADDRESS
  3310	004024	321 00 0 00 004033 		JUMPL	0,$MZROX	;DONE 
  3311	004025	402 00 1 00 000000 		SETZM	@0
  3312	004026	507 00 0 00 000000 		HRLS			;CREATE BLT POINTER
  3313	004027	271 00 0 00 000001 		ADDI	1
  3314	004030	251 00 1 02 030147 		BLT	0,@MEMSIZ+1(2)	;ZERO DIRECT
  3315	004031	271 02 0 00 000002 		ADDI	2,2
  3316	004032	254 00 0 00 004023 		JRST	$MZRO3		;DO NEXT SEGMENT
  3317
  3318	004033	200 02 0 00 006672 	$MZROX:	MOVE	2,$MZROC	;RESTORE AC'S
  3319	004034	200 01 0 00 006671 		MOVE	1,$MZROB
  3320	004035	263 17 0 00 000000 		RTN			;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 60
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR                                      SEQ 0145

  3321					SUBTTL	*SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
  3322
  3323					S^;*********************************************************************^
  3324					;*VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
  3325					;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KL10 PAGE INACCESSIBLE
  3326					S^;*********************************************************************^
  3327
  3328	004036	202 01 0 00 006640 	$MPADR:	MOVEM	1,$ACMP0#	;SAVE AC1
  3329	004037	550 01 0 00 000000 		HRRZ	1,0		;18 BIT VIRTUAL ADR IN AC1
  3330	004040	307 01 0 00 000017 		CAIG	1,17		;ACCUMULATOR ADDRESS ?
  3331	004041	254 00 0 00 004047 		JRST	$MPAD3-1	;YES
  3332	004042	200 00 0 00 030046 		MOVE	0,CONSW		;GET CONSOLE SWITCHES
  3333	004043	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  3334	004044	607 00 0 00 000100 		TLNN	0,INHPAG	;PAGING INHIBITED
  3335	004045	254 00 0 00 004052 		JRST	$MPADL
  3336	004046	200 00 0 00 000001 		MOVE	0,1
  3337
  3338	004047	350 00 0 17 000000 	$MPAD7:	AOS	(P)
  3339	004050	200 01 0 00 006640 	$MPAD3:	MOVE	1,$ACMP0	;RESTORE AC1
  3340	004051	263 17 0 00 000000 		RTN			;RETURN +1/+2 
  3341
  3342	004052	257 00 0 01 000000 	$MPADL:	MAP	0,(1)		;KL10. GET RELOCATION DATA
  3343	004053	603 00 0 00 200000 		TLNE	0,200000	;PAGE FAILURE
  3344	004054	254 00 0 00 004050 		JRST	$MPAD3		;YES
  3345	004055	621 00 0 00 777000 		TLZ	0,777000	;CLEAR STATUS BITS
  3346	004056	254 00 0 00 004047 		JRST	$MPAD7
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 61
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT MEMORY MAP                                                          SEQ 0146

  3347					SUBTTL	*SUBRTN* PRINT MEMORY MAP
  3348					S^;*********************************************************************^
  3349
  3350						SALL
  3351	004057	477 00 0 00 000002 	$PMAP:	SETOB	0,2
  3352	004060	316 00 0 00 030150 		CAMN	0,MEMSIZ+2	;ONLY ONE SEGMENT ?
  3353	004061	201 02 0 00 000001 		MOVEI	2,1		;YES, SET INDICATOR
  3354	004062	400 04 0 00 000000 		SETZ	4,
  3355	004063	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  3356	004064	254 00 0 00 004072 		JRST	$PMAP3		;NO
  3357	004065	332 00 0 00 030037 		SKIPE	USER		;USER MODE ?
  3358	004066	254 00 0 00 004074 		JRST	$PMAP1		;YES
  3359	004067	554 00 0 00 030043 		HLRZ	MONCTL		;FIRST PASS ?
  3360	004070	302 00 0 00 777777 		CAIE	-1
  3361	004071	254 00 0 00 004074 		JRST	$PMAP1		;NO
  3362	004072	336 00 0 00 030056 	$PMAP3:	SKIPN	$ONETM		;FIRST TIME ?
  3363	004073	474 04 0 00 000000 		SETO	4,		;YES, SET FLAG FOR PRINTING
  3364	004074	322 04 0 00 004101 	$PMAP1:	JUMPE	4,$PMAPL-1	;NO
  3365
  3366	004075	037 02 0 00 006340 		PMSG	<^MEMORY MAP =^FROM     TO         SIZE/K>
  3367
  3368	004076	302 02 0 00 000001 		CAIE	2,1		;IF (2) = 1, ONLY ONE SEGMENT
  3369	004077	037 02 0 00 006347 		PMSG	<]START ADR/K>
  3370	004100	037 00 0 00 030242 		PCRL
  3371	004101	403 03 0 00 000005 		SETZB	3,5
  3372
  3373	004102	335 00 0 03 030146 	$PMAPL:	SKIPGE	MEMSIZ(3)	;GET MAP COORDINATES
  3374	004103	254 00 0 00 004132 		JRST	$PMAP4
  3375	004104	322 04 0 00 004112 		JUMPE	4,.+6
  3376	004105	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  3377	004106	037 10 0 00 000000 		PNTADR			;PRINT START ADDRESS
  3378	004107	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  3379	004110	037 10 0 00 000000 		PNTADR			;PRINT END ADDRESS
  3380	004111	037 00 0 00 000011 		PNTCI	"	"
  3381	004112	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  3382	004113	271 00 0 00 000001 		ADDI	0,1
  3383	004114	274 00 0 03 030146 		SUB	MEMSIZ(3)
  3384	004115	231 00 0 00 002000 		IDIVI	^D1024
  3385	004116	270 05 0 00 000000 		ADD	5,0
  3386	004117	322 04 0 00 004130 		JUMPE	4,$PMAP5
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 62
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT MEMORY MAP                                                          SEQ 0147

  3387	004120	037 15 0 00 000000 	$PMAP7:	PNTDEC			;PRINT DECIMAL SIZE
  3388	004121	306 02 0 00 000001 		CAIN	2,1
  3389	004122	254 00 0 00 004127 		JRST	.+5
  3390	004123	037 00 0 00 000011 		PNTCI	"	"
  3391	004124	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  3392	004125	231 00 0 00 002000 		IDIVI	^D1024
  3393	004126	037 15 0 00 000000 		PNTDEC			;PRINT START ADR IN K
  3394	004127	037 00 0 00 030242 		PCRL
  3395
  3396	004130	271 03 0 00 000002 	$PMAP5:	ADDI	3,2
  3397	004131	254 00 0 00 004102 		JRST	$PMAPL		;GET NEXT IF ANY
  3398
  3399	004132	202 05 0 00 030144 	$PMAP4:	MOVEM	5,MEMTOT	;SAVE TOTAL # OF K
  3400	004133	550 00 0 00 000121 		HRRZ	JOBFF		;SETUP LOWEST USABLE
  3401	004134	271 00 0 00 001000 		ADDI	1000		;MEMORY ADDRESS
  3402	004135	620 00 0 00 000777 		TRZ	777		;EVEN BREAK ABOVE JOBFF
  3403	004136	202 00 0 00 030145 		MOVEM	MEMLOW
  3404	004137	322 04 0 00 004147 		JUMPE	4,$PMAP6	;RETURN
  3405	004140	306 02 0 00 000001 		CAIN	2,1
  3406	004141	254 00 0 00 004146 		JRST	$PMAP6-1	;CRLF & RETURN
  3407
  3408	004142	037 02 0 00 006352 		PMSG	<TOTAL MEMORY/K = >
  3409	004143	200 00 0 00 030144 		MOVE	MEMTOT		;OUTPUT TOTAL MEMORY
  3410	004144	037 15 0 00 000000 		PNTDEC
  3411	004145	037 00 0 00 030242 		PCRL
  3412	004146	037 00 0 00 030242 		PCRL
  3413
  3414	004147	263 17 0 00 000000 	$PMAP6:	RTN			;EXIT
  3415						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 63
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0148

  3416					SUBTTL	*SUBRTN* DEVICE CODE CHANGE SUBROUTINE
  3417
  3418	004150	260 17 0 00 004272 	$MODDV:	GO	$SWTCH		;LOAD SWITCHES INTO AC0
  3419	004151	607 00 0 00 000040 		TLNN	0,MODDVC	;DEVICE CODE CHANGE SELECTED ?
  3420	004152	263 17 0 00 000000 		RTN			;NO, DON'T DO IT 
  3421
  3422	004153	202 01 0 00 006664 	$MODD0:	MOVEM	1,$MODDB#	;SAVE AC'S
  3423	004154	202 02 0 00 006665 		MOVEM	2,$MODDC#
  3424	004155	202 03 0 00 006666 		MOVEM	3,$MODDD#
  3425
  3426					;*ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
  3427					S^;*********************************************************************^
  3428
  3429						SALL
  3430	004156	037 04 0 00 006355 	$MODD1:	PMSGF	<^CHANGE DEVICE CODES,>
  3431	004157	260 17 0 00 005015 		GO	$YESNO		;AFFIRMATIVE ?
  3432	004160	254 00 0 00 004254 		JRST	$MODDX		;NO/NO MORE CHANGES, EXIT
  3433
  3434	004161	037 04 0 00 006361 	$MODD3:	PMSGF	<OLD DEVICE CODE - >
  3435	004162	265 03 0 00 004217 		JSP	3,$MODD2	;GET OLD DEVICE CODE
  3436	004163	254 00 0 00 004161 		JRST	.-2		;NO RESPONSE ...ASK AGAIN
  3437	004164	202 00 0 00 006662 		MOVEM	0,$MDVCO#	;SAVE THE OLD CODE
  3438
  3439	004165	037 04 0 00 006365 	$MODD4:	PMSGF	<NEW DEVICE CODE - >
  3440	004166	265 03 0 00 004217 		JSP	3,$MODD2	;GET NEW DEVICE CODE
  3441	004167	254 00 0 00 004165 		JRST	.-2		;NO RESPONSE ...ASK AGAIN
  3442	004170	202 00 0 00 006661 		MOVEM	0,$MDVCN#	;SAVE THE NEW CODE
  3443
  3444	004171	037 04 0 00 006371 	$MODD5:	PMSGF	<CHANGING FROM > 
  3445	004172	200 01 0 00 006662 		MOVE	1,$MDVCO	;GET OLD CODE
  3446	004173	265 03 0 00 004234 		JSP	3,$MDSRC	;GET THAT CODE OUT OF LIST
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 64
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0149

  3447	004174	037 04 0 00 006374 	$MODD6:	PMSGF	< TO >
  3448	004175	200 01 0 00 006661 		MOVE	1,$MDVCN	;GET NEW CODE
  3449	004176	265 03 0 00 004234 		JSP	3,$MDSRC	;GET THAT CODE OUT OF LIST (
  3450	004177	037 01 0 00 030242 		PCRLF
  3451
  3452	004200	037 04 0 00 006375 	$MODD7:	PMSGF	<VALID CHANGE,>
  3453	004201	260 17 0 00 005015 		GO	$YESNO		;AFFIRMATIVE ?
  3454	004202	254 00 0 00 004156 		JRST	$MODD1		;NO ...START OVER )
  3455	004203	260 17 0 00 004205 		GO	$MODD8		;YES ...CHANGE THE LIST
  3456	004204	254 00 0 00 004156 		JRST	$MODD1
  3457						LALL
  3458
  3459					;*CHANGE THE DEVICE CODE LIST
  3460					S^;*********************************************************************^
  3461
  3462	004205	200 02 0 00 030027 	$MODD8:	MOVE	2,$MODVL
  3463	004206	274 02 0 00 030030 		SUB	2,$MODVU
  3464	004207	514 02 0 00 000002 		HRLZ	2,2
  3465	004210	540 02 0 00 030027 		HRR	2,$MODVL
  3466	004211	200 01 0 00 006661 		MOVE	1,$MDVCN
  3467	004212	135 00 0 00 006400 		LDB	0,[POINT 10,(2),9] 	;GET IOT & DEVICE CODE
  3468	004213	316 00 0 00 006662 		CAMN	0,$MDVCO	;IS IT REQUESTED ONE ?
  3469	004214	137 01 0 00 006400 		DPB	1,[POINT 10,(2),9] 	;YES, MAKE THE CHANGE
  3470	004215	253 02 0 00 004212 		AOBJN	2,.-3
  3471	004216	263 17 0 00 000000 		RTN
  3472
  3473					;*INPUT OLD CODE AND CHECK FOR VALIDITY
  3474					S^;*********************************************************************^
  3475
  3476	004217	260 17 0 00 005060 	$MODD2:	GO	$TPOCT		;INPUT THE OLD CODE
  3477	004220	254 00 1 00 000003 		JRST	@3		;NO RESPONSE, RETURN + 1 )
  3478
  3479	004221	602 00 0 00 000003 	$MODD9:	TRNE	0,3		;MUST END IN 0 OR 4
  3480	004222	254 00 0 00 004252 		JRST	$MODER		;ERROR! ASK AGAIN
  3481	004223	307 00 0 00 000774 		CAIG	0,774		;IS DEVICE CODE IN PROPER RANGE
  3482	004224	305 00 0 00 000014 		CAIGE	0,14
  3483	004225	254 00 0 00 004252 		JRST	$MODER		;ERROR, 14 TO 774 ONLY 
  3484	004226	306 00 0 00 000120 		CAIN	0,120		;CTY MAY NOT CHANGE!
  3485	004227	254 00 0 00 004252 		JRST	$MODER		;ASK AGAIN
  3486	004230	660 00 0 00 007000 		TRO	0,7000		;INSERT IOT CODE
  3487	004231	242 00 0 00 777776 		LSH	0,-2		;POSITION
  3488	004232	350 00 0 00 000003 		AOS	3		;RETURN + 2
  3489	004233	254 00 1 00 000003 		JRST	@3		;RETURN 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 65
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* DEVICE CODE CHANGE SUBROUTINE                                             SEQ 0150

  3490					;*GET THE OLD/NEW CODE FROM DEVICE CODE LIST
  3491					S^;*********************************************************************^
  3492
  3493						SALL
  3494	004234	242 01 0 00 000002 	$MDSRC:	LSH	1,2		;POSITION FOR COMPARE
  3495	004235	620 01 0 00 007000 		TRZ	1,7000		;MASK IOT
  3496	004236	200 02 0 00 006401 		MOVE	2,[-$MDEND,,$MDLST]
  3497	004237	135 00 0 00 006402 		LDB	[POINT 9,(2),35] ;EXTRACT CODE FROM LIST
  3498	004240	316 00 0 00 000001 		CAMN	0,1		;IS THIS THE ONE?
  3499	004241	254 00 0 00 004246 		JRST	$MDSR2		;YES! ...PRINT IT & EXIT
  3500	004242	253 02 0 00 004237 		AOBJN	2,.-3		;NOT YET ...GET NEXT
  3501	004243	200 00 0 00 000001 		MOVE	0,1
  3502	004244	037 03 0 00 000001 		PNT3F
  3503
  3504	004245	254 00 1 00 000003 	$MDSR1:	JRST	@3		;RETURN 
  3505	004246	200 00 0 02 000000 	$MDSR2:	MOVE	0,(2)
  3506	004247	620 00 0 00 000777 		TRZ	0,777		;MASK CODE
  3507	004250	037 01 0 00 000002 		PNTSXF			;PRINT IT
  3508	004251	254 00 0 00 004245 		JRST	$MDSR1		;EXIT
  3509
  3510	004252	037 04 0 00 006403 	$MODER:	PMSGF	<^DEV CODE ERR, 14-774 ONLY^>
  3511	004253	254 00 0 00 004161 		JRST	$MODD3		;ASK WHICH ONE TO CHANGE AGAIN
  3512
  3513	004254	260 17 0 00 003243 	$MODDX:	GO	$CFLUSH		;IF KL10 & CACHE ON, FLUSH
  3514	004255	200 03 0 00 006666 		MOVE	3,$MODDD	;RESTORE AC'S
  3515	004256	200 02 0 00 006665 		MOVE	2,$MODDC
  3516	004257	200 01 0 00 006664 		MOVE	1,$MODDB
  3517	004260	263 17 0 00 000000 		RTN			;EXIT
  3518						LALL
  3519					S^;*********************************************************************^
  3520					;*DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
  3521					;* AC0 = [OLD,,NEW]
  3522					S^;*********************************************************************^
  3523
  3524	004261	242 00 0 00 777776 	$MODDP:	LSH	AC0,-2		;RIGHT JUSTIFY
  3525	004262	434 00 0 00 006410 		OR	AC0,[1600,,1600] ;INSERT IOT CODE
  3526	004263	556 00 0 00 006662 		HLRZM	$MDVCO		;SETUP OLD CODE
  3527	004264	552 00 0 00 006661 		HRRZM	$MDVCN		;SETUP NEW CODE
  3528	004265	202 01 0 00 006664 		MOVEM	1,$MODDB
  3529	004266	202 02 0 00 006665 		MOVEM	2,$MODDC
  3530	004267	202 03 0 00 006666 		MOVEM	3,$MODDD
  3531
  3532	004270	260 17 0 00 004205 		GO	$MODD8		;CHANGE CODES
  3533	004271	254 00 0 00 004254 		JRST	$MODDX		;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 66
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0151

  3534					SUBTTL	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
  3535
  3536					S^;*********************************************************************^
  3537					;*INPUT CONSOLE SWITCHES IN EXEC MODE
  3538					S^;*********************************************************************^
  3539
  3540	004272	332 00 0 00 030521 	$SWTCH:	SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  3541	004273	254 00 0 00 004307 		JRST	$SWU2		;YES, USE C(CONSW)
  3542	004274	336 00 0 00 006717 		SKIPN	$SWFLG		;BEEN INITED ?
  3543	004275	254 00 0 00 004305 		JRST	$SWU1		;NO, USE SAVED SWITCHES
  3544	004276	332 00 0 00 006733 		SKIPE	$USWTF		;TTY SWITCH CONTROL ?
  3545	004277	254 00 0 00 004305 		JRST	$SWU1		;YES, USE SAVED SWITCHES
  3546	004300	260 17 0 00 004412 		GO	$KLSWR		;KL10
  3547	004301	335 00 0 00 030043 	$SWCH1:	SKIPGE	MONCTL		;MONITR CONTROL ?
  3548	004302	540 00 0 00 030043 		HRR	0,MONCTL	;YES, USE PRESTORED RH SWITCHES
  3549	004303	202 00 0 00 030046 		MOVEM	0,CONSW		;SAVE
  3550	004304	263 17 0 00 000000 		RTN			;EXIT
  3551	004305	200 00 0 00 030046 	$SWU1:	MOVE	0,CONSW
  3552	004306	254 00 0 00 004301 		JRST	$SWCH1
  3553	004307	200 00 0 00 030046 	$SWU2:	MOVE	0,CONSW
  3554	004310	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 67
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0152

  3555					;*SWITCH INITIALIZATION ROUTINE
  3556					S^;*********************************************************************^
  3557
  3558						SALL
  3559	004311	402 00 0 00 006733 	$SWTIN:	SETZM	$USWTF#		;CLEAR TTY CONTROL FLAG
  3560	004312	402 00 0 00 006720 		SETZM	$SWONCE#
  3561	004313	260 17 0 00 004416 		GO	$SW0		;INIT SWITCH ROUTINE
  3562	004314	476 00 0 00 006720 	$SWIN1:	SETOM	$SWONCE
  3563	004315	476 00 0 00 006717 		SETOM	$SWFLG		;SET INITED FLAG
  3564	004316	260 17 0 00 004402 		GO	$KLSWI		;DEMAND SWITCHES IF KL10
  3565	004317	260 17 0 00 004272 		GO	$SWTCH		;READ CONSOLE SWITCHES
  3566	004320	603 00 0 00 020000 		TLNE	PNTLPT		;PRINT ON LPT/LOGICAL DEVICE ?
  3567	004321	260 17 0 00 002312 		GO	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  3568	004322	200 00 0 00 030046 		MOVE	CONSW
  3569	004323	603 00 0 00 000004 		TLNE	CHAIN		;IN CHAIN MODE ?
  3570	004324	263 17 0 00 000000 		RTN			;YES, DON'T PRINT FOLLOWING
  3571	004325	335 00 0 00 030043 		SKIPGE	MONCTL
  3572	004326	263 17 0 00 000000 		RTN			;DIAGNOSTIC MONITOR
  3573	004327	332 00 0 00 030521 		SKIPE	$$TOGGLE
  3574	004330	254 00 0 00 004335 		JRST	.+5
  3575	004331	037 04 0 00 006111 		PMSGF	<^SWITCHES = >
  3576	004332	200 00 0 00 030046 		MOVE	CONSW		;GET THE SAVED SWITCHES
  3577	004333	037 13 0 00 000001 		PNTHWF			;PRINT PRESENT SWITCH SETTINGS
  3578	004334	037 01 0 00 030242 		PCRLF
  3579						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 68
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0153

  3580					;*PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES
  3581					S^;*********************************************************************^
  3582
  3583						SALL
  3584	004335	037 02 0 00 006411 		PMSG	<CLK SOURCE = >
  3585	004336	200 01 0 00 006634 		MOVE	1,CLKDFL
  3586	004337	242 01 0 00 777776 		LSH	1,-2
  3587	004340	405 01 0 00 000003 		ANDI	1,3
  3588						MOVE	0,[SIXBIT\NORMAL\
  3589							SIXBIT\FAST\
  3590							SIXBIT\EXTERN\
  3591	004341	200 00 0 01 006414 			SIXBIT\UNUSED\](1)
  3592	004342	037 00 0 00 000002 		PNTSIX
  3593	004343	037 02 0 00 006420 		PMSG	<, CLK RATE = >
  3594	004344	200 01 0 00 006634 		MOVE	1,CLKDFL
  3595	004345	405 01 0 00 000003 		ANDI	1,3
  3596						MOVE	0,[SIXBIT\FULL\
  3597							SIXBIT\1/2\
  3598							SIXBIT\1/4\
  3599	004346	200 00 0 01 006423 			SIXBIT\1/8\](1)
  3600	004347	037 00 0 00 000002 		PNTSIX
  3601
  3602	004350	037 02 0 00 006427 		PMSG	<, AC BLK >
  3603	004351	7 010 04 0 00 000000 		DATAI	PAG,0			;READ CURRENT AC BLOCK SELECTION
  3604	004352	242 00 0 00 777745 		LSH	0,-^D27			;ISOLATE
  3605	004353	405 00 0 00 000007 		ANDI	0,7
  3606	004354	037 01 0 00 000000 		PNT1				;PRINT AC BLOCK DIGIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 69
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0154

  3607	004355	332 00 0 00 030506 		SKIPE	CSHFLG
  3608	004356	254 00 0 00 004400 		JRST	$SWIN3		;CACHE PREVENTED
  3609	004357	200 00 0 00 030046 		MOVE	CONSW
  3610	004360	603 00 0 00 000020 		TLNE	INHCSH
  3611	004361	254 00 0 00 004400 		JRST	$SWIN3		;CACHE INHIBITED
  3612	004362	554 01 0 00 006634 		HLRZ	1,CLKDFL	;GET CACHE ENABLES
  3613	004363	242 01 0 00 777762 		LSH	1,-^D14		;ISOLATE BITS 0-3
  3614	004364	405 01 0 00 000017 		ANDI	1,17
  3615	004365	336 00 0 00 000001 		SKIPN	1
  3616	004366	254 00 0 00 004400 		JRST	$SWIN3		;NOT ENABLED
  3617	004367	037 02 0 00 006431 		PMSG	<, CACHE:>
  3618	004370	602 01 0 00 000010 		TRNE	1,10		;CACHE 0 ENABLED ?
  3619	004371	037 02 0 00 006433 		PMSG	< 0>
  3620	004372	602 01 0 00 000004 		TRNE	1,4		;CACHE 1 ENABLED ?
  3621	004373	037 02 0 00 006434 		PMSG	< 1>
  3622	004374	602 01 0 00 000002 		TRNE	1,2		;CACHE 2 ENABLED ?
  3623	004375	037 02 0 00 006435 		PMSG	< 2>
  3624	004376	602 01 0 00 000001 		TRNE	1,1		;CACHE 3 ENABLED ?
  3625	004377	037 02 0 00 006436 		PMSG	< 3>
  3626	004400	037 00 0 00 030242 	$SWIN3:	PCRL
  3627	004401	263 17 0 00 000000 		RTN
  3628
  3629	004402	201 00 0 00 001400 	$KLSWI:	MOVEI	0,1400		;KL10, GET SWITCHES FROM PDP-11
  3630	004403	260 17 0 00 002012 		GO	$DTEXX
  3631	004404	202 00 0 00 000457 		MOVEM	0,$DTSWR	;PUT IN DTE20 SWITCH WORD
  3632	004405	201 00 0 00 000405 		MOVEI	AC0,405
  3633	004406	260 17 0 00 002012 		GO	$DTEXX		;GET CLOCK DEFAULT WORD
  3634	004407	202 00 0 00 006634 		MOVEM	AC0,CLKDFL#
  3635	004410	402 00 0 00 006635 		SETZM	KLNSW#
  3636	004411	263 17 0 00 000000 		RTN
  3637
  3638	004412	332 00 0 00 006635 	$KLSWR:	SKIPE	KLNSW		;NEED TO DEMAND SWITCHES ?
  3639	004413	260 17 0 00 004402 		GO	$KLSWI		;YES
  3640	004414	200 00 0 00 000457 		MOVE	AC0,$DTSWR
  3641	004415	263 17 0 00 000000 		RTN
  3642						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 70
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0155

  3643					;*SWITCH INITIALIZATION ROUTINE
  3644					S^;*********************************************************************^
  3645
  3646						SALL
  3647	004416	261 17 0 00 000000 	$SW0:	PUT	0
  3648	004417	332 00 0 00 030521 		SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  3649	004420	254 00 0 00 004472 		JRST	$SW9+2		;YES, USE C(CONSW)
  3650	004421	254 00 0 00 004464 		JRST	$SW8		;EXEC
  3651
  3652	004422	037 04 0 00 006111 	$SW12:	PMSGF	<^SWITCHES = >
  3653	004423	200 00 0 00 030046 		MOVE	CONSW
  3654	004424	037 13 0 00 000001 		PNTHWF
  3655
  3656	004425	037 04 0 00 006437 	$SW1:	PMSGF	<^TTY SWITCH CONTROL ? - 0,S,Y OR N <CR> - >
  3657	004426	260 17 0 00 004647 		GO	$OPTLK		;INPUT THE ANSWER
  3658	004427	254 00 0 00 004425 		JRST	$SW1		;NO CHARACTER RETURNED, ASK AGAIN
  3659	004430	306 00 0 00 000015 		CAIN	0,15
  3660	004431	254 00 0 00 004447 		JRST	$SWERR		;1ST CHAR CR, ERROR
  3661	004432	242 00 0 00 000007 		LSH	0,7		;POSITION 1ST CHAR
  3662	004433	202 00 0 00 006716 		MOVEM	$SW#
  3663	004434	260 17 0 00 004647 		GO	$OPTLK		;INPUT THE CR
  3664	004435	254 00 0 00 004425 		JRST	$SW1		;NO CHAR, ASK AGAIN
  3665	004436	434 00 0 00 006716 		OR	0,$SW
  3666	004437	306 00 0 00 014015 		CAIN	0,14015		;"0" (CR) ?
  3667	004440	254 00 0 00 004450 		JRST	$SW6		;YES-USE ALL SWITCHES = 0
  3668	004441	306 00 0 00 024615 		CAIN	0,24615		;"S" (CR) ?
  3669	004442	254 00 0 00 004470 		JRST	$SW9		;YES-USE SAVED SWITCHES
  3670	004443	306 00 0 00 026215 		CAIN	0,26215		;"Y" (CR) ?
  3671	004444	254 00 0 00 004452 		JRST	$SW2		;YES-USE TTY INPUT SWITCHES
  3672	004445	306 00 0 00 023415 		CAIN	0,23415		;"N" (CR) ?
  3673	004446	254 00 0 00 004466 		JRST	$SW7		;YES-READ CONSOLE SWITCHES & RETURN
  3674
  3675	004447	254 00 0 00 004425 	$SWERR:	JRST	$SW1		;ASK AGAIN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 71
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0156

  3676	004450	402 00 0 00 000000 	$SW6:	SETZM	0
  3677	004451	254 00 0 00 004462 		JRST	$SW4
  3678
  3679	004452	037 04 0 00 006447 	$SW2:	PMSGF	<^LH SWITCHES <# OR ?>- >
  3680	004453	260 17 0 00 005060 		GO	$TPOCT		;INPUT 6 OCTALS
  3681	004454	254 00 0 00 004502 		JRST	$SW13		;ERROR .....TRY AGAIN
  3682	004455	516 00 0 00 006716 		HRLZM	0,$SW#		;MOVE LH WORD TO SW
  3683
  3684	004456	037 04 0 00 006453 	$SW3:	PMSGF	<RH SWITCHES <# OR ?>- >
  3685	004457	260 17 0 00 005060 		GO	$TPOCT		;INPUT 6 OCTALS
  3686	004460	254 00 0 00 004507 		JRST	$SW14		;ERROR .....TRY AGAIN
  3687	004461	500 00 0 00 006716 		HLL	0,$SW		;GET LH SWITCHES
  3688	004462	202 00 0 00 030046 	$SW4:	MOVEM	0,CONSW		;SAVE SWITCHES IN CONSW
  3689	004463	476 00 0 00 006733 	$SW5:	SETOM	$USWTF		;SET TTY INPUT SWITCH FLAG
  3690	004464	262 17 0 00 000000 	$SW8:	GET	0
  3691	004465	263 17 0 00 000000 		RTN
  3692
  3693	004466	402 00 0 00 006733 	$SW7:	SETZM	$USWTF		;N, USE REAL SWITCHES
  3694	004467	254 00 0 00 004464 		JRST	$SW8
  3695
  3696	004470	332 00 0 00 006720 	$SW9:	SKIPE	$SWONCE		;S, USE SAME AS BEFORE ON "DING" REQUEST
  3697	004471	254 00 0 00 004464 		JRST	$SW8
  3698	004472	200 00 0 00 006715 		MOVE	$SVCSW		;ON INITIALIZATION USE PREVIOUS SWITCHES
  3699	004473	254 00 0 00 004462 		JRST	$SW4
  3700
  3701	004474	200 00 0 00 020007 	$SW10:	MOVE	0,DIASWS	;GET DIAMON SWITCHES
  3702	004475	254 00 0 00 004462 		JRST	$SW4
  3703
  3704	004476	200 00 0 00 006715 	$SW11:	MOVE	0,$SVCSW	;IF SAVED SW'S ARE ZERO
  3705	004477	322 00 0 00 004425 		JUMPE	0,$SW1		;DON'T PRINT THEM
  3706	004500	202 00 0 00 030046 		MOVEM	0,CONSW
  3707	004501	254 00 0 00 004422 		JRST	$SW12
  3708
  3709	004502	302 00 0 00 000077 	$SW13:	CAIE	"?"		;QMARK ?
  3710	004503	254 00 0 00 004452 		JRST	$SW2		;NO, ERROR
  3711	004504	201 00 0 00 004546 		MOVEI	SWTAB
  3712	004505	260 17 0 00 004515 		GO	$SWXX		;PROMPT FOR SWITCHES
  3713	004506	254 00 0 00 004455 		JRST	$SW3-1
  3714
  3715	004507	302 00 0 00 000077 	$SW14:	CAIE	"?"		;QMARK ?
  3716	004510	254 00 0 00 004456 		JRST	$SW3		;NO, ERROR
  3717	004511	200 00 0 00 030525 		MOVE	SWPTAB		;GET ADDRESS OF USERS TABLE
  3718	004512	322 00 0 00 004456 		JUMPE	$SW3		;IF NONE, ERROR
  3719	004513	260 17 0 00 004515 		GO	$SWXX		;PROMPT FOR SWITCHES
  3720	004514	254 00 0 00 004461 		JRST	$SW4-1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 72
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0157

  3721					;*PROMPT FOR SWITCHES
  3722
  3723	004515	261 17 0 00 000001 	$SWXX:	PUT	1
  3724	004516	261 17 0 00 000002 		PUT	2
  3725	004517	261 17 0 00 000003 		PUT	3
  3726	004520	200 01 0 00 000000 		MOVE	1,0		;PUT SWITCH PROMPT TABLE ADDRESS IN 1
  3727	004521	505 01 0 00 777756 		HRLI	1,-^D18		;18 SWITCHES
  3728	004522	201 02 0 00 400000 		MOVEI	2,400000
  3729	004523	400 03 0 00 000000 		SETZ	3,
  3730	004524	037 01 0 00 030242 		PCRLF
  3731
  3732	004525	200 00 0 01 000000 	$SWXX1:	MOVE	(1)		;GET SIXBIT PROMPT
  3733	004526	322 00 0 00 004536 		JUMPE	0,$SWXX2	;IF BLANK, NO PROMPT
  3734	004527	037 01 0 00 000002 		PNTSXF
  3735	004530	037 01 0 00 000011 		PNTCIF	11		;PRINT A TAB
  3736	004531	260 17 0 00 004577 		GO	$SWZZ		;GET SWITCH ANSWER
  3737	004532	254 00 0 00 004524 		JRST	$SWXX1-1	;ERROR
  3738	004533	254 00 0 00 004540 		JRST	$SWXX3		;CONTROL Z
  3739	004534	254 00 0 00 004570 		JRST	$SWXX4		;UPARROW
  3740	004535	434 03 0 00 000002 		OR	3,2		;YES, OR SWITCH BIT IN
  3741									;NO, DON'T SET SWITCH BIT
  3742	004536	242 02 0 00 777777 	$SWXX2:	LSH	2,-1		;POSITION TO NEXT SWITCH
  3743	004537	253 01 0 00 004525 		AOBJN	1,$SWXX1
  3744	004540	037 01 0 00 030242 	$SWXX3:	PCRLF
  3745	004541	200 00 0 00 000003 		MOVE	0,3		;RETURN SWITCHES IN 0
  3746	004542	262 17 0 00 000003 		GET	3
  3747	004543	262 17 0 00 000002 		GET	2
  3748	004544	262 17 0 00 000001 		GET	1
  3749	004545	263 17 0 00 000000 		RTN
  3750
  3751	004546	41 42 57 62 64 00 	SWTAB:	SIXBIT/ABORT/
  3752	004547	62 63 64 41 62 64 		SIXBIT/RSTART/
  3753	004550	64 57 64 41 54 63 		SIXBIT/TOTALS/
  3754	004551	56 57 60 56 64 00 		SIXBIT/NOPNT/
  3755	004552	60 56 64 54 60 64 		SIXBIT/PNTLPT/
  3756	004553	44 51 56 47 00 00 		SIXBIT/DING/
  3757	004554	54 57 57 60 45 62 		SIXBIT/LOOPER/
  3758	004555	45 62 63 64 57 60 		SIXBIT/ERSTOP/
  3759	004556	60 41 54 45 62 63 		SIXBIT/PALERS/
  3760	004557	62 45 54 51 41 42 		SIXBIT/RELIAB/
  3761	004560	64 70 64 51 56 50 		SIXBIT/TXTINH/
  3762	004561	51 56 50 60 41 47 		SIXBIT/INHPAG/
  3763	004562	55 57 44 44 66 43 		SIXBIT/MODDVC/
  3764	004563	51 56 50 43 63 50 		SIXBIT/INHCSH/
  3765	004564	57 60 62 63 45 54 		SIXBIT/OPRSEL/
  3766	004565	43 50 41 51 56 00 		SIXBIT/CHAIN/
  3767	004566	000000	000000			0
  3768	004567	000000	000000			0
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 73
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0158

  3769					;*PROCESS PROMPT
  3770					;*	CONTROL Z, ENDS PROMPTING
  3771					;*	UPARROW, BACK UP ONE PROMPT
  3772					;*	Y, SET SWITCH
  3773					;*	N, DON'T SET SWITCH
  3774					;*	CR, DON'T SET SWITCH
  3775
  3776	004570	306 02 0 00 400000 	$SWXX4:	CAIN	2,400000	;BACKED UP ALL THE WAY ?
  3777	004571	254 00 0 00 004576 		JRST	.+5		;YES
  3778	004572	242 02 0 00 000001 		LSH	2,1		;BACKUP SWITCH BIT
  3779	004573	274 01 0 00 006102 		SUB	1,[1,,1]	;BACKUP SWITCH TABLE POINTER
  3780	004574	336 00 0 01 000000 		SKIPN	(1)		;THIS POSITION BLANK ?
  3781	004575	254 00 0 00 004570 		JRST	.-5		;YES, BACK UP ANOTHER
  3782	004576	254 00 0 00 004524 		JRST	$SWXX1-1
  3783
  3784	004577	037 01 0 00 006457 	$SWZZ:	PNTMSF	[ASCIZ/- Y,N, <CR> OR ^,^Z - /]
  3785	004600	260 17 0 00 004647 		GO	$OPTLK
  3786	004601	263 17 0 00 000000 		RTN			;NO RESPONSE
  3787	004602	306 00 0 00 000032 		CAIN	"Z"-100
  3788	004603	254 00 0 00 004631 		JRST	$SWZZ1		;^Z, DONE
  3789	004604	306 00 0 00 000136 		CAIN	"^"
  3790	004605	254 00 0 00 004630 		JRST	$SWZZ2		;^, BACKUP
  3791	004606	306 00 0 00 000015 		CAIN	15
  3792	004607	254 00 0 00 004626 		JRST	$SWZZ4		;CR, SAME AS NO
  3793
  3794	004610	302 00 0 00 000131 		CAIE	"Y"		;Y, SET SWITCH BIT
  3795	004611	306 00 0 00 000116 		CAIN	"N"		;N, DON'T SET SWITCH BIT
  3796	004612	254 00 0 00 004614 		JRST	.+2
  3797	004613	263 17 0 00 000000 		RTN			;NEITHER, ERROR
  3798	004614	242 00 0 00 000007 		LSH	0,7
  3799	004615	202 00 0 00 006721 		MOVEM	$SWYYY#
  3800	004616	260 17 0 00 004647 		GO	$OPTLK		;GET CR
  3801	004617	263 17 0 00 000000 		RTN			;NO RESPONSE
  3802	004620	434 00 0 00 006721 		OR	0,$SWYYY
  3803	004621	306 00 0 00 026215 		CAIN	0,26215
  3804	004622	254 00 0 00 004627 		JRST	$SWZZ3		;Y <CR>
  3805	004623	306 00 0 00 023415 		CAIN	0,23415
  3806	004624	254 00 0 00 004626 		JRST	$SWZZ4		;N <CR>
  3807	004625	263 17 0 00 000000 		RTN			;ERROR
  3808
  3809	004626	350 00 0 17 000000 	$SWZZ4:	AOS	(P)		;NO
  3810	004627	350 00 0 17 000000 	$SWZZ3:	AOS	(P)		;YES
  3811	004630	350 00 0 17 000000 	$SWZZ2:	AOS	(P)		;UPARROW
  3812	004631	350 00 0 17 000000 	$SWZZ1:	AOS	(P)		;CONTROL Z
  3813	004632	263 17 0 00 000000 		RTN
  3814
  3815						LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 74
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0159

  3816					SUBTTL	*SUBRTN* TELETYPE INPUT ROUTINES
  3817
  3818					S^;*********************************************************************^
  3819					;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
  3820					;*CHARACTER OR NUMBER RETURNED IN AC0.
  3821					;*CALL SEQUENCE IS AS FOLLOWS:
  3822					;*	NAME
  3823					;*	NO/ERROR RESPONSE RETURN (+ 1)
  3824					;*	NORMAL RESPONSE RETURN (+ 2)
  3825					;*$OPTLK =	INPUT ANY CHARACTER
  3826					;*$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
  3827					;*$NOYES =	ASK QUESTION, CORRECT RESPONSE N
  3828					;*$TPOCT =	INPUT UP TO 12 OCTALS
  3829					;*$TPDEC =	INPUT UP TO 11 DECIMALS
  3830					;*$TPCNV =	INPUT UP TO 9 CONVERT'S
  3831					;*$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
  3832					;*$TALTM =	KEYBOARD, ALT-MODE CHECK
  3833					;*$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS
  3834					S^;*********************************************************************^
  3835
  3836
  3837					;*TELETYPE INPUT INITIALIZATION
  3838					S^;*********************************************************************^
  3839	004633	201 00 0 00 000264 	$TYPIN:	MOVEI	^D180		;INIT OPERATOR WAIT TIME AS 180 SEC
  3840	004634	202 00 0 00 030224 		MOVEM	OPTIME
  3841	004635	263 17 0 00 000000 		RTN			;EXIT
  3842
  3843					S^;*********************************************************************^
  3844					;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
  3845					;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
  3846					;*NO INPUT CHECKING ON KL10
  3847					S^;*********************************************************************^
  3848
  3849	004636	400 00 0 00 000000 	$TTLK:	SETZ	AC0,
  3850	004637	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 75
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0160

  3851					S^;*********************************************************************^
  3852					;*TELETYPE IMAGE MODE INPUT
  3853					;*PROVIDES UNBUFFERED MODE INPUT
  3854					;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
  3855					S^;*********************************************************************^
  3856
  3857	004640	201 00 0 00 003400 	$TTYIN:	MOVEI	0,3400		;DDT INPUT MODE
  3858	004641	260 17 0 00 002012 		GO	$DTEXX
  3859	004642	405 00 0 00 000177 		ANDI	0,177		;STRIP EXTRA BITS
  3860	004643	322 00 0 00 004640 		JUMPE	0,.-3		;IF 0, NO CHAR, WAIT
  3861
  3862	004644	260 17 0 00 004743 		GO	$TIEX2	;RUN THRU NORMAL PROCESS
  3863	004645	037 15 0 00 000004 		FATAL			;CAN'T HAPPEN
  3864	004646	263 17 0 00 000000 		RTN
  3865					S^;*********************************************************************^
  3866					;*TELETYPE INPUT OPERATOR RESPONSE ROUTINE
  3867					S^;*********************************************************************^
  3868
  3869	004647	202 04 0 00 006722 	$OPTLK:	MOVEM	4,$TACB4#
  3870	004650	200 04 0 00 030224 		MOVE	4,OPTIME	;COMPUTE WAIT DELAY
  3871	004651	221 04 0 00 147400 		IMULI	4,147400	;1 SEC FUDGE FACTOR
  3872	004652	363 04 0 00 004656 		SOJLE	4,.+4		;WAITED LONG ENOUGH YET ?
  3873	004653	260 17 0 00 004733 		GO	$HEAR		;NO, GO LOOK FOR INPUT & RETURN
  3874	004654	254 00 0 00 004652 		JRST	.-2		;NO RESPONSE, REPEAT
  3875	004655	350 00 0 17 000000 		AOS	(P)		;CHAR TYPED, RETURN +2
  3876	004656	202 04 0 00 030225 		MOVEM	4,$TWCNT	;SAVE TTY WAIT COUNT
  3877	004657	200 04 0 00 006722 		MOVE	4,$TACB4
  3878	004660	263 17 0 00 000000 		RTN			;NO CHAR, RETURN +1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 76
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0161

  3879					S^;*********************************************************************^
  3880					;*TELETYPE ALT-MODE CHECK ROUTINE
  3881					S^;*********************************************************************^
  3882
  3883	004661	200 00 0 00 000454 	$TALTM:	MOVE	0,$DTCHR	;GET LAST TYPED CHAR
  3884	004662	405 00 0 00 000177 		ANDI	0,177
  3885	004663	301 00 0 00 000141 		CAIL	"A"+40
  3886	004664	303 00 0 00 000172 		CAILE	"Z"+40
  3887	004665	254 00 0 00 004667 		JRST	.+2
  3888	004666	275 00 0 00 000040 		SUBI	40
  3889	004667	402 00 0 00 000454 		SETZM	$DTCHR		;CLEAR FOR NEXT CHAR
  3890
  3891	004670	302 00 0 00 000175 	$TALT2:	CAIE	175
  3892	004671	306 00 0 00 000176 		CAIN	176
  3893	004672	254 00 0 00 004675 		JRST	$TALT1		;ALT-MODE WAS TYPED
  3894	004673	302 00 0 00 000033 		CAIE	33
  3895	004674	254 00 0 00 004676 		JRST	.+2		;NO ALT-MODE
  3896
  3897	004675	254 00 0 00 030064 	$TALT1:	JRST	CPOPJ1		;ALT-MODE, RETURN +2
  3898
  3899	004676	306 00 0 00 000004 		CAIN	004		;IS CHAR CONTROL D (^D) ?
  3900	004677	254 00 0 00 002302 		JRST	$DDTENT		;YES
  3901	004700	306 00 0 00 000024 		CAIN	024		;IS CHAR CONTROL T (^T) ?
  3902	004701	254 00 0 00 004714 		JRST	$TALT3		;YES
  3903	004702	306 00 0 00 000005 		CAIN	005		;IS CHAR CONTROL E (^E) ?
  3904	004703	254 00 0 00 004722 		JRST	$TALT4		;YES
  3905	004704	302 00 0 00 000007 		CAIE	007		;IS CHAR A BELL ?
  3906	004705	263 17 0 00 000000 		RTN
  3907	004706	332 00 0 00 030522 		SKIPE	$$TAX1
  3908	004707	256 00 0 00 030522 		XCT	$$TAX1		;XCT USERS PRE-ROUTINE
  3909	004710	260 17 0 00 004416 		GO	$SW0		;YES, DING FOR SWITCH CONTROL
  3910	004711	332 00 0 00 030523 		SKIPE	$$TAX2
  3911	004712	256 00 0 00 030523 		XCT	$$TAX2		;XCT USERS POST-ROUTINE
  3912	004713	263 17 0 00 000000 		RTN
  3913
  3914	004714				$TALT3:	PMSGF	<TEST PC = >^
  3915	004714	037 04 0 00 006464 		PSIXMF	[SIXBIT\TEST PC = _\]^
  3916	004715	550 00 0 00 030051 		HRRZ	TESTPC
  3917	004716	037 06 0 00 000001 		PNT6F			;PRINT TEST PC
  3918	004717	037 01 0 00 030242 		PCRLF
  3919	004720	201 00 0 00 000024 		MOVEI	0,024
  3920	004721	263 17 0 00 000000 		RTN
  3921
  3922	004722				$TALT4:	PMSGF	<ERROR PC = >^
  3923	004722	037 04 0 00 006466 		PSIXMF	[SIXBIT\ERROR PC = _\]^
  3924	004723	550 00 0 00 030052 		HRRZ	ERRPC
  3925	004724	037 06 0 00 000001 		PNT6F			;PRINT ERROR PC
  3926						PMSGF	< ERROR TOTALS = >^
  3927	004725	037 04 0 00 006470 		PSIXMF	[SIXBIT\ ERROR TOTALS = _\]^
  3928	004726	200 00 0 00 030053 		MOVE	ERRTLS
  3929	004727	037 15 0 00 000001 		PNTDCF			;PRINT ERROR TOTALS
  3930	004730	037 01 0 00 030242 		PCRLF
  3931	004731	201 00 0 00 000005 		MOVEI	0,005
  3932	004732	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 77
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0162

  3933					S^;*********************************************************************^
  3934					;*TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC
  3935					S^;*********************************************************************^
  3936
  3937	004733	201 00 0 00 002400 	$HEAR:	MOVEI	AC0,2400
  3938	004734	260 17 0 00 002012 		GO	$DTEXX		;COMMAND CODE TO DTE-20
  3939	004735	405 00 0 00 000377 		ANDI	AC0,377
  3940	004736	202 00 0 00 030231 		MOVEM	AC0,$TTCHR	;CHAR DEPOSITED INTO AC0
  3941	004737	402 00 0 00 000454 		SETZM	$DTCHR
  3942	004740	326 00 0 00 004757 		JUMPN	AC0,$HEAR4
  3943	004741	201 04 0 00 000001 		MOVEI	4,1		;TIMED OUT
  3944	004742	263 17 0 00 000000 		RTN
  3945
  3946	004743	202 00 0 00 030231 	$TIEX2:	MOVEM	$TTCHR#
  3947	004744	260 17 0 00 005755 		GO	$TYOUT		;ECHO CHAR
  3948	004745	350 00 0 00 006652 		AOS	$CARCT
  3949	004746	405 00 0 00 000177 		ANDI	177
  3950	004747	306 00 0 00 000003 		CAIN	003		;CONTROL C ?
  3951	004750	254 00 0 00 005010 		JRST	$HEAR1		;YES, TERMINATE
  3952	004751	302 00 0 00 000015 		CAIE	15		;IS IT CR ?
  3953	004752	254 00 0 00 004757 		JRST	$HEAR4		;NO, PROCESS IT
  3954	004753	402 00 0 00 006652 		SETZM	$CARCT
  3955	004754	201 00 0 00 000012 		MOVEI	12
  3956	004755	260 17 0 00 005755 		GO	$TYOUT		;ECHO LF
  3957	004756	254 00 0 00 004757 		JRST	$HEAR4		;NOW PROCESS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 78
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0163

  3958					S^;*********************************************************************^
  3959					;*CHARACTER PROCESSING ROUTINE FOR INPUT
  3960					;*CHARACTER RETURNED IN AC0 IS UPPER CASE
  3961					;*ACTUAL CHARACTER IS IN $TTCHR
  3962					S^;*********************************************************************^
  3963
  3964	004757	200 00 0 00 030231 	$HEAR4:	MOVE	0,$TTCHR	;GET ACTUAL CHARACTER
  3965	004760	405 00 0 00 000177 		ANDI	0,177		;CLEAR PARITY BIT
  3966	004761	301 00 0 00 000141 		CAIL	0,"A"+40	;CONVERT TO UPPER CASE
  3967	004762	303 00 0 00 000172 		CAILE	0,"Z"+40
  3968	004763	254 00 0 00 004765 		JRST	.+2
  3969	004764	275 00 0 00 000040 		SUBI	0,40
  3970	004765	202 00 0 00 030232 		MOVEM	0,$CHRIN#	;SAVE CHARACTER
  3971	004766	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  3972	004767	254 00 0 00 005000 		JRST	$HEAR3		;NO
  3973	004770	402 00 0 00 006652 		SETZM	$CARCT		;CLEAR CHARACTER COUNTER
  3974	004771	200 00 0 00 030046 		MOVE	0,CONSW
  3975	004772	607 00 0 00 020000 		TLNN	0,PNTLPT	;LPT/LOGICAL DEVICE OUTPUT ?
  3976	004773	254 00 0 00 004775 		JRST	$HEAR2		;NO
  3977	004774	037 00 0 00 030242 		PCRL			;YES-ADD CRLF
  3978	004775	200 00 0 00 030232 	$HEAR2:	MOVE	0,$CHRIN	;PUT INPUT CHAR IN AC0
  3979	004776	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN +2 
  3980	004777	263 17 0 00 000000 		RTN			;NORMAL RETURN +1 
  3981
  3982	005000	306 00 0 00 000004 	$HEAR3:	CAIN	0,04
  3983	005001	254 00 0 00 002302 		JRST	$DDTENT		;CONTROL D, GO TO DDT
  3984	005002	200 00 0 00 030046 		MOVE	0,CONSW		;GET DATA SWITCHES
  3985	005003	607 00 0 00 020000 		TLNN	0,PNTLPT	;PRINT ON LPT?
  3986	005004	254 00 0 00 004775 		JRST	$HEAR2		;NO-EXIT 
  3987	005005	200 00 0 00 030232 		MOVE	0,$CHRIN	;YES
  3988	005006	037 12 0 00 000000 		PNTCHR			;SEND CHAR TO LPT/LOGICAL DEV
  3989	005007	254 00 0 00 004775 		JRST	$HEAR2		;EXIT 
  3990
  3991	005010	201 00 0 00 004733 	$HEAR1:	MOVEI	0,$HEAR+0	;CONTROL C, SAVE ENTRY TO 
  3992	005011	202 00 0 00 000130 		MOVEM	0,JOBOPC	;TTY ROUTINE FOR RESTART
  3993	005012	254 00 1 00 030062 		JRST	@CNTLC		;TERMINATE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 79
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE                                          SEQ 0164

  3994					SUBTTL	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
  3995
  3996					S^;*********************************************************************^
  3997					;*ACCEPTS Y OR N
  3998					;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
  3999					;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
  4000					;*'Y OR N <CR> - ' ASKED UPON ENTRY
  4001					S^;*********************************************************************^
  4002
  4003	005013	201 00 0 00 000001 	$NOYES:	MOVEI	0,1		;INIT FOR N ANSWER
  4004	005014	254 00 0 00 005016 		JRST	.+2
  4005	005015	201 00 0 00 000000 	$YESNO:	MOVEI	0,0		;INIT FOR Y ANSWER
  4006	005016	202 01 0 00 006723 		MOVEM	1,$TACC1#	;SAVE AC'S
  4007	005017	202 02 0 00 006724 		MOVEM	2,$TACC2#
  4008	005020	200 02 0 00 000000 		MOVE	2,0
  4009
  4010	005021				$YN1:	PMSGF	< Y OR N <CR> - >^
  4011	005021	037 04 0 00 006473 		PSIXMF	[SIXBIT\ Y OR N <CR> - _\]^
  4012	005022	260 17 0 00 004647 		GO	$OPTLK
  4013	005023	254 00 0 00 005043 		JRST	$YN2		;NO RESPONSE
  4014	005024	302 00 0 00 000131 		CAIE	0,"Y"		;IS IT A 'Y' ?
  4015	005025	306 00 0 00 000116 		CAIN	0,"N"		;OR AN 'N' ?
  4016	005026	254 00 0 00 005030 		JRST	.+2		;YES
  4017	005027	254 00 0 00 005047 		JRST	$YN3		;NEITHER, ERROR
  4018	005030	200 01 0 00 000000 		MOVE	1,0
  4019	005031	242 01 0 00 000007 		LSH	1,7		;POSITION 1ST CHAR
  4020	005032	260 17 0 00 004647 		GO	$OPTLK
  4021	005033	254 00 0 00 005043 		JRST	$YN2		;NO RESPONSE
  4022	005034	434 01 0 00 000000 		OR	1,0		;MERGE 2ND CHAR
  4023	005035	316 01 0 02 005051 		CAMN	1,$YN4(2)	;COMPARE FOR REQUESTED
  4024	005036	254 00 0 00 005042 		JRST	.+4		;YES, RETURN +2
  4025	005037	316 01 0 02 005052 		CAMN	1,$YN4+1(2)	;COMPARE FOR OPPOSITE
  4026	005040	254 00 0 00 005043 		JRST	.+3		;YES, RETURN +1
  4027	005041	254 00 0 00 005047 		JRST	$YN3		;ERROR, REPEAT
  4028	005042	350 00 0 17 000000 		AOS	(P)		;YES, RETURN +2
  4029	005043	200 02 0 00 006724 	$YN2:	MOVE	2,$TACC2	;RESTORE AC2
  4030	005044	200 00 0 00 000001 		MOVE	0,1
  4031	005045	200 01 0 00 006723 		MOVE	1,$TACC1	;RESTORE AC1
  4032	005046	263 17 0 00 000000 		RTN			;RETURN +1
  4033
  4034	005047	037 01 0 00 030242 	$YN3:	PCRLF
  4035	005050	254 00 0 00 005021 		JRST	$YN1
  4036
  4037	005051	000000	026215		$YN4:	EXP	26215		;'Y' (CR)
  4038	005052	000000	023415			EXP	23415		;'N' (CR)
  4039	005053	000000	026215			EXP	26215		;'Y' (CR)
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 80
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0165

  4040					SUBTTL	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
  4041
  4042					S^;*********************************************************************^
  4043					;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
  4044					;*NUMBER RETURNED IN AC0.
  4045					S^;*********************************************************************^
  4046
  4047	005054	201 00 0 00 000002 	$TPCNV:	MOVEI	AC0,2		;SET INDEX TO CONVERT
  4048	005055	254 00 0 00 005061 		JRST	$TPCV1
  4049	005056	201 00 0 00 000001 	$TPDEC:	MOVEI	AC0,1		;SET INDEX TO DECIMAL
  4050	005057	254 00 0 00 005061 		JRST	$TPCV1
  4051	005060	201 00 0 00 000000 	$TPOCT:	MOVEI	AC0,0		;SET INDEX TO OCTAL
  4052
  4053	005061	202 01 0 00 006725 	$TPCV1:	MOVEM	1,$TACD1#	;SAVE AC'S 1-3
  4054	005062	202 02 0 00 006726 		MOVEM	2,$TACD2#
  4055	005063	202 03 0 00 006727 		MOVEM	3,$TACD3#
  4056	005064	200 03 0 00 000000 		MOVE	3,0		;LOAD AC3 WITH THE INDEX
  4057	005065	403 01 0 00 000002 		SETZB	1,2		;CLEAR DATA REG, CHAR COUNTER
  4058	005066	402 00 0 00 030233 		SETZM	$TYPNB#		;CLEAR ERR NUMBER
  4059	005067	402 00 0 00 006673 		SETZM	$NEGF#		;CLEAR NEGATE FLAG
  4060	005070	402 00 0 00 006653 		SETZM	$CNVD#		;CLEAR DECIMAL CONVERT FLAG
  4061	005071	402 00 0 00 030510 		SETZM	TTNBRF		;CLEAR DIGIT TYPED FLAG
  4062
  4063
  4064					;*INPUT AND COMPUTE NUMBER
  4065					S^;*********************************************************************^
  4066
  4067	005072	260 17 0 00 004647 	$TYPLP:	GO	$OPTLK
  4068	005073	254 00 0 00 005131 		JRST	$TPERR		;NO RESPONSE, GO TO ERROR EXIT
  4069	005074	306 00 0 00 000055 		CAIN	0,"-"		;IS IT MINUS ?
  4070	005075	254 00 0 00 005147 		JRST	$NEGX		;YES
  4071	005076	306 00 0 00 000056 		CAIN	0,"."		;IS IT PERIOD ?
  4072	005077	254 00 0 00 005153 		JRST	$CNVX		;YES
  4073	005100	306 00 0 00 000015 		CAIN	0,15		;IS IT CR ?
  4074	005101	254 00 0 00 005115 		JRST	$TPEXT		;YES
  4075	005102	306 00 0 00 000054 		CAIN	0,","		;IS IT COMMA ?
  4076	005103	254 00 0 00 005115 		JRST	$TPEXT		;YES
  4077	005104	301 00 0 00 000060 		CAIL	0,"0"		;A VALID DIGIT ?
  4078	005105	256 00 0 03 005136 		XCT	$TPCK(3)	;YES
  4079	005106	254 00 0 00 005131 		JRST	$TPERR		;NO ...ERROR EXIT
  4080
  4081	005107	476 00 0 00 030510 	$TYPL1:	SETOM	TTNBRF		;SET DIGIT TYPED FLAG
  4082	005110	350 00 0 00 000002 		AOS	2		;INCREMENT CHARACTER COUNTER
  4083	005111	256 00 0 03 005141 		XCT	$TPMUL(3)	;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
  4084	005112	275 00 0 00 000060 		SUBI	60		;ADD IN NEW CHAR
  4085	005113	270 01 0 00 000000 		ADD	1,0
  4086	005114	254 00 0 00 005072 		JRST	$TYPLP		;REPEAT TILL CR OR COMMA
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 81
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0166

  4087					;*CHECK FOR PROPER AMOUNT OF CHARACTERS
  4088					S^;*********************************************************************^
  4089
  4090	005115	256 00 0 03 005144 	$TPEXT:	XCT	$TPNBR(3)	;PROPER NUMBER OF CHARACTERS
  4091	005116	254 00 0 00 005131 		JRST	$TPERR		;NO ...ERROR EXIT 
  4092	005117	306 03 0 00 000002 		CAIN	3,2		;CONVERT ? (INDEX = 2)
  4093	005120	254 00 0 00 005157 		JRST	$CNVX1		;YES
  4094									;NO, EXIT
  4095
  4096	005121	200 03 0 00 006727 	$TPEX1:	MOVE	3,$TACD3	;RESTORE AC'S 3 & 2
  4097	005122	200 02 0 00 006726 		MOVE	2,$TACD2
  4098	005123	200 00 0 00 000001 		MOVE	0,1		;PUT NUMBER IN AC0
  4099	005124	332 00 0 00 006673 		SKIPE	$NEGF		;NEGATE ?
  4100	005125	210 00 0 00 000001 		MOVN	0,1		;YES
  4101	005126	200 01 0 00 006725 		MOVE	1,$TACD1	;RESTORE AC1
  4102	005127	350 00 0 17 000000 		AOS	(P)		;RETURN +2 
  4103	005130	263 17 0 00 000000 		RTN			;RETURN +1 
  4104
  4105	005131	202 01 0 00 030233 	$TPERR:	MOVEM	1,$TYPNB	;SAVE NUMBER - ERROR EXIT
  4106	005132	200 03 0 00 006727 		MOVE	3,$TACD3	;RESTORE AC'S
  4107	005133	200 02 0 00 006726 		MOVE	2,$TACD2
  4108	005134	200 01 0 00 006725 		MOVE	1,$TACD1
  4109	005135	263 17 0 00 000000 		RTN			;ERROR EXIT )
  4110
  4111
  4112					;*NUMBER COMPUTING CONSTANTS
  4113					S^;*********************************************************************^
  4114
  4115	005136	303 00 0 00 000067 	$TPCK:	CAILE	0,"7"		;OCTAL NUMBER CHECK
  4116	005137	303 00 0 00 000071 		CAILE	0,"9"		;DECIMAL NUMBER CHECK
  4117	005140	303 00 0 00 000071 		CAILE	0,"9"		;CONVERT NUMBER CHECK
  4118	005141	242 01 0 00 000003 	$TPMUL:	LSH	1,3		;OCTAL BASE SHIFT
  4119	005142	221 01 0 00 000012 		IMULI	1,^D10		;DECIMAL BASE MULTIPLIER
  4120	005143	242 01 0 00 000004 		LSH	1,4		;CONVERT SHIFT
  4121	005144	303 02 0 00 000014 	$TPNBR:	CAILE	2,^D12		;ACCEPT UP TO 12 OCTALS
  4122	005145	303 02 0 00 000013 		CAILE	2,^D11		;ACCEPT UP TO 11 DECIMALS
  4123	005146	303 02 0 00 000011 		CAILE	2,^D9		;ACCEPT UP TO 9 CONVERT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 82
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0167

  4124	005147	332 00 0 00 000002 	$NEGX:	SKIPE	2		;1ST CHAR ?
  4125	005150	254 00 0 00 005131 		JRST	$TPERR		;NO, ERROR EXIT )
  4126	005151	476 00 0 00 006673 		SETOM	$NEGF		;YES, SET NEGATE FLAG
  4127	005152	254 00 0 00 005072 		JRST	$TYPLP		;GET NEXT CHAR
  4128
  4129	005153	302 03 0 00 000002 	$CNVX:	CAIE	3,2		;PERIOD, IN CONVERT ?
  4130	005154	254 00 0 00 005131 		JRST	$TPERR		;NO, ERROR EXIT )
  4131	005155	476 00 0 00 006653 		SETOM	$CNVD		;YES, SET DECIMAL FLAG
  4132	005156	254 00 0 00 005072 		JRST	$TYPLP		;GET NEXT CHAR
  4133
  4134
  4135					;*CONVERT CONVERSION ROUTINE
  4136					S^;*********************************************************************^
  4137
  4138	005157	201 02 0 00 000011 	$CNVX1:	MOVEI	2,^D9		;NINE DIGITS
  4139	005160	402 00 0 00 000000 		SETZM	0
  4140	005161	332 00 0 00 006653 		SKIPE	$CNVD		;OCTAL OR DECIMAL ?
  4141	005162	254 00 0 00 005172 		JRST	$CNVX2		;DECIMAL
  4142	005163	612 01 0 00 006476 		TDNE	1,[421042104210]	;OCTAL
  4143	005164	254 00 0 00 005131 		JRST	$TPERR		;OCTAL ERROR, 8 OR 9 INPUT
  4144	005165	242 01 0 00 000001 		LSH	1,1		;SQUEEZE OUT 4TH BIT
  4145	005166	246 00 0 00 000003 		LSHC	0,3		;COMPACT INTO OCTAL
  4146	005167	366 02 0 00 005165 		SOJN	2,.-2		;COMPLETED ?
  4147	005170	200 01 0 00 000000 		MOVE	1,0		;YES
  4148	005171	254 00 0 00 005121 		JRST	$TPEX1		;RETURN 
  4149
  4150	005172	402 00 0 00 000003 	$CNVX2:	SETZM	3		;DECIMAL
  4151	005173	402 00 0 00 000000 		SETZM	0
  4152	005174	221 03 0 00 000012 		IMULI	3,^D10		;MULTIPLY BY DECIMAL BASE
  4153	005175	246 00 0 00 000004 		LSHC	0,4		;UNPACK NEXT DIGIT
  4154	005176	270 03 0 00 000000 		ADD	3,0		;ADD IN
  4155	005177	366 02 0 00 005173 		SOJN	2,.-4		;COMPLETED ?
  4156	005200	200 01 0 00 000003 		MOVE	1,3		;YES
  4157	005201	254 00 0 00 005121 		JRST	$TPEX1		;RETURN )
  4158
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 83
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE                                            SEQ 0168

  4159					SUBTTL	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
  4160
  4161					S^;*********************************************************************^
  4162					;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
  4163					;*SIXBIT WORD RETURNED IN AC0
  4164					S^;*********************************************************************^
  4165
  4166	005202	202 01 0 00 006730 	$TISIX:	MOVEM	1,$TSX1#	;SAVE AC'S
  4167	005203	202 02 0 00 006731 		MOVEM	2,$TSX2#
  4168	005204	200 02 0 00 006477 		MOVE	2,[POINT 6,1]
  4169	005205	201 01 0 00 000000 		MOVEI	1,0
  4170
  4171	005206	260 17 0 00 004647 	$TSXB1:	GO	$OPTLK
  4172	005207	254 00 0 00 005231 		JRST	$TSXB3		;NO RESPONSE, RTN + 1
  4173	005210	306 00 0 00 000015 		CAIN	0,15
  4174	005211	254 00 0 00 005230 		JRST	$TSXB2		;CR, TERMINATE, RTN + 2 
  4175	005212	306 00 0 00 000054 		CAIN	0,","
  4176	005213	254 00 0 00 005230 		JRST	$TSXB2		;COMMA, TERMINATE, RTN + 2
  4177	005214	301 00 0 00 000060 		CAIL	0,"0"
  4178	005215	303 00 0 00 000132 		CAILE	0,"Z"
  4179	005216	254 00 0 00 005231 		JRST	$TSXB3		;ERROR, RTN + 1 
  4180	005217	303 00 0 00 000071 		CAILE	0,"9"
  4181	005220	301 00 0 00 000101 		CAIL	0,"A"
  4182	005221	254 00 0 00 005223 		JRST	$TSXB4		;ALPHA-NUMERIC
  4183	005222	254 00 0 00 005231 		JRST	$TSXB3		;ERROR, RTN + 1 
  4184
  4185	005223	640 00 0 00 000040 	$TSXB4:	TRC	0,40		;CONVERT TO SIX-BIT
  4186	005224	602 01 0 00 000077 		TRNE	1,77
  4187	005225	254 00 0 00 005231 		JRST	$TSXB3		;TOO MANY CHAR'S, RTN + 1
  4188	005226	136 00 0 00 000002 		IDPB	0,2		;PUT INTO WORD
  4189	005227	254 00 0 00 005206 		JRST	$TSXB1		;GET NEXT CHARACTER
  4190
  4191	005230	350 00 0 17 000000 	$TSXB2:	AOS	(P)		;INCR USRPC FOR RTN + 2 (NORMAL)
  4192
  4193	005231	200 00 0 00 000001 	$TSXB3:	MOVE	0,1		;SIXBIT WORD IN AC0
  4194	005232	200 01 0 00 006730 		MOVE	1,$TSX1		;RESTORE AC'S
  4195	005233	200 02 0 00 006731 		MOVE	2,$TSX2
  4196	005234	263 17 0 00 000000 		RTN			;EXIT + 1/+2
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 84
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0169

  4197					SUBTTL	*SUBRTN* PRINT SUBROUTINES
  4198
  4199					S^;*********************************************************************^
  4200					;*	$PNTSX		PRINT SIXBIT NORMAL
  4201					;*	$PTSXF		PRINT SIXBIT FORCED
  4202					;*	$PNTCW		PRINT DF10 CONTROL WORD
  4203					;*	$PNTI1		PRINT OCTAL NUMBER
  4204					;*	$CHRPN		PRINT CHARACTER
  4205					;*	$ASCPN		PRINT ASCII CHARACTER/LINE
  4206					;*	$DECPN		PRINT DECIMAL NUMBER
  4207					S^;*********************************************************************^
  4208
  4209					S^;*********************************************************************^
  4210					;*PRINT SUBROUTINE INITIALIZATION
  4211					;*INITIALIZES CONTROL WORDS
  4212					S^;*********************************************************************^
  4213
  4214	005235	402 00 0 00 006657 	$PNTIN:	SETZM	$INTDF#		;CLEAR DEVICE DEFAULT FLAG
  4215	005236	402 00 0 00 030226 		SETZM	$DVOFF#		;CLEAR DEVICE INITED FLAG
  4216	005237	402 00 0 00 030221 		SETZM	PDISF#		;CLEAR PRINT DISABLED FLAG
  4217	005240	402 00 0 00 006712 		SETZM	$PTINH#		;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
  4218	005241	402 00 0 00 030222 		SETZM	PNTINH#		;ALLOW EXEC PRINT TYPE IN INHIBIT
  4219	005242	402 00 0 00 006636 		SETZM	XOFFLAG#	;CLEAR XOFF FLAG
  4220	005243	402 00 0 00 030217 		SETZM	PNTFLG#		;CLEAR IN PRINT FLAG
  4221	005244	476 00 0 00 030223 		SETOM	PNTSPC#		;SET PRINT SPACE FLAG
  4222	005245	211 00 0 00 011610 		MOVNI	0,^D5000	;SET PRINT ENABLE TO 5000 LINES
  4223	005246	202 00 0 00 030220 		MOVEM	0,PNTENB
  4224	005247	402 00 0 00 030227 		SETZM	TTYFIL		;ALLOW EXEC FILLERS
  4225	005250	402 00 0 00 030234 		SETZM	$CRLF#		;ALLOW FREE CR/LF
  4226	005251	402 00 0 00 030235 		SETZM	$TABF		;ALLOW TAB CONVERSION
  4227	005252	402 00 0 00 030236 		SETZM	$FFF		;ALLOW FORM FEED CONVERSION
  4228	005253	402 00 0 00 030237 		SETZM	$VTF		;ALLOW VERTICAL TAB CONVERSION
  4229
  4230	005254	201 00 0 00 030006 	$PNTIX:	MOVEI	REENTR		;SETUP REENTER ADDRESS
  4231	005255	202 00 0 00 000124 		MOVEM	JOBREN
  4232	005256	335 00 0 00 030043 		SKIPGE	MONCTL		;MONITOR CONTROL ?
  4233	005257	263 17 0 00 000000 		RTN			;YES, DON'T PRINT TITLE
  4234	005260	332 00 0 00 030056 		SKIPE	$ONETM		;FIRST TIME?
  4235	005261	263 17 0 00 000000 		RTN			;NO .....EXIT
  4236	005262	254 00 0 00 002312 		JRST	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  4237									;AND EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 85
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0170

  4238					S^;*********************************************************************^
  4239					;*PRINT SUBROUTINE ENTRY POINT
  4240					;*EXIT VIA $PNTI4 BELOW
  4241					S^;*********************************************************************^
  4242
  4243	005263	476 00 0 00 030217 	$PNTIF:	SETOM	PNTFLG		;SET IN PRINT FLAG
  4244	005264	476 00 0 00 006705 		SETOM	$PNTTY#		;FORCE TO TTY
  4245	005265	402 00 0 00 006712 		SETZM	$PTINH
  4246	005266	254 00 0 00 005300 		JRST	$PTKL
  4247
  4248	005267	476 00 0 00 030217 	$PNTIT:	SETOM	PNTFLG		;SET IN PRINT FLAG
  4249	005270	402 00 0 00 006705 		SETZM	$PNTTY		;NOT FORCED TO TTY
  4250	005271	331 00 0 00 030220 		SKIPL	PNTENB#		;PRINT LIMIT REACHED YET?
  4251	005272	254 00 0 00 005315 		JRST	$PNTIB		;YES ..DON'T PRINT
  4252	005273	260 17 0 00 004272 		GO	$SWTCH		;READ DATA SWITCHES INTO AC0
  4253	005274	607 00 0 00 040000 		TLNN	0,NOPNT		;NO PRINT SWITCH SET?
  4254	005275	254 00 0 00 005300 		JRST	$PTKL
  4255	005276	262 17 0 00 000000 		GET	AC0		;YES ...RESTORE AC0 FROM STACK (P - 1)
  4256	005277	254 00 0 00 005313 		JRST	$PRNTX		;EXIT, DON'T PRINT
  4257
  4258	005300	201 00 0 00 003000 	$PTKL:	MOVEI	AC0,3000	;NORMAL PRINTOUT
  4259	005301	332 00 0 00 006705 		SKIPE	$PNTTY
  4260	005302	350 00 0 00 000000 		AOS	AC0		;FORCED PRINTOUT
  4261	005303	260 17 0 00 002012 		GO	$DTEXX
  4262	005304	254 00 0 00 005331 		JRST	$PNTIA
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 86
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0171

  4263					;*PRINT ROUTINE EXIT
  4264					S^;*********************************************************************^
  4265
  4266	005305	402 00 0 00 006705 	$PNTI4:	SETZM	$PNTTY		;CLEAR FORCE TO TTY FLAG
  4267
  4268	005306	200 01 0 00 006674 		MOVE	1,$PACA1	;RESTORE AC'S
  4269	005307	200 02 0 00 006675 		MOVE	2,$PACA2
  4270	005310	200 03 0 00 006676 		MOVE	3,$PACA3
  4271	005311	200 04 0 00 006677 		MOVE	4,$PACA4
  4272	005312	200 05 0 00 006700 		MOVE	5,$PACA5
  4273	005313	402 00 0 00 030217 	$PRNTX:	SETZM	PNTFLG		;CLEAR IN PRINT FLAG
  4274	005314	263 17 0 00 000000 		RTN			;RETURN 
  4275
  4276					;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
  4277					S^;*********************************************************************^
  4278
  4279	005315	262 17 0 00 000000 	$PNTIB:	GET	AC0		;RESTORE THE STACK (P - 1)
  4280	005316	332 00 0 00 030221 		SKIPE	PDISF#		;FIRST TIME PRINT DISABLED?
  4281	005317	254 00 0 00 005313 		JRST	$PRNTX		;YES	...EXIT )
  4282
  4283	005320	476 00 0 00 030221 	$PNTB1:	SETOM	PDISF		;NO ........SET IT
  4284	005321	202 01 0 00 006674 		MOVEM	1,$PACA1	;SAVE AC'S 1 - 5
  4285	005322	202 02 0 00 006675 		MOVEM	2,$PACA2
  4286	005323	202 03 0 00 006676 		MOVEM	3,$PACA3
  4287	005324	202 04 0 00 006677 		MOVEM	4,$PACA4
  4288	005325	202 05 0 00 006700 		MOVEM	5,$PACA5
  4289	005326	476 00 0 00 006705 		SETOM	$PNTTY		;SET FORCE TO TTY FLAG
  4290						MOVEI	[ASCIZ/
  4291					******
  4292					EXCEEDED ALLOWED PRINTOUTS
  4293	005327	201 00 0 00 006500 	/]
  4294	005330	254 00 0 00 005602 		JRST	$ASCPN-1	;PRINT THE WARNING & EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 87
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0172

  4295					S^;*********************************************************************^
  4296					;*PRINT ROUTINE SELECTOR
  4297					;*BASED ON "AC FIELD" = 12 - 17
  4298					S^;*********************************************************************^
  4299
  4300	005331	202 01 0 00 006674 	$PNTIA:	MOVEM	1,$PACA1#	;SAVE AC1.
  4301	005332	202 02 0 00 006675 		MOVEM	2,$PACA2#	;SAVE AC2.
  4302	005333	202 03 0 00 006676 		MOVEM	3,$PACA3#	;SAVE AC3.
  4303	005334	202 04 0 00 006677 		MOVEM	4,$PACA4#	;SAVE AC4.
  4304	005335	202 05 0 00 006700 		MOVEM	5,$PACA5#	;SAVE AC5.
  4305	005336	262 17 0 00 000000 		GET	AC0		;RESTORE AC0 FROM STACK (P - 1)
  4306	005337	402 00 0 00 006703 		SETZM	$PNT#		;CLEAR PRINT HALF WORDS FLAG
  4307	005340	200 02 0 00 000040 		MOVE	2,LUUO
  4308	005341	241 02 0 00 000015 		ROT	2,15		;GET X (AC FIELD)
  4309	005342	405 02 0 00 000017 		ANDI	2,17		;OUT OF THE UUO
  4310
  4311	005343	306 02 0 00 000017 	$PNTIC:	CAIN	2,17		;X=17?
  4312	005344	254 00 0 00 005602 		JRST	$PNTLN		;YES. PRINT ASCII LINE
  4313	005345	322 02 0 00 005603 		JUMPE	2,$ASCPN	;X=0? YES. GO PRINT 1 WORD ASCII
  4314	005346	306 02 0 00 000015 		CAIN	2,15		;X=15?
  4315	005347	254 00 0 00 005620 		JRST	$DECPN		;YES, PRINT DECIMALS )
  4316	005350	306 02 0 00 000016 		CAIN	2,16		;X=16?
  4317	005351	254 00 0 00 005617 		JRST	$DECSP		;YES, PRINT DECIMALS, LEADING SPACES 
  4318	005352	306 02 0 00 000013 		CAIN	2,13		;X=13?
  4319	005353	254 00 0 00 005570 		JRST	$PNTI3		;YES, PRINT OCTALS, 6 SP 6
  4320	005354	306 02 0 00 000012 		CAIN	2,12		;X=12?
  4321	005355	254 00 0 00 005576 		JRST	$CHRPN		;YES, PRINT CHARACTER )
  4322
  4323	005356	254 00 0 00 005546 		JRST	$PNTI1		;NONE OF THE ABOVE, PRINT OCTAL
  4324									;(AC FIELD <12 OR = TO 14)
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 88
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0173

  4325					S^;*********************************************************************^
  4326					;*SIXBIT PRINT SUBROUTINE
  4327					;*PRINTS SIXBIT WORD IN AC0
  4328					S^;*********************************************************************^
  4329
  4330					;*NORMAL PRINTOUT
  4331					S^;*********************************************************************^
  4332
  4333	005357	261 17 0 00 000001 	$PNTSX:	PUT	1		;SAVE AC1 ON STACK (P + 1)
  4334	005360	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  4335	005361	201 00 0 00 000000 		MOVEI	0,0
  4336	005362	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  4337	005363	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  4338	005364	037 12 0 00 000000 		PNTCHR			;PRINT IT
  4339	005365	326 01 0 00 005361 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  4340	005366	262 17 0 00 000001 		GET	1		;RESTORE AC1 FROM THE STACK (P - 1)
  4341	005367	263 17 0 00 000000 		RTN			;EXIT
  4342
  4343					;*FORCED PRINTOUT
  4344					S^;*********************************************************************^
  4345
  4346	005370	261 17 0 00 000001 	$PTSXF:	PUT	1		;SAVE AC1 ON THE STACK (P + 1)
  4347	005371	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  4348	005372	201 00 0 00 000000 		MOVEI	0,0
  4349	005373	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  4350	005374	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  4351	005375	037 12 0 00 000001 		PNTCHF			;PRINT
  4352	005376	326 01 0 00 005372 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  4353	005377	262 17 0 00 000001 		GET	1		;FROM THE STACK (P - 1)
  4354	005400	263 17 0 00 000000 		RTN			;EXIT 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 89
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0174

  4355					S^;*********************************************************************^
  4356					;*SIXBIT MESSAGE PRINT ROUTINE
  4357					;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
  4358					;*"BACKARROW" (77) SIGNIFIES END OF TEXT
  4359					;*"UPARROW" (76) SIGNIFIES CR/LF
  4360					;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
  4361					S^;*********************************************************************^
  4362
  4363	005401	261 17 0 00 000005 	$PSIXF:	PUT	5
  4364	005402	474 05 0 00 000000 		SETO	5,		;SET FORCED PRINTING FLAG
  4365	005403	254 00 0 00 005406 		JRST	.+3
  4366
  4367	005404	261 17 0 00 000005 	$PSIX:	PUT	5
  4368	005405	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTING
  4369	005406	261 17 0 00 000001 		PUT	1
  4370	005407	261 17 0 00 000002 		PUT	2
  4371	005410	261 17 0 00 000003 		PUT	3
  4372	005411	261 17 0 00 000004 		PUT	4
  4373
  4374	005412	550 04 0 00 000000 		HRRZ	4,0		;MESSAGE ADDRESS TO AC4
  4375
  4376	005413	201 03 0 00 000006 	$PSIX1:	MOVEI	3,6		;6 = NUM OF 6BIT CHAR PER WORD
  4377	005414	200 01 0 04 000000 		MOVE	1,(4)		;GET FIRST/NEXT WORD OF MESSAGE
  4378
  4379	005415	400 02 0 00 000000 	$PSIX2:	SETZ	2,
  4380	005416	245 01 0 00 000006 		ROTC	1,6		;C(AC1) = CHAR TO BE PRINTED
  4381	005417	306 02 0 00 000077 		CAIN	2,77
  4382	005420	254 00 0 00 005435 		JRST	$PSIX5		;"BACKARROW", DONE
  4383	005421	306 02 0 00 000076 		CAIN	2,76
  4384	005422	254 00 0 00 005432 		JRST	$PSIX4		;"UPARROW", CR/LF
  4385	005423	306 02 0 00 000075 		CAIN	2,75
  4386	005424	201 02 0 00 000151 		MOVEI	2,151		;"BRACKET", CHANGE TO TAB (151+40=11)
  4387	005425	201 00 0 02 000040 		MOVEI	0,40(2)		;CHANGE TO ASCII
  4388						JUMPN	5,[PNTCHF
  4389	005426	326 05 0 00 006510 			JRST	.+2]	;FORCED PRINT
  4390	005427	037 12 0 00 000000 		PNTCHR
  4391	005430	366 03 0 00 005415 	$PSIX3:	SOJN	3,$PSIX2	;PRINTED ALL CHARS FROM THIS WORD ?
  4392	005431	344 04 0 00 005413 		AOJA	4,$PSIX1	;YES, DO NEXT WORD
  4393
  4394					$PSIX4:	JUMPN	5,[PCRLF
  4395	005432	326 05 0 00 006512 			JRST	.+2]
  4396	005433	037 00 0 00 030242 		PCRL			;PRINT CR/LF
  4397	005434	254 00 0 00 005430 		JRST	$PSIX3
  4398
  4399	005435	262 17 0 00 000004 	$PSIX5:	GET	4
  4400	005436	262 17 0 00 000003 		GET	3
  4401	005437	262 17 0 00 000002 		GET	2
  4402	005440	262 17 0 00 000001 		GET	1
  4403	005441	262 17 0 00 000005 		GET	5
  4404	005442	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 90
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0175

  4405					S^;*********************************************************************^
  4406					;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
  4407					;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
  4408					;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
  4409					S^;*********************************************************************^
  4410
  4411	005443	261 17 0 00 000005 	$POCSF:	PUT	5
  4412	005444	474 05 0 00 000000 		SETO	5,		;FORCED PRINTOUT
  4413	005445	254 00 0 00 005450 		JRST	.+3
  4414
  4415	005446	261 17 0 00 000005 	$POCS:	PUT	5
  4416	005447	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTOUT
  4417	005450	261 17 0 00 000001 		PUT	1
  4418	005451	261 17 0 00 000002 		PUT	2
  4419	005452	261 17 0 00 000003 		PUT	3
  4420	005453	261 17 0 00 000004 		PUT	4
  4421
  4422	005454	200 02 0 00 000000 		MOVE	2,0
  4423	005455	325 02 0 00 005462 		JUMPGE	2,$POCS1	;IS NUMBER NEGATIVE ?
  4424	005456	201 00 0 00 000055 		MOVEI	"-"
  4425						JUMPN	5,[PNTCHF
  4426	005457	326 05 0 00 006514 			JRST	.+2]
  4427	005460	037 12 0 00 000000 		PNTCHR			;YES, PRINT MINUS SIGN
  4428	005461	210 02 0 00 000002 		MOVN	2,2		;MAKE NUMBER POSITIVE
  4429
  4430	005462	400 04 0 00 000000 	$POCS1:	SETZ	4,
  4431	005463	403 03 0 00 000001 		SETZB	3,1
  4432	005464	322 02 0 00 005472 		JUMPE	2,$POCS3	;IF NUMBER 0, PRINT 1 ZERO
  4433
  4434	005465	201 03 0 00 000014 		MOVEI	3,^D12		;PRINT UP TO 12 DIGITS
  4435	005466	400 01 0 00 000000 	$POCS2:	SETZ	1,
  4436	005467	246 01 0 00 000003 		LSHC	1,3
  4437	005470	322 01 0 00 005504 		JUMPE	1,$POCS5	;IS THIS DIGIT ZERO ?
  4438	005471	474 04 0 00 000000 		SETO	4,		;NO, SET NON-ZERO DIGIT FLAG
  4439	005472	201 00 0 01 000060 	$POCS3:	MOVEI	"0"(1)		;MAKE ASCII NUMBER
  4440						JUMPN	5,[PNTCHF
  4441	005473	326 05 0 00 006516 			JRST	.+2]
  4442	005474	037 12 0 00 000000 		PNTCHR			;PRINT DIGIT
  4443
  4444	005475	367 03 0 00 005466 	$POCS4:	SOJG	3,$POCS2	;ALL DONE ?
  4445	005476	262 17 0 00 000004 		GET	4
  4446	005477	262 17 0 00 000003 		GET	3
  4447	005500	262 17 0 00 000002 		GET	2
  4448	005501	262 17 0 00 000001 		GET	1
  4449	005502	262 17 0 00 000005 		GET	5
  4450	005503	263 17 0 00 000000 		RTN
  4451
  4452	005504	322 04 0 00 005475 	$POCS5:	JUMPE	4,$POCS4	;PRINTED NON-ZERO DIGIT ?
  4453	005505	254 00 0 00 005472 		JRST	$POCS3		;YES, PRINT ZEROS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 91
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0176

  4454					S^;*********************************************************************^
  4455					;*DF10 CONTROL WORD PRINT ROUTINE
  4456					;*PRINTS WORD IN AC0
  4457					;*DF22F = 0, ######  ######  ,18 BIT DF10
  4458					;*       -1, ##### ########  ,22 BIT DF10
  4459					S^;*********************************************************************^
  4460
  4461	005506	202 01 0 00 006710 	$PNTCW:	MOVEM	1,$PTCA#	;SAVE AC1
  4462	005507	201 01 0 00 000000 		MOVEI	1,0		;NORMAL PRINTOUT
  4463	005510	202 02 0 00 006711 		MOVEM	2,$PTCB#	;SAVE AC2
  4464	005511	200 02 0 00 000000 		MOVE	2,0
  4465	005512	336 00 0 00 030142 		SKIPN	DF22F#		;22 OR 18 BIT DF10 ?
  4466	005513	254 00 0 00 005527 		JRST	$PNTC2
  4467	005514	242 00 0 00 777753 		LSH	0,-^D21		;NEW 22 BIT DF10
  4468	005515	620 00 0 00 000001 		TRZ	0,1
  4469						JUMPN	1,[PNT5F
  4470	005516	326 01 0 00 006520 			JRST .+2]
  4471	005517	037 05 0 00 000000 		PNT5			;PRINT WORD COUNT, 14 BITS
  4472	005520	200 00 0 00 000002 		MOVE	0,2
  4473	005521	621 00 0 00 777760 		TLZ	0,777760
  4474						JUMPN	1,[PNTADF
  4475	005522	326 01 0 00 006522 			JRST .+2]
  4476	005523	037 10 0 00 000000 		PNTADR			;PRINT ADDRESS, 22 BITS
  4477	005524	200 02 0 00 006711 	$PNTC3:	MOVE	2,$PTCB
  4478	005525	200 01 0 00 006710 		MOVE	1,$PTCA
  4479	005526	263 17 0 00 000000 		RTN			;EXIT
  4480
  4481	005527	554 00 0 00 000000 	$PNTC2:	HLRZ			;18 BIT DF10
  4482						JUMPN	1,[PNT6F
  4483	005530	326 01 0 00 006524 			JRST .+2]
  4484	005531	037 06 0 00 000000 		PNT6			;PRINT WORD COUNT, 18 BITS
  4485	005532	201 00 0 00 000040 		MOVEI	40
  4486						JUMPN	1,[PNTCHF
  4487	005533	326 01 0 00 006526 			JRST .+2]
  4488	005534	037 12 0 00 000000 		PNTCHR			;EXTRA SPACE
  4489	005535	550 00 0 00 000002 		HRRZ	0,2
  4490						JUMPN	1,[PNT6F
  4491	005536	326 01 0 00 006530 			JRST .+2]
  4492	005537	037 06 0 00 000000 		PNT6			;PRINT ADDRESS, 18 BITS
  4493	005540	254 00 0 00 005524 		JRST	$PNTC3
  4494
  4495	005541	202 01 0 00 006710 	$PNTCF:	MOVEM	1,$PTCA		;SAVE AC1
  4496									;FORCED PRINTOUT
  4497	005542	200 01 0 00 005541 		MOVE	1,$PNTCF
  4498	005543	202 01 0 00 005506 		MOVEM	1,$PNTCW	;SETUP RETURN
  4499	005544	201 01 0 00 000001 		MOVEI	1,1		;FORCED PRINT INDEX
  4500	005545	254 00 0 00 005510 		JRST	$PNTCW+2	;REST AS ABOVE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 92
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0177

  4501					S^;*********************************************************************^
  4502					;*OCTAL PRINTOUT ROUTINE
  4503					;*PRINTS NUMBER IN AC0
  4504					S^;*********************************************************************^
  4505
  4506	005546	200 03 0 00 000002 	$PNTI1:	MOVE	3,2		;MOVE X INTO AC3.
  4507	005547	241 00 0 00 777775 		ROT	0,-3		;ROT OCTAL NUM 3 PLACES
  4508	005550	366 03 0 00 005547 		SOJN	3,.-1		;X AMOUNT OF TIMES.
  4509
  4510	005551	201 01 0 00 000006 	$PNTI2:	MOVEI	1,6		;PUT 6 INTO AC1 SO THAT
  4511	005552	245 00 0 00 000003 		ROTC	0,3		;C(AC1) AFTER THE ROTC WILL BE 60
  4512	005553	265 03 0 00 005650 		JSP	3,$TOUT		;PLUS NUMBER TO BE PRINTED
  4513	005554	366 02 0 00 005551 		SOJN	2,$PNTI2	;SUB 1 FROM X...PRINT UNTIL X=0.
  4514	005555	202 01 0 00 006704 		MOVEM	1,$PNTSV#	;SAVE NUMBER
  4515	005556	336 00 0 00 030223 		SKIPN	PNTSPC
  4516	005557	254 00 0 00 005562 		JRST	.+3
  4517	005560	201 01 0 00 000040 		MOVEI	1,40		;AT THIS POINT WE HAVE PRINTED
  4518	005561	265 03 0 00 005650 		JSP	3,$TOUT		;X AMOUNT OF NUMBER(S) AND NOW A SPACE
  4519	005562	336 00 0 00 006703 		SKIPN	$PNT#		;PRINT 6 SP 6 FLAG SET?
  4520	005563	254 00 0 00 005305 		JRST	$PNTI4		;NO, EXIT )
  4521	005564	200 01 0 00 006704 		MOVE	1,$PNTSV	;RESTORE NUMBER
  4522	005565	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR 2ND HALF
  4523	005566	402 00 0 00 006703 		SETZM	$PNT		;CLEAR PRINT SPACE FLAG
  4524	005567	254 00 0 00 005551 		JRST	$PNTI2		;PRINT REST OF NUMBER
  4525
  4526	005570	201 03 0 00 000014 	$PNTI3:	MOVEI	3,14		;SETUP FOR LH WORD
  4527	005571	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR FIRST HALF
  4528	005572	476 00 0 00 006703 		SETOM	$PNT		;SET PRINT 6 SP 6 FLAG
  4529	005573	476 00 0 00 030223 		SETOM	PNTSPC		;SET THE PRINT SPACE FLAG
  4530	005574	254 00 0 00 005547 		JRST	$PNTI1+1	;PRINT FIRST HALF NUMBER
  4531	005575	254 00 0 00 005305 		JRST	$PNTI4		;EXIT
  4532
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 93
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0178

  4533					S^;*********************************************************************^
  4534					;*ASCII/CHARACTER PRINTOUT ROUTINE
  4535					;*PRINTS CHAR IN LOWER 7 BITS OF AC0
  4536					S^;*********************************************************************^
  4537
  4538	005576	405 00 0 00 000177 	$CHRPN:	ANDI	0,177		;STRIP CHAR TO 7 BITS
  4539	005577	200 01 0 00 000000 		MOVE	1,0
  4540	005600	265 03 0 00 005650 		JSP	3,$TOUT		;PRINT A CHARACTER
  4541	005601	254 00 0 00 005305 		JRST	$PNTI4		;LEAVE 
  4542
  4543					S^;*********************************************************************^
  4544					;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
  4545					S^;*********************************************************************^
  4546
  4547	005602	476 00 0 00 006703 	$PNTLN:	SETOM	$PNT#		;SET PRINT MORE THAN 1 WORD FLAG.
  4548
  4549	005603	202 00 0 00 006707 	$ASCPN:	MOVEM	0,$POINT#	;SAVE ADDRESS OF ASCII MESSAGE.
  4550	005604	201 02 0 00 000005 	$ASCP1:	MOVEI	2,5		;5 = NUM OF ASCII CHAR. IN A WORD.
  4551	005605	200 00 1 00 006707 		MOVE	0,@$POINT	;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
  4552
  4553	005606	400 01 0 00 000000 	$ASCP2:	SETZ	1,		;CLEAR AC1.
  4554	005607	245 00 0 00 000007 		ROTC	0,7		;C(AC1) = CHAR TO BE PRINTED.
  4555	005610	322 01 0 00 005305 		JUMPE	1,$PNTI4	;CHAR = NULL?..NO MORE CHAR..EXIT
  4556	005611	265 03 0 00 005650 		JSP	3,$TOUT		;PRINT A CHAR
  4557	005612	366 02 0 00 005606 		SOJN	2,$ASCP2	;PNT ALL CHAR FROM THIS WORD?
  4558	005613	350 00 0 00 006707 		AOS	$POINT		;YES. INC TO GET NEXT WORD.
  4559	005614	336 00 0 00 006703 		SKIPN	$PNT		;PNT MORE THAN ONE WORD FLAG SET?
  4560	005615	254 00 0 00 005305 		JRST	$PNTI4		;NO..LEAVE
  4561	005616	254 00 0 00 005604 		JRST	$ASCP1		;YES...RETURN TO PNT NEXT WORD.
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 94
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0179

  4562					S^;*********************************************************************^
  4563					;*DECIMAL PRINTOUT ROUTINE
  4564					;*PRINTS NUMBER IN AC0
  4565					S^;*********************************************************************^
  4566
  4567	005617	476 00 0 00 006703 	$DECSP:	SETOM	$PNT		;SET LEADING SPACES PRINT CONTROL
  4568
  4569	005620	325 00 0 00 005624 	$DECPN:	JUMPGE	0,.+4		;IS NUMBER NEGATIVE ?
  4570	005621	201 01 0 00 000055 		MOVEI	1,"-"		;YES, PRINT MINUS SIGN
  4571	005622	265 03 0 00 005650 		JSP	3,$TOUT
  4572	005623	210 00 0 00 000000 		MOVN	0,0		;MAKE NUMBER POSITIVE
  4573	005624	260 17 0 00 005626 		GO	$RADIX		;DECIMAL-ASCII CONVERSION & PRINT CHARS
  4574	005625	254 00 0 00 005305 		JRST	$PNTI4		;EXIT
  4575
  4576	005626	200 02 0 00 030264 	$RADIX:	MOVE	2,RADLSC	;SETUP DIGIT COUNTER
  4577	005627	246 00 0 00 777735 		LSHC	0,-^D35		;SHIFT RIGHT 35 BITS INTO AC1
  4578	005630	242 01 0 00 777777 		LSH	1,-1		;VACATE AC1 SIGN BIT
  4579
  4580	005631	234 00 0 00 030262 	$DCCMP:	DIV	0,RADIX		;DIVIDE DOUBLE LENGTH INTERGER BY 10
  4581	005632	506 01 0 17 000000 		HRLM	1,(17)		;SAVE DIGIT
  4582	005633	370 00 0 00 000002 		SOS	2		;COUNT DIGIT
  4583	005634	322 00 0 00 005642 		JUMPE	0,$LDSPS	;ALL DIGITS FORMED?
  4584	005635	260 17 0 00 005627 		GO	$RADIX+1	;NO, COMPUTE NEXT ONE
  4585
  4586	005636	554 01 0 17 000000 	$DECP1:	HLRZ	1,(17)		;YES, RETRIEVE DIGIT
  4587	005637	271 01 0 00 000060 		ADDI	1,60		;CONVERT TO ASCII
  4588	005640	265 03 0 00 005650 		JSP	3,$TOUT		;TYPE-OUT A DIGIT
  4589	005641	263 17 0 00 000000 		RTN			;GET NEXT/EXIT
  4590
  4591	005642	336 00 0 00 006703 	$LDSPS:	SKIPN	$PNT		;LEADING SPACES PRINT SET?
  4592	005643	254 00 0 00 005636 		JRST	$DECP1		;NO ...GO PRINT
  4593									;YES ...DO IT
  4594	005644	361 02 0 00 005636 	$DCSPS:	SOJL	2,$DECP1	;SPACES COMPLETE ?  YES
  4595	005645	200 01 0 00 030263 		MOVE	1,RADLSP	;NO, PRINT LEADING SPACE
  4596	005646	265 03 0 00 005650 		JSP	3,$TOUT		;TYPE OUT THE SPACE
  4597	005647	254 00 0 00 005644 		JRST	.-3		;CHECK FOR NEXT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 95
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0180

  4598					SUBTTL	*SUBRTN*  CHARACTER OUTPUT ROUTINES
  4599
  4600					S^;*********************************************************************^
  4601					;*OUTPUT TERMINATION CONTROL ROUTINE
  4602					S^;*********************************************************************^
  4603
  4604	005650	202 00 0 00 006701 	$TOUT:	MOVEM	0,$PACB0#	;SAVE AC0.
  4605	005651	202 01 0 00 006706 		MOVEM	1,$PNTYC#	;SAVE CHARACTER TO BE PRINTED
  4606	005652	254 00 0 00 005653 		JRST	$TOUTB		;KL10  ...DON'T CHECK FOR TYPE INS 
  4607
  4608					S^;*********************************************************************^
  4609					;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
  4610					S^;*********************************************************************^
  4611
  4612	005653	200 00 0 00 030046 	$TOUTB:	MOVE	AC0,CONSW	;DATA SWITCHES INTO AC0
  4613	005654	350 00 0 00 006652 		AOS	$CARCT#		;INC CHAR CNTR.
  4614	005655	306 01 0 00 000007 		CAIN	1,7		;CHAR A BELL ?
  4615	005656	402 00 0 00 006712 		SETZM	$PTINH		;YES, CLEAR PRINT INHIBIT
  4616	005657	302 01 0 00 000015 		CAIE	1,15		;CHAR A CR?
  4617	005660	254 00 0 00 005664 		JRST	$TOUB1		;NO-CHK FOR LF
  4618	005661	336 00 0 00 006712 		SKIPN	$PTINH		;DON'T COUNT ^O'ED LINES
  4619	005662	350 00 0 00 030220 		AOS	PNTENB		;COUNT LINES, TILL NO MORE
  4620	005663	402 00 0 00 006652 		SETZM	$CARCT		;CLR CHAR CNTR.
  4621
  4622	005664	306 01 0 00 000012 	$TOUB1:	CAIN	1,12		;IS CHAR A LF?
  4623	005665	402 00 0 00 006652 		SETZM	$CARCT		;YES-CLR CHAR CNTR.
  4624	005666	332 00 0 00 006705 		SKIPE	$PNTTY		;NO-IS PRINT FORCED ON?
  4625	005667	254 00 0 00 005672 		JRST	$TOUB2		;YES-DON'T CHECK NON-PNT SW
  4626	005670	603 00 0 00 040000 		TLNE	0,NOPNT		;IS NON PNT SWITCH ON?
  4627	005671	254 00 0 03 000000 		JRST	(3)		;YES, RETURN
  4628
  4629	005672	254 00 0 00 005703 	$TOUB2:	JRST	$TOUTC		;SEND CHAR EXEC MODE 
  4630
  4631					;*ALT-MODE TRANSFER TO USER ROUTINE
  4632					S^;*********************************************************************^
  4633
  4634	005673	202 00 0 00 000130 		MOVEM	0,JOBOPC	;2-TERMINATED IN JOBOPC
  4635	005674	254 00 1 00 030062 		JRST	@CNTLC		;3-TERMINATE
  4636	005675	265 00 0 00 005673 	$TUTX2:	JSP	0,.-2		;1-SAVE PC WHERE
  4637	005676	254 00 0 00 005653 		JRST	$TOUTB		;4-HERE IF CONTINUED
  4638	005677	202 00 0 00 000130 		MOVEM	0,JOBOPC	;2-TERMINATED IN JOBOPC
  4639	005700	254 00 1 00 030063 		JRST	@ALTMGO		;3-TERMINATE
  4640	005701	265 00 0 00 005677 	$TUTX3:	JSP	0,.-2		;1-SAVE PC WHERE
  4641	005702	254 00 0 00 005653 		JRST	$TOUTB		;4-HERE IF CONTINUED
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 96
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0181

  4642					S^;*********************************************************************^
  4643					;*EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE
  4644					S^;*********************************************************************^
  4645
  4646	005703	603 00 0 00 020000 	$TOUTC:	TLNE	0,PNTLPT	;PRINT ON LINE PRINTER ?
  4647	005704	254 00 0 00 005724 		JRST	$TOUT1		;YES 
  4648
  4649	005705	332 00 0 00 006712 	$PNTY1:	SKIPE	$PTINH		;NO, TYPE-OUT INHIBIT ?
  4650	005706	254 00 0 00 005722 		JRST	$TOUTA		;YES-EXIT 
  4651
  4652	005707	200 00 0 00 006706 	$PNTY2:	MOVE	0,$PNTYC	;RESTORE CHAR (SAVED @ $TOUT)
  4653	005710	332 00 0 00 030236 		SKIPE	$FFF		;FORM FEED CONV INHIBITED ?
  4654	005711	254 00 0 00 005714 		JRST	.+3		;YES, DON'T DO IT
  4655	005712	306 00 0 00 000014 		CAIN	0,14		;IS CHAR A FF ?
  4656	005713	254 00 0 00 005750 		JRST	$FFEED		;YES, SUBSTITUTE 8 LF'S
  4657	005714	332 00 0 00 030237 		SKIPE	$VTF		;VERT TAB CONV INHIBITED ?
  4658	005715	254 00 0 00 005720 		JRST	$PNTY3		;YES, DON'T DO IT
  4659	005716	306 00 0 00 000013 		CAIN	0,13		;IS CHAR A VT ?
  4660	005717	254 00 0 00 005746 		JRST	$VTAB		;YES, SUBSTITUTE 4 LF'S
  4661
  4662	005720	260 17 0 00 005755 	$PNTY3:	GO	$TYOUT
  4663	005721	254 00 0 00 005722 		JRST	$TOUTA		;RETURN 
  4664
  4665					;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
  4666					S^;*********************************************************************^
  4667	005722	200 00 0 00 006701 	$TOUTA:	MOVE	AC0,$PACB0	;RESTORE AC0
  4668	005723	254 00 0 03 000000 		JRST	(3)		;RETURN TO PRINT ROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 97
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0182

  4669					S^;*********************************************************************^
  4670					;*EXEC MODE LPT OUTPUT
  4671					S^;*********************************************************************^
  4672
  4673	005724	306 01 0 00 000007 	$TOUT1:	CAIN	1,7		;NO BELLS TO LPT
  4674	005725	254 00 0 00 005705 		JRST	$PNTY1
  4675	005726	306 01 0 00 000026 		CAIN	1,26		;NO NULLS TO LPT
  4676	005727	254 00 0 00 005705 		JRST	$PNTY1
  4677	005730	242 01 0 00 000001 		LSH	1,1		;C(AC1) HAS TO BE LEFT JUSTIFIED.
  4678	005731	405 01 0 00 000376 		ANDI	1,376		;CLEAR PARITY BIT
  4679	005732	7 124 14 0 00 000001 		DATAO	LPT,1		;PRINT CHAR ONTO LPT.
  4680	005733	200 01 0 00 006532 		MOVE	1,[^D<<1000*2000>/7>]	;ABOUT TWO SECONDS
  4681	005734	7 124 34 0 00 000100 		CONSO	LPT,100		;LPT DONE?
  4682	005735	367 01 0 00 005734 		SOJG	1,.-1		;NO.
  4683	005736	327 01 0 00 005742 		JUMPG	1,.+4		;IF LPT HUNG, CLEAR LPT PRINT
  4684	005737	200 00 0 00 030046 		MOVE	0,CONSW		;FOR THIS PRINT ENTRY
  4685	005740	621 00 0 00 020000 		TLZ	0,PNTLPT
  4686	005741	202 00 0 00 030046 		MOVEM	0,CONSW
  4687	005742	336 00 0 00 006705 		SKIPN	$PNTTY		;SKIP IF MSG ALSO FORCED TO TTY
  4688	005743	327 01 0 00 005722 		JUMPG	1,$TOUTA	;RETURN IF LPT NOT HUNG, ELSE ALL TO TTY
  4689	005744	200 01 0 00 006706 		MOVE	1,$PNTYC
  4690	005745	254 00 0 00 005705 		JRST	$PNTY1		;GO SET UP MORE OUTPUT, IF ANY
  4691
  4692					;*TELETYPE FF & VT CONVERSION
  4693					S^;*********************************************************************^
  4694
  4695	005746	201 01 0 00 000004 	$VTAB:	MOVEI	1,4
  4696	005747	334 00 0 00 000000 		SKIPA
  4697
  4698	005750	201 01 0 00 000010 	$FFEED:	MOVEI	1,^D8
  4699	005751	201 00 0 00 000012 		MOVEI	0,12
  4700	005752	260 17 0 00 005755 		GO	$TYOUT		;SEND LF'S 
  4701	005753	367 01 0 00 005751 		SOJG	1,$FFEED+1
  4702	005754	254 00 0 00 005722 		JRST	$TOUTA		;RETURN 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 98
SUBKLM	MAC	11-Sep-78 11:38		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0183

  4703					S^;*********************************************************************^
  4704					;*EXEC MODE CHARACTER OUTPUT
  4705					S^;*********************************************************************^
  4706
  4707	005755	261 17 0 00 000000 	$TYOUT:	PUT	AC0
  4708	005756	405 00 0 00 000177 		ANDI	AC0,177		;CLEAR JUNK BITS
  4709	005757	260 17 0 00 002012 		GO	$DTEXX		;SEND TO PDP-11
  4710	005760	262 17 0 00 000000 		GET	AC0
  4711	005761	263 17 0 00 000000 		RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 1
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0184

  4712					SUBTTL	*STOR* RESERVED STORAGE
  4713
  4714					;MODIFY DEVICE CODE CODE TABLE
  4715	005762				$MDLST:	$MDSXB	CCI,14^
  4716	005762	434351	000014			<SIXBIT/CCI/>!14		;CCI DEVICE CODE IS 14^
  4717						$MDSXB	CCI2,20^
  4718	005763	434351	220020			<SIXBIT/CCI2/>!20		;CCI2 DEVICE CODE IS 20^
  4719						$MDSXB	ADC,24^
  4720	005764	414443	000024			<SIXBIT/ADC/>!24		;ADC DEVICE CODE IS 24^
  4721						$MDSXB	ADC2,30^
  4722	005765	414443	220030			<SIXBIT/ADC2/>!30		;ADC2 DEVICE CODE IS 30^
  4723						$MDSXB	DLB,60^
  4724	005766	445442	000060			<SIXBIT/DLB/>!60		;DLB DEVICE CODE IS 60^
  4725						$MDSXB	DLC,64^
  4726	005767	445443	000064			<SIXBIT/DLC/>!64		;DLC DEVICE CODE IS 64^
  4727						$MDSXB	DLB2,160^
  4728	005770	445442	220160			<SIXBIT/DLB2/>!160		;DLB2 DEVICE CODE IS 160^
  4729						$MDSXB	DLC2,164^
  4730	005771	445443	220164			<SIXBIT/DLC2/>!164		;DLC2 DEVICE CODE IS 164^
  4731						$MDSXB	CLK,70^
  4732	005772	435453	000070			<SIXBIT/CLK/>!70		;CLK DEVICE CODE IS 70^
  4733						$MDSXB	CLK2,74^
  4734	005773	435453	220074			<SIXBIT/CLK2/>!74		;CLK2 DEVICE CODE IS 74^
  4735						$MDSXB	LPT,124^
  4736	005774	546064	000124			<SIXBIT/LPT/>!124		;LPT DEVICE CODE IS 124^
  4737						$MDSXB	LPT2,234^
  4738	005775	546064	220234			<SIXBIT/LPT2/>!234		;LPT2 DEVICE CODE IS 234^
  4739						$MDSXB	CDP,110^
  4740	005776	434460	000110			<SIXBIT/CDP/>!110		;CDP DEVICE CODE IS 110^
  4741						$MDSXB	DIS,130^
  4742	005777	445163	000130			<SIXBIT/DIS/>!130		;DIS DEVICE CODE IS 130^
  4743						$MDSXB	DIS2,134^
  4744	006000	445163	220134			<SIXBIT/DIS2/>!134		;DIS2 DEVICE CODE IS 134^
  4745						$MDSXB	PLT,140^
  4746	006001	605464	000140			<SIXBIT/PLT/>!140		;PLT DEVICE CODE IS 140^
  4747						$MDSXB	PLT2,144^
  4748	006002	605464	220144			<SIXBIT/PLT2/>!144		;PLT2 DEVICE CODE IS 144^
  4749						$MDSXB	CR,150^
  4750	006003	436200	000150			<SIXBIT/CR/>!150		;CR DEVICE CODE IS 150^
  4751						$MDSXB	CR2,154^
  4752	006004	436222	000154			<SIXBIT/CR2/>!154		;CR2 DEVICE CODE IS 154^
  4753						$MDSXB	DSK,170^
  4754	006005	446353	000170			<SIXBIT/DSK/>!170		;DSK DEVICE CODE IS 170^
  4755						$MDSXB	DSK2,174^
  4756	006006	446353	220174			<SIXBIT/DSK2/>!174		;DSK2 DEVICE CODE IS 174^
  4757						$MDSXB	DLS,240^
  4758	006007	445463	000240			<SIXBIT/DLS/>!240		;DLS DEVICE CODE IS 240^
  4759						$MDSXB	DLS2,244^
  4760	006010	445463	220244			<SIXBIT/DLS2/>!244		;DLS2 DEVICE CODE IS 244^
  4761						$MDSXB	DPC,250^
  4762	006011	446043	000250			<SIXBIT/DPC/>!250		;DPC DEVICE CODE IS 250^
  4763						$MDSXB	DPC2,254^
  4764	006012	446043	220254			<SIXBIT/DPC2/>!254		;DPC2 DEVICE CODE IS 254^
  4765						$MDSXB	DPC3,260^
  4766	006013	446043	230260			<SIXBIT/DPC3/>!260		;DPC3 DEVICE CODE IS 260^
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 1-1
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0185

  4767						$MDSXB	DPC4,264^
  4768	006014	446043	240264			<SIXBIT/DPC4/>!264		;DPC4 DEVICE CODE IS 264^
  4769						$MDSXB	RHA,270^
  4770	006015	625041	000270			<SIXBIT/RHA/>!270		;RHA DEVICE CODE IS 270^
  4771						$MDSXB	RHB,274^
  4772	006016	625042	000274			<SIXBIT/RHB/>!274		;RHB DEVICE CODE IS 274^
  4773						$MDSXB	DTC,320^
  4774	006017	446443	000320			<SIXBIT/DTC/>!320		;DTC DEVICE CODE IS 320^
  4775						$MDSXB	DTC2,330^
  4776	006020	446443	220330			<SIXBIT/DTC2/>!330		;DTC2 DEVICE CODE IS 330^
  4777						$MDSXB	DTS,324^
  4778	006021	446463	000324			<SIXBIT/DTS/>!324		;DTS DEVICE CODE IS 324^
  4779						$MDSXB	DTS2,334^
  4780	006022	446463	220334			<SIXBIT/DTS2/>!334		;DTS2 DEVICE CODE IS 334^
  4781						$MDSXB	TMC,340^
  4782	006023	645543	000340			<SIXBIT/TMC/>!340		;TMC DEVICE CODE IS 340^
  4783						$MDSXB	TMC2,350^
  4784	006024	645543	220350			<SIXBIT/TMC2/>!350		;TMC2 DEVICE CODE IS 350^
  4785						$MDSXB	TMS,344^
  4786	006025	645563	000344			<SIXBIT/TMS/>!344		;TMS DEVICE CODE IS 344^
  4787						$MDSXB	TMS2,354^
  4788	006026	645563	220354			<SIXBIT/TMS2/>!354		;TMS2 DEVICE CODE IS 354^
  4789						$MDSXB	DSS,460^
  4790	006027	446363	000460			<SIXBIT/DSS/>!460		;DSS DEVICE CODE IS 460^
  4791						$MDSXB	DSS2,470^
  4792	006030	446363	220470			<SIXBIT/DSS2/>!470		;DSS2 DEVICE CODE IS 470^
  4793						$MDSXB	DSI,464^
  4794	006031	446351	000464			<SIXBIT/DSI/>!464		;DSI DEVICE CODE IS 464^
  4795						$MDSXB	DSI2,474^
  4796	006032	446351	220474			<SIXBIT/DSI2/>!474		;DSI2 DEVICE CODE IS 474^
  4797						$MDSXB	RH0,540^
  4798	006033	625020	000540			<SIXBIT/RH0/>!540		;RH0 DEVICE CODE IS 540^
  4799						$MDSXB	RH1,544^
  4800	006034	625021	000544			<SIXBIT/RH1/>!544		;RH1 DEVICE CODE IS 544^
  4801						$MDSXB	RH2,550^
  4802	006035	625022	000550			<SIXBIT/RH2/>!550		;RH2 DEVICE CODE IS 550^
  4803						$MDSXB	RH3,554^
  4804	006036	625023	000554			<SIXBIT/RH3/>!554		;RH3 DEVICE CODE IS 554^
  4805						$MDSXB	RH4,560^
  4806	006037	625024	000560			<SIXBIT/RH4/>!560		;RH4 DEVICE CODE IS 560^
  4807						$MDSXB	RH5,564^
  4808	006040	625025	000564			<SIXBIT/RH5/>!564		;RH5 DEVICE CODE IS 564^
  4809						$MDSXB	RH6,570^
  4810	006041	625026	000570			<SIXBIT/RH6/>!570		;RH6 DEVICE CODE IS 570^
  4811						$MDSXB	RH7,574^
  4812	006042	625027	000574			<SIXBIT/RH7/>!574		;RH7 DEVICE CODE IS 574^
  4813
  4814			000061		$MDEND=.-$MDLST			;COMPUTES LENGTH OF TABLE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0186

  4815					;PROGRAM LITERALS
  4816	006043					LIT
  4817	006043	254 00 0 00 002302 
  4818	006044	254 00 0 00 002365 
  4819	006045	015 012 105 130 105 
  4820	006046	103 040 117 116 114 
  4821	006047	131 015 012 000 000 
  4822	006050	540000	540001
  4823	006051	020000	020000
  4824	006052	000002	000002
  4825	006053	260 17 0 00 001170 
  4826	006054	254 00 0 00 001251 
  4827	006055	76 51 54 54 45 47 
  4828	006056	41 54 00 65 65 57 
  4829	006057	76 65 65 57 75 75 
  4830	006060	46 54 41 47 63 75 
  4831	006061	00 00 60 43 76 77 
  4832	006062	777577	030303
  4833	006063	76 12 12 12 12 12 
  4834	006064	76 65 65 57 00 60 
  4835	006065	54 51 63 64 00 45 
  4836	006066	62 62 00 60 35 77 
  4837	006067	76 45 62 62 57 62 
  4838	006070	00 55 65 65 57 00 
  4839	006071	35 00 77 00 00 00 
  4840	006072	037 12 0 00 000001 
  4841	006073	254 00 0 00 001405 
  4842	006074	037 15 0 00 000003 
  4843	006075	254 00 0 00 001405 
  4844	006076	037 14 0 00 000003 
  4845	006077	254 00 0 00 001405 
  4846	006100	037 17 0 00 000001 
  4847	006101	254 00 0 00 001405 
  4848	006102	000001	000001
  4849	006103	76 64 45 63 64 00 
  4850	006104	60 41 63 63 00 43 
  4851	006105	57 65 56 64 00 35 
  4852	006106	00 77 00 00 00 00 
  4853	006107	76 60 43 35 00 00 
  4854	006110	77 00 00 00 00 00 
  4855	006111	76 63 67 51 64 43 
  4856	006112	50 45 63 00 35 00 
  4857	006113	77 00 00 00 00 00 
  4858	006114	76 45 62 62 57 62 
  4859	006115	00 51 56 00 77 00 
  4860	006116	00 15 00 77 00 00 
  4861	006117	76 77 00 00 00 00 
  4862	006120	037 00 0 00 000000 
  4863	006121	76 43 57 62 62 45 
  4864	006122	43 64 32 00 00 77 
  4865	006123	76 41 43 64 65 41 
  4866	006124	54 32 00 00 00 77 
  4867	006125	76 44 51 63 43 62 
  4868	006126	45 60 32 00 00 77 
  4869	006127	000140	000141
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2-1
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0187

  4870	006130	000444	000445
  4871	006131	264 00 0 00 006603 
  4872	006132	76 63 60 65 62 51 
  4873	006133	57 65 63 00 44 64 
  4874	006134	45 00 51 56 64 76 
  4875	006135	77 00 00 00 00 00 
  4876	006136	777777	777777
  4877	006137	264 00 0 00 002107 
  4878	006140	300000	400000
  4879	006141	000001	006615
  4880	006142	45 62 62 57 62 00 
  4881	006143	50 41 54 64 00 41 
  4882	006144	64 00 77 00 00 00 
  4883	006145	46 41 64 41 54 00 
  4884	006146	60 62 57 47 62 41 
  4885	006147	55 00 45 62 62 57 
  4886	006150	62 00 41 64 00 77 
  4887	006151	104 104 124 000 000 
  4888	006152	66 45 62 63 51 57 
  4889	006153	56 00 77 00 00 00 
  4890	006154	14 00 63 66 35 77 
  4891	006155	14 00 55 43 66 35 
  4892	006156	77 00 00 00 00 00 
  4893	006157	14 00 55 43 57 35 
  4894	006160	77 00 00 00 00 00 
  4895	006161	14 00 50 57 35 77 
  4896	006162	14 00 26 20 50 72 
  4897	006163	77 00 00 00 00 00 
  4898	006164	14 00 25 20 50 72 
  4899	006165	77 00 00 00 00 00 
  4900	006166	14 00 43 60 65 03 
  4901	006167	35 77 00 00 00 00 
  4902	006170	76 12 12 12 12 12 
  4903	006171	76 60 54 51 63 64 
  4904	006172	00 65 46 54 57 67 
  4905	006173	76 77 00 00 00 00 
  4906	006174	264 00 0 00 030104 
  4907	006175	254 00 0 00 002464 
  4908	006176	254 00 0 00 002474 
  4909	006177	76 12 12 12 12 12 
  4910	006200	76 60 54 51 63 64 
  4911	006201	00 57 66 45 62 46 
  4912	006202	54 57 67 00 60 35 
  4913	006203	77 00 00 00 00 00 
  4914	006204	76 55 45 55 57 62 
  4915	006205	71 00 60 62 57 64 
  4916	006206	77 00 00 00 00 00 
  4917	006207	76 56 57 56 15 45 
  4918	006210	70 00 55 45 55 57 
  4919	006211	62 71 77 00 00 00 
  4920	006212	76 55 45 55 57 62 
  4921	006213	71 00 60 41 62 51 
  4922	006214	64 71 77 00 00 00 
  4923	006215	76 65 56 53 56 57 
  4924	006216	67 56 00 51 56 64 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2-2
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0188

  4925	006217	45 62 62 65 60 64 
  4926	006220	77 00 00 00 00 00 
  4927	006221	76 45 62 62 57 62 
  4928	006222	00 41 44 44 62 45 
  4929	006223	63 63 00 62 45 47 
  4930	006224	00 35 00 77 00 00 
  4931	006225	76 41 60 62 00 00 
  4932	006226	00 00 00 00 00 00 
  4933	006227	00 00 00 00 60 51 
  4934	006230	00 00 00 00 00 00 
  4935	006231	00 00 00 00 00 00 
  4936	006232	00 46 54 41 47 63 
  4937	006233	00 00 60 43 00 00 
  4938	006234	00 00 00 00 60 62 
  4939	006235	57 47 76 77 00 00 
  4940	006236	76 60 57 67 45 62 
  4941	006237	00 46 41 51 54 00 
  4942	006240	62 45 63 64 41 62 
  4943	006241	64 76 77 00 00 00 
  4944	006242	76 60 57 67 45 62 
  4945	006243	00 51 56 64 45 62 
  4946	006244	62 65 60 64 00 46 
  4947	006245	41 51 54 45 44 76 
  4948	006246	77 00 00 00 00 00 
  4949	006247	76 60 41 47 45 00 
  4950	006250	46 41 51 54 00 64 
  4951	006251	62 41 60 00 45 62 
  4952	006252	62 57 62 76 60 41 
  4953	006253	47 45 00 46 41 51 
  4954	006254	54 00 67 57 62 44 
  4955	006255	15 00 77 00 00 00 
  4956	006256	76 64 62 41 60 00 
  4957	006257	23 00 45 62 62 57 
  4958	006260	62 77 00 00 00 00 
  4959	006261	265 00 0 00 002521 
  4960	006262	265 00 0 00 002535 
  4961	006263	254 00 0 00 030005 
  4962	006264	76 63 15 42 65 63 
  4963	006265	77 00 00 00 00 00 
  4964	006266	76 51 17 57 00 60 
  4965	006267	41 47 45 00 46 41 
  4966	006270	51 54 77 00 00 00 
  4967	006271	76 43 41 43 50 45 
  4968	006272	00 41 44 62 00 60 
  4969	006273	41 62 51 64 71 77 
  4970	006274	76 63 15 42 65 63 
  4971	006275	00 41 44 62 00 60 
  4972	006276	41 62 51 64 71 77 
  4973	006277	45 56 44 00 60 41 
  4974	006300	63 63 00 77 00 00 
  4975	006301	17 03 0 00 000000 
  4976	006302	43 63 67 45 45 60 
  4977	006303	00 64 51 55 45 57 
  4978	006304	65 64 76 77 00 00 
  4979	006305	7 003 1 0 00 000000 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2-3
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0189

  4980	006306	7 000 6 0 00 200000 
  4981	006307	366 04 0 00 000001 
  4982	006310	254 00 0 00 003233 
  4983	006311	7 003 2 0 00 000000 
  4984	006312	701540	000000
  4985	006313	37 05 0 00 000002 
  4986	006314	003770	000000
  4987	006315	76 55 45 55 57 62 
  4988	006316	71 00 43 57 56 64 
  4989	006317	62 57 54 54 45 62 
  4990	006320	63 76 77 00 00 00 
  4991	006321	037 13 0 00 000000 
  4992	006322	037 00 0 00 030242 
  4993	006323	254 00 0 00 003313 
  4994	006324	30 05 0 00 000003 
  4995	006325	030146	030147
  4996	006326	540336	540337
  4997	006327	400000	777777
  4998	006330	540376	540377
  4999	006331	76 64 57 57 00 55 
  5000	006332	41 56 71 00 55 41 
  5001	006333	60 00 63 45 47 55 
  5002	006334	45 56 64 63 76 77 
  5003	006335	000200	000201
  5004	006336	44 22 0 00 000200 
  5005	006337	400000	400001
  5006	006340	76 55 45 55 57 62 
  5007	006341	71 00 55 41 60 00 
  5008	006342	35 76 46 62 57 55 
  5009	006343	00 00 00 00 00 64 
  5010	006344	57 00 00 00 00 00 
  5011	006345	00 00 00 00 63 51 
  5012	006346	72 45 17 53 77 00 
  5013	006347	75 63 64 41 62 64 
  5014	006350	00 41 44 62 17 53 
  5015	006351	77 00 00 00 00 00 
  5016	006352	64 57 64 41 54 00 
  5017	006353	55 45 55 57 62 71 
  5018	006354	17 53 00 35 00 77 
  5019	006355	76 43 50 41 56 47 
  5020	006356	45 00 44 45 66 51 
  5021	006357	43 45 00 43 57 44 
  5022	006360	45 63 14 77 00 00 
  5023	006361	57 54 44 00 44 45 
  5024	006362	66 51 43 45 00 43 
  5025	006363	57 44 45 00 15 00 
  5026	006364	77 00 00 00 00 00 
  5027	006365	56 45 67 00 44 45 
  5028	006366	66 51 43 45 00 43 
  5029	006367	57 44 45 00 15 00 
  5030	006370	77 00 00 00 00 00 
  5031	006371	43 50 41 56 47 51 
  5032	006372	56 47 00 46 62 57 
  5033	006373	55 00 77 00 00 00 
  5034	006374	00 64 57 00 77 00 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2-4
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0190

  5035	006375	66 41 54 51 44 00 
  5036	006376	43 50 41 56 47 45 
  5037	006377	14 77 00 00 00 00 
  5038	006400	32 12 0 02 000000 
  5039	006401	777717	005762
  5040	006402	00 11 0 02 000000 
  5041	006403	76 44 45 66 00 43 
  5042	006404	57 44 45 00 45 62 
  5043	006405	62 14 00 21 24 15 
  5044	006406	27 27 24 00 57 56 
  5045	006407	54 71 76 77 00 00 
  5046	006410	001600	001600
  5047	006411	43 54 53 00 63 57 
  5048	006412	65 62 43 45 00 35 
  5049	006413	00 77 00 00 00 00 
  5050	006414	56 57 62 55 41 54 
  5051	006415	46 41 63 64 00 00 
  5052	006416	45 70 64 45 62 56 
  5053	006417	65 56 65 63 45 44 
  5054	006420	14 00 43 54 53 00 
  5055	006421	62 41 64 45 00 35 
  5056	006422	00 77 00 00 00 00 
  5057	006423	46 65 54 54 00 00 
  5058	006424	21 17 22 00 00 00 
  5059	006425	21 17 24 00 00 00 
  5060	006426	21 17 30 00 00 00 
  5061	006427	14 00 41 43 00 42 
  5062	006430	54 53 00 77 00 00 
  5063	006431	14 00 43 41 43 50 
  5064	006432	45 32 77 00 00 00 
  5065	006433	00 20 77 00 00 00 
  5066	006434	00 21 77 00 00 00 
  5067	006435	00 22 77 00 00 00 
  5068	006436	00 23 77 00 00 00 
  5069	006437	76 64 64 71 00 63 
  5070	006440	67 51 64 43 50 00 
  5071	006441	43 57 56 64 62 57 
  5072	006442	54 00 37 00 15 00 
  5073	006443	20 14 63 14 71 00 
  5074	006444	57 62 00 56 00 34 
  5075	006445	43 62 36 00 15 00 
  5076	006446	77 00 00 00 00 00 
  5077	006447	76 54 50 00 63 67 
  5078	006450	51 64 43 50 45 63 
  5079	006451	00 34 03 00 57 62 
  5080	006452	00 37 36 15 00 77 
  5081	006453	62 50 00 63 67 51 
  5082	006454	64 43 50 45 63 00 
  5083	006455	34 03 00 57 62 00 
  5084	006456	37 36 15 00 77 00 
  5085	006457	055 040 131 054 116 
  5086	006460	054 040 074 103 122 
  5087	006461	076 040 117 122 040 
  5088	006462	136 054 136 132 040 
  5089	006463	055 040 000 000 000 
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 2-5
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0191

  5090	006464	64 45 63 64 00 60 
  5091	006465	43 00 35 00 77 00 
  5092	006466	45 62 62 57 62 00 
  5093	006467	60 43 00 35 00 77 
  5094	006470	00 45 62 62 57 62 
  5095	006471	00 64 57 64 41 54 
  5096	006472	63 00 35 00 77 00 
  5097	006473	00 71 00 57 62 00 
  5098	006474	56 00 34 43 62 36 
  5099	006475	00 15 00 77 00 00 
  5100	006476	421042	104210
  5101	006477	44 06 0 00 000001 
  5102	006500	015 012 052 052 052 
  5103	006501	052 052 052 015 012 
  5104	006502	105 130 103 105 105 
  5105	006503	104 105 104 040 101 
  5106	006504	114 114 117 127 105 
  5107	006505	104 040 120 122 111 
  5108	006506	116 124 117 125 124 
  5109	006507	123 015 012 000 000 
  5110	006510	037 12 0 00 000001 
  5111	006511	254 00 0 00 005430 
  5112	006512	037 01 0 00 030242 
  5113	006513	254 00 0 00 005434 
  5114	006514	037 12 0 00 000001 
  5115	006515	254 00 0 00 005461 
  5116	006516	037 12 0 00 000001 
  5117	006517	254 00 0 00 005475 
  5118	006520	037 05 0 00 000001 
  5119	006521	254 00 0 00 005520 
  5120	006522	037 10 0 00 000001 
  5121	006523	254 00 0 00 005524 
  5122	006524	037 06 0 00 000001 
  5123	006525	254 00 0 00 005532 
  5124	006526	037 12 0 00 000001 
  5125	006527	254 00 0 00 005535 
  5126	006530	037 06 0 00 000001 
  5127	006531	254 00 0 00 005540 
  5128	006532	000001	056022
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1	MACRO %53(1020) 15:05 11-Sep-78 Page 3
SUBKLS	MAC	11-Sep-78 11:38		*STOR* RESERVED STORAGE                                                            SEQ 0192

  5129	006541	000000	000000		ENDSLD:	0
  5130
  5131					;END OF PROGRAM VARIABLES
  5132
  5133	006542	000 00 0 00 000000 	$SVERA:	Z			;ERROR ADDRESS REGISTER
  5134
  5135	006543				SBDTBL:	BLOCK	^D32		;MEMORY CONTROLLER SAVE TABLE
  5136
  5137	006603	000 00 0 00 000000 	$DTRPT:	Z
  5138	006604	254 00 0 00 001776 		JRST	$$DTEI		;DTE20 INTERRUPT JSR
  5139
  5140	006605	000000	000000		$MTRI:	0			;METER XCT INSTRUCTION
  5141	006606	000000	000000		$MTRWC:	0			;METER WAIT COUNT
  5142	006607	000000	000000		MTRCNT:	0			;METER COUNT
  5143	006610	000000	000000		$MTRAC:	0			;METER SAVED AC
  5144
  5145	006611	000 00 0 00 000000 	%ERIN1:	Z			;COR/ACT/DESC PRINT JSR
  5146	006612	000 00 0 00 000000 	%ERIN2:	Z
  5147	006613	254 00 1 00 006611 		JRST	@%ERIN1		;ERROR HANDLER SPECIAL STORAGE WORDS
  5148
  5149	006614				POWER:	BLOCK	20		;POWER FAIL AC SAVE
  5150
  5151					IFDEF	DEBUG,<
  5152	006634				PATCH:	BLOCK	DEBUG		;DEBUGGING AREA
  5153					>
  5154
  5155					;PROGRAM VARIABLE WORDS
  5156
  5157	006634					VAR
  5158
  5159					IFDEF	PGMEND,<
  5160	006747	000000	000000		END:	0
  5161			001000			END	START

NO ERRORS DETECTED

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

24P CORE USED

ABORT	   116#	  2478
AC0	    65#	  1373	  1374	  1375	  1377	  1379	  1380	  1382	  1384	  1385	  1386	  1388	  1391	  1393     SEQ 0193
	  1395	  1396	  1397	  1406	  1409	  1410	  1421	  1424	  1427	  1428	  1454	  1455	  1562	  1563
	  1564	  1565	  1567	  1569	  1571	  1577	  1578	  1579	  1586	  1590	  1624	  1857	  1858	  1859
	  1860	  1861	  1862	  1863	  1864	  1865	  1897	  1906	  1920	  1923	  1924	  1926	  1928	  1930
	  1933	  1937	  1938	  1941	  1955	  1961	  1962	  1964	  1966	  2106	  2118	  2122	  2124	  2132
	  2143	  2147	  2148	  2300	  2303	  2304	  2306	  2339	  2346	  2347	  2358	  2361	  2493	  2509
	  2824	  2825	  2938	  2948	  3524	  3525	  3632	  3634	  3640	  3849	  3937	  3939	  3940	  3942
	  4047	  4049	  4051	  4255	  4258	  4260	  4279	  4305	  4612	  4667	  4707	  4708	  4710
ALTMGO	   926#	  1560	  1802	  4639
ANXM	   496#
APR	  1255	  1459	  2027	  2172	  2301	  2324	  2340	  2348	  2359	  2388	  2436	  2444	  2454	  2545
	  2724	  2727	  2729	  2991	  3007	  3012	  3015	  3024	  3027	  3042
AROV	   399#
AROVU	   463#
AST	  1041#
ATSIN	  1042#
BEGEND	   922#	  1221	  1228
BEGIN	    36	    37	    38	    39	    40	    41	    42	    43	    44	    45	    46	   853#	  1226	  1316
	  2334	  2401
BEGIN1	   869#	   923
BELL	  1045#
BIS	   403#
CCA	   480#	  2718	  2749
CHAIN	   136#	  2033	  3569
CHNOFF	   510#
CHNON	   509#
CLK	   495#
CLKCLR	   488#
CLKDFL	  2523	  3585	  3594	  3612	  3634#	  3634
CLKDIS	   486#
CLKENB	   487#	   494#
CLKU	   461#
CLOCKF	   908#	  1878	  2001
CNTLC	   925#	  3993	  4635
COMMA	  1034#
CONSW	   909#	  1266	  1268#	  1268	  1666	  1673	  1769	  1784	  1803	  2440	  2517	  2887	  3332	  3549
	  3551	  3553	  3568	  3576	  3609	  3653	  3688	  3706	  3974	  3984	  4612	  4684	  4686
CPIERR	  1209#	  2024	  2045	  2050	  2448
CPOPJ	   929#
CPOPJ1	   927#	  3897
CR01	  2573	  2640#
CR012	  2575	  2593#
CR0123	  2576	  2581#
CR013	  2574	  2628#
CR02	  2571	  2651#
CR023	  2572	  2616#
CR03	  2570	  2663#
CR12	  2567	  2675#
CR123	  2568	  2604#
CR13	  2566	  2687#
CR23	  2564	  2698#
CRLF	   266	   267	  1029#
CRLF2	   270	   271	  1031#
CRY0	   400#                                                                                                            SEQ 0194
CRY1	   401#
CSHFLG	  1088#	  1336	  1341	  2031	  2515	  2894	  3607
CSHMEM	  1089#	  2920	  3099	  3168	  3230
CTABLE	  2532	  2561#
CYCL60	  1082#	  1971	  1973	  1993	  1995	  2018	  2029	  2192	  2194
DCK	   407#
DDT	    67#	  1178	  2147
DDTLNK	   150#	   867	  1184#	  2151
DDTSRT	   867#	  1271
DEBUG	    33#	  5151	  5152
DECVER	     3#	    10	    15	   888	  1200
DF22F	   993#	  4465#	  4465
DIAGMN	   856#
DIAGNO	    66#	  1177
DIAMON	    68#	  1179	  1217
DIASWS	    69#	  3701
DING	   122#	  1827
DING10	    71#
DNG10C	    72#	  1873
DOLLAR	  1048#
DONG11	    70#	  1901
DSKUPD	   893
DTE	    80#	  1873	  1901	  1945
DTE0	    81#
DTE1	    82#
DTE2	    83#
DTE3	    84#
DTEBER	  1207#
DTECER	  1208#
END	  5160#
ENDFIX	  1168#
ENDSLD	    35	  5129#
EOPERR	  1210#	  2511
ERMORE	   942#	  1791
ERRPC	   913#	  1298	  1579	  1634	  1649	  1672	  2476	  3924
ERRTLS	   914#	  1225	  1630	  1836	  3928
ERSTOP	   125#	  1804	  2115	  2139
EXCASB	    32#	   891
EXIOT	   405#
FOV	   402#
FOVU	   462#
FRDLNK	   148#	  2088	  2093
FSELNK	   147#	  2060	  2063
FXU	   406#
HYPEN	  1039#
INHCSH	   133#	  2518	  3610
INHPAG	   130#	  2442	  2889	  3334
INXM	   497#
IOCLR	   485#	  1255
ITERAT	    54#	   886
ITRCH1	   946#	  1458	  2220	  2230	  2287	  2339	  2347	  2358	  2395
ITRCNT	   886#	  1216	  1311	  2474	  2481
JOB41	   421#	  1354	  1454	  2303                                                                                     SEQ 0195
JOBAPR	   429#
JOBCNI	   430#
JOBDDT	   423#
JOBFF	   427#	  1263	  2909	  2927	  2945	  3400
JOBOPC	   432#	  1559	  1801	  3992	  4634	  4638
JOBREL	   422#
JOBREN	   428#	  4231
JOBSA	   426#	  1262
JOBSYM	   424#
JOBTPC	   431#
JOBUSY	   425#
JOBUUO	   420#	  1384	  1391	  1422	  1471	  1480	  1517	  1524	  1555	  1561	  1562	  1588
JOBVER	   433#	  2161	  2164
KA10	   533
KAHZ50	   138#
KAIFLG	   903#	  2020
KI10	   533
KL10	    28#	   533
KL10P0	    29#	   533	   795
KLEXCK	  2710#	  2747	  2755
KLFLG	   904#	  1284	  2019	  2025
KLNSW	  2121	  2142	  3635#	  3635	  3638
KLOLD	   346
KLPAG	  2443	  2925	  2998#	  3091	  3197
LAPRAL	   588#	  2436	  3024
LAPRP1	   555#	   621#	  2444
LAPRP2	   554#	   620#
LAPRP3	   553#	   619#
LAPRP4	   552#	   618#
LAPRP5	   551#	   617#
LAPRP6	   550#	   616#
LAPRP7	   549#	   615#
LAROVT	   800#	   813#	  2368
LCADEN	   597#
LCADRP	   545#	   611#	  2404	  2414	  2460
LCASDE	   600#
LCASLD	   772#	  2521	  2551	  2710
LCASLO	   771#	  2521	  2551	  2710
LCASWB	   606#	  2729
LCASWD	   548#	   614#
LCCAER	   574#
LCCASD	   586#
LCHNOF	   685#	  2435
LCHNON	   684#	  2445
LCIOPF	   566#
LCNTRP	   825#	  2378
LCNTXT	   819#
LCNXER	   562#	  2995
LCPAER	   570#
LCPWRF	   582#
LCSAER	   578#
LCSBER	   558#
LCSLOA	   784#                                                                                                            SEQ 0196
LCSLOO	   783#
LCTRP	   826#	  2379
LCWSX	   737#	   756#
LDATAF	   629#	   647#
LDCAER	   573#
LDCASD	   585#	  2726
LDIOPF	   565#
LDLNK	   149#	   856	   858
LDNXER	   561#
LDPAER	   569#
LDPWRF	   581#
LDSAER	   577#
LDSBER	   557#
LEBXMH	   834#
LEBXML	   835#
LECAER	   572#
LECASD	   584#
LEIOPF	   564#
LENXER	   560#
LEPAER	   568#
LEPWRF	   580#
LESAER	   576#
LESBER	   556#
LEUPFW	   830#	  2352	  2450
LEVNCD	   680#	   714#
LEVNPA	   678#	   712#
LEVNPD	   679#	   713#
LEXCMP	   632#	   650#
LFLGCL	   539#
LFLGDS	   538#
LFLGEN	   537#
LFLGST	   540#
LFP	  1043#
LINSTF	   628#	   646#
LINT	   622#
LIOCLR	   536#
LIOPFE	   543#	   595#	   609#	  2404	  2412	  2460
LKNTRP	   821#	  2374
LKTRP	   822#	  2375
LLACBL	   734#	   753#
LLDUSB	   736#	   755#	  2046
LLPRCN	   735#	   754#	  2046
LMBXMH	   836#
LMBXML	   837#
LMUUO	   817#	  1462
LMUUOP	   818#	  1457
LNXMEN	   594#
LNXMER	   542#	   608#	  2404	  2406	  2454	  2460	  3041
LOOPER	   124#	  1582	  1820
LPAREN	   596#
LPARER	   544#	   610#	  2404	  2408	  2460
LPDOVT	   801#	   814#	  2370
LPFWPC	   831#	  2346	  2456	  2457                                                                                     SEQ 0197
LPGFTR	   832#	  2038	  2433
LPICH1	   688#	   723#
LPICH2	   689#	   724#
LPICH3	   690#	   725#
LPICH4	   691#	   726#
LPICH5	   692#	   727#
LPICH6	   693#	   728#
LPICH7	   694#	   729#
LPICHA	   695#	  2445
LPICLR	   682#	  2435
LPIIP1	   715#
LPIIP2	   716#
LPIIP3	   717#
LPIIP4	   718#
LPIIP5	   719#
LPIIP6	   720#
LPIIP7	   721#
LPIOFF	   686#	  2435
LPION	   687#	   722#	  2445
LPNTRP	   827#	  2380
LPRCH1	   701#
LPRCH2	   702#
LPRCH3	   703#
LPRCH4	   704#
LPRCH5	   705#
LPRCH6	   706#
LPRCH7	   707#
LPRFMH	   806#
LPRFML	   807#
LPT	  4679	  4681
LPTRP	   828#	  2381
LPWRFE	   599#
LPWRFL	   547#	   613#	  2388
LREQSE	   683#
LRQCLR	   681#	  2435
LSADEN	   598#
LSADRP	   546#	   612#	  2404	  2416	  2460
LSBSEN	   593#
LSBUSE	   541#	   607#	  2404	  2410	  2460
LSCAER	   575#
LSCASD	   587#
LSECMO	   785#
LSIOPF	   567#
LSMODE	   773#
LSNTRP	   823#	  2376
LSNXER	   563#
LSPAER	   571#
LSPWRF	   583#
LSSAER	   579#
LSSBER	   559#
LSTRP	   824#	  2377
LTBASH	   804#
LTBASL	   805#                                                                                                            SEQ 0198
LTRP3T	   802#	   815#	  2372
LTRPAE	   786#
LTRPEN	   774#	  3000
LUOERR	  1211#	  2305
LUSCMP	   631#	   649#
LUUO	   413#	  1621	  4307
LUUO1	   973	   974
LUUO10	   973	   978
LUUO11	   973	   978
LUUO12	   973	   979
LUUO13	   973	   979
LUUO14	   973	   980
LUUO15	   973	   980
LUUO16	   973	   981
LUUO17	   973	   981
LUUO2	   973	   975
LUUO20	   973	   982
LUUO21	   973	   982
LUUO22	   973	   983
LUUO23	   973	   983
LUUO24	   973	   984
LUUO25	   973	   984
LUUO26	   973	   985
LUUO27	   973	   985
LUUO3	   973	   975
LUUO30	   973	   986
LUUO31	   973	   986
LUUO32	   973	   987
LUUO33	   973	   987
LUUO4	   973	   976
LUUO5	   973	   976
LUUO6	   973	   977
LUUO7	   973	   977
LUUOI	   414#
LWRITE	   630#	   648#
MAPNEW	   994#	  1219	  2901	  2928	  3131	  3194	  3215	  3287
MARGIN	   916#
MCNVER	     4#	    10	    15	   888	  1200
MEMLOW	   996#	  3141	  3146	  3155	  3175	  3259	  3305	  3403
MEMMAP	    30#	   894
MEMSAV	  2275	  2837#
MEMSIZ	   997#	  2880	  2881	  2882	  2941	  2955	  2959	  2963	  2964	  2967	  3206	  3210	  3254	  3256
	  3306	  3309	  3314	  3352	  3373	  3376	  3378	  3381	  3383	  3391
MEMSLP	  2842#	  2858
MEMTOT	   995#	  3399	  3409
MFBSRL	  2796#	  2804
MFCN	  2770#	  2779	  2782	  2809	  2812	  2837	  2840	  2843	  2850	  2852	  2855	  2858	  2861
MFCNLP	  2781#	  2812
MFICE	  1291	  2779#
MFNXTC	  2787	  2808#
MFSDF	  2772#	  2784	  2785	  2786	  2798	  2799	  2800	  2801	  2802	  2839	  2846	  2847	  2852	  2859
MFSDT	  2771#	  2772	  2781	  2782	  2783	  2784	  2788	  2789	  2790	  2795	  2796	  2797	  2799	  2803
	  2808	  2809	  2810	  2838	  2842	  2843	  2844	  2849	  2850	  2851	  2854	  2855	  2856	  2860     SEQ 0199
MINUS	  1038#
MODCHK	  1185	  1197#
MODDVC	   132#	  3419
MODDVL	    34#	   331	   889
MODDVU	    35#	   332	   890
MODLNK	   151#	   853	  1185#
MONCTL	   906#	  1312	  1654	  1834	  2035	  2111	  2136	  2157	  2491	  3355	  3359	  3547	  3548	  3571
	  4232
MONFLG	   905#	  1250	  1313	  2438	  2884
MONTEN	   907#	  1314	  2506
MONTYP	  1120#
MPVU	   458#
MREPOR	  2276	  2819#
MTR	    74#	  1957	  1975	  1978	  1992	  1997
MTRCNT	  1970	  1981	  1998	  2007	  5142#
MUOERR	  1206#	  1456
MUUOER	  1452#	  2373
NOEXEC	  1203#	  1320
NOPNT	   120#	  1650	  4253	  4626
NXMU	   459#
OPRSEL	   134#
OPTIME	  1008#	  3840	  3870
P	   177	   178	   179	   180	   391#	   928	  1274	  1276	  1277	  1369	  1371	  1374	  1379	  1388
	  1406	  1437	  1438	  1439	  1442	  1577	  1587	  1632	  2067	  2132	  2237	  2238	  2240	  2290
	  2489	  2712	  3198	  3338	  3809	  3810	  3811	  3812	  3875	  3979	  4028	  4102	  4191
PAG	   478#	  2039	  2041	  2042	  2046	  2047	  2386	  2387	  2504	  2521	  2550	  2552	  2710	  2999
	  3001	  3603
PALERS	   126#	  1641
PARCLR	   504#
PARDIS	   505#
PAREA1	    48#	   884
PAREA2	    49#	   885
PAREA3	    50#	   882
PAREA4	    51#	   883
PAREA5	    52#	   895
PAREA6	    53#	   896
PAREA7	   895#
PAREA8	   896#
PARENB	   506#
PARU	   460#
PASCNT	   910#	  1224	  1657	  1660	  2473	  2485
PATCH	  5152#
PDISF	  1005#	  4216#	  4216	  4280#	  4280	  4283
PDLOVU	   457#
PERIOD	  1035#
PFSTRT	   862#	  2397
PGINGO	  1283#
PGMEND	    31#	  5159
PGMNAM	   887	  1230#
PI	  1254	  1460	  2263	  2302	  2325	  2341	  2349	  2360	  2435	  2445	  2773	  2989	  2990	  3030
PICHN1	   524#
PICHN2	   525#
PICHN3	   526#                                                                                                            SEQ 0200
PICHN4	   527#
PICHN5	   528#
PICHN6	   529#
PICHN7	   530#
PICHNA	   531#
PICLR	   507#	  1254
PIOFF	   511#	  2263	  2990
PION	   512#	   518#	  3029	  3030
PLERR	  1204#	  1435
PLERR1	  1205#	  1440
PLIST	  1074#	  1074	  1274	  1375	  1438	  1439	  2238
PLISTE	  1074	  1076#	  1377	  1439
PLISTS	  1075#
PLUS	  1040#
PNTENB	  1004#	  4223	  4250#	  4250	  4619
PNTEXT	   883#
PNTFLG	  1003#	  4220#	  4220	  4243	  4248	  4273
PNTINH	  1006#	  4218#	  4218
PNTLPT	   121#	  3566	  3975	  3985	  4646	  4685
PNTNAM	   882#
PNTSPC	  1007#	  4221#	  4221	  4515	  4529
POWER	  2057	  2058	  2069	  2090	  2091	  2318	  2322	  2326	  2328	  2391	  2392	  2394	  2464	  5149#
PSHERR	  1272	  2211#
PVPAGI	  1101#	  2441	  2888	  3333
PWFCLR	   503#
QUEST	  1046#
RADIX	  1049#	  4580
RADLSC	  1051#	  4576
RADLSP	  1050#	  4595
RANDBS	   884#
REENTR	   864#	  4230
REINIT	  1180	  1195#
RELIAB	   128#
REPT	   392#	  1574	  1638	  1647
REPT1	   393#	  1575	  1639	  1648
REPTU	   962#	  1599#	  1599
REQSET	   508#
RESRT1	   939#	  2232
RESRT2	   940#
RESRTX	  2231	  2312#
RETURN	   871#	  1218	  1317	  1328	  2507
RSTART	   117#
RTP	  1044#
RUNFLG	   911#
SADR1	    36#	   860
SADR10	    45#	   876
SADR11	    46#	   877
SADR2	    37#	   862
SADR3	    38#	   864
SADR4	    39#
SADR5	    40#	   925
SADR6	    41#	   926
SADR7	    42#	   873                                                                                                     SEQ 0201
SADR8	    43#	   874
SADR9	    44#	   875
SBDTBL	  2824	  2852	  5135#
SBINIT	   190	   870#
SCOPE	   963#	  1297	  1583	  1584	  1623	  1821	  2475
SFSTRT	   860#
SLASH	  1047#
SM10	  1151#
SPACE	  1036#
SRTDDT	   866#
START	    34	   854	  1194#	  5161
START1	   873#
START2	   874#
START3	   875#
START4	   876#
START5	   877#
STARTA	   869	  1228#
SUBINI	  1186	  1196#
SUBLNK	   152#	   870	  1186#
SUBRTN	  1199#
SUBVER	  1200#	  2167	  2170
SWPTAB	  1157#	  3717
SWTAB	  3711	  3751#
SWTEXR	   885#
SYSEXR	   858#
TAB	  1037#
TABLE0	  1410	  1413#
TESTPC	   912#	  3916
TICKS	   915#
TIM	    75#	  1958	  1972	  1974	  1994	  1996
TOTALS	   118#
TTNBRF	  1095#	  4061	  4081
TTYFIL	  1011#	  4224
TTYSPD	  1012#
TXTINH	   129#	  1674	  1770	  1785
USER	   902#	  1246	  1249	  1251	  1252	  3082	  3357
USERF	   404#	  1248	  1309
USRASB	   892
USRCRF	  1021#
USRLFF	  1020#
UUODIS	   974#	  1400
UUOEXT	   930#
UUORTN	   931#	  1394
UUOSKP	   928#
XOFFLA	  4219#	  4219
$$DTE0	  1858	  1901#
$$DTE1	  1859	  1873#
$$DTE2	  1860	  1945#
$$DTEI	  1872#	  5138
$$DTER	  1875	  1883#
$$MUUO	  1126#	  1452	  1453
$$OUTE	  1132#
$$PAC0	  1245	  1299#	  1299                                                                                             SEQ 0202
$$TAX1	  1144#	  3907	  3908
$$TAX2	  1145#	  3910	  3911
$$TOGG	  1138#	  3540	  3573	  3648
$$UUO	  1115#	  1367	  1368
$ACC0	   953#	  2253	  2261	  2293	  2300#	  2300	  2306	  2393
$ACMP0	  3328#	  3328	  3339
$ACMP1	  2983#	  2983	  3031
$ACMP2	  2984#	  2984	  3032
$ACMP3	  2985#	  2985	  3033
$ACMP4	  3085#	  3085	  3092
$ACMP5	  3123#	  3123	  3189
$ACMP6	  3124#	  3124	  3190
$ACMP7	  3125#	  3125	  3191
$ACMP8	  3126#	  3126	  3192
$ACMP9	  3127#	  3127	  3193
$ASCP1	  4550#	  4561
$ASCP2	  4553#	  4557
$ASCPN	  4294	  4313	  4549#
$BEND1	   923#
$BEND2	   924#	  1838	  2119	  2140	  2149
$CARCT	  3948	  3954	  3973	  4613#	  4613	  4620	  4623
$CFLUS	  1509	  2399	  2747#	  3513
$CHRIN	  1014#	  3970#	  3970	  3978	  3987
$CHRPN	  4321	  4538#
$CINVA	  1508	  2548	  2717#
$CLKDT	  1877#
$CLKOF	  1923	  1933#
$CLKON	  1925	  1930#
$CLKRD	  1921	  1941#
$CLKWT	  1927	  1936#
$CLKXX	  1931	  1939	  1944#
$CLOCK	  1513	  1920#
$CNVD	  4060#	  4060	  4131	  4140
$CNVX	  4072	  4129#
$CNVX1	  4093	  4138#
$CNVX2	  4141	  4150#
$CPKL	  2021#
$CPLII	  2027#
$CPUTP	  1283	  2018#
$CRLF	  1016#	  4225#	  4225
$CSH	  2521#
$CSH1	  2541#	  2546	  2556
$CSH2	  2550#
$CSH3	  2534	  2536	  2538	  2540	  2555#
$CSHER	  2558#	  2736
$CSHX	  2731	  2735#
$CSHZ	  2720#	  2750	  2758
$CWRTB	  1509	  2503	  2755#	  3062
$DCCMP	  4580#
$DCSPS	  4594#
$DDT	    90#
$DDTEN	  1270	  2146#	  3900	  3983
$DECP1	  4586#	  4592	  4594                                                                                             SEQ 0203
$DECPN	  4315	  4569#
$DECSP	  4317	  4567#
$DEVCH	   471#
$DRPDV	  1492	  1538#
$DSKUP	   893#
$DTCHR	   102#	  3883	  3889	  3941
$DTCI	    96#	  1879	  1880	  1922	  1928	  1936
$DTCLK	    95#	  1855	  1874	  1877
$DTCMD	    99#	  1897
$DTEIN	  1287	  1850#
$DTER1	  1850#	  1850	  1894
$DTEX1	  1893#
$DTEX2	  1896#
$DTEX3	  1905#
$DTEXX	  1892#	  1934	  1942	  1946	  2123	  2144	  2494	  2510	  3630	  3633	  3858	  3938	  4261	  4709
$DTF11	    98#	  1898	  1906
$DTFLG	    94#	  1852	  1855	  1893	  1896	  1902	  1905
$DTMTD	   103#
$DTMTI	   104#
$DTOPR	   101#	  1857
$DTRPT	  1861	  1881	  1887	  5137#
$DTSEQ	   100#	  1856	  1899
$DTSWR	   105#	  2032	  3631	  3640
$DTT11	    97#	  1937
$DVCH1	   472#
$DVOFF	  1010#	  4215#	  4215
$ECK	  1311#
$EG177	  1476	  1524#
$EG4	  1478	  1517#
$EGX	  1520	  1522	  1527	  1530	  1533	  1535#
$EMODE	   891#	  1318
$END	  1513	  2473#
$END1	  2482#
$END2	  2479	  2484#
$END3	  2482	  2489#
$END4	  2480	  2491#
$EOP	  1515	  2500#
$ERH0	  2104	  2106#	  2106	  2125
$ERHL1	  2114#
$ERHL3	  2118#
$ERHL4	  2112	  2116	  2121#
$ERHLT	  1514	  1810	  2101#
$FATAL	  1514	  2129#
$FATL1	  2137	  2142#
$FFEED	  4656	  4698#	  4701
$FFF	  1018#	  4227	  4653
$FRD36	  1511	  2082#
$FRD8	  1512	  2080#
$FREAD	  1511	  2084#
$FSEL1	  2061	  2074#
$FSEL2	  2064	  2068#	  2075	  2094	  2095
$FSELE	  1510	  2055#
$FSELF	  2056#	  2056	  2066	  2086                                                                                     SEQ 0204
$HEAR	  3873	  3937#	  3991
$HEAR1	  3951	  3991#
$HEAR2	  3976	  3978#	  3986	  3989
$HEAR3	  3972	  3982#
$HEAR4	  3942	  3953	  3957	  3964#
$IBUF	  1066#
$INEXT	  1068#
$INNM	  1067#
$INTDF	  4214#	  4214
$IPGFL	  2037	  2448#
$ITR1A	  2248	  2251	  2256	  2269#	  2421	  2423	  2425	  2427
$ITR1B	  1465	  2245	  2278#	  2362	  2461
$ITRC1	  2229	  2300#
$ITRHL	   934#	  2262
$ITRHZ	  2261#	  2405	  2418
$ITRIN	  1292	  2220#
$ITRX1	   935#	  2294
$KIKLI	  2367#	  2434
$KL10	  2233	  2432#
$KLCAD	  2415	  2424#
$KLCLR	  2435#	  2465
$KLCSH	  1295	  2466	  2515#
$KLENB	  2438#
$KLIOP	  2413	  2422#
$KLIT1	  2389	  2403#	  2462
$KLITR	  2307	  2386#
$KLPGF	  2432	  2450#
$KLPWR	  2391#
$KLRST	  2314	  2464#
$KLSAD	  2417	  2426#
$KLSBE	  2411	  2420#
$KLSN	  2172#
$KLSNX	  2172#	  2172	  2173	  2177	  2182	  2187
$KLSWI	  3564	  3629#	  3639
$KLSWR	  3546	  3638#
$LDSPS	  4583	  4591#
$M2	  3015#
$M4	  3045#
$M5	  3013	  3057#
$M6	  3043	  3060#
$M7	  3048	  3065#
$MAPEX	  1285	  1335#
$MDEND	  3496	  4814#
$MDLST	  3496	  4715#	  4814
$MDSR1	  3504#	  3508
$MDSR2	  3499	  3505#
$MDSRC	  3446	  3449	  3494#
$MDVCN	  3442#	  3442	  3448	  3466	  3527
$MDVCO	  3437#	  3437	  3445	  3468	  3526
$MEEX1	  2884#
$MEMMP	  1294	  1508	  2880#
$MEPAG	  2890	  2892#
$MMAP	   894#	  1293                                                                                                     SEQ 0205
$MNCON	  3128#	  3128	  3177	  3185
$MODCK	  1197	  1308#
$MODD0	  3422#
$MODD1	  3430#	  3454	  3456
$MODD2	  3435	  3440	  3476#
$MODD3	  3434#	  3511
$MODD4	  3439#
$MODD5	  3444#
$MODD6	  3447#
$MODD7	  3452#
$MODD8	  3455	  3462#	  3532
$MODD9	  3479#
$MODDB	  3422#	  3422	  3516	  3528
$MODDC	  3423#	  3423	  3515	  3529
$MODDD	  3424#	  3424	  3514	  3530
$MODDP	  1493	  3524#
$MODDV	  1493	  3418#
$MODDX	  3432	  3513#	  3533
$MODER	  3480	  3483	  3485	  3510#
$MODVL	   889#	  3462	  3465
$MODVU	   890#	  3463
$MPAD3	  3331	  3339#	  3344
$MPAD7	  3338#	  3346
$MPADL	  3335	  3342#
$MPADR	  1495	  3069	  3328#
$MPCM1	  2944#	  2953	  2960
$MPCM2	  2947	  2962#
$MPCM3	  2955#
$MPCMB	  2916	  2930	  2936#
$MPCMX	  2957	  2967#
$MPCN1	  2995#	  3063
$MPCNK	  1496	  2914	  2929	  2983#	  3144
$MPCXX	  3057	  3060	  3065	  3068#
$MPEXM	  3037#	  3047	  3058
$MPNEW	  2909#
$MPNXM	  2996	  3007#	  3018
$MPOL1	  2885	  2891	  2926#
$MPOLD	  2902	  2918#
$MPRPI	  3028#
$MPRST	  3024#	  3066
$MPSE1	  3085#
$MPSE2	  3086	  3095#
$MPSE3	  3091#	  3107
$MPSET	  1496	  2912	  3082#	  3142
$MPVU	  2247#
$MSAPR	  2991#	  2991	  3025
$MSEG	  1494	  3123#	  3295
$MSEG2	  3176	  3183#	  3232
$MSEG3	  3147	  3188#	  3207	  3209	  3251	  3255	  3257	  3264	  3267	  3271	  3276
$MSEG4	  3197#
$MSEGP	  3135	  3203#	  3268
$MSEGV	  3136	  3141#
$MSGV1	  3146#                                                                                                            SEQ 0206
$MSGV2	  3152#	  3178
$MSGV3	  3170	  3175#
$MSKA	  3132	  3248#	  3273
$MSKAP	  3216	  3249	  3266#	  3275
$MSPI	  2989#	  2989	  3028
$MSUSR	  3273#
$MTIR1	  2001#	  2014
$MTIR2	  2000	  2006#
$MTIR3	  2009	  2013#
$MTRAC	  2006	  2010	  2013	  5143#
$MTRI	  1256	  1959	  1966	  1984	  2002	  2003	  5140#
$MTRIR	  1968	  1991#	  2004	  2011
$MTROF	  1961	  1978#
$MTRON	  1963	  1968#	  1986
$MTROP	  1510	  1955#
$MTRRD	  1956	  1981#
$MTRW	  1965	  1984#
$MTRWC	  1257	  1960	  1985	  1999	  2008	  5141#
$MZRO	  1495	  3285#
$MZRO1	  3290#	  3297	  3302
$MZRO2	  3288	  3304#
$MZRO3	  3309#	  3316
$MZROB	  3285#	  3285	  3319
$MZROC	  3286#	  3286	  3318
$MZROX	  3293	  3307	  3310	  3318#
$NEGF	  4059#	  4059	  4099	  4126
$NEGX	  4070	  4124#
$NOUSR	  1253	  1324#
$NOYES	  1500	  4003#
$NXMU	  2250#	  2407
$OBUF	  1057#
$ONETM	   917#	  1223	  1296	  2034	  3362	  4234
$OPTLK	  1499	  3657	  3663	  3785	  3800	  3869#	  4012	  4020	  4067	  4171
$OUTEX	  1059#
$OUTNM	  1058#
$PACA1	  4268	  4284	  4300#	  4300
$PACA2	  4269	  4285	  4301#	  4301
$PACA3	  4270	  4286	  4302#	  4302
$PACA4	  4271	  4287	  4303#	  4303
$PACA5	  4272	  4288	  4304#	  4304
$PACB0	  4604#	  4604	  4667
$PAPER	    56#	   384	   533	   641	   795
$PARER	   941#	  2254
$PAREX	  2253#	  2409
$PDLOV	  2339#	  2369
$PDOVP	  1437	  1444	  2237#	  2237	  2242
$PDOVU	  2237#	  2342
$PGFL	  2346#	  2453	  2455
$PGFL1	  2352#
$PGFL2	  2354	  2459#
$PGMIN	  1196	  1245#
$PGMN1	  1262#
$PMAP	  1497	  2965	  2971	  3351#                                                                                    SEQ 0207
$PMAP1	  3358	  3361	  3364#
$PMAP3	  3356	  3362#
$PMAP4	  3374	  3399#
$PMAP5	  3386	  3396#
$PMAP6	  3404	  3406	  3414#
$PMAP7	  3387#
$PMAPL	  3364	  3373#	  3397
$PNAME	   887#	  1327	  2159
$PNM1	  2192#
$PNM2	  2158	  2197#
$PNT	  4306#	  4306	  4519#	  4519	  4523	  4528	  4547#	  4547	  4559	  4567	  4591
$PNTB1	  4283#
$PNTC2	  4466	  4481#
$PNTC3	  4477#	  4493
$PNTCF	  1491	  4495#	  4497
$PNTCW	  1491	  4461#	  4498	  4500
$PNTI1	  4323	  4506#	  4530
$PNTI2	  4510#	  4513	  4524
$PNTI3	  4319	  4526#
$PNTI4	  4266#	  4520	  4531	  4541	  4555	  4560	  4574
$PNTIA	  4262	  4300#
$PNTIB	  4251	  4279#
$PNTIC	  4311#
$PNTIF	  1474	  4243#
$PNTIN	  1288	  4214#
$PNTIT	  1472	  4248#
$PNTIX	  4230#
$PNTLN	  4312	  4547#
$PNTMG	  1497	  1539#
$PNTNM	  1492	  2157#	  3567	  4236
$PNTSV	  4514#	  4514	  4521
$PNTSX	  1490	  4333#
$PNTTY	  4244#	  4244	  4249	  4259	  4266	  4289	  4624	  4687
$PNTY1	  4649#	  4674	  4676	  4690
$PNTY2	  4652#
$PNTY3	  4658	  4662#
$PNTYC	  4605#	  4605	  4652	  4689
$POCS	  1506	  4415#
$POCS1	  4423	  4430#
$POCS2	  4435#	  4444
$POCS3	  4432	  4439#	  4453
$POCS4	  4444#	  4452
$POCS5	  4437	  4452#
$POCSF	  1506	  4411#
$POINT	  4549#	  4549	  4551	  4558
$PRNTX	  4256	  4273#	  4281
$PSHER	   945#	  1273	  1275	  1441	  2239
$PSIX	  1505	  4367#
$PSIX1	  4376#	  4392
$PSIX2	  4379#	  4391
$PSIX3	  4391#	  4397
$PSIX4	  4384	  4394#
$PSIX5	  4382	  4399#                                                                                                    SEQ 0208
$PSIXF	  1505	  4363#
$PTCA	  4461#	  4461	  4478	  4495
$PTCB	  4463#	  4463	  4477
$PTINH	  4217#	  4217	  4245	  4615	  4618	  4649
$PTKL	  4246	  4254	  4258#
$PTSXF	  1490	  4346#
$PVER	   888#
$PWRF	  2312	  2321#	  2321	  2400
$PWRFL	  2313	  2332#
$PWRST	  2330	  2396#	  2396
$RADIX	  4573	  4576#	  4584
$REINI	  1195	  1223#
$RSRTX	   937#	  2323
$RSRTY	   938#	  2329
$RSTCM	  2316#	  2467
$SBSRT	  1194	  1215#
$SNPNT	  2175	  2200#
$SPAG1	   957#	  2387#	  2387
$START	   854#	  1319	  1323
$STD	    89#
$STL	    91#
$STM	    92#
$SUBUO	  1387	  1409#
$SVAPR	   955#	  1459	  2281#	  2281	  2301	  2317	  2324	  2340	  2348	  2359	  2403	  2459
$SVCSW	  1267#	  1267	  3698	  3704
$SVERA	  2271	  2273	  5133#
$SVPAG	   956#	  2386#	  2386
$SVPI	   954#	  1460	  2284#	  2284	  2302	  2316	  2325	  2341	  2349	  2360
$SVUPC	   960#	  1390
$SVUUO	   959#	  1392	  1396
$SW	  3662#	  3662	  3665	  3682#	  3682	  3687
$SW0	  3561	  3647#	  3909
$SW1	  3656#	  3658	  3664	  3675	  3705
$SW10	  3701#
$SW11	  3704#
$SW12	  3652#	  3707
$SW13	  3681	  3709#
$SW14	  3686	  3715#
$SW2	  3671	  3679#	  3710
$SW3	  3684#	  3713	  3716	  3718
$SW4	  3677	  3688#	  3699	  3702	  3720
$SW5	  3689#
$SW6	  3667	  3676#
$SW7	  3673	  3693#
$SW8	  3650	  3690#	  3694	  3697
$SW9	  3649	  3669	  3696#
$SWCH1	  3547#	  3552
$SWERR	  3660	  3675#
$SWFLG	  1269#	  1269	  3542	  3563
$SWIN1	  3562#
$SWIN3	  3608	  3611	  3616	  3626#
$SWONC	  3560#	  3560	  3562	  3696
$SWTCH	  1494	  1581	  1631	  1794	  2114	  2138	  2477	  3418	  3540#	  3565	  4252                             SEQ 0209
$SWTIN	  1290	  3559#
$SWU1	  3543	  3545	  3551#
$SWU2	  3541	  3553#
$SWXX	  3712	  3719	  3723#
$SWXX1	  3732#	  3737	  3743	  3782
$SWXX2	  3733	  3742#
$SWXX3	  3738	  3744#
$SWXX4	  3739	  3776#
$SWYYY	  3799#	  3799	  3802
$SWZZ	  3736	  3784#
$SWZZ1	  3788	  3812#
$SWZZ2	  3790	  3811#
$SWZZ3	  3804	  3810#
$SWZZ4	  3792	  3806	  3809#
$TABF	  1017#	  4226
$TACB4	  3869#	  3869	  3877
$TACC1	  4006#	  4006	  4031
$TACC2	  4007#	  4007	  4029
$TACD1	  4053#	  4053	  4101	  4108
$TACD2	  4054#	  4054	  4097	  4107
$TACD3	  4055#	  4055	  4096	  4106
$TALT1	  3893	  3897#
$TALT2	  3891#
$TALT3	  3902	  3914#
$TALT4	  3904	  3922#
$TALTM	  1502	  1556	  1798	  3883#
$TIEX2	  3862	  3946#
$TISIX	  1503	  4166#
$TOUB1	  4617	  4622#
$TOUB2	  4625	  4629#
$TOUT	  4512	  4518	  4540	  4556	  4571	  4588	  4596	  4604#
$TOUT1	  4647	  4673#
$TOUTA	  4650	  4663	  4667#	  4688	  4702
$TOUTB	  4606	  4612#	  4637	  4641
$TOUTC	  4629	  4646#
$TPCK	  4078	  4115#
$TPCNV	  1501	  4047#
$TPCV1	  4048	  4050	  4053#
$TPDEC	  1501	  4049#
$TPERR	  4068	  4079	  4091	  4105#	  4125	  4130	  4143
$TPEX1	  4096#	  4148	  4157
$TPEXT	  4074	  4076	  4090#
$TPMUL	  4083	  4118#
$TPNBR	  4090	  4121#
$TPOCT	  1500	  3476	  3680	  3685	  4051#
$TRP3	  2358#	  2371
$TSX1	  4166#	  4166	  4194
$TSX2	  4167#	  4167	  4195
$TSXB1	  4171#	  4189
$TSXB2	  4174	  4176	  4191#
$TSXB3	  4172	  4179	  4183	  4187	  4193#
$TSXB4	  4182	  4185#
$TTCHR	  1013#	  3940	  3946#	  3946	  3964                                                                             SEQ 0210
$TTLK	  1502	  3849#
$TTYIN	  1503	  3857#
$TTYSP	  1201#
$TUTX2	  4636#
$TUTX3	  4640#
$TWCNT	  1009#	  3876
$TYOUT	  3947	  3956	  4662	  4700	  4707#
$TYPIN	  1289	  3839#
$TYPL1	  4081#
$TYPLP	  4067#	  4086	  4127	  4132
$TYPNB	  1015#	  4058#	  4058	  4105
$UCK	  1310	  1322#
$UMODE	   892#	  1322
$UOERX	  1355	  1422#	  1504	  1512	  1515	  1572
$UOPLE	  1370	  1372	  1376	  1378	  1381	  1383	  1434#
$UORTN	  1353	  1367#	  1455	  2304
$UORTX	   932#	  1431
$UOTAB	  1486	  1489#
$UPLER	  1357#	  1357	  1434	  1436
$USRHL	   936#
$USRUO	  1388#
$USWTF	  3544	  3559#	  3559	  3689	  3693
$UUO37	  1416	  1471#
$UUOER	   933#	   974	  1356
$UUOIN	  1286	  1353#
$VTAB	  4660	  4695#
$VTF	  1019#	  4228	  4657
$XUUO	  1401#	  1487
$YESNO	  1499	  3431	  3453	  4005#
$YN1	  4010#	  4035
$YN2	  4013	  4021	  4029#
$YN3	  4017	  4027	  4034#
$YN4	  4023	  4025	  4037#
%AC0	  1607#	  1607	  1613	  1787	  1789	  1790	  1839
%AC1	  1608#	  1608	  1614	  1716	  1740
%AC2	  1609#	  1609	  1615	  1718	  1742
%AC3	  1610#	  1610	  1616	  1720	  1744
%ACTFL	   966#	  1629#	  1629	  1736
%ACTUL	   967#	  1754#	  1754	  1760
%COREC	   965#	  1730#	  1730	  1759
%CORFL	   964#	  1628#	  1628	  1712
%DISCR	   968#	  1692#	  1692	  1710	  1734	  1757	  1764
%EACR	  1613#	  1668	  1809
%EACR1	  1614#	  1781	  1833
%EACS	  1607#	  1627	  1793
%ERCNT	  1653#	  1653	  1822
%ERFLG	  1554#	  1554	  1573	  1636
%ERFST	  1812#	  1812	  1814
%ERHI1	  1107#	  1625	  1626
%ERHI2	  1108#	  1840	  1841
%ERHI3	  1109#	  1669	  1670
%ERIN1	  1729	  1753	  1763	  5145#	  5147
%ERIN2	  1706	  5146#                                                                                                    SEQ 0211
%ERLP	  1414	  1554#
%ERLP0	  1570	  1573#
%ERLP1	  1568	  1577#
%ERLP2	  1566	  1581#
%ERMOR	  1783	  1786	  1790#
%ERP2A	  1714	  1722#
%ERP2B	  1697#
%ERP3A	  1738	  1746#
%ERPNT	  1635	  1640	  1647#
%ERPR1	  1678	  1684#
%ERPR2	  1675	  1688	  1692#
%ERPR3	  1711	  1731#
%ERPR4	  1735	  1756#
%ERPR5	  1758	  1769#
%ERPR6	  1771	  1775	  1779#
%ERPRA	  1655	  1812#
%ERPRB	  1657#	  1815
%ERS1A	  1809#
%ERSW1	  1642	  1651	  1798#
%ERSW2	  1805	  1820#
%ERSW3	  1827#
%ERUUO	  1415	  1621#
%ERX	  1586#	  1600
%ERX1	  1576	  1580	  1585	  1590#	  1601
%ERXTR	  1782#	  1782	  1788
%EXCAL	  1833#
%EXCL1	  1835	  1839#
%LUUO	  1622#	  1622	  1697
%REPT	  1413	  1599#
%RP	  1574	  1638	  1647#	  1647
%RP1	  1575	  1639	  1648#	  1648
.JB41	   439#
.JBAPR	   447#
.JBCNI	   448#
.JBDDT	   441#
.JBFF	   445#
.JBOPC	   450#
.JBREL	   440#
.JBREN	   446#
.JBSA	   444#
.JBSYM	   442#
.JBTPC	   449#
.JBUSY	   443#
.JBUUO	   438#
.JBVER	   451#

CFLUSH	   302#
CINVAL	   301#                                                                                                            SEQ 0212
CLOKOP	   296#	  2501
CWRTBI	   303#
DROPDV	   263#
ENDUUO	   309#	   922
EOPUUO	   310#	   924
ERLOOP	   354#
ERLP1	   355#
ERLP2	   356#
ERRHLT	   197#
ERROR	   363#
ERROR1	   374#
ERUUO	   353#
FATAL	   196#	  1432	  1446	  1703	  2087	  2089	  2213	  2295	  2560	  2940	  2993	  3070	  3096	  3130
	  3159	  3163	  3261	  3296	  3863
FRD36	   338#
FRD8	   339#
FREAD	   337#
FSELEC	   336#
GET	   180#	  1393	  1405	  1421	  1424	  1427	  1535	  1561	  1571	  1586	  1590	  1624	  1886	  2059
	  2071	  2092	  2104	  2118	  2124	  2150	  2202	  2277	  2737	  2738	  2739	  2740	  2741	  2830
	  2859	  2860	  2861	  3002	  3690	  3746	  3747	  3748	  4255	  4279	  4305	  4340	  4353	  4399
	  4400	  4401	  4402	  4403	  4445	  4446	  4447	  4448	  4449	  4710
GO	   177#	  1283	  1285	  1286	  1287	  1288	  1289	  1290	  1291	  1292	  1294	  1295	  1353	  1455
	  1556	  1581	  1627	  1631	  1668	  1781	  1788	  1793	  1794	  1798	  1809	  1833	  2063	  2093
	  2114	  2123	  2138	  2144	  2175	  2275	  2276	  2304	  2399	  2434	  2443	  2465	  2466	  2477
	  2480	  2494	  2503	  2510	  2548	  2747	  2755	  2912	  2914	  2925	  2929	  3057	  3060	  3062
	  3065	  3069	  3091	  3142	  3144	  3197	  3295	  3418	  3431	  3453	  3455	  3476	  3513	  3532
	  3546	  3561	  3564	  3565	  3567	  3630	  3633	  3639	  3657	  3663	  3680	  3685	  3712	  3719
	  3736	  3785	  3800	  3858	  3862	  3873	  3909	  3938	  3947	  3956	  4012	  4020	  4067	  4171
	  4252	  4261	  4573	  4584	  4662	  4700	  4709
HALT	   182#	   943	  1203	  1204	  1205	  1206	  1207	  1208	  1209	  1210	  1211	  1320	  1435	  1440
	  1456	  2045	  2050	  2125	  2305	  2334	  2401	  2448	  2511
JEN	   184#	  1881	  1887	  2004	  2011
JRSTF	   183#	  2330	  2457
MAPADR	   319#
MAPCNK	   320#
MAPMEM	   316#
MAPPNT	   322#
MAPSET	   321#
MEMSEG	   318#
MEMZRO	   317#
MODPCP	   329#
MODPCU	   328#
MTROP	   297#
NAME	     7#	    10
OUTSTR	  1324	  1327
PBELL	   272#	  1828
PCRL	   266#	  1430	  1776	  1779	  2197	  2292	  2827	  3370	  3394	  3411	  3412	  3626	  3977	  4396
PCRL2	   270#
PCRL2F	   271#
PCRLF	   267#	  2109	  2135	  2488	  3450	  3578	  3730	  3744	  3918	  3930	  4034	  4394
PFORCE	   274#	  1652	  2270
PGMINT	   190#	  1220	  2332                                                                                             SEQ 0213
PJRST	   181#	  1934	  1942	  1946
PMSG	   276#	  1423	  1461	  1659	  1662	  1665	  2160	  2166	  2176	  2181	  2186	  2193	  2195	  2201
	  2241	  2272	  2280	  2350	  2820	  3366	  3369	  3408	  3584	  3593	  3602	  3617	  3619	  3621
	  3623	  3625
PMSGF	   279#	  1443	  1884	  2102	  2130	  2211	  2320	  2333	  2484	  2558	  2969	  3430	  3434	  3439
	  3444	  3447	  3452	  3510	  3575	  3652	  3656	  3679	  3684	  3914	  3922	  3926	  4010
PNT1	   232#	  3606
PNT11	   246#
PNT11F	   247#
PNT1F	   233#
PNT2	   234#
PNT2F	   235#
PNT3	   236#
PNT3F	   237#	  3502
PNT4	   238#
PNT4F	   239#
PNT5	   240#	  4471
PNT5F	   241#	  4469
PNT6	   242#	  1664	  2291	  4484	  4492
PNT6F	   243#	  2108	  2134	  3917	  3925	  4482	  4490
PNT7	   244#
PNT7F	   245#
PNTA	   218#	  1705
PNTADF	   249#	  4474
PNTADR	   248#	  3377	  3379	  4476
PNTAF	   219#
PNTAL	   220#	  1534
PNTALF	   221#	  1532
PNTCHF	   231#	  1519	  4351	  4388	  4425	  4440	  4486
PNTCHR	   230#	  1521	  3988	  4338	  4390	  4427	  4442	  4488
PNTCI	   228#	  2163	  2169	  3380	  3390
PNTCIF	   229#	  2487	  3735
PNTCW	   264#
PNTCWF	   265#
PNTDCF	   257#	  2486	  3929
PNTDEC	   256#	  1661	  2203	  3387	  3393	  3410
PNTDS	   258#
PNTDSF	   259#
PNTHW	   252#	  1425	  1429	  1463	  1667	  2243	  2274	  2282	  2285	  2288	  2353	  2826
PNTHWF	   253#	  1445	  3577	  3654
PNTMGN	   343#
PNTMSF	   225#	  3784
PNTMSG	   224#	  2159
PNTNM	   260#	  1813	  2101	  2129
PNTOCF	   255#
PNTOCS	   254#	  2162	  2165	  2168	  2171	  2180	  2185	  2190
PNTOCT	   250#
PNTOTF	   251#
PNTSIX	   261#	  3592	  3600
PNTSXF	   262#	  3507	  3734
PSIXL	   222#	  1529	  1679	  1681	  1689	  1691	  1727	  1751	  1761	  1778	  2279
PSIXLF	   223#	  1526
PSIXM	   226#	  1423	  1461	  1659	  1662	  1665	  2160	  2166	  2176	  2181	  2186	  2193	  2195	  2201     SEQ 0214
	  2241	  2272	  2280	  2351	  2821	  3366	  3369	  3408	  3584	  3593	  3602	  3617	  3619	  3621
	  3623	  3625
PSIXMF	   227#	  1443	  1885	  2103	  2131	  2212	  2320	  2333	  2484	  2559	  2970	  3430	  3434	  3439
	  3444	  3447	  3452	  3510	  3575	  3652	  3656	  3679	  3684	  3915	  3923	  3927	  4011
PSP	   268#	  1426	  2283	  2286	  2289
PSPF	   269#
PUT	   179#	  1373	  1395	  1398	  1422	  1479	  1555	  1883	  2055	  2068	  2085	  2105	  2146	  2200
	  2269	  2717	  2720	  2721	  2722	  2723	  2748	  2756	  2819	  2837	  2838	  2839	  2998	  3647
	  3723	  3724	  3725	  4333	  4346	  4363	  4367	  4369	  4370	  4371	  4372	  4411	  4415	  4417
	  4418	  4419	  4420	  4707
REPTUO	   357#
RTN	   178#	   930	  1346	  1358	  1407	  1536	  1539	  1591	  1611	  1617	  1842	  1866	  1907	  1976
	  1979	  1982	  2036	  2051	  2072	  2198	  2204	  2382	  2446	  2483	  2490	  2492	  2495	  2516
	  2519	  2522	  2527	  2553	  2711	  2713	  2742	  2813	  2831	  2862	  3003	  3034	  3072	  3083
	  3093	  3195	  3199	  3320	  3340	  3414	  3420	  3471	  3517	  3550	  3554	  3570	  3572	  3627
	  3636	  3641	  3691	  3749	  3786	  3797	  3801	  3807	  3813	  3841	  3850	  3864	  3878	  3906
	  3912	  3920	  3932	  3944	  3980	  4032	  4103	  4109	  4196	  4233	  4235	  4274	  4341	  4354
	  4404	  4450	  4479	  4589	  4711
S	    63	    78	    87	   108#	   110	   114	   143	   145	   154	   157	   172	   173	   175	   186
	   188	   192	   194	   199	   203	   349	   351	   387	   389	   395	   397	   409	   411	   416
	   418	   434	   436	   453	   455	   465	   469	   474	   476	   481	   483	   490	   492	   499
	   501	   514	   516	   520	   522	   535	   589	   591	   602	   604	   624	   626	   634	   636
	   642	   644	   652	   654	   658	   660	   665	   667	   674	   676	   697	   699	   708	   710
	   730	   732	   743	   745	   749	   751	   762	   764	   767	   769	   778	   780	   790	   792
	   796	   798	   809	   811	   845	   851	   878	   880	   898	   900	   918	   920	   949	   951
	   969	   971	   989	   991	   999	  1001	  1022	  1027	  1053	  1055	  1062	  1064	  1070	  1072
	  1078	  1080	  1084	  1086	  1091	  1093	  1097	  1099	  1103	  1105	  1111	  1113	  1116	  1118
	  1122	  1124	  1128	  1130	  1134	  1136	  1140	  1142	  1147	  1149	  1153	  1155	  1159	  1161
	  1163	  1165	  1171	  1173	  1190	  1192	  1212	  1214	  1241	  1243	  1258	  1260	  1279	  1281
	  1300	  1306	  1330	  1333	  1349	  1351	  1360	  1365	  1417	  1419	  1448	  1450	  1467	  1469
	  1542	  1552	  1593	  1597	  1603	  1605	  1619	  1645	  1695	  1725	  1749	  1767	  1797	  1807
	  1818	  1825	  1831	  1845	  1848	  1868	  1870	  1888	  1890	  1908	  1918	  1947	  1953	  1987
	  1989	  2016	  2053	  2078	  2099	  2127	  2155	  2209	  2215	  2218	  2235	  2259	  2267	  2298
	  2310	  2337	  2345	  2357	  2365	  2384	  2430	  2471	  2498	  2513	  2715	  2745	  2753	  2761
	  2766	  2815	  2817	  2832	  2835	  2865	  2875	  2878	  2904	  2907	  2931	  2934	  2975	  2981
	  3005	  3022	  3036	  3050	  3055	  3075	  3080	  3110	  3121	  3139	  3181	  3201	  3238	  3246
	  3279	  3283	  3323	  3326	  3348	  3427	  3460	  3474	  3491	  3519	  3522	  3536	  3538	  3556
	  3581	  3644	  3818	  3834	  3838	  3843	  3847	  3851	  3855	  3865	  3867	  3879	  3881	  3933
	  3935	  3958	  3962	  3996	  4001	  4042	  4045	  4065	  4088	  4113	  4136	  4161	  4164	  4199
	  4207	  4209	  4212	  4238	  4241	  4264	  4277	  4295	  4298	  4325	  4328	  4331	  4344	  4355
	  4361	  4405	  4409	  4454	  4459	  4501	  4504	  4533	  4536	  4543	  4545	  4562	  4565	  4600
	  4602	  4608	  4610	  4632	  4642	  4644	  4666	  4669	  4671	  4693	  4703	  4705
SBDIAG	  2773#	  2783	  2790	  2797	  2802	  2810	  2844	  2851	  2856
SIXBTZ	   285#	  1676	  1682	  1684	  1707	  1731	  1756	  2247	  2250	  2255	  2264	  2361	  2420	  2422
	  2424	  2426
SWITCH	   291#
TTALTM	   212#
TTICHR	   205#
TTICLR	   215#
TTICNV	   210#
TTIDEC	   209#
TTINO	   207#
TTIOCT	   208#                                                                                                            SEQ 0215
TTIYES	   206#
TTLOOK	   211#
TTSIXB	   213#
TTYINP	   214#
$MDSXB	    60#	  4715	  4717	  4719	  4721	  4723	  4725	  4727	  4729	  4731	  4733	  4735	  4737	  4739
	  4741	  4743	  4745	  4747	  4749	  4751	  4753	  4755	  4757	  4759	  4761	  4763	  4765	  4767
	  4769	  4771	  4773	  4775	  4777	  4779	  4781	  4783	  4785	  4787	  4789	  4791	  4793	  4795
	  4797	  4799	  4801	  4803	  4805	  4807	  4809	  4811