Google
 

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






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

	PRODUCT CODE:		AH-F481C-DD

	DIAGNOSTIC CODE:	DSQDA

	PRODUCT NAME:	 	DSQDAC0 2020 DIAG SUB PROG

	VERSION:		0.3

	DATE RELEASED:		JUNE 1979

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 1978, 1979

	        DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

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

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

	DIGITAL EQUIPMENT CORPORATION ASSUMES NO  RESPONSIBILITY FOR THE
	USE  OR  RELIABILITY  OF  ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
	SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
					MAINDEC-10-DSQDA.TXT (SUBSM)
						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	DEVICE CODE CHANGE SUBROUTINE

5.11	FILE SELECTION AND READ SUBROUTINES
					MAINDEC-10-DSQDA.TXT (SUBSM)                                                       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	LISTINGS
					MAINDEC-10-DSQDA.TXT (SUBSM)
						PAGE 3                                                                     SEQ 0004
1.0  ABSTRACT
     --------

     THE DECSYSTEM 2020 SUBROUTINES (PARAM.KSM,FIXED.KSM,STOR.KSM
     & SUBSM.SAV/SUBUSR.SAV) PROVIDE THE BASIC SUBROUTINES AND
     SOURCE FILES NEEDED TO FACILITATE DEVELOPMENT OF DIAGNOSTIC
     AND UTILITY PROGRAMS FOR THE DECSYSTEM 2020 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 FIVE 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.KSM, FIXED.KSM & STOR.KSM 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 (DESCRIBED IN "SUBUSR" DOCUMENTATION)
	SUBSM - EXEC MODE SUBROUTINE PACKAGE (DESCRIBED HERE)

	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 - DEVICE CODE CHANGE SUBROUTINE
	   L - DIAGNOSTIC ERROR HANDLER
					MAINDEC-10-DSQDA.TXT (SUBSM)                                                       SEQ 0005
						PAGE 4

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

2.1  EQUIPMENT
     ---------

     THE DECSYSTEM 2020 SUBROUTINES ARE CONFIGURED TO BE ABLE TO
     OPERATE EITHER IN EXEC MODE (SUBSM) OR USER MODE (SUBUSR).
     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 - PUSHDOWN LIST, 30303 TO 30504
		L - MISCELLANEOUS PARAMETERS, 30505 TO 30525
		M - EXPANSION AREA, 30526 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-DSQDA.TXT (SUBSM)
						PAGE 5                                                                     SEQ 0006

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


	0	-----------------------------------------
		I
		I   EXEC PAGE TABLE
		I
	1000	-----------------------------------------
		I
		I   CONSOLE UCODE AND PRE-BOOT LOAD AREA
		I
	2000	-----------------------------------------
		I
		I   SUBSM
		I
	10000	-----------------------------------------
		I
		I   SMDDT
		I
	20000	-----------------------------------------
		I
		I   SMMON
		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-DSQDA.TXT (SUBSM)
						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-DSQDA.TXT (SUBSM)
						PAGE 7                                                                     SEQ 0008
3.1	CON'T
	-----

	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-DSQDA.TXT (SUBSM)
						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-DSQDA.TXT (SUBSM)
						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-DSQDA.TXT (SUBSM)
						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:

		    THE OPERATOR SPECIFIES THE SWITCH SETTINGS BY
		    RESPONSE ON THE TTY TO QUESTIONS AS FOLLOWS:

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

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

		    LH SWITCHES -

		    RH SWITCHES -

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

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

	B.  PRINT INITIALIZATION - THE PRINT SUBROUTINE PROVIDES OUTPUT
	    TO THE TTY ONLY.
					MAINDEC-10-DSQDA.TXT (SUBSM)
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) N/A	(PNTLPT)   0	NORMAL OUTPUT TO TTY
				   1	N/A ON KS10 IN EXEC MODE

     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	ALLOW FULL 256K/1024K ADDRESSING
				  1	INHIBIT PAGING; I.E. TREAT MEMORY AS DIRECT PHYSICAL

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

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

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

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

    16	(000002)			RESERVED

    17	(000001)			RESERVED
					MAINDEC-10-DSQDA.TXT (SUBSM)
						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.

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

	A.  MAPMEM  (PART OF PGMINT)

	PERFORMS MEMORY MAPPING AND PRINTS A MEMORY MAP.
	MEMORY MAPPING OF EITHER 1024K PAGED MEMORY OR 256K DIRECT
	ADDRESSED MEMORY IS CONTROLLED BY THE MAPNEW FLAG.

	MAPNEW = 0, DIRECT MEMORY ADDRESSING, 256K MAXIMUM
	        -1, 1024K PAGED MEMORY OPERATIONS

	1024K PAGED MEMORY OPERATIONS WILL ONLY TAKE PLACE IF:
	1. MAPNEW FLAG = -1 BEFORE "PGMINT"

	DIRECT MEMORY OPERATIONS WILL TAKE PLACE IF ANY OF:
	1. USER MODE OR SPECIAL USER MODE
	2. PAGING INHIBITED
	3. MAPNEW WASN'T -1 BEFORE "PGMINT"
					MAINDEC-10-DSQDA.TXT (SUBSM)
						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-10 - MAP CORRESPONDING 128K SEGMENT
		       11-37 - NO MEMORY
		       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 PAGE INACCESSIBLE

	NOTE:   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-DSQDA.TXT (SUBSM)
						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, 1024K PAGED MEMORY ZERO

	E.  MAPSET

	SETS UP 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-DSQDA.TXT (SUBSM)
						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:

	        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.

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-DSQDA.TXT (SUBSM)
						PAGE 16                                                                    SEQ 0017
5.6  CONSOLE DATA SWITCH INPUT
     -------------------------

     THIS SUBROUTINE INPUTS THE CONSOLE DATA SWITCHES.

	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-DSQDA.TXT (SUBSM)
						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-DSQDA.TXT (SUBSM)
						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.
					MAINDEC-10-DSQDA.TXT (SUBSM)
						PAGE 19                                                                    SEQ 0020

5.10	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.
					MAINDEC-10-DSQDA.TXT (SUBSM)
							PAGE 20                                                            SEQ 0021

5.11	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 THE APPROPRIATE DIAGNOSTIC MONITOR.

	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 = N/A KS-10
		2 = EXEC DISK		Y	Y	Y
		3 = N/A KS-10
		4 = N/A KS-10
		5 = USER (DISK)		Y	Y	Y
		6 = MAG TAPE		Y	Y	Y

	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 "DIAGNOSTIC MONITOR" CAPABILITY
					MAINDEC-10-DSQDA.TXT (SUBSM)
						PAGE 21                                                                    SEQ 0022

5.11	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-DSQDA.TXT (SUBSM)
						PAGE 22                                                                    SEQ 0023
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-DSQDA.TXT (SUBSM)
						PAGE 23                                                                    SEQ 0024
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-DSQDA.TXT (SUBSM)
						PAGE 25                                                                    SEQ 0025

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	;KS-10 N/A

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

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

	CLOKOP	;KS-10 N/A
	MTROP	;KS-10 N/A

	CINVAL	;KS-10 N/A
	CFLUSH	;KS-10 N/A
	CWRTBI	;KS-10 N/A

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

	ENDUUO	;END OF PROGRAM PASS

	EOPUUO	;END OF PROGRAM
					MAINDEC-10-DSQDA.TXT (SUBSM)
6.2	CONTROL REGISTERS, WORDS		PAGE 25                                                                    SEQ 0026
	------------------------

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

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

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

	SM10 =		PROCESSOR TYPE FLAG, 0 = NOT KS-10
					    -1 = KS-10

	CONSW =		CONSOLE SWITCH SETTINGS

	ITRCNT =	EXEC - STANDALONE - NOT USED, RUN FOREVER
			EXEC - CHAIN - RUN ITERATIONS FROM SCRIPT
			USER - STANDALONE - RUN 'ITERAT' # OF ITERATIONS
			USER - CHAIN - RUN ITERATIONS FROM SCRIPT

	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
					MAINDEC-10-DSQDA.TXT (SUBSM)
6.2	CONTROL REGISTERS, WORDS (CON'T)	PAGE 26                                                                    SEQ 0027
	------------------------

	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

	MAPNEW =	MEMORY MAPPING CONTROL FLAG
				0 = DIRECT ADDRESSING ONLY
			       -1 = 1024K PAGED OPERATIONS
			FLAG MUST BE SET TO -1 BEFORE "PGMINT" TO GET
			1024K PAGED 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-DSQDA.TXT (SUBSM)
6.3	SUBROUTINE MISC.			PAGE 28                                                                    SEQ 0028
	----------------

	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 KS-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	SMBER	;SM10 INTERRUPT WITHOUT DOORBELL
	1015	SMCER	;SM10 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-DSQDA.TXT (SUBSM)
						PAGE 28                                                                    SEQ 0029

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-DSQDA.TXT (SUBSM)
(7.1 CONT'D)					PAGE 29                                                                    SEQ 0030

	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-DSQDA.TXT (SUBSM)
						PAGE 30                                                                    SEQ 0031

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-DSQDA.TXT (SUBSM)
						PAGE 31                                                                    SEQ 0032
(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-DSQDA.TXT (SUBSM)
						PAGE 32                                                                    SEQ 0033

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-DSQDA.TXT (SUBSM)
						PAGE 33                                                                    SEQ 0034

	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-DSQDA.TXT (SUBSM)
						PAGE 34                                                                    SEQ 0035
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-DSQDA.TXT (SUBSM)
						PAGE 35                                                                    SEQ 0036

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-DSQDA.TXT (SUBSM)
	     					PAGE 36                                                                    SEQ 0037

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 DECSYSTEM 2020 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  LISTINGS
      --------
		HISTORY FILE FOR SUBSM                                                                                     SEQ 0038
		----------------------

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

CODE:		MAINDEC-10-SUBSM

TITLE:		DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE PROGRAM

VERSION:	0.3

DATE:		JUNE 1979

REASON:		REVISED TO REMOVE "PNTLPT" SWITCH FROM EXEC MODE BECAUSE
		THERE IS NOT CODE ROOM TO SUPPORT THE LINE PRINTER.
---------------------------------------------------------------

VERSION:	0.2

DATE:		DECEMBER 1978

REASON:		REVISED TO FREE LOCATIONS 1000 TO 1777 FOR THE CONSOLE
		UCODE AND PRE-BOOT LOAD AREAS AND ALLOW THIS AREA TO BE
		USED FOR POWER-FAIL RECOVERY WITHOUT CLOBBERING
		THE SUBROUTINE PROGRAM.
		CORRECTED POWER FAIL RECOVERY
---------------------------------------------------------------

VERSION:	0.1

DATE:		APRIL 1978

REASON:		ORIGINAL RELEASE OF THIS PROGRAM FOR KS-10.
---------------------------------------------------------------
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 1             
                                                                                                                           SEQ 0039




















				   DOCUMENT
				**************
       SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^
				**************

















		    COPYRIGHT 1979
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 2             
                                                                                                                           SEQ 0040

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


	24	SPECIAL ASSEMBLY PARAMETERS

	129	CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978

	164	PROGRAM/SUBROUTINE PARAMETERS

	366	ERROR HANDLING UUO DEFINITIONS

	404	STANDARD PROGRAM ASSIGNMENTS

	864	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978

	1192	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL

	1400	*CONTRL* UUO HANDLING SUBROUTINE

	1605	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER

	1927	PROCESSOR TYPE DETERMINATION

	1980	"DIAMON" FILE SELECTION & READ

	2025	PROGRAM HALTS

	2076	PROGRAM NAME PRINTER

	2126	*SUBRTN* INTERRUPT HANDLING ROUTINES

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

	2463	*SUBRTN* MEMORY CONTROL

	3041	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE

	3255	*SUBRTN* TELETYPE INPUT ROUTINES

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

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

	3705	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE

	3743	*SUBRTN* PRINT SUBROUTINES
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 3             
                                                                                                                           SEQ 0041

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


	4155	*SUBRTN*  CHARACTER OUTPUT ROUTINES

	4388	COMMUNICATION ROUTINES

	4860	*STOR* RESERVED STORAGE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 4             
                                                                                                                           SEQ 0042
		1	MAINDEC-10-DSQDA (SUBSM)

		17	COPYRIGHT 1978, 1979
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS.

		21	JOHN R. KIRCHOFF

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

		26	ASSEMBLY PARAMETERS

		55	A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE

		59	DEFINITIONS USED BY THE SUBROUTINE PACKAGE

		73	SM10 EPT COMMUNICATION AREA

		89	CONSOLE TTY COMMUNICATION

		*****************************************************************
	129	CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978
		*****************************************************************

		134	DATA SWITCHES
			LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
			AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS

		*****************************************************************
	164	PROGRAM/SUBROUTINE PARAMETERS
		*****************************************************************

		167	SPECIAL SUBPROGRAM LINKAGES

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

		210	SUBROUTINE INITIALIZATION CALL

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

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

		239	TERMINAL OUTPUT UUO'S.

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 5             
                                                                                                                           SEQ 0043
		305	SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
				CONSERVES CORE OVER ASCIZ

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

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

		322	KS-10 CACHE OPERATION UUO'S

		327	END OF PASS/PROGRAM UUOS

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

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

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

		357	"DIAMON" FILE SELECTION AND READ UUOS

		*****************************************************************
	366	ERROR HANDLING UUO DEFINITIONS
		*****************************************************************

		369	ERROR HANDLER PARAMETERS

		378	THE ERROR HANDLER MACROS

		380	A MACRO TO REPORT AN ERROR AND LOOP

		391	A MACRO TO REPORT AN ERROR AND NOT LOOP

		*****************************************************************
	404	STANDARD PROGRAM ASSIGNMENTS
		*****************************************************************

		407	ACCUMULATORS

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

		431	PDP-10 STANDARD ADDRESS ASSIGNMENTS

		438	JOB DATA AREA EXTERNALS (OLD DEFINITIONS)

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 6             
                                                                                                                           SEQ 0044
		456	JOB DATA AREA EXTERNALS (NEW DEFINITIONS)

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

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

		495	PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS

		502	PDP-10 STANDARD APR CONO ASSIGNMENTS

		508	PDP-10 STANDARD PI CONO ASSIGNMENTS

		519	PDP-10 STANDARD PI CONI ASSIGNMENTS

		525	PDP-10 STANDARD PI CHANNEL ASSIGNMENTS

		537	KS10 CONO APR 000 ASSIGMENTS

		575	KS10 CONI APR 000 ASSIGMENTS (LEFT HALF)

		585	KS10 CONI APR 000 ASSIGMENTS (RIGHT HALF)

		602	KS10 DATAO APR 000 ASSIGMENTS (LEFT HALF)

		612	KS10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)

		617	KS10 DATAI APR 000 ASSIGMENTS (LEFT HALF)

		627	KS10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)

		633	KS10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)

		640	KS10 BLKI APR 000 ASSIGMENTS

		648	KS10 CONO PI 004 ASSIGMENTS

		668	KS10 CONI PI 004 ASSIGMENTS (LEFT HALF)

		680	KS10 CONI PI 004 ASSIGMENTS (RIGHT HALF)

		699	KS10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)

		708	KS10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)

		714	KS10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)

		723	KS10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 7             
                                                                                                                           SEQ 0045
		729	KS10 CONO PAG 010 ASSIGMENTS

		738	KS10 CONI PAG 010 ASSIGMENTS

		747	KS10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)

		751	KS10 EXEC PAGE MAP PAGE ASSIGNMENTS

		766	KS10 USER PAGE MAP PAGE ASSIGNMENTS

		795	KS10 I/O INSTRUCTIONS

		826	KS10 UNIBUS I/O INSTRUCTIONS

		843	KS10 UNIBUS BIT NUMBERS

		*****************************************************************
	864	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978
		*****************************************************************

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

		902	PROGRAM FIXED PARAMETER AREA

		922	PROGRAM VARIABLE PARAMETER AREA

		942	SPECIAL PROGRAM DISPATCH ADDRESSES

		973	PROCESSOR CONTROL STORAGE

		993	UUO DISPATCH TABLE

		1013	MEMORY MANAGMENT STORAGE

		1023	PRINT CONTROL STORAGE

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

		1077	USER MODE OUTPUT FILE INFORMATION

		1086	DISK UPDATE MODE FILE INFORMATION

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 8             
                                                                                                                           SEQ 0046
		1094	PUSHDOWN LIST CONTROL INFORMATION

		1102	POWER LINE CLOCK FREQUENCY FLAG

		1108	KL10 CACHE CONTROL FLAGS

		1115	NUMBER INPUT DIGIT FLAG

		1121	KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION

		1127	ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS

		1135	SPECIAL USERS UUO INTERCEPT INSTRUCTION

		1140	USER MODE MONITOR TYPE FLAG

		1146	SPECIAL USERS MUUO INTERCEPT INSTRUCTION

		1152	SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION

		1158	"SWITCH" CALL USAGE CONTROL

		1164	SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS

		1171	SM10 (KS-10) PROCESSOR TYPE FLAG

		1177	RIGHT HALF SWITCHES PROMPT TABLE ADDRESS

		1183	SPECIAL FUTURE EXPANSION ROOM

		1187	END OF FIXED STORAGE

		*****************************************************************
	1192	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
		*****************************************************************

		1197	SPECIAL SUBPROGRAM LINKAGES

		1216	LOAD COPY OF START PARAMETERS AT 1000 TO 1020

		1241	INITIALIZE THE SUBROUTINE PACKAGE

		1263	SPECIAL SUBROUTINE ONLY INITIALIZATION

		1295	CONTRL* SUBROUTINE PACKAGE INITIALIZATION

		1312	INITIALIZE PROCESSOR FLAGS AND PUSH LIST

		1333	INITIALIZE SUBROUTINES

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 9             
                                                                                                                           SEQ 0047
		1354	$MODCK -- 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.

		1384	 $MAPEX - SM10 0 TO 112K PAGE MAP SETUP
				    0 TO 112K POINTS TO ITSELF

		*****************************************************************
	1400	*CONTRL* UUO HANDLING SUBROUTINE
		*****************************************************************

		1403	UUO INITIALIZATION

		1414	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

		1468	UUO ERROR EXIT ROUTINE

		1498	MONITOR UUO ERROR EXIT ROUTINE

		1517	DECODE ROUTINE FOR SUBROUTINE UUO'S (037)

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

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

		1616	ERROR LOOPING ROUTINE
			EITHER CONTINUES IN-LINE
			OR TRANSFERS TO E FIELD OF UUO
			CHECKS PC OF ERROR TO DETERMINE LOOPING

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

		1672	COMMON ERROR HANDLER AC SAVE/RESTORE

		1687	ERROR REPORTING ROUTINE

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 10            
                                                                                                                           SEQ 0048
		1714	BYPASS ERROR REPORT IF NOPNT SWITCH IS SET

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

		1797	AC1 NOW CONTAINS THE CORRECT TEST RESULTS.

		1822	AC1 CONTAINS THE ACTUAL TEST RESULTS.

		1841	PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.

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

		1884	EXECUTE HALT IF SWITCH ERSTOP SET.

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

		1904	RING TTY BELL IF DING SWITCH IS SET.

		1911	RETURN TO ERROR CALL ADDRESS+1

		*****************************************************************
	1927	PROCESSOR TYPE DETERMINATION
		*****************************************************************

		*****************************************************************
	1980	"DIAMON" FILE SELECTION & READ
		*****************************************************************

		2006	"DIAMON" FILE READ

		*****************************************************************
	2025	PROGRAM HALTS
		*****************************************************************

		2028	SUBROUTINE ERROR HALT

		2052	FATAL PROGRAM ERROR HALT

		*****************************************************************
	2076	PROGRAM NAME PRINTER
		*****************************************************************

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 11            
                                                                                                                           SEQ 0049
		*****************************************************************
	2126	*SUBRTN* INTERRUPT HANDLING ROUTINES
		*****************************************************************

		2129	PUSH DOWN LIST EXCESSIVE POPJ ROUTINE

		2137	INTERRUPT ROUTINE INITIALIZATION

		2155	DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES

		2180	COMMON INTERRUPT HANDLERS

		2190	PRINT CAUSE AND OTHER PERTINENT INFO

		2216	COMMON INTERRUPT ROUTINE

		2229	RESTORE PROCESSOR ON POWER FAIL RESTART

		2296	SM10 PUSHDOWN OVERFLOW TRAP ROUTINE

		2305	SM10 PAGE FAIL TRAP ROUTINE

		2319	SM10 TRAP 3 ROUTINE

		2329	SM10 COMMON TRAP & MMUO SETUP

		2349	SM10 INTERRUPT ROUTINE

		2378	SM10 INTERRUPT AND TRAP INITIALIZATION

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

		2430	END OF PASS ROUTINE

		2453	END OF PROGRAM ROUTINE

		*****************************************************************
	2463	*SUBRTN* MEMORY CONTROL
		*****************************************************************

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

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 12            
                                                                                                                           SEQ 0050
		2478	EXEC MODE MEMORY MAPPING

		2507	MEMORY MAPPING CONTROL
			MAP 1024K, 256K, 112K OR 256K SPECIAL USER

		2547	COMBINE EXISTENT CHUNKS FROM MAPCNK
			PUT POINTERS IN MEMSIZ TABLE

		2589	"MAPCNK" MEMORY CHUNK MAPPER
			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

		2623	NON-X-MEMORY SEGMENT MAPPER

		2640	RESTORE OVERALL SYSTEM STATUS AFTER MAPPING

		2663	EXISTANT MEMORY MAPPER

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

		2701	"MAPSET" SETUP SM10 PAGE MAP 
			FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
			ARGUMENTS PASSED IN AC0:
						NEG - CLEAR PAGE MAP
						0-7 - MAP CORRESPONDING 128K SEGMENT

		2732	"MEMSEG" ## MAPNEW = -1 ##
			SETS UP TO 128K SEGMENT IN PAGE MAP
			ARGUMENTS:	0-7 - MAP CORRESPONDING 128K SEGMENT
					10-37 - DOES NOT EXIST ON SM-10
					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

		2762	SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE

		2805	EXIT FROM MEMSEG ROUTINE

		2826	PHYSICAL CORE ASSIGNMENT

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 13            
                                                                                                                           SEQ 0051
		2863	"MEMSEG" ## MAPNEW = 0 ##
			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

		2898	"MEMZRO"
			ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
			MAPNEW = 0	 DIRECT MEMORY ZERO
				 =-1	 1024K SM10 PAGED MEMORY ZERO

		2941	"MAPADR" CONV VIRT ADDR TO PHYS ADDR
			VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
			SKIP RETURN IS NORMAL, NON-SKIP RETURN IS SM10 PAGE INACCESSIBLE

		2973	PRINT MEMORY MAP

		*****************************************************************
	3041	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
		*****************************************************************

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

		3063	SWITCH INITIALIZATION ROUTINE

		3159	PROMPT FOR SWITCHES

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

		*****************************************************************
	3255	*SUBRTN* TELETYPE INPUT ROUTINES
		*****************************************************************

		3258	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

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 14            
                                                                                                                           SEQ 0052
			$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
			$TALTM =	KEYBOARD, ALT-MODE CHECK
			$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS

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

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

		3405	TTICHR
			TELETYPE INPUT OPERATOR RESPONSE ROUTINE

		3420	TTALTM
			TELETYPE ALT-MODE CHECK ROUTINE

		3470	TELETYPE INPUT CHARACTER ROUTINE 

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

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

		3542	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

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

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

		3609	INPUT AND COMPUTE NUMBER

		3633	CHECK FOR PROPER AMOUNT OF CHARACTERS

		3658	NUMBER COMPUTING CONSTANTS

		3681	CONVERT CONVERSION ROUTINE

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 15            
                                                                                                                           SEQ 0053
		*****************************************************************
	3705	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
		*****************************************************************

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

		*****************************************************************
	3743	*SUBRTN* PRINT SUBROUTINES
		*****************************************************************

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

		3756	PRINT SUBROUTINE INITIALIZATION

		3794	PRINT SUBROUTINE ENTRY POINT
			EXIT VIA $PNTI4 BELOW

		3814	PRINT ROUTINE EXIT

		3827	PRINT LIMIT WARNING & ALTERNATE EXIT PATH

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

		3881	SIXBIT PRINT SUBROUTINE
			PRINTS SIXBIT WORD IN AC0

		3886	NORMAL PRINTOUT

		3900	FORCED PRINTOUT

		3913	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

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

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

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 16            
                                                                                                                           SEQ 0054
		4059	OCTAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

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

		4101	PRINTS ASCII WHOSE ADDRESS IS IN AC0

		4120	DECIMAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

		*****************************************************************
	4155	*SUBRTN*  CHARACTER OUTPUT ROUTINES
		*****************************************************************

		4158	OUTPUT CONTROL ROUTINE

		4254	DIRECT TERMINAL OUTPUT

		4335	ALT-MODE TRANSFER TO USER ROUTINE

		4348	RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT

		4355	TELETYPE TABS CONVERSION

		4370	SM-10 EXEC MODE TELETYPE DRIVER ROUTINE

		*****************************************************************
	4388	COMMUNICATION ROUTINES
		*****************************************************************

		4391	$$C - COMM SAVE AC1 - AC5

		4403	$$CE2 - DOUBLE SKIP RETURN

		4409	$$CE1 - SINGLE SKIP RETURN

		4415	$$CE - NO SKIP RETURN

		4425	COMACK - COMMUNICATION ACKNOWLEDGE

		4434	COMNAK - COMMUNICATION NEGATIVE ACKNOWLEDGE

		4442	COMCMD - COMMUNICATION COMMAND

		4501	COMSND - COMMUNICATION SEND

		4549	COMRTRY - COMMUNICATION RETRY

SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^         DECDOC VER  00.24   13-JUN-79 16:33:59   PAGE 17            
                                                                                                                           SEQ 0055
		4557	COMCTL - COMMUNICATION CONTROL

		4585	COMLIN - COMMUNICATION LINE

		4684	COMQ - HOST ERROR, PRINT ERROR REPLY

		4699	COMINI - COMMUNICATION INITIALIZE

		4736	COMENQ - COMMUNICATION ENQUIRY

		4769	COMEOT - COMMUNICATION END OF TRANSMISSION

		4779	COMCLR - COMMUNICATION CLEAR

		4792	COMBELL - COMMUNICATIONS BELL

		4811	COMASC - COMMUNICATION ASCIIZE

		4819	COMERR, COMMUNICATIONS ERROR REPORTER

		*****************************************************************
	4860	*STOR* RESERVED STORAGE
		*****************************************************************
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1
SUBSMT	MAC	13-Jun-79 16:25		CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978                                        SEQ 0056

     1					;*MAINDEC-10-DSQDA (SUBSM)
     2
     3			000000		MCNVER=0
     4			000003		DECVER=3
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3^
    13
    14	000137					LOC	137
    15	000137	000000	000003		MCNVER,,DECVER
    16
    17					;*COPYRIGHT 1978, 1979
    18					;*DIGITAL EQUIPMENT CORPORATION
    19					;*MARLBORO, MASS.
    20
    21					;*JOHN R. KIRCHOFF
    22
    23						NOSYM
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 2
SUBSMT	MAC	13-Jun-79 16:25		SPECIAL ASSEMBLY PARAMETERS                                                        SEQ 0057

    24					SUBTTL	SPECIAL ASSEMBLY PARAMETERS
    25
    26					;*ASSEMBLY PARAMETERS
    27
    28			000001		MEMMAP==1
    29			000001		PGMEND==1
    30			000001		EXCASB==1
    31			000001		USRASB==1
    32			000000		DEBUG==00
    33			030000		SADR1=BEGIN
    34			030000		SADR2=BEGIN
    35			030000		SADR3=BEGIN
    36			030061		SADR4=$BEND2
    37			030000		SADR5=BEGIN
    38			030007		SADR6=DDTSRT
    39			030000		SADR7=BEGIN
    40			030000		SADR8=BEGIN
    41			030000		SADR9=BEGIN
    42			030000		SADR10=BEGIN
    43			030000		SADR11=BEGIN
    44
    45		123456	123456		PAREA1=123456,,123456
    46			000000		PAREA2=0
    47		636542	635500		PAREA3=SIXBIT/SUBSM/
    48		645560	000000		PAREA4=SIXBIT/TMP/
    49			000000		PAREA5=0
    50			000000		PAREA6=0
    51			000001		ITERAT=1
    52
    53			000001		$PAPER==1
    54
    55					;*A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
    56
    57					DEFINE	$MDSXB	(A,B)<
    58						<SIXBIT/A/>!B		;A DEVICE CODE IS B>
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 3
SUBSMT	MAC	13-Jun-79 16:25		SPECIAL ASSEMBLY PARAMETERS                                                        SEQ 0058

    59					;*DEFINITIONS USED BY THE SUBROUTINE PACKAGE
    60					S^;*********************************************************************^
    61
    62			000000		AC0=	0
    63			000001		AC1=	1
    64			000002		AC2=	2
    65			000003		AC3=	3
    66			000004		AC4=	4
    67			000005		AC5=	5
    68			030000		DIAGNOS=30000		;PDP-10 DIAGNOSTIC START ADDRESS
    69			010000		DDT=	10000		;PDP-10 DDT START ADDRESS
    70			020000		DIAMON=	20000		;PDP-10 DIAMON LOADER START ADDRESS
    71			020007		DIASWS=	20007		;DIAMON LH SWITCHES
    72
    73					;*SM10 EPT COMMUNICATION AREA
    74					S^;*********************************************************************^
    75
    76			000440		$STD=	440		;PDP-10 DIAGNOSTIC START ADDRESS
    77			000441		$DDT=	441		;PDP-10 DDT START ADDRESS
    78			000442		$STL=	442		;PDP-10 LOADER START ADDRESS
    79			000443		$STM=	443		;PDP-10 MONITOR START ADDRESS
    80
    81			000031		$80STAT=31		;8080 STATUS WORD
    82		000020	000000		$80MM=	1B13		;MAINTENANCE MODE BIT
    83			000032		$80CIW=	32		;8080 TO KS-10 INPUT WORD
    84			000033		$80COW=	33		;KS-10 TO 8080 OUTPUT WORD
    85			000034		$80KIW=	34		;8080 TO KS-10 INPUT WORD - KLINIK
    86			000035		$80KOW=	35		;KS-10 TO 8080 OUTPUT WORD - KLINIK
    87			000400		$80CHR=	1B27		;CHAR AVAILABLE BIT
    88			012000		$80INT=	012000		;INTERRUPT 8080
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 4
SUBSMT	MAC	13-Jun-79 16:25		SPECIAL ASSEMBLY PARAMETERS                                                        SEQ 0059

    89					;*CONSOLE TTY COMMUNICATION
    90					S^;*********************************************************************^
    91
    92		264000	004712		OPDEF	CTYINI	[JSR	$TYINI]		;INITIALIZATION
    93		264000	004724		OPDEF	CTYCLR	[JSR	$TYCLR]		;CLEAR
    94
    95		264000	004726		OPDEF	CTYTYI	[JSR	$CYTYI]		;CTY INPUT
    96		264000	005002		OPDEF	CTYTYO	[JSR	$CYTYO]		;CTY OUTPUT
    97
    98		264000	004737		OPDEF	KTYTYI	[JSR	$KYTYI]		;KLINIK INPUT
    99		264000	005015		OPDEF	KTYTYO	[JSR	$KYTYO]		;KLINIK OUTPUT
   100
   101		264000	004750		OPDEF	BTYTYI	[JSR	$BYTYI]		;BOTH INPUT
   102		264000	005030		OPDEF	BTYTYO	[JSR	$BYTYO]		;BOTH OUTPUT
   103
   104		264000	004763		OPDEF	COMTYI	[JSR	,$COMTI]	;COMM INPUT
   105		264000	005037		OPDEF	COMTYO	[JSR	,$COMTO]	;COMM OUTPUT
   106
   107		260740	006351		OPDEF	COMCMD	[PUSHJ 17,$COMCMD]	;COMM COMMAND
   108
   109		260740	006460		OPDEF	COMRTRY	[PUSHJ 17,$COMRTRY]	;COMM RETRY
   110
   111		260740	006663		OPDEF	COMENQ	[PUSHJ 17,$COMENQ]	;COMM ENQUIRY
   112
   113		260740	006710		OPDEF	COMEOT	[PUSHJ 17,$COMEOT]	;COMM END OF TRANSMISSION
   114
   115		260740	006506		OPDEF	COMLIN	[PUSHJ 17,$COMLIN]	;COMM LINE INPUT
   116
   117		260740	006417		OPDEF	COMSND	[PUSHJ 17,$COMSND]	;COMM LINE OUTPUT
   118
   119		260740	006342		OPDEF	COMACK	[PUSHJ 17,$COMACK]	;COMM ACK
   120		260740	006346		OPDEF	COMNAK	[PUSHJ 17,$COMNAK]	;COMM NEGATIVE ACK
   121
   122		260740	006714		OPDEF	COMCLR	[PUSHJ 17,$COMCLR]	;COMM CLEAR
   123
   124		260740	006463		OPDEF	COMCTL	[PUSHJ 17,$COMCTL]	;COMM CONTROL SEQUENCE
   125
   126		260740	006723		OPDEF	COMBELL	[PUSHJ 17,$COMBELL]	;COMM BELL
   127
   128		260740	006631		OPDEF	COMINI	[PUSHJ 17,$COMINI]	;COMM INITIALIZE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1
PARAM	KSM	28-Mar-78 11:27		CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978                                        SEQ 0060

   129					SUBTTL	CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978
   130
   131					DEFINE	S,<;*********************************************************************>
   132
   133					S^;*********************************************************************^
   134					;*DATA SWITCHES
   135					;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
   136					;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
   137					S^;*********************************************************************^
   138
   139			400000		ABORT==	400000			;ABORT PROGRAM ON PASS COMPLETION
   140			200000		RSTART==200000			;RESTART TEST, PRINT TOTALS
   141			100000		TOTALS==100000			;PRINT TOTALS, CONTINUE
   142
   143			040000		NOPNT==	040000			;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
   144			020000		PNTLPT==020000			;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
   145			010000		DING==	010000			;RING BELL ON ERROR
   146
   147			004000		LOOPER==004000			;ENTER EXERCISE/CHECK LOOP ON ERROR
   148			002000		ERSTOP==002000			;HALT ON TEST ERROR
   149			001000		PALERS==001000			;PRINT ALL ERRORS
   150
   151			000400		RELIAB==000400			;RELIABILITY MODE
   152			000200		TXTINH==000200			;INHIBIT ERROR TEXT
   153			000100		INHPAG==000100			;INHIBIT PAGING
   154
   155			000040		MODDVC==000040			;MODIFY DEVICE CODE
   156			000020		INHCSH==000020			;INHIBIT CACHE
   157			000010		OPRSEL==000010			;OPERATOR SELECTION
   158
   159			000004		CHAIN==	000004			;CHAIN CONTROL SWITCH
   160
   161									;SWITCH 16 RESERVED
   162
   163									;SWITCH 17 RESERVED !!!
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 2
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0061

   164					SUBTTL	PROGRAM/SUBROUTINE PARAMETERS
   165
   166					S^;*********************************************************************^
   167					;*SPECIAL SUBPROGRAM LINKAGES
   168					S^;*********************************************************************^
   169
   170			027772		FSELNK=	27772	;FILE SELECT LINK
   171			027773		FRDLNK=	27773	;FILE READ LINK
   172			027774		LDLNK=	27774	;LOAD LINKAGE ADDRESS
   173			027775		DDTLNK=	27775	;DDT LINKAGE ADDRESS
   174			027776		MODLNK=	27776	;OPERATIONAL MODE CHECK LINKAGE ADDRESS
   175			027777		SUBLNK=	27777	;SUBROUTINE LINKAGE ADDRESS
   176
   177					S^;*********************************************************************^
   178					;*SPECIAL SUBROUTINE FATAL HALTS
   179					;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
   180					S^;*********************************************************************^
   181
   182					;ADDRESS   TAG	REASON
   183					;---------------------
   184
   185					; 1010 	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
   186					; 1011  PLERR	;FATAL PUSH LIST POINTER ERROR
   187					; 1012  PLERR1	;INITIAL PUSH LIST POINTER ERROR
   188					; 1013  MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
   189					; 1014  SMBER	;KS-10 INTERRUPT WITHOUT DOORBELL
   190					; 1015  SMCER	;KS-10 CLOCK INTERRUPT WITHOUT FLAG SET
   191					; 1016  CPIERR	;CPU INITIALIZATION ERROR
   192					; 1017  EOPERR	;END OF PROGRAM ERROR
   193					; 1020  LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT
   194
   195					S^;*********************************************************************^
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 3
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0062

   196					S^;*********************************************************************^
   197					;OPERATOR DEFINITIONS (NON-UUO'S)
   198					S^;*********************************************************************^
   199
   200		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
   201		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
   202		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
   203		262740	000000		OPDEF	GET	[POP	P,]	;GET DATA FROM PUSH LIST 
   204		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
   205		254200	000000		OPDEF	HALT	[JRST	4,]	;DEFINITION FOR DDT
   206		254100	000000		OPDEF	JRSTF	[JRST	2,]	;DEFINITION FOR DDT
   207		254500	000000		OPDEF	JEN	[JRST	12,]	;DEFINITION FOR DDT
   208
   209					S^;*********************************************************************^
   210					;*SUBROUTINE INITIALIZATION CALL
   211					S^;*********************************************************************^
   212
   213		265000	030011		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
   214
   215					S^;*********************************************************************^
   216					;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
   217					S^;*********************************************************************^
   218
   219		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
   220		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
   221
   222					S^;*********************************************************************^
   223					;*TERMINAL INPUT UUO'S
   224					;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
   225					;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
   226					S^;*********************************************************************^
   227
   228		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
   229		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
   230		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
   231		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
   232		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
   233		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
   234		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
   235		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
   236		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
   237		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
   238		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 4
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0063

   239					;*TERMINAL OUTPUT UUO'S.
   240
   241		037000	000000		OPDEF	PNTA	[37B8!0B12!0]	;PRINT ASCII WORD
   242		037000	000001		OPDEF	PNTAF	[37B8!0B12!1]	;PRINT ASCII WORD FORCED
   243		037740	000000		OPDEF	PNTAL	[37B8!17B12!0]	;PRINT ASCIZ LINE
   244		037740	000001		OPDEF	PNTALF	[37B8!17B12!1]	;PRINT ASCIZ LINE FORCED
   245		037600	000003		OPDEF	PSIXL	[37B8!14B12!3]	;PRINT SIXBIT'Z LINE
   246		037640	000003		OPDEF	PSIXLF	[37B8!15B12!3]	;PRINT SIXBIT'Z LINE FORCED
   247		037000	000000		OPDEF	PNTMSG	[37B8!0B12!0]	;PRINT MESSAGE IMMEDIATE
   248		037040	000000		OPDEF	PNTMSF	[37B8!1B12!0]	;PRINT MESSAGE IMMEDIATE FORCED
   249		037100	000000		OPDEF	PSIXM	[37B8!2B12!0]	;PRINT SIXBIT'Z MSG IMMEDIATE
   250		037200	000000		OPDEF	PSIXMF	[37B8!4B12!0]	;PRINT SIXBIT'Z MSG IMM FORCED
   251		037000	000000		OPDEF	PNTCI	[37B8!0B12!0]	;PRINT CHARACTER IMMEDIATE
   252		037040	000000		OPDEF	PNTCIF	[37B8!1B12!0]	;PRINT CHARACTER IMMEDIATE FORCED
   253		037500	000000		OPDEF	PNTCHR	[37B8!12B12!0]	;PRINT CHARACTER
   254		037500	000001		OPDEF	PNTCHF	[37B8!12B12!1]	;PRINT CHARACTER FORCED
   255		037040	000000		OPDEF	PNT1	[37B8!1B12!0]	;PRINT ONE OCTAL DIGIT
   256		037040	000001		OPDEF	PNT1F	[37B8!1B12!1]	;PRINT 1 OCTAL DIGIT FORCED	
   257		037100	000000		OPDEF	PNT2	[37B8!2B12!0]	;PRINT TWO OCTAL DIGITS
   258		037100	000001		OPDEF	PNT2F	[37B8!2B12!1]	;PRINT 2 OCTAL DIGITS FORCED	
   259		037140	000000		OPDEF	PNT3	[37B8!3B12!0]	;PRINT THREE OCTAL DIGITS
   260		037140	000001		OPDEF	PNT3F	[37B8!3B12!1]	;PRINT THREE OCTAL DIGITS FORCED	
   261		037200	000000		OPDEF	PNT4	[37B8!4B12!0]	;PRINT FOUR OCTAL DIGITS
   262		037200	000001		OPDEF	PNT4F	[37B8!4B12!1]	;PRINT FOUR OCTAL DIGITS FORCED
   263		037240	000000		OPDEF	PNT5	[37B8!5B12!0]	;PRINT FIVE OCTAL DIGITS
   264		037240	000001		OPDEF	PNT5F	[37B8!5B12!1]	;PRINT FIVE OCTAL DIGITS FORCED
   265		037300	000000		OPDEF	PNT6	[37B8!6B12!0]	;PRINT SIX OCTAL DIGITS
   266		037300	000001		OPDEF	PNT6F	[37B8!6B12!1]	;PRINT SIX OCTAL DIGITS FORCED
   267		037340	000000		OPDEF	PNT7	[37B8!7B12!0]	;PRINT 7 OCTAL DIGITS
   268		037340	000001		OPDEF	PNT7F	[37B8!7B12!1]	;PRINT 7 OCTAL DIGITS FORCED
   269		037440	000000		OPDEF	PNT11	[37B8!11B12!0]	;PRINT 11 OCTAL DIGITS
   270		037440	000001		OPDEF	PNT11F	[37B8!11B12!1]	;PRINT 11 OCTAL DIGITS FORCED.
   271		037400	000000		OPDEF	PNTADR	[37B8!10B12!0]	;PRINT PHYSICAL ADDRESS
   272		037400	000001		OPDEF	PNTADF	[37B8!10B12!1]	;PRINT PHYSICAL ADDRESS FORCED
   273		037600	000000		OPDEF	PNTOCT  [37B8!14B12!0]	;PRINT FULL WORD OCTAL
   274		037600	000001		OPDEF	PNTOTF	[37B8!14B12!1]	;PRINT FULL WORD OCTAL FORCED
   275		037540	000000		OPDEF	PNTHW	[37B8!13B12!0]	;PRINT OCTAL HALF WORDS, 6 SP 6
   276		037540	000001		OPDEF	PNTHWF	[37B8!13B12!1]	;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
   277		037700	000003		OPDEF	PNTOCS	[37B8!16B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S
   278		037740	000003		OPDEF	PNTOCF	[37B8!17B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
   279		037640	000000		OPDEF	PNTDEC	[37B8!15B12!0]	;PRINT DECIMAL, SUPRESS LEADING 0'S
   280		037640	000001		OPDEF	PNTDCF	[37B8!15B12!1]	;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
   281		037700	000000		OPDEF	PNTDS	[37B8!16B12!0]	;PRINT DECIMAL, SPACES FOR LD 0'S
   282		037700	000001		OPDEF	PNTDSF	[37B8!16B12!1]	;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 5
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0064

   283		037200	000002		OPDEF	PNTNM	[37B8!4B12!2]	;PRINT PROGRAM NAME
   284		037000	000002		OPDEF	PNTSIX	[37B8!0B12!2]	;PRINT SIXBIT WORD
   285		037040	000002		OPDEF	PNTSXF	[37B8!1B12!2]	;PRINT SIXBIT WORD FORCED
   286		037240	000002		OPDEF	DROPDV	[37B8!5B12!2]	;CLOSE LOGICAL FILE, USER MODE
   287		037100	000002		OPDEF	PNTCW	[37B8!2B12!2]	;PRINT DF10 CONTROL WORD
   288		037140	000002		OPDEF	PNTCWF	[37B8!3B12!2]	;PRINT DF10 CONTROL WORD FORCED
   289		037000	030242		OPDEF	PCRL	[37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
   290		037040	030242		OPDEF	PCRLF	[37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
   291		037000	000040		OPDEF	PSP	[37B8!0B12!40]	;PRINT SPACE
   292		037040	000040		OPDEF	PSPF	[37B8!1B12!40]	;PRINT SPACE FORCED
   293		037000	030243		OPDEF	PCRL2	[37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
   294		037040	030243		OPDEF	PCRL2F	[37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
   295		037040	000007		OPDEF	PBELL	[37B8!1B12!7]	;PRINT TTY BELL
   296
   297		037040	000026		OPDEF	PFORCE	[37B8!1B12!26]	;PRINT FORCE, CONTROL O OVERRIDE
   298
   299					DEFINE	PMSG	(ARG),<
   300						PSIXM	[SIXBIT\ARG'_\]>
   301
   302					DEFINE	PMSGF	(ARG),<
   303						PSIXMF	[SIXBIT\ARG'_\]>
   304
   305					;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
   306					;*	CONSERVES CORE OVER ASCIZ
   307
   308					DEFINE	SIXBTZ	(ARG),<	[SIXBIT\ARG'_\]>
   309
   310					;*CONSOLE SWITCH INPUT UUO.
   311					;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
   312					;* USER MODE.
   313
   314		037400	000002		OPDEF	SWITCH	[37B8!10B12!2]	;INPUT CONSOLE SWITCHES
   315
   316					;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
   317					;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
   318
   319		037540	000004		OPDEF	CLOKOP	[37B8!13B12!4]	;CLOCK OPERATION UUO - CLOCK
   320		037200	000004		OPDEF	MTROP	[37B8!4B12!4]	;CLOCK OPERATION UUO - METER
   321
   322					;*KS-10 CACHE OPERATION UUO'S
   323
   324		037040	000004		OPDEF	CINVAL	[37B8!1B12!4]	;CACHE INVALIDATE
   325		037100	000004		OPDEF	CFLUSH	[37B8!2B12!4]	;CACHE FLUSH
   326		037140	000004		OPDEF	CWRTBI	[37B8!3B12!4]	;CACHE WRITE-BACK & INVALIDATE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 6
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0065

   327					;*END OF PASS/PROGRAM UUOS
   328
   329					;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
   330					;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
   331
   332		037500	000004		OPDEF	ENDUUO	[37B8!12B12!4]	;UUO TO DISPLAY LIGHTS
   333		037700	000004		OPDEF	EOPUUO	[37B8!16B12!4]	;END OF PROGRAM UUO
   334
   335					;*MEMORY MANAGEMENT UUO'S
   336					;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
   337					;*ADDRESS CONVERSION, ETC...
   338
   339		037000	000004		OPDEF	MAPMEM	[37B8!0B12!4]	;MAP MEMORY
   340		037500	000002		OPDEF	MEMZRO	[37B8!12B12!2]	;ZERO MEMORY
   341		037440	000002		OPDEF	MEMSEG	[37B8!11B12!2]	;SETUP MEMORY SEGMENT
   342		037540	000002		OPDEF	MAPADR	[37B8!13B12!2]	;VIRTUAL TO PHYSICAL ADR CONVERT
   343		037640	000002		OPDEF	MAPCNK	[37B8!15B12!2]	;MAP MEMORY CHUNK
   344		037600	000002		OPDEF	MAPSET	[37B8!14B12!2]	;SET KI10 EXEC PAGE MAP
   345		037740	000002		OPDEF	MAPPNT	[37B8!17B12!2]	;PRINT MEMORY MAP
   346
   347					;*DEVICE CODE MODIFICATION UUO
   348					;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
   349					;*IOT'S TO A DIFFERENT DEVICE CODE.
   350
   351		037340	000002		OPDEF	MODPCU	[37B8!7B12!2]	;MODIFY PERHIPERAL CODE, USER
   352		037300	000002		OPDEF	MODPCP	[37B8!6B12!2]	;MODIFY PERHIPERAL CODE, PROGRAM
   353
   354			030000			IFNDEF	MODDVL,<MODDVL==BEGIN>
   355			030000			IFNDEF	MODDVU,<MODDVU==BEGIN>
   356
   357					;*"DIAMON" FILE SELECTION AND READ UUOS
   358
   359		037240	000004		OPDEF	FSELECT	[37B8!5B12!4]	;FILE SELECTION
   360		037300	000004		OPDEF	FREAD	[37B8!6B12!4]	;FILE READ - ASCII DATA
   361		037340	000004		OPDEF	FRD36	[37B8!7B12!4]	;FILE READ - 36 BIT DATA
   362		037400	000004		OPDEF	FRD8	[37B8!10B12!4]	;FILE READ - 8 BIT DATA
   363
   364						XLIST
   365					IFNDEF	EROLD,<LIST
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 7
PARAM	KSM	28-Mar-78 11:27		ERROR HANDLING UUO DEFINITIONS                                                     SEQ 0066

   366					SUBTTL	ERROR HANDLING UUO DEFINITIONS
   367
   368					S^;*********************************************************************^
   369					;*ERROR HANDLER PARAMETERS
   370					S^;*********************************************************************^
   371
   372		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
   373		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
   374		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
   375		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
   376		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
   377
   378					;*THE ERROR HANDLER MACROS
   379
   380					;*A MACRO TO REPORT AN ERROR AND LOOP
   381
   382						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
   383												SALL
   384						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   385							   CORECT,,ACTUAL
   386							   [SIXBIT\D'_\],,ERR]
   387												XALL
   388						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
   389					>
   390
   391					;*A MACRO TO REPORT AN ERROR AND NOT LOOP
   392
   393						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
   394												SALL
   395						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   396							   CORECT,,ACTUAL
   397							   [SIXBIT\D'_\],,ERR]
   398												XALL>
   399
   400					>;END OF EROLD CONDITIONAL
   401
   402						XLIST
   403					IFDEF	$PAPER,<LIST>
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 8
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0067

   404					SUBTTL	STANDARD PROGRAM ASSIGNMENTS
   405
   406					S^;*********************************************************************^
   407					;*ACCUMULATORS
   408					S^;*********************************************************************^
   409
   410			000017		P=	17			;PUSHDOWN POINTER AC (IF PUSH LIST USED)
   411			000015		REPT==	15			;ERROR HANDLER REPEAT AC
   412			000016		REPT1==	16			; "
   413
   414					S^;*********************************************************************^
   415					;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
   416					S^;*********************************************************************^
   417
   418			400000		AROV==	400000			;ARITHMETIC OVERFLOW
   419			200000		CRY0==	200000			;CARRY 0
   420			100000		CRY1==	100000			;CARRY 1
   421			040000		FOV==	40000			;FLOATING POINT OVERFLOW
   422			020000		BIS==	20000			;BYTE INTERRUPT
   423			010000		USERF==	10000			;USER MODE
   424			004000		EXIOT==	4000			;USER PRIV I/O
   425			000400		TN0==	400			;TRAP NUMBER BIT 0
   426			000200		TN1==	200			;TRAP NUMBER BIT 1
   427			000100		FXU==	100			;FLOATING POINT UNDERFLOW
   428			000040		DCK==	40			;DIVIDE CHECK
   429
   430					S^;*********************************************************************^
   431					;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
   432					S^;*********************************************************************^
   433
   434			000040		LUUO==	40			;UUO STORAGE, UUO 1-37
   435			000041		LUUOI==	41			;UUO SERVICE INSTRUCTION
   436
   437					S^;*********************************************************************^
   438					;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
   439					S^;*********************************************************************^
   440
   441			000040		JOBUUO==40
   442			000041		JOB41==	41
   443			000044		JOBREL==44
   444			000074		JOBDDT==74
   445			000116		JOBSYM==116
   446			000117		JOBUSY==117
   447			000120		JOBSA==	120
   448			000121		JOBFF==	121
   449			000124		JOBREN==124
   450			000125		JOBAPR==125
   451			000126		JOBCNI==126
   452			000127		JOBTPC==127
   453			000130		JOBOPC==130
   454			000137		JOBVER==137
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 9
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0068

   455					S^;*********************************************************************^
   456					;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
   457					S^;*********************************************************************^
   458
   459			000040		.JBUUO==40
   460			000041		.JB41==	41
   461			000044		.JBREL==44
   462			000074		.JBDDT==74
   463			000116		.JBSYM==116
   464			000117		.JBUSY==117
   465			000120		.JBSA==	120
   466			000121		.JBFF==	121
   467			000124		.JBREN==124
   468			000125		.JBAPR==125
   469			000126		.JBCNI==126
   470			000127		.JBTPC==127
   471			000130		.JBOPC==130
   472			000137		.JBVER==137
   473
   474					S^;*********************************************************************^
   475					;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
   476					S^;*********************************************************************^
   477
   478			200000		PDLOVU==200000			;PUSHDOWN LIST OVERFLOW
   479			020000		MPVU==	20000			;MEMORY PROTECTION VIOLATION
   480			010000		NXMU==	10000			;NON-X-MEMORY
   481			004000		PARU==	4000			;PARITY ERROR
   482			001000		CLKU==	1000			;CLOCK
   483			000100		FOVU==	100			;FLOATING OVERFLOW
   484			000010		AROVU==	10			;ARITHMETIC OVERFLOW
   485
   486					S^;*********************************************************************^
   487					;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
   488					;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
   489					;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
   490					S^;*********************************************************************^
   491
   492			000017		$DEVCH==17			;LOGICAL DEVICE CHANNEL
   493
   494					S^;*********************************************************************^
   495					;*PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
   496					S^;*********************************************************************^
   497
   498			000010		PAG==	010		;PAGING I/O DEVICE CODE
   499
   500			000014		CCA==	014		;CACHE I/O DEVICE CODE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 10
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0069

   501					S^;*********************************************************************^
   502					;*PDP-10 STANDARD APR CONO ASSIGNMENTS
   503					S^;*********************************************************************^
   504
   505			200000		IOCLR==	200000			;CLEAR ALL I/O DEVICES
   506
   507					S^;*********************************************************************^
   508					;*PDP-10 STANDARD PI CONO ASSIGNMENTS
   509					S^;*********************************************************************^
   510
   511			010000		PICLR==	10000			;CLEAR PI SYSTEM
   512			004000		REQSET==4000			;SET PROGRAM PI REQUEST
   513			002000		CHNON==	2000			;TURN ON CHANNEL
   514			001000		CHNOFF==1000			;TURN OFF CHANNEL
   515			000400		PIOFF==	400			;TURN OFF PI SYSTEM
   516			000200		PION==	200			;TURN ON PI SYSTEM
   517
   518					S^;*********************************************************************^
   519					;*PDP-10 STANDARD PI CONI ASSIGNMENTS
   520					S^;*********************************************************************^
   521
   522			000200		PION==	200			;PI SYSTEM ON
   523
   524					S^;*********************************************************************^
   525					;*PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
   526					S^;*********************************************************************^
   527
   528			000100		PICHN1==100			;PI CHANNEL 1
   529			000040		PICHN2==40			;PI CHANNEL 2
   530			000020		PICHN3==20			;PI CHANNEL 3
   531			000010		PICHN4==10			;PI CHANNEL 4
   532			000004		PICHN5==4			;PI CHANNEL 5
   533			000002		PICHN6==2			;PI CHANNEL 6
   534			000001		PICHN7==1			;PI CHANNEL 7
   535			000177		PICHNA==177			;ALL PI CHANNELS, 1 THRU 7
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 11
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0070

   536					S^;*********************************************************************^
   537					;*KS10 CONO APR 000 ASSIGMENTS
   538					S^;*********************************************************************^
   539
   540			200000		LIOCLR==200000			;CLEAR ALL I/O DEVICES
   541			100000		LFLGEN==100000			;ENABLE SELECTED FLAG
   542			040000		LFLGDS==40000			;DISABLE SELECTED FLAG
   543			020000		LFLGCL==20000			;CLEAR SELECTED FLAG
   544			010000		LFLGST==10000			;SET SELECTED FLAG
   545			001000		LPWRFL==1000			;POWER FAIL FLAG
   546			000400		LNXMER==400			;NON-EXISTENT MEMORY FLAG
   547			000200		LPARER==200			;MB PARITY ERROR FLAG
   548			000100		LPSFT==	100			;SOFT MEMORY ERROR
   549			000040		LACLK==	40			;INTERVAL TIMER
   550			000007		LAPRP7==7			;APR PI CHANNEL 7
   551			000006		LAPRP6==6			;APR PI CHANNEL 6
   552			000005		LAPRP5==5			;APR PI CHANNEL 5
   553			000004		LAPRP4==4			;APR PI CHANNEL 4
   554			000003		LAPRP3==3			;APR PI CHANNEL 3
   555			000002		LAPRP2==2			;APR PI CHANNEL 2
   556			000001		LAPRP1==1			;APR PI CHANNEL 1
   557			101000		LEPWRF==101000			;ENABLE POWER FAIL
   558			041000		LDPWRF==041000			;DISABLE POWER FAIL
   559			021000		LCPWRF==021000			;CLR POWER FAIL
   560			011000		LSPWRF==011000			;SET POWER FAIL
   561			100400		LENXER==100400			;ENABLE NON-EXISTENT MEMORY
   562			040400		LDNXER==040400			;DISABLE NON-EXISTENT MEORY
   563			020400		LCNXER==020400			;CLR NON-EXISTENT MEMORY
   564			010400		LSNXER==010400			;SET NON-EXISTENT MEMORY
   565			100200		LEPAER==100200			;ENABLE PARITY ERRORS
   566			040200		LDPAER==040200			;DISABLE PARITY ERRORS
   567			020200		LCPAER==020200			;CLR PARITY ERROR
   568			010200		LSPAER==010200			;SET PARITY ERROR
   569			100100		LEPSFT==100100			;ENABLE SOFT MEMORY ERROR
   570			040100		LDPSFT==040100			;DISABLE SOFT MEMORY ERROR
   571			020100		LCPSFT==020100			;CLR SOFT MEMORY ERROR
   572			010100		LSPSFT==010100			;SET SOFT MEMORY ERROR
   573			121600		LAPRAL==121600			;CLR ALL ERROR FLAGS & ENABLE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 12
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0071

   574					S^;*********************************************************************^
   575					;*KS10 CONI APR 000 ASSIGMENTS (LEFT HALF)
   576					S^;*********************************************************************^
   577
   578			001000		LPWRFE==1000			;POWER FAILURES ENABLED
   579			000400		LNXMEN==400			;NON-EXISTENT MEMORY ERRORS ENABLED
   580			000200		LPAREN==200			;PARITY ERRORS ENABLED
   581			000100		LPSFTE==100			;SOFT MEMORY ERROR ENABLED
   582			000040		LACLKE==40			;INTERVAL TIMER ENABLED
   583
   584					S^;*********************************************************************^
   585					;*KS10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
   586					S^;*********************************************************************^
   587
   588			001000		LPWRFL==1000			;POWER FAIL FLAG
   589			000400		LNXMER==400			;NON-EXISTENT MEMORY FLAG
   590			000200		LPARER==200			;PARITY ERROR FLAG
   591			000100		LPSFTER==100			;SOFT MEMORY ERROR FLAG
   592			000007		LAPRP7==7			;APR PI CHANNEL 7
   593			000006		LAPRP6==6			;APR PI CHANNEL 6
   594			000005		LAPRP5==5			;APR PI CHANNEL 5
   595			000004		LAPRP4==4			;APR PI CHANNEL 4
   596			000003		LAPRP3==3			;APR PI CHANNEL 3
   597			000002		LAPRP2==2			;APR PI CHANNEL 2
   598			000001		LAPRP1==1			;APR PI CHANNEL 1
   599			000010		LINT==10			;APR INTERRUPT
   600
   601					S^;*********************************************************************^
   602					;*KS10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
   603					S^;*********************************************************************^
   604
   605			000400		LINSTF==400			;ADDRESS BREAK REQUEST FOR INST. FETCH
   606			000200		LDATAF==200			;ADDRESS BREAK REQUEST FOR DATA FETCH
   607			000100		LWRITE==100			;ADDRESS BREAK REQUEST FOR DATA WRITE
   608			000040		LUSCMP==40			;USER ADDRESS COMPARE
   609			000000		LEXCMP==0			;EXEC ADDRESS COMPARE
   610
   611					S^;*********************************************************************^
   612					;*KS10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
   613					S^;*********************************************************************^
   614
   615					;DATAO APR,ADDRESS SWITCHES=13-35
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 13
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0072

   616					S^;*********************************************************************^
   617					;*KS10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
   618					S^;*********************************************************************^
   619
   620			000400		LINSTF==400			;ADDRESS BREAK REQUEST FOR INST. FETCH
   621			000200		LDATAF==200			;ADDRESS BREAK REQUEST FOR DATA FETCH
   622			000100		LWRITE==100			;ADDRESS BREAK REQUEST FOR DATA WRITE
   623			000040		LUSCMP==40			;USER ADDRESS COMPARE
   624			000000		LEXCMP==0			;EXEC ADDRESS COMPARE
   625
   626					S^;*********************************************************************^
   627					;*KS10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
   628					S^;*********************************************************************^
   629
   630					;DATAI APR,ADDRESS SWITCHES=13-35
   631
   632					S^;*********************************************************************^
   633					;*KS10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
   634					S^;*********************************************************************^
   635
   636					;REFILL ALGORITHM BITS 18-20
   637					;REFILL ALGORITHM ADDRESS 27-33
   638
   639					S^;*********************************************************************^
   640					;*KS10 BLKI APR 000 ASSIGMENTS
   641					S^;*********************************************************************^
   642
   643					;MICRO-CODE OPTIONS = 0-8
   644					;MICRO-CODE VERSION NUMBER = 9-17
   645					;HARDWARE OPTIONS =18-20
   646					;PROCESSOR SERIAL NUMBER = 21-35
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 14
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0073

   647					S^;*********************************************************************^
   648					;*KS10 CONO PI 004 ASSIGMENTS
   649					S^;*********************************************************************^
   650
   651			020000		LRQCLR==20000			;DROP INTERRUPT ON SELECTED CHANNEL
   652			010000		LPICLR==10000			;CLEAR PI SYSTEM
   653			004000		LREQSE==4000			;REQUEST INTERRUPT ON SELECTED CHANNEL
   654			002000		LCHNON=2000			;TURN ON SELECTED CHANNEL
   655			001000		LCHNOF==1000			;TURN OFF SELECTED CHANNEL
   656			000400		LPIOFF==400			;TURN PI SYSTEM OFF
   657			000200		LPION==200			;TURN PI SYSTEM ON
   658			000100		LPICH1==100			;PI CHANNEL 1
   659			000040		LPICH2==40			;PI CHANNEL 2
   660			000020		LPICH3==20			;PI CHANNEL 3
   661			000010		LPICH4==10			;PI CHANNEL 4
   662			000004		LPICH5==4			;PI CHANNEL 5
   663			000002		LPICH6==2			;PI CHANNEL 6
   664			000001		LPICH7==1			;PI CHANNEL 7
   665			000177		LPICHA==177			;ALL PI CHANNELS
   666
   667					S^;*********************************************************************^
   668					;*KS10 CONI PI 004 ASSIGMENTS (LEFT HALF)
   669					S^;*********************************************************************^
   670
   671			000100		LPRCH1==100			;PROGRAM REQUEST ON CHANNEL 1
   672			000040		LPRCH2==40			;PROGRAM REQUEST ON CHANNEL 2
   673			000020		LPRCH3==20			;PROGRAM REQUEST ON CHANNEL 3
   674			000010		LPRCH4==10			;PROGRAM REQUEST ON CHANNEL 4
   675			000004		LPRCH5==4			;PROGRAM REQUEST ON CHANNEL 5
   676			000002		LPRCH6==2			;PROGRAM REQUEST ON CHANNEL 6
   677			000001		LPRCH7==1			;PROGRAM REQUEST ON CHANNEL 7
   678
   679					S^;*********************************************************************^
   680					;*KS10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
   681					S^;*********************************************************************^
   682
   683			040000		LPIIP1==40000			;PI IN PROGRESS ON CHANNEL 1
   684			020000		LPIIP2==20000			;PI IN PROGRESS ON CHANNEL 2
   685			010000		LPIIP3==10000			;PI IN PROGRESS ON CHANNEL 3
   686			004000		LPIIP4==4000			;PI IN PROGRESS ON CHANNEL 4
   687			002000		LPIIP5==2000			;PI IN PROGRESS ON CHANNEL 5
   688			001000		LPIIP6==1000			;PI IN PROGRESS ON CHANNEL 6
   689			000400		LPIIP7==400			;PI IN PROGRESS ON CHANNEL 7
   690			000200		LPION==200			;PI SYSTEM ON
   691			000100		LPICH1==100			;PI CHANNEL 1 ON
   692			000040		LPICH2==40			;PI CHANNEL 2 ON
   693			000020		LPICH3==20			;PI CHANNEL 3 ON
   694			000010		LPICH4==10			;PI CHANNEL 4 ON
   695			000004		LPICH5==4			;PI CHANNEL 5 ON
   696			000002		LPICH6==2			;PI CHANNEL 6 ON
   697			000001		LPICH7==1			;PI CHANNEL 7 ON
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 15
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0074

   698					S^;*********************************************************************^
   699					;*KS10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
   700					S^;*********************************************************************^
   701
   702			400000		LLACBL==400000			;LOAD AC BLOCKS
   703			100000		LLDUSB==100000			;LOAD USER BASE REGISTER
   704					;CURRENT AC BLOCKS BITS 6 - 8
   705					;PREVIOUS AC BLOCKS BITS 9 - 11
   706
   707					S^;*********************************************************************^
   708					;*KS10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
   709					S^;*********************************************************************^
   710
   711					;USER BASE REGISTER BITS 23 - 35
   712
   713					S^;*********************************************************************^
   714					;*KS10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
   715					S^;*********************************************************************^
   716
   717			400000		LLACBL==400000			;LOAD AC BLOCKS
   718			100000		LLDUSB==100000			;LOAD USER BASE REGISTER
   719					;CURRENT AC BLOCKS BITS 6 - 8
   720					;PREVIOUS AC BLOCKS BITS 9 - 11
   721
   722					S^;*********************************************************************^
   723					;*KS10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
   724					S^;*********************************************************************^
   725
   726					;USER BASE REGISTER BITS 25 - 35
   727
   728					S^;*********************************************************************^
   729					;*KS10 CONO PAG 010 ASSIGMENTS
   730					S^;*********************************************************************^
   731
   732			040000		LSMODE==40000			;SECTION MODE
   733			020000		LTRPEN==20000			;TRAP AND PAGE CACHE ENABLE
   734
   735					;EXEC BASE REGISTER = 25-35
   736
   737					S^;*********************************************************************^
   738					;*KS10 CONI PAG 010 ASSIGMENTS
   739					S^;*********************************************************************^
   740
   741			040000		LSECMO==40000			;SECTION MODE
   742			020000		LTRPAE==20000			;TRAP AND PAGE CACHE ENABLE
   743
   744					;EXEC BASE REGISTER = 25-35
   745
   746					S^;*********************************************************************^
   747					;*KS10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
   748					S^;*********************************************************************^
   749
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 16
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0075

   750					S^;*********************************************************************^
   751					;*KS10 EXEC PAGE MAP PAGE ASSIGNMENTS
   752					S^;*********************************************************************^
   753
   754			000100		UBAVEC==100			;UNIBUS VECTOR TABLE ADDRESS
   755
   756			000421		AROVTP==421			;ARITHMETIC TRAP
   757			000422		PDOVTP==422			;PUSHDOWN OVERFLOW TRAP
   758			000423		TRP3TP==423			;TRAP 3 TRAP
   759
   760			000510		LTBASH==510			;TIME-BASE, HI
   761			000511		LTBASL==511			;TIME-BASE, LO
   762			000512		LPRFMH==512			;PERFORMANCE ANAYLYSIS, HI
   763			000513		LPRFML==513			;PERFORMANCE ANAYLYSIS, LO
   764
   765					S^;*********************************************************************^
   766					;*KS10 USER PAGE MAP PAGE ASSIGNMENTS
   767					S^;*********************************************************************^
   768
   769			000421		AROVTP==421			;ARITHMETIC TRAP
   770			000422		PDOVTP==422			;PUSHDOWN OVERFLOW TRAP
   771			000423		TRP3TP==423			;TRAP 3 TRAP
   772
   773			000424		MUUO==	424			;MUUO STORAGE
   774			000425		MUUOPC==425			;C(PC) OF MUUO STORAGE
   775			000426		LCNTXT==426			;PROCESS CONTEXT WORD
   776
   777			000430		KNTRP==430			;KERNAL	 	NO TRAP - NEW PC'S-
   778			000431		KTRP==	431			;"	 	TRAP
   779			000432		SNTRP==432			;SUPERVISOR	NO TRAP
   780			000433		STRP==	433			;"		TRAP
   781			000434		CNTRP==434			;CONCEAL 	NO TRAP
   782			000435		CTRP==	435			;"		TRAP
   783			000436		PNTRP==436			;PUBLIC		NO TRAP
   784			000437		PTRP==	437			;"		TRAP
   785
   786			000500		LEUPFW==500			;EXEC & USER PAGE FAIL WORD
   787			000501		LPFWPC==501			;C(PC) OF PAGE FAIL WORD
   788			000502		LPGFTR==502			;PAGE FAIL NEW PC
   789
   790			000504		LEBXMH==504			;E-BOX CLOCK TICK METER, HI
   791			000505		LEBXML==505			;E-BOX CLOCK TICK METER, LO
   792			000506		LMBXMH==506			;M-BOX CYCLE METER, HI
   793			000507		LMBXML==507			;M-BOX CYCLE METER, LO
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 17
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0076

   794					S^;*********************************************************************^
   795					;*KS10 I/O INSTRUCTIONS
   796					S^;*********************************************************************^
   797
   798		700000	000000		OPDEF	APRID	[700B8+0B12]	;READ PROCESSOR ID
   799		700200	000000		OPDEF	WRAPR	[700B8+4B12]	;WRITE APR
   800		700240	000000		OPDEF	RDAPR	[700B8+5B12]	;READ APR
   801		700600	000000		OPDEF	WRPI	[700B8+14B12]	;WRITE PI
   802		700640	000000		OPDEF	RDPI	[700B8+15B12]	;READ PI
   803
   804		701040	000000		OPDEF	RDUBR	[701B8+1B12]	;READ USER BASE REGISTER
   805		701100	000000		OPDEF	CLRPT	[701B8+2B12]	;CLEAR HARDWARE PAGE TABLE
   806		701140	000000		OPDEF	WRUBR	[701B8+3B12]	;WRITE USER BASE REGISTER
   807		701240	000000		OPDEF	RDEBR	[701B8+5B12]	;READ EXEC BASE REGISTER
   808		701200	000000		OPDEF	WREBR	[701B8+4B12]	;WRITE EXEC BASE REGISTER
   809
   810		702000	000000		OPDEF	RDSPB	[702B8+0B12]	;READ SPT BASE REGISTER
   811		702040	000000		OPDEF	RDCSB	[702B8+1B12]	;READ CORE STATUS TABLE BASE REGISTER
   812		702100	000000		OPDEF	RDPUR	[702B8+2B12]	;READ PROCESS USE REGISTER
   813		702140	000000		OPDEF	RDCSTM	[702B8+3B12]	;READ CST MASK REGISTER
   814		702200	000000		OPDEF	RDTIM	[702B8+4B12]	;READ TIME BASE
   815		702240	000000		OPDEF	RDINT	[702B8+5B12]	;READ INTERVAL TIMER
   816		702300	000000		OPDEF	RDHSB	[702B8+6B12]	;READ HALT STATUS BLOCK ADDRESS
   817
   818		702400	000000		OPDEF	WRSPB	[702B8+10B12]	;WRITE SPT BASE REGISTER
   819		702440	000000		OPDEF	WRCSB	[702B8+11B12]	;WRITE CORE STATUS TABLE BASE REGISTER
   820		702500	000000		OPDEF	WRPUR	[702B8+12B12]	;WRITE PROCESS USE REGISTER
   821		702540	000000		OPDEF	WRCSTM	[702B8+13B12]	;WRITE CST MASK REGISTER
   822		702600	000000		OPDEF	WRTIM	[702B8+14B12]	;WRITE TIME BASE
   823		702640	000000		OPDEF	WRINT	[702B8+15B12]	;WRITE INTERVAL TIMER
   824		702700	000000		OPDEF	WRHSB	[702B8+16B12]	;WRITE HALT STATUS BLOCK ADDRESS
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 18
PARAM	KSM	28-Mar-78 11:27		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0077

   825					S^;*********************************************************************^
   826					;*KS10 UNIBUS I/O INSTRUCTIONS
   827					S^;*********************************************************************^
   828
   829		710000	000000		OPDEF	TIOE	[710B8]		;TEST I/O, SKIP IF ZERO
   830		711000	000000		OPDEF	TION	[711B8]		;TEST I/O, SKIP IF NON-ZERO
   831		712000	000000		OPDEF	RDIO	[712B8]		;READ I/O
   832		713000	000000		OPDEF	WRIO	[713B8]		;WRITE I/O
   833		714000	000000		OPDEF	BSIO	[714B8]		;BIT SET I/O
   834		715000	000000		OPDEF	BCIO	[715B8]		;BIT CLEAR I/O
   835		720000	000000		OPDEF	TIOEB	[720B8]		;	BYTE MODE
   836		721000	000000		OPDEF	TIONB	[721B8]
   837		722000	000000		OPDEF	RDIOB	[722B8]
   838		723000	000000		OPDEF	WRIOB	[723B8]
   839		724000	000000		OPDEF	BSIOB	[724B8]
   840		725000	000000		OPDEF	BCIOB	[725B8]
   841
   842					S^;*********************************************************************^
   843					;*KS10 UNIBUS BIT NUMBERS
   844					S^;*********************************************************************^
   845
   846			000001		EBIT0==1
   847			000002		EBIT1==2
   848			000004		EBIT2==4
   849			000010		EBIT3==10
   850			000020		EBIT4==20
   851			000040		EBIT5==40
   852			000100		EBIT6==100
   853			000200		EBIT7==200
   854			000400		EBIT8==400
   855			001000		EBIT9==1000
   856			002000		EBIT10==2000
   857			004000		EBIT11==4000
   858			010000		EBIT12==10000
   859			020000		EBIT13==20000
   860			040000		EBIT14==40000
   861			100000		EBIT15==100000
   862
   863						LIST
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0078

   864					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978
   865
   866	030000					LOC	30000
   867
   868					S^;*********************************************************************^
   869					;*PROGRAM STARTING ADDRESSES
   870					;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
   871					;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
   872					;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
   873					;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
   874					S^;*********************************************************************^
   875
   876	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
   877	030001	254 00 0 00 002000 	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
   878
   879	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
   880
   881	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
   882
   883	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
   884
   885	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
   886
   887	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
   888
   889	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
   890	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
   891
   892	030010	254 00 0 00 002035 	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
   893	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
   894	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
   895
   896	030013	000000	030000		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
   897	030014	000000	030000		START2:	SADR8			; "
   898	030015	000000	030000		START3:	SADR9			; "
   899	030016	000000	030000		START4:	SADR10			; "
   900	030017	000000	030000		START5:	SADR11			; "
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 2
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0079

   901					S^;*********************************************************************^
   902					;*PROGRAM FIXED PARAMETER AREA
   903					S^;*********************************************************************^
   904
   905	030020	636542	635500		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
   906	030021	645560	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
   907	030022	123456	123456		RANDBS:	PAREA1		;RANDOM BASE NUMBER
   908	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
   909	030024	000000	000001		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
   910	030025	000000	002036		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
   911	030026	000000	000003		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
   912	030027	000000	030000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
   913	030030	000000	030000		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
   914	030031	777777	777777		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
   915	030032	777777	777777		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
   916	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
   917	030034	777777	777777		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
   918	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
   919	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
   920
   921					S^;*********************************************************************^
   922					;*PROGRAM VARIABLE PARAMETER AREA
   923					S^;*********************************************************************^
   924
   925	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
   926	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
   927	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
   928	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
   929	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
   930	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
   931	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
   932	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
   933	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
   934	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
   935	030051	000000	000000		TESTPC:	0		;SUBTEST PC
   936	030052	000000	000000		ERRPC:	0		;ERROR PC
   937	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
   938	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
   939	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
   940	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 3
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0080

   941					S^;*********************************************************************^
   942					;*SPECIAL PROGRAM DISPATCH ADDRESSES
   943					S^;*********************************************************************^
   944
   945	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
   946	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
   947	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
   948	030062	000000	030000		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
   949	030063	000000	030007		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
   950	030064				CPOPJ1:			;SKIP RETURN
   951	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
   952	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
   953	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
   954	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
   955	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
   956	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
   957	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
   958	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
   959	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
   960	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
   961	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
   962	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
   963	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
   964	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
   965	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
   966	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
   967
   968	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
   969	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
   970	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
   971
   972					S^;*********************************************************************^
   973					;*PROCESSOR CONTROL STORAGE
   974					S^;*********************************************************************^
   975
   976	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
   977	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
   978	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
   979	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
   980	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
   981
   982	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
   983	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
   984
   985	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
   986	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
   987	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
   988	030120	000000	000000		%COREC:	0		; " CORRECT DATA
   989	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
   990	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
   991	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 4
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0081

   992					S^;*********************************************************************^
   993					;*UUO DISPATCH TABLE
   994					S^;*********************************************************************^
   995						XLIST
   996						LIST
   997	030124	030070	030070		UUODIS:	LUUO1,,$UUOER
   998	030125	030070	030070			LUUO3,,LUUO2
   999	030126	030070	030070			LUUO5,,LUUO4
  1000	030127	030070	030070			LUUO7,,LUUO6
  1001	030130	030070	030070			LUUO11,,LUUO10
  1002	030131	030070	030070			LUUO13,,LUUO12
  1003	030132	030070	030070			LUUO15,,LUUO14
  1004	030133	030070	030070			LUUO17,,LUUO16
  1005	030134	030070	030070			LUUO21,,LUUO20
  1006	030135	030070	030070			LUUO23,,LUUO22
  1007	030136	030070	030070			LUUO25,,LUUO24
  1008	030137	030070	030070			LUUO27,,LUUO26
  1009	030140	030070	030070			LUUO31,,LUUO30
  1010	030141	030070	030070			LUUO33,,LUUO32
  1011
  1012					S^;*********************************************************************^
  1013					;*MEMORY MANAGMENT STORAGE
  1014					S^;*********************************************************************^
  1015
  1016	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
  1017	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
  1018	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
  1019	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
  1020	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
  1021
  1022					S^;*********************************************************************^
  1023					;*PRINT CONTROL STORAGE
  1024					S^;*********************************************************************^
  1025
  1026	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
  1027	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
  1028	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
  1029	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
  1030	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
  1031	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
  1032	030225	000000	000000		$TWCNT:	0		;TIME WAITED
  1033	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
  1034	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
  1035	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
  1036	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
  1037	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
  1038	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
  1039	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
  1040	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
  1041	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
  1042	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
  1043	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
  1044	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 5
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0082

  1045					S^;*********************************************************************^
  1046					;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
  1047					;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
  1048					;*	MOVEI	NAME
  1049					;*	PNTA		;OR PNTAF
  1050					S^;*********************************************************************^
  1051
  1052	030242				CRLF:	ASCII/
  1053	030242	015 012 000 000 000 	/
  1054	030243				CRLF2:	ASCII/
  1055
  1056	030243	015 012 015 012 000 	/
  1057	030244	054 000 000 000 000 	COMMA:	ASCII/,/
  1058	030245	056 000 000 000 000 	PERIOD:	ASCII/./
  1059	030246	040 000 000 000 000 	SPACE:	ASCII/ /
  1060	030247	011 000 000 000 000 	TAB:	ASCII/	/
  1061	030250				MINUS:
  1062	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
  1063	030251	053 000 000 000 000 	PLUS:	ASCII/+/
  1064	030252	052 000 000 000 000 	AST:	ASCII/*/
  1065	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
  1066	030254	050 000 000 000 000 	LFP:	ASCII/(/
  1067	030255	051 000 000 000 000 	RTP:	ASCII/)/
  1068	030256	007 0000000000 		BELL:	BYTE (7) 007
  1069	030257	077 000 000 000 000 	QUEST:	ASCII/?/
  1070	030260	057 000 000 000 000 	SLASH:	ASCII!/!
  1071	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
  1072	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
  1073	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
  1074	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
  1075
  1076					S^;*********************************************************************^
  1077					;*USER MODE OUTPUT FILE INFORMATION
  1078					S^;*********************************************************************^
  1079
  1080	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
  1081	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
  1082	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
  1083	030272					BLOCK	2
  1084
  1085					S^;*********************************************************************^
  1086					;*DISK UPDATE MODE FILE INFORMATION
  1087					S^;*********************************************************************^
  1088
  1089	030274				$IBUF:	BLOCK	3
  1090	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
  1091	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
  1092	030301					BLOCK	2
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 6
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0083

  1093					S^;*********************************************************************^
  1094					;*PUSHDOWN LIST CONTROL INFORMATION
  1095					S^;*********************************************************************^
  1096
  1097	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
  1098	030304				PLISTS:	BLOCK	200
  1099	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
  1100
  1101					S^;*********************************************************************^
  1102					;*POWER LINE CLOCK FREQUENCY FLAG
  1103					S^;*********************************************************************^
  1104
  1105	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
  1106
  1107					S^;*********************************************************************^
  1108					;*KL10 CACHE CONTROL FLAGS
  1109					S^;*********************************************************************^
  1110
  1111	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
  1112	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
  1113
  1114					S^;*********************************************************************^
  1115					;*NUMBER INPUT DIGIT FLAG
  1116					S^;*********************************************************************^
  1117
  1118	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
  1119
  1120					S^;*********************************************************************^
  1121					;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
  1122					S^;*********************************************************************^
  1123
  1124	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
  1125
  1126					S^;*********************************************************************^
  1127					;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
  1128					S^;*********************************************************************^
  1129
  1130	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
  1131	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
  1132	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
  1133
  1134					S^;*********************************************************************^
  1135					;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
  1136					S^;*********************************************************************^
  1137
  1138	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 7
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0084

  1139					S^;*********************************************************************^
  1140					;*USER MODE MONITOR TYPE FLAG
  1141					S^;*********************************************************************^
  1142
  1143	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
  1144
  1145					S^;*********************************************************************^
  1146					;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
  1147					S^;*********************************************************************^
  1148
  1149	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
  1150
  1151					S^;*********************************************************************^
  1152					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
  1153					S^;*********************************************************************^
  1154
  1155	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
  1156
  1157					S^;*********************************************************************^
  1158					;*"SWITCH" CALL USAGE CONTROL
  1159					S^;*********************************************************************^
  1160
  1161	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
  1162
  1163					S^;*********************************************************************^
  1164					;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
  1165					S^;*********************************************************************^
  1166
  1167	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
  1168	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
  1169
  1170					S^;*********************************************************************^
  1171					;*SM10 (KS-10) PROCESSOR TYPE FLAG
  1172					S^;*********************************************************************^
  1173
  1174	030524	000000	000000		SM10:	0	;IF -1 THIS IS AN KS-10
  1175
  1176					S^;*********************************************************************^
  1177					;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
  1178					S^;*********************************************************************^
  1179
  1180	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
  1181
  1182					S^;*********************************************************************^
  1183					;*SPECIAL FUTURE EXPANSION ROOM
  1184					S^;*********************************************************************^
  1185
  1186					S^;*********************************************************************^
  1187					;*END OF FIXED STORAGE
  1188					S^;*********************************************************************^
  1189
  1190	030577					LOC	30577
  1191	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0085

  1192					SUBTTL	*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
  1193
  1194			000000		PNTLPT==0			;NO LINE PRINTER ON KS10 IN EXEC MODE
  1195
  1196					S^;*********************************************************************^
  1197					;*SPECIAL SUBPROGRAM LINKAGES
  1198					S^;*********************************************************************^
  1199
  1200	000440					LOC	440
  1201
  1202	000440	254 00 0 00 030000 		JRST	DIAGNOS
  1203	000441	254 00 0 00 010000 		JRST	DDT
  1204	000442	254 00 0 00 020000 		JRST	DIAMON
  1205	000443	254 00 0 00 002001 		JRST	REINIT
  1206
  1207	027775					LOC	27775
  1208
  1209	027775	000000	010000		DDTLNK:	10000			;DDT LINKAGE
  1210	027776	000000	002003		MODLNK:	MODCHK			;OPERATIONAL MODE CHECK LINKAGE
  1211	027777	000000	002002		SUBLNK:	SUBINI			;SUBROUTINE LINKAGE
  1212
  1213	001000					LOC	1000		;RESET THE PC AFTER "FIXED" @ 30,000
  1214
  1215					S^;*********************************************************************^
  1216					;*LOAD COPY OF START PARAMETERS AT 1000 TO 1020
  1217					S^;*********************************************************************^
  1218
  1219	001000	254 00 0 00 002021 		JRST	$SBSRT		;START SUBROUTINE BY ITSELF
  1220	001001	254 00 0 00 002030 		JRST	$REINI		;REINIT SUBROUTINE
  1221	001002	254 00 0 00 002051 		JRST	$PGMIN		;SUBROUTINE INIT ROUTINE
  1222	001003	254 00 0 00 002127 		JRST	$MODCK		;OPERATIONAL MODE CHECK LINKAGE
  1223	001004	777777	777777			-1			;-1=NOT INITED, 0=CLEAR, +1=PROTOCALL
  1224	001005	63 65 42 62 64 56 		SIXBIT/SUBRTN/		;"SUBRTN" IDENTIFICATION WORD
  1225	001006	000000	000003			MCNVER,,DECVER		;"SUBRTN" VERSION INFORMATION
  1226	001007	777777	777777			-1			;MONITOR TTY SPEED
  1227
  1228	001010	254 04 0 00 001010 		HALT	.		;PROGRAM NOT CODED FOR EXEC MODE
  1229	001011	254 04 0 00 001011 		HALT	.		;FATAL PUSH LIST POINTER ERROR
  1230	001012	254 04 0 00 001012 		HALT	.		;INITIAL PUSH LIST POINTER ERROR
  1231	001013	254 04 0 00 001013 		HALT	.		;MUUO WITH LUUO HANDLER WIPED OUT
  1232	001014	254 04 0 00 001014 		HALT	.		;SM10 INTERRUPT WITHOUT DOORBELL
  1233	001015	254 04 0 00 001015 		HALT	.		;SM10 CLOCK INTERRUPT WITHOUT FLAG SET
  1234	001016	254 04 0 00 001016 		HALT	.		;CPU INITIALIZATION ERROR
  1235	001017	254 04 0 00 001017 		HALT	.		;END OF PROGRAM ERROR
  1236	001020	254 04 0 00 001020 		HALT	.		;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 2
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0086

  1237
  1238	002000					LOC	2000		;THIS STARTS THE ACTUAL SUBROUTINE PROGRAM
  1239
  1240					S^;*********************************************************************^
  1241					;*INITIALIZE THE SUBROUTINE PACKAGE
  1242					S^;*********************************************************************^
  1243
  1244	002000	254 00 0 00 002021 	START:	JRST	$SBSRT		;START SUBROUTINE BY ITSELF
  1245	002001	254 00 0 00 002030 	REINIT:	JRST	$REINI		;REINIT SUBROUTINE
  1246	002002	254 00 0 00 002051 	SUBINI:	JRST	$PGMIN		;SUBROUTINE INIT ROUTINE
  1247	002003	254 00 0 00 002127 	MODCHK:	JRST	$MODCK		;OPERATIONAL MODE CHECK LINKAGE
  1248	002004	777777	777777		COMFLG:	-1			;-1=NOT INITED, 0=CLEAR, +1=PROTOCALL
  1249	002005	63 65 42 62 64 56 	SUBRTN:	SIXBIT/SUBRTN/		;"SUBRTN" IDENTIFICATION WORD
  1250	002006	000000	000003		SUBVER:	MCNVER,,DECVER		;"SUBRTN" VERSION INFORMATION
  1251	002007	777777	777777		$TTYSPD:-1			;MONITOR TTY SPEED
  1252
  1253	002010	254 04 0 00 002010 	NOEXEC:	HALT	.		;PROGRAM NOT CODED FOR EXEC MODE
  1254	002011	254 04 0 00 002011 	PLERR:	HALT	.		;FATAL PUSH LIST POINTER ERROR
  1255	002012	254 04 0 00 002012 	PLERR1:	HALT	.		;INITIAL PUSH LIST POINTER ERROR
  1256	002013	254 04 0 00 002013 	MUOERR:	HALT	.		;MUUO WITH LUUO HANDLER WIPED OUT
  1257	002014	254 04 0 00 002014 	SMBER:	HALT	.		;SM10 INTERRUPT WITHOUT DOORBELL
  1258	002015	254 04 0 00 002015 	SMCER:	HALT	.		;SM10 CLOCK INTERRUPT WITHOUT FLAG SET
  1259	002016	254 04 0 00 002016 	CPIERR:	HALT	.		;CPU INITIALIZATION ERROR
  1260	002017	254 04 0 00 002017 	EOPERR:	HALT	.		;END OF PROGRAM ERROR
  1261	002020	254 04 0 00 002020 	LUOERR:	HALT	.		;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 3
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0087

  1262					S^;*********************************************************************^
  1263					;*SPECIAL SUBROUTINE ONLY INITIALIZATION
  1264					S^;*********************************************************************^
  1265
  1266	002021	201 00 0 00 000001 	$SBSRT:	MOVEI	1
  1267	002022	202 00 0 00 030024 		MOVEM	ITRCNT		;ALLOW ONLY ONE PASS
  1268	002023	201 00 0 00 020000 		MOVEI	DIAMON
  1269	002024	202 00 0 00 030012 		MOVEM	RETURN
  1270	002025	476 00 0 00 030143 		SETOM	MAPNEW		;FULL 1024K MAPPING
  1271	002026	265 00 0 00 030011 		PGMINT
  1272	002027	254 00 0 00 030057 		JRST	BEGEND
  1273
  1274	002030	402 00 0 00 030056 	$REINI:	SETZM	$ONETM		;FOR NOW
  1275	002031	476 00 0 00 002004 		SETOM	COMFLG		;REINIT COMM
  1276	002032	402 00 0 00 030047 		SETZM	PASCNT
  1277	002033	402 00 0 00 030053 		SETZM	ERRTLS
  1278	002034	254 00 0 00 030000 		JRST	BEGIN
  1279
  1280	002035	254 00 0 00 030057 	STARTA:	JRST	BEGEND
  1281
  1282	002036				PGMNAM:	ASCIZ/
  1283	002036	015 012 104 105 103 	DECSYSTEM 2020 (KS-10) DIAGNOSTIC SUBROUTINE'S
  1284	002037	123 131 123 124 105 
  1285	002040	115 040 062 060 062 
  1286	002041	060 040 050 113 123 
  1287	002042	055 061 060 051 040 
  1288	002043	104 111 101 107 116 
  1289	002044	117 123 124 111 103 
  1290	002045	040 123 125 102 122 
  1291	002046	117 125 124 111 116 
  1292	002047	105 047 123 015 012 	/
  1293	002050	000 000 000 000 000 
  1294					S^;*********************************************************************^
  1295					;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
  1296					S^;*********************************************************************^
  1297
  1298	002051	202 00 0 00 007441 	$PGMIN:	MOVEM	0,$$PAC0
  1299	002052	200 00 0 00 007004 		MOVE	0,[2000,,1000]	;SETUP ORIGINAL INITIALIZE BLOCK
  1300	002053	251 00 0 00 001020 		BLT	0,1020
  1301	002054	476 00 0 00 030037 		SETOM	USER
  1302	002055	265 00 0 00 002056 		JSP	0,.+1		;LOAD FLAGS INTO AC0
  1303	002056	607 00 0 00 010000 		TLNN	0,USERF		;USER MODE ?
  1304	002057	402 00 0 00 030037 		SETZM	USER		;EXEC MODE
  1305	002060	336 00 0 00 030042 		SKIPN	MONFLG		;DIAG MON, SPECIAL USER MODE ?
  1306	002061	402 00 0 00 030037 		SETZM	USER		;YES, TREAT I/O AS EXEC
  1307	002062	332 00 0 00 030037 		SKIPE	USER
  1308	002063	254 00 0 00 002146 		JRST	$NOUSR		;NO USER MODE IN "SUBSM"
  1309	002064	7 004 20 0 00 010000 		CONO	PI,PICLR	;CLEAR PI SYSTEM
  1310	002065	7 000 20 0 00 200000 		CONO	APR,IOCLR	;CLEAR I/O
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 4
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0088

  1311					S^;*********************************************************************^
  1312					;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
  1313					S^;*********************************************************************^
  1314
  1315	002066	554 00 0 00 000120 	$PGMN1:	HLRZ	JOBSA		;RESET JOB FIRST FREE TO
  1316	002067	202 00 0 00 000121 		MOVEM	JOBFF		;END OF LOW SEGMENT
  1317	002070	254 02 1 00 002071 		JRST	2,@.+1		;CLEAR PC FLAGS
  1318	002071	000000	002072				0,,.+1
  1319	002072	200 00 0 00 030046 		MOVE	CONSW
  1320	002073	202 00 0 00 007512 		MOVEM	$SVCSW#		;SAVE PREVIOUS SWITCHES
  1321	002074	402 00 0 00 030046 		SETZM	CONSW#		;CLEAR SWITCH REGISTER
  1322	002075	402 00 0 00 007514 		SETZM	$SWFLG#		;DISALLOW SWITCHES TILL INITED
  1323	002076	200 00 0 00 007005 		MOVE	[JRST $DDTENT]	;SETUP DDT START
  1324	002077	202 00 0 00 030007 		MOVEM	DDTSRT		;DDT IF LOADED, EOPUUO IF NOT
  1325	002100	200 00 0 00 007006 		MOVE	[JRST PSHERR]
  1326	002101	202 00 0 00 030103 		MOVEM	$PSHER		;INIT FOR UNDERFLOW
  1327	002102	200 17 0 00 030303 		MOVE	P,PLIST		;INIT PUSH POINTER
  1328	002103	201 00 0 00 030103 		MOVEI	0,$PSHER
  1329	002104	261 17 0 00 000000 		PUSH	P,0		;SET ERR FOR EXCESSIVE POP'S
  1330	002105	261 17 0 00 000000 		PUSH	P,0
  1331
  1332					S^;*********************************************************************^
  1333					;*INITIALIZE SUBROUTINES
  1334					S^;*********************************************************************^
  1335
  1336	002106	260 17 0 00 002770 	PGINGO:	GO	$CPUTP		;DETERMINE CPU TYPE
  1337	002107	261 17 0 00 030506 		PUT	CSHFLG
  1338	002110	476 00 0 00 030506 		SETOM	CSHFLG		;PREVENT CACHE ON STARTUP
  1339	002111	260 17 0 00 002151 		GO	$MAPEX		;MAP EXEC
  1340	002112	262 17 0 00 030506 		GET	CSHFLG
  1341	002113	260 17 0 00 002165 		GO	$UUOIN		;INIT UUO TRAP TRANSFER LOCATION
  1342	002114	260 17 0 00 005444 		GO	$PNTIN		;INIT PRINT SUBROUTINE
  1343	002115	260 17 0 00 004454 		GO	$SWTIN		;INIT SWITCH INPUT SUBROUTINE
  1344	002116	260 17 0 00 003233 		GO	$ITRIN		;INIT INTERRUPT SUBROUTINE
  1345	002117	332 00 0 00 030034 		SKIPE	$MMAP		;MEMORY ROUTINES ?
  1346	002120	260 17 0 00 003603 		GO	$MEMMP		;MAP MEMORY
  1347	002121	260 17 0 00 003031 		GO	$SMCSH		;INIT CACHE
  1348	002122	476 00 0 00 030056 		SETOM	$ONETM		;SET ONE TIME FLAG
  1349	002123	402 00 0 00 030116 		SETZM	SCOPE		;INIT ERROR SCOPE LOOP
  1350	002124	402 00 0 00 030052 		SETZM	ERRPC		;INIT ERROR PC
  1351	002125	402 00 0 00 007435 		SETZM	PERTLS#		;INIT PRINTED ERROR TOTAL
  1352	002126	254 00 1 00 007441 		JRST	@$$PAC0#	;RETURN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 5
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* MAIN SUBROUTINE PACKAGE CONTROL                                           SEQ 0089

  1353					S^;*********************************************************************^
  1354					;*$MODCK -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
  1355					;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
  1356					;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
  1357					;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
  1358					;*AT ASSEMBLY TIME.
  1359					S^;*********************************************************************^
  1360
  1361	002127	265 00 0 00 002130 	$MODCK:	JSP	0,.+1		;GET FLAG CONDITIONS
  1362	002130	603 00 0 00 010000 		TLNE	0,USERF		;IN USER MODE ?
  1363	002131	254 00 0 00 002144 		JRST	$UCK		;YES
  1364	002132	476 00 0 00 030024 	$ECK:	SETOM	ITRCNT		;EXEC, RUN FOREVER
  1365	002133	402 00 0 00 030043 		SETZM	MONCTL		;NOT HERE IF UNDER MONITOR CONTROL
  1366	002134	476 00 0 00 030042 		SETOM	MONFLG		;SET TO NORMAL OPERATION
  1367	002135	332 00 0 00 030044 		SKIPE	MONTEN		;LOADED BY "DIAMON" ?
  1368	002136	254 00 0 00 002141 		JRST	.+3		;YES, RETURN TO "DIAMON" UPON COMPLETION
  1369	002137	201 00 0 00 030000 		MOVEI	BEGIN		;SET UP RETURN IN CASE WE EVER COUNT OUT
  1370	002140	202 00 0 00 030012 		MOVEM	RETURN		;FOR THE RETURN ADDRESS
  1371	002141	332 00 0 00 030031 		SKIPE	$EMODE		;EXEC MODE ALLOWED?
  1372	002142	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
  1373	002143	254 04 0 00 002010 		HALT	NOEXEC		;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
  1374
  1375	002144	332 00 0 00 030032 	$UCK:	SKIPE	$UMODE		;USER MODE ALLOWED?
  1376	002145	254 00 0 00 030001 		JRST	$START		;YES - CONTINUE
  1377	002146				$NOUSR:	OUTSTR	[ASCIZ/
  1378					EXEC ONLY
  1379	002146	051 03 0 00 007007 	/]
  1380	002147	051 03 1 00 030025 		OUTSTR	@$PNAME		;PRINT THE NAME OF THIS FILE
  1381	002150	254 00 1 00 030012 		JRST	@RETURN		;LEAVE FOR EVER
  1382
  1383					S^;*********************************************************************^
  1384					;* $MAPEX - SM10 0 TO 112K PAGE MAP SETUP
  1385					;*	    0 TO 112K POINTS TO ITSELF
  1386					S^;*********************************************************************^
  1387
  1388	002151	200 00 0 00 007012 	$MAPEX:	MOVE	[540000,,540001]
  1389	002152	336 00 0 00 030506 		SKIPN	CSHFLG
  1390	002153	660 00 0 00 020000 		TRO	020000
  1391	002154	202 00 0 00 000600 		MOVEM	600		;SET EPT NON-CACHED
  1392	002155	205 01 0 00 777621 		MOVSI	1,-157
  1393	002156	200 00 0 00 007012 		MOVE	[540000,,540001]
  1394	002157	336 00 0 00 030506 		SKIPN	CSHFLG		;REST CACHED IF ALLOWED
  1395	002160	670 00 0 00 007013 		TDO	[020000,,020000]
  1396	002161	270 00 0 00 007014 		ADD	[2,,2]
  1397	002162	202 00 0 01 000601 		MOVEM	601(1)
  1398	002163	253 01 0 00 002161 		AOBJN	1,.-2
  1399	002164	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 6
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0090

  1400					SUBTTL	*CONTRL* UUO HANDLING SUBROUTINE
  1401
  1402					S^;*********************************************************************^
  1403					;*UUO INITIALIZATION
  1404					S^;*********************************************************************^
  1405
  1406	002165	200 00 0 00 007015 	$UUOIN:	MOVE	[GO  $UORTN]	;BRING IN UUORTN ENTRY INSTR.
  1407	002166	202 00 0 00 000041 		MOVEM	JOB41		;SETUP UUO TRAP AT JOB41
  1408	002167	200 00 0 00 007016 		MOVE	[JRST $UOERX]
  1409	002170	202 00 0 00 030070 		MOVEM	$UUOER		;SET UUO ERROR IN "FIXED"
  1410	002171	402 00 0 00 007533 		SETZM	$UPLER#
  1411	002172	263 17 0 00 000000 		RTN			;EXIT
  1412
  1413					S^;*********************************************************************^
  1414					;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
  1415					;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
  1416					;*PROGRAM SEGMENT UUO'S (001 - 033).
  1417					;*AC0 IS SAVED ON THE STACK INITIALLY
  1418					S^;*********************************************************************^
  1419
  1420	002173	332 00 0 00 030515 	$UORTN:	SKIPE	$$UUO		;IF NON-ZERO, XCT USERS UUO INTERCEPT
  1421	002174	256 00 0 00 030515 		XCT	$$UUO
  1422	002175	202 00 0 00 007440 		MOVEM	AC0,$$AC0#	;SAVE AC0
  1423	002176	550 00 0 00 000017 		HRRZ	AC0,P		;VERIFY THAT THE PUSH POINTER
  1424	002177	307 00 0 00 030303 		CAIG	AC0,PLIST	;IS STILL OK
  1425	002200	254 00 0 00 002263 		JRST	$UOPLE		;OUT OF RANGE
  1426	002201	301 00 0 00 030504 		CAIL	AC0,PLISTE
  1427	002202	254 00 0 00 002263 		JRST	$UOPLE
  1428	002203	554 00 0 00 000017 		HLRZ	AC0,P		;GET CONTROL COUNT
  1429	002204	307 00 0 00 777577 		CAIG	AC0,777577
  1430	002205	254 00 0 00 002263 		JRST	$UOPLE		;OUT OF RANGE
  1431	002206	301 00 0 00 777777 		CAIL	AC0,777777
  1432	002207	254 00 0 00 002263 		JRST	$UOPLE
  1433	002210	261 17 0 00 007440 		PUT	$$AC0		;SAVE AC0 ON PUSH LIST
  1434	002211	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET THE UUO
  1435	002212	242 00 0 00 777745 		LSH	AC0,-^D27	;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
  1436	002213	303 00 0 00 000033 		CAILE	AC0,33		;IS IT 33 OR LESS? (LOW)
  1437	002214	254 00 0 00 002241 		JRST	$SUBUO		;DECODE 34 - 37 @ $SUBUO
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 7
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0091

  1438	002215	200 00 0 17 777777 	$USRUO:	MOVE	AC0,-1(P)	;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
  1439	002216	275 00 0 00 000001 		SUBI	1		; - 1
  1440	002217	202 00 0 00 030114 		MOVEM	$SVUPC		;SAVE FOR USER UUO ROUTINE (IF NEEDED)
  1441	002220	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET UUO FROM LOCATION 40 IN JDA
  1442	002221	202 00 0 00 030113 		MOVEM	$SVUUO		;SAVE FOR USER UUO ROUTINE
  1443	002222	262 17 0 00 000000 		GET	AC0
  1444	002223	256 00 0 00 030066 		XCT	UUORTN		;EXECUTE USERS ROUTINE IF SUPPLIED
  1445	002224	261 17 0 00 000000 		PUT	AC0
  1446	002225	200 00 0 00 030113 		MOVE	AC0,$SVUUO
  1447	002226	242 00 0 00 777745 		LSH	AC0,-^D27	;RIGHT SHIFT FOR INDEX INTO UUO TABLE
  1448	002227	261 17 0 00 000001 		PUT	1
  1449	002230	246 00 0 00 777777 		LSHC	0,-1
  1450	002231	271 00 0 00 030124 		ADDI	UUODIS		;ADD USER UUO TABLE START TO THE UUO
  1451	002232	607 01 0 00 400000 	$XUUO:	TLNN	1,400000
  1452	002233	550 00 1 00 000000 		HRRZ	@0		;EVEN UUO
  1453	002234	603 01 0 00 400000 		TLNE	1,400000
  1454	002235	554 00 1 00 000000 		HLRZ	@0		;ODD UUO
  1455	002236	262 17 0 00 000001 		GET	1
  1456	002237	250 00 0 17 000000 		EXCH	AC0,(P)		;PUT ADR ON STACK, AC0 BACK IN AC0
  1457	002240	263 17 0 00 000000 		RTN			;SPECIAL XFER TO ROUTINE USING ADR ON STACK
  1458
  1459	002241	275 00 0 00 000034 	$SUBUO:	SUBI	AC0,34		;NORMALIZE TO MAKE LOWEST UUO = 0
  1460	002242	271 00 0 00 002244 		ADDI	AC0,TABLE0	;ADDR OF TABLE + NORM. UUO (0-3)
  1461	002243	254 00 1 00 000000 		JRST	@0		;SELECT THE CORRECT ERROR UUO VIA TABLE
  1462
  1463	002244	254 00 0 00 002465 	TABLE0:	JRST	%REPT		;UUO = 34 ......................REPEAT
  1464	002245	254 00 0 00 002420 		JRST	%ERLP		;UUO = 35 ...........LOOP ON THE ERROR
  1465	002246	254 00 0 00 002502 		JRST	%ERUUO		;UUO = 36 .REPORT THE ERROR CONDITIONS
  1466	002247	254 00 0 00 002316 		JRST	$UUO37		;UUO = 37 .......DECODE SUBROUTINE UUO
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 8
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0092

  1467					S^;*********************************************************************^
  1468					;*UUO ERROR EXIT ROUTINE
  1469					S^;*********************************************************************^
  1470													SALL
  1471	002250	261 17 0 00 000040 	$UOERX:	PUT	JOBUUO		;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
  1472	002251	037 02 0 00 007017 		PMSG	<^ILLEGAL UUO^UUO]]FLAGS]  PC^>
  1473	002252	262 17 0 00 000000 		GET	AC0		;GET BAD UUO FROM THE STACK (P - 1)
  1474	002253	037 13 0 00 000000 		PNTHW			;PRINT IT
  1475	002254	037 00 0 00 000040 		PSP			;PRINT SPACE
  1476	002255	262 17 0 00 000000 		GET	AC0		;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
  1477	002256	275 00 0 00 000001 		SUBI	AC0,1		;SUBTRACT 1
  1478	002257	037 13 0 00 000000 		PNTHW			;PRINT FLAGS & UUO PC
  1479	002260	037 00 0 00 030242 		PCRL			;PRINT C/R & L/F
  1480	002261	256 00 0 00 030067 		XCT	$UORTX		;EXECUTE USERS UUO EXIT, IF PROV
  1481	002262	037 15 0 00 000004 		FATAL
  1482
  1483	002263	332 00 0 00 007533 	$UOPLE:	SKIPE	$UPLER		;FIRST TIME ?
  1484	002264	254 04 0 00 002011 		HALT	PLERR		;NO, FATAL HALT THEN
  1485	002265	476 00 0 00 007533 		SETOM	$UPLER
  1486	002266	202 17 0 00 007476 		MOVEM	P,$PDOVP	;SAVE "P"
  1487	002267	200 17 0 00 030303 		MOVE	P,PLIST
  1488	002270	312 17 0 00 007024 		CAME	P,[PLIST-PLISTE,,PLIST]
  1489	002271	254 04 0 00 002012 		HALT	PLERR1		;INITIAL POINTER BAD
  1490	002272	201 00 0 00 030103 		MOVEI	$PSHER
  1491	002273	261 17 0 00 000000 		PUSH	P,0
  1492	002274	037 04 0 00 007025 		PMSGF	<^*****^UUO PLIST ERR P=>
  1493	002275	200 00 0 00 007476 		MOVE	$PDOVP
  1494	002276	037 13 0 00 000001 		PNTHWF
  1495	002277	037 15 0 00 000004 		FATAL
  1496													LALL
  1497					S^;*********************************************************************^
  1498					;*MONITOR UUO ERROR EXIT ROUTINE
  1499					S^;*********************************************************************^
  1500													SALL
  1501	002300	332 00 0 00 030517 	MUUOER:	SKIPE	$$MUUO
  1502	002301	256 00 0 00 030517 		XCT	$$MUUO		;EXECUTE USERS MUUO ROUTINE, IF PROV
  1503	002302	200 00 0 00 000041 		MOVE	AC0,JOB41	;GET UUO HANDLER
  1504	002303	312 00 0 00 007015 		CAME	AC0,[GO	$UORTN]
  1505	002304	254 04 0 00 002013 		HALT	MUOERR		;NOT VALID
  1506	002305	200 00 0 00 000425 		MOVE	MUUOPC
  1507	002306	202 00 0 00 030104 		MOVEM	ITRCH1
  1508	002307	7 000 24 0 00 030110 		CONI	APR,$SVAPR
  1509	002310	7 004 24 0 00 030107 		CONI	PI,$SVPI
  1510	002311	037 02 0 00 007031 		PMSG	<^ERROR MUUO = >
  1511	002312	200 00 0 00 000424 		MOVE	MUUO
  1512	002313	037 13 0 00 000000 		PNTHW			;PRINT MUUO
  1513	002314	402 00 0 00 000000 		SETZM	0
  1514	002315	254 00 0 00 003275 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE START
  1515													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 9
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0093

  1516					S^;*********************************************************************^
  1517					;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
  1518					S^;*********************************************************************^
  1519
  1520	002316	550 00 0 00 000040 	$UUO37:	HRRZ	JOBUUO		;GET CALLING UUO
  1521	002317	322 00 0 00 005504 		JUMPE	$PNTIT		;PRINT UUO
  1522	002320	306 00 0 00 000001 		CAIN	0,1
  1523	002321	254 00 0 00 005500 		JRST	$PNTIF		;PRINT FORCED UUO
  1524	002322	602 00 0 00 777600 		TRNE	777600
  1525	002323	254 00 0 00 002400 		JRST	$EG177		;PRINT MESSAGE UUO
  1526	002324	301 00 0 00 000005 		CAIL	5
  1527	002325	254 00 0 00 002367 		JRST	$EG4		;PRINT CHAR IMMEDIATE UUO
  1528	002326	261 17 0 00 000001 		PUT	1
  1529	002327	200 01 0 00 000040 		MOVE	1,JOBUUO
  1530	002330	242 01 0 00 777751 		LSH	1,-^D23		;EXTRACT UUO AC FIELD
  1531	002331	405 01 0 00 000017 		ANDI	1,17
  1532	002332	242 00 0 00 000004 		LSH	0,4		;POSITION E FIELD
  1533	002333	434 00 0 00 000001 		IOR	0,1		;COMBINE E & AC FIELD
  1534	002334	246 00 0 00 777777 		LSHC	0,-1		;SET ODD/EVEN
  1535	002335	271 00 0 00 002317 		ADDI	$UOTAB-20	;COMPUTE TABLE ENTRY OFFSET
  1536	002336	254 00 0 00 002232 		JRST	$XUUO
  1537
  1538	002337				$UOTAB:				;E FIELD = 2
  1539	002337	005602	005571			$PTSXF,,$PNTSX
  1540	002340	005753	005720			$PNTCF,,$PNTCW
  1541	002341	002417	003155			$DRPDV,,$PNTNM
  1542	002342	002417	002417			$MODDV,,$MODDP
  1543	002343	004066	004437			$MSEG,,$SWTCH
  1544	002344	004316	004255			$MPADR,,$MZRO
  1545	002345	003730	004041			$MPCNK,,$MPSET
  1546	002346	004346	002417			$PMAP,,$PNTMG
  1547									;E FIELD = 3
  1548	002347	005224	005055			$YESNO,,$OPTLK
  1549	002350	005267	005222			$TPOCT,,$NOYES
  1550	002351	005263	005265			$TPCNV,,$TPDEC
  1551	002352	005067	005046			$TALTM,,$TTLK
  1552	002353	005051	005411			$TTYIN,,$TISIX
  1553	002354	002250	005163			$UOERX,,$TPCLR
  1554	002355	005613	005616			$PSIXF,,$PSIX
  1555	002356	005655	005660			$POCSF,,$POCS
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 10
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* UUO HANDLING SUBROUTINE                                                   SEQ 0094

  1556									;E FIELD = 4
  1557	002357	002250	003603			$UOERX,,$MEMMP
  1558	002360	002250	002250			$UOERX,,$UOERX
  1559	002361	003047	002417			$FSELECT,,$MTROP
  1560	002362	003073	003075			$FRD36,,$FREAD
  1561	002363	002250	003071			$UOERX,,$FRD8
  1562	002364	002417	003553			$CLOCK,,$END
  1563	002365	003133	003111			$FATAL,,$ERHLT
  1564	002366	002250	003574			$UOERX,,$EOP
  1565
  1566	002367	200 00 0 00 000040 	$EG4:	MOVE	JOBUUO		;IMMEDIATE CHARACTER PRINT
  1567	002370	316 00 0 00 007034 		CAMN	[PBELL]
  1568	002371	254 00 0 00 002412 		JRST	$EGBELL
  1569	002372	316 00 0 00 007035 		CAMN	[PFORCE]
  1570	002373	254 00 0 00 002415 		JRST	$EGFRC
  1571	002374	603 00 0 00 000040 		TLNE	(1B12)
  1572						JRST	[PNTCHF
  1573	002375	254 00 0 00 007036 			JRST	$EGX]
  1574	002376	037 12 0 00 000000 		PNTCHR
  1575	002377	254 00 0 00 002410 		JRST	$EGX
  1576
  1577	002400	200 00 0 00 000040 	$EG177:	MOVE	JOBUUO		;IMMEDIATE MESSAGE PRINT
  1578	002401	603 00 0 00 000200 		TLNE	(4B12)
  1579						JRST	[PSIXLF
  1580	002402	254 00 0 00 007040 			JRST	$EGX]
  1581	002403	603 00 0 00 000100 		TLNE	(2B12)
  1582						JRST	[PSIXL
  1583	002404	254 00 0 00 007042 			JRST	$EGX]
  1584	002405	603 00 0 00 000040 		TLNE	(1B12)
  1585						JRST	[PNTALF
  1586	002406	254 00 0 00 007044 			JRST	$EGX]
  1587	002407	037 17 0 00 000000 		PNTAL
  1588	002410	262 17 0 00 000000 	$EGX:	GET	0
  1589	002411	263 17 0 00 000000 		RTN
  1590
  1591	002412	337 00 0 00 002004 	$EGBELL:SKIPG	COMFLG
  1592						JRST	[PNTCHF
  1593	002413	254 00 0 00 007046 			 JRST	$EGFRC]
  1594	002414	260 17 0 00 006723 		COMBELL			;SEND BELL
  1595
  1596	002415	402 00 0 00 007506 	$EGFRC:	SETZM	$PTINH		;CLEAR PRINT INHIBIT
  1597	002416	254 00 0 00 002410 		JRST	$EGX
  1598
  1599	002417				$MODDV:
  1600	002417				$MODDP:
  1601	002417				$DRPDV:
  1602	002417				$MTROP:
  1603	002417				$CLOCK:
  1604	002417	254 00 0 00 002250 	$PNTMG:	JRST	$UOERX		;N/A ON SM-10
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 11
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0095

  1605					SUBTTL	*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
  1606
  1607					S^;*********************************************************************^
  1608					;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
  1609					;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
  1610					;*INFORMATION.  THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
  1611					;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
  1612					;*ERROR, AND BELL ON ERROR.
  1613					S^;*********************************************************************^
  1614
  1615					S^;*********************************************************************^
  1616					;*ERROR LOOPING ROUTINE
  1617					;*EITHER CONTINUES IN-LINE
  1618					;*OR TRANSFERS TO E FIELD OF UUO
  1619					;*CHECKS PC OF ERROR TO DETERMINE LOOPING
  1620					S^;*********************************************************************^
  1621
  1622	002420	402 00 0 00 007541 	%ERLP:	SETZM	%ERFLG#
  1623	002421	261 17 0 00 000040 		PUT	JOBUUO
  1624	002422	260 17 0 00 005067 		GO	$TALTM		;DO ALTMODE CHECK
  1625	002423	254 00 0 00 002427 		JRST	.+4		;NOT ONE
  1626	002424	201 00 0 00 002427 		MOVEI	.+3		;SAVE RESTART ADDRESS
  1627	002425	202 00 0 00 000130 		MOVEM	JOBOPC
  1628	002426	254 00 1 00 030063 		JRST	@ALTMGO		;TRANSFER TO ALTMODE ROUTINE
  1629	002427	262 17 0 00 000040 		GET	JOBUUO
  1630	002430	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET AC FIELD OF UUO
  1631	002431	242 00 0 00 777751 		LSH	AC0,-^D23
  1632	002432	405 00 0 00 000017 		ANDI	AC0,17
  1633	002433	306 00 0 00 000002 		CAIN	AC0,2
  1634	002434	254 00 0 00 002453 		JRST	%ERLP2		; 2 = LOOP IF ANY ERROR
  1635	002435	306 00 0 00 000001 		CAIN	AC0,1
  1636	002436	254 00 0 00 002447 		JRST	%ERLP1		; 1 = LOOP IF PC'S MATCH
  1637	002437	306 00 0 00 000000 		CAIN	AC0,0
  1638	002440	254 00 0 00 002443 		JRST	%ERLP0		; 0 = PC'S, REPT, REPT1 & ERROR
  1639	002441	262 17 0 00 000000 		GET	AC0
  1640	002442	254 00 0 00 002250 		JRST	$UOERX
  1641	002443	476 00 0 00 007541 	%ERLP0:	SETOM	%ERFLG
  1642	002444	316 15 0 00 007545 		CAMN	REPT,%RP	;ARE REPEAT COUNTS SAME AS ERROR ?
  1643	002445	312 16 0 00 007546 		CAME	REPT1,%RP1	;(AT RIGHT PLACE IN TEST LOOPS ?)
  1644	002446	254 00 0 00 002463 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1645	002447	550 00 0 17 777777 	%ERLP1:	HRRZ	AC0,-1(P)	;GET PC OF LOOP CALL FROM STACK
  1646	002450	275 00 0 00 000002 		SUBI	AC0,2		;LESS 2
  1647	002451	312 00 0 00 030052 		CAME	AC0,ERRPC	;NOW EQUAL TO PC OF ERROR CALL ?
  1648	002452	254 00 0 00 002463 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1649	002453	260 17 0 00 004437 	%ERLP2:	GO	$SWTCH		;READ SWITCHES INTO AC0
  1650	002454	607 00 0 00 004000 		TLNN	LOOPER		;LOOP ON ERROR ?
  1651	002455	402 00 0 00 030116 		SETZM	SCOPE		;NO ..........CLEAR LOOP CONTROL
  1652	002456	331 00 0 00 030116 		SKIPL	SCOPE		;YES ...WAS THERE AN ERROR ?
  1653	002457	254 00 0 00 002463 		JRST	%ERX1		;NO, CONTINUE IN LINE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 12
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0096

  1654	002460	262 17 0 00 000000 	%ERX:	GET	AC0		;RESTORE AC0
  1655	002461	274 17 0 00 007050 		SUB	P,[1,,1]	;CORRECT PUSH LIST POINTER FOR NO "RTN"
  1656	002462	254 00 1 00 000040 		JRST	@JOBUUO		;TRANSFER TO E FIELD OF UUO
  1657
  1658	002463	262 17 0 00 000000 	%ERX1:	GET	AC0		;RESTORE AC0
  1659	002464	263 17 0 00 000000 		RTN
  1660
  1661					S^;*********************************************************************^
  1662					;*REPEAT LOOP ROUTINE
  1663					;*EITHER CONTINUES IN-LINE
  1664					;*OR TRANSFERS TO E FIELD OF UUO
  1665					S^;*********************************************************************^
  1666
  1667	002465	373 00 0 00 030115 	%REPT:	SOSLE	REPTU#		;REPEAT TEST SECTION ?
  1668	002466	254 00 0 00 002460 		JRST	%ERX		;YES, E FIELD OF UUO IS RETURN
  1669	002467	254 00 0 00 002463 		JRST	%ERX1		;NO, CONTINUE IN LINE
  1670
  1671					S^;*********************************************************************^
  1672					;*COMMON ERROR HANDLER AC SAVE/RESTORE
  1673					S^;*********************************************************************^
  1674
  1675	002470	202 00 0 00 007534 	%EACS:	MOVEM	0,%AC0#
  1676	002471	202 01 0 00 007535 		MOVEM	1,%AC1#
  1677	002472	202 02 0 00 007536 		MOVEM	2,%AC2#
  1678	002473	202 03 0 00 007537 		MOVEM	3,%AC3#
  1679	002474	263 17 0 00 000000 		RTN
  1680
  1681	002475	200 00 0 00 007534 	%EACR:	MOVE	0,%AC0
  1682	002476	200 01 0 00 007535 	%EACR1:	MOVE	1,%AC1
  1683	002477	200 02 0 00 007536 		MOVE	2,%AC2
  1684	002500	200 03 0 00 007537 		MOVE	3,%AC3
  1685	002501	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 13
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0097

  1686					S^;*********************************************************************^
  1687					;*ERROR REPORTING ROUTINE
  1688					S^;*********************************************************************^
  1689
  1690	002502	200 00 0 00 000040 	%ERUUO:	MOVE	LUUO
  1691	002503	202 00 0 00 007544 		MOVEM	%LUUO#
  1692	002504	476 00 0 00 030116 		SETOM	SCOPE
  1693	002505	262 17 0 00 000000 		GET	AC0
  1694	002506	332 00 0 00 030512 		SKIPE	%ERHI1		;ANY USERS INSTRUCTION ?
  1695	002507	256 00 0 00 030512 		XCT	%ERHI1		;YES, DO USERS ROUTINE
  1696	002510	260 17 0 00 002470 		GO	%EACS		;SAVE AC0 - AC3
  1697	002511	402 00 0 00 030117 		SETZM	%CORFLG#
  1698	002512	402 00 0 00 030121 		SETZM	%ACTFL#
  1699	002513	350 00 0 00 030053 		AOS	ERRTLS		;INCREMENT ERROR TOTALS
  1700	002514	260 17 0 00 004437 		GO	$SWTCH
  1701	002515	550 03 0 17 000000 		HRRZ	3,(P)		;GET <ADDRESS> OF ERROR CALL FROM STACK
  1702	002516	275 03 0 00 000001 		SUBI	3,1
  1703	002517	312 03 0 00 030052 		CAME	3,ERRPC		;SKIP IF SAME ERROR
  1704	002520	254 00 0 00 002530 		JRST	%ERPNT
  1705	002521	336 00 0 00 007541 		SKIPN	%ERFLG
  1706	002522	254 00 0 00 002526 		JRST	.+4		;DON'T CHECK REPEAT COUNTS
  1707	002523	316 15 0 00 007545 		CAMN	REPT,%RP
  1708	002524	312 16 0 00 007546 		CAME	REPT1,%RP1
  1709	002525	254 00 0 00 002530 		JRST	%ERPNT		;DIFFERENT, PRINT ERROR
  1710	002526	607 00 0 00 001000 		TLNN	PALERS		;PRINT ALL ERRORS ?
  1711	002527	254 00 0 00 002731 		JRST	%ERSW1		;THIS ERROR ALREADY REPORTED ONCE.
  1712
  1713					S^;*********************************************************************^
  1714					;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
  1715					S^;*********************************************************************^
  1716
  1717	002530	202 15 0 00 007545 	%ERPNT:	MOVEM	REPT,%RP#	;SAVE REPEAT COUNTS
  1718	002531	202 16 0 00 007546 		MOVEM	REPT1,%RP1#
  1719	002532	202 03 0 00 030052 		MOVEM	3,ERRPC		;SAVE ERROR CALL ADDRESS
  1720	002533	603 00 0 00 040000 		TLNE	0,NOPNT
  1721	002534	254 00 0 00 002731 		JRST	%ERSW1
  1722	002535	037 01 0 00 000026 		PFORCE			;OVERRIDE CONTROL O
  1723	002536	402 00 0 00 007540 		SETZM	%ERCNT#
  1724	002537	335 00 0 00 030043 		SKIPGE	MONCTL		;DIAG MON OR SYS EXER ?
  1725	002540	254 00 0 00 002743 		JRST	%ERPRA		;YES, GO PRINT TITLE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 14
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0098

  1726													SALL
  1727	002541	336 00 0 00 030047 	%ERPRB:	SKIPN	PASCNT
  1728	002542	254 00 0 00 002546 		JRST	.+4		;DON'T PRINT PASS COUNTER ON FIRST PASS
  1729	002543	037 02 0 00 007051 		PMSG	<^TEST PASS COUNT = >
  1730	002544	200 00 0 00 030047 		MOVE	0,PASCNT
  1731	002545	037 15 0 00 000000 		PNTDEC			;PRINT TEST PASS COUNTER
  1732	002546	350 00 0 00 007435 		AOS	PERTLS		;INCREMENT PRINTED ERROR TOTAL
  1733	002547	037 02 0 00 007055 		PMSG	<^PC=  >
  1734	002550	201 00 0 03 000000 		MOVEI	0,(3)
  1735	002551	037 06 0 00 000000 		PNT6			;PRINT PC OF ERROR CALL.
  1736	002552	037 02 0 00 007057 		PMSG	<^SWITCHES = >
  1737	002553	200 00 0 00 030046 		MOVE	CONSW
  1738	002554	037 13 0 00 000000 		PNTHW			;PRINT SWITCHES AT ERROR
  1739	002555	260 17 0 00 002475 		GO	%EACR
  1740	002556	332 00 0 00 030514 		SKIPE	%ERHI3		;IF NON-ZERO, XCT USERS ROUTINE
  1741	002557	256 00 0 00 030514 		XCT	%ERHI3
  1742
  1743	002560	550 03 1 00 030052 		HRRZ	3,@ERRPC	;GET "E FIELD" OF ERROR CALL
  1744	002561	200 00 0 00 030046 		MOVE	0,CONSW		;AC3 HAS THE ERROR CALL ADDR IN IT
  1745	002562	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1746	002563	254 00 0 00 002604 		JRST	%ERPR2		;YES
  1747	002564	201 00 0 00 007062 		MOVEI	0,SIXBTZ	<^ERROR IN >
  1748	002565	554 01 0 03 000000 		HLRZ	1,(3)		;GET NAME OF FAILING TEST
  1749	002566	322 01 0 00 002574 		JUMPE	1,%ERPR1	;JUMP IF NO TEST NAME
  1750	002567	037 14 0 00 000003 		PSIXL			;*DEFINE T=0 TO INHIBIT TEST NAME		
  1751	002570	200 00 0 00 000001 		MOVE	0,1
  1752	002571	037 14 0 00 000003 		PSIXL			;REPORT NAME OF FAILING TEST
  1753	002572	201 00 0 00 007064 		MOVEI	0,SIXBTZ	< - >
  1754	002573	254 00 0 00 002575 		JRST	.+2
  1755	002574	201 00 0 00 007065 	%ERPR1:	MOVEI	0,SIXBTZ	<^>
  1756	002575	550 01 0 03 000000 		HRRZ	1,(3)		;GET ADDRESS OF FUNCTION MSG
  1757	002576	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1758	002577	316 01 0 00 007056 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1759	002600	254 00 0 00 002604 		JRST	%ERPR2		;JUMP IF NO FUNCTION CALLED OUT.
  1760	002601	037 14 0 00 000003 		PSIXL		
  1761	002602	550 00 0 03 000000 		HRRZ	0,(3)		;GET MESSAGE ADDRESS AGAIN
  1762	002603	037 14 0 00 000003 		PSIXL			;REPORT FUNCTION BEING TESTED.
  1763	002604	476 00 0 00 030123 	%ERPR2:	SETOM	%DISCR#		;SET 'DISCREPANCY FLAG'.
  1764													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 15
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0099

  1765					S^;*********************************************************************^
  1766					;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
  1767					S^;*********************************************************************^
  1768													SALL
  1769	002605	200 00 0 00 007544 	%ERP2B:	MOVE	%LUUO
  1770	002606	241 00 0 00 000015 		ROT	0,15		;GET THE X ARGUEMENT
  1771	002607	405 00 0 00 000017 		ANDI	0,17
  1772	002610	326 00 0 00 002612 		JUMPN	0,.+2		;PRINT 12 OCTAL DIGITS IF X=0
  1773	002611	201 00 0 00 000014 		MOVEI	0,14
  1774	002612	303 00 0 00 000014 		CAILE	0,14		;MAKE SURE THAT X IS A LEGAL ARGUMENT
  1775	002613	037 15 0 00 000004 		FATAL			;PROGRAM CALL ERROR
  1776	002614	242 00 0 00 000027 		LSH	0,^D<35-12>	;PUT X IN AC FIELD
  1777	002615	270 00 0 00 007066 		ADD	0,[PNTA]	;PRINT THE X ARGUEMENT
  1778	002616	202 00 0 00 007406 		MOVEM	0,%ERIN2
  1779	002617	201 00 0 00 007067 		MOVEI	0,SIXBTZ	<^CORRECT:  >
  1780	002620	554 02 0 03 000001 		HLRZ	2,1(3)		;GET ADDRESS OF EXPECTED TEST RESULTS
  1781	002621	326 02 0 00 002624 		JUMPN	2,.+3
  1782	002622	402 00 0 00 030123 		SETZM	%DISCR		;NO 'CORRECT RESULT' TYPEOUT
  1783	002623	254 00 0 00 002643 		JRST	%ERPR3
  1784	002624	476 00 0 00 030117 		SETOM	%CORFLG
  1785	002625	303 02 0 00 000003 		CAILE	2,3		;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
  1786	002626	254 00 0 00 002636 		JRST	%ERP2A
  1787	002627	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1788	002630	200 01 0 00 007535 		MOVE	1,%AC1
  1789	002631	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1790	002632	200 01 0 00 007536 		MOVE	1,%AC2
  1791	002633	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1792	002634	200 01 0 00 007537 		MOVE	1,%AC3
  1793	002635	254 00 0 00 002637 		JRST	.+2
  1794	002636	200 01 0 02 000000 	%ERP2A:	MOVE	1,(2)
  1795													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 16
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0100

  1796					S^;*********************************************************************^
  1797					;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
  1798					S^;*********************************************************************^
  1799													SALL
  1800	002637	037 14 0 00 000003 		PSIXL			;CORRECT RESULTS.
  1801	002640	200 00 0 00 000001 		MOVE	0,1
  1802	002641	264 00 0 00 007405 		JSR	%ERIN1		;REPORT CORRECT DATA
  1803	002642	202 01 0 00 030120 		MOVEM	1,%COREC#	;SAVE CORRECT DATA
  1804	002643	201 00 0 00 007071 	%ERPR3:	MOVEI	0,SIXBTZ	<^ACTUAL:   >
  1805	002644	550 02 0 03 000001 		HRRZ	2,1(3)		;GET ADDRESS OF ACTUAL TEST RESULTS.
  1806	002645	326 02 0 00 002650 		JUMPN	2,.+3
  1807	002646	402 00 0 00 030123 		SETZM	%DISCR		;NO 'ACTUAL RESULT' TYPEOUT.
  1808	002647	254 00 0 00 002667 		JRST	%ERPR4
  1809	002650	476 00 0 00 030121 		SETOM	%ACTFL
  1810	002651	303 02 0 00 000003 		CAILE	2,3		;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
  1811	002652	254 00 0 00 002662 		JRST	%ERP3A
  1812	002653	306 02 0 00 000001 		CAIN	2,1		;AC1?
  1813	002654	200 01 0 00 007535 		MOVE	1,%AC1
  1814	002655	306 02 0 00 000002 		CAIN	2,2		;AC2?
  1815	002656	200 01 0 00 007536 		MOVE	1,%AC2
  1816	002657	306 02 0 00 000003 		CAIN	2,3		;AC3?
  1817	002660	200 01 0 00 007537 		MOVE	1,%AC3
  1818	002661	254 00 0 00 002663 		JRST	.+2
  1819	002662	200 01 0 02 000000 	%ERP3A:	MOVE	1,(2)
  1820													LALL
  1821					S^;*********************************************************************^
  1822					;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
  1823					S^;*********************************************************************^
  1824													SALL
  1825	002663	037 14 0 00 000003 		PSIXL			;ACTUAL RESULTS
  1826	002664	200 00 0 00 000001 		MOVE	0,1
  1827	002665	264 00 0 00 007405 		JSR	%ERIN1		;REPORT ACTUAL DATA
  1828	002666	202 01 0 00 030122 		MOVEM	1,%ACTUL#	;SAVE ACTUAL DATA
  1829
  1830	002667	201 00 0 00 007073 	%ERPR4:	MOVEI	0,SIXBTZ	<^DISCREP:  >
  1831	002670	336 00 0 00 030123 		SKIPN	%DISCR		;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
  1832	002671	254 00 0 00 002700 		JRST	%ERPR5		;ACTUAL DATA REPORTED.
  1833	002672	200 01 0 00 030120 		MOVE	1,%COREC
  1834	002673	430 01 0 00 030122 		XOR	1,%ACTUL	;XOR CORRECT & ACTUAL DATA
  1835	002674	037 14 0 00 000003 		PSIXL		
  1836	002675	200 00 0 00 000001 		MOVE	0,1
  1837	002676	264 00 0 00 007405 		JSR	%ERIN1		;REPORT DISC BETWEEN COR & ACT
  1838	002677	202 01 0 00 030123 		MOVEM	1,%DISCR	;SAVE DISCREPANCY DATA
  1839													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 17
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0101

  1840					S^;*********************************************************************^
  1841					;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
  1842					S^;*********************************************************************^
  1843
  1844	002700	200 00 0 00 030046 	%ERPR5:	MOVE	0,CONSW
  1845	002701	603 00 0 00 000200 		TLNE	TXTINH		;TEXT INHIBITED ?
  1846	002702	254 00 0 00 002712 		JRST	%ERPR6		;YES
  1847	002703	554 01 0 03 000002 		HLRZ	1,2(3)		;GET ADDRESS OF ASCIZ TEXT.
  1848	002704	200 01 0 01 000000 		MOVE	1,(1)		;GET MESSAGE
  1849	002705	316 01 0 00 007056 		CAMN	1,[SIXBIT\_\]	;BLANK MESSAGE ?
  1850	002706	254 00 0 00 002712 		JRST	%ERPR6		;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
  1851	002707	037 00 0 00 030242 		PCRL
  1852	002710	554 00 0 03 000002 		HLRZ	0,2(3)		;GET MESSAGE ADDRESS AGAIN
  1853	002711	037 14 0 00 000003 		PSIXL		
  1854	002712	037 00 0 00 030242 	%ERPR6:	PCRL
  1855	002713	550 00 0 03 000002 		HRRZ	0,2(3)		;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
  1856	002714	260 17 0 00 002476 		GO	%EACR1
  1857	002715	202 00 0 00 007543 		MOVEM	0,%ERXTR#
  1858	002716	322 00 0 00 002725 		JUMPE	0,%ERMORE	;JUMP IF NONE
  1859	002717	200 00 0 00 030046 		MOVE	0,CONSW
  1860	002720	603 00 0 00 000200 		TLNE	0,TXTINH	;TEXT INHIBITED ?
  1861	002721	254 00 0 00 002725 		JRST	%ERMORE		;YES, NO ADDITIONAL PRINT
  1862	002722	200 00 0 00 007534 		MOVE	0,%AC0
  1863	002723	260 17 1 00 007543 		GO	@%ERXTR		;XFER TO PRINT ROUTINE, RETURN TO ERMORE
  1864	002724	202 00 0 00 007534 		MOVEM	0,%AC0
  1865	002725	200 00 0 00 007534 	%ERMORE:MOVE	0,%AC0
  1866	002726	256 00 0 00 030101 		XCT	ERMORE		;TO ADD ROUTINE PLACE XFR AT ERMORE
  1867									;IN "FIXED"
  1868	002727	260 17 0 00 002470 		GO	%EACS
  1869	002730	260 17 0 00 004437 		GO	$SWTCH
  1870
  1871					S^;*********************************************************************^
  1872					;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
  1873					S^;*********************************************************************^
  1874
  1875	002731	260 17 0 00 005067 	%ERSW1:	GO	$TALTM		;ALTMODE CHECK
  1876	002732	254 00 0 00 002736 		JRST	.+4		;NONE
  1877	002733	201 00 0 00 002736 		MOVEI	.+3		;SAVE ADDRESS FOR CONTINUE
  1878	002734	202 00 0 00 000130 		MOVEM	JOBOPC
  1879	002735	254 00 1 00 030063 		JRST	@ALTMGO		;PERFORM TRANSFER
  1880	002736	200 03 0 00 030046 		MOVE	3,CONSW
  1881	002737	607 03 0 00 002000 		TLNN	3,ERSTOP	;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
  1882	002740	254 00 0 00 002747 		JRST	%ERSW2		;NO
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 18
SUBSMM	MAC	13-Jun-79 16:28		*CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER                                           SEQ 0102

  1883					S^;*********************************************************************^
  1884					;*EXECUTE HALT IF SWITCH ERSTOP SET.
  1885					S^;*********************************************************************^
  1886
  1887	002741	260 17 0 00 002475 	%ERS1A:	GO	%EACR		;RESTORE AC'S
  1888	002742	254 00 0 00 003111 		JRST	$ERHLT		;USE SUBROUTINE ERROR HALT
  1889
  1890	002743	336 00 0 00 007542 	%ERPRA:	SKIPN	%ERFST#		;PRINT PROGRAM NAME
  1891	002744	037 04 0 00 000002 		PNTNM
  1892	002745	476 00 0 00 007542 		SETOM	%ERFST
  1893	002746	254 00 0 00 002541 		JRST	%ERPRB
  1894
  1895					S^;*********************************************************************^
  1896					;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
  1897					S^;*********************************************************************^
  1898
  1899	002747	607 03 0 00 004000 	%ERSW2:	TLNN	3,LOOPER
  1900	002750	402 00 0 00 030116 		SETZM	SCOPE		;CLEAR SCOPE LOOP CONTROL
  1901	002751	350 00 0 00 007540 		AOS	%ERCNT		;INCREMENT ERROR COUNT
  1902
  1903					S^;*********************************************************************^
  1904					;*RING TTY BELL IF DING SWITCH IS SET.
  1905					S^;*********************************************************************^
  1906
  1907	002752	603 03 0 00 010000 	%ERSW3:	TLNE	3,DING
  1908	002753	037 01 0 00 000007 		PBELL
  1909
  1910					S^;*********************************************************************^
  1911					;*RETURN TO ERROR CALL ADDRESS+1
  1912					S^;*********************************************************************^
  1913
  1914	002754	260 17 0 00 002476 	%EXCAL:	GO	%EACR1
  1915	002755	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  1916	002756	254 00 0 00 002762 		JRST	%EXCL1		;NO, CONTINUE PROGRAM
  1917	002757	200 00 0 00 007435 		MOVE	0,PERTLS	;YES
  1918	002760	301 00 0 00 000005 		CAIL	0,5		;PRINTED ALLOWED ERRORS ?
  1919	002761	254 00 0 00 002766 		JRST	%EXCL2		;YES
  1920	002762	200 00 0 00 007534 	%EXCL1:	MOVE	0,%AC0
  1921	002763	332 00 0 00 030513 		SKIPE	%ERHI2		;ANY USERS INSTRUCTION ?
  1922	002764	256 00 0 00 030513 		XCT	%ERHI2		;YES, DO USERS ROUTINE
  1923	002765	263 17 0 00 000000 		RTN			;CONTINUE PROGRAM
  1924	002766				%EXCL2:	PMSGF	<^EXCEEDED ALLOWED ERRORS^>^
  1925	002766	037 04 0 00 007075 		PSIXMF	[SIXBIT\^EXCEEDED ALLOWED ERRORS^_\]^
  1926	002767	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 19
SUBSMM	MAC	13-Jun-79 16:28		PROCESSOR TYPE DETERMINATION                                                       SEQ 0103

  1927					SUBTTL	PROCESSOR TYPE DETERMINATION
  1928					S^;*********************************************************************^
  1929
  1930	002770	402 00 0 00 030505 	$CPUTP:	SETZM	CYCL60
  1931	002771	402 00 0 00 030041 		SETZM	KLFLG
  1932	002772	402 00 0 00 030040 		SETZM	KAIFLG
  1933	002773	200 01 0 00 007050 	$CPSM:	MOVE	1,[1,,1]	;IF SM10, AC1 AFTER BLT WILL CHANGE
  1934	002774	251 01 0 00 000001 		BLT	1,1
  1935	002775	316 01 0 00 007050 		CAMN	1,[1,,1]
  1936	002776	254 04 0 00 002016 		HALT	CPIERR		;WRONG PROCESSOR
  1937	002777	476 00 0 00 030041 		SETOM	KLFLG		;SM10 - SET FLAG
  1938	003000	476 00 0 00 030524 		SETOM	SM10
  1939
  1940	003001	200 00 0 00 007102 	$CPLII:	MOVE	[JRST PFSTRT]	;SET POWER FAIL RECOVERY INSTRUCTION
  1941	003002	202 00 0 00 000070 		MOVEM	70
  1942	003003	402 00 0 00 007507 		SETZM	$PWRF
  1943	003004	7 000 00 0 00 000000 		BLKI	APR,0		;GET SM10 HARDWARE OPTIONS
  1944	003005	602 00 0 00 400000 		TRNE	0,1B18		;50 HZ BIT SET ?
  1945	003006	476 00 0 00 030505 		SETOM	CYCL60		;YES, SET INDICATOR
  1946	003007	264 00 0 00 004712 		CTYINI			;INITIALIZE CTY
  1947	003010	332 00 0 00 030043 		SKIPE	MONCTL		;DIAGNOSTIC MONITOR ?
  1948	003011	263 17 0 00 000000 		RTN			;YES, NO FURTHER INIT
  1949
  1950	003012	201 00 0 00 003521 		MOVEI	$IPGFL		;SETUP INITIALIZATION PAGE FAIL TRAP
  1951	003013	202 00 0 00 000502 		MOVEM	LPGFTR
  1952	003014	7 010 24 0 00 000000 		CONI	PAG,0
  1953	003015	620 00 0 00 057777 		TRZ	0,57777
  1954	003016	7 010 20 1 00 000000 		CONO	PAG,@0		;CLEAR EBR
  1955	003017	7 010 24 0 00 000000 		CONI	PAG,0		;READ EBR
  1956	003020	620 00 0 00 620000 		TRZ	0,620000	;CLEAR CACHE & TRPENB
  1957	003021	302 00 0 00 000000 		CAIE	0,0
  1958	003022	254 04 0 00 002016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  1959	003023	7 010 14 0 00 007103 		DATAO	PAG,[LLDUSB,,400000] ;CLEAR UBR
  1960	003024	7 010 04 0 00 000000 		DATAI	PAG,0		;READ UBR
  1961	003025	405 00 0 00 003777 		ANDI	0,3777		;KEEP ONLY BASE REG BITS
  1962	003026	302 00 0 00 000000 		CAIE	0,0
  1963	003027	254 04 0 00 002016 		HALT	CPIERR		;NOT CLEAR, FATAL ERROR
  1964	003030	263 17 0 00 000000 		RTN
  1965
  1966	003031	200 00 0 00 030046 	$SMCSH:	MOVE	CONSW
  1967	003032	607 00 0 00 000020 		TLNN	INHCSH		;CACHE INHIBITED ?
  1968	003033	332 00 0 00 030506 		SKIPE	CSHFLG
  1969	003034	263 17 0 00 000000 		RTN			;YES
  1970	003035	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  1971	003036	607 00 0 00 000100 		TLNN	INHPAG		;NO, IS PAGING INHIBITED ?
  1972	003037	254 00 0 00 003041 		JRST	.+2		;NO, PAGING ALLOWED
  1973	003040	263 17 0 00 000000 		RTN			;YES, NO CACHE THEN EITHER
  1974	003041	260 17 0 00 002151 		GO	$MAPEX		;REMAP EXEC FOR CACHE
  1975	003042	7 010 24 0 00 000000 		CONI	PAG,0
  1976	003043	620 00 0 00 040000 		TRZ	0,LSMODE	;CLEAR SECTION MODE
  1977	003044	660 00 0 00 020000 		TRO	0,LTRPEN	;SET TRAP ENABLE
  1978	003045	7 010 20 1 00 000000 		CONO	PAG,@0
  1979	003046	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 20
SUBSMM	MAC	13-Jun-79 16:28		"DIAMON" FILE SELECTION & READ                                                     SEQ 0104

  1980					SUBTTL	"DIAMON" FILE SELECTION & READ
  1981					S^;*********************************************************************^
  1982
  1983	003047	261 17 0 00 000000 	$FSELECT:PUT	0
  1984	003050	402 00 0 00 007460 		SETZM	$FSELF#
  1985	003051	200 00 0 00 007104 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  1986	003052	251 00 0 00 007426 		BLT	POWER+16
  1987	003053	262 17 0 00 000000 		GET	0
  1988	003054	336 00 0 00 027772 		SKIPN	FSELNK		;ANY FILE SELECT LINK ?
  1989	003055	254 00 0 00 003067 		JRST	$FSEL1		;NO
  1990
  1991	003056	260 17 1 00 027772 		GO	@FSELNK		;TRANSFER TO "DIAMON"
  1992	003057	254 00 0 00 003062 		JRST	$FSEL2		;ERROR RTN, AC0 HAS CODE
  1993
  1994	003060	476 00 0 00 007460 		SETOM	$FSELF		;FOUND, SET FILE SELECTED FLAG
  1995	003061	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN
  1996	003062	261 17 0 00 000000 	$FSEL2:	PUT	0
  1997	003063	204 00 0 00 007104 		MOVS	0,[1,,POWER+1]	;RESTORE ACS
  1998	003064	251 00 0 00 000016 		BLT	16
  1999	003065	262 17 0 00 000000 		GET	0
  2000	003066	263 17 0 00 000000 		RTN
  2001
  2002	003067	402 00 0 00 000000 	$FSEL1:	SETZM	0		;NO "DIAMON" CAPABILTY
  2003	003070	254 00 0 00 003062 		JRST	$FSEL2
  2004
  2005					S^;*********************************************************************^
  2006					;*"DIAMON" FILE READ
  2007					S^;*********************************************************************^
  2008
  2009	003071	201 00 0 00 000001 	$FRD8:	MOVEI	0,1		;SET FLAG FOR 8BIT READ
  2010	003072	254 00 0 00 003076 		JRST	.+4
  2011	003073	474 00 0 00 000000 	$FRD36:	SETO			;SET FLAG FOR 36 BIT READ
  2012	003074	254 00 0 00 003076 		JRST	.+2
  2013	003075	400 00 0 00 000000 	$FREAD:	SETZ			;SET FLAG FOR 7 BIT ASCII READ
  2014	003076	261 17 0 00 000000 		PUT	0
  2015	003077	336 00 0 00 007460 		SKIPN	$FSELF		;WAS ANY FILE SELECTED ?
  2016	003100	037 15 0 00 000004 		FATAL			;NO
  2017	003101	336 00 0 00 027773 		SKIPN	FRDLNK		;ANY FILE READ LINK ?
  2018	003102	037 15 0 00 000004 		FATAL			;NO
  2019	003103	200 00 0 00 007104 		MOVE	0,[1,,POWER+1]	;SAVE ACS
  2020	003104	251 00 0 00 007426 		BLT	POWER+16
  2021	003105	262 17 0 00 000000 		GET	0		;GET FORMAT FLAG
  2022	003106	260 17 1 00 027773 		GO	@FRDLNK		;TRANSFER TO "DIAMON"
  2023	003107	254 00 0 00 003062 		JRST	$FSEL2		;EOF
  2024	003110	254 00 0 00 003061 		JRST	$FSEL2-1	;OK, SKIP RETURN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 21
SUBSMM	MAC	13-Jun-79 16:28		PROGRAM HALTS                                                                      SEQ 0105

  2025					SUBTTL	PROGRAM HALTS
  2026
  2027					S^;*********************************************************************^
  2028					;*SUBROUTINE ERROR HALT
  2029					S^;*********************************************************************^
  2030
  2031	003111	037 04 0 00 000002 	$ERHLT:	PNTNM			;PRINT PROGRAM NAME
  2032						PMSGF	<? ERROR HALT AT >^
  2033	003112	037 04 0 00 007105 		PSIXMF	[SIXBIT\? ERROR HALT AT _\]^
  2034	003113	262 17 0 00 007457 		GET	$ERH0
  2035	003114	261 17 0 00 000000 		PUT	0
  2036	003115	200 00 0 00 007457 		MOVE	AC0,$ERH0#	;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
  2037	003116	370 00 0 00 000000 		SOS			;SUBTRACT ONE FOR USRPC OF ERROR
  2038	003117	037 06 0 00 000001 		PNT6F			;PRINT USRPC FORCED
  2039	003120	037 01 0 00 030242 		PCRLF
  2040	003121	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER MONITOR CONTROL ?
  2041	003122	254 00 0 00 003130 		JRST	$ERHL4		;NO..HALT AT USRPC WHERE UUO OCCURRED
  2042	003123	260 17 0 00 004437 	$ERHL1:	GO	$SWTCH		;READ SWITCHES INTO AC0
  2043	003124	603 00 0 00 002000 		TLNE	0,ERSTOP	;HALT ON ERROR SWITCH SET ?
  2044	003125	254 00 0 00 003130 		JRST	$ERHL4		;YES...HALT
  2045	003126	262 17 0 00 000000 	$ERHL3:	GET	AC0		;RESTORE  THE STACK (P - 1)
  2046	003127	254 00 0 00 030061 		JRST	$BEND2		;END OF PROGRAM
  2047	003130	260 17 0 00 006714 	$ERHL4:	COMCLR
  2048	003131	262 17 0 00 000000 		GET	AC0
  2049	003132	254 04 1 00 007457 		HALT	@$ERH0		;HALT WHERE ERROR OCCURED
  2050
  2051					S^;*********************************************************************^
  2052					;*FATAL PROGRAM ERROR HALT
  2053					S^;*********************************************************************^
  2054
  2055	003133	037 04 0 00 000002 	$FATAL:	PNTNM
  2056						PMSGF	<? FATAL PROGRAM ERROR AT >^
  2057	003134	037 04 0 00 007110 		PSIXMF	[SIXBIT\? FATAL PROGRAM ERROR AT _\]^
  2058	003135	200 00 0 17 000000 		MOVE	AC0,(P)		;RETRIEVE USRPC + 1 FROM THE STACK
  2059	003136	370 00 0 00 000000 		SOS			;- 1
  2060	003137	037 06 0 00 000001 		PNT6F			;PRINT IT
  2061	003140	037 01 0 00 030242 		PCRLF
  2062	003141	331 00 0 00 030043 		SKIPL	MONCTL		;EXEC - DIAGNOSTIC MONITOR ?
  2063	003142	254 00 0 00 003146 		JRST	$FATL1		;NO, END OF PROGRAM
  2064	003143	260 17 0 00 004437 		GO	$SWTCH		;YES ... READ SWITCHES
  2065	003144	607 00 0 00 002000 		TLNN	ERSTOP		;STOP ON ERROR ?
  2066	003145	254 00 0 00 030061 		JRST	$BEND2		;NO, END OF PROGRAM
  2067
  2068	003146				$FATL1:
  2069	003146	261 17 0 00 000000 	$DDTENT:PUT	0
  2070	003147	200 00 0 00 010001 		MOVE	AC0,DDT+1	;GET DDT ID
  2071	003150	312 00 0 00 007115 		CAME	AC0,[ASCII/DDT/]
  2072	003151	254 00 0 00 030061 		JRST	$BEND2		;NOT LOADED, END PROGRAM
  2073	003152	260 17 0 00 006714 		COMCLR
  2074	003153	262 17 0 00 000000 		GET	0
  2075	003154	254 00 1 00 027775 		JRST	@DDTLNK		;DDT LOADED, GO TO IT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 22
SUBSMM	MAC	13-Jun-79 16:28		PROGRAM NAME PRINTER                                                               SEQ 0106

  2076					SUBTTL	PROGRAM NAME PRINTER
  2077					S^;*********************************************************************^
  2078													SALL
  2079	003155	331 00 0 00 030043 	$PNTNM:	SKIPL	MONCTL		;DIAG MON / SYS EXR ?
  2080	003156	254 00 0 00 003222 		JRST	$PNM2		;NO
  2081	003157	037 00 1 00 030025 		PNTMSG	@$PNAME		;PRINT PROGRAM NAME
  2082	003160	037 02 0 00 007116 		PMSG	<VERSION >
  2083	003161	554 00 0 00 000137 		HLRZ	JOBVER
  2084	003162	037 16 0 00 000003 		PNTOCS			;PRINT MCN LEVEL
  2085	003163	037 00 0 00 000056 		PNTCI	"."
  2086	003164	550 00 0 00 000137 		HRRZ	JOBVER
  2087	003165	037 16 0 00 000003 		PNTOCS			;PRINT DEC VERSION
  2088	003166	037 02 0 00 007120 		PMSG	<, SV=>
  2089	003167	554 00 0 00 002006 		HLRZ	SUBVER
  2090	003170	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" MCN LEVEL
  2091	003171	037 00 0 00 000056 		PNTCI	"."
  2092	003172	550 00 0 00 002006 		HRRZ	SUBVER
  2093	003173	037 16 0 00 000003 		PNTOCS			;PRINT "SUBRTN" DEC VERSION
  2094
  2095	003174	7 000 00 0 00 007511 	$SMSN:	BLKI	APR,$SMSNX#	;GET SM10 CPU ID INFO
  2096	003175	200 00 0 00 007511 		MOVE	$SMSNX
  2097	003176	405 00 0 00 077777 		ANDI	77777
  2098	003177	260 17 0 00 003224 		GO	$SNPNT		;PRINT CPU SERIAL NUMBER
  2099	003200	037 02 0 00 007121 		PMSG	<, MCV=>
  2100	003201	200 00 0 00 007511 		MOVE	$SMSNX
  2101	003202	207 00 0 00 000000 		MOVSS
  2102	003203	405 00 0 00 000777 		ANDI	777
  2103	003204	037 16 0 00 000003 		PNTOCS			;PRINT MICRO-CODE VERSION
  2104	003205	037 02 0 00 007123 		PMSG	<, MCO=>
  2105	003206	200 00 0 00 007511 		MOVE	$SMSNX
  2106	003207	242 00 0 00 777745 		LSH	-^D27
  2107	003210	405 00 0 00 000777 		ANDI	777
  2108	003211	037 16 0 00 000003 		PNTOCS			;PRINT MICRO-CODE OPTIONS
  2109	003212	037 02 0 00 007125 		PMSG	<, HO=>
  2110	003213	200 00 0 00 007511 		MOVE	$SMSNX
  2111	003214	242 00 0 00 777761 		LSH	-^D15
  2112	003215	405 00 0 00 000007 		ANDI	7
  2113	003216	037 16 0 00 000003 		PNTOCS			;PRINT HARDWARE OPTIONS
  2114	003217	037 02 0 00 007126 		PMSG	<, KASW=>
  2115	003220	200 00 0 00 000031 		MOVE	$80STAT
  2116	003221	037 13 0 00 000000 		PNTHW			;PRINT KEEP ALIVE AND STATUS WORD
  2117
  2118	003222	037 00 0 00 030242 	$PNM2:	PCRL
  2119	003223	263 17 0 00 000000 		RTN			;EXIT
  2120
  2121	003224	261 17 0 00 000000 	$SNPNT:	PUT	0
  2122	003225	037 02 0 00 007130 		PMSG	<, CPU#=>
  2123	003226	262 17 0 00 000000 		GET	0
  2124	003227	037 15 0 00 000000 		PNTDEC			;PRINT CPU SERIAL NUMBER
  2125	003230	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 23
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0107

  2126					SUBTTL	*SUBRTN* INTERRUPT HANDLING ROUTINES
  2127													LALL
  2128					S^;*********************************************************************^
  2129					;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
  2130					S^;*********************************************************************^
  2131
  2132	003231				PSHERR:	PMSGF	<^*****^PLIST UFLOW^>^
  2133	003231	037 04 0 00 007132 		PSIXMF	[SIXBIT\^*****^PLIST UFLOW^_\]^
  2134	003232	037 15 0 00 000004 		FATAL			;PRINT LOCATION AND EXIT
  2135
  2136					S^;*********************************************************************^
  2137					;*INTERRUPT ROUTINE INITIALIZATION
  2138					S^;*********************************************************************^
  2139
  2140	003233	200 00 0 00 007136 	$ITRIN:	MOVE	[JSR ITRCH1]
  2141	003234	202 00 0 00 000042 		MOVEM	42
  2142	003235	202 00 0 00 000044 		MOVEM	44
  2143	003236	202 00 0 00 000046 		MOVEM	46
  2144	003237	202 00 0 00 000050 		MOVEM	50
  2145	003240	202 00 0 00 000052 		MOVEM	52
  2146	003241	202 00 0 00 000054 		MOVEM	54
  2147	003242	202 00 0 00 000056 		MOVEM	56
  2148
  2149	003243	200 00 0 00 007137 		MOVE	[JRST $ITRC1]	;SETUP "FIXED" LINKING
  2150	003244	202 00 0 00 030105 		MOVEM	ITRCH1+1
  2151	003245	200 00 0 00 007140 		MOVE	[JRST RESRTX]
  2152	003246	202 00 0 00 030076 		MOVEM	RESRT1
  2153	003247	254 00 0 00 003502 		JRST	$SM10
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 24
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0108

  2154					S^;*********************************************************************^
  2155					;*DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
  2156					S^;*********************************************************************^
  2157													SALL
  2158	003250	202 17 0 00 007476 	$PDOVU:	MOVEM	P,$PDOVP#
  2159	003251	200 17 0 00 030303 		MOVE	P,PLIST		;RESET POINTER
  2160	003252	201 00 0 00 030103 		MOVEI	0,$PSHER
  2161	003253	261 17 0 00 000000 		PUSH	P,0
  2162	003254	037 02 0 00 007141 		PMSG	<^*****^PLIST OVERFLOW P=>
  2163	003255	200 00 0 00 007476 		MOVE	0,$PDOVP
  2164	003256	037 13 0 00 000000 		PNTHW
  2165	003257	400 00 0 00 000000 		SETZ
  2166	003260	254 00 0 00 003275 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2167
  2168	003261	201 00 0 00 007146 	$MPVU:	MOVEI	SIXBTZ	<^MEMORY PROT>
  2169	003262	254 00 0 00 003275 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2170
  2171	003263	201 00 0 00 007151 	$NXMU:	MOVEI	SIXBTZ	<^NON-EX MEMORY>
  2172	003264	254 00 0 00 003275 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2173
  2174	003265	200 00 0 00 030106 	$PAREX:	MOVE	0,$ACC0
  2175	003266	256 00 0 00 030100 		XCT	$PARER		;EXECUTE USER ROUTINE, IF PROVIDED
  2176	003267	201 00 0 00 007154 		MOVEI	SIXBTZ	<^MEMORY PARITY>
  2177	003270	254 00 0 00 003275 		JRST	$ITR1A		;COMMON INTERRUPT ROUTINE
  2178													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 25
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0109

  2179					S^;*********************************************************************^
  2180					;*COMMON INTERRUPT HANDLERS
  2181					S^;*********************************************************************^
  2182													SALL
  2183	003271	200 00 0 00 030106 	$ITRHZ:	MOVE	0,$ACC0
  2184	003272	256 00 0 00 030071 		XCT	$ITRHL		;EXECUTE USER ROUTINE, IF SUPPLIED
  2185	003273	7 004 20 0 00 000400 		CONO	PI,PIOFF	;CLEAR PI SYSTEM
  2186	003274	201 00 0 00 007157 		MOVEI	SIXBTZ	<^UNKNOWN INTERRUPT>
  2187													LALL
  2188
  2189					S^;*********************************************************************^
  2190					;*PRINT CAUSE AND OTHER PERTINENT INFO
  2191					S^;*********************************************************************^
  2192													SALL
  2193	003275				$ITR1A:
  2194	003275	332 00 0 00 000000 	$ITR1B:	SKIPE	0
  2195	003276	037 14 0 00 000003 		PSIXL			;PRINT CAUSE
  2196	003277	037 02 0 00 007163 		PMSG	<^APR            PI             FLAGS  PC      PROG^>
  2197	003300	200 00 0 00 030110 		MOVE	$SVAPR#
  2198	003301	037 13 0 00 000000 		PNTHW			;PRINT APR CONI BITS
  2199	003302	037 00 0 00 000040 		PSP
  2200	003303	200 00 0 00 030107 		MOVE	$SVPI#
  2201	003304	037 13 0 00 000000 		PNTHW			;PRINT PI CONI BITS
  2202	003305	037 00 0 00 000040 		PSP
  2203	003306	200 00 0 00 030104 		MOVE	ITRCH1
  2204	003307	370 00 0 00 000000 		SOS
  2205	003310	037 13 0 00 000000 		PNTHW			;PRINT FLAGS, PC
  2206	003311	037 00 0 00 000040 		PSP
  2207	003312	550 00 0 17 000000 		HRRZ	0,(P)
  2208	003313	370 00 0 00 000000 		SOS
  2209	003314	037 06 0 00 000000 		PNT6			;PRINT LAST PUSHJ ENTRY
  2210	003315	037 00 0 00 030242 		PCRL
  2211	003316	200 00 0 00 030106 		MOVE	0,$ACC0
  2212	003317	256 00 0 00 030072 		XCT	$ITRX1		;EXECUTE USER ROUTINE, IF SUPPLIED
  2213	003320	037 15 0 00 000004 		FATAL
  2214													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 26
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0110

  2215					S^;*********************************************************************^
  2216					;*COMMON INTERRUPT ROUTINE
  2217					S^;*********************************************************************^
  2218
  2219	003321	202 00 0 00 030106 	$ITRC1:	MOVEM	AC0,$ACC0#	;SAVE AC0
  2220	003322	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE APR SYSTEM
  2221	003323	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI SYSTEM
  2222	003324	200 00 0 00 000041 		MOVE	AC0,JOB41
  2223	003325	312 00 0 00 007015 		CAME	AC0,[GO	$UORTN]
  2224	003326	254 04 0 00 002020 		HALT	LUOERR		;UUO HANDLER INVALID
  2225	003327	200 00 0 00 030106 		MOVE	AC0,$ACC0
  2226	003330	254 00 0 00 003454 		JRST	$SMITR
  2227
  2228					S^;*********************************************************************^
  2229					;*RESTORE PROCESSOR ON POWER FAIL RESTART
  2230					S^;*********************************************************************^
  2231													SALL
  2232	003331	7 010 20 0 00 000000 	RESRTX:	CONO	PAG,0		;RESET PAGING
  2233
  2234	003332	701 03 0 00 003363 		WRUBR	ACB7
  2235	003333	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 7
  2236
  2237	003334	701 03 0 00 003364 		WRUBR	ACB6
  2238	003335	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 6
  2239
  2240	003336	701 03 0 00 003365 		WRUBR	ACB5
  2241	003337	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 5
  2242
  2243	003340	701 03 0 00 003366 		WRUBR	ACB4
  2244	003341	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 4
  2245
  2246	003342	701 03 0 00 003367 		WRUBR	ACB3
  2247	003343	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 3
  2248
  2249	003344	701 03 0 00 003370 		WRUBR	ACB2
  2250	003345	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 2
  2251
  2252	003346	701 03 0 00 003371 		WRUBR	ACB1
  2253	003347	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 1
  2254
  2255	003350	701 03 0 00 003372 		WRUBR	ACB0
  2256	003351	264 00 0 00 003355 		JSR	CLRACB		;CLEAR AC BLOCK 0
  2257
  2258	003352	336 00 0 00 007507 		SKIPN	$PWRF		;DID POWER FAIL WORK?
  2259	003353	254 00 0 00 003407 		JRST	$PWRFL		;NO
  2260	003354	254 00 0 00 003536 		JRST	$SMRST		;SM10
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 27
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0111

  2261
  2262	003355	000000	000000		CLRACB:	0
  2263	003356	205 17 0 00 777761 		MOVSI	17,-17
  2264	003357	402 00 0 17 000000 		SETZM	(17)		;CLEAR ALL AC'S
  2265	003360	253 17 0 00 003357 		AOBJN	17,.-1
  2266	003361	402 00 0 00 000017 		SETZM	17
  2267	003362	254 02 1 00 003355 		JRSTF	@CLRACB
  2268
  2269	003363	407000	000000		ACB7:	1B0!7B8			;WRUBR ARGUMENTS
  2270	003364	406000	000000		ACB6:	1B0!6B8
  2271	003365	405000	000000		ACB5:	1B0!5B8
  2272	003366	404000	000000		ACB4:	1B0!4B8
  2273	003367	403000	000000		ACB3:	1B0!3B8
  2274	003370	402000	000000		ACB2:	1B0!2B8
  2275	003371	401000	000000		ACB1:	1B0!1B8
  2276	003372	400000	000000		ACB0:	1B0!0B8
  2277
  2278	003373	204 00 0 00 007104 	$RSTCM:	MOVS	[1,,POWER+1]	;RESTORE AC'S
  2279	003374	251 00 0 00 000017 		BLT	17
  2280	003375	037 04 0 00 007174 		PMSGF	<^POWER FAIL RESTART^>
  2281	003376	402 00 0 00 007507 		SETZM	$PWRF#
  2282	003377	200 00 0 00 007410 		MOVE	0,POWER
  2283	003400	256 00 0 00 030074 		XCT	$RSRTX		;EXECUTE USER ROUTINE, IF PROVIDED
  2284	003401	7 000 20 1 00 030110 		CONO	APR,@$SVAPR	;RESET APR SYSTEM
  2285	003402	204 00 0 00 007104 		MOVS	[1,,POWER+1]	;RESTORE AC'S
  2286	003403	251 00 0 00 000017 		BLT	17
  2287	003404	200 00 0 00 007410 		MOVE	0,POWER
  2288	003405	256 00 0 00 030075 		XCT	$RSRTY		;EXECUTE USER ROUTINE, IF PROVIDED
  2289	003406	254 02 1 00 007510 		JRSTF	@$PWRST
  2290
  2291	003407	265 00 0 00 030011 	$PWRFL:	PGMINT			;REINIT THE SUBROUTINE PACKAGE
  2292	003410	037 04 0 00 007200 		PMSGF	<^POWER INTERRUPT FAILED^>
  2293	003411	254 04 0 00 030000 		HALT	BEGIN
  2294													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 28
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0112

  2295					S^;*********************************************************************^
  2296					;*SM10 PUSHDOWN OVERFLOW TRAP ROUTINE
  2297					S^;*********************************************************************^
  2298
  2299	003412	202 00 0 00 030104 	$PDLOV:	MOVEM	AC0,ITRCH1	;SAVE USRPC  (VIA JSP)
  2300	003413	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2301	003414	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2302	003415	254 00 0 00 003250 		JRST	$PDOVU		;GO HANDLE IT
  2303
  2304					S^;*********************************************************************^
  2305					;*SM10 PAGE FAIL TRAP ROUTINE
  2306					S^;*********************************************************************^
  2307													SALL
  2308	003416	200 00 0 00 000501 	$PGFL:	MOVE	AC0,LPFWPC	;GET PAGE FAIL PC
  2309	003417	350 00 0 00 000000 		AOS			;BECAUSE INTERRUPT ERROR SOS'S
  2310	003420	202 00 0 00 030104 		MOVEM	AC0,ITRCH1	;SAVE USRPC
  2311	003421	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2312	003422	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2313	003423	037 02 0 00 007205 		PMSG	<^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- >
  2314	003424	200 00 0 00 000500 	$PGFL1:	MOVE	LEUPFW		;GET SM10 PAGE FAIL WORD
  2315	003425	037 13 0 00 000000 		PNTHW			;PRINT IT
  2316	003426	254 00 0 00 003532 		JRST	$PGFL2		;SM10, REPORT APR ERRORS ALSO
  2317													LALL
  2318					S^;*********************************************************************^
  2319					;*SM10 TRAP 3 ROUTINE
  2320					S^;*********************************************************************^
  2321													SALL
  2322	003427	202 00 0 00 030104 	$TRP3:	MOVEM	AC0,ITRCH1	;SAVE THE USRPC
  2323	003430	7 000 24 0 00 030110 		CONI	APR,$SVAPR	;SAVE PROCESSOR STATUS
  2324	003431	7 004 24 0 00 030107 		CONI	PI,$SVPI	;SAVE PI STATUS
  2325	003432	201 00 0 00 007214 		MOVEI	AC0,SIXBTZ	^TRAP 3 ERROR
  2326	003433	254 00 0 00 003275 		JRST	$ITR1B		;COMMON INTERRUPT ROUTINE START 
  2327													LALL
  2328					S^;*********************************************************************^
  2329					;*SM10 COMMON TRAP & MMUO SETUP
  2330					S^;*********************************************************************^
  2331
  2332	003434	205 00 0 00 255000 	$SMI:	MOVSI	(JFCL)
  2333	003435	202 00 0 00 000421 		MOVEM	AROVTP		;SETUP ARITHMETIC OV TRAP
  2334	003436	200 00 0 00 007217 		MOVE	[JSP $PDLOV]
  2335	003437	202 00 0 00 000422 		MOVEM	PDOVTP		;SETUP PDL OV TRAP
  2336	003440	200 00 0 00 007220 		MOVE	[JSP $TRP3]
  2337	003441	202 00 0 00 000423 		MOVEM	TRP3TP		;SETUP TRAP 3
  2338	003442	201 00 0 00 002300 		MOVEI	MUUOER		;SETP MUUO AS ERROR FOR THE FOLLOWING:
  2339	003443	202 00 0 00 000430 		MOVEM	KNTRP		;KERNAL MODE - NO TRAP ENABLED
  2340	003444	202 00 0 00 000431 		MOVEM	KTRP		;	"	TRAP ENABLED
  2341	003445	202 00 0 00 000432 		MOVEM	SNTRP		;SUPERVISOR - NO TRAP
  2342	003446	202 00 0 00 000433 		MOVEM	STRP		;	"	TRAP
  2343	003447	202 00 0 00 000434 		MOVEM	CNTRP		;CONCEALED - NO TRAP
  2344	003450	202 00 0 00 000435 		MOVEM	CTRP		;	"	TRAP
  2345	003451	202 00 0 00 000436 		MOVEM	PNTRP		;PUBLIC - NO TRAP
  2346	003452	202 00 0 00 000437 		MOVEM	PTRP		;   "	  TRAP
  2347	003453	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 29
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0113

  2348					S^;*********************************************************************^
  2349					;*SM10 INTERRUPT ROUTINE
  2350					S^;*********************************************************************^
  2351													SALL
  2352	003454	7 010 04 0 00 030111 	$SMITR:	DATAI	PAG,$SVPAG#	;SAVE PAGE
  2353	003455	7 010 24 0 00 030112 		CONI	PAG,$SPAG1#
  2354	003456	7 000 34 0 00 001000 		CONSO	APR,LPWRFL	;POWER FAILURE?
  2355	003457	254 00 0 00 003472 		JRST	$SMIT1		;NO ...LOOK FOR PARITY ERROR
  2356
  2357	003460	200 00 0 00 007104 	$SMPWR:	MOVE	[1,,POWER+1]	;YES
  2358	003461	251 00 0 00 007427 		BLT	POWER+17
  2359	003462	200 00 0 00 030106 		MOVE	$ACC0
  2360	003463	202 00 0 00 007410 		MOVEM	POWER
  2361	003464	200 00 0 00 030104 		MOVE	ITRCH1
  2362	003465	202 00 0 00 007510 		MOVEM	$PWRST#		;USER RESTART IF WANTED
  2363	003466	200 00 0 00 007102 		MOVE	[JRST PFSTRT]
  2364	003467	202 00 0 00 000070 		MOVEM	70
  2365	003470	476 00 0 00 007507 		SETOM	$PWRF		;NOTIFY OF POWER FAIL ON RESTART
  2366	003471	254 04 0 00 030000 		HALT	BEGIN		;UNTIL POWER ON 
  2367
  2368	003472	200 00 0 00 030110 	$SMIT1:	MOVE	$SVAPR		;GET APR CONDITIONS
  2369	003473	606 00 0 00 000600 		TRNN	LNXMER!LPARER
  2370	003474	254 00 0 00 003271 		JRST	$ITRHZ		;NONE OF THESE INTERRUPTS
  2371	003475	602 00 0 00 000400 		TRNE	LNXMER		;NON-X-MEM ERROR ?
  2372	003476	254 00 0 00 003263 		JRST	$NXMU		;YES
  2373	003477	602 00 0 00 000200 		TRNE	LPARER		;PARITY ERROR ?
  2374	003500	254 00 0 00 003265 		JRST	$PAREX		;YES
  2375	003501	254 00 0 00 003271 		JRST	$ITRHZ		;NO ...REST ARE COMMON 
  2376													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 30
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* INTERRUPT HANDLING ROUTINES                                               SEQ 0114

  2377					S^;*********************************************************************^
  2378					;*SM10 INTERRUPT AND TRAP INITIALIZATION
  2379					S^;*********************************************************************^
  2380
  2381	003502	201 00 0 00 003522 	$SM10:	MOVEI	$SMPGFL
  2382	003503	202 00 0 00 000502 		MOVEM	LPGFTR		;SETUP PAGE FAIL TRAP
  2383	003504	260 17 0 00 003434 		GO	$SMI		;SETUP TRAPS & MUUOS
  2384	003505	7 004 20 0 00 031400 	$SMCLR:	CONO	PI,LRQCLR!LPICLR!LCHNOF!LPIOFF	;CLEAR PI SYSTEM,CHNL & REQ PEND
  2385	003506	7 000 20 0 00 121600 		CONO	APR,LAPRAL	;CLEAR PROCESSOR ALL
  2386	003507	7 000 20 0 00 060160 		CONO	APR,60160	;DISABLE SOFT MEMORY ERROR,CLK & 8080
  2387
  2388	003510	336 00 0 00 030042 	$SMENB:	SKIPN	MONFLG		;MONITOR CONTROL (SPECIAL USER) ?
  2389	003511	254 00 0 00 003516 		JRST	.+5
  2390	003512	200 00 0 00 030046 		MOVE	CONSW
  2391	003513	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2392	003514	607 00 0 00 000100 		TLNN	INHPAG		;PAGING & TRAPPING INHIBITED ?
  2393	003515	260 17 0 00 003747 		GO	SMPAG		;NO, SETUP TRAP ENABLE
  2394	003516	7 000 20 0 00 000001 		CONO	APR,LAPRP1	;ENABLE CHANNEL 1
  2395	003517	7 004 20 0 00 002377 		CONO	PI,LCHNON!LPION!LPICHA	;ENABLE ALL PI CHNS
  2396	003520	263 17 0 00 000000 		RTN			;EXIT
  2397
  2398	003521	254 04 0 00 002016 	$IPGFL:	HALT	CPIERR		;SM10 INITIALIZATION PAGE FAIL
  2399
  2400	003522	554 00 0 00 000500 	$SMPGFL:HLRZ	0,LEUPFW	;GET PAGE FAIL WORD
  2401	003523	405 00 0 00 770000 		ANDI	0,770000	;ISOLATE PAGE FAIL CODE
  2402	003524	302 00 0 00 370000 		CAIE	0,370000	;IS IT NXM ?
  2403	003525	254 00 0 00 003416 		JRST	$PGFL		;NO
  2404	003526	7 000 34 0 00 000400 		CONSO	APR,LNXMER	;IS NXM FLOP SET ?
  2405	003527	254 00 0 00 003416 		JRST	$PGFL		;NO, REAL AR PARITY ERROR
  2406	003530	350 00 0 00 000501 		AOS	LPFWPC		;YES, INCREMENT PAGE FAIL PC
  2407	003531	254 02 1 00 000501 		JRSTF	@LPFWPC		;RETURN TO NEXT INSTRUCTION
  2408
  2409	003532	200 00 0 00 030110 	$PGFL2:	MOVE	$SVAPR
  2410	003533	606 00 0 00 000600 		TRNN	LNXMER!LPARER
  2411	003534	254 00 0 00 003277 		JRST	$ITR1B+2	;NO APR ERRORS
  2412	003535	254 00 0 00 003472 		JRST	$SMIT1		;YES, REPORT APR ERRORS
  2413
  2414	003536	200 17 0 00 007427 	$SMRST:	MOVE	17,POWER+17	;RESTORE PUSH POINTER
  2415	003537	260 17 0 00 003505 		GO	$SMCLR		;CLEAR & ENABLE APR & PI
  2416	003540	7 010 14 0 00 030111 		DATAO	PAG,$SVPAG	;RESET PAGING
  2417	003541	200 00 0 00 030110 		MOVE	$SVAPR		;GET ORIGINAL APR
  2418	003542	200 01 0 00 000000 		MOVE	1,0
  2419	003543	405 00 0 00 000007 		ANDI	0,7		;KEEP PI ASSIGNMENT
  2420	003544	554 01 0 00 000001 		HLRZ	1,1
  2421	003545	405 01 0 00 001760 		ANDI	1,1760		;GET ENABLE CONDITIONS
  2422	003546	434 00 0 00 000001 		OR	0,1
  2423	003547	202 00 0 00 030110 		MOVEM	$SVAPR		;SET TO REENABLE APR
  2424	003550	200 00 0 00 007004 		MOVE	0,[2000,,1000]	;SETUP ORIGINAL INITIALIZE BLOCK
  2425	003551	251 00 0 00 001020 		BLT	0,1020
  2426	003552	254 00 0 00 003373 		JRST	$RSTCM		;RESTORE CPU & RESTART
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 31
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0115

  2427					SUBTTL	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
  2428													LALL
  2429					S^;*********************************************************************^
  2430					;*END OF PASS ROUTINE
  2431					S^;*********************************************************************^
  2432													SALL
  2433	003553	350 00 0 00 030047 	$END:	AOS	PASCNT		;INCREMENT PASS COUNTER
  2434	003554	370 00 0 00 030024 		SOS	ITRCNT
  2435	003555	402 00 0 00 030116 		SETZM	SCOPE
  2436	003556	402 00 0 00 030052 		SETZM	ERRPC
  2437	003557	260 17 0 00 004437 		GO	$SWTCH
  2438	003560	603 00 0 00 400000 		TLNE	ABORT		;ABORT AT END OF PASS ?
  2439	003561	402 00 0 00 030024 		SETZM	ITRCNT		;YES
  2440	003562	335 00 0 00 030043 	$END2:	SKIPGE	MONCTL		;DIAGNOSTIC MONITOR ?
  2441	003563	254 00 0 00 003571 		JRST	$END3		;YES
  2442	003564	037 04 0 00 007221 		PMSGF	<END PASS >
  2443	003565	200 00 0 00 030047 		MOVE	PASCNT		;PRINT END OF PASS COUNT
  2444	003566	037 15 0 00 000001 		PNTDCF
  2445	003567	037 01 0 00 000056 		PNTCIF	"."
  2446	003570	037 01 0 00 030242 		PCRLF
  2447	003571	336 00 0 00 030024 	$END3:	SKIPN	ITRCNT
  2448	003572	350 00 0 17 000000 		AOS	(P)
  2449	003573	263 17 0 00 000000 		RTN
  2450
  2451													LALL
  2452					S^;*********************************************************************^
  2453					;*END OF PROGRAM ROUTINE
  2454					S^;*********************************************************************^
  2455
  2456	003574	260 17 0 00 006714 	$EOP:	COMCLR
  2457	003575	332 00 0 00 030044 		SKIPE	MONTEN		;LOADED BY ITSELF ?
  2458	003576	254 00 1 00 030012 		JRST	@RETURN		;NO, RETURN TO LOADER
  2459	003577	200 00 0 00 010001 		MOVE	DDT+1
  2460	003600	312 00 0 00 007115 		CAME	[ASCII/DDT/]
  2461	003601	254 04 0 00 030000 		HALT	BEGIN		;DDT NOT LOADED
  2462	003602	254 00 1 00 027775 		JRST	@DDTLNK		;OTHERWISE GO TO DDT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 32
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0116

  2463					SUBTTL	*SUBRTN* MEMORY CONTROL
  2464
  2465					S^;*********************************************************************^
  2466					;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
  2467					;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
  2468					;*	$MPCNK	(MAPCNK)	ACTUAL MEMORY CHUNK MAPPER
  2469					;*	$MPSET	(MAPSET)	SETS UP PAGE MAP FOR KI10
  2470					;*	$MSEG	(MEMSEG)	SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
  2471					;*				(MAPNEW=-1 FOR PAGED SEGMENTS UP TO 1024K)
  2472					;*				(MAPNEW= 0 FOR DIRECT ADDRESSING UP TO  256K)
  2473					;*	$MZRO	(MEMZRO)	ZERO'S THE MAPPED MEMORY
  2474					;*	$MPADR	(MAPADR)	VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  2475					S^;*********************************************************************^
  2476
  2477					S^;*********************************************************************^
  2478					;*EXEC MODE MEMORY MAPPING
  2479					S^;*********************************************************************^
  2480
  2481	003603	402 00 0 00 030146 	$MEMMP:	SETZM	MEMSIZ		;CLEAR MAP TABLE START ADDR
  2482	003604	200 00 0 00 007223 		MOVE  [MEMSIZ,,MEMSIZ+1]
  2483	003605	251 00 0 00 030216 		BLT	MEMSIZ+^D40	;CLEAR MEMSIZ TABLE
  2484
  2485	003606	336 00 0 00 030042 		SKIPN	MONFLG		;SPECIAL USER MODE ?
  2486	003607	254 00 0 00 003652 		JRST	$MPOL1		;YES, USE UPMP & 256K
  2487	003610	201 00 0 00 337777 		MOVEI	0,337777	;NO
  2488	003611	200 01 0 00 030046 		MOVE	1,CONSW		;SETUP SWITCHES
  2489	003612	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2490	003613	607 01 0 00 000100 		TLNN	1,INHPAG	;PAGING INHIBITED ?
  2491	003614	254 00 0 00 003616 		JRST	$MEPAG		;NO ...USE PAGING
  2492	003615	254 00 0 00 003653 		JRST	$MPOL1+1	;YES, USE UNPAGED MEM, 0-112K
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 33
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0117

  2493	003616	7 010 20 0 00 000000 	$MEPAG:	CONO	PAG,0		;TURN OFF KL STYLE PAGING
  2494	003617	205 01 0 00 777760 		MOVSI	1,-20		;SETUP EXEC-PER-PROCESS MAP
  2495	003620	200 00 0 00 007224 		MOVE	[540336,,540337]
  2496	003621	336 00 0 00 030506 		SKIPN	CSHFLG
  2497	003622	670 00 0 00 007013 		TDO	[020000,,020000]
  2498	003623	270 00 0 00 007014 		ADD	[2,,2]		;SO 112K-128K POINTS TO ITSELF
  2499	003624	202 00 0 01 000400 		MOVEM	400(1)		;VIRTUAL = PHYSICAL
  2500	003625	253 01 0 00 003623 		AOBJN	1,.-2
  2501	003626	205 00 0 00 255000 		MOVSI	(JFCL)		;SETUP ARITHMETIC TRAP
  2502	003627	202 00 0 00 000421 		MOVEM	421		;JUST IN CASE
  2503	003630	336 00 0 00 030143 		SKIPN	MAPNEW		;"MAPNEW" = 0 ?
  2504	003631	254 00 0 00 003642 		JRST	$MPOLD		;YES ...USE 256K MAPPING
  2505
  2506					S^;*********************************************************************^
  2507					;*MEMORY MAPPING CONTROL
  2508					;*MAP 1024K, 256K, 112K OR 256K SPECIAL USER
  2509					S^;*********************************************************************^
  2510
  2511	003632	200 01 0 00 000121 	$MPNEW:	MOVE	1,JOBFF		;USE FIRST FREE UP TEMP
  2512	003633	201 16 0 00 000007 		MOVEI	16,^D7		;1024K IS 8 128K CHUNKS
  2513	003634	200 00 0 00 000016 		MOVE	0,16
  2514	003635	260 17 0 00 004041 		GO	$MPSET		;SET PAGE MAP FOR 128K CHUNK
  2515	003636	200 00 0 00 007225 		MOVE  [400000,,777777]	;LOAD AC0 WITH PAGABLE ADDR BOUNDARIES
  2516	003637	260 17 0 00 003730 		GO	$MPCNK		;MAP 128K-256K VIRTUAL
  2517	003640	365 16 0 00 003634 		SOJGE	16,.-4		;COMPLETED 1024K ?
  2518	003641	254 00 0 00 003673 		JRST	$MPCMB		;YES, COMBINE POINTERS
  2519
  2520	003642	205 01 0 00 777600 	$MPOLD:	MOVSI	1,-200		;128K-256K VIRTUAL POINTS
  2521	003643	200 00 0 00 007226 		MOVE  [540376,,540377] 	;TO PHYSICAL 128K-256K
  2522	003644	260 17 0 00 003657 		GO	$CSHALW		;CACHE ALLOWED ?
  2523	003645	670 00 0 00 007013 		TDO	[020000,,020000]
  2524	003646	270 00 0 00 007014 		ADD	[2,,2]		;AND MEMORY ENDS AT 256K
  2525	003647	202 00 0 01 000200 		MOVEM	200(1)
  2526	003650	253 01 0 00 003646 		AOBJN	1,.-2
  2527	003651	260 17 0 00 003747 		GO	SMPAG		;SET TRAP ENABLE
  2528	003652	201 00 0 00 777777 	$MPOL1:	MOVEI	0,777777	;MAP 0-256K
  2529	003653	200 01 0 00 000121 		MOVE	1,JOBFF		;USE FIRST FREE UP TEMP
  2530	003654	402 00 0 00 030143 		SETZM	MAPNEW		;DIRECT ADDRESSING ONLY
  2531	003655	260 17 0 00 003730 		GO	$MPCNK		;MAP CHUNK
  2532	003656	254 00 0 00 003673 		JRST	$MPCMB		;COMBINE POINTERS 
  2533
  2534	003657	332 00 0 00 030507 	$CSHALW:SKIPE	CSHMEM
  2535	003660	254 00 0 00 030064 		JRST	CPOPJ1		;DON'T CACHE MEMORY SEGMENTS
  2536	003661	332 00 0 00 030506 		SKIPE	CSHFLG
  2537	003662	254 00 0 00 030064 		JRST	CPOPJ1		;DON'T CACHE AT ALL
  2538	003663	261 17 0 00 000000 		PUT	0
  2539	003664	200 00 0 00 030046 		MOVE	CONSW
  2540	003665	603 00 0 00 000020 		TLNE	INHCSH
  2541	003666	254 00 0 00 003671 		JRST	.+3		;CACHE SWITCH INHIBITED
  2542	003667	262 17 0 00 000000 		GET	0
  2543	003670	263 17 0 00 000000 		RTN			;OK, CACHE
  2544	003671	262 17 0 00 000000 		GET	0
  2545	003672	254 00 0 00 030064 		JRST	CPOPJ1
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 34
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0118

  2546					S^;*********************************************************************^
  2547					;*COMBINE EXISTENT CHUNKS FROM MAPCNK
  2548					;*PUT POINTERS IN MEMSIZ TABLE
  2549					S^;*********************************************************************^
  2550
  2551	003673	402 00 0 00 000002 	$MPCMB:	SETZM	2		;SET MEMSIZ TABLE POINTER (AC2) @ 0
  2552	003674	275 01 0 00 000001 		SUBI	1,1		;DECREMENT TEMP POINTER
  2553	003675	200 00 0 01 000000 		MOVE	AC0,(1)		;GET LOWEST ADR OF LOWEST CHUNK
  2554	003676	302 00 0 00 000000 		CAIE	0,0		;SHOULD BE 0 (THATS WHERE MEMORY STARTS)
  2555	003677	037 15 0 00 000004 		FATAL			;NOT 0
  2556	003700	202 00 0 02 030146 		MOVEM	MEMSIZ(2)	;PUT IN MEMSIZ TABLE (AC2 IS PTR)
  2557	003701	271 02 0 00 000001 		ADDI	2,1		;INCR THE TABLE POINTER
  2558
  2559	003702	275 01 0 00 000001 	$MPCM1:	SUBI	1,1		;DECR TEMP POINTER
  2560	003703	307 01 1 00 000121 		CAIG	1,@JOBFF	;COMBINED ALL CHUNK POINTERS ?
  2561									;(TEMP PTR > JOBFF)
  2562	003704	254 00 0 00 003721 		JRST	$MPCM2		;YES
  2563	003705	200 00 0 01 000000 		MOVE	AC0,(1)		;NO ...GET CHUNK END ADDRESS
  2564	003706	200 03 0 01 777777 		MOVE	3,-1(1)		;GET NEXT CHUNK START ADR IN AC3
  2565	003707	200 04 0 00 000000 		MOVE	4,0		;PUT END ADDR IN AC4
  2566	003710	271 04 0 00 000001 		ADDI	4,1		;INCR THE END ADDR
  2567	003711	316 03 0 00 000004 		CAMN	3,4		;IF END & START NOW EQUAL
  2568	003712	364 01 0 00 003702 		SOJA	1,$MPCM1	;IT IS CONT. CHUNK - DO NEXT ONE
  2569
  2570	003713	202 00 0 02 030146 	$MPCM3:	MOVEM	0,MEMSIZ(2)	;IF NOT =, PUT END ADR IN MEMSIZ TABLE
  2571	003714	301 02 0 00 000046 		CAIL	2,^D38		;HAVE WE FILLED MEMSIZ TABLE ?
  2572	003715	254 00 0 00 003725 		JRST	$MPCMX		;YES ...IGNORE REST OF CHUNKS
  2573	003716	271 02 0 00 000001 		ADDI	2,1		;NO ...INCR MEMSIZ TABLE PTR (AC2)
  2574	003717	202 03 0 02 030146 		MOVEM	3,MEMSIZ(2)	;AND NEXT CHUNK START ADR
  2575	003720	364 01 0 00 003701 		SOJA	1,$MPCM1-1	;DO NEXT ONE
  2576
  2577	003721	200 00 0 01 000000 	$MPCM2:	MOVE	(1)		;GET LAST ADDR OF LAST CHUNK
  2578	003722	202 00 0 02 030146 		MOVEM	MEMSIZ(2)	;SAVE LAST ADR OF LAST CHUNK
  2579	003723	476 00 0 02 030147 		SETOM	MEMSIZ+1(2)	;FLAG END OF MEMSIZ TABLE WITH 1'S
  2580	003724	254 00 0 00 004346 		JRST	$PMAP		;PRINT THE MAP 
  2581
  2582	003725	476 00 0 02 030147 	$MPCMX:	SETOM	MEMSIZ+1(2)	;FLAG END OF MEMSIZ TABLE WITH 1'S
  2583
  2584						PMSGF	<^TOO MANY MAP SEGMENTS^>^
  2585	003726	037 04 0 00 007227 		PSIXMF	[SIXBIT\^TOO MANY MAP SEGMENTS^_\]^
  2586	003727	254 00 0 00 004346 		JRST	$PMAP		;PRINT THE MAP
  2587
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 35
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0119

  2588					S^;*********************************************************************^
  2589					;*"MAPCNK" MEMORY CHUNK MAPPER
  2590					;*STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
  2591					;*UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
  2592					;*IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
  2593					;*MAPS THE HOLE IN EXISTENT MEMORY
  2594					;*AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS
  2595					S^;*********************************************************************^
  2596
  2597	003730	202 02 0 00 007443 	$MPCNK:	MOVEM	2,$ACMP1#	;SAVE AC2 - AC4
  2598	003731	202 03 0 00 007444 		MOVEM	3,$ACMP2#
  2599	003732	202 04 0 00 007445 		MOVEM	4,$ACMP3#
  2600
  2601	003733	550 02 0 00 000000 		HRRZ	2,0		;LOAD ADDRESSER WITH HIGHEST POSS ADDR
  2602	003734	554 03 0 00 000000 		HLRZ	3,0		;LOAD WITH LOWEST POSS ADDR
  2603	003735	7 004 24 0 00 007464 		CONI	PI,$MSPI#	;SAVE THE PI STATUS
  2604	003736	7 004 20 0 00 000400 		CONO	PI,PIOFF	;TURN OFF INTERRUPTS
  2605	003737	7 000 24 0 00 007463 		CONI	APR,$MSAPR#	;SAVE PROCESSOR STATUS
  2606	003740	261 17 0 00 000502 		PUT	LPGFTR
  2607	003741	201 00 0 00 004005 		MOVEI	$MPGFL
  2608	003742	202 00 0 00 000502 		MOVEM	LPGFTR
  2609	003743	317 02 0 00 000003 		CAMG	2,3		;END GREATER THAN START ?
  2610	003744	037 15 0 00 000004 		FATAL			;NO
  2611
  2612	003745	201 04 0 00 020400 	$MPCN1:	MOVEI	4,LCNXER	;SETUP SM10 NXM BIT
  2613	003746	254 00 0 00 003756 		JRST	$MPNXM		;CONO/CONI BIT(S) SET UP - GO MAP 
  2614
  2615	003747	261 17 0 00 000000 	SMPAG:	PUT	0
  2616	003750	7 010 24 0 00 000000 		CONI	PAG,0		;GET PRESENT STATE
  2617	003751	660 00 0 00 020000 		TRO	0,LTRPEN	;MAKE SURE TRAP ENABLE SET
  2618	003752	620 00 0 00 040000 		TRZ	0,40000		;MAKE SURE 20 PAGING IS OFF
  2619	003753	7 010 20 1 00 000000 		CONO	PAG,@0		;PAGE RESET
  2620	003754	262 17 0 00 000000 		GET	0
  2621	003755	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 36
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0120

  2622					S^;*********************************************************************^
  2623					;*NON-X-MEMORY SEGMENT MAPPER
  2624					S^;*********************************************************************^
  2625
  2626	003756	7 000 20 0 04 000000 	$MPNXM:	CONO	APR,(4)		;CLEAR NXM BIT, IF SET
  2627	003757	310 00 0 02 000000 		CAM	(2)		;ADDRESS THE MEMORY
  2628	003760	310 00 0 02 777777 		CAM	-1(2)		;INTERLEAVE MAP
  2629	003761	310 00 0 02 777776 		CAM	-2(2)		;IF NON-X-MEM FROM ANY 4-WAY INTERLEAVE
  2630	003762	310 00 0 02 777775 		CAM	-3(2)		;MARK ALL NON-X-MEM
  2631	003763	7 000 34 0 00 000400 		CONSO	APR,LNXMER	;IS NIXM UP ?
  2632	003764	254 00 0 00 004025 		JRST	$M5		;NO  ..CONV VIRT & REMAP EXISTENT
  2633
  2634	003765	7 000 20 0 04 000000 	$M2:	CONO	APR,(4)		;YES ...CLEAR THE BIT
  2635	003766	275 02 0 00 020000 		SUBI	2,20000		;STEP DOWN 8K
  2636	003767	301 02 0 03 000000 		CAIL	2,(3)		;MEMORY CHUNK DONE ? (< LOWEST POSS)
  2637	003770	254 00 0 00 003756 		JRST	$MPNXM		;NO ...MAP THE NEXT CHUNK
  2638
  2639					S^;*********************************************************************^
  2640					;*RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
  2641					S^;*********************************************************************^
  2642
  2643	003771	262 17 0 00 000502 	$MPRST:	GET	LPGFTR
  2644	003772	7 000 20 0 00 121600 		CONO	APR,LAPRAL	;RESET SM APR STATUS
  2645	003773	550 03 0 00 007463 		HRRZ	3,$MSAPR
  2646	003774	405 03 0 00 000007 		ANDI	3,7
  2647	003775	7 000 20 0 03 000000 		CONO	APR,(3)		;REASSIGN APR CHANNEL
  2648	003776	200 03 0 00 007464 	$MPRPI:	MOVE	3,$MSPI		;GET SAVED PI STATUS
  2649	003777	602 03 0 00 000200 		TRNE	3,PION		;IF INTERRUPTS WERE ON
  2650	004000	7 004 20 0 00 000200 		CONO	PI,PION		;TURN BACK ON
  2651	004001	200 02 0 00 007443 		MOVE	2,$ACMP1	;RESTORE AC'S
  2652	004002	200 03 0 00 007444 		MOVE	3,$ACMP2
  2653	004003	200 04 0 00 007445 		MOVE	4,$ACMP3
  2654	004004	263 17 0 00 000000 		RTN			;EXIT
  2655
  2656	004005	554 00 0 00 000500 	$MPGFL:	HLRZ	LEUPFW		;ISOLATE PAGE FAIL REASON
  2657	004006	405 00 0 00 770000 		ANDI	770000
  2658	004007	302 00 0 00 360000 		CAIE	360000		;PARITY ERROR ?
  2659	004010	254 00 0 00 003522 		JRST	$SMPGFL		;NO
  2660	004011	350 00 0 00 000501 		AOS	LPFWPC		;YES, INCREMENT PAGE FAIL PC
  2661	004012	254 02 1 00 000501 		JRSTF	@LPFWPC		;RETURN TO NEXT INSTRUCTION
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 37
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0121

  2662					S^;*********************************************************************^
  2663					;*EXISTANT MEMORY MAPPER
  2664					S^;*********************************************************************^
  2665
  2666	004013	310 00 0 02 000000 	$MPEXM:	CAM	(2)		;ADDRESS THE MEMORY
  2667	004014	310 00 0 02 777777 		CAM	-1(2)		;INTERLEAVE THE MAP
  2668	004015	310 00 0 02 777776 		CAM	-2(2)
  2669	004016	310 00 0 02 777775 		CAM	-3(2)
  2670	004017	7 000 30 0 00 000400 		CONSZ	APR,LNXMER	;IS NIXM CLEAR
  2671	004020	344 02 0 00 004027 		AOJA	2,$M6		;NO
  2672
  2673	004021	275 02 0 00 020000 	$M4:	SUBI	2,20000		;YES, STEP DOWN 8K
  2674	004022	301 02 0 03 000000 		CAIL	2,(3)		;BELOW START ADDRESS ?
  2675	004023	254 00 0 00 004013 		JRST	$MPEXM		;NO ...MAP NEXT CHUNK
  2676	004024	344 02 0 00 004032 		AOJA	2,$M7		;YES, THIS CHUNK DONE
  2677
  2678					S^;*********************************************************************^
  2679					;*SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
  2680					;*TEMPORY STORAGE POINTER IN AC1
  2681					;*VIRTUAL ADDRESS IN AC0
  2682					;*"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
  2683					S^;*********************************************************************^
  2684
  2685	004025	260 17 0 00 004034 	$M5:	GO	$MPCXX
  2686	004026	344 01 0 00 004013 		AOJA	1,$MPEXM	;GO MAP EXISTANT CHUNK
  2687
  2688	004027	260 17 0 00 004034 	$M6:	GO	$MPCXX
  2689	004030	271 01 0 00 000001 		ADDI	1,1		;INCREMENT ADDR
  2690	004031	364 02 0 00 003745 		SOJA	2,$MPCN1	;GO MAP NON-X CHUNK
  2691
  2692	004032	260 17 0 00 004034 	$M7:	GO	$MPCXX
  2693	004033	344 01 0 00 003771 		AOJA	1,$MPRST	;RESTORE AC'S AND RETURN
  2694
  2695	004034	200 00 0 00 000002 	$MPCXX:	MOVE	0,2
  2696	004035	260 17 0 00 004316 		GO	$MPADR		;CONVERT VIRTUAL TO PHYSICAL
  2697	004036	037 15 0 00 000004 		FATAL			;CAN'T DO IT
  2698	004037	202 00 0 01 000000 		MOVEM	(1)		;SAVE IN TEMP
  2699	004040	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 38
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0122

  2700					S^;*********************************************************************^
  2701					;*"MAPSET" SETUP SM10 PAGE MAP 
  2702					;*FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
  2703					;*ARGUMENTS PASSED IN AC0:
  2704					;*			NEG - CLEAR PAGE MAP
  2705					;*			0-7 - MAP CORRESPONDING 128K SEGMENT
  2706					S^;*********************************************************************^
  2707
  2708	004041	202 01 0 00 007446 	$MPSET:	MOVEM	1,$ACMP4#	;SAVE AC1
  2709	004042	325 00 0 00 004051 		JUMPGE	0,$MPSE2	;ARG NEG ?
  2710	004043	402 00 0 00 000200 		SETZM	200		;YES, CLEAR PAGE MAP
  2711	004044	200 00 0 00 007233 		MOVE	0,[200,,201]
  2712	004045	251 00 0 00 000377 		BLT	0,377
  2713
  2714	004046	260 17 0 00 003747 	$MPSE3:	GO	SMPAG		;SET TRAP ENABLE
  2715	004047	200 01 0 00 007446 		MOVE	1,$ACMP4	;RESTORE AC1
  2716	004050	263 17 0 00 000000 		RTN			;EXIT
  2717
  2718	004051	301 00 0 00 000040 	$MPSE2:	CAIL	0,40		;ARG 0-37 ?
  2719	004052	037 15 0 00 000004 		FATAL			;NO, FATAL ERROR
  2720	004053	221 00 0 00 000400 		IMULI	0,400		;COMPUTE PHYSICAL RELOCATION
  2721	004054	660 00 0 00 540000 		TRO	0,540000	;SET A,W,S BITS
  2722	004055	260 17 0 00 003657 		GO	$CSHALW		;MEM SEG'S CACHED ?
  2723	004056	660 00 0 00 020000 		TRO	0,020000	;YES
  2724	004057	504 00 0 00 000000 		HRL	0,0		;MAKE BOTH HALVES SAME
  2725	004060	271 00 0 00 000001 		ADDI	0,1		;RIGHT HALF ODD PAGE
  2726	004061	205 01 0 00 777600 		MOVSI	1,-200		;128K IN PAGE MAP
  2727	004062	202 00 0 01 000200 		MOVEM	200(1)		;PUT RELOCATION DATA IN PAGE MAP
  2728	004063	270 00 0 00 007014 		ADD	[2,,2]		;BUMP FOR NEXT ENTRY
  2729	004064	253 01 0 00 004062 		AOBJN	1,.-2
  2730	004065	254 00 0 00 004046 		JRST	$MPSE3		;CLEAR ASSOC MEMORY & EXIT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 39
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0123

  2731					S^;*********************************************************************^
  2732					;*"MEMSEG" ## MAPNEW = -1 ##
  2733					;*SETS UP TO 128K SEGMENT IN PAGE MAP
  2734					;*ARGUMENTS:	0-7 - MAP CORRESPONDING 128K SEGMENT
  2735					;*		10-37 - DOES NOT EXIST ON SM-10
  2736					;*		GT 37  - MAP USING PHYSICAL ADDRESS
  2737					;*RETURNED IN AC0:
  2738					;		0 - NO MEMORY AVAILABLE
  2739					;*		HIGHEST VIRTUAL ADDRESS
  2740					;*	  	BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
  2741					;*PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
  2742					;*TO MEMORY REQUESTED
  2743					;*		RETURNS +2
  2744					S^;*********************************************************************^
  2745
  2746	004066	202 01 0 00 007447 	$MSEG:	MOVEM	1,$ACMP5#	;AC1 = TEMP STORAGE POINTER
  2747	004067	202 02 0 00 007450 		MOVEM	2,$ACMP6#	;AC2 = MAP STORAGE POINTER
  2748	004070	202 03 0 00 007451 		MOVEM	3,$ACMP7#	;AC3 = CHUNK START ADR
  2749	004071	202 04 0 00 007452 		MOVEM	4,$ACMP8#	;AC4 = CHUNK END ADR
  2750	004072	202 05 0 00 007453 		MOVEM 	5,$ACMP9#	;AC5 = PAGE COUNTER
  2751	004073	403 05 0 00 007462 		SETZB	5,$MNCON#	;SAVED AC1 - AC5
  2752	004074	603 00 0 00 777760 		TLNE	0,777760	;VALID ARGUMENT ?
  2753	004075	037 15 0 00 000004 		FATAL			;NO
  2754	004076	336 00 0 00 030143 		SKIPN	MAPNEW
  2755	004077	254 00 0 00 004226 		JRST	$MSKA		;DIRECT ADDRESSING ONLY
  2756	004100	200 02 0 00 007234 		MOVE	2,[POINT 18,200]
  2757	004101	301 00 0 00 000040 		CAIL	0,40
  2758	004102	254 00 0 00 004166 		JRST	$MSEGP		;ARG IS FOR PHYSICAL CORE
  2759	004103	254 00 0 00 004104 		JRST	$MSEGV		;VIRTUAL CORE
  2760
  2761					S^;*********************************************************************^
  2762					;*SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
  2763					S^;*********************************************************************^
  2764
  2765	004104	200 01 0 00 030145 	$MSEGV:	MOVE	1,MEMLOW
  2766	004105	260 17 0 00 004041 		GO	$MPSET		;SETUP MAP FOR REQ SEGMENT
  2767	004106	200 00 0 00 007225 		MOVE	[400000,,777777]
  2768	004107	260 17 0 00 003730 		GO	$MPCNK		;MAP THAT SEGMENT
  2769
  2770	004110	307 01 1 00 030145 	$MSGV1:	CAIG	1,@MEMLOW
  2771	004111	254 00 0 00 004153 		JRST	$MSEG3		;NO CORE IN THIS 128K SEGMENT
  2772									;EXIT
  2773	004112	402 00 0 00 000200 		SETZM	200		;CLEAR PAGE MAP
  2774	004113	200 00 0 00 007233 		MOVE	[200,,201]
  2775	004114	251 00 0 00 000377 		BLT	0,377
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 40
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0124

  2776	004115	275 01 0 00 000001 	$MSGV2:	SUBI	1,1
  2777	004116	200 03 0 01 000000 		MOVE	3,(1)		;GET CHUNK START ADDRESS
  2778	004117	326 03 0 00 004121 		JUMPN	3,.+2		;IF CHUNK ADR IS ZERO
  2779	004120	200 03 0 00 030145 		MOVE	3,MEMLOW	;USE EVEN BREAK ABOVE JOBFF
  2780	004121	275 01 0 00 000001 		SUBI	1,1
  2781	004122	200 04 0 01 000000 		MOVE	4,(1)		;GET CHUNK END ADDRESS
  2782	004123	317 04 0 00 000003 		CAMG	4,3		;END GREATER THAN START ?
  2783	004124	037 15 0 00 000004 		FATAL			;NO ...ABORT
  2784	004125	274 04 0 00 000003 		SUB	4,3		;YES ..END - START = SIZE OF CHUNK
  2785	004126	271 04 0 00 000001 		ADDI	4,1
  2786	004127	602 04 0 00 000777 		TRNE	4,777		;CHUNK SHOULD BE EVEN # OF PAGES
  2787	004130	037 15 0 00 000004 		FATAL			;NO ...ABORT
  2788	004131	242 04 0 00 777767 		LSH	4,-^D9		;COMPUTE # OF PAGES
  2789	004132	270 05 0 00 000004 		ADD	5,4		;KEEP COUNT
  2790	004133	242 03 0 00 777767 		LSH	3,-^D9
  2791	004134	660 03 0 00 540000 		TRO	3,540000	;CREATE RELOCATION DATA
  2792	004135	260 17 0 00 003657 		GO	$CSHALW		;MEM SEG'S CACHED ?
  2793	004136	660 03 0 00 020000 		TRO	3,020000	;YES
  2794	004137	361 04 0 00 004143 		SOJL	4,$MSGV3
  2795	004140	136 03 0 00 000002 		IDPB	3,2		;PUT IN PAGE MAP
  2796	004141	271 03 0 00 000001 		ADDI	3,1		;INCREMENT RELOCATION DATA
  2797	004142	254 00 0 00 004137 		JRST	.-3
  2798
  2799	004143	306 01 1 00 030145 	$MSGV3:	CAIN	1,@MEMLOW	;ANY MORE CHUNKS IN THIS 128K ?
  2800	004144	254 00 0 00 004147 		JRST	$MSEG2		;NO ...EXIT)
  2801	004145	476 00 0 00 007462 		SETOM	$MNCON		;YES, NON-CONSECUTIVE CHUNKS
  2802	004146	254 00 0 00 004115 		JRST	$MSGV2		;PACK INTO VIRTUAL
  2803
  2804					S^;*********************************************************************^
  2805					;*EXIT FROM MEMSEG ROUTINE
  2806					S^;*********************************************************************^
  2807
  2808	004147	221 05 0 00 001000 	$MSEG2:	IMULI	5,1000		;CONVERT # OF PAGES INTO
  2809	004150	271 05 0 00 377777 		ADDI	5,377777	;HIGHEST VIRTUAL ADDRESS
  2810	004151	332 00 0 00 007462 		SKIPE	$MNCON		;WERE CHUNKS COMBINED ?
  2811	004152	661 05 0 00 400000 		TLO	5,400000	;YES, SET BIT 0 AS FLAG
  2812
  2813	004153	200 00 0 00 000005 	$MSEG3:	MOVE	0,5		;AC0 = RESULTS (SEE TITLE BLOCK)
  2814	004154	200 01 0 00 007447 		MOVE	1,$ACMP5	;RESTORE AC'S
  2815	004155	200 02 0 00 007450 		MOVE	2,$ACMP6
  2816	004156	200 03 0 00 007451 		MOVE	3,$ACMP7
  2817	004157	200 04 0 00 007452 		MOVE	4,$ACMP8
  2818	004160	200 05 0 00 007453 		MOVE	5,$ACMP9
  2819	004161	336 00 0 00 030143 		SKIPN	MAPNEW		;1024K MAPPING (BIG TROUBLE IF NOT)
  2820	004162	263 17 0 00 000000 		RTN			;NO ...ERROR RETURN +1)
  2821
  2822	004163	260 17 0 00 003747 	$MSEG4:	GO	SMPAG		;SET TRAP ENABLE
  2823	004164	350 00 0 17 000000 		AOS	(P)		;RETURN +2
  2824	004165	263 17 0 00 000000 		RTN			;RETURN +1
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 41
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0125

  2825					S^;*********************************************************************^
  2826					;*PHYSICAL CORE ASSIGNMENT
  2827					S^;*********************************************************************^
  2828
  2829	004166	200 01 0 00 000000 	$MSEGP:	MOVE	1,0
  2830	004167	620 01 0 00 000777 		TRZ	1,777		;MAKE PHYSICAL EVEN PAGE
  2831	004170	400 04 0 00 000000 		SETZ	4,
  2832	004171	200 00 0 04 030146 		MOVE	MEMSIZ(4)	;GET START ADDRESS
  2833	004172	321 00 0 00 004153 		JUMPL	$MSEG3		;IF END OF TABLE, NO CORE ..EXIT
  2834	004173	315 01 0 00 000000 		CAMGE	1,0		;PHY = OR GT START ?
  2835	004174	254 00 0 00 004153 		JRST	$MSEG3		;NO, NO CORE ...EXIT
  2836	004175	200 00 0 04 030147 		MOVE	MEMSIZ+1(4)	;GET END ADDRESS
  2837	004176	271 04 0 00 000002 		ADDI	4,2
  2838	004177	311 01 0 00 000000 		CAML	1,0		;PHY GT END ?
  2839	004200	254 00 0 00 004171 		JRST	.-7		;YES, TRY NEXT CHUNK
  2840
  2841	004201	336 00 0 00 030143 		SKIPN	MAPNEW
  2842	004202	254 00 0 00 004252 		JRST	$MSKAP+3	;DIRECT ADDRESSING
  2843	004203	274 00 0 00 000001 		SUB	0,1		;COMPUTE # OF PAGES
  2844	004204	271 00 0 00 000001 		ADDI	0,1
  2845	004205	242 00 0 00 777767 		LSH	0,-^D9
  2846	004206	303 00 0 00 000400 		CAILE	0,^D256		;MORE THAN 128K WORTH ?
  2847	004207	201 00 0 00 000400 		MOVEI	0,^D256		;YES, LIMIT AT 128K
  2848	004210	202 00 0 00 000003 		MOVEM	0,3		;AC3 = MAP FILL COUNTER
  2849	004211	202 00 0 00 000005 		MOVEM	0,5		;KEEP COUNT OF # OF PAGES
  2850	004212	402 00 0 00 000200 		SETZM	200		;CLEAR PAGE MAP
  2851	004213	200 00 0 00 007233 		MOVE	[200,,201]
  2852	004214	251 00 0 00 000377 		BLT	0,377
  2853	004215	200 00 0 00 000001 		MOVE	0,1
  2854	004216	242 00 0 00 777767 		LSH	0,-^D9		;CREATE RELOCATION DATA
  2855	004217	660 00 0 00 540000 		TRO	0,540000
  2856	004220	260 17 0 00 003657 		GO	$CSHALW		;MEM SEG'S CACHED ?
  2857	004221	660 00 0 00 020000 		TRO	0,020000	;YES
  2858	004222	361 03 0 00 004147 		SOJL	3,$MSEG2	;EXIT
  2859	004223	136 00 0 00 000002 		IDPB	0,2		;PUT DATA IN PAGE MAP
  2860	004224	271 00 0 00 000001 		ADDI	0,1		;INCREMENT RELOCATION DATA
  2861	004225	254 00 0 00 004222 		JRST	.-3
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 42
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0126

  2862					S^;*********************************************************************^
  2863					;*"MEMSEG" ## MAPNEW = 0 ##
  2864					;*ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
  2865					;*		  11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
  2866					;*	  	  GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
  2867					;*RETURNED IN AC0:
  2868					;*		  0 - NO MEMORY AVAILABLE
  2869					;*		  START ADDRESS,,END ADDRESS
  2870					;*RETURNS +1
  2871					S^;*********************************************************************^
  2872
  2873	004226	301 00 0 00 000040 	$MSKA:	CAIL	0,40
  2874	004227	254 00 0 00 004247 		JRST	$MSKAP		;DIRECT PHYSICAL CORE
  2875	004230	301 00 0 00 000011 		CAIL	^D9
  2876	004231	254 00 0 00 004153 		JRST	$MSEG3		;NO MEMORY 11-37 ...EXIT
  2877	004232	200 01 0 00 000000 		MOVE	1,0
  2878	004233	242 01 0 00 000001 		LSH	1,1		;DOUBLE, 2 ENTRIES PER
  2879	004234	200 00 0 01 030146 		MOVE	0,MEMSIZ(1)	;GET START ADDRESS
  2880	004235	321 00 0 00 004153 		JUMPL	0,$MSEG3	;NO MEMORY ...EXIT
  2881	004236	200 02 0 01 030147 		MOVE	2,MEMSIZ+1(1)	;GET END ADDRESS
  2882	004237	322 02 0 00 004153 		JUMPE	2,$MSEG3	;NO MEMORY ...EXIT
  2883	004240	326 00 0 00 004242 		JUMPN	0,.+2		;IF START ADDRESS IS 0
  2884	004241	200 00 0 00 030145 		MOVE	0,MEMLOW	;USE 'MEMLOW'
  2885	004242	317 02 0 00 000000 		CAMG	2,0		;END GREATER THAN START ?
  2886	004243	037 15 0 00 000004 		FATAL			;NO ...ABORT
  2887	004244	200 05 0 00 000002 		MOVE	5,2		;SETUP START ADR,,END ADR
  2888	004245	504 05 0 00 000000 		HRL	5,0
  2889	004246	254 00 0 00 004153 		JRST	$MSEG3		;EXIT
  2890
  2891	004247	303 00 0 00 777000 	$MSKAP:	CAILE	0,777000	;REQUEST FOR OVER 256K ?
  2892	004250	254 00 0 00 004153 		JRST	$MSEG3		;YES, NO MEMORY
  2893	004251	254 00 0 00 004166 		JRST	$MSEGP		;DO PHYSICAL SETUP
  2894	004252	200 05 0 00 000000 		MOVE	5,0		;1 = PHY ADR, 0 = END ADR
  2895	004253	504 05 0 00 000001 		HRL	5,1		;  START ADR,,END ADR
  2896	004254	254 00 0 00 004153 		JRST	$MSEG3		;EXIT 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 43
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0127

  2897					S^;*********************************************************************^
  2898					;*"MEMZRO"
  2899					;*ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
  2900					;*MAPNEW = 0	 DIRECT MEMORY ZERO
  2901					;*	 =-1	 1024K SM10 PAGED MEMORY ZERO
  2902					S^;*********************************************************************^
  2903
  2904	004255	202 01 0 00 007465 	$MZRO:	MOVEM	1,$MZROB#	;SAVE AC1 & AC2
  2905	004256	202 02 0 00 007466 		MOVEM	2,$MZROC#
  2906	004257	336 00 0 00 030143 		SKIPN	MAPNEW		;1024K PAGED OR DIRECT ZERO ?
  2907	004260	254 00 0 00 004276 		JRST	$MZRO2		;DIRECT ZEROING 
  2908
  2909	004261	474 02 0 00 000000 	$MZRO1:	SETO	2,		;PAGED ZEROING
  2910	004262	271 02 0 00 000001 		ADDI	2,1
  2911	004263	303 02 0 00 000007 		CAILE	2,7
  2912	004264	254 00 0 00 004313 		JRST	$MZROX		;DONE
  2913	004265	200 00 0 00 000002 		MOVE	0,2
  2914	004266	260 17 0 00 004066 		GO	$MSEG		;SETUP MEMORY SEGMENT
  2915	004267	037 15 0 00 000004 		FATAL
  2916	004270	322 00 0 00 004262 		JUMPE	0,$MZRO1+1	;NO MEMORY THIS SEGMENT
  2917	004271	621 00 0 00 400000 		TLZ	0,400000	;DON'T CARE IF COMBINED
  2918	004272	402 00 0 00 400000 		SETZM	400000
  2919	004273	200 01 0 00 007235 		MOVE	1,[400000,,400001]
  2920	004274	251 01 1 00 000000 		BLT	1,@0		;ZERO VIRTUAL
  2921	004275	254 00 0 00 004262 		JRST	$MZRO1+1
  2922
  2923	004276	400 02 0 00 000000 	$MZRO2:	SETZ	2,		;DIRECT MEMORY ZERO
  2924	004277	200 00 0 00 030145 		MOVE	0,MEMLOW	;START ADDRESS
  2925	004300	311 00 0 00 030147 		CAML	0,MEMSIZ+1
  2926	004301	254 00 0 00 004313 		JRST	$MZROX
  2927	004302	254 00 0 00 004305 		JRST	.+3
  2928	004303	200 00 0 02 030146 	$MZRO3:	MOVE	0,MEMSIZ(2)	;SEGMENT START ADDRESS
  2929	004304	321 00 0 00 004313 		JUMPL	0,$MZROX	;DONE 
  2930	004305	402 00 1 00 000000 		SETZM	@0
  2931	004306	507 00 0 00 000000 		HRLS			;CREATE BLT POINTER
  2932	004307	271 00 0 00 000001 		ADDI	1
  2933	004310	251 00 1 02 030147 		BLT	0,@MEMSIZ+1(2)	;ZERO DIRECT
  2934	004311	271 02 0 00 000002 		ADDI	2,2
  2935	004312	254 00 0 00 004303 		JRST	$MZRO3		;DO NEXT SEGMENT
  2936
  2937	004313	200 02 0 00 007466 	$MZROX:	MOVE	2,$MZROC	;RESTORE AC'S
  2938	004314	200 01 0 00 007465 		MOVE	1,$MZROB
  2939	004315	263 17 0 00 000000 		RTN			;EXIT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 44
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0128

  2940					S^;*********************************************************************^
  2941					;*"MAPADR" CONV VIRT ADDR TO PHYS ADDR
  2942					;*VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
  2943					;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS SM10 PAGE INACCESSIBLE
  2944					S^;*********************************************************************^
  2945
  2946	004316	202 01 0 00 007442 	$MPADR:	MOVEM	1,$ACMP0#	;SAVE AC1
  2947	004317	550 01 0 00 000000 		HRRZ	1,0		;18 BIT VIRTUAL ADR IN AC1
  2948	004320	307 01 0 00 000017 		CAIG	1,17		;ACCUMULATOR ADDRESS ?
  2949	004321	254 00 0 00 004327 		JRST	$MPAD3-1	;YES
  2950	004322	200 00 0 00 030046 		MOVE	0,CONSW		;GET CONSOLE SWITCHES
  2951	004323	336 00 0 00 030511 		SKIPN	PVPAGI		;PREVENT PAGE INHIBIT ?
  2952	004324	607 00 0 00 000100 		TLNN	0,INHPAG	;PAGING INHIBITED
  2953	004325	254 00 0 00 004334 		JRST	$MPADL		;NO
  2954	004326	254 00 0 00 004332 		JRST	$MPAD2		;YES
  2955
  2956	004327	350 00 0 17 000000 	$MPAD7:	AOS	(P)		;INCREMENT USRPC (+2 RETURN)
  2957	004330	200 01 0 00 007442 	$MPAD3:	MOVE	1,$ACMP0	;RESTORE AC1
  2958	004331	263 17 0 00 000000 		RTN			;RETURN +1/+2 
  2959	004332	200 00 0 00 000001 	$MPAD2:	MOVE	0,1		;VIRTUAL IS PHYSICAL ADDRESS
  2960	004333	254 00 0 00 004327 		JRST	$MPAD7
  2961
  2962	004334	257 00 0 01 000000 	$MPADL:	MAP	0,(1)		;SM10. GET RELOCATION DATA
  2963	004335	603 00 0 00 200000 		TLNE	0,200000	;PAGE FAILURE
  2964	004336	254 00 0 00 004330 		JRST	$MPAD3		;YES
  2965	004337	621 00 0 00 777000 		TLZ	0,777000	;CLEAR STATUS BITS
  2966	004340	602 01 0 00 000777 		TRNE	1,777		;LO-ORDER 9 VIRTUAL = 0
  2967	004341	602 00 0 00 000777 		TRNE	0,777		; & LO-ORDER 9 MAPPED = 0 ?
  2968	004342	254 00 0 00 004327 		JRST	$MPAD7		;YES
  2969	004343	405 01 0 00 000777 		ANDI	1,777		;NO, SM-10 BUG, LOW-ORDER 9 FROM VIRTUAL
  2970	004344	434 00 0 00 000001 		OR	0,1		;COMBINE
  2971	004345	254 00 0 00 004327 		JRST	$MPAD7
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 45
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0129

  2972					S^;*********************************************************************^
  2973					;*PRINT MEMORY MAP
  2974					S^;*********************************************************************^
  2975													SALL
  2976	004346	477 00 0 00 000002 	$PMAP:	SETOB	0,2
  2977	004347	316 00 0 00 030150 		CAMN	0,MEMSIZ+2	;ONLY ONE SEGMENT ?
  2978	004350	201 02 0 00 000001 		MOVEI	2,1		;YES, SET INDICATOR
  2979	004351	400 04 0 00 000000 		SETZ	4,
  2980	004352	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
  2981	004353	254 00 0 00 004357 		JRST	$PMAP3		;NO
  2982	004354	554 00 0 00 030043 		HLRZ	MONCTL		;FIRST PASS ?
  2983	004355	302 00 0 00 777777 		CAIE	-1
  2984	004356	254 00 0 00 004361 		JRST	$PMAP1		;NO
  2985	004357	336 00 0 00 030056 	$PMAP3:	SKIPN	$ONETM		;FIRST TIME ?
  2986	004360	474 04 0 00 000000 		SETO	4,		;YES, SET FLAG FOR PRINTING
  2987	004361	322 04 0 00 004370 	$PMAP1:	JUMPE	4,$PMAPL-1	;NO
  2988
  2989	004362	336 00 0 00 030143 		SKIPN	MAPNEW
  2990	004363	037 02 0 00 007236 		PMSG	<^VIRTUAL>
  2991	004364	037 02 0 00 007240 		PMSG	<^MEMORY MAP =^FROM     TO          SIZE/K>
  2992
  2993	004365	302 02 0 00 000001 		CAIE	2,1		;IF (2) = 1, ONLY ONE SEGMENT
  2994	004366	037 02 0 00 007247 		PMSG	<]START ADR/K>
  2995	004367	037 00 0 00 030242 		PCRL
  2996	004370	403 03 0 00 000005 		SETZB	3,5
  2997
  2998	004371	335 00 0 03 030146 	$PMAPL:	SKIPGE	MEMSIZ(3)	;GET MAP COORDINATES
  2999	004372	254 00 0 00 004421 		JRST	$PMAP4
  3000	004373	322 04 0 00 004401 		JUMPE	4,.+6
  3001	004374	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  3002	004375	037 10 0 00 000000 		PNTADR			;PRINT START ADDRESS
  3003	004376	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  3004	004377	037 10 0 00 000000 		PNTADR			;PRINT END ADDRESS
  3005	004400	037 00 0 00 000011 		PNTCI	"	"
  3006	004401	200 00 0 03 030147 		MOVE	MEMSIZ+1(3)
  3007	004402	271 00 0 00 000001 		ADDI	0,1
  3008	004403	274 00 0 03 030146 		SUB	MEMSIZ(3)
  3009	004404	231 00 0 00 002000 		IDIVI	^D1024
  3010	004405	270 05 0 00 000000 		ADD	5,0
  3011	004406	322 04 0 00 004417 		JUMPE	4,$PMAP5
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 46
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* MEMORY CONTROL                                                            SEQ 0130

  3012	004407	037 15 0 00 000000 	$PMAP7:	PNTDEC			;PRINT DECIMAL SIZE
  3013	004410	306 02 0 00 000001 		CAIN	2,1
  3014	004411	254 00 0 00 004416 		JRST	.+5
  3015	004412	037 00 0 00 000011 		PNTCI	"	"
  3016	004413	200 00 0 03 030146 		MOVE	MEMSIZ(3)
  3017	004414	231 00 0 00 002000 		IDIVI	^D1024
  3018	004415	037 15 0 00 000000 		PNTDEC			;PRINT START ADR IN K
  3019	004416	037 00 0 00 030242 		PCRL
  3020
  3021	004417	271 03 0 00 000002 	$PMAP5:	ADDI	3,2
  3022	004420	254 00 0 00 004371 		JRST	$PMAPL		;GET NEXT IF ANY
  3023
  3024	004421	202 05 0 00 030144 	$PMAP4:	MOVEM	5,MEMTOT	;SAVE TOTAL # OF K
  3025	004422	550 00 0 00 000121 		HRRZ	JOBFF		;SETUP LOWEST USABLE
  3026	004423	271 00 0 00 001000 		ADDI	1000		;MEMORY ADDRESS
  3027	004424	620 00 0 00 000777 		TRZ	777		;EVEN BREAK ABOVE JOBFF
  3028	004425	202 00 0 00 030145 		MOVEM	MEMLOW
  3029	004426	322 04 0 00 004436 		JUMPE	4,$PMAP6	;RETURN
  3030	004427	306 02 0 00 000001 		CAIN	2,1
  3031	004430	254 00 0 00 004435 		JRST	$PMAP6-1	;CRLF & RETURN
  3032
  3033	004431	037 02 0 00 007252 		PMSG	<TOTAL MEMORY/K = >
  3034	004432	200 00 0 00 030144 		MOVE	MEMTOT		;OUTPUT TOTAL MEMORY
  3035	004433	037 15 0 00 000000 		PNTDEC
  3036	004434	037 00 0 00 030242 		PCRL
  3037	004435	037 00 0 00 030242 		PCRL
  3038
  3039	004436	263 17 0 00 000000 	$PMAP6:	RTN			;EXIT
  3040													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 47
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0131

  3041					SUBTTL	*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
  3042
  3043					S^;*********************************************************************^
  3044					;*INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
  3045					;*USER MODE IF NON-TTY SWITCH CONTROL
  3046					S^;*********************************************************************^
  3047
  3048	004437	332 00 0 00 030521 	$SWTCH:	SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  3049	004440	254 00 0 00 004452 		JRST	$SWU2		;YES, USE C(CONSW)
  3050	004441	336 00 0 00 007514 		SKIPN	$SWFLG		;BEEN INITED ?
  3051	004442	254 00 0 00 004450 		JRST	$SWU1		;NO, USE SAVED SWITCHES
  3052	004443	254 00 0 00 004450 		JRST	$SWU1		;YES, USE SAVED SWITCHES
  3053	004444	335 00 0 00 030043 	$SWCH1:	SKIPGE	MONCTL		;MONITR CONTROL ?
  3054	004445	540 00 0 00 030043 		HRR	0,MONCTL	;YES, USE PRESTORED RH SWITCHES
  3055	004446	202 00 0 00 030046 		MOVEM	0,CONSW		;SAVE
  3056	004447	263 17 0 00 000000 		RTN			;EXIT
  3057	004450	200 00 0 00 030046 	$SWU1:	MOVE	0,CONSW
  3058	004451	254 00 0 00 004444 		JRST	$SWCH1
  3059	004452	200 00 0 00 030046 	$SWU2:	MOVE	0,CONSW
  3060	004453	263 17 0 00 000000 		RTN
  3061
  3062					S^;*********************************************************************^
  3063					;*SWITCH INITIALIZATION ROUTINE
  3064					S^;*********************************************************************^
  3065													SALL
  3066	004454	402 00 0 00 007515 	$SWTIN:	SETZM	$SWONCE#
  3067	004455	260 17 0 00 004477 		GO	$SW0		;INIT SWITCH ROUTINE
  3068	004456	476 00 0 00 007515 	$SWIN1:	SETOM	$SWONCE
  3069	004457	476 00 0 00 007514 		SETOM	$SWFLG		;SET INITED FLAG
  3070	004460	260 17 0 00 004437 		GO	$SWTCH		;READ CONSOLE SWITCHES
  3071	004461	603 00 0 00 000000 		TLNE	PNTLPT		;PRINT ON LPT/LOGICAL DEVICE ?
  3072	004462	260 17 0 00 003157 		GO	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  3073	004463	200 00 0 00 030046 		MOVE	CONSW
  3074	004464	603 00 0 00 000004 		TLNE	CHAIN		;IN CHAIN MODE ?
  3075	004465	263 17 0 00 000000 		RTN			;YES, DON'T PRINT FOLLOWING
  3076	004466	335 00 0 00 030043 		SKIPGE	MONCTL
  3077	004467	263 17 0 00 000000 		RTN			;DIAGNOSTIC MONITOR
  3078	004470	332 00 0 00 030521 		SKIPE	$$TOGGLE
  3079	004471	254 00 0 00 004476 		JRST	.+5
  3080	004472	037 04 0 00 007255 		PMSGF	<SWITCHES = >
  3081	004473	200 00 0 00 030046 		MOVE	CONSW		;GET THE SAVED SWITCHES
  3082	004474	037 13 0 00 000001 		PNTHWF			;PRINT PRESENT SWITCH SETTINGS
  3083	004475	037 01 0 00 030242 		PCRLF
  3084	004476	263 17 0 00 000000 		RTN			;EXIT
  3085													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 48
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0132

  3086													SALL
  3087	004477	261 17 0 00 000000 	$SW0:	PUT	0
  3088	004500	332 00 0 00 030521 		SKIPE	$$TOGGLE	;SWITCHES PREVENTED ?
  3089	004501	254 00 0 00 004551 		JRST	$SW9+2		;YES, USE C(CONSW)
  3090	004502	335 00 0 00 030043 	$SW0A:	SKIPGE	MONCTL		;DIAGNOSTIC MONITOR MODE ?
  3091	004503	254 00 0 00 004553 		JRST	$SW10		;YES
  3092	004504	336 00 0 00 007515 		SKIPN	$SWONCE		;INITIALIZATION ?
  3093	004505	254 00 0 00 004555 		JRST	$SW11		;YES
  3094	004506	037 04 0 00 007057 	$SW12:	PMSGF	<^SWITCHES = >
  3095	004507	200 00 0 00 030046 		MOVE	CONSW
  3096	004510	037 13 0 00 000001 		PNTHWF
  3097
  3098	004511	037 04 0 00 007257 	$SW1:	PMSGF	<^TTY SWITCH CONTROL ? - 0,S OR Y <CR> - >
  3099	004512	260 17 0 00 005055 		GO	$OPTLK		;INPUT THE ANSWER
  3100	004513	254 00 0 00 004511 		JRST	$SW1		;NO CHARACTER RETURNED, ASK AGAIN
  3101	004514	306 00 0 00 000015 		CAIN	0,15
  3102	004515	254 00 0 00 004531 		JRST	$SWERR		;1ST CHAR CR, ERROR
  3103	004516	242 00 0 00 000007 		LSH	0,7		;POSITION 1ST CHAR
  3104	004517	202 00 0 00 007513 		MOVEM	$SW#
  3105	004520	260 17 0 00 005055 		GO	$OPTLK		;INPUT THE CR
  3106	004521	254 00 0 00 004511 		JRST	$SW1		;NO CHAR, ASK AGAIN
  3107	004522	434 00 0 00 007513 		OR	0,$SW
  3108	004523	306 00 0 00 014015 		CAIN	0,14015		;"0" (CR) ?
  3109	004524	254 00 0 00 004532 		JRST	$SW6		;YES-USE ALL SWITCHES = 0
  3110	004525	306 00 0 00 024615 		CAIN	0,24615		;"S" (CR) ?
  3111	004526	254 00 0 00 004547 		JRST	$SW9		;YES-USE SAVED SWITCHES
  3112	004527	306 00 0 00 026215 		CAIN	0,26215		;"Y" (CR) ?
  3113	004530	254 00 0 00 004534 		JRST	$SW2		;YES-USE TTY INPUT SWITCHES
  3114
  3115	004531	254 00 0 00 004511 	$SWERR:	JRST	$SW1		;ASK AGAIN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 49
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0133

  3116	004532	402 00 0 00 000000 	$SW6:	SETZM	0
  3117	004533	254 00 0 00 004544 		JRST	$SW4
  3118
  3119	004534	037 04 0 00 007266 	$SW2:	PMSGF	<^LH SWITCHES <# OR ?> - >
  3120	004535	260 17 0 00 005267 		GO	$TPOCT		;INPUT 6 OCTALS
  3121	004536	254 00 0 00 004561 		JRST	$SW13		;ERROR .....TRY AGAIN
  3122	004537	516 00 0 00 007513 		HRLZM	0,$SW#		;MOVE LH WORD TO SW
  3123
  3124	004540	037 04 0 00 007273 	$SW3:	PMSGF	<RH SWITCHES <# OR ?> - >
  3125	004541	260 17 0 00 005267 		GO	$TPOCT		;INPUT 6 OCTALS
  3126	004542	254 00 0 00 004566 		JRST	$SW14		;ERROR .....TRY AGAIN
  3127	004543	500 00 0 00 007513 		HLL	0,$SW		;GET LH SWITCHES
  3128	004544	202 00 0 00 030046 	$SW4:	MOVEM	0,CONSW		;SAVE SWITCHES IN CONSW
  3129	004545	262 17 0 00 000000 	$SW8:	GET	0
  3130	004546	263 17 0 00 000000 		RTN
  3131
  3132	004547	332 00 0 00 007515 	$SW9:	SKIPE	$SWONCE		;S, USE SAME AS BEFORE ON "DING" REQUEST
  3133	004550	254 00 0 00 004545 		JRST	$SW8
  3134	004551	200 00 0 00 007512 		MOVE	$SVCSW		;ON INITIALIZATION USE PREVIOUS SWITCHES
  3135	004552	254 00 0 00 004544 		JRST	$SW4
  3136
  3137	004553	200 00 0 00 020007 	$SW10:	MOVE	0,DIASWS	;GET DIAMON SWITCHES
  3138	004554	254 00 0 00 004544 		JRST	$SW4
  3139
  3140	004555	200 00 0 00 007512 	$SW11:	MOVE	0,$SVCSW	;IF SAVED SW'S ARE ZERO
  3141	004556	322 00 0 00 004511 		JUMPE	0,$SW1		;DON'T PRINT THEM
  3142	004557	202 00 0 00 030046 		MOVEM	0,CONSW
  3143	004560	254 00 0 00 004506 		JRST	$SW12
  3144
  3145	004561	302 00 0 00 000077 	$SW13:	CAIE	"?"		;QMARK ?
  3146	004562	254 00 0 00 004534 		JRST	$SW2		;NO, ERROR
  3147	004563	201 00 0 00 004625 		MOVEI	SWTAB
  3148	004564	260 17 0 00 004574 		GO	$SWXX		;PROMPT FOR SWITCHES
  3149	004565	254 00 0 00 004537 		JRST	$SW3-1
  3150
  3151	004566	302 00 0 00 000077 	$SW14:	CAIE	"?"		;QMARK ?
  3152	004567	254 00 0 00 004540 		JRST	$SW3		;NO, ERROR
  3153	004570	200 00 0 00 030525 		MOVE	SWPTAB		;GET ADDRESS OF USERS TABLE
  3154	004571	322 00 0 00 004540 		JUMPE	$SW3		;IF NONE, ERROR
  3155	004572	260 17 0 00 004574 		GO	$SWXX		;PROMPT FOR SWITCHES
  3156	004573	254 00 0 00 004543 		JRST	$SW4-1
  3157													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 50
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0134

  3158					S^;*********************************************************************^
  3159					;*PROMPT FOR SWITCHES
  3160					S^;*********************************************************************^
  3161													SALL
  3162	004574	261 17 0 00 000001 	$SWXX:	PUT	1
  3163	004575	261 17 0 00 000002 		PUT	2
  3164	004576	261 17 0 00 000003 		PUT	3
  3165	004577	200 01 0 00 000000 		MOVE	1,0		;PUT SWITCH PROMPT TABLE ADDRESS IN 1
  3166	004600	505 01 0 00 777756 		HRLI	1,-^D18		;18 SWITCHES
  3167	004601	201 02 0 00 400000 		MOVEI	2,400000
  3168	004602	400 03 0 00 000000 		SETZ	3,
  3169	004603	037 01 0 00 030242 		PCRLF
  3170
  3171	004604	200 00 0 01 000000 	$SWXX1:	MOVE	(1)		;GET SIXBIT PROMPT
  3172	004605	322 00 0 00 004615 		JUMPE	0,$SWXX2	;IF BLANK, NO PROMPT
  3173	004606	037 01 0 00 000002 		PNTSXF
  3174	004607	037 01 0 00 000011 		PNTCIF	11		;PRINT A TAB
  3175	004610	260 17 0 00 004656 		GO	$SWZZ		;GET SWITCH ANSWER
  3176	004611	254 00 0 00 004603 		JRST	$SWXX1-1	;ERROR
  3177	004612	254 00 0 00 004617 		JRST	$SWXX3		;CONTROL Z
  3178	004613	254 00 0 00 004647 		JRST	$SWXX4		;UPARROW
  3179	004614	434 03 0 00 000002 		OR	3,2		;YES, OR SWITCH BIT IN
  3180									;NO, DON'T SET SWITCH BIT
  3181	004615	242 02 0 00 777777 	$SWXX2:	LSH	2,-1		;POSITION TO NEXT SWITCH
  3182	004616	253 01 0 00 004604 		AOBJN	1,$SWXX1
  3183	004617	037 01 0 00 030242 	$SWXX3:	PCRLF
  3184	004620	200 00 0 00 000003 		MOVE	0,3		;RETURN SWITCHES IN 0
  3185	004621	262 17 0 00 000003 		GET	3
  3186	004622	262 17 0 00 000002 		GET	2
  3187	004623	262 17 0 00 000001 		GET	1
  3188	004624	263 17 0 00 000000 		RTN
  3189
  3190	004625	41 42 57 62 64 00 	SWTAB:	SIXBIT/ABORT/
  3191	004626	62 63 64 41 62 64 		SIXBIT/RSTART/
  3192	004627	64 57 64 41 54 63 		SIXBIT/TOTALS/
  3193	004630	56 57 60 56 64 00 		SIXBIT/NOPNT/
  3194	004631	000000	000000			0		;SIXBIT/PNTLPT/
  3195	004632	44 51 56 47 00 00 		SIXBIT/DING/
  3196	004633	54 57 57 60 45 62 		SIXBIT/LOOPER/
  3197	004634	45 62 63 64 57 60 		SIXBIT/ERSTOP/
  3198	004635	60 41 54 45 62 63 		SIXBIT/PALERS/
  3199	004636	62 45 54 51 41 42 		SIXBIT/RELIAB/
  3200	004637	64 70 64 51 56 50 		SIXBIT/TXTINH/
  3201	004640	51 56 50 60 41 47 		SIXBIT/INHPAG/
  3202	004641	55 57 44 44 66 43 		SIXBIT/MODDVC/
  3203	004642	51 56 50 43 63 50 		SIXBIT/INHCSH/
  3204	004643	57 60 62 63 45 54 		SIXBIT/OPRSEL/
  3205	004644	43 50 41 51 56 00 		SIXBIT/CHAIN/
  3206	004645	000000	000000			0
  3207	004646	000000	000000			0
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 51
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE                                      SEQ 0135

  3208					;*PROCESS PROMPT
  3209					;*	CONTROL Z, ENDS PROMPTING
  3210					;*	UPARROW, BACK UP ONE PROMPT
  3211					;*	Y, SET SWITCH
  3212					;*	N, DON'T SET SWITCH
  3213					;*	CR, DON'T SET SWITCH
  3214
  3215	004647	306 02 0 00 400000 	$SWXX4:	CAIN	2,400000	;BACKED UP ALL THE WAY ?
  3216	004650	254 00 0 00 004655 		JRST	.+5		;YES
  3217	004651	242 02 0 00 000001 		LSH	2,1		;BACKUP SWITCH BIT
  3218	004652	274 01 0 00 007050 		SUB	1,[1,,1]	;BACKUP SWITCH TABLE POINTER
  3219	004653	336 00 0 01 000000 		SKIPN	(1)		;THIS POSITION BLANK ?
  3220	004654	254 00 0 00 004647 		JRST	.-5		;YES, BACK UP ANOTHER
  3221	004655	254 00 0 00 004603 		JRST	$SWXX1-1
  3222
  3223	004656	037 01 0 00 007277 	$SWZZ:	PNTMSF	[ASCIZ/- Y,N, <CR> OR ^,^Z - /]
  3224	004657	260 17 0 00 005055 		GO	$OPTLK
  3225	004660	263 17 0 00 000000 		RTN			;NO RESPONSE
  3226	004661	306 00 0 00 000032 		CAIN	"Z"-100
  3227	004662	254 00 0 00 004710 		JRST	$SWZZ1		;^Z, DONE
  3228	004663	306 00 0 00 000136 		CAIN	"^"
  3229	004664	254 00 0 00 004707 		JRST	$SWZZ2		;^, BACKUP
  3230	004665	306 00 0 00 000015 		CAIN	15
  3231	004666	254 00 0 00 004705 		JRST	$SWZZ4		;CR, SAME AS NO
  3232
  3233	004667	302 00 0 00 000131 		CAIE	"Y"		;Y, SET SWITCH BIT
  3234	004670	306 00 0 00 000116 		CAIN	"N"		;N, DON'T SET SWITCH BIT
  3235	004671	254 00 0 00 004673 		JRST	.+2
  3236	004672	263 17 0 00 000000 		RTN			;NEITHER, ERROR
  3237	004673	242 00 0 00 000007 		LSH	0,7
  3238	004674	202 00 0 00 007516 		MOVEM	$SWYYY#
  3239	004675	260 17 0 00 005055 		GO	$OPTLK		;GET CR
  3240	004676	263 17 0 00 000000 		RTN			;NO RESPONSE
  3241	004677	434 00 0 00 007516 		OR	0,$SWYYY
  3242	004700	306 00 0 00 026215 		CAIN	0,26215
  3243	004701	254 00 0 00 004706 		JRST	$SWZZ3		;Y <CR>
  3244	004702	306 00 0 00 023415 		CAIN	0,23415
  3245	004703	254 00 0 00 004705 		JRST	$SWZZ4		;N <CR>
  3246	004704	263 17 0 00 000000 		RTN			;ERROR
  3247
  3248	004705	350 00 0 17 000000 	$SWZZ4:	AOS	(P)		;NO
  3249	004706	350 00 0 17 000000 	$SWZZ3:	AOS	(P)		;YES
  3250	004707	350 00 0 17 000000 	$SWZZ2:	AOS	(P)		;UPARROW
  3251	004710	350 00 0 17 000000 	$SWZZ1:	AOS	(P)		;CONTROL Z
  3252	004711	263 17 0 00 000000 		RTN
  3253
  3254													LALL
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 52
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0136

  3255					SUBTTL	*SUBRTN* TELETYPE INPUT ROUTINES
  3256
  3257					S^;*********************************************************************^
  3258					;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
  3259					;*CHARACTER OR NUMBER RETURNED IN AC0.
  3260					;*CALL SEQUENCE IS AS FOLLOWS:
  3261					;*	NAME
  3262					;*	NO/ERROR RESPONSE RETURN (+ 1)
  3263					;*	NORMAL RESPONSE RETURN (+ 2)
  3264					;*$OPTLK =	INPUT ANY CHARACTER
  3265					;*$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
  3266					;*$NOYES =	ASK QUESTION, CORRECT RESPONSE N
  3267					;*$TPOCT =	INPUT UP TO 12 OCTALS
  3268					;*$TPDEC =	INPUT UP TO 11 DECIMALS
  3269					;*$TPCNV =	INPUT UP TO 9 CONVERT'S
  3270					;*$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
  3271					;*$TALTM =	KEYBOARD, ALT-MODE CHECK
  3272					;*$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS
  3273					S^;*********************************************************************^
  3274
  3275	004712	000000	000000		$TYINI:	0
  3276	004713	402 00 0 00 000032 		SETZM	$80CIW		;CLEAR INPUT WORD
  3277	004714	402 00 0 00 000033 		SETZM	$80COW		;CLEAR OUTPUT WORD
  3278	004715	402 00 0 00 000034 		SETZM	$80KIW		;CLEAR INPUT WORD
  3279	004716	402 00 0 00 000035 		SETZM	$80KOW		;CLEAR OUTPUT WORD
  3280	004717	402 00 0 00 007432 		SETZM	MMFLAG#
  3281	004720	200 00 0 00 000031 		MOVE	0,$80STAT	;GET CONSOLE STATUS WORD
  3282	004721	603 00 0 00 000020 		TLNE	0,($80MM)	;MAINTENANCE MODE BIT SET ?
  3283	004722	476 00 0 00 007432 		SETOM	MMFLAG		;YES, SET TTY IN MAINT MODE
  3284	004723	254 00 1 00 004712 		JRST	@$TYINI
  3285
  3286	004724	000000	000000		$TYCLR:	0
  3287	004725	254 00 1 00 004724 		JRST	@$TYCLR		;NOTHING REQUIRED
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 53
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0137

  3288
  3289	004726	000000	000000		$CYTYI:	0
  3290	004727	200 00 0 00 000032 		MOVE	0,$80CIW	;GET INPUT WORD
  3291	004730	606 00 0 00 000400 		TRNN	0,$80CHR	;CHAR FLAG BIT SET ?
  3292	004731	254 00 1 00 004726 		JRST	@$CYTYI		;NO
  3293
  3294	004732	402 00 0 00 000032 		SETZM	$80CIW		;CLEAR INPUT WORD
  3295	004733	405 00 0 00 000177 		ANDI	0,177
  3296
  3297	004734	350 00 0 00 004726 		AOS	$CYTYI
  3298	004735	350 00 0 00 004726 		AOS	$CYTYI
  3299	004736	254 00 1 00 004726 		JRST	@$CYTYI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3300
  3301	004737	000000	000000		$KYTYI:	0
  3302	004740	200 00 0 00 000034 		MOVE	0,$80KIW	;GET INPUT WORD
  3303	004741	606 00 0 00 000400 		TRNN	0,$80CHR	;CHAR FLAG BIT SET ?
  3304	004742	254 00 1 00 004737 		JRST	@$KYTYI		;NO
  3305
  3306	004743	402 00 0 00 000034 		SETZM	$80KIW		;CLEAR INPUT WORD
  3307	004744	405 00 0 00 000177 		ANDI	0,177
  3308
  3309	004745	350 00 0 00 004737 		AOS	$KYTYI
  3310	004746	350 00 0 00 004737 		AOS	$KYTYI
  3311	004747	254 00 1 00 004737 		JRST	@$KYTYI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3312
  3313	004750	000000	000000		$BYTYI:	0
  3314	004751	264 00 0 00 004726 		CTYTYI			;ANY CTY INPUT ?
  3315	004752	254 00 0 00 004757 		JRST	.+5		;NO
  3316	004753	254 04 0 00 004753 		HALT	.
  3317	004754	350 00 0 00 004750 		AOS	$BYTYI
  3318	004755	350 00 0 00 004750 		AOS	$BYTYI
  3319	004756	254 00 1 00 004750 		JRST	@$BYTYI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3320	004757	264 00 0 00 004737 		KTYTYI			;ANY KLINIK INPUT ?
  3321	004760	254 00 1 00 004750 		JRST	@$BYTYI		;NO
  3322	004761	254 04 0 00 004761 		HALT	.
  3323	004762	254 00 0 00 004754 		JRST	.-6
  3324
  3325	004763	000000	000000		$COMTI:	0
  3326	004764	332 00 0 00 007432 		SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  3327	004765	254 00 0 00 004774 		JRST	.+7		;YES
  3328
  3329	004766	264 00 0 00 004726 		CTYTYI			;ANY CTY INPUT ?
  3330	004767	254 00 1 00 004763 		JRST	@$COMTI		;NO
  3331	004770	254 04 0 00 004770 		HALT	.
  3332	004771	350 00 0 00 004763 		AOS	$COMTI
  3333	004772	350 00 0 00 004763 		AOS	$COMTI
  3334	004773	254 00 1 00 004763 		JRST	@$COMTI		;DOUBLE SKIP RETURN, CHAR IN AC0
  3335
  3336	004774	264 00 0 00 004737 		KTYTYI			;ANY KLINIK INPUT ?
  3337	004775	254 00 1 00 004763 		JRST	@$COMTI		;NO
  3338	004776	254 04 0 00 004776 		HALT	.
  3339	004777	350 00 0 00 004763 		AOS	$COMTI
  3340	005000	350 00 0 00 004763 		AOS	$COMTI
  3341	005001	254 00 1 00 004763 		JRST	@$COMTI		;DOUBLE SKIP RETURN, CHAR IN AC0
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 54
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0138

  3342
  3343	005002	000000	000000		$CYTYO:	0
  3344	005003	660 00 0 00 000400 		TRO	0,$80CHR	;SET FLAG BIT
  3345	005004	202 00 0 00 000033 		MOVEM	0,$80COW	;PUT IN COMM AREA
  3346	005005	7 000 24 0 00 000000 		CONI	APR,0		;GET PRESENT APR
  3347	005006	405 00 0 00 000007 		ANDI	7		;KEEP PI ASSIGNMENT
  3348	005007	660 00 0 00 012000 		TRO	$80INT		;SET INTERRUPT 8080
  3349	005010	7 000 20 1 00 000000 		CONO	APR,@0		;INTERRUPT 8080
  3350	005011	200 00 0 00 000033 		MOVE	0,$80COW	;GET OUTPUT WORD
  3351	005012	602 00 0 00 000400 		TRNE	0,$80CHR	;8080 SENT THIS CHAR ?
  3352	005013	254 00 0 00 005011 		JRST	.-2		;NO, WAIT
  3353	005014	254 00 1 00 005002 		JRST	@$CYTYO		;YES
  3354
  3355	005015	000000	000000		$KYTYO:	0
  3356	005016	660 00 0 00 000400 		TRO	0,$80CHR	;SET FLAG BIT
  3357	005017	202 00 0 00 000035 		MOVEM	0,$80KOW	;PUT IN COMM AREA
  3358	005020	7 000 24 0 00 000000 		CONI	APR,0		;GET PRESENT APR
  3359	005021	405 00 0 00 000007 		ANDI	7		;KEEP PI ASSIGNMENT
  3360	005022	660 00 0 00 012000 		TRO	$80INT		;SET INTERRUPT 8080
  3361	005023	7 000 20 1 00 000000 		CONO	APR,@0		;INTERRUPT 8080
  3362	005024	200 00 0 00 000035 		MOVE	0,$80KOW	;GET OUTPUT WORD
  3363	005025	602 00 0 00 000400 		TRNE	0,$80CHR	;8080 SENT THIS CHAR ?
  3364	005026	254 00 0 00 005024 		JRST	.-2		;NO, WAIT
  3365	005027	254 00 1 00 005015 		JRST	@$KYTYO		;YES
  3366
  3367	005030	000000	000000		$BYTYO:	0
  3368	005031	202 00 0 00 007454 		MOVEM	0,$BYTYC#	;SAVE OUTPUT CHAR
  3369	005032	264 00 0 00 005002 		CTYTYO			;OUTPUT CHAR TO CTY
  3370	005033	200 00 0 00 007454 		MOVE	0,$BYTYC	;GET OUTPUT CHAR
  3371	005034	332 00 0 00 007432 		SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  3372	005035	264 00 0 00 005015 		KTYTYO			;YES, OUTPUT CHAR TO KLINIK
  3373	005036	254 00 1 00 005030 		JRST	@$BYTYO
  3374
  3375	005037	000000	000000		$COMTO:	0
  3376	005040	332 00 0 00 007432 		SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  3377	005041	254 00 0 00 005044 		JRST	.+3		;YES
  3378	005042	264 00 0 00 005002 		CTYTYO			;OUTPUT CHAR TO CTY
  3379	005043	254 00 1 00 005037 		JRST	@$COMTO
  3380	005044	264 00 0 00 005015 		KTYTYO			;OUTPUT CHAR TO KLINIK
  3381	005045	254 00 1 00 005037 		JRST	@$COMTO
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 55
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0139

  3382					S^;*********************************************************************^
  3383					;*TTLOOK
  3384					;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
  3385					;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
  3386					S^;*********************************************************************^
  3387
  3388	005046	260 17 0 00 006155 	$TTLK:	GO	ANYOUT		;IF ANY OUTPUT, PRINT IT
  3389	005047	400 00 0 00 000000 		SETZ	AC0,
  3390	005050	254 00 0 00 005134 		JRST	$HEAR		;CHECK & INPUT IF THERE
  3391
  3392					S^;*********************************************************************^
  3393					;*TTYINP
  3394					;*TELETYPE IMAGE MODE INPUT
  3395					;*PROVIDES UNBUFFERED MODE INPUT
  3396					;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
  3397					S^;*********************************************************************^
  3398
  3399	005051	260 17 0 00 006155 	$TTYIN:	GO	ANYOUT		;IF ANY OUTPUT, PRINT IT
  3400	005052	260 17 0 00 005134 		GO	$HEAR		;GET CHAR
  3401	005053	254 00 0 00 005052 		JRST	.-1		;WAIT FOR IT
  3402	005054	263 17 0 00 000000 		RTN
  3403
  3404					S^;*********************************************************************^
  3405					;*TTICHR
  3406					;*TELETYPE INPUT OPERATOR RESPONSE ROUTINE
  3407					S^;*********************************************************************^
  3408
  3409	005055	260 17 0 00 006155 	$OPTLK:	GO	ANYOUT		;IF ANY OUTPUT, PRINT IT
  3410	005056	202 04 0 00 007517 		MOVEM	4,$TACB4#
  3411	005057	200 04 0 00 007304 		MOVE	4,[44,,30600]	;1 SEC FUDGE FACTOR
  3412	005060	363 04 0 00 005064 		SOJLE	4,.+4		;WAITED LONG ENOUGH YET ?
  3413	005061	260 17 0 00 005134 		GO	$HEAR		;NO, GO LOOK FOR INPUT & RETURN
  3414	005062	254 00 0 00 005060 		JRST	.-2		;NO RESPONSE, REPEAT
  3415	005063	350 00 0 17 000000 		AOS	(P)		;CHAR TYPED, RETURN +2
  3416	005064	202 04 0 00 030225 		MOVEM	4,$TWCNT	;SAVE TTY WAIT COUNT
  3417	005065	200 04 0 00 007517 		MOVE	4,$TACB4
  3418	005066	263 17 0 00 000000 		RTN			;NO CHAR, RETURN +1
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 56
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0140

  3419					S^;*********************************************************************^
  3420					;*TTALTM
  3421					;*TELETYPE ALT-MODE CHECK ROUTINE
  3422					S^;*********************************************************************^
  3423
  3424	005067	260 17 0 00 005046 	$TALTM:	GO	$TTLK
  3425	005070	263 17 0 00 000000 		RTN			;NO TYPE-IN  ...EXIT
  3426
  3427	005071	302 00 0 00 000175 	$TALT2:	CAIE	175
  3428	005072	306 00 0 00 000176 		CAIN	176
  3429	005073	254 00 0 00 005076 		JRST	$TALT1		;ALT-MODE WAS TYPED
  3430	005074	302 00 0 00 000033 		CAIE	33
  3431	005075	254 00 0 00 005077 		JRST	.+2		;NO ALT-MODE
  3432
  3433	005076	254 00 0 00 030064 	$TALT1:	JRST	CPOPJ1		;ALT-MODE, RETURN +2
  3434
  3435	005077	306 00 0 00 000004 		CAIN	004		;IS CHAR CONTROL D (^D) ?
  3436	005100	254 00 0 00 003146 		JRST	$DDTENT		;YES
  3437	005101	306 00 0 00 000024 		CAIN	024		;IS CHAR CONTROL T (^T) ?
  3438	005102	254 00 0 00 005115 		JRST	$TALT3		;YES
  3439	005103	306 00 0 00 000005 		CAIN	005		;IS CHAR CONTROL E (^E) ?
  3440	005104	254 00 0 00 005123 		JRST	$TALT4		;YES
  3441	005105	302 00 0 00 000007 		CAIE	007		;IS CHAR A BELL ?
  3442	005106	263 17 0 00 000000 		RTN
  3443	005107	332 00 0 00 030522 		SKIPE	$$TAX1
  3444	005110	256 00 0 00 030522 		XCT	$$TAX1		;XCT USERS PRE-ROUTINE
  3445	005111	260 17 0 00 004477 		GO	$SW0		;YES, DING FOR SWITCH CONTROL
  3446	005112	332 00 0 00 030523 		SKIPE	$$TAX2
  3447	005113	256 00 0 00 030523 		XCT	$$TAX2		;XCT USERS POST-ROUTINE
  3448	005114	263 17 0 00 000000 		RTN
  3449
  3450	005115				$TALT3:	PMSGF	<TEST PC = >^
  3451	005115	037 04 0 00 007305 		PSIXMF	[SIXBIT\TEST PC = _\]^
  3452	005116	550 00 0 00 030051 		HRRZ	TESTPC
  3453	005117	037 06 0 00 000001 		PNT6F			;PRINT TEST PC
  3454	005120	037 01 0 00 030242 		PCRLF
  3455	005121	201 00 0 00 000024 		MOVEI	0,024
  3456	005122	263 17 0 00 000000 		RTN
  3457
  3458	005123				$TALT4:	PMSGF	<ERROR PC = >^
  3459	005123	037 04 0 00 007307 		PSIXMF	[SIXBIT\ERROR PC = _\]^
  3460	005124	550 00 0 00 030052 		HRRZ	ERRPC
  3461	005125	037 06 0 00 000001 		PNT6F			;PRINT ERROR PC
  3462						PMSGF	< ERROR TOTALS = >^
  3463	005126	037 04 0 00 007311 		PSIXMF	[SIXBIT\ ERROR TOTALS = _\]^
  3464	005127	200 00 0 00 030053 		MOVE	ERRTLS
  3465	005130	037 15 0 00 000001 		PNTDCF			;PRINT ERROR TOTALS
  3466	005131	037 01 0 00 030242 		PCRLF
  3467	005132	201 00 0 00 000005 		MOVEI	0,005
  3468	005133	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 57
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0141

  3469					S^;*********************************************************************^
  3470					;*TELETYPE INPUT CHARACTER ROUTINE 
  3471					S^;*********************************************************************^
  3472
  3473	005134	260 17 0 00 005156 	$HEAR:	GO	$TIRDY		;KEY BEEN STRUCK ?
  3474	005135	263 17 0 00 000000 		RTN			;NO, EXIT
  3475
  3476	005136	202 00 0 00 030231 	$TIEX2:	MOVEM	0,$TTCHR#	;SAVE ACTUAL CHARACTER
  3477	005137	405 00 0 00 000177 		ANDI	0,177
  3478	005140	306 00 0 00 000023 		CAIN	0,023
  3479	005141	254 00 0 00 005134 		JRST	$HEAR		;XOFF
  3480	005142	306 00 0 00 000021 		CAIN	021
  3481	005143	254 00 0 00 005134 		JRST	$HEAR		;XON
  3482	005144	350 00 0 00 007455 		AOS	$CARCT
  3483	005145	260 17 0 00 006306 		GO	$TYOUT		;ECHO IT
  3484	005146	306 00 0 00 000003 		CAIN	0,003		;IS IT ^C ?
  3485	005147	254 00 0 00 005215 		JRST	$HEAR1		;YES, TERMINATE
  3486	005150	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  3487	005151	254 00 0 00 005164 		JRST	$HEAR4		;NO-PROCESS IT 
  3488	005152	402 00 0 00 007455 		SETZM	$CARCT
  3489	005153	201 00 0 00 000012 		MOVEI	0,12		;YES
  3490	005154	260 17 0 00 006306 		GO	$TYOUT		;ECHO LF 
  3491	005155	254 00 0 00 005164 		JRST	$HEAR4		;PROCESS THE CHARACTER
  3492
  3493	005156	264 00 0 00 004750 	$TIRDY:	BTYTYI			;GET INPUT CHAR
  3494	005157	263 17 0 00 000000 		RTN			;NOT AVAILABLE
  3495	005160	254 04 0 00 005160 		HALT	.
  3496
  3497	005161	322 00 0 00 030065 		JUMPE	 0,CPOPJ	;NO GOOD IF NULL
  3498	005162	254 00 0 00 030064 		JRST	CPOPJ1		;SKIP RETURN
  3499
  3500	005163	263 17 0 00 000000 	$TPCLR:	RTN			;CLEAR TTY INPUT (EXEC=NO-OP)
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 58
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0142

  3501					S^;*********************************************************************^
  3502					;*CHARACTER PROCESSING ROUTINE FOR INPUT
  3503					;*CHARACTER RETURNED IN AC0 IS UPPER CASE
  3504					;*ACTUAL CHARACTER IS IN $TTCHR
  3505					S^;*********************************************************************^
  3506
  3507	005164	200 00 0 00 030231 	$HEAR4:	MOVE	0,$TTCHR	;GET ACTUAL CHARACTER
  3508	005165	405 00 0 00 000177 		ANDI	0,177		;CLEAR PARITY BIT
  3509	005166	301 00 0 00 000141 		CAIL	0,"A"+40	;CONVERT TO UPPER CASE
  3510	005167	303 00 0 00 000172 		CAILE	0,"Z"+40
  3511	005170	254 00 0 00 005172 		JRST	.+2
  3512	005171	275 00 0 00 000040 		SUBI	0,40
  3513	005172	202 00 0 00 030232 		MOVEM	0,$CHRIN#	;SAVE CHARACTER
  3514	005173	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  3515	005174	254 00 0 00 005205 		JRST	$HEAR3		;NO
  3516	005175	402 00 0 00 007455 		SETZM	$CARCT		;CLEAR CHARACTER COUNTER
  3517	005176	200 00 0 00 030046 		MOVE	0,CONSW
  3518	005177	607 00 0 00 000000 		TLNN	0,PNTLPT	;LPT/LOGICAL DEVICE OUTPUT ?
  3519	005200	254 00 0 00 005202 		JRST	$HEAR2		;NO
  3520	005201	037 00 0 00 030242 		PCRL			;YES-ADD CRLF
  3521	005202	200 00 0 00 030232 	$HEAR2:	MOVE	0,$CHRIN	;PUT INPUT CHAR IN AC0
  3522	005203	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN +2 
  3523	005204	263 17 0 00 000000 		RTN			;NORMAL RETURN +1 
  3524
  3525	005205	306 00 0 00 000004 	$HEAR3:	CAIN	0,04
  3526	005206	254 00 0 00 003146 		JRST	$DDTENT		;CONTROL D, GO TO DDT
  3527	005207	200 00 0 00 030046 		MOVE	0,CONSW		;GET DATA SWITCHES
  3528	005210	607 00 0 00 000000 		TLNN	0,PNTLPT	;PRINT ON LPT?
  3529	005211	254 00 0 00 005202 		JRST	$HEAR2		;NO-EXIT 
  3530	005212	200 00 0 00 030232 		MOVE	0,$CHRIN	;YES
  3531	005213	037 12 0 00 000000 		PNTCHR			;SEND CHAR TO LPT/LOGICAL DEV
  3532	005214	254 00 0 00 005202 		JRST	$HEAR2		;EXIT 
  3533
  3534	005215	201 00 0 00 005134 	$HEAR1:	MOVEI	0,$HEAR+0	;CONTROL C, SAVE ENTRY TO 
  3535	005216	202 00 0 00 000130 		MOVEM	0,JOBOPC	;TTY ROUTINE FOR RESTART
  3536	005217	331 00 0 00 030043 		SKIPL	MONCTL		;DIAG MONITOR ?
  3537	005220	254 00 1 00 030062 		JRST	@CNTLC		;TERMINATE
  3538	005221	254 00 0 00 020000 		JRST	DIAMON		;YES, RESTART MONITOR
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 59
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE                                          SEQ 0143

  3539					SUBTTL	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
  3540
  3541					S^;*********************************************************************^
  3542					;*ACCEPTS Y OR N
  3543					;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
  3544					;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
  3545					;*'Y OR N <CR> - ' ASKED UPON ENTRY
  3546					S^;*********************************************************************^
  3547
  3548	005222	201 00 0 00 000001 	$NOYES:	MOVEI	0,1		;INIT FOR N ANSWER
  3549	005223	254 00 0 00 005225 		JRST	.+2
  3550	005224	201 00 0 00 000000 	$YESNO:	MOVEI	0,0		;INIT FOR Y ANSWER
  3551	005225	202 01 0 00 007520 		MOVEM	1,$TACC1#	;SAVE AC'S
  3552	005226	202 02 0 00 007521 		MOVEM	2,$TACC2#
  3553	005227	200 02 0 00 000000 		MOVE	2,0
  3554
  3555	005230				$YN1:	PMSGF	< Y OR N <CR> - >^
  3556	005230	037 04 0 00 007314 		PSIXMF	[SIXBIT\ Y OR N <CR> - _\]^
  3557	005231	260 17 0 00 005055 		GO	$OPTLK
  3558	005232	254 00 0 00 005252 		JRST	$YN2		;NO RESPONSE
  3559	005233	302 00 0 00 000131 		CAIE	0,"Y"		;IS IT A 'Y' ?
  3560	005234	306 00 0 00 000116 		CAIN	0,"N"		;OR AN 'N' ?
  3561	005235	254 00 0 00 005237 		JRST	.+2		;YES
  3562	005236	254 00 0 00 005256 		JRST	$YN3		;NEITHER, ERROR
  3563	005237	200 01 0 00 000000 		MOVE	1,0
  3564	005240	242 01 0 00 000007 		LSH	1,7		;POSITION 1ST CHAR
  3565	005241	260 17 0 00 005055 		GO	$OPTLK
  3566	005242	254 00 0 00 005252 		JRST	$YN2		;NO RESPONSE
  3567	005243	434 01 0 00 000000 		OR	1,0		;MERGE 2ND CHAR
  3568	005244	316 01 0 02 005260 		CAMN	1,$YN4(2)	;COMPARE FOR REQUESTED
  3569	005245	254 00 0 00 005251 		JRST	.+4		;YES, RETURN +2
  3570	005246	316 01 0 02 005261 		CAMN	1,$YN4+1(2)	;COMPARE FOR OPPOSITE
  3571	005247	254 00 0 00 005252 		JRST	.+3		;YES, RETURN +1
  3572	005250	254 00 0 00 005256 		JRST	$YN3		;ERROR, REPEAT
  3573	005251	350 00 0 17 000000 		AOS	(P)		;YES, RETURN +2
  3574	005252	200 02 0 00 007521 	$YN2:	MOVE	2,$TACC2	;RESTORE AC2
  3575	005253	200 00 0 00 000001 		MOVE	0,1
  3576	005254	200 01 0 00 007520 		MOVE	1,$TACC1	;RESTORE AC1
  3577	005255	263 17 0 00 000000 		RTN			;RETURN +1
  3578
  3579	005256	037 01 0 00 030242 	$YN3:	PCRLF
  3580	005257	254 00 0 00 005230 		JRST	$YN1
  3581
  3582	005260	000000	026215		$YN4:	EXP	26215		;'Y' (CR)
  3583	005261	000000	023415			EXP	23415		;'N' (CR)
  3584	005262	000000	026215			EXP	26215		;'Y' (CR)
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 60
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0144

  3585					SUBTTL	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
  3586
  3587					S^;*********************************************************************^
  3588					;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
  3589					;*NUMBER RETURNED IN AC0.
  3590					S^;*********************************************************************^
  3591
  3592	005263	201 00 0 00 000002 	$TPCNV:	MOVEI	AC0,2		;SET INDEX TO CONVERT
  3593	005264	254 00 0 00 005270 		JRST	$TPCV1
  3594	005265	201 00 0 00 000001 	$TPDEC:	MOVEI	AC0,1		;SET INDEX TO DECIMAL
  3595	005266	254 00 0 00 005270 		JRST	$TPCV1
  3596	005267	201 00 0 00 000000 	$TPOCT:	MOVEI	AC0,0		;SET INDEX TO OCTAL
  3597
  3598	005270	202 01 0 00 007522 	$TPCV1:	MOVEM	1,$TACD1#	;SAVE AC'S 1-3
  3599	005271	202 02 0 00 007523 		MOVEM	2,$TACD2#
  3600	005272	202 03 0 00 007524 		MOVEM	3,$TACD3#
  3601	005273	200 03 0 00 000000 		MOVE	3,0		;LOAD AC3 WITH THE INDEX
  3602	005274	403 01 0 00 000002 		SETZB	1,2		;CLEAR DATA REG, CHAR COUNTER
  3603	005275	402 00 0 00 030233 		SETZM	$TYPNB#		;CLEAR ERR NUMBER
  3604	005276	402 00 0 00 007467 		SETZM	$NEGF#		;CLEAR NEGATE FLAG
  3605	005277	402 00 0 00 007456 		SETZM	$CNVD#		;CLEAR DECIMAL CONVERT FLAG
  3606	005300	402 00 0 00 030510 		SETZM	TTNBRF		;CLEAR DIGIT TYPED FLAG
  3607
  3608					S^;*********************************************************************^
  3609					;*INPUT AND COMPUTE NUMBER
  3610					S^;*********************************************************************^
  3611
  3612	005301	260 17 0 00 005055 	$TYPLP:	GO	$OPTLK
  3613	005302	254 00 0 00 005340 		JRST	$TPERR		;NO RESPONSE, GO TO ERROR EXIT
  3614	005303	306 00 0 00 000055 		CAIN	0,"-"		;IS IT MINUS ?
  3615	005304	254 00 0 00 005356 		JRST	$NEGX		;YES
  3616	005305	306 00 0 00 000056 		CAIN	0,"."		;IS IT PERIOD ?
  3617	005306	254 00 0 00 005362 		JRST	$CNVX		;YES
  3618	005307	306 00 0 00 000015 		CAIN	0,15		;IS IT CR ?
  3619	005310	254 00 0 00 005324 		JRST	$TPEXT		;YES
  3620	005311	306 00 0 00 000054 		CAIN	0,","		;IS IT COMMA ?
  3621	005312	254 00 0 00 005324 		JRST	$TPEXT		;YES
  3622	005313	301 00 0 00 000060 		CAIL	0,"0"		;A VALID DIGIT ?
  3623	005314	256 00 0 03 005345 		XCT	$TPCK(3)	;YES
  3624	005315	254 00 0 00 005340 		JRST	$TPERR		;NO ...ERROR EXIT
  3625
  3626	005316	476 00 0 00 030510 	$TYPL1:	SETOM	TTNBRF		;SET DIGIT TYPED FLAG
  3627	005317	350 00 0 00 000002 		AOS	2		;INCREMENT CHARACTER COUNTER
  3628	005320	256 00 0 03 005350 		XCT	$TPMUL(3)	;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
  3629	005321	275 00 0 00 000060 		SUBI	60		;ADD IN NEW CHAR
  3630	005322	270 01 0 00 000000 		ADD	1,0
  3631	005323	254 00 0 00 005301 		JRST	$TYPLP		;REPEAT TILL CR OR COMMA
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 61
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0145

  3632					S^;*********************************************************************^
  3633					;*CHECK FOR PROPER AMOUNT OF CHARACTERS
  3634					S^;*********************************************************************^
  3635
  3636	005324	256 00 0 03 005353 	$TPEXT:	XCT	$TPNBR(3)	;PROPER NUMBER OF CHARACTERS
  3637	005325	254 00 0 00 005340 		JRST	$TPERR		;NO ...ERROR EXIT 
  3638	005326	306 03 0 00 000002 		CAIN	3,2		;CONVERT ? (INDEX = 2)
  3639	005327	254 00 0 00 005366 		JRST	$CNVX1		;YES
  3640									;NO, EXIT
  3641
  3642	005330	200 03 0 00 007524 	$TPEX1:	MOVE	3,$TACD3	;RESTORE AC'S 3 & 2
  3643	005331	200 02 0 00 007523 		MOVE	2,$TACD2
  3644	005332	200 00 0 00 000001 		MOVE	0,1		;PUT NUMBER IN AC0
  3645	005333	332 00 0 00 007467 		SKIPE	$NEGF		;NEGATE ?
  3646	005334	210 00 0 00 000001 		MOVN	0,1		;YES
  3647	005335	200 01 0 00 007522 		MOVE	1,$TACD1	;RESTORE AC1
  3648	005336	350 00 0 17 000000 		AOS	(P)		;RETURN +2 
  3649	005337	263 17 0 00 000000 		RTN			;RETURN +1 
  3650
  3651	005340	202 01 0 00 030233 	$TPERR:	MOVEM	1,$TYPNB	;SAVE NUMBER - ERROR EXIT
  3652	005341	200 03 0 00 007524 		MOVE	3,$TACD3	;RESTORE AC'S
  3653	005342	200 02 0 00 007523 		MOVE	2,$TACD2
  3654	005343	200 01 0 00 007522 		MOVE	1,$TACD1
  3655	005344	263 17 0 00 000000 		RTN			;ERROR EXIT
  3656
  3657					S^;*********************************************************************^
  3658					;*NUMBER COMPUTING CONSTANTS
  3659					S^;*********************************************************************^
  3660
  3661	005345	303 00 0 00 000067 	$TPCK:	CAILE	0,"7"		;OCTAL NUMBER CHECK
  3662	005346	303 00 0 00 000071 		CAILE	0,"9"		;DECIMAL NUMBER CHECK
  3663	005347	303 00 0 00 000071 		CAILE	0,"9"		;CONVERT NUMBER CHECK
  3664	005350	242 01 0 00 000003 	$TPMUL:	LSH	1,3		;OCTAL BASE SHIFT
  3665	005351	221 01 0 00 000012 		IMULI	1,^D10		;DECIMAL BASE MULTIPLIER
  3666	005352	242 01 0 00 000004 		LSH	1,4		;CONVERT SHIFT
  3667	005353	303 02 0 00 000014 	$TPNBR:	CAILE	2,^D12		;ACCEPT UP TO 12 OCTALS
  3668	005354	303 02 0 00 000013 		CAILE	2,^D11		;ACCEPT UP TO 11 DECIMALS
  3669	005355	303 02 0 00 000011 		CAILE	2,^D9		;ACCEPT UP TO 9 CONVERT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 62
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0146

  3670	005356	332 00 0 00 000002 	$NEGX:	SKIPE	2		;1ST CHAR ?
  3671	005357	254 00 0 00 005340 		JRST	$TPERR		;NO, ERROR EXIT
  3672	005360	476 00 0 00 007467 		SETOM	$NEGF		;YES, SET NEGATE FLAG
  3673	005361	254 00 0 00 005301 		JRST	$TYPLP		;GET NEXT CHAR
  3674
  3675	005362	302 03 0 00 000002 	$CNVX:	CAIE	3,2		;PERIOD, IN CONVERT ?
  3676	005363	254 00 0 00 005340 		JRST	$TPERR		;NO, ERROR EXIT
  3677	005364	476 00 0 00 007456 		SETOM	$CNVD		;YES, SET DECIMAL FLAG
  3678	005365	254 00 0 00 005301 		JRST	$TYPLP		;GET NEXT CHAR
  3679
  3680					S^;*********************************************************************^
  3681					;*CONVERT CONVERSION ROUTINE
  3682					S^;*********************************************************************^
  3683
  3684	005366	201 02 0 00 000011 	$CNVX1:	MOVEI	2,^D9		;NINE DIGITS
  3685	005367	402 00 0 00 000000 		SETZM	0
  3686	005370	332 00 0 00 007456 		SKIPE	$CNVD		;OCTAL OR DECIMAL ?
  3687	005371	254 00 0 00 005401 		JRST	$CNVX2		;DECIMAL
  3688	005372	612 01 0 00 007317 		TDNE	1,[421042104210]	;OCTAL
  3689	005373	254 00 0 00 005340 		JRST	$TPERR		;OCTAL ERROR, 8 OR 9 INPUT
  3690	005374	242 01 0 00 000001 		LSH	1,1		;SQUEEZE OUT 4TH BIT
  3691	005375	246 00 0 00 000003 		LSHC	0,3		;COMPACT INTO OCTAL
  3692	005376	366 02 0 00 005374 		SOJN	2,.-2		;COMPLETED ?
  3693	005377	200 01 0 00 000000 		MOVE	1,0		;YES
  3694	005400	254 00 0 00 005330 		JRST	$TPEX1		;RETURN 
  3695
  3696	005401	402 00 0 00 000003 	$CNVX2:	SETZM	3		;DECIMAL
  3697	005402	402 00 0 00 000000 		SETZM	0
  3698	005403	221 03 0 00 000012 		IMULI	3,^D10		;MULTIPLY BY DECIMAL BASE
  3699	005404	246 00 0 00 000004 		LSHC	0,4		;UNPACK NEXT DIGIT
  3700	005405	270 03 0 00 000000 		ADD	3,0		;ADD IN
  3701	005406	366 02 0 00 005402 		SOJN	2,.-4		;COMPLETED ?
  3702	005407	200 01 0 00 000003 		MOVE	1,3		;YES
  3703	005410	254 00 0 00 005330 		JRST	$TPEX1		;RETURN
  3704
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 63
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE                                            SEQ 0147

  3705					SUBTTL	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
  3706
  3707					S^;*********************************************************************^
  3708					;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
  3709					;*SIXBIT WORD RETURNED IN AC0
  3710					S^;*********************************************************************^
  3711
  3712	005411	202 01 0 00 007525 	$TISIX:	MOVEM	1,$TSX1#	;SAVE AC'S
  3713	005412	202 02 0 00 007526 		MOVEM	2,$TSX2#
  3714	005413	200 02 0 00 007320 		MOVE	2,[POINT 6,1]
  3715	005414	201 01 0 00 000000 		MOVEI	1,0
  3716
  3717	005415	260 17 0 00 005055 	$TSXB1:	GO	$OPTLK
  3718	005416	254 00 0 00 005440 		JRST	$TSXB3		;NO RESPONSE, RTN + 1
  3719	005417	306 00 0 00 000015 		CAIN	0,15
  3720	005420	254 00 0 00 005437 		JRST	$TSXB2		;CR, TERMINATE, RTN + 2 
  3721	005421	306 00 0 00 000054 		CAIN	0,","
  3722	005422	254 00 0 00 005437 		JRST	$TSXB2		;COMMA, TERMINATE, RTN + 2
  3723	005423	301 00 0 00 000060 		CAIL	0,"0"
  3724	005424	303 00 0 00 000132 		CAILE	0,"Z"
  3725	005425	254 00 0 00 005440 		JRST	$TSXB3		;ERROR, RTN + 1 
  3726	005426	303 00 0 00 000071 		CAILE	0,"9"
  3727	005427	301 00 0 00 000101 		CAIL	0,"A"
  3728	005430	254 00 0 00 005432 		JRST	$TSXB4		;ALPHA-NUMERIC
  3729	005431	254 00 0 00 005440 		JRST	$TSXB3		;ERROR, RTN + 1 
  3730
  3731	005432	640 00 0 00 000040 	$TSXB4:	TRC	0,40		;CONVERT TO SIX-BIT
  3732	005433	602 01 0 00 000077 		TRNE	1,77
  3733	005434	254 00 0 00 005440 		JRST	$TSXB3		;TOO MANY CHAR'S, RTN + 1
  3734	005435	136 00 0 00 000002 		IDPB	0,2		;PUT INTO WORD
  3735	005436	254 00 0 00 005415 		JRST	$TSXB1		;GET NEXT CHARACTER
  3736
  3737	005437	350 00 0 17 000000 	$TSXB2:	AOS	(P)		;INCR USRPC FOR RTN + 2 (NORMAL)
  3738
  3739	005440	200 00 0 00 000001 	$TSXB3:	MOVE	0,1		;SIXBIT WORD IN AC0
  3740	005441	200 01 0 00 007525 		MOVE	1,$TSX1		;RESTORE AC'S
  3741	005442	200 02 0 00 007526 		MOVE	2,$TSX2
  3742	005443	263 17 0 00 000000 		RTN			;EXIT + 1/+2
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 64
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0148

  3743					SUBTTL	*SUBRTN* PRINT SUBROUTINES
  3744
  3745					S^;*********************************************************************^
  3746					;*	$PNTSX		PRINT SIXBIT NORMAL
  3747					;*	$PTSXF		PRINT SIXBIT FORCED
  3748					;*	$PNTCW		PRINT DF10 CONTROL WORD
  3749					;*	$PNTI1		PRINT OCTAL NUMBER
  3750					;*	$CHRPN		PRINT CHARACTER
  3751					;*	$ASCPN		PRINT ASCII CHARACTER/LINE
  3752					;*	$DECPN		PRINT DECIMAL NUMBER
  3753					S^;*********************************************************************^
  3754
  3755					S^;*********************************************************************^
  3756					;*PRINT SUBROUTINE INITIALIZATION
  3757					S^;*********************************************************************^
  3758
  3759	005444	402 00 0 00 007461 	$PNTIN:	SETZM	$INTDF#		;CLEAR DEVICE DEFAULT FLAG
  3760	005445	402 00 0 00 030226 		SETZM	$DVOFF#		;CLEAR DEVICE INITED FLAG
  3761	005446	402 00 0 00 030221 		SETZM	PDISF#		;CLEAR PRINT DISABLED FLAG
  3762	005447	402 00 0 00 007506 		SETZM	$PTINH#		;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
  3763	005450	402 00 0 00 030222 		SETZM	PNTINH#		;ALLOW EXEC PRINT TYPE IN INHIBIT
  3764	005451	402 00 0 00 007437 		SETZM	XOFFLAG#	;CLEAR XOFF FLAG
  3765	005452	402 00 0 00 030217 		SETZM	PNTFLG#		;CLEAR IN PRINT FLAG
  3766	005453	476 00 0 00 030223 		SETOM	PNTSPC#		;SET PRINT SPACE FLAG
  3767	005454	211 00 0 00 011610 		MOVNI	0,^D5000	;SET PRINT ENABLE TO 5000 LINES
  3768	005455	202 00 0 00 030220 		MOVEM	0,PNTENB
  3769	005456	402 00 0 00 030227 		SETZM	TTYFIL		;ALLOW EXEC FILLERS
  3770	005457	402 00 0 00 030234 		SETZM	$CRLF#		;ALLOW FREE CR/LF
  3771	005460	402 00 0 00 030235 		SETZM	$TABF		;ALLOW TAB CONVERSION
  3772	005461	402 00 0 00 030236 		SETZM	$FFF		;ALLOW FORM FEED CONVERSION
  3773	005462	402 00 0 00 030237 		SETZM	$VTF		;ALLOW VERTICAL TAB CONVERSION
  3774
  3775	005463	201 00 0 00 030061 		MOVEI	$BEND2
  3776	005464	202 00 0 00 030062 		MOVEM	CNTLC		;SET ^C TO ALWAYS END PROGRAM
  3777
  3778	005465	402 00 0 00 007431 		SETZM	ENQFLG#
  3779	005466	200 00 0 00 007321 		MOVE	[POINT 7,$OUTBF]
  3780	005467	202 00 0 00 007434 		MOVEM	P$PTR#		;SETUP PRINT STORE POINTER
  3781
  3782	005470	260 17 0 00 006631 		COMINI			;IF TIMEOUT, SEND IN CLEAR
  3783									;IF ACK'D, SEND IN PROTOCALL MODE
  3784
  3785	005471	201 00 0 00 030006 	$PNTIX:	MOVEI	REENTR		;SETUP REENTER ADDRESS
  3786	005472	202 00 0 00 000124 		MOVEM	JOBREN
  3787	005473	335 00 0 00 030043 		SKIPGE	MONCTL		;MONITOR CONTROL ?
  3788	005474	263 17 0 00 000000 		RTN			;YES, DON'T PRINT TITLE
  3789	005475	332 00 0 00 030056 		SKIPE	$ONETM		;FIRST TIME?
  3790	005476	263 17 0 00 000000 		RTN			;NO .....EXIT
  3791	005477	254 00 0 00 003157 		JRST	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  3792									;AND EXIT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 65
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0149

  3793					S^;*********************************************************************^
  3794					;*PRINT SUBROUTINE ENTRY POINT
  3795					;*EXIT VIA $PNTI4 BELOW
  3796					S^;*********************************************************************^
  3797
  3798	005500	476 00 0 00 030217 	$PNTIF:	SETOM	PNTFLG		;SET IN PRINT FLAG
  3799	005501	476 00 0 00 007501 		SETOM	$PNTTY#		;FORCE TO TTY
  3800	005502	402 00 0 00 007506 		SETZM	$PTINH
  3801	005503	254 00 0 00 005541 		JRST	$PNTIA
  3802
  3803	005504	476 00 0 00 030217 	$PNTIT:	SETOM	PNTFLG		;SET IN PRINT FLAG
  3804	005505	402 00 0 00 007501 		SETZM	$PNTTY		;NOT FORCED TO TTY
  3805	005506	331 00 0 00 030220 		SKIPL	PNTENB#		;PRINT LIMIT REACHED YET?
  3806	005507	254 00 0 00 005525 		JRST	$PNTIB		;YES ..DON'T PRINT
  3807	005510	260 17 0 00 004437 		GO	$SWTCH		;READ DATA SWITCHES INTO AC0
  3808	005511	607 00 0 00 040000 		TLNN	0,NOPNT		;NO PRINT SWITCH SET?
  3809	005512	254 00 0 00 005541 		JRST	$PNTIA
  3810	005513	262 17 0 00 000000 		GET	AC0		;YES ...RESTORE AC0 FROM STACK (P - 1)
  3811	005514	254 00 0 00 005523 		JRST	$PRNTX		;EXIT, DON'T PRINT
  3812
  3813					S^;*********************************************************************^
  3814					;*PRINT ROUTINE EXIT
  3815					S^;*********************************************************************^
  3816
  3817	005515	402 00 0 00 007501 	$PNTI4:	SETZM	$PNTTY		;CLEAR FORCE TO TTY FLAG
  3818
  3819	005516	200 01 0 00 007470 		MOVE	1,$PACA1	;RESTORE AC'S
  3820	005517	200 02 0 00 007471 		MOVE	2,$PACA2
  3821	005520	200 03 0 00 007472 		MOVE	3,$PACA3
  3822	005521	200 04 0 00 007473 		MOVE	4,$PACA4
  3823	005522	200 05 0 00 007474 		MOVE	5,$PACA5
  3824	005523	402 00 0 00 030217 	$PRNTX:	SETZM	PNTFLG		;CLEAR IN PRINT FLAG
  3825	005524	263 17 0 00 000000 		RTN			;RETURN 
  3826
  3827					;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
  3828					S^;*********************************************************************^
  3829
  3830	005525	262 17 0 00 000000 	$PNTIB:	GET	AC0		;RESTORE THE STACK (P - 1)
  3831	005526	332 00 0 00 030221 		SKIPE	PDISF#		;FIRST TIME PRINT DISABLED?
  3832	005527	254 00 0 00 005523 		JRST	$PRNTX		;YES	...EXIT
  3833
  3834	005530	476 00 0 00 030221 	$PNTB1:	SETOM	PDISF		;NO ........SET IT
  3835	005531	202 01 0 00 007470 		MOVEM	1,$PACA1	;SAVE AC'S 1 - 5
  3836	005532	202 02 0 00 007471 		MOVEM	2,$PACA2
  3837	005533	202 03 0 00 007472 		MOVEM	3,$PACA3
  3838	005534	202 04 0 00 007473 		MOVEM	4,$PACA4
  3839	005535	202 05 0 00 007474 		MOVEM	5,$PACA5
  3840	005536	476 00 0 00 007501 		SETOM	$PNTTY		;SET FORCE TO TTY FLAG
  3841						MOVEI	[ASCIZ/
  3842					******
  3843					EXCEEDED ALLOWED PRINTOUTS
  3844	005537	201 00 0 00 007322 	/]
  3845	005540	254 00 0 00 006014 		JRST	$ASCPN-1	;PRINT THE WARNING & EXIT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 66
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0150

  3846					S^;*********************************************************************^
  3847					;*PRINT ROUTINE SELECTOR
  3848					;*BASED ON "AC FIELD" = 12 - 17
  3849					S^;*********************************************************************^
  3850
  3851	005541	202 01 0 00 007470 	$PNTIA:	MOVEM	1,$PACA1#	;SAVE AC1.
  3852	005542	202 02 0 00 007471 		MOVEM	2,$PACA2#	;SAVE AC2.
  3853	005543	202 03 0 00 007472 		MOVEM	3,$PACA3#	;SAVE AC3.
  3854	005544	202 04 0 00 007473 		MOVEM	4,$PACA4#	;SAVE AC4.
  3855	005545	202 05 0 00 007474 		MOVEM	5,$PACA5#	;SAVE AC5.
  3856
  3857	005546	333 00 0 00 002004 		SKIPLE	COMFLG
  3858	005547	260 17 0 00 006663 		COMENQ			;REQUEST COMM SERVICE
  3859
  3860	005550	262 17 0 00 000000 		GET	AC0		;RESTORE AC0 FROM STACK (P - 1)
  3861	005551	402 00 0 00 007477 		SETZM	$PNT#		;CLEAR PRINT HALF WORDS FLAG
  3862	005552	200 02 0 00 000040 		MOVE	2,LUUO
  3863	005553	241 02 0 00 000015 		ROT	2,15		;GET X (AC FIELD)
  3864	005554	405 02 0 00 000017 		ANDI	2,17		;OUT OF THE UUO
  3865
  3866	005555	306 02 0 00 000017 	$PNTIC:	CAIN	2,17		;X=17?
  3867	005556	254 00 0 00 006014 		JRST	$PNTLN		;YES. PRINT ASCII LINE
  3868	005557	322 02 0 00 006015 		JUMPE	2,$ASCPN	;X=0? YES. GO PRINT 1 WORD ASCII
  3869	005560	306 02 0 00 000015 		CAIN	2,15		;X=15?
  3870	005561	254 00 0 00 006032 		JRST	$DECPN		;YES, PRINT DECIMALS
  3871	005562	306 02 0 00 000016 		CAIN	2,16		;X=16?
  3872	005563	254 00 0 00 006031 		JRST	$DECSP		;YES, PRINT DECIMALS, LEADING SPACES 
  3873	005564	306 02 0 00 000013 		CAIN	2,13		;X=13?
  3874	005565	254 00 0 00 006002 		JRST	$PNTI3		;YES, PRINT OCTALS, 6 SP 6
  3875	005566	306 02 0 00 000012 		CAIN	2,12		;X=12?
  3876	005567	254 00 0 00 006010 		JRST	$CHRPN		;YES, PRINT CHARACTER
  3877
  3878	005570	254 00 0 00 005760 		JRST	$PNTI1		;NONE OF THE ABOVE, PRINT OCTAL
  3879									;(AC FIELD <12 OR = TO 14)
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 67
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0151

  3880					S^;*********************************************************************^
  3881					;*SIXBIT PRINT SUBROUTINE
  3882					;*PRINTS SIXBIT WORD IN AC0
  3883					S^;*********************************************************************^
  3884
  3885					S^;*********************************************************************^
  3886					;*NORMAL PRINTOUT
  3887					S^;*********************************************************************^
  3888
  3889	005571	261 17 0 00 000001 	$PNTSX:	PUT	1		;SAVE AC1 ON STACK (P + 1)
  3890	005572	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  3891	005573	201 00 0 00 000000 		MOVEI	0,0
  3892	005574	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  3893	005575	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  3894	005576	037 12 0 00 000000 		PNTCHR			;PRINT IT
  3895	005577	326 01 0 00 005573 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  3896	005600	262 17 0 00 000001 		GET	1		;RESTORE AC1 FROM THE STACK (P - 1)
  3897	005601	263 17 0 00 000000 		RTN			;EXIT
  3898
  3899					S^;*********************************************************************^
  3900					;*FORCED PRINTOUT
  3901					S^;*********************************************************************^
  3902
  3903	005602	261 17 0 00 000001 	$PTSXF:	PUT	1		;SAVE AC1 ON THE STACK (P + 1)
  3904	005603	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  3905	005604	201 00 0 00 000000 		MOVEI	0,0
  3906	005605	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  3907	005606	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  3908	005607	037 12 0 00 000001 		PNTCHF			;PRINT
  3909	005610	326 01 0 00 005604 		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  3910	005611	262 17 0 00 000001 		GET	1		;FROM THE STACK (P - 1)
  3911	005612	263 17 0 00 000000 		RTN			;EXIT 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 68
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0152

  3912					S^;*********************************************************************^
  3913					;*SIXBIT MESSAGE PRINT ROUTINE
  3914					;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
  3915					;*"BACKARROW" (77) SIGNIFIES END OF TEXT
  3916					;*"UPARROW" (76) SIGNIFIES CR/LF
  3917					;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
  3918					S^;*********************************************************************^
  3919
  3920	005613	261 17 0 00 000005 	$PSIXF:	PUT	5
  3921	005614	474 05 0 00 000000 		SETO	5,		;SET FORCED PRINTING FLAG
  3922	005615	254 00 0 00 005620 		JRST	.+3
  3923
  3924	005616	261 17 0 00 000005 	$PSIX:	PUT	5
  3925	005617	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTING
  3926	005620	261 17 0 00 000001 		PUT	1
  3927	005621	261 17 0 00 000002 		PUT	2
  3928	005622	261 17 0 00 000003 		PUT	3
  3929	005623	261 17 0 00 000004 		PUT	4
  3930
  3931	005624	550 04 0 00 000000 		HRRZ	4,0		;MESSAGE ADDRESS TO AC4
  3932
  3933	005625	201 03 0 00 000006 	$PSIX1:	MOVEI	3,6		;6 = NUM OF 6BIT CHAR PER WORD
  3934	005626	200 01 0 04 000000 		MOVE	1,(4)		;GET FIRST/NEXT WORD OF MESSAGE
  3935
  3936	005627	400 02 0 00 000000 	$PSIX2:	SETZ	2,
  3937	005630	245 01 0 00 000006 		ROTC	1,6		;C(AC1) = CHAR TO BE PRINTED
  3938	005631	306 02 0 00 000077 		CAIN	2,77
  3939	005632	254 00 0 00 005647 		JRST	$PSIX5		;"BACKARROW", DONE
  3940	005633	306 02 0 00 000076 		CAIN	2,76
  3941	005634	254 00 0 00 005644 		JRST	$PSIX4		;"UPARROW", CR/LF
  3942	005635	306 02 0 00 000075 		CAIN	2,75
  3943	005636	201 02 0 00 000151 		MOVEI	2,151		;"BRACKET", CHANGE TO TAB (151+40=11)
  3944	005637	201 00 0 02 000040 		MOVEI	0,40(2)		;CHANGE TO ASCII
  3945						JUMPN	5,[PNTCHF
  3946	005640	326 05 0 00 007332 			JRST	.+2]	;FORCED PRINT
  3947	005641	037 12 0 00 000000 		PNTCHR
  3948	005642	366 03 0 00 005627 	$PSIX3:	SOJN	3,$PSIX2	;PRINTED ALL CHARS FROM THIS WORD ?
  3949	005643	344 04 0 00 005625 		AOJA	4,$PSIX1	;YES, DO NEXT WORD
  3950
  3951					$PSIX4:	JUMPN	5,[PCRLF
  3952	005644	326 05 0 00 007334 			JRST	.+2]
  3953	005645	037 00 0 00 030242 		PCRL			;PRINT CR/LF
  3954	005646	254 00 0 00 005642 		JRST	$PSIX3
  3955
  3956	005647	262 17 0 00 000004 	$PSIX5:	GET	4
  3957	005650	262 17 0 00 000003 		GET	3
  3958	005651	262 17 0 00 000002 		GET	2
  3959	005652	262 17 0 00 000001 		GET	1
  3960	005653	262 17 0 00 000005 		GET	5
  3961	005654	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 69
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0153

  3962					S^;*********************************************************************^
  3963					;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
  3964					;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
  3965					;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
  3966					S^;*********************************************************************^
  3967
  3968	005655	261 17 0 00 000005 	$POCSF:	PUT	5
  3969	005656	474 05 0 00 000000 		SETO	5,		;FORCED PRINTOUT
  3970	005657	254 00 0 00 005662 		JRST	.+3
  3971
  3972	005660	261 17 0 00 000005 	$POCS:	PUT	5
  3973	005661	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTOUT
  3974	005662	261 17 0 00 000001 		PUT	1
  3975	005663	261 17 0 00 000002 		PUT	2
  3976	005664	261 17 0 00 000003 		PUT	3
  3977	005665	261 17 0 00 000004 		PUT	4
  3978
  3979	005666	200 02 0 00 000000 		MOVE	2,0
  3980	005667	325 02 0 00 005674 		JUMPGE	2,$POCS1	;IS NUMBER NEGATIVE ?
  3981	005670	201 00 0 00 000055 		MOVEI	"-"
  3982						JUMPN	5,[PNTCHF
  3983	005671	326 05 0 00 007336 			JRST	.+2]
  3984	005672	037 12 0 00 000000 		PNTCHR			;YES, PRINT MINUS SIGN
  3985	005673	210 02 0 00 000002 		MOVN	2,2		;MAKE NUMBER POSITIVE
  3986
  3987	005674	400 04 0 00 000000 	$POCS1:	SETZ	4,
  3988	005675	403 03 0 00 000001 		SETZB	3,1
  3989	005676	322 02 0 00 005704 		JUMPE	2,$POCS3	;IF NUMBER 0, PRINT 1 ZERO
  3990
  3991	005677	201 03 0 00 000014 		MOVEI	3,^D12		;PRINT UP TO 12 DIGITS
  3992	005700	400 01 0 00 000000 	$POCS2:	SETZ	1,
  3993	005701	246 01 0 00 000003 		LSHC	1,3
  3994	005702	322 01 0 00 005716 		JUMPE	1,$POCS5	;IS THIS DIGIT ZERO ?
  3995	005703	474 04 0 00 000000 		SETO	4,		;NO, SET NON-ZERO DIGIT FLAG
  3996	005704	201 00 0 01 000060 	$POCS3:	MOVEI	"0"(1)		;MAKE ASCII NUMBER
  3997						JUMPN	5,[PNTCHF
  3998	005705	326 05 0 00 007340 			JRST	.+2]
  3999	005706	037 12 0 00 000000 		PNTCHR			;PRINT DIGIT
  4000
  4001	005707	367 03 0 00 005700 	$POCS4:	SOJG	3,$POCS2	;ALL DONE ?
  4002	005710	262 17 0 00 000004 		GET	4
  4003	005711	262 17 0 00 000003 		GET	3
  4004	005712	262 17 0 00 000002 		GET	2
  4005	005713	262 17 0 00 000001 		GET	1
  4006	005714	262 17 0 00 000005 		GET	5
  4007	005715	263 17 0 00 000000 		RTN
  4008
  4009	005716	322 04 0 00 005707 	$POCS5:	JUMPE	4,$POCS4	;PRINTED NON-ZERO DIGIT ?
  4010	005717	254 00 0 00 005704 		JRST	$POCS3		;YES, PRINT ZEROS
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 70
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0154

  4011					S^;*********************************************************************^
  4012					;*DF10 CONTROL WORD PRINT ROUTINE
  4013					;*PRINTS WORD IN AC0
  4014					;*DF22F = 0, ######  ######  ,18 BIT DF10
  4015					;*       -1, ##### ########  ,22 BIT DF10
  4016					S^;*********************************************************************^
  4017
  4018	005720	202 01 0 00 007504 	$PNTCW:	MOVEM	1,$PTCA#	;SAVE AC1
  4019	005721	201 01 0 00 000000 		MOVEI	1,0		;NORMAL PRINTOUT
  4020	005722	202 02 0 00 007505 		MOVEM	2,$PTCB#	;SAVE AC2
  4021	005723	200 02 0 00 000000 		MOVE	2,0
  4022	005724	336 00 0 00 030142 		SKIPN	DF22F#		;22 OR 18 BIT DF10 ?
  4023	005725	254 00 0 00 005741 		JRST	$PNTC2
  4024	005726	242 00 0 00 777753 		LSH	0,-^D21		;NEW 22 BIT DF10
  4025	005727	620 00 0 00 000001 		TRZ	0,1
  4026						JUMPN	1,[PNT5F
  4027	005730	326 01 0 00 007342 			JRST .+2]
  4028	005731	037 05 0 00 000000 		PNT5			;PRINT WORD COUNT, 14 BITS
  4029	005732	200 00 0 00 000002 		MOVE	0,2
  4030	005733	621 00 0 00 777760 		TLZ	0,777760
  4031						JUMPN	1,[PNTADF
  4032	005734	326 01 0 00 007344 			JRST .+2]
  4033	005735	037 10 0 00 000000 		PNTADR			;PRINT ADDRESS, 22 BITS
  4034	005736	200 02 0 00 007505 	$PNTC3:	MOVE	2,$PTCB
  4035	005737	200 01 0 00 007504 		MOVE	1,$PTCA
  4036	005740	263 17 0 00 000000 		RTN			;EXIT
  4037
  4038	005741	554 00 0 00 000000 	$PNTC2:	HLRZ			;18 BIT DF10
  4039						JUMPN	1,[PNT6F
  4040	005742	326 01 0 00 007346 			JRST .+2]
  4041	005743	037 06 0 00 000000 		PNT6			;PRINT WORD COUNT, 18 BITS
  4042	005744	201 00 0 00 000040 		MOVEI	40
  4043						JUMPN	1,[PNTCHF
  4044	005745	326 01 0 00 007350 			JRST .+2]
  4045	005746	037 12 0 00 000000 		PNTCHR			;EXTRA SPACE
  4046	005747	550 00 0 00 000002 		HRRZ	0,2
  4047						JUMPN	1,[PNT6F
  4048	005750	326 01 0 00 007352 			JRST .+2]
  4049	005751	037 06 0 00 000000 		PNT6			;PRINT ADDRESS, 18 BITS
  4050	005752	254 00 0 00 005736 		JRST	$PNTC3
  4051
  4052	005753	202 01 0 00 007504 	$PNTCF:	MOVEM	1,$PTCA		;SAVE AC1
  4053									;FORCED PRINTOUT
  4054	005754	200 01 0 00 005753 		MOVE	1,$PNTCF
  4055	005755	202 01 0 00 005720 		MOVEM	1,$PNTCW	;SETUP RETURN
  4056	005756	201 01 0 00 000001 		MOVEI	1,1		;FORCED PRINT INDEX
  4057	005757	254 00 0 00 005722 		JRST	$PNTCW+2	;REST AS ABOVE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 71
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0155

  4058					S^;*********************************************************************^
  4059					;*OCTAL PRINTOUT ROUTINE
  4060					;*PRINTS NUMBER IN AC0
  4061					S^;*********************************************************************^
  4062
  4063	005760	200 03 0 00 000002 	$PNTI1:	MOVE	3,2		;MOVE X INTO AC3.
  4064	005761	241 00 0 00 777775 		ROT	0,-3		;ROT OCTAL NUM 3 PLACES
  4065	005762	366 03 0 00 005761 		SOJN	3,.-1		;X AMOUNT OF TIMES.
  4066
  4067	005763	201 01 0 00 000006 	$PNTI2:	MOVEI	1,6		;PUT 6 INTO AC1 SO THAT
  4068	005764	245 00 0 00 000003 		ROTC	0,3		;C(AC1) AFTER THE ROTC WILL BE 60
  4069	005765	265 03 0 00 006062 		JSP	3,$TOUT		;PLUS NUMBER TO BE PRINTED
  4070	005766	366 02 0 00 005763 		SOJN	2,$PNTI2	;SUB 1 FROM X...PRINT UNTIL X=0.
  4071	005767	202 01 0 00 007500 		MOVEM	1,$PNTSV#	;SAVE NUMBER
  4072	005770	336 00 0 00 030223 		SKIPN	PNTSPC
  4073	005771	254 00 0 00 005774 		JRST	.+3
  4074	005772	201 01 0 00 000040 		MOVEI	1,40		;AT THIS POINT WE HAVE PRINTED
  4075	005773	265 03 0 00 006062 		JSP	3,$TOUT		;X AMOUNT OF NUMBER(S) AND NOW A SPACE
  4076	005774	336 00 0 00 007477 		SKIPN	$PNT#		;PRINT 6 SP 6 FLAG SET?
  4077	005775	254 00 0 00 005515 		JRST	$PNTI4		;NO, EXIT
  4078	005776	200 01 0 00 007500 		MOVE	1,$PNTSV	;RESTORE NUMBER
  4079	005777	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR 2ND HALF
  4080	006000	402 00 0 00 007477 		SETZM	$PNT		;CLEAR PRINT SPACE FLAG
  4081	006001	254 00 0 00 005763 		JRST	$PNTI2		;PRINT REST OF NUMBER
  4082
  4083	006002	201 03 0 00 000014 	$PNTI3:	MOVEI	3,14		;SETUP FOR LH WORD
  4084	006003	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR FIRST HALF
  4085	006004	476 00 0 00 007477 		SETOM	$PNT		;SET PRINT 6 SP 6 FLAG
  4086	006005	476 00 0 00 030223 		SETOM	PNTSPC		;SET THE PRINT SPACE FLAG
  4087	006006	254 00 0 00 005761 		JRST	$PNTI1+1	;PRINT FIRST HALF NUMBER
  4088	006007	254 00 0 00 005515 		JRST	$PNTI4		;EXIT
  4089
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 72
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0156

  4090					S^;*********************************************************************^
  4091					;*ASCII/CHARACTER PRINTOUT ROUTINE
  4092					;*PRINTS CHAR IN LOWER 7 BITS OF AC0
  4093					S^;*********************************************************************^
  4094
  4095	006010	405 00 0 00 000177 	$CHRPN:	ANDI	0,177		;STRIP CHAR TO 7 BITS
  4096	006011	200 01 0 00 000000 		MOVE	1,0
  4097	006012	265 03 0 00 006062 		JSP	3,$TOUT		;PRINT A CHARACTER
  4098	006013	254 00 0 00 005515 		JRST	$PNTI4		;LEAVE 
  4099
  4100					S^;*********************************************************************^
  4101					;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
  4102					S^;*********************************************************************^
  4103
  4104	006014	476 00 0 00 007477 	$PNTLN:	SETOM	$PNT#		;SET PRINT MORE THAN 1 WORD FLAG.
  4105
  4106	006015	202 00 0 00 007503 	$ASCPN:	MOVEM	0,$POINT#	;SAVE ADDRESS OF ASCII MESSAGE.
  4107	006016	201 02 0 00 000005 	$ASCP1:	MOVEI	2,5		;5 = NUM OF ASCII CHAR. IN A WORD.
  4108	006017	200 00 1 00 007503 		MOVE	0,@$POINT	;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
  4109
  4110	006020	400 01 0 00 000000 	$ASCP2:	SETZ	1,		;CLEAR AC1.
  4111	006021	245 00 0 00 000007 		ROTC	0,7		;C(AC1) = CHAR TO BE PRINTED.
  4112	006022	322 01 0 00 005515 		JUMPE	1,$PNTI4	;CHAR = NULL?..NO MORE CHAR..EXIT
  4113	006023	265 03 0 00 006062 		JSP	3,$TOUT		;PRINT A CHAR
  4114	006024	366 02 0 00 006020 		SOJN	2,$ASCP2	;PNT ALL CHAR FROM THIS WORD?
  4115	006025	350 00 0 00 007503 		AOS	$POINT		;YES. INC TO GET NEXT WORD.
  4116	006026	336 00 0 00 007477 		SKIPN	$PNT		;PNT MORE THAN ONE WORD FLAG SET?
  4117	006027	254 00 0 00 005515 		JRST	$PNTI4		;NO..LEAVE
  4118	006030	254 00 0 00 006016 		JRST	$ASCP1		;YES...RETURN TO PNT NEXT WORD.
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 73
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0157

  4119					S^;*********************************************************************^
  4120					;*DECIMAL PRINTOUT ROUTINE
  4121					;*PRINTS NUMBER IN AC0
  4122					S^;*********************************************************************^
  4123
  4124	006031	476 00 0 00 007477 	$DECSP:	SETOM	$PNT		;SET LEADING SPACES PRINT CONTROL
  4125
  4126	006032	325 00 0 00 006036 	$DECPN:	JUMPGE	0,.+4		;IS NUMBER NEGATIVE ?
  4127	006033	201 01 0 00 000055 		MOVEI	1,"-"		;YES, PRINT MINUS SIGN
  4128	006034	265 03 0 00 006062 		JSP	3,$TOUT
  4129	006035	210 00 0 00 000000 		MOVN	0,0		;MAKE NUMBER POSITIVE
  4130	006036	260 17 0 00 006040 		GO	$RADIX		;DECIMAL-ASCII CONVERSION & PRINT CHARS
  4131	006037	254 00 0 00 005515 		JRST	$PNTI4		;EXIT
  4132
  4133	006040	200 02 0 00 030264 	$RADIX:	MOVE	2,RADLSC	;SETUP DIGIT COUNTER
  4134	006041	246 00 0 00 777735 		LSHC	0,-^D35		;SHIFT RIGHT 35 BITS INTO AC1
  4135	006042	242 01 0 00 777777 		LSH	1,-1		;VACATE AC1 SIGN BIT
  4136
  4137	006043	234 00 0 00 030262 	$DCCMP:	DIV	0,RADIX		;DIVIDE DOUBLE LENGTH INTERGER BY 10
  4138	006044	506 01 0 17 000000 		HRLM	1,(17)		;SAVE DIGIT
  4139	006045	370 00 0 00 000002 		SOS	2		;COUNT DIGIT
  4140	006046	322 00 0 00 006054 		JUMPE	0,$LDSPS	;ALL DIGITS FORMED?
  4141	006047	260 17 0 00 006041 		GO	$RADIX+1	;NO, COMPUTE NEXT ONE
  4142
  4143	006050	554 01 0 17 000000 	$DECP1:	HLRZ	1,(17)		;YES, RETRIEVE DIGIT
  4144	006051	271 01 0 00 000060 		ADDI	1,60		;CONVERT TO ASCII
  4145	006052	265 03 0 00 006062 		JSP	3,$TOUT		;TYPE-OUT A DIGIT
  4146	006053	263 17 0 00 000000 		RTN			;GET NEXT/EXIT
  4147
  4148	006054	336 00 0 00 007477 	$LDSPS:	SKIPN	$PNT		;LEADING SPACES PRINT SET?
  4149	006055	254 00 0 00 006050 		JRST	$DECP1		;NO ...GO PRINT
  4150									;YES ...DO IT
  4151	006056	361 02 0 00 006050 	$DCSPS:	SOJL	2,$DECP1	;SPACES COMPLETE ?  YES
  4152	006057	200 01 0 00 030263 		MOVE	1,RADLSP	;NO, PRINT LEADING SPACE
  4153	006060	265 03 0 00 006062 		JSP	3,$TOUT		;TYPE OUT THE SPACE
  4154	006061	254 00 0 00 006056 		JRST	.-3		;CHECK FOR NEXT
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 74
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0158

  4155					SUBTTL	*SUBRTN*  CHARACTER OUTPUT ROUTINES
  4156
  4157					S^;*********************************************************************^
  4158					;*OUTPUT CONTROL ROUTINE
  4159					S^;*********************************************************************^
  4160
  4161	006062	202 00 0 00 007475 	$TOUT:	MOVEM	0,$PACB0#	;SAVE AC0.
  4162	006063	202 01 0 00 007502 		MOVEM	1,$PNTYC#	;SAVE CHARACTER TO BE PRINTED
  4163	006064	200 00 0 00 030046 		MOVE	AC0,CONSW	;DATA SWITCHES INTO AC0
  4164	006065	350 00 0 00 007455 		AOS	$CARCT#		;INC CHAR CNTR.
  4165
  4166	006066	306 01 0 00 000007 		CAIN	1,7		;CHAR A BELL ?
  4167	006067	402 00 0 00 007506 		SETZM	$PTINH		;YES, CLEAR PRINT INHIBIT
  4168
  4169	006070	302 01 0 00 000015 		CAIE	1,15		;CHAR A CR?
  4170	006071	254 00 0 00 006075 		JRST	$TOUT1		;NO-CHK FOR LF
  4171
  4172	006072	336 00 0 00 007506 		SKIPN	$PTINH		;DON'T COUNT ^O'ED LINES
  4173	006073	350 00 0 00 030220 		AOS	PNTENB		;COUNT LINES, TILL NO MORE
  4174	006074	402 00 0 00 007455 		SETZM	$CARCT		;CLR CHAR CNTR.
  4175
  4176	006075	306 01 0 00 000012 	$TOUT1:	CAIN	1,12		;IS CHAR A LF?
  4177	006076	402 00 0 00 007455 		SETZM	$CARCT		;YES-CLR CHAR CNTR.
  4178
  4179	006077	332 00 0 00 007501 		SKIPE	$PNTTY		;NO-IS PRINT FORCED ON?
  4180	006100	254 00 0 00 006103 		JRST	$TOUT2		;YES-DON'T CHECK NON-PNT SW
  4181
  4182	006101	603 00 0 00 040000 		TLNE	0,NOPNT		;IS NON PNT SWITCH ON?
  4183	006102	254 00 0 00 006273 		JRST	$TOUTA		;YES, RETURN
  4184
  4185	006103	550 00 0 00 007434 	$TOUT2:	HRRZ	0,P$PTR		;FILLED OUTPUT BUFFER ?
  4186	006104	301 00 0 00 007604 		CAIL	0,$OUTBF+^D28
  4187	006105	254 00 0 00 006144 		JRST	$TOUT4		;YES
  4188
  4189	006106	332 00 0 00 030235 		SKIPE	$TABF		;TAB CONV INHIBITED ?
  4190	006107	254 00 0 00 006112 		JRST	.+3		;YES, DON'T DO IT
  4191	006110	306 01 0 00 000011 		CAIN	1,11		;IS CHAR A TAB?
  4192	006111	254 00 0 00 006275 		JRST	$TABS		;YES. TURN TAB INTO SPACES.
  4193
  4194	006112	136 01 0 00 007434 		IDPB	1,P$PTR		;STORE CHAR
  4195
  4196	006113	302 01 0 00 000012 		CAIE	1,12		;LF ?
  4197	006114	254 00 0 00 006273 		JRST	$TOUTA		;NO
  4198	006115	200 01 0 00 007354 		MOVE	1,[ASCII/   O /]
  4199	006116	202 01 0 00 007547 		MOVEM	1,$OUTBF-1
  4200	006117	402 00 0 00 007436 		SETZM	QFLAG#
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 75
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0159

  4201
  4202	006120	400 01 0 00 000000 	$TOUT5:	SETZ	1,
  4203	006121	136 01 0 00 007434 		IDPB	1,P$PTR		;YES, END WITH NULL
  4204
  4205	006122	200 01 0 00 007321 		MOVE	1,[POINT 7,$OUTBF]
  4206	006123	202 01 0 00 007434 		MOVEM	1,P$PTR		;RESET STORE POINTER
  4207
  4208	006124	200 00 0 00 030046 		MOVE	0,CONSW
  4209	006125	603 00 0 00 000000 		TLNE	0,PNTLPT	;PRINT ON LINE PRINTER ?
  4210	006126	254 00 0 00 006127 		JRST	.+1		;JRST	$TLPT	;YES !NO LPT YET ON 2020
  4211
  4212	006127	336 00 0 00 007432 	$TOUT3:	SKIPN	MMFLAG		;IN MAINTENANCE MODE ?
  4213	006130	254 00 0 00 006140 		JRST	$TOUT6		;NO
  4214	006131	264 00 0 00 006173 		JSR	$TOUTB		;YES, SEND TO CTY
  4215	006132	337 00 0 00 002004 		SKIPG	COMFLG		;IN PROTOCOL MODE ?
  4216	006133	254 00 0 00 006273 		JRST	$TOUTA		;NO, ALL DONE
  4217
  4218	006134	200 00 0 00 007355 	$TOUT7:	MOVE	[POINT 7,$OUTBF-1,20]
  4219	006135	260 17 0 00 006351 		COMCMD			;SEND MESSAGE
  4220	006136	254 04 0 00 006136 		HALT	.		;EOT ????
  4221
  4222	006137	254 00 0 00 006273 		JRST	$TOUTA		;DONE, EXIT
  4223
  4224	006140	333 00 0 00 002004 	$TOUT6:	SKIPLE	COMFLG		;IN PROTOCOL MODE ?
  4225	006141	254 00 0 00 006134 		JRST	$TOUT7		;YES
  4226	006142	264 00 0 00 006173 		JSR	$TOUTB		;NO, SEND TO CTY
  4227	006143	254 00 0 00 006273 		JRST	$TOUTA		;DONE
  4228
  4229	006144	136 01 0 00 007434 	$TOUT4:	IDPB	1,P$PTR		;BUFFER FULL, STORE CHAR
  4230	006145	201 01 0 00 000015 		MOVEI	1,15
  4231	006146	136 01 0 00 007434 		IDPB	1,P$PTR		;END WITH CR/LF
  4232	006147	201 01 0 00 000012 		MOVEI	1,12
  4233	006150	136 01 0 00 007434 		IDPB	1,P$PTR
  4234	006151	200 01 0 00 007356 		MOVE	1,[ASCII/   Q /]
  4235	006152	202 01 0 00 007547 		MOVEM	1,$OUTBF-1
  4236	006153	476 00 0 00 007436 		SETOM	QFLAG
  4237	006154	254 00 0 00 006120 		JRST	$TOUT5
  4238
  4239	006155	261 17 0 00 000000 	ANYOUT:	PUT	0
  4240	006156	261 17 0 00 000001 		PUT	1
  4241	006157	261 17 0 00 000002 		PUT	2
  4242	006160	261 17 0 00 000003 		PUT	3
  4243	006161	200 00 0 00 007434 		MOVE	P$PTR
  4244	006162	316 00 0 00 007321 		CAMN	[POINT 7,$OUTBF]
  4245	006163	254 00 0 00 006165 		JRST	.+2
  4246	006164	265 03 0 00 006145 		JSP	3,$TOUT4+1
  4247	006165	402 00 0 00 007437 		SETZM	XOFFLAG
  4248	006166	262 17 0 00 000003 		GET	3
  4249	006167	262 17 0 00 000002 		GET	2
  4250	006170	262 17 0 00 000001 		GET	1
  4251	006171	262 17 0 00 000000 		GET	0
  4252	006172	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 76
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0160

  4253					S^;*********************************************************************^
  4254					;*DIRECT TERMINAL OUTPUT
  4255					S^;*********************************************************************^
  4256
  4257	006173	000000	000000		$TOUTB:	0
  4258	006174	200 01 0 00 007321 		MOVE	1,[POINT 7,$OUTBF]
  4259
  4260	006175	332 00 0 00 030222 		SKIPE	PNTINH		;INHIBIT INPUT CHECKS ?
  4261	006176	254 00 0 00 006225 		JRST	$TOUB2		;YES - GO OUTPUT 
  4262
  4263					;LOOK FOR TTY TYPE INS
  4264
  4265	006177	264 00 0 00 004750 		BTYTYI			;KEY STRUCK ?
  4266	006200	254 00 0 00 006225 		JRST	$TOUB2		;NO  ...GO OUTPUT 
  4267	006201	254 04 0 00 006201 		HALT	.
  4268
  4269	006202	306 00 0 00 000004 		CAIN	0,004		;IS IT ^D ?
  4270	006203	254 00 0 00 003146 		JRST	$DDTENT		;YES, GO TO DDT
  4271
  4272	006204	306 00 0 00 000003 		CAIN	0,003		;IS IT ^C ?
  4273	006205	254 00 0 00 006265 		JRST	$TUTX2		;YES, TERMINATE THE OUTPUT
  4274
  4275	006206	302 00 0 00 000175 		CAIE	175
  4276	006207	306 00 0 00 000176 		CAIN	176
  4277	006210	254 00 0 00 006271 		JRST	$TUTX3		;ALTMODE, GO TO USER'S ROUTINE
  4278	006211	306 00 0 00 000033 		CAIN	33
  4279	006212	254 00 0 00 006271 		JRST	$TUTX3
  4280
  4281	006213	302 00 0 00 000017 		CAIE	0,017		;IS IT ^O ?
  4282	006214	254 00 0 00 006223 		JRST	$TOUB1		;NO
  4283
  4284	006215	201 00 0 00 000136 	  	MOVEI	0,136		;"^"
  4285	006216	260 17 0 00 006306 		GO	$TYOUT
  4286	006217	201 00 0 00 000117 		MOVEI	0,117		;"O"
  4287	006220	260 17 0 00 006306 		GO	$TYOUT
  4288	006221	462 00 0 00 007506 		SETCMM	$PTINH		;STOP OR START OUTPUT
  4289	006222	254 00 0 00 006225 		JRST	$TOUB2
  4290
  4291	006223	306 00 0 00 000023 	$TOUB1:	CAIN	0,023		;IS IT XOFF (^S) ?
  4292	006224	476 00 0 00 007437 		SETOM	XOFFLAG		;YES, SET FLAG, STOP BEFORE CR
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 77
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0161

  4293
  4294	006225	134 00 0 00 000001 	$TOUB2:	ILDB	0,1		;GET CHARACTER
  4295	006226	322 00 1 00 006173 		JUMPE	0,@$TOUTB	;IF NULL, DONE
  4296
  4297	006227	306 00 0 00 000015 		CAIN	0,15
  4298	006230	336 00 0 00 007436 		SKIPN	QFLAG
  4299	006231	254 00 0 00 006233 		JRST	.+2
  4300	006232	254 00 0 00 006175 		JRST	$TOUTB+2
  4301	006233	306 00 0 00 000012 		CAIN	0,12
  4302	006234	336 00 0 00 007436 		SKIPN	QFLAG
  4303	006235	254 00 0 00 006237 		JRST	.+2
  4304	006236	254 00 0 00 006175 		JRST	$TOUTB+2
  4305
  4306	006237	306 00 0 00 000015 		CAIN	0,15		;CR ?
  4307	006240	260 17 0 00 006244 		GO	XONCHK		;YES, CHECK IF XOFF'ED FOR XON
  4308
  4309	006241	336 00 0 00 007506 		SKIPN	$PTINH		;CONTROL O'ED ?
  4310	006242	260 17 0 00 006306 		GO	$TYOUT		;NO, OUTPUT CHAR
  4311
  4312	006243	254 00 0 00 006175 		JRST	$TOUTB+2	;LOOP TILL NULL
  4313
  4314	006244	336 00 0 00 007437 	XONCHK:	SKIPN	XOFFLAG		;XOFF'ED ?
  4315	006245	263 17 0 00 000000 		RTN			;NO
  4316
  4317	006246	264 00 0 00 004750 		BTYTYI			;ANY KEY STRUCK ?
  4318	006247	254 00 0 00 006246 		JRST	.-1		;NO, WAIT
  4319	006250	254 04 0 00 006250 		HALT	.
  4320
  4321	006251	306 00 0 00 000004 		CAIN	004		;CONTROL D ?
  4322	006252	254 00 0 00 003146 		JRST	$DDTENT		;YES, GO TO DDT
  4323
  4324	006253	306 00 0 00 000003 		CAIN	003		;CONTROL C ?
  4325	006254	254 00 0 00 006265 		JRST	$TUTX2		;YES, ABORT
  4326
  4327	006255	302 00 0 00 000021 		CAIE	021		;XON (^Q) ?
  4328	006256	254 00 0 00 006244 		JRST	XONCHK		;NO
  4329
  4330	006257	402 00 0 00 007437 		SETZM	XOFFLAG		;YES, CLEAR FLAG & CONTINUE PRINTING
  4331	006260	402 00 0 00 007506 		SETZM	$PTINH
  4332	006261	201 00 0 00 000015 		MOVEI	0,15		;RELOAD CR FOR PRINTING
  4333	006262	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 78
SUBSMM	MAC	13-Jun-79 16:28		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0162

  4334					S^;*********************************************************************^
  4335					;*ALT-MODE TRANSFER TO USER ROUTINE
  4336					S^;*********************************************************************^
  4337
  4338	006263	202 00 0 00 000130 		MOVEM	0,JOBOPC	;2-TERMINATED IN JOBOPC
  4339	006264	254 00 1 00 030062 		JRST	@CNTLC		;3-TERMINATE
  4340	006265	265 00 0 00 006263 	$TUTX2:	JSP	0,.-2		;1-SAVE PC WHERE
  4341	006266	254 00 0 00 006175 		JRST	$TOUTB+2	;4-HERE IF CONTINUED
  4342	006267	202 00 0 00 000130 		MOVEM	0,JOBOPC	;2-TERMINATED IN JOBOPC
  4343	006270	254 00 1 00 030063 		JRST	@ALTMGO		;3-TERMINATE
  4344	006271	265 00 0 00 006267 	$TUTX3:	JSP	0,.-2		;1-SAVE PC WHERE
  4345	006272	254 00 0 00 006175 		JRST	$TOUTB+2	;4-HERE IF CONTINUED
  4346
  4347					S^;*********************************************************************^
  4348					;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
  4349					S^;*********************************************************************^
  4350
  4351	006273	200 00 0 00 007475 	$TOUTA:	MOVE	AC0,$PACB0	;RESTORE AC0
  4352	006274	254 00 0 03 000000 		JRST	(3)		;RETURN TO PRINT ROUTINE
  4353
  4354					S^;*********************************************************************^
  4355					;*TELETYPE TABS CONVERSION
  4356					S^;*********************************************************************^
  4357
  4358	006275	370 01 0 00 007455 	$TABS:	SOS	1,$CARCT	;PUT CHAR CNT - 1 TAB INTO AC1.
  4359	006276	275 01 0 00 000010 		SUBI	1,10		;DIVIDE
  4360	006277	325 01 0 00 006276 		JUMPGE	1,.-1		;BY 10.
  4361	006300	210 01 0 00 000001 		MOVN	1,1		;C(AC1) NOW = NO. OF SPACES TO PNT.
  4362
  4363	006301	201 00 0 00 000040 	$TABS1:	MOVEI	0,40		;PRINT SPACES
  4364	006302	136 00 0 00 007434 		IDPB	0,P$PTR		;STORE A SPACE
  4365	006303	350 00 0 00 007455 		AOS	$CARCT		;INCREMENT CHAR CNTR.
  4366	006304	367 01 0 00 006301 		SOJG	1,$TABS1	;DECREMENT SPACES CNTR.
  4367	006305	254 00 0 00 006273 		JRST	$TOUTA		;RETURN 
  4368
  4369					S^;*********************************************************************^
  4370					;*SM-10 EXEC MODE TELETYPE DRIVER ROUTINE
  4371					S^;*********************************************************************^
  4372
  4373	006306	202 00 0 00 007530 	$TYOUT:	MOVEM	AC0,$TYAC0#	;SAVE AC0
  4374	006307	202 01 0 00 007531 		MOVEM	1,$TYAC1#	;SAVE AC1 & AC2
  4375	006310	202 02 0 00 007532 		MOVEM	2,$TYAC2#
  4376	006311	405 00 0 00 000177 		ANDI	0,177		;STRIP TO 7 BITS
  4377
  4378	006312	337 00 0 00 002004 	$TYOU4:	SKIPG	COMFLG		;IN PROTOCOL MODE ?
  4379	006313	254 00 0 00 006316 		JRST	.+3		;NO
  4380	006314	264 00 0 00 005002 		CTYTYO			;YES, SEND TO CTY
  4381	006315	254 00 0 00 006317 		JRST	$TYOU3
  4382	006316	264 00 0 00 005030 		BTYTYO			;SEND CHAR
  4383
  4384	006317	200 00 0 00 007530 	$TYOU3:	MOVE	0,$TYAC0	;DONE, RESTORE AC'S
  4385	006320	200 01 0 00 007531 		MOVE	1,$TYAC1
  4386	006321	200 02 0 00 007532 		MOVE	2,$TYAC2
  4387	006322	263 17 0 00 000000 		RTN			;EXIT 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 79
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0163

  4388					SUBTTL	COMMUNICATION ROUTINES
  4389
  4390					S^;*********************************************************************^
  4391					;*$$C - COMM SAVE AC1 - AC5
  4392					S^;*********************************************************************^
  4393
  4394	006323	000000	000000		$$C:	0
  4395	006324	261 17 0 00 000001 		PUT	1
  4396	006325	261 17 0 00 000002 		PUT	2
  4397	006326	261 17 0 00 000003 		PUT	3
  4398	006327	261 17 0 00 000004 		PUT	4
  4399	006330	261 17 0 00 000005 		PUT	5
  4400	006331	254 00 1 00 006323 		JRST	@$$C
  4401
  4402					S^;*********************************************************************^
  4403					;*$$CE2 - DOUBLE SKIP RETURN
  4404					S^;*********************************************************************^
  4405
  4406	006332	350 00 0 17 777773 	$$CE2:	AOS	-5(P)
  4407
  4408					S^;*********************************************************************^
  4409					;*$$CE1 - SINGLE SKIP RETURN
  4410					S^;*********************************************************************^
  4411
  4412	006333	350 00 0 17 777773 	$$CE1:	AOS	-5(P)
  4413
  4414					S^;*********************************************************************^
  4415					;*$$CE - NO SKIP RETURN
  4416					S^;*********************************************************************^
  4417
  4418	006334	262 17 0 00 000005 	$$CE:	GET	5
  4419	006335	262 17 0 00 000004 		GET	4
  4420	006336	262 17 0 00 000003 		GET	3
  4421	006337	262 17 0 00 000002 		GET	2
  4422	006340	262 17 0 00 000001 		GET	1
  4423	006341	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 80
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0164

  4424					S^;*********************************************************************^
  4425					;*COMACK - COMMUNICATION ACKNOWLEDGE
  4426					S^;*********************************************************************^
  4427
  4428	006342	264 00 0 00 006323 	$COMACK: JSR	$$C
  4429	006343	350 00 0 00 007433 		AOS	MSGNBR#		;COUNT MESSAGE
  4430	006344	201 05 0 00 006732 		MOVEI	AC5,ACKMSG
  4431	006345	254 00 0 00 006353 		JRST	$COMCX
  4432
  4433					S^;*********************************************************************^
  4434					;*COMNAK - COMMUNICATION NEGATIVE ACKNOWLEDGE
  4435					S^;*********************************************************************^
  4436
  4437	006346	264 00 0 00 006323 	$COMNAK: JSR	$$C
  4438	006347	201 05 0 00 006733 		MOVEI	AC5,NAKMSG
  4439	006350	254 00 0 00 006353 		JRST	$COMCX
  4440
  4441					S^;*********************************************************************^
  4442					;*COMCMD - COMMUNICATION COMMAND
  4443					S^;*********************************************************************^
  4444
  4445	006351	264 00 0 00 006323 	$COMCMD: JSR	$$C
  4446	006352	400 05 0 00 000000 		SETZ	AC5,
  4447
  4448	006353	201 04 0 00 000020 	$COMCX:	MOVEI	AC4,^D16	;RETRY  16 TIMES
  4449
  4450	006354	326 05 0 00 006357 		JUMPN	AC5,$COMC1	;CONTROL SEQUENCE ?
  4451
  4452	006355	260 17 0 00 006417 		COMSND			;NO, COMMAND SEND
  4453	006356	254 00 0 00 006361 		JRST	$COMC2
  4454
  4455	006357	200 00 0 00 000005 	$COMC1:	MOVE	AC0,AC5
  4456	006360	260 17 0 00 006463 		COMCTL			;CONTROL SEQUENCE SEND
  4457
  4458	006361	260 17 0 00 006506 	$COMC2:	COMLIN			;GET REPLY
  4459
  4460	006362	254 00 0 00 006374 		 JRST	$COMC3		;ERROR
  4461	006363	254 00 0 00 006405 		 JRST	$COMC4		;CONTROL SEQUENCE
  4462									;NORMAL MESSAGE
  4463	006364	201 03 0 00 000136 		MOVEI	AC3,136
  4464	006365	200 00 0 00 007433 		MOVE	AC0,MSGNBR	;ODD OR EVEN MESSAGE NUMBER ?
  4465	006366	602 00 0 00 000001 		TRNE	AC0,1
  4466	006367	201 03 0 00 000041 		MOVEI	AC3,041		;ODD
  4467
  4468	006370	312 03 0 00 007430 		CAME	AC3,COMNBR	;CORRECT MESSAGE NUMBER ?
  4469	006371	254 00 0 00 006344 		 JRST	$COMACK+2	;NO, MUST BE REPEAT
  4470
  4471	006372	400 00 0 00 000000 		SETZ			;NEW MESSAGE READY
  4472	006373	254 00 0 00 006332 		JRST	$$CE2		;DOUBLE SKIP RETURN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 81
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0165

  4473
  4474	006374	366 04 0 00 006376 	$COMC3:	SOJN	AC4,.+2		;EXCEEDED RETRY LIMIT ?
  4475	006375	254 00 0 00 006743 		JRST	COMERR		;YES, REPORT ERROR & ABORT
  4476
  4477	006376	326 05 0 00 006403 		JUMPN	AC5,.+5		;CONTROL REPEAT ?
  4478
  4479	006377	306 00 0 00 777773 		CAIN	AC0,-5		;NO, RECIEVED CHECKSUM ERROR ?
  4480	006400	254 00 0 00 006403 		JRST	.+3		;YES, SEND NAK
  4481
  4482	006401	260 17 0 00 006460 		COMRTRY			;COMMAND RETRY
  4483	006402	254 00 0 00 006361 		JRST	$COMC2
  4484
  4485	006403	201 05 0 00 006733 		MOVEI	AC5,NAKMSG	;NAK & TRY AGAIN
  4486	006404	254 00 0 00 006357 		JRST	$COMC1
  4487
  4488	006405	306 00 0 00 000101 	$COMC4:	CAIN	AC0,"A"		;ACK, SINGLE-SKIP RETURN
  4489	006406	254 00 0 00 006333 		JRST	$$CE1
  4490	006407	306 00 0 00 000132 		CAIN	AC0,"Z"		;EOT, NO-SKIP RETURN
  4491	006410	254 00 0 00 006334 		JRST	$$CE
  4492	006411	306 00 0 00 000116 		CAIN	AC0,"N"		;NAK, TRY AGAIN
  4493	006412	254 00 0 00 006415 		JRST	.+3
  4494
  4495	006413	201 00 0 00 777770 		MOVEI	AC0,-10
  4496	006414	254 00 0 00 006374 		JRST	$COMC3		;ERROR, TRY AGAIN
  4497
  4498	006415	201 00 0 00 777771 		MOVEI	AC0,-7		;LOAD NAK ERROR CODE
  4499	006416	254 00 0 00 006374 		JRST	$COMC3		;TRY AGAIN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 82
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0166

  4500					S^;*********************************************************************^
  4501					;*COMSND - COMMUNICATION SEND
  4502					S^;*********************************************************************^
  4503
  4504	006417	264 00 0 00 006323 	$COMSND:JSR	$$C
  4505	006420	200 05 0 00 007357 		MOVE	AC5,[POINT 7,COUTBF,27]
  4506	006421	400 03 0 00 000000 		SETZ	AC3,
  4507	006422	202 00 0 00 000004 		MOVEM	AC0,AC4
  4508
  4509	006423	134 00 0 00 000004 	$COMS1:	ILDB	AC0,AC4
  4510	006424	306 00 0 00 000012 		CAIN	AC0,12
  4511	006425	254 00 0 00 006423 		JRST	$COMS1		;IGNORE LF
  4512	006426	306 00 0 00 000015 		CAIN	AC0,15
  4513	006427	254 00 0 00 006436 		JRST	$COMS2		;FOUND CR
  4514	006430	306 00 0 00 000033 		CAIN	AC0,33
  4515	006431	254 00 0 00 006436 		JRST	$COMS2		;FOUND ALTMODE
  4516	006432	322 00 0 00 006436 		JUMPE	AC0,$COMS2	;REACHED NULL BYTE ?
  4517
  4518	006433	270 03 0 00 000000 		ADD	AC3,AC0		;ACCUMULATE CHECKSUM
  4519
  4520	006434	136 00 0 00 000005 		IDPB	AC0,AC5		;TRANSFER MSG TO OUTPUT BUFFER
  4521	006435	254 00 0 00 006423 		JRST	$COMS1
  4522
  4523	006436	201 00 0 00 000015 	$COMS2:	MOVEI	AC0,15		;END MSG WITH CR & NULL
  4524	006437	136 00 0 00 000005 		IDPB	AC0,AC5
  4525	006440	400 00 0 00 000000 		SETZ
  4526	006441	136 00 0 00 000005 		IDPB	AC0,AC5
  4527
  4528	006442	200 05 0 00 007360 		MOVE	AC5,[POINT 7,COUTBF]
  4529
  4530	006443	201 01 0 00 000136 		MOVEI	AC1,136		;SETUP MSG NUMBER CHAR
  4531	006444	200 00 0 00 007433 		MOVE	MSGNBR
  4532	006445	602 00 0 00 000001 		TRNE	1
  4533	006446	201 01 0 00 000041 		MOVEI	AC1,041
  4534	006447	136 01 0 00 000005 		IDPB	AC1,AC5
  4535
  4536	006450	210 03 0 00 000003 		MOVN	AC3,AC3		;NEGATE CHECKSUM
  4537
  4538	006451	135 00 0 00 007361 		LDB	AC0,[POINT 4,AC3,23]
  4539	006452	260 17 0 00 006737 		GO	COMASC
  4540
  4541	006453	135 00 0 00 007362 		LDB	AC0,[POINT 6,AC3,29]
  4542	006454	260 17 0 00 006737 		GO	COMASC
  4543
  4544	006455	135 00 0 00 007363 		LDB	AC0,[POINT 6,AC3,35]
  4545	006456	260 17 0 00 006737 		GO	COMASC
  4546
  4547	006457	254 00 0 00 006461 		JRST	$COMRTRY+1
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 83
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0167

  4548					S^;*********************************************************************^
  4549					;*COMRTRY - COMMUNICATION RETRY
  4550					S^;*********************************************************************^
  4551
  4552	006460	264 00 0 00 006323 	$COMRTRY:JSR	$$C
  4553	006461	201 00 0 00 007644 		MOVEI	AC0,COUTBF	;SETUP MSG POINTER
  4554	006462	254 00 0 00 006464 		JRST	$COMCTL+1
  4555
  4556					S^;*********************************************************************^
  4557					;*COMCTL - COMMUNICATION CONTROL
  4558					S^;*********************************************************************^
  4559
  4560	006463	264 00 0 00 006323 	$COMCTL:JSR	$$C
  4561	006464	200 05 0 00 000000 		MOVE	AC5,AC0
  4562
  4563	006465	264 00 0 00 004763 		COMTYI			;FLUSH OLD INPUT
  4564	006466	254 00 0 00 006474 		JRST	.+6
  4565	006467	310 00 0 00 000000 		CAM
  4566	006470	405 00 0 00 000177 		ANDI	177
  4567	006471	302 00 0 00 000003 		CAIE	003
  4568	006472	254 00 0 00 006465 		JRST	.-5
  4569	006473	254 00 0 00 006265 		JRST	$TUTX2		;CONTROL C'ED
  4570
  4571	006474	201 00 0 00 000001 		MOVEI	001		;SEND TWO SYNC CHARS
  4572	006475	264 00 0 00 005037 		COMTYO
  4573	006476	201 00 0 00 000001 		MOVEI	001
  4574	006477	264 00 0 00 005037 		COMTYO
  4575
  4576	006500	505 05 0 00 440700 		HRLI	AC5,(POINT 7,)	;CREATE BYTE POINTER
  4577
  4578	006501	134 00 0 00 000005 		ILDB	AC0,AC5		;SEND MSG TILL NULL
  4579	006502	322 00 0 00 006505 		JUMPE	AC0,.+3
  4580	006503	264 00 0 00 005037 		COMTYO
  4581	006504	254 00 0 00 006501 		JRST	.-3
  4582
  4583	006505	254 00 0 00 006334 		JRST	$$CE		;COMPLETED
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 84
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0168

  4584					S^;*********************************************************************^
  4585					;*COMLIN - COMMUNICATION LINE
  4586					S^;*********************************************************************^
  4587
  4588	006506	264 00 0 00 006323 	$COMLIN:JSR	$$C
  4589	006507	200 01 0 00 007364 		MOVE	AC1,[POINT 7,CINBF]
  4590	006510	403 05 0 00 007527 		SETZB	AC5,$TTYTIM#
  4591
  4592	006511	331 00 0 00 002004 	$COML1:	SKIPL	COMFLG		;FIRST TIME ?
  4593	006512	254 00 0 00 006515 		JRST	.+3		;NO
  4594
  4595	006513	260 17 0 00 006624 		GO	COMTIME		;YES, IF IT TIMES OUT, SEND IN CLEAR
  4596	006514	254 00 0 00 006603 		 JRST	$CMLE1		;TIMED OUT
  4597
  4598	006515	264 00 0 00 004763 		COMTYI			;GET INPUT CHAR
  4599	006516	254 00 0 00 006511 		JRST	$COML1		;NONE AVAILABLE
  4600	006517	310 00 0 00 000000 		CAM
  4601
  4602	006520	405 00 0 00 000177 		ANDI	177
  4603	006521	306 00 0 00 000003 		CAIN	003
  4604	006522	254 00 0 00 006265 		JRST	$TUTX2		;CONTROL C'ED
  4605	006523	306 00 0 00 000004 		CAIN	004		;CONTROL D'ED
  4606	006524	254 00 0 00 003146 		JRST	$DDTENT		;YES, TRANSFER TO DDT
  4607	006525	302 00 0 00 000017 		CAIE	017		;CONTROL O'ED
  4608	006526	254 00 0 00 006531 		JRST	.+3
  4609	006527	462 00 0 00 007506 		SETCMM	$PTINH		;YES, COMPLEMENT PRINT INHIBIT
  4610	006530	254 00 0 00 006511 		JRST	$COML1
  4611	006531	306 00 0 00 000001 		CAIN	001		;SYNC ?
  4612	006532	344 05 0 00 006511 		AOJA	AC5,$COML1	;YES
  4613	006533	322 00 0 00 006511 		JUMPE	AC0,$COML1	;NULL, IGNORE
  4614	006534	322 05 0 00 006511 		JUMPE	AC5,$COML1	;RECIEVED SYNC YET ?
  4615	006535	306 00 0 00 000033 		CAIN	033		;ALTMODE ?
  4616	006536	254 00 0 00 006546 		JRST	$COML2		;YES, CONTROL SEQUENCE
  4617	006537	306 00 0 00 000012 		CAIN	012		;LF ?
  4618	006540	254 00 0 00 006550 		JRST	$COML3		;YES, MESSAGE SEGMENT
  4619
  4620	006541	136 00 0 00 000001 		IDPB	AC0,AC1		;STORE CHAR
  4621	006542	350 00 0 00 000005 		AOS	AC5		;COUNT IT
  4622	006543	303 05 0 00 000210 		CAILE	AC5,^D136	;STILL ROOM IN BUFFER ?
  4623	006544	254 00 0 00 006605 		 JRST	$CMLE2		;NO, LINE TOO LONG
  4624
  4625	006545	254 00 0 00 006511 		JRST	$COML1		;KEEP GOING
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 85
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0169

  4626
  4627	006546	135 00 0 00 007365 	$COML2:	LDB	[POINT 7,CINBF,6]
  4628	006547	254 00 0 00 006333 		JRST	$$CE1		;CONTROL SEQUENCE RETURN
  4629
  4630	006550	136 00 0 00 000001 	$COML3:	IDPB	AC0,AC1		;STORE LF
  4631	006551	400 00 0 00 000000 		SETZ
  4632	006552	136 00 0 00 000001 		IDPB	AC0,AC1
  4633
  4634	006553	200 04 0 00 007364 		MOVE	AC4,[POINT 7,CINBF]
  4635	006554	134 00 0 00 000004 		ILDB	AC0,AC4		;GET MESSAGE NUMBER
  4636	006555	306 00 0 00 000041 		CAIN	041
  4637	006556	254 00 0 00 006562 		JRST	$COML4
  4638	006557	306 00 0 00 000136 		CAIN	136
  4639	006560	254 00 0 00 006562 		JRST	$COML4
  4640
  4641	006561	254 00 0 00 006607 		JRST	$CMLE3		;MSG NUMBER INCORRECT
  4642
  4643	006562	202 00 0 00 007430 	$COML4:	MOVEM	AC0,COMNBR#	;SAVE MESSAGE NUMBER
  4644	006563	400 00 0 00 000000 		SETZ
  4645	006564	201 05 0 00 000003 		MOVEI	AC5,3		;CHARS 1,2,3 ARE CHECKSUM
  4646
  4647	006565	242 00 0 00 000006 		LSH	6
  4648	006566	134 01 0 00 000004 		ILDB	AC1,AC4		;GET CHAR
  4649	006567	405 01 0 00 000077 		ANDI	AC1,77
  4650	006570	434 00 0 00 000001 		OR	AC0,AC1		;INSERT INTO 16 BIT CHECKSUM
  4651	006571	367 05 0 00 006565 		SOJG	AC5,.-4		;DO 3 CHARS
  4652
  4653	006572	134 01 0 00 000004 		ILDB	AC1,AC4
  4654	006573	306 01 0 00 000015 		CAIN	AC1,015		;REACHED EOL ?
  4655	006574	254 00 0 00 006600 		JRST	.+4
  4656	006575	322 01 0 00 006613 		JUMPE	AC1,$CMLE4	;PAST EOL WITHOUT CR ?
  4657
  4658	006576	270 00 0 00 000001 		ADD	AC0,AC1		;ACCUMULATE CHECKSUM
  4659	006577	254 00 0 00 006572 		JRST	.-5
  4660
  4661	006600	602 00 0 00 177777 		TRNE	AC0,177777	;DID CKSUM COMPUTE TO ZERO ?
  4662	006601	254 00 0 00 006615 		 JRST	$CMLE5		;NO, CHECKSUM ERROR
  4663
  4664	006602	254 00 0 00 006332 		JRST	$$CE2		;MSG OK, DOUBLE-SKIP RETURN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 86
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0170

  4665
  4666	006603	201 00 0 00 777777 	$CMLE1:	MOVEI	-1		;NO RESPONSE
  4667	006604	254 00 0 00 006334 		JRST	$$CE
  4668
  4669	006605	201 00 0 00 777776 	$CMLE2:	MOVEI	-2		;LINE TOO LONG
  4670	006606	254 00 0 00 006334 		JRST	$$CE
  4671
  4672	006607	306 00 0 00 000077 	$CMLE3:	CAIN	"?"		;MSG NUMBER QMARK ?
  4673	006610	254 00 0 00 006617 		JRST	COMQ		;YES, HOST ERROR
  4674	006611	201 00 0 00 777775 		MOVEI	-3		;MSG NUMBER CHAR ERROR
  4675	006612	254 00 0 00 006334 		JRST	$$CE
  4676
  4677	006613	201 00 0 00 777774 	$CMLE4:	MOVEI	-4		;NO CR ERROR
  4678	006614	254 00 0 00 006334 		JRST	$$CE
  4679
  4680	006615	201 00 0 00 777773 	$CMLE5:	MOVEI	-5		;MESSAGE CHECKSUM ERROR
  4681	006616	254 00 0 00 006334 		JRST	$$CE
  4682
  4683					S^;*********************************************************************^
  4684					;*COMQ - HOST ERROR, PRINT ERROR REPLY
  4685					S^;*********************************************************************^
  4686
  4687	006617	402 00 0 00 002004 	COMQ:	SETZM	COMFLG
  4688	006620	201 00 0 00 007606 		MOVEI	CINBF
  4689	006621	037 17 0 00 000001 		PNTALF
  4690	006622	037 01 0 00 030242 		PCRLF
  4691	006623	254 04 0 00 006623 		HALT	.
  4692
  4693	006624	350 00 0 00 007527 	COMTIME:AOS	$TTYTIM
  4694	006625	200 00 0 00 007527 		MOVE	$TTYTIM
  4695	006626	317 00 0 00 007366 		CAMG	[140000]	;3 SECONDS ?
  4696	006627	350 00 0 17 000000 		AOS	(P)
  4697	006630	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 87
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0171

  4698					S^;*********************************************************************^
  4699					;*COMINI - COMMUNICATION INITIALIZE
  4700
  4701	006631	332 00 0 00 007432 	$COMINI:SKIPE	MMFLAG		;IN MAINTENANCE MODE ?
  4702	006632	402 00 0 00 002004 		SETZM	COMFLG		;YES, SEND IN CLEAR
  4703	006633	331 00 0 00 002004 		SKIPL	COMFLG		;-1=NOT INITED, 0=CLEAR, +1=PROTOCALL
  4704	006634	263 17 0 00 000000 		RTN			;CLEAR
  4705
  4706	006635	264 00 0 00 006323 		JSR	$$C
  4707
  4708	006636	402 00 0 00 007433 	$COMI1:	SETZM	MSGNBR		;INIT MESSAGE NUMBER
  4709
  4710	006637	201 00 0 00 006727 		MOVEI	INIMSG
  4711	006640	260 17 0 00 006463 		COMCTL			;SEND INI MSG
  4712
  4713	006641	260 17 0 00 006506 		COMLIN			;GET REPLY
  4714	006642	254 00 0 00 006650 		 JRST	$COMI2		;ERROR
  4715	006643	254 00 0 00 006656 		 JRST	$COMI3		;CONTROL SEQUENCE
  4716
  4717	006644	402 00 0 00 002004 	$COMI4:	SETZM	COMFLG
  4718	006645	201 00 0 00 007606 		MOVEI	CINBF		;MSG, PRINT IT
  4719	006646	037 17 0 00 000001 		PNTALF
  4720	006647	254 00 0 00 006334 		JRST	$$CE
  4721
  4722	006650	402 00 0 00 002004 	$COMI2:	SETZM	COMFLG
  4723	006651	302 00 0 00 777777 		CAIE	AC0,-1		;TIMED OUT ?
  4724	006652	254 00 0 00 006743 		JRST	COMERR		;NO, COMM ERROR
  4725	006653	201 00 0 00 000040 		MOVEI	40
  4726	006654	264 00 0 00 005037 		COMTYO			;OUTPUT A SPACE, PREVENTS DROPPING 1ST CHAR
  4727	006655	254 00 0 00 006334 		JRST	$$CE		;YES, SEND IN CLEAR
  4728
  4729	006656	402 00 0 00 002004 	$COMI3:	SETZM	COMFLG
  4730	006657	302 00 0 00 000101 		CAIE	"A"		;ACK'ED ?
  4731	006660	254 00 0 00 006644 		JRST	$COMI4		;NO, COMM ERROR
  4732
  4733	006661	350 00 0 00 002004 		AOS	COMFLG		;YES, SET PROTOCALL MODE
  4734	006662	254 00 0 00 006334 		JRST	$$CE
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 88
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0172

  4735					S^;*********************************************************************^
  4736					;*COMENQ - COMMUNICATION ENQUIRY
  4737
  4738	006663	332 00 0 00 007431 	$COMENQ:SKIPE	ENQFLG		;BEEN ENQ'ED YET ?
  4739	006664	263 17 0 00 000000 		RTN			;YES
  4740	006665	476 00 0 00 007431 		SETOM	ENQFLG		;NO, REQUEST COMM SERVICE
  4741	006666	264 00 0 00 006323 		JSR	$$C
  4742
  4743	006667	201 04 0 00 000003 		MOVEI	AC4,3
  4744
  4745	006670	402 00 0 00 007433 	$COME1:	SETZM	MSGNBR		;INIT MESSAGE NUMBER
  4746
  4747	006671	201 00 0 00 006731 		MOVEI	ENQMSG
  4748	006672	260 17 0 00 006463 		COMCTL			;SEND ENQ MSG
  4749
  4750	006673	260 17 0 00 006506 		COMLIN			;GET REPLY
  4751	006674	254 00 0 00 006701 		 JRST	$COME2		;ERROR
  4752	006675	254 00 0 00 006703 		 JRST	$COME3		;CONTROL SEQUENCE
  4753
  4754	006676	201 00 0 00 007606 		MOVEI	CINBF		;MSG, PRINT IT
  4755	006677	037 17 0 00 000001 		PNTALF
  4756	006700	254 00 0 00 006334 		JRST	$$CE
  4757
  4758	006701	365 04 0 00 006670 	$COME2:	SOJGE	AC4,$COME1	;RETRY ?
  4759	006702	254 00 0 00 006743 		JRST	COMERR		;NO, COMM ERROR
  4760
  4761	006703	306 00 0 00 000101 	$COME3:	CAIN	"A"
  4762	006704	254 00 0 00 006334 		JRST	$$CE		;ACK, GO AHEAD
  4763
  4764	006705	302 00 0 00 000132 		CAIE	"Z"		;EOT, WAIT ?
  4765	006706	254 00 0 00 006701 		JRST	$COME2		;NO, ERROR
  4766
  4767	006707	254 00 0 00 006664 		JRST	$COMENQ+1	;TRY AGAIN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 89
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0173

  4768					S^;*********************************************************************^
  4769					;*COMEOT - COMMUNICATION END OF TRANSMISSION
  4770					S^;*********************************************************************^
  4771
  4772	006710	264 00 0 00 006323 	$COMEOT:JSR	$$C
  4773
  4774	006711	201 00 0 00 006735 		MOVEI	EOTMSG
  4775	006712	260 17 0 00 006463 		COMCTL
  4776	006713	254 00 0 00 006334 		JRST	$$CE
  4777
  4778					S^;*********************************************************************^
  4779					;*COMCLR - COMMUNICATION CLEAR
  4780					S^;*********************************************************************^
  4781
  4782	006714	337 00 0 00 002004 	$COMCLR:SKIPG	COMFLG
  4783	006715	263 17 0 00 000000 		RTN
  4784	006716	264 00 0 00 006323 		JSR	$$C
  4785
  4786	006717	402 00 0 00 007431 		SETZM	ENQFLG
  4787	006720	201 00 0 00 006734 		MOVEI	CANMSG
  4788	006721	260 17 0 00 006463 		COMCTL
  4789	006722	254 00 0 00 006334 		JRST	$$CE
  4790
  4791					S^;*********************************************************************^
  4792					;*COMBELL - COMMUNICATIONS BELL
  4793					S^;*********************************************************************^
  4794
  4795	006723	264 00 0 00 006323 	$COMBELL:JSR	$$C
  4796	006724	201 00 0 00 006730 		MOVEI	BELMSG
  4797	006725	260 17 0 00 006463 		COMCTL
  4798	006726	254 00 0 00 006334 		JRST	$$CE
  4799
  4800	006727	005 033 00000000 	INIMSG:	BYTE (7)	5,33		;^E, ALTMODE
  4801	006730	007 033 00000000 	BELMSG:	BYTE (7)	7,33		;BELL, ALTMODE
  4802	006731	105 033 00000000 	ENQMSG:	BYTE (7)	105,33		;E, ALTMODE
  4803	006732	101 033 00000000 	ACKMSG:	BYTE (7)	101,33		;A, ALTMODE
  4804	006733	116 033 00000000 	NAKMSG:	BYTE (7)	116,33		;N, ALTMODE
  4805	006734	103 033 00000000 	CANMSG:	BYTE (7)	103,33		;C, ALTMODE
  4806	006735	132 033 00000000 	EOTMSG:	BYTE (7)	132,33		;Z, ALTMODE
  4807
  4808	006736	124 015 00000000 	TIMEMSG:BYTE (7)	"T",15
  4809
  4810					S^;*********************************************************************^
  4811					;*COMASC - COMMUNICATION ASCIIZE
  4812					S^;*********************************************************************^
  4813
  4814	006737	307 00 0 00 000074 	COMASC:	CAIG	AC0,74		;LEAVE 75,76,77 ALONE
  4815	006740	660 00 0 00 000100 		TRO	AC0,100
  4816	006741	136 00 0 00 000005 		IDPB	AC0,AC5
  4817	006742	263 17 0 00 000000 		RTN
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 90
SUBSMM	MAC	13-Jun-79 16:28		COMMUNICATION ROUTINES                                                             SEQ 0174

  4818					S^;*********************************************************************^
  4819					;*COMERR, COMMUNICATIONS ERROR REPORTER
  4820					S^;*********************************************************************^
  4821
  4822	006743	402 00 0 00 002004 	COMERR:	SETZM	COMFLG
  4823	006744	200 02 0 00 000000 		MOVE	AC2,AC0
  4824						PMSG	<?COMM ERROR: >^
  4825	006745	037 02 0 00 007367 		PSIXM	[SIXBIT\?COMM ERROR: _\]^
  4826
  4827	006746	210 02 0 00 000002 		MOVN	AC2,AC2
  4828	006747	200 00 0 02 006753 		MOVE	AC0,CMERTB(AC2)
  4829	006750	037 17 0 00 000001 		PNTALF
  4830	006751	037 01 0 00 030242 		PCRLF
  4831
  4832	006752	254 04 0 00 006752 		HALT	.
  4833
  4834	006753	000000	000000		CMERTB:	0
  4835	006754	000000	006764			CMER1
  4836	006755	000000	006767			CMER2
  4837	006756	000000	006771			CMER3
  4838	006757	000000	006773			CMER4
  4839	006760	000000	006775			CMER5
  4840	006761	000000	006777			CMER6
  4841	006762	000000	007001			CMER7
  4842	006763	000000	007002			CMER10
  4843
  4844	006764	116 117 040 122 105 	CMER1:	ASCIZ	%NO RESPONSE%
  4845	006765	123 120 117 116 123 
  4846	006766	105 000 000 000 000 
  4847	006767	114 117 116 107 040 	CMER2:	ASCIZ	%LONG LINE%
  4848	006770	114 111 116 105 000 
  4849	006771	115 123 107 040 116 	CMER3:	ASCIZ	%MSG NBR%
  4850	006772	102 122 000 000 000 
  4851	006773	116 117 040 103 122 	CMER4:	ASCIZ	%NO CR%
  4852	006774	000 000 000 000 000 
  4853	006775	115 123 107 040 103 	CMER5:	ASCIZ	%MSG CKSUM%
  4854	006776	113 123 125 115 000 
  4855	006777	106 117 122 115 101 	CMER6:	ASCIZ	%FORMAT%
  4856	007000	124 000 000 000 000 
  4857	007001	116 101 113 000 000 	CMER7:	ASCIZ	%NAK%
  4858	007002	125 116 113 116 117 	CMER10:	ASCIZ	%UNKNOWN%
  4859	007003	127 116 000 000 000 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1
SUBSMS	MAC	13-Jun-79 16:25		*STOR* RESERVED STORAGE                                                            SEQ 0175

  4860					SUBTTL	*STOR* RESERVED STORAGE
  4861
  4862					;MODIFY DEVICE CODE CODE TABLE
  4863	007004				$MDLST:				;NO I/O BUS DEVICES ON SM-10
  4864			000000		$MDEND=.-$MDLST			;COMPUTES LENGTH OF TABLE
  4865
  4866					;PROGRAM LITERALS
  4867	007004					LIT
  4868	007004	002000	001000
  4869	007005	254 00 0 00 003146 
  4870	007006	254 00 0 00 003231 
  4871	007007	015 012 105 130 105 
  4872	007010	103 040 117 116 114 
  4873	007011	131 015 012 000 000 
  4874	007012	540000	540001
  4875	007013	020000	020000
  4876	007014	000002	000002
  4877	007015	260 17 0 00 002173 
  4878	007016	254 00 0 00 002250 
  4879	007017	76 51 54 54 45 47 
  4880	007020	41 54 00 65 65 57 
  4881	007021	76 65 65 57 75 75 
  4882	007022	46 54 41 47 63 75 
  4883	007023	00 00 60 43 76 77 
  4884	007024	777577	030303
  4885	007025	76 12 12 12 12 12 
  4886	007026	76 65 65 57 00 60 
  4887	007027	54 51 63 64 00 45 
  4888	007030	62 62 00 60 35 77 
  4889	007031	76 45 62 62 57 62 
  4890	007032	00 55 65 65 57 00 
  4891	007033	35 00 77 00 00 00 
  4892	007034	037 01 0 00 000007 
  4893	007035	037 01 0 00 000026 
  4894	007036	037 12 0 00 000001 
  4895	007037	254 00 0 00 002410 
  4896	007040	037 15 0 00 000003 
  4897	007041	254 00 0 00 002410 
  4898	007042	037 14 0 00 000003 
  4899	007043	254 00 0 00 002410 
  4900	007044	037 17 0 00 000001 
  4901	007045	254 00 0 00 002410 
  4902	007046	037 12 0 00 000001 
  4903	007047	254 00 0 00 002415 
  4904	007050	000001	000001
  4905	007051	76 64 45 63 64 00 
  4906	007052	60 41 63 63 00 43 
  4907	007053	57 65 56 64 00 35 
  4908	007054	00 77 00 00 00 00 
  4909	007055	76 60 43 35 00 00 
  4910	007056	77 00 00 00 00 00 
  4911	007057	76 63 67 51 64 43 
  4912	007060	50 45 63 00 35 00 
  4913	007061	77 00 00 00 00 00 
  4914	007062	76 45 62 62 57 62 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1-1
SUBSMS	MAC	13-Jun-79 16:25		*STOR* RESERVED STORAGE                                                            SEQ 0176

  4915	007063	00 51 56 00 77 00 
  4916	007064	00 15 00 77 00 00 
  4917	007065	76 77 00 00 00 00 
  4918	007066	037 00 0 00 000000 
  4919	007067	76 43 57 62 62 45 
  4920	007070	43 64 32 00 00 77 
  4921	007071	76 41 43 64 65 41 
  4922	007072	54 32 00 00 00 77 
  4923	007073	76 44 51 63 43 62 
  4924	007074	45 60 32 00 00 77 
  4925	007075	76 45 70 43 45 45 
  4926	007076	44 45 44 00 41 54 
  4927	007077	54 57 67 45 44 00 
  4928	007100	45 62 62 57 62 63 
  4929	007101	76 77 00 00 00 00 
  4930	007102	254 00 0 00 030005 
  4931	007103	100000	400000
  4932	007104	000001	007411
  4933	007105	37 00 45 62 62 57 
  4934	007106	62 00 50 41 54 64 
  4935	007107	00 41 64 00 77 00 
  4936	007110	37 00 46 41 64 41 
  4937	007111	54 00 60 62 57 47 
  4938	007112	62 41 55 00 45 62 
  4939	007113	62 57 62 00 41 64 
  4940	007114	00 77 00 00 00 00 
  4941	007115	104 104 124 000 000 
  4942	007116	66 45 62 63 51 57 
  4943	007117	56 00 77 00 00 00 
  4944	007120	14 00 63 66 35 77 
  4945	007121	14 00 55 43 66 35 
  4946	007122	77 00 00 00 00 00 
  4947	007123	14 00 55 43 57 35 
  4948	007124	77 00 00 00 00 00 
  4949	007125	14 00 50 57 35 77 
  4950	007126	14 00 53 41 63 67 
  4951	007127	35 77 00 00 00 00 
  4952	007130	14 00 43 60 65 03 
  4953	007131	35 77 00 00 00 00 
  4954	007132	76 12 12 12 12 12 
  4955	007133	76 60 54 51 63 64 
  4956	007134	00 65 46 54 57 67 
  4957	007135	76 77 00 00 00 00 
  4958	007136	264 00 0 00 030104 
  4959	007137	254 00 0 00 003321 
  4960	007140	254 00 0 00 003331 
  4961	007141	76 12 12 12 12 12 
  4962	007142	76 60 54 51 63 64 
  4963	007143	00 57 66 45 62 46 
  4964	007144	54 57 67 00 60 35 
  4965	007145	77 00 00 00 00 00 
  4966	007146	76 55 45 55 57 62 
  4967	007147	71 00 60 62 57 64 
  4968	007150	77 00 00 00 00 00 
  4969	007151	76 56 57 56 15 45 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1-2
SUBSMS	MAC	13-Jun-79 16:25		*STOR* RESERVED STORAGE                                                            SEQ 0177

  4970	007152	70 00 55 45 55 57 
  4971	007153	62 71 77 00 00 00 
  4972	007154	76 55 45 55 57 62 
  4973	007155	71 00 60 41 62 51 
  4974	007156	64 71 77 00 00 00 
  4975	007157	76 65 56 53 56 57 
  4976	007160	67 56 00 51 56 64 
  4977	007161	45 62 62 65 60 64 
  4978	007162	77 00 00 00 00 00 
  4979	007163	76 41 60 62 00 00 
  4980	007164	00 00 00 00 00 00 
  4981	007165	00 00 00 00 60 51 
  4982	007166	00 00 00 00 00 00 
  4983	007167	00 00 00 00 00 00 
  4984	007170	00 46 54 41 47 63 
  4985	007171	00 00 60 43 00 00 
  4986	007172	00 00 00 00 60 62 
  4987	007173	57 47 76 77 00 00 
  4988	007174	76 60 57 67 45 62 
  4989	007175	00 46 41 51 54 00 
  4990	007176	62 45 63 64 41 62 
  4991	007177	64 76 77 00 00 00 
  4992	007200	76 60 57 67 45 62 
  4993	007201	00 51 56 64 45 62 
  4994	007202	62 65 60 64 00 46 
  4995	007203	41 51 54 45 44 76 
  4996	007204	77 00 00 00 00 00 
  4997	007205	76 60 41 47 45 00 
  4998	007206	46 41 51 54 00 64 
  4999	007207	62 41 60 00 45 62 
  5000	007210	62 57 62 76 60 41 
  5001	007211	47 45 00 46 41 51 
  5002	007212	54 00 67 57 62 44 
  5003	007213	15 00 77 00 00 00 
  5004	007214	76 64 62 41 60 00 
  5005	007215	23 00 45 62 62 57 
  5006	007216	62 77 00 00 00 00 
  5007	007217	265 00 0 00 003412 
  5008	007220	265 00 0 00 003427 
  5009	007221	45 56 44 00 60 41 
  5010	007222	63 63 00 77 00 00 
  5011	007223	030146	030147
  5012	007224	540336	540337
  5013	007225	400000	777777
  5014	007226	540376	540377
  5015	007227	76 64 57 57 00 55 
  5016	007230	41 56 71 00 55 41 
  5017	007231	60 00 63 45 47 55 
  5018	007232	45 56 64 63 76 77 
  5019	007233	000200	000201
  5020	007234	44 22 0 00 000200 
  5021	007235	400000	400001
  5022	007236	76 66 51 62 64 65 
  5023	007237	41 54 77 00 00 00 
  5024	007240	76 55 45 55 57 62 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1-3
SUBSMS	MAC	13-Jun-79 16:25		*STOR* RESERVED STORAGE                                                            SEQ 0178

  5025	007241	71 00 55 41 60 00 
  5026	007242	35 76 46 62 57 55 
  5027	007243	00 00 00 00 00 64 
  5028	007244	57 00 00 00 00 00 
  5029	007245	00 00 00 00 00 63 
  5030	007246	51 72 45 17 53 77 
  5031	007247	75 63 64 41 62 64 
  5032	007250	00 41 44 62 17 53 
  5033	007251	77 00 00 00 00 00 
  5034	007252	64 57 64 41 54 00 
  5035	007253	55 45 55 57 62 71 
  5036	007254	17 53 00 35 00 77 
  5037	007255	63 67 51 64 43 50 
  5038	007256	45 63 00 35 00 77 
  5039	007257	76 64 64 71 00 63 
  5040	007260	67 51 64 43 50 00 
  5041	007261	43 57 56 64 62 57 
  5042	007262	54 00 37 00 15 00 
  5043	007263	20 14 63 00 57 62 
  5044	007264	00 71 00 34 43 62 
  5045	007265	36 00 15 00 77 00 
  5046	007266	76 54 50 00 63 67 
  5047	007267	51 64 43 50 45 63 
  5048	007270	00 34 03 00 57 62 
  5049	007271	00 37 36 00 15 00 
  5050	007272	77 00 00 00 00 00 
  5051	007273	62 50 00 63 67 51 
  5052	007274	64 43 50 45 63 00 
  5053	007275	34 03 00 57 62 00 
  5054	007276	37 36 00 15 00 77 
  5055	007277	055 040 131 054 116 
  5056	007300	054 040 074 103 122 
  5057	007301	076 040 117 122 040 
  5058	007302	136 054 136 132 040 
  5059	007303	055 040 000 000 000 
  5060	007304	000044	030600
  5061	007305	64 45 63 64 00 60 
  5062	007306	43 00 35 00 77 00 
  5063	007307	45 62 62 57 62 00 
  5064	007310	60 43 00 35 00 77 
  5065	007311	00 45 62 62 57 62 
  5066	007312	00 64 57 64 41 54 
  5067	007313	63 00 35 00 77 00 
  5068	007314	00 71 00 57 62 00 
  5069	007315	56 00 34 43 62 36 
  5070	007316	00 15 00 77 00 00 
  5071	007317	421042	104210
  5072	007320	44 06 0 00 000001 
  5073	007321	44 07 0 00 007550 
  5074	007322	015 012 052 052 052 
  5075	007323	052 052 052 015 012 
  5076	007324	105 130 103 105 105 
  5077	007325	104 105 104 040 101 
  5078	007326	114 114 117 127 105 
  5079	007327	104 040 120 122 111 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 1-4
SUBSMS	MAC	13-Jun-79 16:25		*STOR* RESERVED STORAGE                                                            SEQ 0179

  5080	007330	116 124 117 125 124 
  5081	007331	123 015 012 000 000 
  5082	007332	037 12 0 00 000001 
  5083	007333	254 00 0 00 005642 
  5084	007334	037 01 0 00 030242 
  5085	007335	254 00 0 00 005646 
  5086	007336	037 12 0 00 000001 
  5087	007337	254 00 0 00 005673 
  5088	007340	037 12 0 00 000001 
  5089	007341	254 00 0 00 005707 
  5090	007342	037 05 0 00 000001 
  5091	007343	254 00 0 00 005732 
  5092	007344	037 10 0 00 000001 
  5093	007345	254 00 0 00 005736 
  5094	007346	037 06 0 00 000001 
  5095	007347	254 00 0 00 005744 
  5096	007350	037 12 0 00 000001 
  5097	007351	254 00 0 00 005747 
  5098	007352	037 06 0 00 000001 
  5099	007353	254 00 0 00 005752 
  5100	007354	040 040 040 117 040 
  5101	007355	17 07 0 00 007547 
  5102	007356	040 040 040 121 040 
  5103	007357	10 07 0 00 007644 
  5104	007360	44 07 0 00 007644 
  5105	007361	14 04 0 00 000003 
  5106	007362	06 06 0 00 000003 
  5107	007363	00 06 0 00 000003 
  5108	007364	44 07 0 00 007606 
  5109	007365	35 07 0 00 007606 
  5110	007366	000000	140000
  5111	007367	37 43 57 55 55 00 
  5112	007370	45 62 62 57 62 32 
  5113	007371	00 77 00 00 00 00 
SUBSM (DSQDA) DECSYSTEM 2020 DIAGNOSTICS SUBROUTINE'S, VER 0,3	MACRO %53(1020) 16:33 13-Jun-79 Page 2
SUBSMS	MAC	13-Jun-79 16:25		*STOR* RESERVED STORAGE                                                            SEQ 0180

  5114	007404	000000	000000		ENDSLD:	0
  5115
  5116					;END OF PROGRAM VARIABLES
  5117
  5118	007405	000 00 0 00 000000 	%ERIN1:	Z			;COR/ACT/DESC PRINT JSR
  5119	007406	000 00 0 00 000000 	%ERIN2:	Z
  5120	007407	254 00 1 00 007405 		JRST	@%ERIN1		;ERROR HANDLER SPECIAL STORAGE WORDS
  5121
  5122	007410				POWER:	BLOCK	20		;POWER FAIL AC SAVE
  5123
  5124					IFDEF	DEBUG,<
  5125	007430				PATCH:	BLOCK	DEBUG		;DEBUGGING AREA
  5126					>
  5127
  5128					;PROGRAM VARIABLE WORDS
  5129
  5130	007430					VAR
  5131
  5132	007547	000000	000000			0
  5133	007550				$OUTBF:	BLOCK	^D30
  5134	007606				CINBF:	BLOCK	^D30
  5135	007644				COUTBF:	BLOCK	^D30
  5136
  5137					IFDEF	PGMEND,<
  5138	007702	000000	000000		END:	0
  5139			002000			END	START

NO ERRORS DETECTED

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

24P CORE USED

ABORT	   139#	  2438
AC0	    62#	  1422	  1423	  1424	  1426	  1428	  1429	  1431	  1434	  1435	  1436	  1438	  1441	  1443     SEQ 0181
	  1445	  1446	  1447	  1456	  1459	  1460	  1473	  1476	  1477	  1503	  1504	  1630	  1631	  1632
	  1633	  1635	  1637	  1639	  1645	  1646	  1647	  1654	  1658	  1693	  2036	  2045	  2048	  2058
	  2070	  2071	  2219	  2222	  2223	  2225	  2299	  2308	  2310	  2322	  2325	  2553	  2563	  3389
	  3592	  3594	  3596	  3810	  3830	  3860	  4163	  4351	  4373	  4455	  4464	  4465	  4479	  4488
	  4490	  4492	  4495	  4498	  4507	  4509	  4510	  4512	  4514	  4516	  4518	  4520	  4523	  4524
	  4526	  4538	  4541	  4544	  4553	  4561	  4578	  4579	  4613	  4620	  4630	  4632	  4635	  4643
	  4650	  4658	  4661	  4723	  4814	  4815	  4816	  4823	  4828
AC1	    63#	  4530	  4533	  4534	  4589	  4620	  4630	  4632	  4648	  4649	  4650	  4653	  4654	  4656
	  4658
AC2	    64#	  4823	  4827	  4828
AC3	    65#	  4463	  4466	  4468	  4506	  4518	  4536	  4538	  4541	  4544
AC4	    66#	  4448	  4474	  4507	  4509	  4634	  4635	  4648	  4653	  4743	  4758
AC5	    67#	  4430	  4438	  4446	  4450	  4455	  4477	  4485	  4505	  4520	  4524	  4526	  4528	  4534
	  4561	  4576	  4578	  4590	  4612	  4614	  4621	  4622	  4645	  4651	  4816
ACB0	  2255	  2276#
ACB1	  2252	  2275#
ACB2	  2249	  2274#
ACB3	  2246	  2273#
ACB4	  2243	  2272#
ACB5	  2240	  2271#
ACB6	  2237	  2270#
ACB7	  2234	  2269#
ACKMSG	  4430	  4803#
ALTMGO	   949#	  1628	  1879	  4343
ANYOUT	  3388	  3399	  3409	  4239#
APR	  1310	  1508	  1943	  2095	  2220	  2284	  2300	  2311	  2323	  2354	  2385	  2386	  2394	  2404
	  2605	  2626	  2631	  2634	  2644	  2647	  2670	  3346	  3349	  3358	  3361
AROV	   418#
AROVTP	   756#	   769#	  2333
AROVU	   484#
AST	  1064#
ATSIN	  1065#
BEGEND	   945#	  1272	  1280
BEGIN	    33	    34	    35	    37	    39	    40	    41	    42	    43	   354	   355	   876#	  1278	  1369
	  2293	  2366	  2461
BEGIN1	   892#	   946
BELL	  1068#
BELMSG	  4796	  4801#
BIS	   422#
CANMSG	  4787	  4805#
CCA	   500#
CHAIN	   159#	  3074
CHNOFF	   514#
CHNON	   513#
CINBF	  4589	  4627	  4634	  4688	  4718	  4754	  5134#
CLKU	   482#
CLOCKF	   931#
CLRACB	  2235	  2238	  2241	  2244	  2247	  2250	  2253	  2256	  2262#	  2267
CMER1	  4835	  4844#
CMER10	  4842	  4858#
CMER2	  4836	  4847#
CMER3	  4837	  4849#
CMER4	  4838	  4851#                                                                                                    SEQ 0182
CMER5	  4839	  4853#
CMER6	  4840	  4855#
CMER7	  4841	  4857#
CMERTB	  4828	  4834#
CNTLC	   948#	  3537	  3776	  4339
CNTRP	   781#	  2343
COMASC	  4539	  4542	  4545	  4814#
COMERR	  4475	  4724	  4759	  4822#
COMFLG	  1248#	  1275	  1591	  3857	  4215	  4224	  4378	  4592	  4687	  4702	  4703	  4717	  4722	  4729
	  4733	  4782	  4822
COMMA	  1057#
COMNBR	  4468	  4643#	  4643
COMQ	  4673	  4687#
COMTIM	  4595	  4693#
CONSW	   932#	  1319	  1321#	  1321	  1737	  1744	  1844	  1859	  1880	  1966	  2390	  2488	  2539	  2950
	  3055	  3057	  3059	  3073	  3081	  3095	  3128	  3142	  3517	  3527	  4163	  4208
COUTBF	  4505	  4528	  4553	  5135#
CPIERR	  1259#	  1936	  1958	  1963	  2398
CPOPJ	   952#	  3497
CPOPJ1	   950#	  2535	  2537	  2545	  3433	  3498
CRLF	   289	   290	  1052#
CRLF2	   293	   294	  1054#
CRY0	   419#
CRY1	   420#
CSHFLG	  1111#	  1337	  1338	  1340	  1389	  1394	  1968	  2496	  2536
CSHMEM	  1112#	  2534
CTRP	   782#	  2344
CYCL60	  1105#	  1930	  1945
DCK	   428#
DDT	    69#	  1203	  2070	  2459
DDTLNK	   173#	   890	  1209#	  2075	  2462
DDTSRT	    38	   890#	  1324
DEBUG	    32#	  5124	  5125
DECVER	     4#	    10	    15	   911	  1225	  1250
DF22F	  1016#	  4022#	  4022
DIAGMN	   879#
DIAGNO	    68#	  1202
DIAMON	    70#	  1204	  1268	  3538
DIASWS	    71#	  3137
DING	   145#	  1907
DOLLAR	  1071#
DSKUPD	   916
EBIT0	   846#
EBIT1	   847#
EBIT10	   856#
EBIT11	   857#
EBIT12	   858#
EBIT13	   859#
EBIT14	   860#
EBIT15	   861#
EBIT2	   848#
EBIT3	   849#
EBIT4	   850#                                                                                                            SEQ 0183
EBIT5	   851#
EBIT6	   852#
EBIT7	   853#
EBIT8	   854#
EBIT9	   855#
END	  5138#
ENDFIX	  1191#
ENDSLD	  5114#
ENQFLG	  3778#	  3778	  4738	  4740	  4786
ENQMSG	  4747	  4802#
EOPERR	  1260#
EOTMSG	  4774	  4806#
ERMORE	   965#	  1866
EROLD	   365
ERRPC	   936#	  1350	  1647	  1703	  1719	  1743	  2436	  3460
ERRTLS	   937#	  1277	  1699	  3464
ERSTOP	   148#	  1881	  2043	  2065
EXCASB	    30#	   914
EXIOT	   424#
FOV	   421#
FOVU	   483#
FRDLNK	   171#	  2017	  2022
FSELNK	   170#	  1988	  1991
FXU	   427#
HYPEN	  1062#
INHCSH	   156#	  1967	  2540
INHPAG	   153#	  1971	  2392	  2490	  2952
INIMSG	  4710	  4800#
IOCLR	   505#	  1310
ITERAT	    51#	   909
ITRCH1	   969#	  1507	  2140	  2150	  2203	  2299	  2310	  2322	  2361
ITRCNT	   909#	  1267	  1364	  2434	  2439	  2447
JOB41	   442#	  1407	  1503	  2222
JOBAPR	   450#
JOBCNI	   451#
JOBDDT	   444#
JOBFF	   448#	  1316	  2511	  2529	  2560	  3025
JOBOPC	   453#	  1627	  1878	  3535	  4338	  4342
JOBREL	   443#
JOBREN	   449#	  3786
JOBSA	   447#	  1315
JOBSYM	   445#
JOBTPC	   452#
JOBUSY	   446#
JOBUUO	   441#	  1434	  1441	  1471	  1520	  1529	  1566	  1577	  1623	  1629	  1630	  1656
JOBVER	   454#	  2083	  2086
KAIFLG	   926#	  1932
KLFLG	   927#	  1931	  1937
KNTRP	   777#	  2339
KTRP	   778#	  2340
LACLK	   549#
LACLKE	   582#
LAPRAL	   573#	  2385	  2644                                                                                             SEQ 0184
LAPRP1	   556#	   598#	  2394
LAPRP2	   555#	   597#
LAPRP3	   554#	   596#
LAPRP4	   553#	   595#
LAPRP5	   552#	   594#
LAPRP6	   551#	   593#
LAPRP7	   550#	   592#
LCHNOF	   655#	  2384
LCHNON	   654#	  2395
LCNTXT	   775#
LCNXER	   563#	  2612
LCPAER	   567#
LCPSFT	   571#
LCPWRF	   559#
LDATAF	   606#	   621#
LDLNK	   172#	   879	   881
LDNXER	   562#
LDPAER	   566#
LDPSFT	   570#
LDPWRF	   558#
LEBXMH	   790#
LEBXML	   791#
LENXER	   561#
LEPAER	   565#
LEPSFT	   569#
LEPWRF	   557#
LEUPFW	   786#	  2314	  2400	  2656
LEXCMP	   609#	   624#
LFLGCL	   543#
LFLGDS	   542#
LFLGEN	   541#
LFLGST	   544#
LFP	  1066#
LINSTF	   605#	   620#
LINT	   599#
LIOCLR	   540#
LLACBL	   702#	   717#
LLDUSB	   703#	   718#	  1959
LMBXMH	   792#
LMBXML	   793#
LNXMEN	   579#
LNXMER	   546#	   589#	  2369	  2371	  2404	  2410	  2631	  2670
LOOPER	   147#	  1650	  1899
LPAREN	   580#
LPARER	   547#	   590#	  2369	  2373	  2410
LPFWPC	   787#	  2308	  2406	  2407	  2660	  2661
LPGFTR	   788#	  1951	  2382	  2606	  2608	  2643
LPICH1	   658#	   691#
LPICH2	   659#	   692#
LPICH3	   660#	   693#
LPICH4	   661#	   694#
LPICH5	   662#	   695#
LPICH6	   663#	   696#                                                                                                    SEQ 0185
LPICH7	   664#	   697#
LPICHA	   665#	  2395
LPICLR	   652#	  2384
LPIIP1	   683#
LPIIP2	   684#
LPIIP3	   685#
LPIIP4	   686#
LPIIP5	   687#
LPIIP6	   688#
LPIIP7	   689#
LPIOFF	   656#	  2384
LPION	   657#	   690#	  2395
LPRCH1	   671#
LPRCH2	   672#
LPRCH3	   673#
LPRCH4	   674#
LPRCH5	   675#
LPRCH6	   676#
LPRCH7	   677#
LPRFMH	   762#
LPRFML	   763#
LPSFT	   548#
LPSFTE	   581#	   591#
LPWRFE	   578#
LPWRFL	   545#	   588#	  2354
LREQSE	   653#
LRQCLR	   651#	  2384
LSECMO	   741#
LSMODE	   732#	  1976
LSNXER	   564#
LSPAER	   568#
LSPSFT	   572#
LSPWRF	   560#
LTBASH	   760#
LTBASL	   761#
LTRPAE	   742#
LTRPEN	   733#	  1977	  2617
LUOERR	  1261#	  2224
LUSCMP	   608#	   623#
LUUO	   434#	  1690	  3862
LUUO1	   996	   997
LUUO10	   996	  1001
LUUO11	   996	  1001
LUUO12	   996	  1002
LUUO13	   996	  1002
LUUO14	   996	  1003
LUUO15	   996	  1003
LUUO16	   996	  1004
LUUO17	   996	  1004
LUUO2	   996	   998
LUUO20	   996	  1005
LUUO21	   996	  1005
LUUO22	   996	  1006                                                                                                     SEQ 0186
LUUO23	   996	  1006
LUUO24	   996	  1007
LUUO25	   996	  1007
LUUO26	   996	  1008
LUUO27	   996	  1008
LUUO3	   996	   998
LUUO30	   996	  1009
LUUO31	   996	  1009
LUUO32	   996	  1010
LUUO33	   996	  1010
LUUO4	   996	   999
LUUO5	   996	   999
LUUO6	   996	  1000
LUUO7	   996	  1000
LUUOI	   435#
LWRITE	   607#	   622#
MAPNEW	  1017#	  1270	  2503	  2530	  2754	  2819	  2841	  2906	  2989
MARGIN	   939#
MCNVER	     3#	    10	    15	   911	  1225	  1250
MEMLOW	  1019#	  2765	  2770	  2779	  2799	  2884	  2924	  3028
MEMMAP	    28#	   917
MEMSIZ	  1020#	  2481	  2482	  2483	  2556	  2570	  2574	  2578	  2579	  2582	  2832	  2836	  2879	  2881
	  2925	  2928	  2933	  2977	  2998	  3001	  3003	  3006	  3008	  3016
MEMTOT	  1018#	  3024	  3034
MINUS	  1061#
MMFLAG	  3280#	  3280	  3283	  3326	  3371	  3376	  4212	  4701
MODCHK	  1210	  1247#
MODDVC	   155#
MODDVL	   354	   354#	   912
MODDVU	   355	   355#	   913
MODLNK	   174#	   876	  1210#
MONCTL	   929#	  1365	  1724	  1915	  1947	  2040	  2062	  2079	  2440	  2980	  2982	  3053	  3054	  3076
	  3090	  3536	  3787
MONFLG	   928#	  1305	  1366	  2388	  2485
MONTEN	   930#	  1367	  2457
MONTYP	  1143#
MPVU	   479#
MSGNBR	  4429#	  4429	  4464	  4531	  4708	  4745
MUOERR	  1256#	  1505
MUUO	   773#	  1511
MUUOER	  1501#	  2338
MUUOPC	   774#	  1506
NAKMSG	  4438	  4485	  4804#
NOEXEC	  1253#	  1373
NOPNT	   143#	  1720	  3808	  4182
NXMU	   480#
OPRSEL	   157#
OPTIME	  1031#
P	   200	   201	   202	   203	   410#	   951	  1327	  1329	  1330	  1423	  1428	  1438	  1456	  1486
	  1487	  1488	  1491	  1645	  1655	  1701	  1995	  2058	  2158	  2159	  2161	  2207	  2448	  2823
	  2956	  3248	  3249	  3250	  3251	  3415	  3522	  3573	  3648	  3737	  4406	  4412	  4696
P$PTR	  3780#	  3780	  4185	  4194	  4203	  4206	  4229	  4231	  4233	  4243	  4364
PAG	   498#	  1952	  1954	  1955	  1959	  1960	  1975	  1978	  2232	  2352	  2353	  2416	  2493	  2616     SEQ 0187
	  2619
PALERS	   149#	  1710
PAREA1	    45#	   907
PAREA2	    46#	   908
PAREA3	    47#	   905
PAREA4	    48#	   906
PAREA5	    49#	   918
PAREA6	    50#	   919
PAREA7	   918#
PAREA8	   919#
PARU	   481#
PASCNT	   933#	  1276	  1727	  1730	  2433	  2443
PATCH	  5125#
PDISF	  1028#	  3761#	  3761	  3831#	  3831	  3834
PDLOVU	   478#
PDOVTP	   757#	   770#	  2335
PERIOD	  1058#
PERTLS	  1351#	  1351	  1732	  1917
PFSTRT	   885#	  1940	  2363
PGINGO	  1336#
PGMEND	    29#	  5137
PGMNAM	   910	  1282#
PI	  1309	  1509	  2185	  2221	  2301	  2312	  2324	  2384	  2395	  2603	  2604	  2650
PICHN1	   528#
PICHN2	   529#
PICHN3	   530#
PICHN4	   531#
PICHN5	   532#
PICHN6	   533#
PICHN7	   534#
PICHNA	   535#
PICLR	   511#	  1309
PIOFF	   515#	  2185	  2604
PION	   516#	   522#	  2649	  2650
PLERR	  1254#	  1484
PLERR1	  1255#	  1489
PLIST	  1097#	  1097	  1327	  1424	  1487	  1488	  2159
PLISTE	  1097	  1099#	  1426	  1488
PLISTS	  1098#
PLUS	  1063#
PNTENB	  1027#	  3768	  3805#	  3805	  4173
PNTEXT	   906#
PNTFLG	  1026#	  3765#	  3765	  3798	  3803	  3824
PNTINH	  1029#	  3763#	  3763	  4260
PNTLPT	   144#	  1194#	  3071	  3518	  3528	  4209
PNTNAM	   905#
PNTRP	   783#	  2345
PNTSPC	  1030#	  3766#	  3766	  4072	  4086
POWER	  1985	  1986	  1997	  2019	  2020	  2278	  2282	  2285	  2287	  2357	  2358	  2360	  2414	  5122#
PSHERR	  1325	  2132#
PTRP	   784#	  2346
PVPAGI	  1124#	  1970	  2391	  2489	  2951
QFLAG	  4200#	  4200	  4236	  4298	  4302                                                                             SEQ 0188
QUEST	  1069#
RADIX	  1072#	  4137
RADLSC	  1074#	  4133
RADLSP	  1073#	  4152
RANDBS	   907#
REENTR	   887#	  3785
REINIT	  1205	  1245#
RELIAB	   151#
REPT	   411#	  1642	  1707	  1717
REPT1	   412#	  1643	  1708	  1718
REPTU	   985#	  1667#	  1667
REQSET	   512#
RESRT1	   962#	  2152
RESRT2	   963#
RESRTX	  2151	  2232#
RETURN	   894#	  1269	  1370	  1381	  2458
RSTART	   140#
RTP	  1067#
RUNFLG	   934#
SADR1	    33#	   883
SADR10	    42#	   899
SADR11	    43#	   900
SADR2	    34#	   885
SADR3	    35#	   887
SADR4	    36#
SADR5	    37#	   948
SADR6	    38#	   949
SADR7	    39#	   896
SADR8	    40#	   897
SADR9	    41#	   898
SBINIT	   213	   893#
SCOPE	   986#	  1349	  1651	  1652	  1692	  1900	  2435
SFSTRT	   883#
SLASH	  1070#
SM10	  1174#	  1938
SMBER	  1257#
SMCER	  1258#
SMPAG	  2393	  2527	  2615#	  2714	  2822
SNTRP	   779#	  2341
SPACE	  1059#
SRTDDT	   889#
START	   877	  1244#	  5139
START1	   896#
START2	   897#
START3	   898#
START4	   899#
START5	   900#
STARTA	   892	  1280#
STRP	   780#	  2342
SUBINI	  1211	  1246#
SUBLNK	   175#	   893	  1211#
SUBRTN	  1249#
SUBVER	  1250#	  2089	  2092                                                                                             SEQ 0189
SWPTAB	  1180#	  3153
SWTAB	  3147	  3190#
SWTEXR	   908#
SYSEXR	   881#
TAB	  1060#
TABLE0	  1460	  1463#
TESTPC	   935#	  3452
TICKS	   938#
TIMEMS	  4808#
TN0	   425#
TN1	   426#
TOTALS	   141#
TRP3TP	   758#	   771#	  2337
TTNBRF	  1118#	  3606	  3626
TTYFIL	  1034#	  3769
TTYSPD	  1035#
TXTINH	   152#	  1745	  1845	  1860
UBAVEC	   754#
USER	   925#	  1301	  1304	  1306	  1307
USERF	   423#	  1303	  1362
USRASB	    31#	   915
USRCRF	  1044#
USRLFF	  1043#
UUODIS	   997#	  1450
UUOEXT	   953#
UUORTN	   954#	  1444
UUOSKP	   951#
XOFFLA	  3764#	  3764	  4247	  4292	  4314	  4330
XONCHK	  4307	  4314#	  4328
$$AC0	  1422#	  1422	  1433
$$C	  4394#	  4400	  4428	  4437	  4445	  4504	  4552	  4560	  4588	  4706	  4741	  4772	  4784	  4795
$$CE	  4418#	  4491	  4583	  4667	  4670	  4675	  4678	  4681	  4720	  4727	  4734	  4756	  4762	  4776
	  4789	  4798
$$CE1	  4412#	  4489	  4628
$$CE2	  4406#	  4472	  4664
$$MUUO	  1149#	  1501	  1502
$$OUTE	  1155#
$$PAC0	  1298	  1352#	  1352
$$TAX1	  1167#	  3443	  3444
$$TAX2	  1168#	  3446	  3447
$$TOGG	  1161#	  3048	  3078	  3088
$$UUO	  1138#	  1420	  1421
$80CHR	    87#	  3291	  3303	  3344	  3351	  3356	  3363
$80CIW	    83#	  3276	  3290	  3294
$80COW	    84#	  3277	  3345	  3350
$80INT	    88#	  3348	  3360
$80KIW	    85#	  3278	  3302	  3306
$80KOW	    86#	  3279	  3357	  3362
$80MM	    82#	  3282
$80STA	    81#	  2115	  3281
$ACC0	   976#	  2174	  2183	  2211	  2219#	  2219	  2225	  2359
$ACMP0	  2946#	  2946	  2957
$ACMP1	  2597#	  2597	  2651                                                                                             SEQ 0190
$ACMP2	  2598#	  2598	  2652
$ACMP3	  2599#	  2599	  2653
$ACMP4	  2708#	  2708	  2715
$ACMP5	  2746#	  2746	  2814
$ACMP6	  2747#	  2747	  2815
$ACMP7	  2748#	  2748	  2816
$ACMP8	  2749#	  2749	  2817
$ACMP9	  2750#	  2750	  2818
$ASCP1	  4107#	  4118
$ASCP2	  4110#	  4114
$ASCPN	  3845	  3868	  4106#
$BEND1	   946#
$BEND2	    36	   947#	  1926	  2046	  2066	  2072	  3775
$BYTYC	  3368#	  3368	  3370
$BYTYI	   101	  3313#	  3317	  3318	  3319	  3321
$BYTYO	   102	  3367#	  3373
$CARCT	  3482	  3488	  3516	  4164#	  4164	  4174	  4177	  4358	  4365
$CHRIN	  1037#	  3513#	  3513	  3521	  3530
$CHRPN	  3876	  4095#
$CLOCK	  1562	  1603#
$CMLE1	  4596	  4666#
$CMLE2	  4623	  4669#
$CMLE3	  4641	  4672#
$CMLE4	  4656	  4677#
$CMLE5	  4662	  4680#
$CNVD	  3605#	  3605	  3677	  3686
$CNVX	  3617	  3675#
$CNVX1	  3639	  3684#
$CNVX2	  3687	  3696#
$COMAC	   119	  4428#	  4469
$COMBE	   126	  4795#
$COMC1	  4450	  4455#	  4486
$COMC2	  4453	  4458#	  4483
$COMC3	  4460	  4474#	  4496	  4499
$COMC4	  4461	  4488#
$COMCL	   122	  4782#
$COMCM	   107	  4445#
$COMCT	   124	  4554	  4560#
$COMCX	  4431	  4439	  4448#
$COME1	  4745#	  4758
$COME2	  4751	  4758#	  4765
$COME3	  4752	  4761#
$COMEN	   111	  4738#	  4767
$COMEO	   113	  4772#
$COMI1	  4708#
$COMI2	  4714	  4722#
$COMI3	  4715	  4729#
$COMI4	  4717#	  4731
$COMIN	   128	  4701#
$COML1	  4592#	  4599	  4610	  4612	  4613	  4614	  4625
$COML2	  4616	  4627#
$COML3	  4618	  4630#
$COML4	  4637	  4639	  4643#                                                                                            SEQ 0191
$COMLI	   115	  4588#
$COMNA	   120	  4437#
$COMRT	   109	  4547	  4552#
$COMS1	  4509#	  4511	  4521
$COMS2	  4513	  4515	  4516	  4523#
$COMSN	   117	  4504#
$COMTI	   104	  3325#	  3330	  3332	  3333	  3334	  3337	  3339	  3340	  3341
$COMTO	   105	  3375#	  3379	  3381
$CPLII	  1940#
$CPSM	  1933#
$CPUTP	  1336	  1930#
$CRLF	  1039#	  3770#	  3770
$CSHAL	  2522	  2534#	  2722	  2792	  2856
$CYTYI	    95	  3289#	  3292	  3297	  3298	  3299
$CYTYO	    96	  3343#	  3353
$DCCMP	  4137#
$DCSPS	  4151#
$DDT	    77#
$DDTEN	  1323	  2069#	  3436	  3526	  4270	  4322	  4606
$DECP1	  4143#	  4149	  4151
$DECPN	  3870	  4126#
$DECSP	  3872	  4124#
$DEVCH	   492#
$DRPDV	  1541	  1601#
$DSKUP	   916#
$DVOFF	  1033#	  3760#	  3760
$ECK	  1364#
$EG177	  1525	  1577#
$EG4	  1527	  1566#
$EGBEL	  1568	  1591#
$EGFRC	  1570	  1593	  1596#
$EGX	  1573	  1575	  1580	  1583	  1586	  1588#	  1597
$EMODE	   914#	  1371
$END	  1562	  2433#
$END2	  2440#
$END3	  2441	  2447#
$EOP	  1564	  2456#
$ERH0	  2034	  2036#	  2036	  2049
$ERHL1	  2042#
$ERHL3	  2045#
$ERHL4	  2041	  2044	  2047#
$ERHLT	  1563	  1888	  2031#
$FATAL	  1563	  2055#
$FATL1	  2063	  2068#
$FFF	  1041#	  3772
$FRD36	  1560	  2011#
$FRD8	  1561	  2009#
$FREAD	  1560	  2013#
$FSEL1	  1989	  2002#
$FSEL2	  1992	  1996#	  2003	  2023	  2024
$FSELE	  1559	  1983#
$FSELF	  1984#	  1984	  1994	  2015
$HEAR	  3390	  3400	  3413	  3473#	  3479	  3481	  3534                                                             SEQ 0192
$HEAR1	  3485	  3534#
$HEAR2	  3519	  3521#	  3529	  3532
$HEAR3	  3515	  3525#
$HEAR4	  3487	  3491	  3507#
$IBUF	  1089#
$INEXT	  1091#
$INNM	  1090#
$INTDF	  3759#	  3759
$IPGFL	  1950	  2398#
$ITR1A	  2166	  2169	  2172	  2177	  2193#
$ITR1B	  1514	  2194#	  2326	  2411
$ITRC1	  2149	  2219#
$ITRHL	   957#	  2184
$ITRHZ	  2183#	  2370	  2375
$ITRIN	  1344	  2140#
$ITRX1	   958#	  2212
$KYTYI	    98	  3301#	  3304	  3309	  3310	  3311
$KYTYO	    99	  3355#	  3365
$LDSPS	  4140	  4148#
$M2	  2634#
$M4	  2673#
$M5	  2632	  2685#
$M6	  2671	  2688#
$M7	  2676	  2692#
$MAPEX	  1339	  1388#	  1974
$MDEND	  4864#
$MDLST	  4863#	  4864
$MEMMP	  1346	  1557	  2481#
$MEPAG	  2491	  2493#
$MMAP	   917#	  1345
$MNCON	  2751#	  2751	  2801	  2810
$MODCK	  1222	  1247	  1361#
$MODDP	  1542	  1600#
$MODDV	  1542	  1599#
$MODVL	   912#
$MODVU	   913#
$MPAD2	  2954	  2959#
$MPAD3	  2949	  2957#	  2964
$MPAD7	  2956#	  2960	  2968	  2971
$MPADL	  2953	  2962#
$MPADR	  1544	  2696	  2946#
$MPCM1	  2559#	  2568	  2575
$MPCM2	  2562	  2577#
$MPCM3	  2570#
$MPCMB	  2518	  2532	  2551#
$MPCMX	  2572	  2582#
$MPCN1	  2612#	  2690
$MPCNK	  1545	  2516	  2531	  2597#	  2768
$MPCXX	  2685	  2688	  2692	  2695#
$MPEXM	  2666#	  2675	  2686
$MPGFL	  2607	  2656#
$MPNEW	  2511#
$MPNXM	  2613	  2626#	  2637                                                                                             SEQ 0193
$MPOL1	  2486	  2492	  2528#
$MPOLD	  2504	  2520#
$MPRPI	  2648#
$MPRST	  2643#	  2693
$MPSE2	  2709	  2718#
$MPSE3	  2714#	  2730
$MPSET	  1545	  2514	  2708#	  2766
$MPVU	  2168#
$MSAPR	  2605#	  2605	  2645
$MSEG	  1543	  2746#	  2914
$MSEG2	  2800	  2808#	  2858
$MSEG3	  2771	  2813#	  2833	  2835	  2876	  2880	  2882	  2889	  2892	  2896
$MSEG4	  2822#
$MSEGP	  2758	  2829#	  2893
$MSEGV	  2759	  2765#
$MSGV1	  2770#
$MSGV2	  2776#	  2802
$MSGV3	  2794	  2799#
$MSKA	  2755	  2873#
$MSKAP	  2842	  2874	  2891#
$MSPI	  2603#	  2603	  2648
$MTROP	  1559	  1602#
$MZRO	  1544	  2904#
$MZRO1	  2909#	  2916	  2921
$MZRO2	  2907	  2923#
$MZRO3	  2928#	  2935
$MZROB	  2904#	  2904	  2938
$MZROC	  2905#	  2905	  2937
$MZROX	  2912	  2926	  2929	  2937#
$NEGF	  3604#	  3604	  3645	  3672
$NEGX	  3615	  3670#
$NOUSR	  1308	  1377#
$NOYES	  1549	  3548#
$NXMU	  2171#	  2372
$OBUF	  1080#
$ONETM	   940#	  1274	  1348	  2985	  3789
$OPTLK	  1548	  3099	  3105	  3224	  3239	  3409#	  3557	  3565	  3612	  3717
$OUTBF	  3779	  4186	  4199	  4205	  4218	  4235	  4244	  4258	  5133#
$OUTEX	  1082#
$OUTNM	  1081#
$PACA1	  3819	  3835	  3851#	  3851
$PACA2	  3820	  3836	  3852#	  3852
$PACA3	  3821	  3837	  3853#	  3853
$PACA4	  3822	  3838	  3854#	  3854
$PACA5	  3823	  3839	  3855#	  3855
$PACB0	  4161#	  4161	  4351
$PAPER	    53#	   403
$PARER	   964#	  2175
$PAREX	  2174#	  2374
$PDLOV	  2299#	  2334
$PDOVP	  1486	  1493	  2158#	  2158	  2163
$PDOVU	  2158#	  2302
$PGFL	  2308#	  2403	  2405                                                                                             SEQ 0194
$PGFL1	  2314#
$PGFL2	  2316	  2409#
$PGMIN	  1221	  1246	  1298#
$PGMN1	  1315#
$PMAP	  1546	  2580	  2586	  2976#
$PMAP1	  2984	  2987#
$PMAP3	  2981	  2985#
$PMAP4	  2999	  3024#
$PMAP5	  3011	  3021#
$PMAP6	  3029	  3031	  3039#
$PMAP7	  3012#
$PMAPL	  2987	  2998#	  3022
$PNAME	   910#	  1380	  2081
$PNM2	  2080	  2118#
$PNT	  3861#	  3861	  4076#	  4076	  4080	  4085	  4104#	  4104	  4116	  4124	  4148
$PNTB1	  3834#
$PNTC2	  4023	  4038#
$PNTC3	  4034#	  4050
$PNTCF	  1540	  4052#	  4054
$PNTCW	  1540	  4018#	  4055	  4057
$PNTI1	  3878	  4063#	  4087
$PNTI2	  4067#	  4070	  4081
$PNTI3	  3874	  4083#
$PNTI4	  3817#	  4077	  4088	  4098	  4112	  4117	  4131
$PNTIA	  3801	  3809	  3851#
$PNTIB	  3806	  3830#
$PNTIC	  3866#
$PNTIF	  1523	  3798#
$PNTIN	  1342	  3759#
$PNTIT	  1521	  3803#
$PNTIX	  3785#
$PNTLN	  3867	  4104#
$PNTMG	  1546	  1604#
$PNTNM	  1541	  2079#	  3072	  3791
$PNTSV	  4071#	  4071	  4078
$PNTSX	  1539	  3889#
$PNTTY	  3799#	  3799	  3804	  3817	  3840	  4179
$PNTYC	  4162#	  4162
$POCS	  1555	  3972#
$POCS1	  3980	  3987#
$POCS2	  3992#	  4001
$POCS3	  3989	  3996#	  4010
$POCS4	  4001#	  4009
$POCS5	  3994	  4009#
$POCSF	  1555	  3968#
$POINT	  4106#	  4106	  4108	  4115
$PRNTX	  3811	  3824#	  3832
$PSHER	   968#	  1326	  1328	  1490	  2160
$PSIX	  1554	  3924#
$PSIX1	  3933#	  3949
$PSIX2	  3936#	  3948
$PSIX3	  3948#	  3954
$PSIX4	  3941	  3951#                                                                                                    SEQ 0195
$PSIX5	  3939	  3956#
$PSIXF	  1554	  3920#
$PTCA	  4018#	  4018	  4035	  4052
$PTCB	  4020#	  4020	  4034
$PTINH	  1596	  3762#	  3762	  3800	  4167	  4172	  4288	  4309	  4331	  4609
$PTSXF	  1539	  3903#
$PVER	   911#
$PWRF	  1942	  2258	  2281#	  2281	  2365
$PWRFL	  2259	  2291#
$PWRST	  2289	  2362#	  2362
$RADIX	  4130	  4133#	  4141
$REINI	  1220	  1245	  1274#
$RSRTX	   960#	  2283
$RSRTY	   961#	  2288
$RSTCM	  2278#	  2426
$SBSRT	  1219	  1244	  1266#
$SM10	  2153	  2381#
$SMCLR	  2384#	  2415
$SMCSH	  1347	  1966#
$SMENB	  2388#
$SMI	  2332#	  2383
$SMIT1	  2355	  2368#	  2412
$SMITR	  2226	  2352#
$SMPGF	  2381	  2400#	  2659
$SMPWR	  2357#
$SMRST	  2260	  2414#
$SMSN	  2095#
$SMSNX	  2095#	  2095	  2096	  2100	  2105	  2110
$SNPNT	  2098	  2121#
$SPAG1	   980#	  2353#	  2353
$START	   877#	  1372	  1376
$STD	    76#
$STL	    78#
$STM	    79#
$SUBUO	  1437	  1459#
$SVAPR	   978#	  1508	  2197#	  2197	  2220	  2284	  2300	  2311	  2323	  2368	  2409	  2417	  2423
$SVCSW	  1320#	  1320	  3134	  3140
$SVPAG	   979#	  2352#	  2352	  2416
$SVPI	   977#	  1509	  2200#	  2200	  2221	  2301	  2312	  2324
$SVUPC	   983#	  1440
$SVUUO	   982#	  1442	  1446
$SW	  3104#	  3104	  3107	  3122#	  3122	  3127
$SW0	  3067	  3087#	  3445
$SW0A	  3090#
$SW1	  3098#	  3100	  3106	  3115	  3141
$SW10	  3091	  3137#
$SW11	  3093	  3140#
$SW12	  3094#	  3143
$SW13	  3121	  3145#
$SW14	  3126	  3151#
$SW2	  3113	  3119#	  3146
$SW3	  3124#	  3149	  3152	  3154
$SW4	  3117	  3128#	  3135	  3138	  3156                                                                             SEQ 0196
$SW6	  3109	  3116#
$SW8	  3129#	  3133
$SW9	  3089	  3111	  3132#
$SWCH1	  3053#	  3058
$SWERR	  3102	  3115#
$SWFLG	  1322#	  1322	  3050	  3069
$SWIN1	  3068#
$SWONC	  3066#	  3066	  3068	  3092	  3132
$SWTCH	  1543	  1649	  1700	  1869	  2042	  2064	  2437	  3048#	  3070	  3807
$SWTIN	  1343	  3066#
$SWU1	  3051	  3052	  3057#
$SWU2	  3049	  3059#
$SWXX	  3148	  3155	  3162#
$SWXX1	  3171#	  3176	  3182	  3221
$SWXX2	  3172	  3181#
$SWXX3	  3177	  3183#
$SWXX4	  3178	  3215#
$SWYYY	  3238#	  3238	  3241
$SWZZ	  3175	  3223#
$SWZZ1	  3227	  3251#
$SWZZ2	  3229	  3250#
$SWZZ3	  3243	  3249#
$SWZZ4	  3231	  3245	  3248#
$TABF	  1040#	  3771	  4189
$TABS	  4192	  4358#
$TABS1	  4363#	  4366
$TACB4	  3410#	  3410	  3417
$TACC1	  3551#	  3551	  3576
$TACC2	  3552#	  3552	  3574
$TACD1	  3598#	  3598	  3647	  3654
$TACD2	  3599#	  3599	  3643	  3653
$TACD3	  3600#	  3600	  3642	  3652
$TALT1	  3429	  3433#
$TALT2	  3427#
$TALT3	  3438	  3450#
$TALT4	  3440	  3458#
$TALTM	  1551	  1624	  1875	  3424#
$TIEX2	  3476#
$TIRDY	  3473	  3493#
$TISIX	  1552	  3712#
$TOUB1	  4282	  4291#
$TOUB2	  4261	  4266	  4289	  4294#
$TOUT	  4069	  4075	  4097	  4113	  4128	  4145	  4153	  4161#
$TOUT1	  4170	  4176#
$TOUT2	  4180	  4185#
$TOUT3	  4212#
$TOUT4	  4187	  4229#	  4246
$TOUT5	  4202#	  4237
$TOUT6	  4213	  4224#
$TOUT7	  4218#	  4225
$TOUTA	  4183	  4197	  4216	  4222	  4227	  4351#	  4367
$TOUTB	  4214	  4226	  4257#	  4295	  4300	  4304	  4312	  4341	  4345
$TPCK	  3623	  3661#                                                                                                    SEQ 0197
$TPCLR	  1553	  3500#
$TPCNV	  1550	  3592#
$TPCV1	  3593	  3595	  3598#
$TPDEC	  1550	  3594#
$TPERR	  3613	  3624	  3637	  3651#	  3671	  3676	  3689
$TPEX1	  3642#	  3694	  3703
$TPEXT	  3619	  3621	  3636#
$TPMUL	  3628	  3664#
$TPNBR	  3636	  3667#
$TPOCT	  1549	  3120	  3125	  3596#
$TRP3	  2322#	  2336
$TSX1	  3712#	  3712	  3740
$TSX2	  3713#	  3713	  3741
$TSXB1	  3717#	  3735
$TSXB2	  3720	  3722	  3737#
$TSXB3	  3718	  3725	  3729	  3733	  3739#
$TSXB4	  3728	  3731#
$TTCHR	  1036#	  3476#	  3476	  3507
$TTLK	  1551	  3388#	  3424
$TTYIN	  1552	  3399#
$TTYSP	  1251#
$TTYTI	  4590#	  4590	  4693	  4694
$TUTX2	  4273	  4325	  4340#	  4569	  4604
$TUTX3	  4277	  4279	  4344#
$TWCNT	  1032#	  3416
$TYAC0	  4373#	  4373	  4384
$TYAC1	  4374#	  4374	  4385
$TYAC2	  4375#	  4375	  4386
$TYCLR	    93	  3286#	  3287
$TYINI	    92	  3275#	  3284
$TYOU3	  4381	  4384#
$TYOU4	  4378#
$TYOUT	  3483	  3490	  4285	  4287	  4310	  4373#
$TYPL1	  3626#
$TYPLP	  3612#	  3631	  3673	  3678
$TYPNB	  1038#	  3603#	  3603	  3651
$UCK	  1363	  1375#
$UMODE	   915#	  1375
$UOERX	  1408	  1471#	  1553	  1557	  1558	  1561	  1564	  1604	  1640
$UOPLE	  1425	  1427	  1430	  1432	  1483#
$UORTN	  1406	  1420#	  1504	  2223
$UORTX	   955#	  1480
$UOTAB	  1535	  1538#
$UPLER	  1410#	  1410	  1483	  1485
$USRHL	   959#
$USRUO	  1438#
$UUO37	  1466	  1520#
$UUOER	   956#	   997	  1409
$UUOIN	  1341	  1406#
$VTF	  1042#	  3773
$XUUO	  1451#	  1536
$YESNO	  1548	  3550#
$YN1	  3555#	  3580                                                                                                     SEQ 0198
$YN2	  3558	  3566	  3574#
$YN3	  3562	  3572	  3579#
$YN4	  3568	  3570	  3582#
%AC0	  1675#	  1675	  1681	  1862	  1864	  1865	  1920
%AC1	  1676#	  1676	  1682	  1788	  1813
%AC2	  1677#	  1677	  1683	  1790	  1815
%AC3	  1678#	  1678	  1684	  1792	  1817
%ACTFL	   989#	  1698#	  1698	  1809
%ACTUL	   990#	  1828#	  1828	  1834
%COREC	   988#	  1803#	  1803	  1833
%CORFL	   987#	  1697#	  1697	  1784
%DISCR	   991#	  1763#	  1763	  1782	  1807	  1831	  1838
%EACR	  1681#	  1739	  1887
%EACR1	  1682#	  1856	  1914
%EACS	  1675#	  1696	  1868
%ERCNT	  1723#	  1723	  1901
%ERFLG	  1622#	  1622	  1641	  1705
%ERFST	  1890#	  1890	  1892
%ERHI1	  1130#	  1694	  1695
%ERHI2	  1131#	  1921	  1922
%ERHI3	  1132#	  1740	  1741
%ERIN1	  1802	  1827	  1837	  5118#	  5120
%ERIN2	  1778	  5119#
%ERLP	  1464	  1622#
%ERLP0	  1638	  1641#
%ERLP1	  1636	  1645#
%ERLP2	  1634	  1649#
%ERMOR	  1858	  1861	  1865#
%ERP2A	  1786	  1794#
%ERP2B	  1769#
%ERP3A	  1811	  1819#
%ERPNT	  1704	  1709	  1717#
%ERPR1	  1749	  1755#
%ERPR2	  1746	  1759	  1763#
%ERPR3	  1783	  1804#
%ERPR4	  1808	  1830#
%ERPR5	  1832	  1844#
%ERPR6	  1846	  1850	  1854#
%ERPRA	  1725	  1890#
%ERPRB	  1727#	  1893
%ERS1A	  1887#
%ERSW1	  1711	  1721	  1875#
%ERSW2	  1882	  1899#
%ERSW3	  1907#
%ERUUO	  1465	  1690#
%ERX	  1654#	  1668
%ERX1	  1644	  1648	  1653	  1658#	  1669
%ERXTR	  1857#	  1857	  1863
%EXCAL	  1914#
%EXCL1	  1916	  1920#
%EXCL2	  1919	  1924#
%LUUO	  1691#	  1691	  1769
%REPT	  1463	  1667#                                                                                                    SEQ 0199
%RP	  1642	  1707	  1717#	  1717
%RP1	  1643	  1708	  1718#	  1718
.JB41	   460#
.JBAPR	   468#
.JBCNI	   469#
.JBDDT	   462#
.JBFF	   466#
.JBOPC	   471#
.JBREL	   461#
.JBREN	   467#
.JBSA	   465#
.JBSYM	   463#
.JBTPC	   470#
.JBUSY	   464#
.JBUUO	   459#
.JBVER	   472#

APRID	   798#
BCIO	   834#                                                                                                            SEQ 0200
BCIOB	   840#
BSIO	   833#
BSIOB	   839#
BTYTYI	   101#	  3493	  4265	  4317
BTYTYO	   102#	  4382
CFLUSH	   325#
CINVAL	   324#
CLOKOP	   319#
CLRPT	   805#
COMACK	   119#
COMBEL	   126#	  1594
COMCLR	   122#	  2047	  2073	  2456
COMCMD	   107#	  4219
COMCTL	   124#	  4456	  4711	  4748	  4775	  4788	  4797
COMENQ	   111#	  3858
COMEOT	   113#
COMINI	   128#	  3782
COMLIN	   115#	  4458	  4713	  4750
COMNAK	   120#
COMRTR	   109#	  4482
COMSND	   117#	  4452
COMTYI	   104#	  4563	  4598
COMTYO	   105#	  4572	  4574	  4580	  4726
CTYCLR	    93#
CTYINI	    92#	  1946
CTYTYI	    95#	  3314	  3329
CTYTYO	    96#	  3369	  3378	  4380
CWRTBI	   326#
DROPDV	   286#
ENDUUO	   332#	   945
EOPUUO	   333#	   947
ERLOOP	   373#
ERLP1	   374#
ERLP2	   375#
ERRHLT	   220#
ERROR	   382#
ERROR1	   393#
ERUUO	   372#
FATAL	   219#	  1481	  1495	  1775	  2016	  2018	  2134	  2213	  2555	  2610	  2697	  2719	  2753	  2783
	  2787	  2886	  2915
FRD36	   361#
FRD8	   362#
FREAD	   360#
FSELEC	   359#
GET	   203#	  1340	  1443	  1455	  1473	  1476	  1588	  1629	  1639	  1654	  1658	  1693	  1987	  1999
	  2021	  2034	  2045	  2048	  2074	  2123	  2542	  2544	  2620	  2643	  3129	  3185	  3186	  3187
	  3810	  3830	  3860	  3896	  3910	  3956	  3957	  3958	  3959	  3960	  4002	  4003	  4004	  4005
	  4006	  4248	  4249	  4250	  4251	  4418	  4419	  4420	  4421	  4422
GO	   200#	  1336	  1339	  1341	  1342	  1343	  1344	  1346	  1347	  1406	  1504	  1624	  1649	  1696
	  1700	  1739	  1856	  1863	  1868	  1869	  1875	  1887	  1914	  1974	  1991	  2022	  2042	  2064
	  2098	  2223	  2383	  2393	  2415	  2437	  2514	  2516	  2522	  2527	  2531	  2685	  2688	  2692
	  2696	  2714	  2722	  2766	  2768	  2792	  2822	  2856	  2914	  3067	  3070	  3072	  3099	  3105
	  3120	  3125	  3148	  3155	  3175	  3224	  3239	  3388	  3399	  3400	  3409	  3413	  3424	  3445     SEQ 0201
	  3473	  3483	  3490	  3557	  3565	  3612	  3717	  3807	  4130	  4141	  4285	  4287	  4307	  4310
	  4539	  4542	  4545	  4595
HALT	   205#	   966	  1228	  1229	  1230	  1231	  1232	  1233	  1234	  1235	  1236	  1253	  1254	  1255
	  1256	  1257	  1258	  1259	  1260	  1261	  1373	  1484	  1489	  1505	  1936	  1958	  1963	  2049
	  2224	  2293	  2366	  2398	  2461	  3316	  3322	  3331	  3338	  3495	  4220	  4267	  4319	  4691
	  4832
JEN	   207#
JRSTF	   206#	  2267	  2289	  2407	  2661
KTYTYI	    98#	  3320	  3336
KTYTYO	    99#	  3372	  3380
MAPADR	   342#
MAPCNK	   343#
MAPMEM	   339#
MAPPNT	   345#
MAPSET	   344#
MEMSEG	   341#
MEMZRO	   340#
MODPCP	   352#
MODPCU	   351#
MTROP	   320#
NAME	     7#	    10
OUTSTR	  1377	  1380
PBELL	   295#	  1567	  1908
PCRL	   289#	  1479	  1851	  1854	  2118	  2210	  2995	  3019	  3036	  3037	  3520	  3953
PCRL2	   293#
PCRL2F	   294#
PCRLF	   290#	  2039	  2061	  2446	  3083	  3169	  3183	  3454	  3466	  3579	  3951	  4690	  4830
PFORCE	   297#	  1569	  1722
PGMINT	   213#	  1271	  2291
PJRST	   204#
PMSG	   299#	  1472	  1510	  1729	  1733	  1736	  2082	  2088	  2099	  2104	  2109	  2114	  2122	  2162
	  2196	  2313	  2990	  2991	  2994	  3033	  4824
PMSGF	   302#	  1492	  1924	  2032	  2056	  2132	  2280	  2292	  2442	  2584	  3080	  3094	  3098	  3119
	  3124	  3450	  3458	  3462	  3555
PNT1	   255#
PNT11	   269#
PNT11F	   270#
PNT1F	   256#
PNT2	   257#
PNT2F	   258#
PNT3	   259#
PNT3F	   260#
PNT4	   261#
PNT4F	   262#
PNT5	   263#	  4028
PNT5F	   264#	  4026
PNT6	   265#	  1735	  2209	  4041	  4049
PNT6F	   266#	  2038	  2060	  3453	  3461	  4039	  4047
PNT7	   267#
PNT7F	   268#
PNTA	   241#	  1777
PNTADF	   272#	  4031
PNTADR	   271#	  3002	  3004	  4033                                                                                     SEQ 0202
PNTAF	   242#
PNTAL	   243#	  1587
PNTALF	   244#	  1585	  4689	  4719	  4755	  4829
PNTCHF	   254#	  1572	  1592	  3908	  3945	  3982	  3997	  4043
PNTCHR	   253#	  1574	  3531	  3894	  3947	  3984	  3999	  4045
PNTCI	   251#	  2085	  2091	  3005	  3015
PNTCIF	   252#	  2445	  3174
PNTCW	   287#
PNTCWF	   288#
PNTDCF	   280#	  2444	  3465
PNTDEC	   279#	  1731	  2124	  3012	  3018	  3035
PNTDS	   281#
PNTDSF	   282#
PNTHW	   275#	  1474	  1478	  1512	  1738	  2116	  2164	  2198	  2201	  2205	  2315
PNTHWF	   276#	  1494	  3082	  3096
PNTMSF	   248#	  3223
PNTMSG	   247#	  2081
PNTNM	   283#	  1891	  2031	  2055
PNTOCF	   278#
PNTOCS	   277#	  2084	  2087	  2090	  2093	  2103	  2108	  2113
PNTOCT	   273#
PNTOTF	   274#
PNTSIX	   284#
PNTSXF	   285#	  3173
PSIXL	   245#	  1582	  1750	  1752	  1760	  1762	  1800	  1825	  1835	  1853	  2195
PSIXLF	   246#	  1579
PSIXM	   249#	  1472	  1510	  1729	  1733	  1736	  2082	  2088	  2099	  2104	  2109	  2114	  2122	  2162
	  2196	  2313	  2990	  2991	  2994	  3033	  4825
PSIXMF	   250#	  1492	  1925	  2033	  2057	  2133	  2280	  2292	  2442	  2585	  3080	  3094	  3098	  3119
	  3124	  3451	  3459	  3463	  3556
PSP	   291#	  1475	  2199	  2202	  2206
PSPF	   292#
PUT	   202#	  1337	  1433	  1445	  1448	  1471	  1528	  1623	  1983	  1996	  2014	  2035	  2069	  2121
	  2538	  2606	  2615	  3087	  3162	  3163	  3164	  3889	  3903	  3920	  3924	  3926	  3927	  3928
	  3929	  3968	  3972	  3974	  3975	  3976	  3977	  4239	  4240	  4241	  4242	  4395	  4396	  4397
	  4398	  4399
RDAPR	   800#
RDCSB	   811#
RDCSTM	   813#
RDEBR	   807#
RDHSB	   816#
RDINT	   815#
RDIO	   831#
RDIOB	   837#
RDPI	   802#
RDPUR	   812#
RDSPB	   810#
RDTIM	   814#
RDUBR	   804#
REPTUO	   376#
RTN	   201#	   953	  1399	  1411	  1457	  1589	  1659	  1679	  1685	  1923	  1948	  1964	  1969	  1973
	  1979	  2000	  2119	  2125	  2347	  2396	  2449	  2543	  2621	  2654	  2699	  2716	  2820	  2824
	  2939	  2958	  3039	  3056	  3060	  3075	  3077	  3084	  3130	  3188	  3225	  3236	  3240	  3246     SEQ 0203
	  3252	  3402	  3418	  3425	  3442	  3448	  3456	  3468	  3474	  3494	  3500	  3523	  3577	  3649
	  3655	  3742	  3788	  3790	  3825	  3897	  3911	  3961	  4007	  4036	  4146	  4252	  4315	  4333
	  4387	  4423	  4697	  4704	  4739	  4783	  4817
S	    60	    74	    90	   131#	   133	   137	   166	   168	   177	   180	   195	   196	   198	   209
	   211	   215	   217	   222	   226	   368	   370	   406	   408	   414	   416	   430	   432	   437
	   439	   455	   457	   474	   476	   486	   490	   494	   496	   501	   503	   507	   509	   518
	   520	   524	   526	   536	   538	   574	   576	   584	   586	   601	   603	   611	   613	   616
	   618	   626	   628	   632	   634	   639	   641	   647	   649	   667	   669	   679	   681	   698
	   700	   707	   709	   713	   715	   722	   724	   728	   730	   737	   739	   746	   748	   750
	   752	   765	   767	   794	   796	   825	   827	   842	   844	   868	   874	   901	   903	   921
	   923	   941	   943	   972	   974	   992	   994	  1012	  1014	  1022	  1024	  1045	  1050	  1076
	  1078	  1085	  1087	  1093	  1095	  1101	  1103	  1107	  1109	  1114	  1116	  1120	  1122	  1126
	  1128	  1134	  1136	  1139	  1141	  1145	  1147	  1151	  1153	  1157	  1159	  1163	  1165	  1170
	  1172	  1176	  1178	  1182	  1184	  1186	  1188	  1196	  1198	  1215	  1217	  1240	  1242	  1262
	  1264	  1294	  1296	  1311	  1313	  1332	  1334	  1353	  1359	  1383	  1386	  1402	  1404	  1413
	  1418	  1467	  1469	  1497	  1499	  1516	  1518	  1607	  1613	  1615	  1620	  1661	  1665	  1671
	  1673	  1686	  1688	  1713	  1715	  1765	  1767	  1796	  1798	  1821	  1823	  1840	  1842	  1871
	  1873	  1883	  1885	  1895	  1897	  1903	  1905	  1910	  1912	  1928	  1981	  2005	  2007	  2027
	  2029	  2051	  2053	  2077	  2128	  2130	  2136	  2138	  2154	  2156	  2179	  2181	  2189	  2191
	  2215	  2217	  2228	  2230	  2295	  2297	  2304	  2306	  2318	  2320	  2328	  2330	  2348	  2350
	  2377	  2379	  2429	  2431	  2452	  2454	  2465	  2475	  2477	  2479	  2506	  2509	  2546	  2549
	  2588	  2595	  2622	  2624	  2639	  2641	  2662	  2664	  2678	  2683	  2700	  2706	  2731	  2744
	  2761	  2763	  2804	  2806	  2825	  2827	  2862	  2871	  2897	  2902	  2940	  2944	  2972	  2974
	  3043	  3046	  3062	  3064	  3158	  3160	  3257	  3273	  3382	  3386	  3392	  3397	  3404	  3407
	  3419	  3422	  3469	  3471	  3501	  3505	  3541	  3546	  3587	  3590	  3608	  3610	  3632	  3634
	  3657	  3659	  3680	  3682	  3707	  3710	  3745	  3753	  3755	  3757	  3793	  3796	  3813	  3815
	  3828	  3846	  3849	  3880	  3883	  3885	  3887	  3899	  3901	  3912	  3918	  3962	  3966	  4011
	  4016	  4058	  4061	  4090	  4093	  4100	  4102	  4119	  4122	  4157	  4159	  4253	  4255	  4334
	  4336	  4347	  4349	  4354	  4356	  4369	  4371	  4390	  4392	  4402	  4404	  4408	  4410	  4414
	  4416	  4424	  4426	  4433	  4435	  4441	  4443	  4500	  4502	  4548	  4550	  4556	  4558	  4584
	  4586	  4683	  4685	  4698	  4735	  4768	  4770	  4778	  4780	  4791	  4793	  4810	  4812	  4818
	  4820
SIXBTZ	   308#	  1747	  1753	  1755	  1779	  1804	  1830	  2168	  2171	  2176	  2186	  2325
SWITCH	   314#
TIOE	   829#
TIOEB	   835#
TION	   830#
TIONB	   836#
TTALTM	   235#
TTICHR	   228#
TTICLR	   238#
TTICNV	   233#
TTIDEC	   232#
TTINO	   230#
TTIOCT	   231#
TTIYES	   229#
TTLOOK	   234#
TTSIXB	   236#
TTYINP	   237#
WRAPR	   799#
WRCSB	   819#
WRCSTM	   821#
WREBR	   808#                                                                                                            SEQ 0204
WRHSB	   824#
WRINT	   823#
WRIO	   832#
WRIOB	   838#
WRPI	   801#
WRPUR	   820#
WRSPB	   818#
WRTIM	   822#
WRUBR	   806#	  2234	  2237	  2240	  2243	  2246	  2249	  2252	  2255
$MDSXB	    57#

ADD	  1396	  1777	  2498	  2524	  2728	  2789	  3010	  3630	  3700	  4518	  4658
ADDI	  1450	  1460	  1535	  2557	  2566	  2573	  2689	  2725	  2785	  2796	  2809	  2837	  2844	  2860     SEQ 0205
	  2910	  2932	  2934	  3007	  3021	  3026	  3893	  3907	  4144
ANDI	  1531	  1632	  1771	  1961	  2097	  2102	  2107	  2112	  2401	  2419	  2421	  2646	  2657	  2969
	  3295	  3307	  3347	  3359	  3477	  3508	  3864	  4095	  4376	  4566	  4602	  4649
AOBJN	  1398	  2265	  2500	  2526	  2729	  3182
AOJA	  2671	  2676	  2686	  2693	  3949	  4612
AOS	   951	  1699	  1732	  1901	  1995	  2309	  2406	  2433	  2448	  2660	  2823	  2956	  3248	  3249
	  3250	  3251	  3297	  3298	  3309	  3310	  3317	  3318	  3332	  3333	  3339	  3340	  3415	  3482
	  3522	  3573	  3627	  3648	  3737	  4115	  4164	  4173	  4365	  4406	  4412	  4429	  4621	  4693
	  4696	  4733
ASCII	  1052	  1054	  1057	  1058	  1059	  1060	  1062	  1063	  1064	  1065	  1066	  1067	  1069	  1070
	  1071	  2071	  2460	  4198	  4234
ASCIZ	  1282	  1377	  3223	  3841	  4844	  4847	  4849	  4851	  4853	  4855	  4857	  4858
BLKI	  1943	  2095
BLOCK	  1020	  1080	  1083	  1089	  1092	  1098	  5122	  5125	  5133	  5134	  5135
BLT	  1300	  1934	  1986	  1998	  2020	  2279	  2286	  2358	  2425	  2483	  2712	  2775	  2852	  2920
	  2933
BYTE	  1068	  4800	  4801	  4802	  4803	  4804	  4805	  4806	  4808
CAIE	  1957	  1962	  2402	  2554	  2658	  2983	  2993	  3145	  3151	  3233	  3427	  3430	  3441	  3486
	  3514	  3559	  3675	  4169	  4196	  4275	  4281	  4327	  4567	  4607	  4723	  4730	  4764
CAIG	  1424	  1429	  2560	  2770	  2948	  4814
CAIL	  1426	  1431	  1526	  1918	  2571	  2636	  2674	  2718	  2757	  2873	  2875	  3509	  3622	  3723
	  3727	  4186
CAILE	  1436	  1774	  1785	  1810	  2846	  2891	  2911	  3510	  3661	  3662	  3663	  3667	  3668	  3669
	  3724	  3726	  4622
CAIN	  1522	  1633	  1635	  1637	  1787	  1789	  1791	  1812	  1814	  1816	  2799	  3013	  3030	  3101
	  3108	  3110	  3112	  3215	  3226	  3228	  3230	  3234	  3242	  3244	  3428	  3435	  3437	  3439
	  3478	  3480	  3484	  3525	  3560	  3614	  3616	  3618	  3620	  3638	  3719	  3721	  3866	  3869
	  3871	  3873	  3875	  3938	  3940	  3942	  4166	  4176	  4191	  4269	  4272	  4276	  4278	  4291
	  4297	  4301	  4306	  4321	  4324	  4479	  4488	  4490	  4492	  4510	  4512	  4514	  4603	  4605
	  4611	  4615	  4617	  4636	  4638	  4654	  4672	  4761
CAM	  2627	  2628	  2629	  2630	  2666	  2667	  2668	  2669	  4565	  4600
CAME	  1488	  1504	  1643	  1647	  1703	  1708	  2071	  2223	  2460	  4468
CAMG	  2609	  2782	  2885	  4695
CAMGE	  2834
CAML	  2838	  2925
CAMN	  1567	  1569	  1642	  1707	  1758	  1849	  1935	  2567	  2977	  3568	  3570	  4244
CONI	  1508	  1509	  1952	  1955	  1975	  2220	  2221	  2300	  2301	  2311	  2312	  2323	  2324	  2353
	  2603	  2605	  2616	  3346	  3358
CONO	  1309	  1310	  1954	  1978	  2185	  2232	  2284	  2384	  2385	  2386	  2394	  2395	  2493	  2604
	  2619	  2626	  2634	  2644	  2647	  2650	  3349	  3361
CONSO	  2354	  2404	  2631
CONSZ	  2670
DATAI	  1960	  2352
DATAO	  1959	  2416
DEFINE	     7	    57	   131	   299	   302	   308	   382	   393
DIV	  4137
END	  5139
EXCH	  1456
EXP	  3582	  3583	  3584
HLL	  3127
HLRZ	  1315	  1428	  1454	  1748	  1780	  1847	  1852	  2083	  2089	  2400	  2420	  2602	  2656	  2982
	  4038	  4143
HRL	  2724	  2888	  2895                                                                                             SEQ 0206
HRLI	  3166	  4576
HRLM	  4138
HRLS	  2931
HRLZM	  3122
HRR	  3054
HRRZ	  1423	  1452	  1520	  1645	  1701	  1743	  1756	  1761	  1805	  1855	  2086	  2092	  2207	  2601
	  2645	  2947	  3025	  3452	  3460	  3931	  4046	  4185
IDIVI	  3009	  3017
IDPB	  2795	  2859	  3734	  4194	  4203	  4229	  4231	  4233	  4364	  4520	  4524	  4526	  4534	  4620
	  4630	  4632	  4816
IFDEF	   403	   914	   915	   916	   917	  5124	  5137
IFNDEF	   354	   355	   365	   914	   915	   916	   917	   996
ILDB	  4294	  4509	  4578	  4635	  4648	  4653
IMULI	  2720	  2808	  3665	  3698
IOR	  1533
JFCL	   954	   955	   956	   957	   958	   959	   960	   961	   962	   963	   964	   965	  2332	  2501
JRST	   204	   205	   206	   207	   876	   877	   879	   881	   883	   885	   887	   890	   892	   893
	   946	  1202	  1203	  1204	  1205	  1219	  1220	  1221	  1222	  1244	  1245	  1246	  1247	  1272
	  1278	  1280	  1308	  1317	  1323	  1325	  1352	  1363	  1368	  1372	  1376	  1381	  1408	  1425
	  1427	  1430	  1432	  1437	  1461	  1463	  1464	  1465	  1466	  1514	  1523	  1525	  1527	  1536
	  1568	  1570	  1572	  1573	  1575	  1579	  1580	  1582	  1583	  1585	  1586	  1592	  1593	  1597
	  1604	  1625	  1628	  1634	  1636	  1638	  1640	  1644	  1648	  1653	  1656	  1668	  1669	  1704
	  1706	  1709	  1711	  1721	  1725	  1728	  1746	  1754	  1759	  1783	  1786	  1793	  1808	  1811
	  1818	  1832	  1846	  1850	  1861	  1876	  1879	  1882	  1888	  1893	  1916	  1919	  1926	  1940
	  1972	  1989	  1992	  2003	  2010	  2012	  2023	  2024	  2041	  2044	  2046	  2063	  2066	  2072
	  2075	  2080	  2149	  2151	  2153	  2166	  2169	  2172	  2177	  2226	  2259	  2260	  2302	  2316
	  2326	  2355	  2363	  2370	  2372	  2374	  2375	  2389	  2403	  2405	  2411	  2412	  2426	  2441
	  2458	  2462	  2486	  2491	  2492	  2504	  2518	  2532	  2535	  2537	  2541	  2545	  2562	  2572
	  2580	  2586	  2613	  2632	  2637	  2659	  2675	  2730	  2755	  2758	  2759	  2771	  2797	  2800
	  2802	  2835	  2839	  2842	  2861	  2874	  2876	  2889	  2892	  2893	  2896	  2907	  2912	  2921
	  2926	  2927	  2935	  2949	  2953	  2954	  2960	  2964	  2968	  2971	  2981	  2984	  2999	  3014
	  3022	  3031	  3049	  3051	  3052	  3058	  3079	  3089	  3091	  3093	  3100	  3102	  3106	  3109
	  3111	  3113	  3115	  3117	  3121	  3126	  3133	  3135	  3138	  3143	  3146	  3149	  3152	  3156
	  3176	  3177	  3178	  3216	  3220	  3221	  3227	  3229	  3231	  3235	  3243	  3245	  3284	  3287
	  3292	  3299	  3304	  3311	  3315	  3319	  3321	  3323	  3327	  3330	  3334	  3337	  3341	  3352
	  3353	  3364	  3365	  3373	  3377	  3379	  3381	  3390	  3401	  3414	  3429	  3431	  3433	  3436
	  3438	  3440	  3479	  3481	  3485	  3487	  3491	  3498	  3511	  3515	  3519	  3526	  3529	  3532
	  3537	  3538	  3549	  3558	  3561	  3562	  3566	  3569	  3571	  3572	  3580	  3593	  3595	  3613
	  3615	  3617	  3619	  3621	  3624	  3631	  3637	  3639	  3671	  3673	  3676	  3678	  3687	  3689
	  3694	  3703	  3718	  3720	  3722	  3725	  3728	  3729	  3733	  3735	  3791	  3801	  3806	  3809
	  3811	  3832	  3845	  3867	  3870	  3872	  3874	  3876	  3878	  3922	  3939	  3941	  3946	  3952
	  3954	  3970	  3983	  3998	  4010	  4023	  4027	  4032	  4040	  4044	  4048	  4050	  4057	  4073
	  4077	  4081	  4087	  4088	  4098	  4117	  4118	  4131	  4149	  4154	  4170	  4180	  4183	  4187
	  4190	  4192	  4197	  4210	  4213	  4216	  4222	  4225	  4227	  4237	  4245	  4261	  4266	  4270
	  4273	  4277	  4279	  4282	  4289	  4299	  4300	  4303	  4304	  4312	  4318	  4322	  4325	  4328
	  4339	  4341	  4343	  4345	  4352	  4367	  4379	  4381	  4400	  4431	  4439	  4453	  4460	  4461
	  4469	  4472	  4475	  4480	  4483	  4486	  4489	  4491	  4493	  4496	  4499	  4511	  4513	  4515
	  4521	  4547	  4554	  4564	  4568	  4569	  4581	  4583	  4593	  4596	  4599	  4604	  4606	  4608
	  4610	  4616	  4618	  4623	  4625	  4628	  4637	  4639	  4641	  4655	  4659	  4662	  4664	  4667
	  4670	  4673	  4675	  4678	  4681	  4714	  4715	  4720	  4724	  4727	  4731	  4734	  4751	  4752
	  4756	  4759	  4762	  4765	  4767	  4776	  4789	  4798	  5120
JSP	   213	  1302	  1361	  2334	  2336	  4069	  4075	  4097	  4113	  4128	  4145	  4153	  4246	  4340
	  4344                                                                                                             SEQ 0207
JSR	    92	    93	    95	    96	    98	    99	   101	   102	   104	   105	  1802	  1827	  1837	  2140
	  2235	  2238	  2241	  2244	  2247	  2250	  2253	  2256	  4214	  4226	  4428	  4437	  4445	  4504
	  4552	  4560	  4588	  4706	  4741	  4772	  4784	  4795
JUMPE	  1521	  1749	  1858	  2882	  2916	  2987	  3000	  3011	  3029	  3141	  3154	  3172	  3497	  3868
	  3989	  3994	  4009	  4112	  4140	  4295	  4516	  4579	  4613	  4614	  4656
JUMPGE	  2709	  3980	  4126	  4360
JUMPL	  2833	  2880	  2929
JUMPN	  1772	  1781	  1806	  2778	  2883	  3895	  3909	  3945	  3951	  3982	  3997	  4026	  4031	  4039
	  4043	  4047	  4450	  4477
LALL	     8	  1496	  1515	  1764	  1795	  1820	  1839	  2127	  2178	  2187	  2214	  2294	  2317	  2327
	  2376	  2428	  2451	  3040	  3085	  3157	  3254
LDB	  4538	  4541	  4544	  4627
LIST	     7	   365	   403	   863	   996
LIT	  4867
LOC	    14	   866	  1190	  1200	  1207	  1213	  1238
LSH	  1435	  1447	  1530	  1532	  1631	  1776	  2106	  2111	  2788	  2790	  2845	  2854	  2878	  3103
	  3181	  3217	  3237	  3564	  3664	  3666	  3690	  4024	  4135	  4647
LSHC	  1449	  1534	  3691	  3699	  3892	  3906	  3993	  4134
MAP	  2962
MOVE	  1299	  1319	  1323	  1325	  1327	  1388	  1393	  1406	  1408	  1434	  1438	  1441	  1446	  1487
	  1493	  1503	  1506	  1511	  1529	  1566	  1577	  1630	  1681	  1682	  1683	  1684	  1690	  1730
	  1737	  1744	  1751	  1757	  1769	  1788	  1790	  1792	  1794	  1801	  1813	  1815	  1817	  1819
	  1826	  1833	  1836	  1844	  1848	  1859	  1862	  1865	  1880	  1917	  1920	  1933	  1940	  1966
	  1985	  2019	  2036	  2058	  2070	  2096	  2100	  2105	  2110	  2115	  2140	  2149	  2151	  2159
	  2163	  2174	  2183	  2197	  2200	  2203	  2211	  2222	  2225	  2282	  2287	  2308	  2314	  2334
	  2336	  2357	  2359	  2361	  2363	  2368	  2390	  2409	  2414	  2417	  2418	  2424	  2443	  2459
	  2482	  2488	  2495	  2511	  2513	  2515	  2521	  2529	  2539	  2553	  2563	  2564	  2565	  2577
	  2648	  2651	  2652	  2653	  2695	  2711	  2715	  2756	  2765	  2767	  2774	  2777	  2779	  2781
	  2813	  2814	  2815	  2816	  2817	  2818	  2829	  2832	  2836	  2851	  2853	  2877	  2879	  2881
	  2884	  2887	  2894	  2913	  2919	  2924	  2928	  2937	  2938	  2950	  2957	  2959	  3001	  3003
	  3006	  3016	  3034	  3057	  3059	  3073	  3081	  3095	  3134	  3137	  3140	  3153	  3165	  3171
	  3184	  3281	  3290	  3302	  3350	  3362	  3370	  3411	  3417	  3464	  3507	  3517	  3521	  3527
	  3530	  3553	  3563	  3574	  3575	  3576	  3601	  3642	  3643	  3644	  3647	  3652	  3653	  3654
	  3693	  3702	  3714	  3739	  3740	  3741	  3779	  3819	  3820	  3821	  3822	  3823	  3862	  3890
	  3904	  3934	  3979	  4021	  4029	  4034	  4035	  4054	  4063	  4078	  4096	  4108	  4133	  4152
	  4163	  4198	  4205	  4208	  4218	  4234	  4243	  4258	  4351	  4384	  4385	  4386	  4455	  4464
	  4505	  4528	  4531	  4561	  4589	  4634	  4694	  4823	  4828
MOVEI	  1266	  1268	  1328	  1369	  1490	  1626	  1734	  1747	  1753	  1755	  1773	  1779	  1804	  1830
	  1877	  1950	  2009	  2160	  2168	  2171	  2176	  2186	  2325	  2338	  2381	  2487	  2512	  2528
	  2607	  2612	  2847	  2978	  3147	  3167	  3455	  3467	  3489	  3534	  3548	  3550	  3592	  3594
	  3596	  3684	  3715	  3775	  3785	  3841	  3891	  3905	  3933	  3943	  3944	  3981	  3991	  3996
	  4019	  4042	  4056	  4067	  4074	  4079	  4083	  4084	  4107	  4127	  4230	  4232	  4284	  4286
	  4332	  4363	  4430	  4438	  4448	  4463	  4466	  4485	  4495	  4498	  4523	  4530	  4533	  4553
	  4571	  4573	  4645	  4666	  4669	  4674	  4677	  4680	  4688	  4710	  4718	  4725	  4743	  4747
	  4754	  4774	  4787	  4796
MOVEM	  1267	  1269	  1298	  1316	  1320	  1324	  1326	  1370	  1391	  1397	  1407	  1409	  1422	  1440
	  1442	  1486	  1507	  1627	  1675	  1676	  1677	  1678	  1691	  1717	  1718	  1719	  1778	  1803
	  1828	  1838	  1857	  1864	  1878	  1941	  1951	  2141	  2142	  2143	  2144	  2145	  2146	  2147
	  2150	  2152	  2158	  2219	  2299	  2310	  2322	  2333	  2335	  2337	  2339	  2340	  2341	  2342
	  2343	  2344	  2345	  2346	  2360	  2362	  2364	  2382	  2423	  2499	  2502	  2525	  2556	  2570
	  2574	  2578	  2597	  2598	  2599	  2608	  2698	  2708	  2727	  2746	  2747	  2748	  2749	  2750
	  2848	  2849	  2904	  2905	  2946	  3024	  3028	  3055	  3104	  3128	  3142	  3238	  3345	  3357
	  3368	  3410	  3416	  3476	  3513	  3535	  3551	  3552	  3598	  3599	  3600	  3651	  3712	  3713     SEQ 0208
	  3768	  3776	  3780	  3786	  3835	  3836	  3837	  3838	  3839	  3851	  3852	  3853	  3854	  3855
	  4018	  4020	  4052	  4055	  4071	  4106	  4161	  4162	  4199	  4206	  4235	  4338	  4342	  4373
	  4374	  4375	  4507	  4643
MOVN	  3646	  3985	  4129	  4361	  4536	  4827
MOVNI	  3767
MOVS	  1997	  2278	  2285
MOVSI	  1392	  2263	  2332	  2494	  2501	  2520	  2726
MOVSS	  2101
NOSYM	    23
OPDEF	    92	    93	    95	    96	    98	    99	   101	   102	   104	   105	   107	   109	   111	   113
	   115	   117	   119	   120	   122	   124	   126	   128	   200	   201	   202	   203	   204	   205
	   206	   207	   213	   219	   220	   228	   229	   230	   231	   232	   233	   234	   235	   236
	   237	   238	   241	   242	   243	   244	   245	   246	   247	   248	   249	   250	   251	   252
	   253	   254	   255	   256	   257	   258	   259	   260	   261	   262	   263	   264	   265	   266
	   267	   268	   269	   270	   271	   272	   273	   274	   275	   276	   277	   278	   279	   280
	   281	   282	   283	   284	   285	   286	   287	   288	   289	   290	   291	   292	   293	   294
	   295	   297	   314	   319	   320	   324	   325	   326	   332	   333	   339	   340	   341	   342
	   343	   344	   345	   351	   352	   359	   360	   361	   362	   372	   373	   374	   375	   376
	   798	   799	   800	   801	   802	   804	   805	   806	   807	   808	   810	   811	   812	   813
	   814	   815	   816	   818	   819	   820	   821	   822	   823	   824	   829	   830	   831	   832
	   833	   834	   835	   836	   837	   838	   839	   840
OR	  2422	  2970	  3107	  3179	  3241	  3567	  4650
POINT	  2756	  3714	  3779	  4205	  4218	  4244	  4258	  4505	  4528	  4538	  4541	  4544	  4576	  4589
	  4627	  4634
POP	   203
POPJ	   201
PUSH	   202	  1329	  1330	  1491	  2161
PUSHJ	   107	   109	   111	   113	   115	   117	   119	   120	   122	   124	   126	   128	   200
ROT	  1770	  3863	  4064
ROTC	  3937	  4068	  4111
SALL	  1470	  1500	  1726	  1768	  1799	  1824	  2078	  2157	  2182	  2192	  2231	  2307	  2321	  2351
	  2432	  2975	  3065	  3086	  3161
SETCMM	  4288	  4609
SETO	  2011	  2909	  2986	  3921	  3969	  3995
SETOB	  2976
SETOM	  1270	  1275	  1301	  1338	  1348	  1364	  1366	  1485	  1641	  1692	  1763	  1784	  1809	  1892
	  1937	  1938	  1945	  1994	  2365	  2579	  2582	  2801	  3068	  3069	  3283	  3626	  3672	  3677
	  3766	  3798	  3799	  3803	  3834	  3840	  4085	  4086	  4104	  4124	  4236	  4292	  4740
SETZ	  2013	  2165	  2831	  2923	  2979	  3168	  3389	  3925	  3936	  3973	  3987	  3992	  4110	  4202
	  4446	  4471	  4506	  4525	  4631	  4644
SETZB	  2751	  2996	  3602	  3988	  4590
SETZM	  1274	  1276	  1277	  1304	  1306	  1321	  1322	  1349	  1350	  1351	  1365	  1410	  1513	  1596
	  1622	  1651	  1697	  1698	  1723	  1782	  1807	  1900	  1930	  1931	  1932	  1942	  1984	  2002
	  2264	  2266	  2281	  2435	  2436	  2439	  2481	  2530	  2551	  2710	  2773	  2850	  2918	  2930
	  3066	  3116	  3276	  3277	  3278	  3279	  3280	  3294	  3306	  3488	  3516	  3603	  3604	  3605
	  3606	  3685	  3696	  3697	  3759	  3760	  3761	  3762	  3763	  3764	  3765	  3769	  3770	  3771
	  3772	  3773	  3778	  3800	  3804	  3817	  3824	  3861	  4080	  4167	  4174	  4177	  4200	  4247
	  4330	  4331	  4687	  4702	  4708	  4717	  4722	  4729	  4745	  4786	  4822
SIXBIT	    47	    48	  1081	  1082	  1090	  1091	  1224	  1249	  1472	  1492	  1510	  1729	  1733	  1736
	  1747	  1753	  1755	  1758	  1779	  1804	  1830	  1849	  1925	  2033	  2057	  2082	  2088	  2099
	  2104	  2109	  2114	  2122	  2133	  2162	  2168	  2171	  2176	  2186	  2196	  2280	  2292	  2313
	  2325	  2442	  2585	  2990	  2991	  2994	  3033	  3080	  3094	  3098	  3119	  3124	  3190	  3191
	  3192	  3193	  3195	  3196	  3197	  3198	  3199	  3200	  3201	  3202	  3203	  3204	  3205	  3451     SEQ 0209
	  3459	  3463	  3556	  4825
SKIPE	  1307	  1345	  1367	  1371	  1375	  1420	  1483	  1501	  1694	  1740	  1921	  1947	  1968	  2194
	  2457	  2534	  2536	  2810	  3048	  3078	  3088	  3132	  3326	  3371	  3376	  3443	  3446	  3645
	  3670	  3686	  3789	  3831	  4179	  4189	  4260	  4701	  4738
SKIPG	  1591	  4215	  4378	  4782
SKIPGE	  1724	  2440	  2998	  3053	  3076	  3090	  3787
SKIPL	  1652	  1915	  2040	  2062	  2079	  2980	  3536	  3805	  4592	  4703
SKIPLE	  3857	  4224
SKIPN	  1305	  1389	  1394	  1705	  1727	  1831	  1890	  1970	  1988	  2015	  2017	  2258	  2388	  2391
	  2447	  2485	  2489	  2496	  2503	  2754	  2819	  2841	  2906	  2951	  2985	  2989	  3050	  3092
	  3219	  4022	  4072	  4076	  4116	  4148	  4172	  4212	  4298	  4302	  4309	  4314
SOJA	  2568	  2575	  2690
SOJG	  4001	  4366	  4651
SOJGE	  2517	  4758
SOJL	  2794	  2858	  4151
SOJLE	  3412
SOJN	  3692	  3701	  3948	  4065	  4070	  4114	  4474
SOS	  2037	  2059	  2204	  2208	  2434	  4139	  4358
SOSLE	  1667
SUB	  1655	  2784	  2843	  3008	  3218
SUBI	  1439	  1459	  1477	  1646	  1702	  2552	  2559	  2635	  2673	  2776	  2780	  3512	  3629	  4359
SUBTTL	    24	   129	   164	   366	   404	   864	  1192	  1400	  1605	  1927	  1980	  2025	  2076	  2126
	  2427	  2463	  3041	  3255	  3539	  3585	  3705	  3743	  4155	  4388	  4860
TDNE	  3688
TDO	  1395	  2497	  2523
TITLE	    12
TLNE	  1362	  1453	  1571	  1578	  1581	  1584	  1720	  1745	  1845	  1860	  1907	  2043	  2438	  2540
	  2752	  2963	  3071	  3074	  3282	  4182	  4209
TLNN	  1303	  1451	  1650	  1710	  1881	  1899	  1967	  1971	  2065	  2392	  2490	  2952	  3518	  3528
	  3808
TLO	  2811
TLZ	  2917	  2965	  4030
TRC	  3731
TRNE	  1524	  1944	  2371	  2373	  2649	  2786	  2966	  2967	  3351	  3363	  3732	  4465	  4532	  4661
TRNN	  2369	  2410	  3291	  3303
TRO	  1390	  1977	  2617	  2721	  2723	  2791	  2793	  2855	  2857	  3344	  3348	  3356	  3360	  4815
TRZ	  1953	  1956	  1976	  2618	  2830	  3027	  4025
VAR	  5130
XCT	  1421	  1444	  1480	  1502	  1695	  1741	  1866	  1922	  2175	  2184	  2212	  2283	  2288	  3444
	  3447	  3623	  3628	  3636
XLIST	     6	   364	   402	   995
XOR	  1834
Z	  5118	  5119