Google
 

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




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

	PRODUCT CODE:		AH-7144O-DD

	DIAGNOSTIC CODE:	DDQDC - DIAMON

	PRODUCT NAME:		DDQDCO0 DECSYSTEM DIAGNOSTIC MONITOR

	VERSION:		0.17

	DATE RELEASED:		APRIL 1980

	AUTHOR:			JOHN R. KIRCHOFF

	MAINTAINED BY:		LARGE SYSTEMS DIAGNOSTICS

                           COPYRIGHT (C) 1975, 1980

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

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

1.0	ABSTRACT

2.0	REQUIREMENTS

2.1	EQUIPMENT

2.2	STORAGE

2.3	PRELIMINARY PROGRAMS

3.0	PROGRAM PROCEDURES

3.1	LOADING PROCEDURE

3.2	STARTING PROCEDURE

3.3	OPERATING PROCEDURE

3.4	LOAD DEVICES

3.5	DIAGNOSTIC MONITOR SWITCHES

3.6	EXPANDED OPERATING PROCEDURES

4.0	ROUTINE DESCRIPTIONS

5.0	COMMAND LIST FORMAT

6.0	ERRORS

7.0	ERROR RECOVERY

8.0	RESTRICTIONS

9.0	DEVICE COMMAND LIST

10.0	LISTING
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 3                                                                     SEQ 0003

1.0	ABSTRACT

	THE DECSYSTEM DIAGNOSTIC MONITOR IS AN EXEC OR USER MODE
	PROGRAM WHICH WILL CALL FROM THE SELECTED LOAD DEVICE IN EXEC
	MODE AND THE DISK SYSTEM IN USER MODE AND EXECUTE THE
	PDP-10 DIAGNOSTIC PROGRAMS EITHER SINGLY OR AUTOMATICALLY.
	THE MONITOR IS INTENDED TO ALLOW RAPID CHECKOUT OF THE
	COMPUTER SYSTEM AND TO ISOLATE HARDWARE PROBLEMS IN THE
	QUICKEST POSSIBLE TIME.  THE MONITOR WILL ALSO PROVIDE THE
	SEQUENCING AND CONTROL NEEDED FOR THE DIAGNOSTIC PROGRAMS
	SO THAT ACCEPTANCE TESTS, START-UP RELIABILITY TESTS,
	AND/OR UNATTENDED OVERNIGHT TESTS MAY BE RUN.

	THE DECSYSTEM SUBROUTINE PROGRAM AND DDT ARE AUTOMATICALLY
	LOADED ON SYSTEM STARTUP OR DEVICE SPECIFICATION IF THEY ARE
	NOT ALREADY RESIDENT IN THE PDP-10 MEMORY.

	THE KL10 AND/OR KI10 DIAGNOSTIC MONITOR SPECIAL ROUTINES
	OPERATE AS PART OF THE DIAGNOSTIC MONITOR TO PROVIDE
	ADDITIONAL KL10 AND/OR KI10 FEATURES.

	THESE FEATURES ARE:

	KL10 & KI10 - SPECIAL USER MODE
	KI10 - MARGIN OPERATION.

	PROGRAM CONTAINS ROUTINES FOR:
	MARGINNING
	USER PAGE MAP SETUP
	USER MODE CONTROL
	TRAPPED I/O PROCESSING
	ADDITIONAL CONTROL SEQUENCING.
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 4                                                                     SEQ 0004

2.0	REQUIREMENTS

2.1	EQUIPMENT

	A DECSYSTEM PDP-10 KL10, KI10 OR KA10 PROCESSOR
	MINIMUM OF 32K OF MEMORY.
	CONSOLE PROCESSOR (KL10)
	CONSOLE TELETYPE
	LOAD DEVICE; DISK PACK, DECTAPE, OR CONSOLE LOAD DEVICE (KL10)

2.2	STORAGE

	THE MAXIMUM MEMORY SIZE IS A FUNCTION OF THE PROGRAMS BEING
	EXECUTED.  THE MONITOR RESIDES FROM LOCATION 20000 TO 27770.

2.3	PRELIMINARY PROGRAMS

	THE MONITOR ASSUMES THAT BASIC INSTRUCTIONS AND THE SELECTED
	LOAD DEVICE ARE OPERATIONAL.
	IF THE MONITOR FAILS TO OPERATE USE THE DIAGNOSTIC PROGRAMS
	INDIVIDUALLY TO ISOLATE THE PROBLEM.

3.0	PROGRAM PROCEDURES

3.1	LOADING PROCEDURE

	DISK PACK - LOAD WITH 'BOOTS'
	DECTAPE - LOAD WITH 'DTBOOT'
	KL10 - LOAD VIA CONSOLE PROCESSOR
	USER - "RUN DIAMON"
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 5                                                                     SEQ 0005

3.2	STARTING PROCEDURE

	A.  STARTING ADDRESS FOR DIAGNOSTIC MONITOR = 20000

	B.  STARTING ADDRESS FOR RESTART AFTER ERROR = 20001

	C.  STARTING ADDRESS FOR CURRENT PROGRAM TITLE = 20002

	D.  STARTING ADDRESS TO RESTART CURRENT PROGRAM = 20003

	SET THE LEFT HAND CONSOLE DATA SWITCHES AS WOULD BE APPROPRIATE
	FOR THE DIAGNOSTIC PROGRAMS TO BE RUN.  SETTINGS TO BE
	SELECTED WOULD BE:

		PRINT ON LINE PRINTER?
		RING TTY BELL ON ERROR?
		SCOPE LOOP ON ERROR?
		ETC.

3.3	OPERATING PROCEDURE

	A.  AFTER THE DIAGNOSTIC MONITOR IS STARTED IT WILL TYPE
	    THE FOLLOWING MESSAGE:

	* DIAMON - DECSYSTEM DIAGNOSTIC MONITOR *

	B.  NEXT YOU ARE REQUESTED TO SELECT THE LOAD DEVICE TO BE USED.
		IN USER MODE, THE DISK IS AUTOMATICALLY SELECTED AND
		IS THE ONLY ALLOWED LOAD DEVICE.

	DEV:T,K,D,V,P -

	C.  AFTER SELECTION OF THE LOAD DEVICE "DIAMON" WILL
	    AUTOMATICALLY LOAD "SUBRTN" AND "KLDDT".
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 6                                                                     SEQ 0006

	D.  IF YOU REQUIRE HELP, TYPE HELP<CR>.
	    THE FOLLOWING MESSAGE WILL THEN BE PRINTED.

	NORMAL START = 20000
	RESTART/ABORT = 20001
	PRINT TEST TITLE = 20002
	RESTART CURR TEST = 20003

	DEVICES;
	T=PAPER TAPE, K=KLDCP, D=DTA, V=11DTA, P=DISK PACK
	COMMANDS;
	STD=START DIAGNOSTIC
	STM=REINITIALIZE START
	STL=START LOADER
	START=START DIAGNOSTIC
	SFSTRT=SPECIAL FEATURE START
	PFSTRT=POWER FAIL START
	REE=REENTER
	DDT=DDT
	START1=SPECIAL START 1
	START2=SPECIAL START 2
	START3=SPECIAL START 3
	START4=SPECIAL START 4
	START5=SPECIAL START 5

	R=RESELECT, X=XPN, I=INTERNAL, T=TTY, D=DEVICE
	S=SINGLE, F=DIR, L=LIST, G=GO

	E.  FOLLOWING THIS YOU MAY SELECT AND
	    RUN YOUR PROGRAMS.

	DIAMON CMD -

	ALL COMMANDS END WITH A (CR).

	COMMANDS ARE AS LISTED ABOVE PLUS IF A SINGLE PROGRAM LOAD
	IS REQUIRED, THE FILE.EXT OF THE PROGRAM MAY BE TYPED TO
	THE "CMD - " QUESTION.
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 7                                                                     SEQ 0007

	THE DIAGNOSTIC MONITOR OPERATES ON A COMMAND LIST OF PROGRAMS
	WHICH IT WILL EXECUTE.  THIS LIST MAY BE READ IN FROM THE
	SELECTED LOAD DEVICE, TYPED IN FROM THE TELETYPE OR PREVIOUSLY
	READ/TYPED IN.

	1.  IF THE COMMAND LIST IS TO BE TYPED IN, TYPE "T".  THE
	    MONITOR WILL NOW ACCEPT TYPE-IN FROM THE KEYBOARD.
	    THE COMMAND LIST FORMAT IS GIVEN IN 4.0.

	2.  IF THE COMMAND LIST IS TO BE READ FROM THE LOAD DEVICE,
	    TYPE "D".

	3.  TO LOAD AND RUN A SINGLE PROGRAM, TYPE "S".

	    THE SPECIFIED PROGRAM WILL BE LOADED AND RUN THE NUMBER OF
	    OF ITERATIONS AS SPECIFIED IN THE PROGRAM BY "ITERAT".

	    TO CONTINUE OPERATION OF THE SAME PROGRAM AFTER IT RETURNS
	    TO "DIAMON", TYPE "G".

	4.  THE COMMAND LIST REMAINS IN CORE SO THAT IF THE MONITOR IS
	    RESTARTED THE COMMAND LIST DOES NOT HAVE TO BE READ IN AGAIN
	    UNLESS A NEW COMMAND LIST OR SINGLE PROGRAM IS SELECTED.

	    TO USE THE SAME COMMAND LIST, TYPE "I".

	THE DIAGNOSTIC MONITOR WILL NOW READ IN AND EXECUTE THE FIRST
	PROGRAM ON THE COMMAND LIST.  THE PROGRAM WILL BE ITERATED THE
	REQUESTED NUMBER OF TIMES AND CONTROL WILL THEN REVERT TO THE
	MONITOR.  THE MONITOR WILL THEN PROCEED TO THE NEXT PROGRAM
	ON THE LIST UNTIL ALL PROGRAMS REQUESTED HAVE BEEN EXECUTED.
	WHEN THE FINAL PROGRAM ON THE COMMAND LIST HAS BEEN EXECUTED,
	THE PASS COUNTER WILL BE PRINTED AND THEN THE MONITOR WILL
	RESTART WITH THE FIRST PROGRAM AGAIN.

	FOR EXAMPLE:

	DIAMON PASS 000001
	DIAMON PASS 000002
	ETC.
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 8                                                                     SEQ 0008


	WHEN SELECTING A SINGLE PROGRAM THE:

	"FILE.EXT -"

	QUESTION MAYBE ANSWERED WITH ONLY THE FILE NAME AS THE EXTENSION
	WILL DEFAULT TO ".A10" OR ".SAV" UNLESS THE CONSOLE LOAD
	DEVICE IS SELECTED AND THEN THE DEFAULT IS ".A10".

	5.  TO START THE PROGRAM JUST LOADED IF THE "FILE.EXT" ENDED
	    WITH A ALTMODE, OR TO RESTART THE PROGRAM, TYPE "G".

	6.  TO LIST A FILE FROM THE SELECTED LOAD DEVICE, TYPE "L".

	7.  TO OBTAIN A DIRECTORY OF THE SELECTED LOAD DEVICE, TYPE "F".

3.4	LOAD DEVICES

	A.  PAPER TAPE

	B.  KLDCP - KL10 ONLY, USE KLDCP SELECTED DEVICE

	C.  D - PDP-10 FORMAT DECTAPE

	D.  V - PDP-11 FORMAT DECTAPE

	E.  P - DISK PACK, RP02/3/4/5/6 ON RP10, RH10 OR RH20.
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 9                                                                     SEQ 0009

	WHEN THE DISK PACK IS SELECTED AS THE LOAD DEVICE THE MONITOR
	OPERATES FROM THE "DISK:[P,PN] THAT IS SPECIFIED.
	THE DEFAULT [P,PN] (PROJECT,PROGRAMMER NUMBER) IS 6,10.
	DISK PACK SEARCH WILL BE DONE FROM 'KLAD' & 'DSKA' TO
	'DSKO' IF NO DISK IS SPECIFIED.
	TO USE THE DEFAULTS TYPE A (CR).

	DEFAULTS:

	DISK:	'KLAD' & 'DSKA' TO 'DSKO'

	[P,PN]	6,10

	WHEN THE DECTAPE IS SELECTED AS THE LOAD DEVICE THE MONITOR
	WILL REQUEST THE UNIT NUMBER TO BE USED.  THE OPERATOR SHOULD
	RESPOND WITH A DIGIT 0-7 INDICATING WHICH DECTAPE UNIT
	CONTAINS THE PROGRAMS TO BE EXECUTED.  WHEN THE UNIT DIGIT
	HAS BEEN TYPED, THE MONITOR WILL READ THE DIRECTORY FOR THAT
	UNIT.

	TO OPERATE IN DECTAPE SEARCH MODE, RESPOND TO THE UNIT SELECTION
	QUESTION WITH AN "S".  THIS ALLOWS THE MONITOR TO SEARCH THRU
	ALL MOUNTED AND SELECTED DECTAPES TO FIND THE PROGRAM.

3.5	DIAGNOSTIC MONITOR SWITCHES

	A.  RELIAB, SW 9, UNLESS THIS SWITCH IS SET THE ITERATIONS
	    CONTAINED IN THE COMMAND LIST WILL BE REDUCED BY A FACTOR
	    OF 100(8):1 FOR FAST ITERATION OPERATION.
	    THIS PROVIDES A CONSIDERABLE REDUCTION IN THE RUN TIME OF
	    EACH PROGRAM FOR A QUICK CHECK OF HARDWARE OR FOR MARGIN
	    OPERATION.

	B.  CHAIN, SW 15, THIS INHIBITS THE TYPE-OUT OF THE "PROG.EXT"
	    OF THE PROGRAM PRIOR TO THE PROGRAM BEING LOADED AND
	    EXECUTED.

	C.  XPAND, SW 18, EXPAND CONTROL SEQUENCING
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 10                                                                    SEQ 0010

3.6	EXPANDED OPERATING PROCEDURE

	THE FOLLOWING ADDITIONAL COMMAND SEQUENCES ARE ADDED WHEN
	EITHER THE "X" COMMAND IS USED OR THE "XPAND" SWITCH IS SET
	DURING COMMAND LIST OPERATION.

	A. TYPE Y FOR CLOCK MARGINS -

		Y = CLOCK MARGINS
		CR = NO

	B. TYPE Y OR A FOR SPECIAL USER MODE -

		Y = SPECIAL USER MODE
		A = SPECIAL USER MODE AFTER FIRST PASS
		CR = NO

	C. TYPE Y OR A FOR CONCEALED MODE -

		Y = CONCEALED MODE
		A = ALTERNATE PUBLIC AND CONCEALED MODES
		CR = PUBLIC MODE

	   QUESTION ASKED ONLY IF SPECIAL USER MODE SELECTED.

	D. TYPE L,S,I,R FOR VOLTAGE MARGINS -

		L = RUN 5 VOLTS AT +-.25V LIMITS
		S = SWEPT 5 VOLT MARGINS
		I = SPECIFY MARGIN INCREMENT
		R = SPECIFY PROCESSOR RACK FOR MARGINS (SWEPT)
		CR = NO

	   IF I IS TYPED THEN:

		SPECIFY MARGIN INCREMENT (1 TO 17) -

		ONE INCREMENT ='S 21MV

	   IF R IS TYPED THEN:

		SPECIFY RACK (0 TO 37) -

		TYPE RACK NUMBER TO BE MARGINED.

	E. SET 'MARGIN SELECT' OFF
           SET 'MARGIN ENABLE' SWITCH
	   TYPE ANY CHAR WHEN READY!

		SET APPROPRIATE SWITCHES AND TYPE CHAR WHEN READY.
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 11                                                                    SEQ 0011

4.0	ROUTINE DESCRIPTIONS

	A. SPECIAL USER MODE

	A PSEUDO USER MODE WHERE THE DIAGNOSTIC PROGRAM BEING RUN
	IS RUN IN USER MODE (WITH PAGING, ETC.) AND THE I/O IS TRAPPED
	BACK TO THE DIAGNOSTIC MONITOR FOR PROCESSING.  PROVIDES A
	METHOD OF CHECKING USER MODE OPERATION OF THE INSTRUCTION
	DIAGNOSTIC AND RELIABILITY PROGRAMS WITHOUT HAVING TO USE A
	MONITOR AND TIMESHARING.

	B. MARGINS

	PROVIDES THE CONTROL NECESSARY TO OPERATE THE KI10 PROGRAMABLE
	MARGIN SYSTEM.  THE FOLLOWING WAYS OF RUNNING THE MARGIN SYSTEM
	ARE PROVIDED:

	1. SWEPT MARGINS

	   THE 5 VOLT POWER SUPPLIES ARE VARIED BY ONE INCREMENT STEPS
	   (21MV) UP TO AND DOWN TO THE +-.25V LIMITS.

	2. LIMITS

	   MARGINS ARE DONE AT THE +-.25V SETTINGS ONLY.

	3. INCREMENT

	   USER MAY SPECIFY THE MARGIN STEP PER PROGRAM PASS,
	   I.E. 4 ='S 84 MV STEPS.

	4. RACK

	   RUNS SWEPT MARGINS ON PROCESSOR RACK SPECIFIED.

	5. CLOCK MARGINS

	   SPEEDS UP THE BASIC CLOCK CYCLE BY 10%.
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 12                                                                    SEQ 0012

5.0	COMMAND LIST FORMAT

	A.  EACH COMMAND LIST INPUT FILE BEGINS WITH A CARRIAGE RETURN
	    (CR) AND TERMINATES WITH A CONTROL Z (^Z).

		IF THE SPECIAL USER MODE ROUTINES ARE SELECTED A LINE
		THAT STARTS WITH A MINUS (-) SIGNIFIES THAT THE PROGRAM
		WILL RUN IN SPECIAL USER MODE.

	B.  THE FIRST ITEM IS THE PROGRAM NAME.  IF THE PROGRAM NAME
	    CONTAINS AN EXTENSION IT MUST BE SEPARATED BY A PERIOD
	    FROM THE PROGRAM NAME.  FURTHER THE 'EXT' MUST BE
	    SPECIFIED.

	C.  THE NEXT ITEM, SEPARATED BY A SPACE(TAB), IS THE NUMBER OF
	    PASSES THAT THE PROGRAM IS TO RUN.  THE PASS COUNT MAY BE
	    IN THE RANGE 0 TO 777777.  IF ZERO, THE PROGRAM WILL RUN ON
	    EVERY PASS.

	D.  THE NEXT ITEM, SEPARATED BY A SPACE(TAB), IS THE OCTAL HALF 
	    WORD, 6 DIGITS, TO BE USED BY THE PROGRAM AS THE RIGHT 
	    HALF OF THE CONSOLE DATA SWITCHES.  THIS WORD IS PASSED
	    FROM THE COMMAND LIST TO THE PROGRAM THRU "MONCTL".

	E.  THE NEXT ITEM, SEPARATED BY A SPACE(TAB), IS THE NUMBER,
	    IN OCTAL, OF ITERATIONS THE PROGRAM IS TO BE EXECUTED.  THE
	    ITERATION COUNT MAY BE IN THE RANGE 0 TO 377777.  IF ZERO,
	    ONE ITERATION IS ASSUMED.

	F.  IF A RUBOUT IS TYPED AN XXX IS TYPED OUT AND THAT LINE IS
	    IGNORED.

	G.  A SPACE TYPED-IN PERFORMS A TAB FUNCTION.

	SAMPLE COMMAND LIST:

	NAME	PASSES	RH SWS	ITERATIONS
	DEKAA	10	0	1000
	DEKAB	1	123456	200
	DEKAC	0	000001	1
	^Z
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 13                                                                    SEQ 0013

6.0	ERRORS

	A.  "CMD'S REQUIRED"

	    THE PROGRAM WAS COMMANDED TO EXECUTE THE COMMAND LIST, BUT
	    THE LIST IS EMPTY.  INPUT SOME PROGRAMS TO EXECUTE.

	B.  "PROGRAM NOT FOUND - PROG.EXT"

	    THE PROGRAM REQUESTED IS NOT ON THE LOAD DEVICE.

	C.  DISK PACK ERRORS

	    ANY DISK PACK ERRORS WILL PRINT OUT THE REASON,
	    "ERROR AT" AND THE OCTAL ADDRESS OF THE ERROR.
	    CONSULT THE LISTING FOR ERROR EXPLANATION.

	D. IF MARGINS ARE SELECTED AND THE 'MARGIN ENABLE' SWITCH IS
	   NOT SET ON STARTUP THE MARGIN SETUP MESSAGE WILL BE REPEATED.

	E. IF DURING A MARGIN RUN THE 'MARGIN SELECT' SWITCH IS RESET,
	   THE FOLLOWING MESSAGE WILL BE PRINTED WHEN CALLING THE
	   NEXT PROGRAM AND THE PROGRAM WILL BE RUN NORMALLY.

		'MARGIN ENABLE' NOT SET ?

	F. IF THE DIAGNOSTIC PROGRAM BEING RUN (IN SPECIAL USER MODE)
	   CAUSES AN MUUO, (NOT TRAPPED I/O) THE FOLLOWING ERROR
	   MESSAGE WILL BE PRINTED AND THE PROGRAM WILL HALT.
	   THE OPERATOR MAY EXAMINE THE USER MUUO LOCATIONS (17424 &
	   17425) TO DETERMINE THE CAUSE OF THE ERROR.

		MUUO ERROR

	G. IF THE DIAGNOSTIC PROGRAM BEING RUN (IN SPECIAL USER MODE)
	   CAUSES A TRAP (PAGE FAIL, PUSHDOWN OVERFLOW OR TRAP 3) THE
	   FOLLOWING MESSAGE WILL BE PRINTED AND THE PROGRAM WILL HALT.

		USER TRAP ERROR
				MAINDEC-10-DDQDC.TXT (DIAMON)
						PAGE 14                                                                    SEQ 0014

7.0	ERROR RECOVERY

	IF THE DIAGNOSTIC MONITOR IS RUNNING IN THE MODE WHERE TITLES
	ARE NOT PRINTED AND A USER PROGRAM FAILS SUCH THAT IS NOT
	KNOWN WHICH PROGRAM FAILED, STARTING AT LOCATION 20002 WILL
	CAUSE THE TITLE TO BE PRINTED.  THE COMPUTER WILL THEN
	HALT AT LOCATION 20000.  THE OPERATOR MAY AT THIS TIME MANUALLY
	RESTART THE USER PROGRAM OR RESTART THE DIAGNOSTIC MONITOR.

	IF IT IS DESIRED TO ABORT A TEST CURRENTLY IN PROGRESS OR TO
	RESTART AT THE NEXT SEQUENTIAL PROGRAM, THE OPERATOR MAY DO SO
	BY STARTING AT LOCATION 20001.

8.0	RESTRICTIONS

	THE DIAGNOSTIC MONITOR MAY BE USED TO CALL ONLY THOSE PROGRAMS
	WHICH FOLLOW THE PRESCRIBED DIAGNOSTIC FORMATS.

	A. NEW FORMAT DIAGNOSTICS

	CALLED AT LOCATION 30002.  LOCATION 30000 IS USED FOR
	STAND-ALONE STARTING OF THESE PROGRAMS AND LOCATION
	30043 "MONCTL" IS RESERVED AS THE MONITOR CONTROL WORD.

		MONCTL	LH = 0,		STAND-ALONE OPERATION
			   = -PASS COUNT, CALLED BY DIAGNOSTIC MONITOR

			RH = RIGHT HALF OF CONSOLE SWITCHES IF CALLED.


9.0	DEVICE COMMAND LIST

	A DEVICE COMMAND LIST MAY BE MADE UP IN USER MODE USING THE
	TYPED-IN FORMAT.

10.0	LISTING
DECSYSTEM10 DIAGNOSTIC MONITOR
MAINDEC-10-DDQDC                                                                                                           SEQ 0015

VERSION 0.15

APRIL 1980

VERSION 0.15 CORRECTS A PROBLEM WITH MARGINING ON A KI10 AND A PROBLEM
WITH SEARCHING ON DECTAPES.
---------------

VERSION 0.14

FEBRUARY 1978

VERSION 0.14 ADDS ECC CORRECTION TO THE RP04/RP05/RP06 DISK READ
ROUTINES.
---------------

VERSION 0.13

JULY 1977

VERSION 0.13 ADDED USER MODE SELECTION OF "D20MON" INSTEAD OF "DIAMON"
IF RUNNING UNDER "TOPS-20".
-------------------                                                                                                        SEQ 0016
VERSION 0.12

FEBRUARY 1977

VERSION 0.12 CORRECTS A PROBLEM WITH NOT CLEAR THE BUFFER USE BITS
WHEN LOADING IN USER MODE.
CORRECTS A PROBLEM WITH "FSELECT" OPERATIONS ON A KL10 WHEN RUNNING
CACHED AND WITH "FSELECT" AND RH CLEAR OPERATIONS RESETTING ALL DRIVES
CONNECTED TO A CONTROLLER AND PROBLEMS WITH THE USE OF 417 TO GET TO
THE RH20 CHANNEL AREA.
ALSO ADDS "KLAD" AS FIRST DEFAULT DISK TO SEARCH FOR WHEN SPECIFIC DISK
IS NOT SPECIFIED.
CHANGES USER MODE TTY INPUT TO LINE MODE AND CORRECTS PROBLEMS WITH
COMMAND LIST OPERATION WHEN DIAGNOSTICS USE THE "FSELECT" OPTION.
--------------------
VERSION 0.11

JUNE 1,1976

VERSION 0.11 ADDS SUPPORT OF PROGRAM LOADING FROM RP05 AND RP06
DISK PACKS.
-----------------
VERSION 0.10

FEBRUARY 26, 1976

VERSION 0.10 CHANGES COMMAND LIST INPUT FORMAT SO THAT
THE EXTENSION IS NO LONGER REQUIRED.  ALSO, SOME CODE WAS
MOVED FROM THE DIAMON.MAC FILE TO THE DEVLDR.MAC FILE TO ENABLE
THE MAGMON PROGRAM TO USE DIAMON.MAC AS A COMMON SOURCE.

CHANGES TO KL10 DTE20 SERVICE FOR MULTIPLE DTE20'S.
CORRECTS PROBLEM IN CMD LIST OPERATIONS FOR ".A10" FILES

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

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

REV 0.10 WILL OPERATE ON KL10'S AT REV 7, 7A, 8 AND HOPEFULLY ON ALL
FUTURE REVISIONS.
--------------                                                                                                             SEQ 0017
VERSION 2.4

JANUARY 6,1976

VERSION 2.4 PROVIDES LOAD DEVICE TYPE BACK TO "SUBRTN" FOR FSELECT
OPERATIONS. ALSO CHANGES USER LOAD CHANNEL TO 16.
--------------
VERSION 1.4

DECEMBER 17,1975

VERSION 1.4 CORRECTS PROBLEM WITH DEVICE COMMAND LIST PROCESS.
------------
VERSION 0.4

NOVEMBER 17,1975

VERSION 0.4 ADDS 8 BIT READ CAPABILITY FOR PROGRAMS USING "SUBRTN"
AND USER MODE LH SWITCH CONTROL FOR CHAIN MODE.
----------------------------
VERSION 0.3

OCTOBER 31,1975

PREVIOUS VERSIONS NOT ACCOUNTED FOR.

VERSION 0.3 CORRECTS PROBLEMS IN PREVIOUS VERSIONS AND ADDS
DEVICE HANDLING FOR PAPER TAPE, PDP-11 FORMAT DECTAPE, IMPROVED
TELETYPE OPERATIONS WITH THE INCLUSION OF CONTROL C, CONTROL D
AND CONTROL O CAPABILITY.

LINE PRINTER IMPROVED ALSO WITH OPERATOR ACTION REQUESTED IF
THE LINE PRINTER GOES OFF LINE.
DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 1             
                                                                                                                           SEQ 0018




















				   DOCUMENT
				**************
         DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^
				**************

















		    COPYRIGHT 1980
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 2             
                                                                                                                           SEQ 0019

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


	45	PARAMETERS

	191	CONTROL SECTION

	354	RUNPRG - RETRIEVE AND RUN SINGLE PROGRAM

	496	COMMAND LIST PROCESSING

	541	FLNAME - FILE NAME AND CONTROL INFO INPUT

	670	EXECUTE THE INPUT COMMAND LIST

	776	EXPANDED COMMAND FORMAT SETUP

	917	SPECIAL RUN SEQUENCING

	1045	VOLTAGE MARGINNING ROUTINE

	1092	SPECIAL USER MODE I/O HANDLER

	1177	MESSAGE PRINTER

	1378	TELETYPE  INPUT

	1517	SPECIAL ROUTINES

	1569	DEVICE BUFFER PARAMETERS

	1584	DEVICE SELECTION

	1734	PROGRAM FILE SELECTION

	1813	"SUBRTN" PROGRAM FILE READ

	1938	LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE

	2135	PROGRAM CORE AREA SETUP

	2229	KL10 KLDCP MODE LOADER

	2275	USER MODE LOADER

	2341	PAPER TAPE LOADER
DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 3             
                                                                                                                           SEQ 0020

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


	2391	DECTAPE LOAD ONLY ROUTINE

	2849	DSKLDR DISK PACK LOAD ONLY ROUTINE

	3693	STORAGE ASSIGNMENTS

	3985	SPECIAL STARTUP MESSAGES AND INITIALIZATION
DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 4             
                                                                                                                           SEQ 0021
		1	MAINDEC-10-DIAMON (DDQDC)

		15	THIS PROGRAM PROVIDES THE PROGRAM LOADING CAPABILITY FOR PDP-10
			DIAGNOSTICS.  PROVIDES FOR LOADING AND RUNNING SINGLE DIAGNOSTICS OR
			CHAIN EXECUTION OF A SERIES OF DIAGNOSTICS.

		19	THIS PROGRAM WILL EXECUTE PDP-10 DIAGNOSTICS AND RELIABILITY
			PROGRAMS THAT ARE CAPABLE OF BEING RUN UNATTENDED.
			RUNS ON KL10, KI10 & KA10 PROCESSORS

		23	IT PROVIDES FOR CONTINUOUS TESTING FOR EQUIPMENT CHECKOUT
			AND/OR FAST ITERATION OPERATION FOR MARGIN TESTING.

		26	ALSO PROVIDES SPECIAL USER MODE OPERATION FOR KL10 & KI10
			AND MARGIN OPERATION FOR KI10.

		29	COPYRIGHT 1975, 1976, 1977, 1978, 1980
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS. 01752

		33	JOHN R. KIRCHOFF

		*****************************************************************
	45	PARAMETERS
		*****************************************************************

		47	ACCUMULATORS

		63	COMMAND DEFINITIONS

		86	DIAGNOSTIC SPECIAL ADDRESSES

		104	SPECIAL DIAGNOSTIC START ADDRESSES

		116	SPECIAL TOPS20 DEFINITIONS

		124	DTE20 EPT PARAMETERS

		147	PROCESSOR CONTROL BITS

		159	KL10 PROCESSOR BIT ASSIGNMENTS

		164	KI10 PROCESSOR BIT ASSIGNMENTS

		178	SWITCH ASSIGNMENTS, RH SW'S NOT USED BY CALLED PROG

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 5             
                                                                                                                           SEQ 0022
		*****************************************************************
	191	CONTROL SECTION
		*****************************************************************

		195	START - STARTING ADDRESS AND CONTROL FLAGS

		213	ONETM1 - STARTUP & PROCESSOR TYPE DETERMINATION

		238	SELECT - START/RESTART INITIALIZATION

		274	SELX - DIAMON LINKAGE SETUP

		288	AUTOMATICALLY LOAD REQUIRED "SUBRTN" AND "KLDDT"
				USER - LOAD "SUBUSR" AND "KLDDT"
				EXEC - KL10 - LOAD "SUBKL" AND "KLDDT"
				EXEC - KA/KI - LOAD "SUBRTN" AND "KLDDT"

		319	PROCESS OPERATOR COMMAND

		*****************************************************************
	354	RUNPRG - RETRIEVE AND RUN SINGLE PROGRAM
		*****************************************************************

		448	WHAT - IDENTIFY LAST PROGRAM

		456	NAMPNT - PRINT FILE NAME AND EXTENSION

		467	SIXBP - SIX BIT PRINTER

		477	PNT16 - PRINT ASCII CHAR IN AC16

		485	CMDHLP, PRINT HELP TEXT

		*****************************************************************
	496	COMMAND LIST PROCESSING
		*****************************************************************

		498	STORED - USE INTERNAL COMMAND LIST

		504	TTYCMD - TELETYPE INPUT COMMAND LIST

		514	DEVCMD - DEVICE COMMAND LIST

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 6             
                                                                                                                           SEQ 0023
		*****************************************************************
	541	FLNAME - FILE NAME AND CONTROL INFO INPUT
		*****************************************************************

		550	FLNMLP - INPUT AND PROCESS CHARACTERS

		570	FLNAM1 - FILE NAME PROCESS

		581	PERIOD - STORE FILE NAME, GO PROCESS EXTENSION

		586	FLNAM2 - PROCESS DIGITS

		593	TTAB - FIELD SEPARATOR, STORE PREVIOUS FIELD

		600	MINUS - SET SPECIAL USER MODE

		605	SCSET - SEMICOLON, REST IS COMMENT

		610	ZEROAC - ZERO AC'S BEFORE STARTING PROGRAM

		622	COMMAND LIST FORMAT
				NAME
				EXT,,ITERATIONS	(BIT 18 SET IF SPEC USER)
				PASSES,,SWITCHES

		627	CRRTN - CR, STORE COMMAND LIST INFORMATION

		*****************************************************************
	670	EXECUTE THE INPUT COMMAND LIST
		*****************************************************************

		672	EX - INITIALIZATION

		682	EX1 - START PASS

		696	EX2 - PRINT NAME AND LOAD PROGRAM

		704	EX3 - SETUP PROGRAM OPERATION PARAMETERS

		737	RERUN1 - DISPATCH TO EXPANDED SETUP

		741	RUN - PROGRAM RUN, CLEAR PROCESSOR FOR NEXT

		752	RET - ANY MORE PROGRAMS ON COMMAND LIST

		770	EX4 - ALL FINISHED

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 7             
                                                                                                                           SEQ 0024
		*****************************************************************
	776	EXPANDED COMMAND FORMAT SETUP
		*****************************************************************

		778	CXPND - EXPANDED ALLOWED

		791	STRD2 - CLOCK MARGINS

		804	STRD3 - SPECIAL USER MODE

		816	STRD4 - CONCEALED, PUBLIC OR ALTERNATE

		839	STRD5 - VOLTAGE MARGINS

		908	MUUOER & USRERR - USER ERROR REPORTING

		*****************************************************************
	917	SPECIAL RUN SEQUENCING
		*****************************************************************

		919	XPNRUN - DETERMINE AND SETUP FOR SPECIAL OPERATIONS

		950	USRRUN - SPECIAL USER MODE RUN SEQUENCING

		977	SETUP PAGE MAP AND TRAPS

		1010	USSR1 - PROGRAM COMPLETION CONTROL

		*****************************************************************
	1045	VOLTAGE MARGINNING ROUTINE
		*****************************************************************

		*****************************************************************
	1092	SPECIAL USER MODE I/O HANDLER
		*****************************************************************

		1157	SAXPN - STANDALONE EXPANDED RUNNING
				  SPECIAL USER AND/OR MARGINS

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 8             
                                                                                                                           SEQ 0025
		*****************************************************************
	1177	MESSAGE PRINTER
		*****************************************************************

		1179	PNTMSG - PRINT SIXBIT MESSAGES

		1213	PNTAL - PRINT ASCII MESSAGES

		1227	PNTOCT - PRINT OCTAL NUMBERS

		1237	PNTDEC - PRINT DECIMAL NUMBERS

		1247	PRINT - PRINT AN ASCII CHARACTER

		1296	MISCELLANEOUS

		1314	PNTLPT - LINE PRINTER DRIVER

		1328	LPTOFL - LINE PRINTER OFF-LINE

		1351	TTYCHK - TELETYPE CHECK ROUTINE

		*****************************************************************
	1378	TELETYPE  INPUT
		*****************************************************************

		1380	TTICHR - INPUT A TELETYPE CHARACTER

		1392	TTYINX - CHECK FOR SPECIAL CHAR PROCESS

		1400	TTYIND - TRANSFER TO DDT

		1412	TTYINA - COMPLETE CHARACTER PROCESS

		1433	TTYKL - KL10 CHARACTER INPUT

		1441	TTYINU - USER MODE CHARACTER INPUT

		1449	USER MODE LH SWITCHES FOR CHAIN OPERATION

		1459	TTIOCT - TELETYPE OCTAL NUMBER INPUT

		1481	READ - COMMAND FILE READ PROCESS

		1505	TTALTM - ALTMODE PROCESS

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 9             
                                                                                                                           SEQ 0026
		*****************************************************************
	1517	SPECIAL ROUTINES
		*****************************************************************

		1519	SWITCH - READ CONSOLE SWITCHES

		1533	DTEINT - KL10 DTE20 INITIALIZATION

		1549	$DTEXX - KL10 DTE20 COMMUNICATIONS

		1560	DTECLR - KL10 DTE20 TELETYPE CLEAR

		*****************************************************************
	1569	DEVICE BUFFER PARAMETERS
		*****************************************************************

		*****************************************************************
	1584	DEVICE SELECTION
		*****************************************************************

		1623	DTUNIT - SELECT DTA UNIT, READ IN DIRECTORY

		1651	PTAPE - PAPER TAPE SELECTION

		1656	PPNIN - DISK AND PROJ PROGRAMMER SPECIFICATION

		1712	LIST1 - LIST FILES

		1719	DIRECT - PRINT DIRECTORY

		*****************************************************************
	1734	PROGRAM FILE SELECTION
		*****************************************************************

		1736	FSELECT - "SUBRTN" FILE SELECTION

		1743	DIAGLD - "DIAMON" FILE SELECTION

		1783	RFILE - FILE FOUND AND SETUP

		1793	FSELF - "SUBRTN" FILE FOUND RETURN

		1802	NFERR - FILE NOT FOUND

		1809	FSELNF - "SUBRTN" FILE NOT FOUND

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 10            
                                                                                                                           SEQ 0027
		*****************************************************************
	1813	"SUBRTN" PROGRAM FILE READ
		*****************************************************************

		1815	FREAD - DETERMINE READ TYPE

		1826	FREAD3 - CHARACTER READ

		1843	FREAD2 - END OF FILE

		1850	FRD36 - 36 BIT WORD READ

		1859	LDACHR - ASCII CHARACTER PROCESS

		1896	FRD8 - 8 BIT WORD READ

		*****************************************************************
	1938	LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE
		*****************************************************************

		1940	PDPROC - FORMAT CONTROL PROCESS

		1975	LDCNV - CONVERT ASCIIZED BACK INTO BITS

		2023	LDEOL - END OF LINE, CHECKSUM LOAD LINE

		2039	LDTEN - CREATE LOAD ADDRESS AND WORD COUNT

		2050	LDTENZ - CLEAR TEN CORE, JOB START TO JOB FIRST FREE

		2060	LDTEN1 - TRANSFER TEN WORDS TO MEMORY

		2089	LDDONE - COMPLETED, GO TO START ROUTINE

		2093	LDCMNT - LOAD FILE COMMENT LINE

		2122	CMNPNT - PRINT COMMENT LINE

		*****************************************************************
	2135	PROGRAM CORE AREA SETUP
		*****************************************************************

		2143	PRGCOR - SETUP CORE ZEROING FOR ".SAV" FILES

		2204	CLRCOR - CLEAR CORE FOR DIAGNOSTIC SEGMENT
				   CLEARS CORE FROM 'JOBSA' TO 'JOBFF'

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 11            
                                                                                                                           SEQ 0028
		*****************************************************************
	2229	KL10 KLDCP MODE LOADER
		*****************************************************************

		2231	KLDCPL - LOOKUP FILE USING THE CONSOLE LOAD DEVICES

		2257	KLDCPW - KLDCP READ WORD

		2266	KLDCP8 - KLDCP READ 8 BIT BYTE

		*****************************************************************
	2275	USER MODE LOADER
		*****************************************************************

		2277	USERLD - LOOKUP FILE ON THE USERS DISK

		2317	URWD - USER MODE READ WORD

		2331	USRINT - USER MODE INIT, SETUP MINIMUM OF 32K OF CORE

		*****************************************************************
	2341	PAPER TAPE LOADER
		*****************************************************************

		*****************************************************************
	2391	DECTAPE LOAD ONLY ROUTINE
		*****************************************************************

		2393	DECTAPE CONTROL BITS

		2411	ACCUMULATOR ASSIGNMENTS

		2427	DTALD - INITIAL ENTRY TO LOAD TAPE

		2475	NF - NOT FOUND DIRECTORY SEARCH SEQUENCE

		2492	PROCBK - READ A BLOCK OF TAPE

		2512	SEARCH - FIND THE BLOCK

		2536	EXTCK - FILE EXTENSION CHECK

		2545	ERR - DECTAPE ERROR ROUTINES

		2567	LDDIR - READ TAPE DIRECTORY

		2578	FDIR - PRINT DIRECTORY OF DECTAPE

		2615	DTBLKC - COMPUTE NUMBER OF BLOCKS USED PER FILE

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 12            
                                                                                                                           SEQ 0029
		2631	LSTPNT - LIST FILES (ASCIZ)

		2649	VDTALD - LOAD FROM PDP-11 FORMAT DECTAPE

		2671	VDIR - PRINT PDP-11 FORMAT DECTAPE DIRECTORY

		2744	GTVDWD - GET WORD FROM PDP-11 DIRECTORY
				   CALL WITH INDECIES IN VT & VC SUCH THAT ADDING THEM GIVES
				   NUMBER OF PDP-11 WORDS INTO DESIRED DIRECTORY

		2757	D11CHR - DECTAPE PDP-11 FORMAT CHARACTER READ

		2773	D11WD - DECTAPE PDP-11 FORMAT WORD READ

		2812	R5VSIX - RAD50 CONVERTER

		*****************************************************************
	2849	DSKLDR DISK PACK LOAD ONLY ROUTINE
		*****************************************************************

		2851	I/O DEVICE PARAMETERS

		2879	FLAGS, LEFT HALF OF F

		2884	FLAGS, RIGHT HALF OF F

		2890	SYSTEM PARAMETERS, MUST AGREE WITH MONITOR

		2915	ACCUMULATORS

		2930	DSKLD - INITIAL ENTRY TO LOAD FROM DISK PACK

		2939	RFILE1 - HERE WHEN FILE FOUND

		2958	RWORD - READ DATA WORD FROM FILE

		2975	RDDATA - READ NEXT BLOCK OF DATA INTO DBUF

		3000	STARTQ - HERE ON TRANSFER WORD

		3029	LOOK - SUBROUTINE TO LOOK FOR FILE

		3094	SETRIB - SUBROUTINE TO SETUP A RIB BLOCK AND CHECK IT

		3110	DSKDIR - DISK PACK DIRECTORY ROUTINE

		3142	SRCHFD - SUBROUTINE TO SEARCH A UFD OR MFD FOR FILE & EXT
				   RIB LBN IN STR OF THE FD IN A

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 13            
                                                                                                                           SEQ 0030
		3171	LBNSEL - SUBROUTINE TO SELECT CORRECT UNIT FROM LBN

		3191	SELBLK - SUBROUTINE TO SELECT NEXT BLOCK OF DATA
				   THE DATA IS FOUND USING RIB'S STARTING AT 0(S), OR
				   IF STUFF LEFT OVER FROM CURRENT RIB, VIA CLUCNT,BLKCNT,CLBN

		3229	FNDUNI - SUBROUTINE TO FIND A PARTICULAR LOGICAL UNIT IN THE SYSTEM
				   ARGUMENTS ARE: STRUCTURE NAME (SIXBIT) IN STRUCT
				 	        : UNIT NUMBER WITHIN STRUCTURE IN SLUNIT
				   SKIP RETURN IF FOUND

		3258	HOME - SUBROUTINE TO DETERMINE WHETHER A UNIT EXISTS, AND IF SO,
				 READ ITS HOME BLOCK INTO THE HOME BUFFER
				 CALL SEQUENCE:
					K/	CONTROLLER TYPE INDEX
					N/	UNIT NUMBER, 0-7
				  GO HOME
				  NOT THERE RETURN
				  OK	RETURN

		3267	AT THIS POINT, ANY NEEDED UNIT PARAMETERS ARE SAVED
			SUCH AS:	R.TYPE & THE HOME BLOCK IN HBUF

		3303	DPCINI - INITIALIZATION FOR PACKS

		3337	DSKBLK - ROUTINE TO READ A BLOCK FROM THE DEVICE AND UNIT IN
				   CTYPE & CUNIT INTO THE BUFFER AT (A)+1, FROM LOGICAL BLOCK
				   NUMBER IN LBN SKIP RETURN IF SUCCESSFUL, NON-SKIP IF ANY
				   HARDWARE ERRORS

		3361	UNIINI - INITIALIZE CONTROLLER ROUTINES

		3382	SETCHN - SUBROUTINE TO SETUP CHANNEL, THEN DISPATCH TO DEVICE
				   DEPENDENT ROUTINE
				   CALL: MOVEI	A, ABS ADR OF FIRST DATA WORD-1
					 HRRI	C, ABS ADR OF FIRST WORD IN DISPATCH TABLE
					 GO	SETCHN
					 ERROR	RETURN
					 OK	RETURN

		3429	DHYINI - INITIALIZATION FOR RH10/RP04/5/6

		3456	DHXINI - RH20/RP04/RP05/RP06 INITIALIZATION

		3468	IODTI - RH10/RH20 DATAO/DATAI ROUTINES

		3476	DHXRED - READ ROUTINE FOR RH10/RP04/5/6 & RH20/RP04/5/6
				ENTRY:	A/ LOGICAL BLOCK NUMBER
					N/ DRIVE NUMBER
				EXIT:	+1 FOR ERROR
					+2 SUCESSFUL

DIAMON [DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^             DECDOC VER  00.24   23-APR-80 13:50:54   PAGE 14            
                                                                                                                           SEQ 0031
		3514	 SUBROUTINE TO ATTEMPT TO DO ECC CORRECTION 

		3516	 GOT HERE BECAUSE WE GOT A COMPOSITE ERROR IN THE DRIVE, IF
			 DCK=1 AND ECH=0 WE CAN CORRECT USING ECC. THIS ROUTINE LOOKS
			 IN "BUFS" FOR BUFFER STARTING ADDRESS. "BUFS" IS SET UP IN THE
			 "SETCHN" ROUTINE.
				CALL SEQ:
				GO	TRYECC		;CALL THE ROUTINE
				RTN+1			;CAN'T CORRECT
				RTN+2			;DATA HAS BEEN CORRECTED IN MEMORY

		3564	DPCRED - READ ROUTINE FOR THE DISK PACKS

		3591	DPCWAT - SUBROUTINE TO WAIT FOR I/O AND CHECK ERRORS

		3619	ERROR - ERROR REPORTING

		3648	NFERR1 - PROGRAM NOT FOUND ERROR

		3655	ERROR REPORT MESSAGES

		*****************************************************************
	3693	STORAGE ASSIGNMENTS
		*****************************************************************

		*****************************************************************
	3985	SPECIAL STARTUP MESSAGES AND INITIALIZATION
		*****************************************************************

		3987	HEADER

		4010	HELP

		4123	TYBAUD - COMPUTE CR & LF FILLERS REQUIRED FOR DIFFERENT BAUD RATES
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 1
DIAMON	MAC	23-Apr-80 13:27		DEVICE BUFFER PARAMETERS                                                           SEQ 0032

     1					;*MAINDEC-10-DIAMON (DDQDC)
     2
     3			000015		DECVER=015
     4			000000		MCNVER=000
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 ^
    13
    14
    15					;*THIS PROGRAM PROVIDES THE PROGRAM LOADING CAPABILITY FOR PDP-10
    16					;*DIAGNOSTICS.  PROVIDES FOR LOADING AND RUNNING SINGLE DIAGNOSTICS OR
    17					;*CHAIN EXECUTION OF A SERIES OF DIAGNOSTICS.
    18
    19					;*THIS PROGRAM WILL EXECUTE PDP-10 DIAGNOSTICS AND RELIABILITY
    20					;*PROGRAMS THAT ARE CAPABLE OF BEING RUN UNATTENDED.
    21					;*RUNS ON KL10, KI10 & KA10 PROCESSORS
    22
    23					;*IT PROVIDES FOR CONTINUOUS TESTING FOR EQUIPMENT CHECKOUT
    24					;*AND/OR FAST ITERATION OPERATION FOR MARGIN TESTING.
    25
    26					;*ALSO PROVIDES SPECIAL USER MODE OPERATION FOR KL10 & KI10
    27					;*AND MARGIN OPERATION FOR KI10.
    28
    29					;*COPYRIGHT 1975, 1976, 1977, 1978, 1980
    30					;*DIGITAL EQUIPMENT CORPORATION
    31					;*MARLBORO, MASS. 01752
    32
    33					;*JOHN R. KIRCHOFF
    34
    35	000137					LOC	137
    36	000137	000000	000015		MCNVER,,DECVER
    37
    38						NOSYM
    39
    40
    41					;ASSEMBLE AS FOLLOWS:
    42					;	DIAMON.MAC,DEVLDR.MAC
    43
    44			026770		INLEND=26770	;COMMAND LIST END ADDRESS
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 2
DIAMON	MAC	23-Apr-80 13:27		PARAMETERS                                                                         SEQ 0033

    45					SUBTTL	PARAMETERS
    46
    47					;*ACCUMULATORS
    48
    49			000005		DPNTR=	5				;DISK CMD LIST INPUT POINTER
    50			000006		LET=	6				;LETTERS TYPIN FLAG
    51			000007		NAM=	7				;NAME GENERATION AC'S
    52			000010		NAM1=	10
    53			000011		NAM2=	11
    54			000012		DIGIT=	12				;DIGIT GENERATION AC'S
    55			000013		DIGITA=	13
    56			000014		DIGIT1=	14
    57			000015		DIGIT2=	15
    58			000016		IP=	16				;COMMAND INDEX POINTER
    59			000017		P=	17				;PUSHDOWN POINTER
    60
    61			000016		LDCHN=	16				;USER LOAD CHANNEL
    62
    63					;*COMMAND DEFINITIONS
    64
    65			000120		JOBSA=	120				;JOB STARTING ADDRESS
    66			000121		JOBFF=	121				;JOB FIRST FREE ADDRESS
    67			000044		JOBREL=	44				;JOB HIGHEST RELATIVE ADDRESS
    68			027772		FSELNK=	27772				;FILE SELECT LINK
    69			027773		FRDLNK=	27773				;FILE READ LINK
    70			027774		LDLNK=	27774				;LOAD LINK
    71			027775		DDTLNK=	27775				;DDT LINK
    72			027776		MODLNK=	27776				;MODE CHECK LINK
    73			027777		SUBLNK=	27777				;SUBROUTINE LINK
    74
    75			000476		CHNCMD=	476				;CHANNEL COMMAND LIST
    76
    77		260740	000000		OPDEF	GO	[PUSHJ	P,0]
    78		263740	000000		OPDEF	RTN	[POPJ	P,]
    79		261740	000000		OPDEF	PUT	[PUSH	P,0]
    80		262740	000000		OPDEF	GET	[POP	P,0]
    81		260740	021426		OPDEF	PNTMSG	[GO	$PSIX]
    82		260740	021462		OPDEF	PNTAL	[GO	TOUT]
    83		260740	021673		OPDEF	TTICHR	[GO	TTYIN]
    84		260740	021765		OPDEF	TTIOCT	[GO	TTYOCT]
    85		260740	022043		OPDEF	SWITCH	[GO	$SWITCH]
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 3
DIAMON	MAC	23-Apr-80 13:27		PARAMETERS                                                                         SEQ 0034

    86					;*DIAGNOSTIC SPECIAL ADDRESSES
    87
    88			001005		SUBRTN=	1005				;"SUBRTN" IDENTIFICATION WORD
    89			030000		DIAGNOS=30000				;DIAGNOSTIC START ADDRESS
    90			030002		DIAGMN=	30002				;PROG START ADDRESS
    91			030012		RETURN=	30012				;RETURN ADR STORAGE
    92			030031		$EMODE=	30031				;EXEC ALLOWED
    93			030032		$UMODE=	30032				;USER ALLOWED
    94			030024		ITRCNT=	30024				;PROG ITERATIONS
    95			030043		MONCTL=	30043				;DIAG MON CONTROL FLAG
    96			030022		RANDBS=	30022				;PROG RANDOM BASE
    97			030042		MONFLG=	30042				;SPECIAL USER CONTROL FLAG
    98			030044		MONTEN=	30044				;LOADED BY DIAMON FLAG
    99			030055		MARGIN=	30055				;KI10 MARGIN WORD
   100			010000		KLDDT=	10000				;KLDDT PROGRAM START ADDRESS
   101
   102			020000		.LOC=	20000				;STARTING ADDRESS
   103
   104					;*SPECIAL DIAGNOSTIC START ADDRESSES
   105
   106			030004		SFSTRT=	30004				;SPECIAL FEATURE START
   107			030005		PFSTRT=	30005				;POWER FAIL RESTART
   108			030006		REENTR=	30006				;PROGRAM REENTER START
   109			030007		DDT=	30007				;DDT START
   110			030013		START1=	30013				;START 1
   111			030014		START2=	30014				;START 2
   112			030015		START3=	30015				;START 3
   113			030016		START4=	30016				;START 4
   114			030017		START5=	30017				;START 5
   115
   116					;*SPECIAL TOPS20 DEFINITIONS
   117
   118		100000	000000		GJ%OLD=	1B2
   119		000001	000000		GJ%SHT=	1B17
   120			400000		.FHSLF=	400000
   121		104000	000147		OPDEF	RESET	[104000,,147]
   122		104000	000020		OPDEF	GTJFN	[104000,,20]
   123		104000	000200		OPDEF	GETT20	[104000,,200]
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 4
DIAMON	MAC	23-Apr-80 13:27		PARAMETERS                                                                         SEQ 0035

   124					;*DTE20 EPT PARAMETERS
   125
   126			000440		$STD=	440				;PDP-10 DIAGNOSTIC START ADDRESS
   127			000441		$DDT=	441				;PDP-10 DDT START ADDRESS
   128			000442		$STL=	442				;PDP-10 LOADER START ADDRESS
   129			000443		$STM=	443				;PDP-10 MONITOR START ADDRESS
   130
   131			000444		$DTFLG=	444				;OPERATION COMPLETE FLAG
   132			000445		$DTCLK=	445				;CLOCK INTERRUPT FLAG
   133			000446		$DTCI=	446				;CLOCK INTERRUPT INSTRUCTION
   134			000447		$DTT11=	447				;10 TO 11 ARGUMENT
   135			000450		$DTF11=	450				;10 FROM 11 ARGUMENT
   136			000451		$DTCMD=	451				;TO 11 COMMAND WORD
   137			000452		$DTSEQ=	452				;OPERATION SEQUENCE NUMBER
   138			000453		$DTOPR=	453				;OPERATIONAL DTE #
   139			000454		$DTCHR=	454				;LAST TYPED CHARACTER
   140			000455		$DTMTD=	455				;MONITOR TTY OUTPUT COMPLETE FLAG
   141			000456		$DTMTI=	456				;MONITOR TTY INPUT FLAG
   142			000457		$DTSWR=	457				;10 SWITCH REGISTER
   143
   144	000442					LOC	442
   145	000442	254 00 0 00 020000 	JRST	START
   146
   147					;*PROCESSOR CONTROL BITS
   148
   149			200000		IOCLR=	200000				;APR, I/O CLEAR
   150			010000		PICLR=	10000				;PI, PI CLEAR
   151			010000		USERF=	10000				;USER MODE FLAG
   152
   153			020000		TRPENB=	020000				;ENABLE TRAPS
   154			010000		USERF=	10000				;USER MODE FLAG
   155			000010		PAG=	010				;PAGING I/O DEVICE CODE
   156			000424		MUUO=	424				;MUUO STORAGE
   157			000425		MUUOPC=	425				;C(PC) OF MUUO STORAGE
   158			017000		UPMP=	17000				;USER PAGE MAP PAGE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 5
DIAMON	MAC	23-Apr-80 13:27		PARAMETERS                                                                         SEQ 0036

   159					;*KL10 PROCESSOR BIT ASSIGNMENTS
   160
   161			000200		DTE=	200				;DTE20 DEVICE CODE
   162			140000		LLDUSB=	140000				;LOAD KL10 USER BASE REGISTER
   163
   164					;*KI10 PROCESSOR BIT ASSIGNMENTS
   165
   166			400000		LDEXCB=	400000				;LOAD EXEC BASE REGISTER
   167			400000		LDUSRB=	400000				;LOAD USER BASE REGISTER
   168			040000		SMLUSR=	040000				;SMALL USER
   169			020000		USRCMP=	020000				;USER COMPARE
   170			002000		IMGNOF=	2000				;VOLTAGE MARGINS OFF
   171			001000		IMGNON=	1000				;VOLTAGE MARGINS ON
   172			010000		ISPDOF=	10000				;SPEED MARGINS OFF
   173			002000		IMGINM=	2000				;MARGIN SWITCH
   174			004000		ISPDON=	4000				;SPEED MARGINS ON
   175			000031		VOLT5=	31				;MARGIN 5 VOLT SETTING
   176			000014		VOLTLM=	^D12				;MARGIN +- LIMITS
   177
   178					;*SWITCH ASSIGNMENTS, RH SW'S NOT USED BY CALLED PROG
   179
   180			020000		LPTSW=	20000				;SW 4, PRINT ON LPT
   181			000400		RELIAB=	400				;SW 9, RELIABILITY MODE
   182			000004		CHAIN=	4				;SW 15, INHIBIT PROGRAM TITLE PRINT
   183
   184			400000		XPAND=	400000				;SW 18, EXPANDED CONTROL SEQUENCING
   185
   186					DEFINE	MSG	(ARG),<[SIXBIT\ARG'_\]>
   187
   188					DEFINE	PMSG	(ARG),<
   189						MOVEI	[SIXBIT\ARG'_\]
   190						PNTMSG>
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 6
DIAMON	MAC	23-Apr-80 13:27		CONTROL SECTION                                                                    SEQ 0037

   191					SUBTTL	CONTROL SECTION
   192
   193	020000					LOC	.LOC
   194
   195					;*START - STARTING ADDRESS AND CONTROL FLAGS
   196
   197	020000	254 00 0 00 020045 	START:	JRST	SELECT
   198	020001	254 00 0 00 020646 	RESTRT:	JRST	RUN
   199	020002	254 00 0 00 020332 	TITLE:	JRST	WHAT
   200	020003	254 00 0 00 020645 	RERUN:	JRST	RERUN1
   201	020004	254 00 0 00 020017 	ONETIM:	JRST	ONETM1
   202	020005	000000	000000		ITERAT:	0
   203	020006	000000	000000		USER:	0
   204	020007	000000	000000		CONSW:	0				;USER MODE SWITCHES
   205	020010	000000	000000		KLFLG:	0
   206	020011	000000	000000		KAIFLG:	0
   207	020012	000000	000000		SUSERF:	0
   208	020013	000000	000000		PASS:	0
   209	020014	000000	000000		ONCE:	0
   210	020015	000000	000000		RANBAS:	0
   211	020016	000000	000000		TTYSPD:	0				;TTY BAUD RATE
   212
   213					;*ONETM1 - STARTUP & PROCESSOR TYPE DETERMINATION
   214
   215	020017	200 00 0 00 000044 	ONETM1:	MOVE	JOBREL			;SAVE "DIAMON" MAX SIZE
   216	020020	202 00 0 00 025552 		MOVEM	SVJBREL#
   217	020021	265 00 0 00 020022 		JSP	0,.+1		;USER MODE ?
   218	020022	607 00 0 00 010000 		TLNN	0,USERF
   219	020023	254 00 0 00 020045 		JRST	SELECT		;NO, EXEC
   220	020024	200 00 0 00 025134 		MOVE	[112,,11]
   221	020025	047 00 0 00 000041 		GETTAB			;GET MONITOR TYPE ID
   222	020026	254 00 0 00 020045 		JRST	SELECT		;OOP'S, CAN'T TELL - USE DIAMON
   223	020027	302 00 0 00 040000 		CAIE	40000		;TOPS20 ?
   224	020030	254 00 0 00 020045 		JRST	SELECT		;TOPS10
   225
   226	020031	515 01 0 00 100001 		HRLZI	1,(GJ%OLD!GJ%SHT)
   227	020032	561 02 0 00 025135 		HRROI	2,[ASCIZ/D20MON.EXE/]
   228	020033	104 00 0 00 000020 		GTJFN			;FIND FILE
   229	020034	254 00 0 00 020045 		JRST	SELECT		;CAN'T FIND D20MON - USE DIAMON
   230	020035	553 00 0 00 000001 		HRRZS	1
   231	020036	661 01 0 00 400000 		TLO	1,.FHSLF
   232	020037	400 02 0 00 000000 		SETZ	2,
   233	020040	200 03 0 00 025140 		MOVE	3,[GETT20]	;PUT THIS IN AC'S SO CAN OVERWRITE CORE
   234	020041	200 04 0 00 025141 		MOVE	4,[RESET]
   235	020042	200 05 0 00 025142 		MOVE	5,[HRRZ	120]
   236	020043	200 06 0 00 025143 		MOVE	6,[JRST	@0]
   237	020044	254 00 0 00 000003 		JRST	3		;GO LOAD "D20MON"
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 7
DIAMON	MAC	23-Apr-80 13:27		CONTROL SECTION                                                                    SEQ 0038

   238					;*SELECT - START/RESTART INITIALIZATION
   239
   240	020045	402 00 0 00 020006 	SELECT:	SETZM	USER
   241	020046	265 00 0 00 020047 		JSP	0,.+1
   242	020047	603 00 0 00 010000 		TLNE	0,USERF
   243	020050	476 00 0 00 020006 		SETOM	USER			;USER MODE
   244	020051	332 00 0 00 020006 		SKIPE	USER
   245	020052	254 00 0 00 020055 		JRST	.+3
   246	020053	7 004 20 0 00 010000 		CONO	PI,PICLR
   247	020054	7 000 20 0 00 200000 		CONO	APR,IOCLR
   248	020055	200 17 0 00 025144 		MOVE	P,[-40,,PLIST]
   249	020056	402 00 0 00 020010 		SETZM	KLFLG
   250	020057	402 00 0 00 020011 		SETZM	KAIFLG
   251	020060	200 01 0 00 025145 		MOVE	1,[1,,1]
   252	020061	251 01 0 00 000001 		BLT	1,1
   253	020062	312 01 0 00 025145 		CAME	1,[1,,1]		;BLT CHANGES AC ON KL10
   254	020063	476 00 0 00 020010 		SETOM	KLFLG
   255	020064	211 01 0 00 000001 		MOVNI	1,1
   256	020065	253 01 0 00 020066 		AOBJN	1,.+1
   257	020066	336 00 0 00 000001 		SKIPN	1			;KA10 IF (AC) = 1,,0
   258	020067	476 00 0 00 020011 		SETOM	KAIFLG			;KI10 IF (AC) = 0,,0
   259	020070	332 00 0 00 020010 		SKIPE	KLFLG
   260	020071	260 17 0 00 022055 		GO	DTEINT			;KL10, INIT DTE20
   261	020072	332 00 0 00 020006 		SKIPE	USER
   262	020073	260 17 0 00 023174 		GO	USRINT			;USER INITIALIZATION
   263	020074	200 00 0 00 025562 		MOVE	PGNAME
   264	020075	332 00 0 00 020006 		SKIPE	USER
   265	020076	047 00 0 00 000043 		SETNAM				;USER, SET NAME BACK
   266	020077	332 00 0 00 020014 		SKIPE	ONCE
   267	020100	254 00 0 00 020106 		JRST	SELX			;NOT FIRST TIME
   268	020101	336 00 0 00 020010 		SKIPN	KLFLG
   269	020102	260 17 0 00 026147 		GO	TYBAUD			;KA/KI, COMPUTE BAUD RATE
   270	020103	201 00 0 00 025755 		MOVEI	HEADER
   271	020104	260 17 0 00 021462 		PNTAL				;PRINT HEADER
   272	020105	260 17 0 00 022111 		GO	DEVSEL			;SELECT LOAD DEVICE
   273
   274					;*SELX - DIAMON LINKAGE SETUP
   275
   276	020106	201 00 0 00 030001 	SELX:	MOVEI	30001			;SETUP $START AS
   277	020107	202 00 0 00 027774 		MOVEM	27774			;LOAD LINK
   278	020110	201 00 0 00 022312 		MOVEI	FSELECT			;SETUP FILE SELECT LINK
   279	020111	202 00 0 00 027772 		MOVEM	FSELNK
   280	020112	201 00 0 00 022400 		MOVEI	FREAD			;SETUP FILE READ LINK
   281	020113	202 00 0 00 027773 		MOVEM	FRDLNK
   282	020114	402 00 0 00 025623 		SETZM	PGMGO
   283	020115	200 00 0 00 025146 		MOVE	[PGMGO,,PGMGO+1]
   284	020116	251 00 0 00 025643 		BLT	RACKF
   285	020117	200 00 0 00 025147 		MOVE	[SIXBIT/SUBRTN/]
   286	020120	316 00 0 00 001005 		CAMN	SUBRTN			;IS "SUBRTN" LOADED ?
   287	020121	254 00 0 00 020150 		JRST	SELX1			;YES
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 8
DIAMON	MAC	23-Apr-80 13:27		CONTROL SECTION                                                                    SEQ 0039

   288					;*AUTOMATICALLY LOAD REQUIRED "SUBRTN" AND "KLDDT"
   289					;*	USER - LOAD "SUBUSR" AND "KLDDT"
   290					;*	EXEC - KL10 - LOAD "SUBKL" AND "KLDDT"
   291					;*	EXEC - KA/KI - LOAD "SUBRTN" AND "KLDDT"
   292
   293	020122	336 00 0 00 020006 		SKIPN	USER
   294	020123	254 00 0 00 020130 		JRST	SELX4			;EXEC
   295						MOVEI	IP,[SIXBIT/SUBUSR/
   296	020124	201 16 0 00 025150 			    0]
   297	020125	260 17 0 00 022316 		GO	DIAGLD-5		;DON'T REPORT CAN'T FIND
   298	020126	254 00 0 00 020136 		JRST	SELX3			;TRY "SUBRTN" THEN
   299	020127	254 00 0 00 020141 		JRST	SELX2
   300	020130	336 00 0 00 020010 	SELX4:	SKIPN	KLFLG
   301	020131	254 00 0 00 020136 		JRST	SELX3			;NOT KL-10
   302						MOVEI	IP,[SIXBIT/SUBKL/
   303	020132	201 16 0 00 025152 			    0]
   304	020133	260 17 0 00 022316 		GO	DIAGLD-5		;DON'T REPORT CAN'T FIND
   305	020134	254 00 0 00 020136 		JRST	.+2			;TRY "SUBRTN" THEN
   306	020135	254 00 0 00 020141 		JRST	SELX2
   307					SELX3:	MOVEI	IP,[SIXBIT/SUBRTN/
   308	020136	201 16 0 00 025154 			    0]
   309	020137	260 17 0 00 022321 		GO	DIAGLD-2		;NO, LOAD IT THEN
   310	020140	254 00 0 00 020150 		JRST	SELX1			;CAN'T FIND, ALREADY REPORTED
   311					SELX2:	MOVEI	IP,[SIXBIT/KLDDT/
   312	020141	201 16 0 00 025156 			    0]
   313	020142	260 17 0 00 022321 		GO	DIAGLD-2		;LOAD DDT ALSO
   314	020143	254 00 0 00 020150 		JRST	SELX1
   315	020144	201 00 0 00 000441 		MOVEI	$DDT
   316	020145	202 00 0 00 000074 		MOVEM	74			;SET DDT START ADDRESS
   317	020146	332 00 0 00 020006 		SKIPE	USER
   318	020147	047 00 0 00 000002 		SETDDT				;SET USER DDT START ADDRESS
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 9
DIAMON	MAC	23-Apr-80 13:27		CONTROL SECTION                                                                    SEQ 0040

   319					;*PROCESS OPERATOR COMMAND
   320
   321	020150	476 00 0 00 020014 	SELX1:	SETOM	ONCE
   322	020151	200 17 0 00 025144 		MOVE	P,[-40,,PLIST]
   323	020152	201 16 0 00 025674 		MOVEI	IP,SELSTR
   324	020153	260 17 0 00 021567 		GO	CRLF1			;TYPE A CARRIAGE AND LINE FEED
   325	020154	200 01 0 00 025562 		MOVE	A,PGNAME		;GET PROGRAM NAME
   326	020155	260 17 0 00 020347 		GO	SIXBP			;PRINT IT
   327						PMSG	< CMD - >^
   328	020156	201 00 0 00 025160 		MOVEI	[SIXBIT\ CMD - _\]
   329	020157	260 17 0 00 021426 		PNTMSG^
   330	020160	260 17 0 00 020432 		GO	FLNAME			;GET COMMAND OR FILE NAME
   331	020161	255 00 0 00 000000 		JFCL
   332	020162	201 16 0 00 025674 		MOVEI	IP,SELSTR
   333	020163	402 00 0 00 000001 		SETZM	1
   334	020164	200 00 0 16 000000 		MOVE	(IP)
   335
   336	020165	336 00 0 01 020251 	CMDLP:	SKIPN	CMDLST(1)		;CHECK FOR SPECIAL COMMANDS
   337	020166	344 01 0 00 020174 		AOJA	1,CMDLP1		;NOT IN FIRST PART OF LIST
   338	020167	316 00 0 01 020251 		CAMN	CMDLST(1)
   339	020170	254 00 0 00 020172 		JRST	CMDEX			;FOUND
   340	020171	344 01 0 00 020165 		AOJA	1,CMDLP
   341
   342	020172	200 00 0 01 020302 	CMDEX:	MOVE	0,CMDADR(1)		;GET START ADDRESS
   343	020173	254 00 1 00 000000 		JRST	@0			;GO TO COMMAND ROUTINE
   344
   345	020174	336 00 0 01 020251 	CMDLP1:	SKIPN	CMDLST(1)		;SPECIAL START COMMANDS
   346	020175	254 00 0 00 020230 		JRST	RUNPR2			;NOT FOUND, MUST BE PROGRAM NAME
   347	020176	316 00 0 01 020251 		CAMN	CMDLST(1)
   348	020177	254 00 0 00 020201 		JRST	CMDEX1			;FOUND
   349	020200	344 01 0 00 020174 		AOJA	1,CMDLP1
   350
   351	020201	200 00 0 01 020302 	CMDEX1:	MOVE	0,CMDADR(1)		;GET SPECIAL START ADDRESS
   352	020202	542 00 0 00 024106 		HRRM	SADR			;SET FOR START
   353	020203	254 00 0 00 024074 		JRST	SADRQ			;GO START
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 10
DIAMON	MAC	23-Apr-80 13:27		RUNPRG - RETRIEVE AND RUN SINGLE PROGRAM                                           SEQ 0041

   354					SUBTTL	RUNPRG - RETRIEVE AND RUN SINGLE PROGRAM
   355
   356	020204				RUNPRG:	PMSG	<^FILE.EXT - >^
   357	020204	201 00 0 00 025162 		MOVEI	[SIXBIT\^FILE.EXT - _\]
   358	020205	260 17 0 00 021426 		PNTMSG^
   359	020206	201 16 0 00 025754 		MOVEI	IP,INLIST
   360	020207	260 17 0 00 020432 		GO	FLNAME			;GET FILE NAME
   361	020210	255 00 0 00 000000 		JFCL
   362	020211	201 16 0 00 025754 	RUNPR1:	MOVEI	IP,INLIST
   363	020212	554 00 0 16 000000 		HLRZ	(IP)
   364	020213	306 00 0 00 470000 		CAIN	(SIXBIT/G/)
   365	020214	254 00 0 00 024074 		JRST	SADRQ
   366	020215	336 00 0 16 000000 		SKIPN	(IP)
   367	020216	254 00 0 00 020674 		JRST	EX4			;NO PROGRAM TO RUN
   368	020217	202 16 0 00 025650 		MOVEM	IP,SAVEIP
   369	020220	476 00 0 00 025623 		SETOM	PGMGO			;SET LOAD & GO FLAG
   370	020221	260 17 0 00 022323 		GO	DIAGLD			;GO GET PROGRAM
   371	020222	254 00 0 00 020224 		JRST	.+2
   372	020223	254 00 0 00 020406 		JRST	DEVCM1			;MUST BE DEVICE COMMAND LIST
   373	020224	336 00 0 00 025633 		SKIPN	ALTMFLG			;ALTMODE SELECTION ?
   374	020225	254 00 0 00 020045 		JRST	SELECT			;NO, ERROR
   375	020226	402 00 0 00 025633 		SETZM	ALTMFLG
   376	020227	254 00 0 00 020204 		JRST	RUNPRG			;YES, ASK FOR NEXT PROGRAM
   377
   378	020230	200 00 0 00 025674 	RUNPR2:	MOVE	SELSTR
   379	020231	202 00 0 00 025754 		MOVEM	INLIST
   380	020232	200 00 0 00 025675 		MOVE	SELSTR+1
   381	020233	202 00 0 00 025755 		MOVEM	INLIST+1
   382	020234	402 00 0 00 025757 		SETZM	INLIST+3
   383	020235	254 00 0 00 020211 		JRST	RUNPR1
   384
   385	020236	260 17 0 00 021673 	TT2CHR:	TTICHR				;INPUT 1ST CHAR
   386	020237	306 00 0 00 000012 		CAIN	12
   387	020240	263 17 0 00 000000 		RTN				;ONLY A CR
   388	020241	202 00 0 00 000006 		MOVEM	0,LET
   389	020242	260 17 0 00 021673 		TTICHR				;INPUT 2ND CHAR, SHOULD BE CR
   390	020243	302 00 0 00 000012 		CAIE	12
   391	020244	254 00 0 00 020045 		JRST	SELECT			;WASN'T
   392	020245	200 00 0 00 000006 		MOVE	0,LET			;GET 1ST CHAR BACK
   393	020246	254 00 0 00 020423 		JRST	CPOPJ1			;SKIP RETURN
   394
   395	020247	260 17 0 00 022111 	SELXR:	GO	DEVSEL			;SELECT DEVICE
   396	020250	254 00 0 00 020106 		JRST	SELX
   397
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 11
DIAMON	MAC	23-Apr-80 13:27		RUNPRG - RETRIEVE AND RUN SINGLE PROGRAM                                           SEQ 0042

   398	020251	50 00 00 00 00 00 	CMDLST:	SIXBIT/H/
   399	020252	51 00 00 00 00 00 		SIXBIT/I/
   400	020253	64 00 00 00 00 00 		SIXBIT/T/
   401	020254	44 00 00 00 00 00 		SIXBIT/D/
   402	020255	63 00 00 00 00 00 		SIXBIT/S/
   403	020256	46 00 00 00 00 00 		SIXBIT/F/
   404	020257	54 00 00 00 00 00 		SIXBIT/L/
   405	020260	47 00 00 00 00 00 		SIXBIT/G/
   406	020261	70 00 00 00 00 00 		SIXBIT/X/
   407	020262	62 00 00 00 00 00 		SIXBIT/R/
   408	020263	000000	000000			0
   409	020264	63 64 44 00 00 00 		SIXBIT/STD/
   410	020265	63 64 54 00 00 00 		SIXBIT/STL/
   411	020266	63 64 55 00 00 00 		SIXBIT/STM/
   412	020267	44 44 64 00 00 00 		SIXBIT/DDT/
   413	020270	63 64 41 62 64 00 		SIXBIT/START/
   414	020271	63 46 63 64 62 64 		SIXBIT/SFSTRT/
   415	020272	60 46 63 64 62 64 		SIXBIT/PFSTRT/
   416	020273	62 45 45 00 00 00 		SIXBIT/REE/
   417	020274	63 64 41 62 64 21 		SIXBIT/START1/
   418	020275	63 64 41 62 64 22 		SIXBIT/START2/
   419	020276	63 64 41 62 64 23 		SIXBIT/START3/
   420	020277	63 64 41 62 64 24 		SIXBIT/START4/
   421	020300	63 64 41 62 64 25 		SIXBIT/START5/
   422	020301	000000	000000			0
   423
   424	020302	000000	020363		CMDADR:	CMDHLP
   425	020303	000000	020373			STORED
   426	020304	000000	020376			TTYCMD
   427	020305	000000	020404			DEVCMD
   428	020306	000000	020204			RUNPRG
   429	020307	000000	022275			DIRECT
   430	020310	000000	022271			LIST1
   431	020311	000000	024074			SADRQ
   432	020312	000000	021410			SAXPN
   433	020313	000000	020247			SELXR
   434	020314	000000	000000			0
   435	020315	000000	000440			$STD
   436	020316	000000	000442			$STL
   437	020317	000000	000443			$STM
   438	020320	000000	000441			$DDT
   439	020321	000000	030000			DIAGNOS
   440	020322	000000	030004			SFSTRT
   441	020323	000000	030005			PFSTRT
   442	020324	000000	030006			REENTR
   443	020325	000000	030013			START1
   444	020326	000000	030014			START2
   445	020327	000000	030015			START3
   446	020330	000000	030016			START4
   447	020331	000000	030017			START5
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 12
DIAMON	MAC	23-Apr-80 13:27		RUNPRG - RETRIEVE AND RUN SINGLE PROGRAM                                           SEQ 0043

   448					;*WHAT - IDENTIFY LAST PROGRAM
   449
   450	020332	200 17 0 00 025144 	WHAT:	MOVE	P,[-40,,PLIST]
   451	020333	260 17 0 00 021567 		GO	CRLF1
   452	020334	200 16 0 00 025650 		MOVE	IP,SAVEIP
   453	020335	260 17 0 00 020337 		GO	NAMPNT			;PRINT TITLE OF LAST PROGRAM
   454	020336	254 00 0 00 020000 		JRST	START
   455
   456					;*NAMPNT - PRINT FILE NAME AND EXTENSION
   457
   458	020337	200 01 0 16 000000 	NAMPNT:	MOVE	A,(IP)
   459	020340	260 17 0 00 020347 		GO	SIXBP
   460	020341	201 00 0 00 000056 		MOVEI	"."
   461	020342	260 17 0 00 021513 		GO	PRINT
   462	020343	510 01 0 16 000001 		HLLZ	A,1(IP)
   463	020344	260 17 0 00 020347 		GO	SIXBP
   464	020345	260 17 0 00 021567 		GO	CRLF1
   465	020346	263 17 0 00 000000 		RTN
   466
   467					;*SIXBP - SIX BIT PRINTER
   468
   469	020347	201 02 0 00 000000 	SIXBP:	MOVEI	B,0			;SO DON'T SHIFT IN JUNK
   470	020350	402 00 0 00 000000 		SETZM	F
   471	020351	246 00 0 00 000006 		LSHC	F,6			;GET A SIXBIT CHAR
   472	020352	271 00 0 00 000040 		ADDI	F,40			;MAKE IT ASCII
   473	020353	260 17 0 00 021513 		GO	PRINT			;TYPE IT
   474	020354	326 01 0 00 020347 		JUMPN	A,SIXBP			;IF ANY MORE, TYPE THEM
   475	020355	263 17 0 00 000000 	CPOPJ:	RTN
   476
   477					;*PNT16 - PRINT ASCII CHAR IN AC16
   478
   479	020356	261 17 0 00 000000 	PNT16:	PUT	0
   480	020357	200 00 0 00 000016 		MOVE	0,16
   481	020360	260 17 0 00 021513 		GO	PRINT
   482	020361	262 17 0 00 000000 		GET	0
   483	020362	263 17 0 00 000000 		RTN
   484
   485					;*CMDHLP, PRINT HELP TEXT
   486
   487	020363	332 00 0 00 025520 	CMDHLP:	SKIPE	HLPCLR#			;HAS HELP BEEN OVERWRITTEN ?
   488	020364	254 00 0 00 020370 		JRST	.+4			;YES
   489	020365	201 00 0 00 025772 		MOVEI	HELP			;PRINT HELP
   490	020366	260 17 0 00 021462 		PNTAL
   491	020367	254 00 0 00 020000 		JRST	START
   492						PMSG	<NO HELP>^
   493	020370	201 00 0 00 025165 		MOVEI	[SIXBIT\NO HELP_\]
   494	020371	260 17 0 00 021426 		PNTMSG^
   495	020372	254 00 0 00 020000 		JRST	START
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 13
DIAMON	MAC	23-Apr-80 13:27		COMMAND LIST PROCESSING                                                            SEQ 0044

   496					SUBTTL	COMMAND LIST PROCESSING
   497
   498					;*STORED - USE INTERNAL COMMAND LIST
   499
   500	020373	402 00 0 00 025627 	STORED:	SETZM	LPTFLG
   501	020374	260 17 0 00 020677 		GO	CXPND			;SETUP EXPANDED OPERATIONS
   502	020375	254 00 0 00 020561 		JRST	EX
   503
   504					;*TTYCMD - TELETYPE INPUT COMMAND LIST
   505
   506	020376				TTYCMD:	PMSG	<^NAME]PASSES]RH SWS]ITERATIONS^>^
   507	020376	201 00 0 00 025167 		MOVEI	[SIXBIT\^NAME]PASSES]RH SWS]ITERATIONS^_\]
   508	020377	260 17 0 00 021426 		PNTMSG^
   509	020400	201 16 0 00 025754 	CMNCMD:	MOVEI	IP,INLIST
   510	020401	260 17 0 00 020432 		GO	FLNAME
   511	020402	254 00 0 00 020401 		JRST	.-1			;INPUT TILL ^Z
   512	020403	254 00 0 00 020373 		JRST	STORED
   513
   514					;*DEVCMD - DEVICE COMMAND LIST
   515
   516	020404	476 00 0 00 025625 	DEVCMD:	SETOM	DEVFLG			;SET DEVICE CMD LIST FLAG
   517	020405	254 00 0 00 020204 		JRST	RUNPRG			;GET COMMAND FILE
   518
   519	020406	402 00 0 00 025625 	DEVCM1:	SETZM	DEVFLG			;CLEAR DEVICE CMD LIST FLAG
   520	020407	476 00 0 00 025626 		SETOM	DINFLG			;SET "READ" FOR DEVICE IN
   521	020410	402 00 0 00 025623 		SETZM	PGMGO			;CLEAR FOR COMMAND OPERATION
   522	020411	200 05 0 00 025175 		MOVE	DPNTR,[POINT 7,31000]
   523	020412	254 00 0 00 020400 		JRST	CMNCMD			;GO RUN COMMAND LIST
   524
   525	020413	200 13 0 00 025175 	DEVCM2:	MOVE	13,[POINT 7,31000]
   526	020414	260 17 0 00 022437 		GO	LDACHR			;READ A CHAR
   527	020415	254 00 0 00 020420 		JRST	.+3			;EOF
   528	020416	136 16 0 00 000013 		IDPB	16,13
   529	020417	254 00 0 00 020414 		JRST	.-3
   530	020420	201 16 0 00 000177 		MOVEI	16,177			;FLAG END OF INPUT
   531	020421	136 16 0 00 000013 		IDPB	16,13
   532	020422	260 17 0 00 023540 		GO	STOP			;STOP DEVICE
   533	020423	350 00 0 17 000000 	CPOPJ1:	AOS	(P)			;DONE, RETURN TO "DEVCM1"
   534	020424	263 17 0 00 000000 		RTN
   535
   536	020425	134 00 0 00 000005 	DEVRD:	ILDB	0,DPNTR			;GET CHARS FROM 31000 UP
   537	020426	322 00 0 00 020425 		JUMPE	0,.-1			;IGNORE NULLS
   538	020427	306 00 0 00 000177 		CAIN	0,177
   539	020430	254 00 0 00 020423 		JRST	CPOPJ1			;177 BYTE SIGNIFIES END
   540	020431	254 00 0 00 022010 		JRST	READ1			;FOR "READ"
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 14
DIAMON	MAC	23-Apr-80 13:27		FLNAME - FILE NAME AND CONTROL INFO INPUT                                          SEQ 0045

   541					SUBTTL	FLNAME - FILE NAME AND CONTROL INFO INPUT
   542
   543	020432	402 00 0 00 025644 	FLNAME:	SETZM	SCFLAG
   544	020433	402 00 0 00 020012 		SETZM	SUSERF
   545	020434	661 06 0 00 400000 		TLO	LET,400000		;SET LETTERS FLAG
   546	020435	400 10 0 00 000000 		SETZ	NAM1,			;CLEAR CONTROLS
   547	020436	403 07 0 00 000012 		SETZB	NAM,DIGIT
   548	020437	201 11 0 00 000036 		MOVEI	NAM2,^D30		;SETUP CHAR POSITIONING
   549
   550					;*FLNMLP - INPUT AND PROCESS CHARACTERS
   551
   552	020440	260 17 0 00 022005 	FLNMLP:	GO	READ
   553	020441	306 00 0 00 000032 		CAIN	32
   554	020442	254 00 0 00 020423 		JRST	CPOPJ1			;^Z, LOGICAL END OF INPUT
   555	020443	306 00 0 00 000012 		CAIN	12
   556	020444	254 00 0 00 020520 		JRST	CRRTN			;CR, (ACTUALLY LF) COMPLETES LINE
   557	020445	332 00 0 00 025644 		SKIPE	SCFLAG
   558	020446	254 00 0 00 020440 		JRST	FLNMLP			;<;> TYPED, IGNORE REST OF LINE
   559	020447	306 00 0 00 000073 		CAIN	73
   560	020450	254 00 0 00 020506 		JRST	SCSET			;<;>
   561	020451	306 00 0 00 000177 		CAIN	177
   562	020452	254 00 0 00 020515 		JRST	RBOUT			;RUBOUT
   563	020453	306 00 0 00 000055 		CAIN	55			;MINUS IS SPECIAL USER MODE FLAG
   564	020454	254 00 0 00 020504 		JRST	MINUS
   565	020455	306 00 0 00 000011 		CAIN	11
   566	020456	254 00 0 00 020500 		JRST	TTAB			;TAB IS FIELD SEPARATOR
   567	020457	322 00 0 00 020440 		JUMPE	FLNMLP			;REJECT 0'S
   568	020460	325 06 0 00 020474 		JUMPGE	LET,FLNAM2		;JUMP IF ASSEMBLE DIGITS
   569
   570					;*FLNAM1 - FILE NAME PROCESS
   571
   572	020461	306 00 0 00 000056 	FLNAM1:	CAIN	56
   573	020462	254 00 0 00 020472 		JRST	PERIOD			;DOT, NAME.EXT SEPARATOR
   574	020463	275 00 0 00 000040 		SUBI	40			;CONVERT TO 6BIT
   575	020464	321 00 0 00 020515 		JUMPL	RBOUT			;CNTL CHAR, TREAT AS RUBOUT
   576	020465	322 00 0 00 020515 		JUMPE	RBOUT			;0 IS ERROR
   577	020466	242 00 0 11 000000 		LSH	0,(NAM2)		;POSITION CHAR
   578	020467	434 07 0 00 000000 		IOR	NAM,0			;MERGE INTO NAME
   579	020470	275 11 0 00 000006 		SUBI	NAM2,6			;CHANGE POSITIONING FOR NEXT
   580	020471	254 00 0 00 020440 		JRST	FLNMLP			;GET NEXT CHAR
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 15
DIAMON	MAC	23-Apr-80 13:27		FLNAME - FILE NAME AND CONTROL INFO INPUT                                          SEQ 0046

   581					;*PERIOD - STORE FILE NAME, GO PROCESS EXTENSION
   582
   583	020472	202 07 0 00 000010 	PERIOD:	MOVEM	NAM,NAM1		;SAVE FILE NAME
   584	020473	254 00 0 00 020436 		JRST	FLNAME+4		;PROCESS EXTENTION
   585
   586					;*FLNAM2 - PROCESS DIGITS
   587
   588	020474	200 13 0 00 000000 	FLNAM2:	MOVE	DIGITA,0
   589	020475	242 13 0 00 000041 		LSH	DIGITA,^D33
   590	020476	246 12 0 00 000003 		LSHC	DIGIT,3			;ASSEMBLE DIGITS
   591	020477	254 00 0 00 020440 		JRST	FLNMLP
   592
   593					;*TTAB - FIELD SEPARATOR, STORE PREVIOUS FIELD
   594
   595	020500	202 14 0 00 000015 	TTAB:	MOVEM	DIGIT1,DIGIT2
   596	020501	202 12 0 00 000014 		MOVEM	DIGIT,DIGIT1
   597	020502	403 06 0 00 000012 		SETZB	LET,DIGIT
   598	020503	254 00 0 00 020437 		JRST	FLNMLP-1
   599
   600					;*MINUS - SET SPECIAL USER MODE
   601
   602	020504	476 00 0 00 020012 	MINUS:	SETOM	SUSERF			;MINUS, SET SPECIAL USER FLAG
   603	020505	254 00 0 00 020435 		JRST	FLNAME+3
   604
   605					;*SCSET - SEMICOLON, REST IS COMMENT
   606
   607	020506	476 00 0 00 025644 	SCSET:	SETOM	SCFLAG
   608	020507	254 00 0 00 020440 		JRST	FLNMLP
   609
   610					;*ZEROAC - ZERO AC'S BEFORE STARTING PROGRAM
   611
   612	020510	205 16 0 00 777762 	ZEROAC:	MOVSI	16,-16
   613	020511	402 00 0 16 000000 		SETZM	0(16)
   614	020512	253 16 0 00 020511 		AOBJN	16,.-1
   615	020513	402 00 0 00 000016 		SETZM	16
   616	020514	263 17 0 00 000000 		RTN
   617
   618	020515				RBOUT:	PMSG	<XXX^>^
   619	020515	201 00 0 00 025176 		MOVEI	[SIXBIT\XXX^_\]
   620	020516	260 17 0 00 021426 		PNTMSG^
   621	020517	254 00 0 00 020432 		JRST	FLNAME
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 16
DIAMON	MAC	23-Apr-80 13:27		FLNAME - FILE NAME AND CONTROL INFO INPUT                                          SEQ 0047

   622					;*COMMAND LIST FORMAT
   623					;*	NAME
   624					;*	EXT,,ITERATIONS	(BIT 18 SET IF SPEC USER)
   625					;*	PASSES,,SWITCHES
   626
   627					;*CRRTN - CR, STORE COMMAND LIST INFORMATION
   628
   629	020520	402 00 0 00 025644 	CRRTN:	SETZM	SCFLAG
   630	020521	336 00 0 00 000007 		SKIPN	NAM
   631	020522	322 10 0 00 020432 		JUMPE	NAM1,FLNAME		;REPEAT IF JUST CR
   632	020523	336 00 0 00 000010 		SKIPN	NAM1			;NAME ONLY ?
   633	020524	250 07 0 00 000010 		EXCH	NAM,NAM1		;YES
   634	020525	202 10 0 16 000000 		MOVEM	NAM1,(IP)		;STORE THE FILE NAME
   635	020526	512 07 0 16 000001 		HLLZM	NAM,1(IP)		;AND EXTENSION
   636	020527	620 12 0 00 400000 		TRZ	DIGIT,400000
   637	020530	332 00 0 00 020012 		SKIPE	SUSERF
   638	020531	660 12 0 00 400000 		TRO	DIGIT,400000		;SET SPEC USER BIT
   639	020532	542 12 0 16 000001 		HRRM	DIGIT,1(IP)		;ITERATIONS (IF SPEC USER BIT 18 SET)
   640	020533	504 14 0 00 000015 		HRL	DIGIT1,DIGIT2		;PASSES,,SWITCHES
   641	020534	202 14 0 16 000002 		MOVEM	DIGIT1,2(IP)
   642	020535	271 16 0 00 000003 		ADDI	IP,3			;INCREMENT POINTER
   643	020536	402 00 0 16 000000 	CRRTN1:	SETZM	(IP)			;CLEAR LAST WORD
   644	020537	301 16 0 00 025772 		CAIL	IP,HELP			;OVERWITTEN HELP MESSAGE ?
   645	020540	476 00 0 00 025520 		SETOM	HLPCLR			;YES, NO MORE HELP AVAILABLE
   646	020541	305 16 0 00 026770 		CAIGE	IP,INLEND
   647	020542	263 17 0 00 000000 		RTN
   648
   649	020543				FULL:	PMSG	<^CMDLST TOO LONG>^
   650	020543	201 00 0 00 025177 		MOVEI	[SIXBIT\^CMDLST TOO LONG_\]
   651	020544	260 17 0 00 021426 		PNTMSG^
   652	020545	254 00 0 00 020000 		JRST	START
   653
   654	020546				EXNOE:	PMSG	<^USER ONLY>^
   655	020546	201 00 0 00 025202 		MOVEI	[SIXBIT\^USER ONLY_\]
   656	020547	260 17 0 00 021426 		PNTMSG^
   657	020550	254 00 0 00 020553 		JRST	EXBAD
   658
   659	020551				EXNOU:	PMSG	<^EXEC ONLY>^
   660	020551	201 00 0 00 025204 		MOVEI	[SIXBIT\^EXEC ONLY_\]
   661	020552	260 17 0 00 021426 		PNTMSG^
   662
   663	020553	201 00 0 00 000001 	EXBAD:	MOVEI	0,1			;SET CMD LIST PASS COUNT TO INHIBIT
   664	020554	506 00 0 16 000002 		HRLM	0,2(IP)			;FURTHER REQUEST OF THIS PROGRAM
   665						PMSG	<^UNCHAINABLE->^
   666	020555	201 00 0 00 025206 		MOVEI	[SIXBIT\^UNCHAINABLE-_\]
   667	020556	260 17 0 00 021426 		PNTMSG^
   668	020557	260 17 0 00 020337 		GO	NAMPNT			;INCORRECT FORMAT
   669	020560	254 00 0 00 020656 		JRST	RET
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 17
DIAMON	MAC	23-Apr-80 13:27		EXECUTE THE INPUT COMMAND LIST                                                     SEQ 0048

   670					SUBTTL	EXECUTE THE INPUT COMMAND LIST
   671
   672					;*EX - INITIALIZATION
   673
   674	020561	402 00 0 00 020013 	EX:	SETZM	PASS
   675	020562	260 17 0 00 021567 		GO	CRLF1
   676	020563	332 00 0 00 020006 		SKIPE	USER
   677	020564	260 17 0 00 021757 		GO	LHSWS			;GET LH CONTROL SWITCHES
   678	020565	402 00 0 00 025651 	EX5:	SETZM	RUNCTL
   679	020566	201 16 0 00 025754 		MOVEI	IP,INLIST		;INIT LIST POINTER
   680	020567	350 00 0 00 020013 		AOS	PASS
   681
   682					;*EX1 - START PASS
   683
   684	020570	202 16 0 00 025650 	EX1:	MOVEM	IP,SAVEIP
   685	020571	402 00 0 00 020012 		SETZM	SUSERF
   686	020572	336 00 0 16 000000 		SKIPN	(IP)
   687	020573	254 00 0 00 020674 		JRST	EX4			;NO PROGRAMS TO RUN
   688	020574	554 01 0 16 000002 		HLRZ	1,2(IP)			;GET PASSES TO RUN
   689	020575	322 01 0 00 020600 		JUMPE	1,.+3			;0, RUN ALWAYS
   690	020576	315 01 0 00 020013 		CAMGE	1,PASS			;RUN FOR REQUESTED PASSES
   691	020577	254 00 0 00 020656 		JRST	RET
   692	020600	200 00 0 16 000001 		MOVE	1(IP)			;PROG RUN IN SPECIAL
   693	020601	602 00 0 00 400000 		TRNE	400000
   694	020602	476 00 0 00 020012 		SETOM	SUSERF			;USER MODE ?
   695
   696					;*EX2 - PRINT NAME AND LOAD PROGRAM
   697
   698	020603	260 17 0 00 022043 	EX2:	SWITCH				;READ SWITCHES
   699	020604	607 00 0 00 000004 		TLNN	0,CHAIN			;INHIBIT TITLE PRINT ?
   700	020605	260 17 0 00 020337 		GO	NAMPNT
   701	020606	260 17 0 00 022321 		GO	DIAGLD-2		;GET THE PROGRAM
   702	020607	254 00 0 00 020656 		JRST	RET			;PROGRAM NOT FOUND
   703
   704					;*EX3 - SETUP PROGRAM OPERATION PARAMETERS
   705
   706	020610	200 16 0 00 025650 	EX3:	MOVE	IP,SAVEIP
   707	020611	550 01 0 16 000001 		HRRZ	1,1(IP)			;GET THE ITERATION COUNT
   708	020612	620 01 0 00 400000 		TRZ	1,400000		;CLEAR SPEC USER, IF SET
   709	020613	260 17 0 00 022043 		SWITCH				;READ SWITCHES
   710	020614	607 00 0 00 000400 		TLNN	0,RELIAB		;RELIABILITY MODE ?
   711	020615	242 01 0 00 777772 		LSH	1,-6			;NO, 100(8):1 REDUCTION
   712	020616	336 00 0 00 000001 		SKIPN	1
   713	020617	271 01 0 00 000001 		ADDI	1,1			;ALWAYS ALLOW 1 ITERATION
   714	020620	202 01 0 00 020005 		MOVEM	1,ITERAT
   715	020621	210 00 0 00 020013 		MOVN	PASS
   716	020622	504 00 0 16 000002 		HRL	2(IP)			;SETUP MONITR CONTROL
   717	020623	200 01 0 00 030002 		MOVE	1,30002
   718	020624	312 01 0 00 025211 		CAME	1,[JRST	@27774]
   719	020625	254 00 0 00 020553 		JRST	EXBAD			;INCORRECT FORMAT
   720	020626	332 00 0 00 020006 		SKIPE	USER			;IN USER MODE ?
   721	020627	254 00 0 00 020633 		JRST	EXUSR			;YES
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 18
DIAMON	MAC	23-Apr-80 13:27		EXECUTE THE INPUT COMMAND LIST                                                     SEQ 0049

   722	020630	332 00 0 00 030031 	EXEXEC:	SKIPE	$EMODE			;EXEC, THIS PROG RUN IN EXEC ?
   723	020631	254 00 0 00 020636 		JRST	EXNEW			;YES
   724	020632	254 00 0 00 020546 		JRST	EXNOE			;NO
   725	020633	332 00 0 00 030032 	EXUSR:	SKIPE	$UMODE			;USER, THIS PROGRAM RUN IN USER ?
   726	020634	254 00 0 00 020636 		JRST	EXNEW			;YES
   727	020635	254 00 0 00 020551 		JRST	EXNOU			;NO
   728
   729	020636	476 00 0 00 025651 	EXNEW:	SETOM	RUNCTL
   730	020637	206 00 0 00 030043 		MOVSM	MONCTL			;LH = -PASS COUNT, RH = RH SWITCHES
   731	020640	200 00 0 00 020015 		MOVE	0,RANBAS		;GENERATE PROG RANDOM BASE NUMBER
   732	020641	270 00 0 00 025212 		ADD	0,[165742335216]
   733	020642	241 00 0 00 777777 		ROT	0,-1
   734	020643	447 00 0 00 020015 		EQVB	0,RANBAS
   735	020644	202 00 0 00 030022 		MOVEM	0,RANDBS		;PUT IN PROG DATA AREA
   736
   737					;*RERUN1 - DISPATCH TO EXPANDED SETUP
   738
   739	020645	254 00 0 00 021057 	RERUN1:	JRST	XPNRUN
   740
   741					;*RUN - PROGRAM RUN, CLEAR PROCESSOR FOR NEXT
   742
   743	020646	332 00 0 00 020006 	RUN:	SKIPE	USER
   744	020647	254 00 0 00 020652 		JRST	.+3
   745	020650	7 004 20 0 00 010000 		CONO	PI,PICLR
   746	020651	7 000 20 0 00 200000 		CONO	APR,IOCLR
   747	020652	200 17 0 00 025144 		MOVE	P,[-40,,PLIST]
   748	020653	200 16 0 00 025650 		MOVE	IP,SAVEIP
   749	020654	332 00 0 00 020010 		SKIPE	KLFLG			;CHECK IF KL10
   750	020655	260 17 0 00 022055 		GO	DTEINT			;CLEAR DTE
   751
   752					;*RET - ANY MORE PROGRAMS ON COMMAND LIST
   753
   754	020656	271 16 0 00 000003 	RET:	ADDI	IP,3			;INCREMENT POINTER TO NEXT COMMAND
   755	020657	332 00 0 16 000000 		SKIPE	(IP)
   756	020660	254 00 0 00 020570 		JRST	EX1			;RUN NEXT PROGRAM
   757	020661	336 00 0 00 025651 		SKIPN	RUNCTL			;ANY PROGRAMS RUN THIS PASS ?
   758	020662	254 00 0 00 020674 		JRST	EX4			;NO
   759	020663	260 17 0 00 021567 		GO	CRLF1			;PRINT A CARRIAGE RETURN AND LINE FEED
   760	020664	200 01 0 00 025562 		MOVE	A,PGNAME		;GET PROGRAM NAME
   761	020665	260 17 0 00 020347 		GO	SIXBP			;PRINT IT
   762						PMSG	< PASS >^
   763	020666	201 00 0 00 025213 		MOVEI	[SIXBIT\ PASS _\]
   764	020667	260 17 0 00 021426 		PNTMSG^
   765	020670	200 00 0 00 020013 		MOVE	PASS			;PRINT PASS COUNTER
   766	020671	260 17 0 00 021504 		GO	PNTDEC
   767	020672	260 17 0 00 021567 		GO	CRLF1
   768	020673	254 00 0 00 020565 		JRST	EX5
   769
   770					;*EX4 - ALL FINISHED
   771
   772	020674				EX4:	PMSG	<^CMD'S REQUIRED>^
   773	020674	201 00 0 00 025215 		MOVEI	[SIXBIT\^CMD'S REQUIRED_\]
   774	020675	260 17 0 00 021426 		PNTMSG^
   775	020676	254 00 0 00 020045 		JRST	SELECT
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 19
DIAMON	MAC	23-Apr-80 13:27		EXPANDED COMMAND FORMAT SETUP                                                      SEQ 0050

   776					SUBTTL	EXPANDED COMMAND FORMAT SETUP
   777
   778					;*CXPND - EXPANDED ALLOWED
   779
   780	020677	332 00 0 00 020006 	CXPND:	SKIPE	USER
   781	020700	263 17 0 00 000000 		RTN				;NO EXPANDED FEATURES IN USER MODE
   782	020701	336 00 0 00 020010 		SKIPN	KLFLG
   783	020702	332 00 0 00 020011 		SKIPE	KAIFLG
   784	020703	254 00 0 00 020705 		JRST	CXPND1			;EXEC KL10 OR KI10
   785	020704	263 17 0 00 000000 		RTN				;NO FEATURES FOR KA10
   786
   787	020705	260 17 0 00 022043 	CXPND1:	SWITCH
   788	020706	606 00 0 00 400000 		TRNN	XPAND			;ALLOW EXPANDED FEATURES ?
   789	020707	263 17 0 00 000000 		RTN				;NO
   790
   791					;*STRD2 - CLOCK MARGINS
   792
   793	020710	332 00 0 00 020010 	STRD2:	SKIPE	KLFLG
   794	020711	254 00 0 00 020721 		JRST	STRD3
   795						PMSG	<^Y FOR CLOCK MARGINS - >^
   796	020712	201 00 0 00 025220 		MOVEI	[SIXBIT\^Y FOR CLOCK MARGINS - _\]
   797	020713	260 17 0 00 021426 		PNTMSG^
   798	020714	260 17 0 00 020236 		GO	TT2CHR
   799	020715	254 00 0 00 020721 		JRST	STRD3			;CR, NO CLOCK MARGINS
   800	020716	306 00 0 00 000131 		CAIN	"Y"
   801	020717	477 00 0 00 025634 		SETOB	0,CLKFLG		;IF Y SET FLAG
   802	020720	325 00 0 00 020712 		JUMPGE	0,STRD2+2		;OTHER IS GOOF
   803
   804					;*STRD3 - SPECIAL USER MODE
   805
   806	020721				STRD3:	PMSG	<^Y OR A FOR SPECIAL USER MODE - >^
   807	020721	201 00 0 00 025224 		MOVEI	[SIXBIT\^Y OR A FOR SPECIAL USER MODE - _\]
   808	020722	260 17 0 00 021426 		PNTMSG^
   809	020723	260 17 0 00 020236 		GO	TT2CHR
   810	020724	254 00 0 00 020732 		JRST	STRD4			;CR, NO SPECIAL USER
   811	020725	306 00 0 00 000131 		CAIN	"Y"
   812	020726	477 00 0 00 025635 		SETOB	0,USRFLG		;IF Y SET FLAG
   813	020727	306 00 0 00 000101 		CAIN	"A"			;A, USER AFTER 1ST PASS
   814	020730	254 00 0 00 020750 		JRST	STRD3A
   815	020731	325 00 0 00 020721 		JUMPGE	0,STRD3			;OTHER IS GOOF
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 20
DIAMON	MAC	23-Apr-80 13:27		EXPANDED COMMAND FORMAT SETUP                                                      SEQ 0051

   816					;*STRD4 - CONCEALED, PUBLIC OR ALTERNATE
   817
   818	020732	336 00 0 00 025635 	STRD4:	SKIPN	USRFLG
   819	020733	254 00 0 00 020754 		JRST	STRD5
   820						PMSG	<^C=CONCEALED,P=PUBLIC,A=ALTERNATE->^
   821	020734	201 00 0 00 025232 		MOVEI	[SIXBIT\^C=CONCEALED,P=PUBLIC,A=ALTERNATE-_\]
   822	020735	260 17 0 00 021426 		PNTMSG^
   823	020736	260 17 0 00 020236 		GO	TT2CHR
   824	020737	254 00 0 00 020734 		JRST	STRD4+2			;CR ONLY, ERROR
   825	020740	306 00 0 00 000103 		CAIN	"C"
   826	020741	477 00 0 00 025636 		SETOB	0,CNSFLG		;IF C SET FLAG
   827	020742	306 00 0 00 000101 		CAIN	"A"			;A, ALTERNATE PUBLIC
   828	020743	254 00 0 00 020752 		JRST	STRD4A			;& CONCEAL
   829	020744	306 00 0 00 000120 		CAIN	"P"
   830	020745	476 00 0 00 000000 		SETOM	0			;P, RUN PUBLIC
   831	020746	325 00 0 00 020734 		JUMPGE	0,STRD4+2		;OTHER IS GOOF
   832	020747	254 00 0 00 020754 		JRST	STRD5
   833
   834	020750	202 00 0 00 025635 	STRD3A:	MOVEM	0,USRFLG		;USRFLG + ='S
   835	020751	254 00 0 00 020732 		JRST	STRD4			;SPECIAL USER AFTER 1ST PASS
   836
   837	020752	202 00 0 00 025636 	STRD4A:	MOVEM	0,CNSFLG		;CNSFLG + ='S
   838	020753	254 00 0 00 020754 		JRST	STRD5			;ALTERNATE PUBLIC & CONCEAL
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 21
DIAMON	MAC	23-Apr-80 13:27		EXPANDED COMMAND FORMAT SETUP                                                      SEQ 0052

   839					;*STRD5 - VOLTAGE MARGINS
   840
   841	020754	332 00 0 00 020010 	STRD5:	SKIPE	KLFLG
   842	020755	254 00 0 00 021025 		JRST	STRD7
   843	020756	403 01 0 00 000002 		SETZB	1,2
   844						PMSG	<^L,S,I,R FOR VOLTAGE MARGINS->^
   845	020757	201 00 0 00 025240 		MOVEI	[SIXBIT\^L,S,I,R FOR VOLTAGE MARGINS-_\]
   846	020760	260 17 0 00 021426 		PNTMSG^
   847	020761	260 17 0 00 020236 		GO	TT2CHR			;TELETYPE INPUT
   848	020762	254 00 0 00 020773 		JRST	STRD5C			;CR, NO MARGINS
   849	020763	306 00 0 00 000114 		CAIN	"L"
   850	020764	660 01 0 00 000001 		TRO	1,1			;L-LIMITS
   851	020765	306 00 0 00 000123 		CAIN	"S"
   852	020766	660 01 0 00 000002 		TRO	1,2			;S-SWEPT
   853	020767	306 00 0 00 000111 		CAIN	"I"
   854	020770	660 01 0 00 000004 		TRO	1,4			;I-SPECIFY INCREMENT
   855	020771	306 00 0 00 000122 		CAIN	"R"
   856	020772	660 01 0 00 000010 		TRO	1,10			;R-SPECIFY RACK
   857	020773	202 01 0 00 025530 	STRD5C:	MOVEM	1,MGNFLG#
   858	020774	201 02 0 00 000014 		MOVEI	2,VOLTLM		;L- 31+-12, 4.75 TO 5.25V
   859	020775	606 01 0 00 000001 		TRNN	1,1
   860	020776	201 02 0 00 000001 		MOVEI	2,1			;V- MARGIN INCREMENT = 1
   861	020777	202 02 0 00 025531 	STRD5A:	MOVEM	2,MGNINC#
   862	021000	626 01 0 00 000004 		TRZN	1,4			;SPECIFY INCREMENT ?
   863	021001	254 00 0 00 021013 		JRST	STRD6			;NO
   864						PMSG	<^MARGIN INCREMENT(1 TO 17)->^
   865	021002	201 00 0 00 025245 		MOVEI	[SIXBIT\^MARGIN INCREMENT(1 TO 17)-_\]
   866	021003	260 17 0 00 021426 		PNTMSG^
   867	021004	260 17 0 00 021765 		TTIOCT
   868	021005	254 00 0 00 021002 		JRST	STRD5A+3
   869	021006	322 12 0 00 021002 		JUMPE	DIGIT,STRD5A+3		;INPUT COMPLETE
   870	021007	301 00 0 00 000020 		CAIL	0,20			;LIMIT TO 1-20
   871	021010	254 00 0 00 021002 		JRST	STRD5A+3
   872	021011	200 02 0 00 000000 		MOVE	2,0
   873	021012	254 00 0 00 020777 		JRST	STRD5A			;SAVE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 22
DIAMON	MAC	23-Apr-80 13:27		EXPANDED COMMAND FORMAT SETUP                                                      SEQ 0053

   874	021013	606 01 0 00 000010 	STRD6:	TRNN	1,10			;SPECIFY RACK ?
   875	021014	254 00 0 00 021025 		JRST	STRD7			;NO
   876						PMSG	<^RACK(0 TO 37)->^
   877	021015	201 00 0 00 025252 		MOVEI	[SIXBIT\^RACK(0 TO 37)-_\]
   878	021016	260 17 0 00 021426 		PNTMSG^
   879	021017	260 17 0 00 021765 		TTIOCT
   880	021020	254 00 0 00 021015 		JRST	STRD6+2
   881	021021	301 00 0 00 000040 		CAIL	0,40			;LIMIT TO 0-37
   882	021022	254 00 0 00 021015 		JRST	STRD6+2
   883	021023	202 00 0 00 025642 		MOVEM	0,MGNADR
   884	021024	476 00 0 00 025643 		SETOM	RACKF			;SET RACK SELECTED FLAG
   885	021025	336 00 0 00 025530 	STRD7:	SKIPN	MGNFLG			;MARGINS ?
   886	021026	254 00 0 00 021035 		JRST	STRD8			;NO
   887	021027	201 00 0 00 021036 		MOVEI	MGNMSG
   888	021030	260 17 0 00 021426 		PNTMSG
   889	021031	260 17 0 00 021673 		TTICHR
   890	021032	7 000 24 0 00 000000 		CONI	APR,0			;READ STATUS
   891	021033	607 00 0 00 002000 		TLNN	0,IMGINM
   892	021034	254 00 0 00 021025 		JRST	STRD7			;MARGIN ENABLE NOT SET !
   893
   894	021035	263 17 0 00 000000 	STRD8:	RTN
   895
   896	021036	76 63 45 64 00 55 	MGNMSG:	SIXBIT\^SET MARGIN SELECT OFF^SET MARGIN ENABLE^TYPE CR WHEN READY^_\
   897	021037	41 62 47 51 56 00 
   898	021040	63 45 54 45 43 64 
   899	021041	00 57 46 46 76 63 
   900	021042	45 64 00 55 41 62 
   901	021043	47 51 56 00 45 56 
   902	021044	41 42 54 45 76 64 
   903	021045	71 60 45 00 43 62 
   904	021046	00 67 50 45 56 00 
   905	021047	62 45 41 44 71 76 
   906	021050	77 00 00 00 00 00 
   907
   908					;*MUUOER & USRERR - USER ERROR REPORTING
   909
   910	021051	201 00 0 00 025255 	MUUOER:	MOVEI	MSG	<^MUUO ERROR^>^[SIXBIT\^MUUO ERROR^_\]^
   911	021052	254 00 0 00 021055 		JRST	.+3
   912
   913	021053	000000	000000		USRERR:	0
   914	021054	201 00 0 00 025260 		MOVEI	MSG	<^USER TRAP ERROR^>^[SIXBIT\^USER TRAP ERROR^_\]^
   915	021055	260 17 0 00 021426 		PNTMSG
   916	021056	254 04 0 00 020000 		HALT	START
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 23
DIAMON	MAC	23-Apr-80 13:27		SPECIAL RUN SEQUENCING                                                             SEQ 0054

   917					SUBTTL	SPECIAL RUN SEQUENCING
   918
   919					;*XPNRUN - DETERMINE AND SETUP FOR SPECIAL OPERATIONS
   920
   921	021057	402 00 0 00 025641 	XPNRUN:	SETZM	MGNWRD
   922	021060	402 00 0 00 025640 		SETZM	MGNCNT
   923	021061	336 00 0 00 025643 		SKIPN	RACKF
   924	021062	402 00 0 00 025642 		SETZM	MGNADR
   925	021063	402 00 0 00 025533 		SETZM	MRGNF#
   926	021064	200 00 0 00 020005 		MOVE	ITERAT
   927	021065	202 00 0 00 025532 		MOVEM	MGNITR#
   928	021066	202 00 0 00 025555 		MOVEM	USRITR#
   929	021067	332 00 0 00 025530 		SKIPE	MGNFLG			;VOLTAGE MARGIN ?
   930	021070	254 00 0 00 021231 		JRST	MRGNCK			;YES
   931	021071	332 00 0 00 020006 	XPNRN1:	SKIPE	USER
   932	021072	254 00 0 00 021105 		JRST	XPNRN2			;USER MODE
   933	021073	200 00 0 00 025641 		MOVE	0,MGNWRD
   934	021074	332 00 0 00 025634 		SKIPE	CLKFLG			;CLOCK MARGINS ?
   935	021075	660 00 0 00 004000 		TRO	0,ISPDON		;YES, SET CLOCK MARGIN BIT
   936	021076	202 00 0 00 030055 		MOVEM	0,MARGIN
   937	021077	336 00 0 00 020010 		SKIPN	KLFLG
   938	021100	7 000 14 0 00 030055 		DATAO	APR,MARGIN		;OUTPUT TO MARGIN SYSTEM
   939	021101	332 00 0 00 025533 		SKIPE	MRGNF			;MARGINS ?
   940	021102	7 004 14 0 00 025532 		DATAO	PI,MGNITR		;YES, DISPLAY MARGIN ITERATIONS
   941	021103	332 00 0 00 025635 		SKIPE	USRFLG
   942	021104	254 00 0 00 021114 		JRST	USRRUN			;SPECIAL USER MODE OPERATION
   943	021105	200 00 0 00 020005 	XPNRN2:	MOVE	0,ITERAT
   944	021106	202 00 0 00 030024 		MOVEM	0,ITRCNT
   945	021107	201 00 0 00 021204 		MOVEI	USSR2
   946	021110	202 00 0 00 030012 		MOVEM	RETURN
   947	021111	260 17 0 00 020510 	XPNRN3:	GO	ZEROAC
   948	021112	402 00 0 00 000017 		SETZM	17
   949	021113	254 00 0 00 030002 		JRST	DIAGMN			;GO TO PROGRAM
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 24
DIAMON	MAC	23-Apr-80 13:27		SPECIAL RUN SEQUENCING                                                             SEQ 0055

   950					;*USRRUN - SPECIAL USER MODE RUN SEQUENCING
   951
   952	021114	336 00 0 00 020012 	USRRUN:	SKIPN	SUSERF			;ALLOW SPECIAL USER ?
   953	021115	254 00 0 00 021105 		JRST	XPNRN2			;NO, RUN IN EXEC
   954	021116	332 00 0 00 020010 		SKIPE	KLFLG
   955	021117	254 00 0 00 021122 		JRST	.+3			;KL10
   956	021120	336 00 0 00 025533 		SKIPN	MRGNF			;MARGINNING ?
   957	021121	7 004 14 0 00 025555 		DATAO	PI,USRITR		;NO, DISPLAY USER ITERATIONS
   958	021122	201 00 0 00 000001 		MOVEI	1
   959	021123	202 00 0 00 020005 		MOVEM	ITERAT			;RETURN TO DIAMON AFTER EACH PASS
   960	021124	337 00 0 00 025635 		SKIPG	USRFLG			;USRFLG - ='S RUN ALL
   961	021125	254 00 0 00 021131 		JRST	.+4			;PASSES
   962	021126	200 02 0 00 020013 		MOVE	2,PASS			;USRFLG + AND PASS 1 ='S
   963	021127	306 02 0 00 000001 		CAIN	2,1			;RUN IN EXEC MODE
   964	021130	254 00 0 00 021105 		JRST	XPNRN2
   965	021131	200 00 0 00 020005 		MOVE	ITERAT
   966	021132	202 00 0 00 030024 		MOVEM	ITRCNT
   967	021133	402 00 0 00 030042 		SETZM	MONFLG			;CLEAR MONFLG
   968	021134	205 01 0 00 777400 		MOVSI	1,-400			;SETUP USER PAGE MAP
   969	021135	200 00 0 00 025263 		MOVE	0,[757776,,757777]
   970	021136	332 00 0 00 025636 		SKIPE	CNSFLG			;IF CONCEAL, DON'T SET PUBLIC
   971	021137	200 00 0 00 025264 		MOVE	0,[557776,,557777]
   972	021140	337 00 0 00 025636 		SKIPG	CNSFLG			;CNSFLG + ='S
   973	021141	254 00 0 00 021145 		JRST	.+4			;ALTERNATE PUBLIC & CONCEALED
   974	021142	200 02 0 00 020013 		MOVE	2,PASS
   975	021143	602 02 0 00 000001 		TRNE	2,1			;ODD/EVEN PASS ?
   976	021144	200 00 0 00 025263 		MOVE	0,[757776,,757777]
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 25
DIAMON	MAC	23-Apr-80 13:27		SPECIAL RUN SEQUENCING                                                             SEQ 0056

   977					;*SETUP PAGE MAP AND TRAPS
   978
   979	021145	270 00 0 00 025265 		ADD	0,[2,,2]
   980	021146	202 00 0 01 017000 		MOVEM	0,UPMP(1)
   981	021147	253 01 0 00 021145 		AOBJN	1,.-2
   982	021150	200 00 0 00 025266 		MOVE	0,[UPMP+160,,UPMP+400]	;SET EPPM SAME AS USER 340-377
   983	021151	251 00 0 00 017417 		BLT	0,UPMP+417
   984	021152	200 00 0 00 025267 		MOVE	0,[JSR USRERR]
   985	021153	202 00 0 00 017420 		MOVEM	0,UPMP+420
   986	021154	202 00 0 00 017422 		MOVEM	0,UPMP+422
   987	021155	202 00 0 00 017423 		MOVEM	0,UPMP+423
   988	021156	205 00 0 00 255000 		MOVSI	0,(JFCL)
   989	021157	202 00 0 00 017421 		MOVEM	0,UPMP+421
   990	021160	201 00 0 00 021051 		MOVEI	0,MUUOER
   991	021161	202 00 0 00 017430 		MOVEM	0,UPMP+430
   992	021162	202 00 0 00 017431 		MOVEM	0,UPMP+431
   993	021163	202 00 0 00 017432 		MOVEM	0,UPMP+432
   994	021164	202 00 0 00 017433 		MOVEM	0,UPMP+433
   995	021165	201 00 0 00 021316 		MOVEI	0,MUUOH			;SETUP FOR HANDLER
   996	021166	202 00 0 00 017434 		MOVEM	0,UPMP+434
   997	021167	202 00 0 00 017435 		MOVEM	0,UPMP+435
   998	021170	202 00 0 00 017436 		MOVEM	0,UPMP+436
   999	021171	202 00 0 00 017437 		MOVEM	0,UPMP+437
  1000	021172	332 00 0 00 020010 		SKIPE	KLFLG
  1001	021173	260 17 0 00 021216 		GO	PAGKL			;KL10
  1002	021174	7 010 14 0 00 025270 		DATAO	PAG,[LDUSRB!USRCMP!<UPMP_-^D9>,,LDEXCB!TRPENB]
  1003	021175	254 02 1 00 021176 		JRSTF	@.+1
  1004	021176	010000	021177			USERF,,.+1			;ENTER USER MODE
  1005	021177	254 01 0 00 021200 		JRST	1,.+1			;ENTRY
  1006	021200	201 00 0 00 021203 		MOVEI	USSR1
  1007	021201	202 00 0 00 030012 		MOVEM	RETURN
  1008	021202	254 00 0 00 021111 		JRST	XPNRN3			;GO TO PROGRAM
  1009
  1010					;*USSR1 - PROGRAM COMPLETION CONTROL
  1011
  1012	021203	077000	000000		USSR1:	77B8				;MUUO 77, RETURN TO EXEC MODE
  1013	021204	200 17 0 00 025144 	USSR2:	MOVE	P,[-40,,PLIST]		;RESTORE STACK
  1014	021205	332 00 0 00 020006 		SKIPE	USER
  1015	021206	254 00 0 00 020001 		JRST	RESTRT			;USER MODE, COMPLETED
  1016	021207	332 00 0 00 020010 		SKIPE	KLFLG
  1017	021210	254 00 0 00 021223 		JRST	USSR3
  1018	021211	7 000 14 0 00 025271 		DATAO	APR,[IMGNOF,,ISPDOF]	;CLEAR CLOCK & VOLTAGE MARGINS
  1019	021212	7 010 14 0 00 025272 		DATAO	PAG,[LDUSRB,,LDEXCB]	;CLEAR BASE REGISTER
  1020	021213	336 00 0 00 025533 		SKIPN	MRGNF			;MARGINNING ?
  1021	021214	254 00 0 00 021225 		JRST	USSR4			;NO, CHECK SPECIAL USER
  1022	021215	254 00 0 00 021241 		JRST	MRGIN			;YES, SETUP MARGINS
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 26
DIAMON	MAC	23-Apr-80 13:27		SPECIAL RUN SEQUENCING                                                             SEQ 0057

  1023	021216	201 00 0 00 021054 	PAGKL:	MOVEI	0,USRERR+1
  1024	021217	202 00 0 00 017427 		MOVEM	0,UPMP+427
  1025	021220	7 010 20 0 00 020000 		CONO	PAG,TRPENB
  1026	021221	7 010 14 0 00 025273 		DATAO	PAG,[LLDUSB,,400000!<UPMP_-^D9>]
  1027	021222	254 00 0 00 020423 		JRST	CPOPJ1
  1028
  1029	021223	7 010 20 0 00 020000 	USSR3:	CONO	PAG,TRPENB
  1030	021224	7 010 14 0 00 025274 		DATAO	PAG,[LLDUSB,,400000]
  1031
  1032	021225	332 00 0 00 020012 	USSR4:	SKIPE	SUSERF			;RUNNING SPECIAL USER ?
  1033	021226	376 00 0 00 025555 		SOSN	USRITR			;YES, FINISHED USER ITERATIONS ?
  1034	021227	254 00 0 00 020001 		JRST	RESTRT			;FINISHED ALL ITERATIONS
  1035	021230	254 00 0 00 021071 		JRST	XPNRN1			;NOT FINISHED, CONTINUE
  1036
  1037	021231	7 000 24 0 00 000000 	MRGNCK:	CONI	APR,0
  1038	021232	603 00 0 00 002000 		TLNE	0,IMGINM		;MARGIN ENABLE SET ?
  1039	021233	254 00 0 00 021241 		JRST	MRGIN			;YES, GO MARGIN
  1040	021234	201 00 0 00 025275 		MOVEI	MSG <^'MARGIN ENABLE' NOT SET ?^>^[SIXBIT\^'MARGIN ENABLE' NOT SET ?^_\]^
  1041	021235	336 00 0 00 025637 		SKIPN	MGNONC			;MESSAGE BEEN PRINTED ?
  1042	021236	260 17 0 00 021426 		PNTMSG
  1043	021237	476 00 0 00 025637 		SETOM	MGNONC
  1044	021240	254 00 0 00 021071 		JRST	XPNRN1
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 27
DIAMON	MAC	23-Apr-80 13:27		VOLTAGE MARGINNING ROUTINE                                                         SEQ 0058

  1045					SUBTTL	VOLTAGE MARGINNING ROUTINE
  1046
  1047	021241	476 00 0 00 025533 	MRGIN:	SETOM	MRGNF
  1048	021242	200 01 0 00 025641 		MOVE	1,MGNWRD		;GET PREVIOUS VALUE
  1049	021243	405 01 0 00 000077 		ANDI	1,77
  1050	021244	200 02 0 00 025531 		MOVE	2,MGNINC
  1051	021245	200 00 0 00 025640 		MOVE	MGNCNT
  1052	021246	405 00 0 00 000003 		ANDI	3
  1053	021247	326 00 0 00 021265 		JUMPN	0,VCNT1-2
  1054	021250	201 00 0 00 000031 	VCNT0:	MOVEI	0,VOLT5			;MGNCNT=0, INITIALIZE
  1055	021251	504 00 0 00 025642 		HRL	0,MGNADR		;APR DATAO WORD
  1056	021252	661 00 0 00 001000 		TLO	0,IMGNON
  1057	021253	202 00 0 00 025641 		MOVEM	0,MGNWRD
  1058	021254	200 00 0 00 025642 		MOVE	0,MGNADR
  1059	021255	336 00 0 00 025643 		SKIPN	RACKF			;RACK SPECIFIED ?
  1060	021256	350 00 0 00 000000 		AOS	0			;NO, INC MARGIN ADDRESS
  1061	021257	405 00 0 00 000037 		ANDI	0,37
  1062	021260	202 00 0 00 025642 		MOVEM	0,MGNADR
  1063	021261	350 00 0 00 025640 		AOS	MGNCNT
  1064	021262	201 00 0 00 000001 		MOVEI	0,1
  1065	021263	202 00 0 00 020005 		MOVEM	ITERAT			;PROG, 1 PASS PER VALUE
  1066	021264	254 00 0 00 021071 		JRST	XPNRN1			;GO RUN
  1067	021265	302 00 0 00 000001 		CAIE	0,1
  1068	021266	254 00 0 00 021276 		JRST	VCNT2-2
  1069	021267	307 01 0 00 000015 	VCNT1:	CAIG	1,VOLT5-VOLTLM		;MGNCNT=1, MARGIN POSITIVE
  1070	021270	254 00 0 00 021274 		JRST	.+4			;COMPLETED SWING !
  1071	021271	210 02 0 00 000002 	MGNGO2:	MOVN	2,2			;NEGATE INCREMENT FOR
  1072	021272	272 02 0 00 025641 		ADDM	2,MGNWRD		;CORRECT VALUE CHANGE
  1073	021273	254 00 0 00 021071 		JRST	XPNRN1
  1074	021274	350 00 0 00 025640 	MGNGO:	AOS	MGNCNT			;CHANGE COUNTER
  1075	021275	254 00 0 00 021241 		JRST	MRGIN
  1076	021276	302 00 0 00 000002 		CAIE	0,2
  1077	021277	254 00 0 00 021304 		JRST	VCNT3
  1078	021300	301 01 0 00 000045 	VCNT2:	CAIL	1,VOLT5+VOLTLM		;MGNCNT=2, MARGIN NEGATIVE
  1079	021301	254 00 0 00 021274 		JRST	MGNGO			;COMPLETED SWING !
  1080	021302	272 02 0 00 025641 		ADDM	2,MGNWRD		;NO, CHANGE MARGIN VALUE
  1081	021303	254 00 0 00 021071 		JRST	XPNRN1			;GO RUN
  1082	021304	302 01 0 00 000031 	VCNT3:	CAIE	1,VOLT5			;MGNCNT=3, BACK TO 5V
  1083	021305	254 00 0 00 021271 		JRST	MGNGO2
  1084	021306	350 00 0 00 025640 	MGNGO1:	AOS	MGNCNT
  1085	021307	332 00 0 00 025643 		SKIPE	RACKF			;ONLY ONE RACK ?
  1086	021310	254 00 0 00 021313 		JRST	.+3			;YES
  1087	021311	332 00 0 00 025642 		SKIPE	MGNADR			;CYCLED ALL RACKS ?
  1088	021312	254 00 0 00 021241 		JRST	MRGIN			;NO
  1089	021313	376 00 0 00 025532 		SOSN	MGNITR			;YES, COMPLETED ITERATIONS ?
  1090	021314	254 00 0 00 020001 		JRST	RESTRT			;YES, THIS PROGRAM COMPLETED
  1091	021315	254 00 0 00 021241 		JRST	MRGIN			;NO, MAKE ANOTHER MARGIN PASS
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 28
DIAMON	MAC	23-Apr-80 13:27		SPECIAL USER MODE I/O HANDLER                                                      SEQ 0059

  1092					SUBTTL	SPECIAL USER MODE I/O HANDLER
  1093
  1094	021316	202 00 0 00 025503 	MUUOH:	MOVEM	0,ACS0#			;SAVE AC0 AND AC1
  1095	021317	202 01 0 00 025504 		MOVEM	1,ACS1#
  1096	021320	554 01 0 00 017424 		HLRZ	1,UPMP+MUUO		;GET MUUO INSTRUCTION FIELD
  1097	021321	242 01 0 00 777767 		LSH	1,-^D9
  1098	021322	306 01 0 00 000257 		CAIN	1,257
  1099	021323	254 00 0 00 021334 		JRST	EXC			;IF MAP, DO AS MUUO FOR KL10
  1100	021324	200 01 0 00 017424 		MOVE	1,UPMP+MUUO		;GET MUUO
  1101	021325	325 01 0 00 021376 		JUMPGE	1,JRSTX			;A JRST, JEN OR MUUO
  1102	021326	607 01 0 00 077000 		TLNN	1,077000
  1103	021327	254 00 0 00 021361 		JRST	CPI			;AN I/O TO CP OR PI
  1104	021330	607 01 0 00 000200 	CP2:	TLNN	1,200
  1105	021331	254 00 0 00 021366 		JRST	DB			;DATAI, DATAO, OR BLOCK
  1106	021332	603 01 0 00 000040 		TLNE	1,40			;A CONO, CONI, CONSZ, CONSO
  1107	021333	254 00 0 00 021370 		JRST	RL			;CONI
  1108	021334	200 01 0 00 025504 	EXC:	MOVE	1,ACS1			;RESTORE AC1
  1109	021335	256 00 0 00 017424 		XCT	UPMP+MUUO		;EXECUTE
  1110	021336	334 00 0 00 000000 		SKIPA
  1111	021337	350 00 0 00 017425 		AOS	UPMP+MUUOPC		;INC RETURN IF CONSO, CONSZ SKIP
  1112	021340	202 01 0 00 025504 	EXC1:	MOVEM	1,ACS1			;RESAVE AC1
  1113	021341	332 00 0 00 020010 		SKIPE	KLFLG
  1114	021342	254 00 0 00 021354 		JRST	EXC4
  1115	021343	7 010 14 0 00 025270 		DATAO	PAG,[LDUSRB!USRCMP!<UPMP_-^D9>,,LDEXCB!TRPENB]
  1116	021344	200 01 0 00 017425 	EXC5:	MOVE	1,UPMP+MUUOPC		;SETUP RETURN
  1117	021345	661 01 0 00 010000 		TLO	1,USERF
  1118	021346	502 01 0 00 021352 		HLLM	1,EXC2			;SETUP FLAGS
  1119	021347	542 01 0 00 021353 		HRRM	1,EXC3			;SETUP RETURN PC
  1120	021350	200 01 0 00 025504 		MOVE	1,ACS1			;RESTORE AC1
  1121	021351	254 02 1 00 021352 		JRSTF	@.+1			;RESTORE FLAGS, GO TO USER
  1122	021352	000000	021353		EXC2:	0,,.+1
  1123	021353	254 01 0 00 000000 	EXC3:	JRST	1,0			;ENTRY
  1124
  1125	021354	7 010 24 0 00 000001 	EXC4:	CONI	PAG,1
  1126	021355	660 01 0 00 020000 		TRO	1,TRPENB
  1127	021356	7 010 20 0 01 000000 		CONO	PAG,(1)
  1128	021357	7 010 14 0 00 025273 		DATAO	PAG,[LLDUSB,,400000!<UPMP_-^D9>]
  1129	021360	254 00 0 00 021344 		JRST	EXC5
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 29
DIAMON	MAC	23-Apr-80 13:27		SPECIAL USER MODE I/O HANDLER                                                      SEQ 0060

  1130	021361	607 01 0 00 000200 	CPI:	TLNN	1,200			;AN I/O TO CP OR PI SYSTEM
  1131	021362	607 01 0 00 000100 		TLNN	1,100
  1132	021363	607 01 0 00 000140 		TLNN	1,140
  1133	021364	254 00 0 00 021334 		JRST	EXC			;CONO, DATAO, BLOCK
  1134	021365	254 00 0 00 021330 		JRST	CP2
  1135
  1136	021366	667 01 0 00 000040 	DB:	TLON	1,40			;IS IT A BLK I/O ?
  1137	021367	254 00 0 00 021371 		JRST	DB1			;YES
  1138	021370	254 00 0 00 021334 	RL:	JRST	EXC			;NO NEED TO RELOCATE
  1139
  1140	021371	502 01 0 00 017424 	DB1:	HLLM	1,UPMP+MUUO
  1141	021372	7 774 10 0 01 000000 		BLKO	774,(1)			;UPDATE THE POINTER
  1142	021373	334 00 0 00 000000 		SKIPA				;NO SKIP
  1143	021374	350 00 0 00 017425 		AOS	UPMP+MUUOPC		;INC RETURN FOR SKIP
  1144	021375	254 00 0 00 021370 		JRST	RL
  1145
  1146	021376	603 01 0 00 700000 	JRSTX:	TLNE	1,700000
  1147	021377	254 00 0 00 021404 		JRST	JRSTX1
  1148	021400	641 01 0 00 077000 		TLC	1,077000
  1149	021401	643 01 0 00 077000 		TLCE	1,077000
  1150	021402	254 00 0 00 021051 		JRST	MUUOER			;INCORRECT MUUO
  1151	021403	254 00 0 00 021204 		JRST	USSR2			;MUUO 77, RETURN TO DIAG MON
  1152	021404	603 01 0 00 000200 	JRSTX1:	TLNE	1,200
  1153	021405	254 04 1 00 017425 		HALT	@UPMP+MUUOPC		;HALT, POINTING TO ACTUAL HALT
  1154	021406	254 10 0 00 021407 		JRST	10,.+1			;JEN, DISMISS INTERRUPT
  1155	021407	254 00 0 00 021340 		JRST	EXC1
  1156
  1157					;*SAXPN - STANDALONE EXPANDED RUNNING
  1158					;*	  SPECIAL USER AND/OR MARGINS
  1159
  1160	021410	332 00 0 00 020006 	SAXPN:	SKIPE	USER
  1161	021411	254 00 0 00 020045 		JRST	SELECT			;ILLEGAL IN USER MODE
  1162	021412	336 00 0 00 020010 		SKIPN	KLFLG
  1163	021413	332 00 0 00 020011 		SKIPE	KAIFLG
  1164	021414	254 00 0 00 021416 		JRST	.+2
  1165	021415	254 00 0 00 020045 		JRST	SELECT			;ILLEGAL ON KA10
  1166	021416	476 00 0 00 020005 		SETOM	ITERAT			;RUN PROGRAM FOREVER
  1167	021417	260 17 0 00 022043 		SWITCH
  1168	021420	505 00 0 00 777777 		HRLI	-1
  1169	021421	202 00 0 00 030043 		MOVEM	MONCTL			;LH = -PASS CNT, RH = RH SWS
  1170
  1171	021422	260 17 0 00 020710 		GO	STRD2			;SETUP 	EXPANDED FEATURES
  1172
  1173	021423	332 00 0 00 025635 		SKIPE	USRFLG			;IF SPECIAL USER WAS SELECTED
  1174	021424	476 00 0 00 020012 		SETOM	SUSERF			;SET FLAG TO RUN THAT WAY
  1175
  1176	021425	254 00 0 00 021057 		JRST	XPNRUN			;GO RUN PROGRAM
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 30
DIAMON	MAC	23-Apr-80 13:27		MESSAGE PRINTER                                                                    SEQ 0061

  1177					SUBTTL	MESSAGE PRINTER
  1178
  1179					;*PNTMSG - PRINT SIXBIT MESSAGES
  1180
  1181	021426	261 17 0 00 000002 	$PSIX:	PUT	2
  1182	021427	261 17 0 00 000003 		PUT	3
  1183	021430	261 17 0 00 000004 		PUT	4
  1184	021431	550 04 0 00 000000 		HRRZ	4,0			;MESSAGE ADDRESS
  1185
  1186	021432	201 03 0 00 000006 	$PSIX1:	MOVEI	3,6			;6 CHARS PER 6BIT WORD
  1187	021433	200 01 0 04 000000 		MOVE	1,(4)			;GET FIRST/NEXT WORD OF MESSAGE
  1188
  1189	021434	400 02 0 00 000000 	$PSIX2:	SETZ	2,
  1190	021435	245 01 0 00 000006 		ROTC	1,6			;C(AC2)= CHAR TO BE PRINTED
  1191	021436	306 02 0 00 000077 		CAIN	2,77
  1192	021437	254 00 0 00 021455 		JRST	$PSIX5			;"BACKARROW", DONE
  1193	021440	306 02 0 00 000076 		CAIN	2,76
  1194	021441	254 00 0 00 021450 		JRST	$PSIX4			;"UPARROW", CR/LF
  1195	021442	306 02 0 00 000075 		CAIN	2,75
  1196	021443	201 02 0 00 000151 		MOVEI	2,151			;"BRACKET", CHANGE TO TAB
  1197	021444	201 00 0 02 000040 		MOVEI	0,40(2)			;CHANGE TO ASCII
  1198	021445	260 17 0 00 021513 		GO	PRINT			;PRINT CHAR
  1199	021446	366 03 0 00 021434 	$PSIX3:	SOJN	3,$PSIX2		;PRINTED ALL CHARS FROM THIS WORD ?
  1200	021447	344 04 0 00 021432 		AOJA	4,$PSIX1		;YES, DO NEXT WORD
  1201
  1202	021450	201 00 0 00 000015 	$PSIX4:	MOVEI	15
  1203	021451	260 17 0 00 021513 		GO	PRINT			;PRINT CR
  1204	021452	201 00 0 00 000012 		MOVEI	12
  1205	021453	260 17 0 00 021513 		GO	PRINT			;PRINT LF
  1206	021454	254 00 0 00 021446 		JRST	$PSIX3
  1207
  1208	021455	262 17 0 00 000004 	$PSIX5:	GET	4
  1209	021456	262 17 0 00 000003 		GET	3
  1210	021457	262 17 0 00 000002 		GET	2
  1211	021460	263 17 0 00 000000 		RTN
  1212
  1213					;*PNTAL - PRINT ASCII MESSAGES
  1214
  1215	021461	354 00 0 00 021463 	TOUTA:	AOSA	.+2			;INCREMENT MSG ADDRESS
  1216	021462	542 00 0 00 021463 	TOUT:	HRRM	0,.+1			;C(0) = ADR OF MSG
  1217	021463	200 01 0 00 000000 		MOVE	1,0			;GET CHARACTERS
  1218	021464	660 01 0 00 000001 		TRO	1,1			;SET FLAG BIT
  1219	021465	246 00 0 00 000007 		LSHC	0,7			;CHAR TO 0
  1220	021466	405 00 0 00 000177 		ANDI	177			;MASK
  1221	021467	336 00 0 00 000000 		SKIPN	0			;IF NULL, EXIT
  1222	021470	263 17 0 00 000000 		RTN
  1223	021471	260 17 0 00 021513 		GO	PRINT			;PRINT C(0)
  1224	021472	312 01 0 00 025302 		CAME	1,[400000,,0]
  1225	021473	254 00 0 00 021465 		JRST	TOUT+3			;GET NEXT CHAR IN WORD
  1226	021474	254 00 0 00 021461 		JRST	TOUTA			;GET NEXT WORD
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 31
DIAMON	MAC	23-Apr-80 13:27		MESSAGE PRINTER                                                                    SEQ 0062

  1227					;*PNTOCT - PRINT OCTAL NUMBERS
  1228
  1229	021475	201 02 0 00 000006 	PNTOCT:	MOVEI	2,6			;OCTAL PRINT
  1230	021476	504 01 0 00 000000 		HRL	1,0
  1231	021477	201 00 0 00 000006 		MOVEI	0,6
  1232	021500	246 00 0 00 000003 		LSHC	0,3
  1233	021501	260 17 0 00 021513 		GO	PRINT
  1234	021502	367 02 0 00 021477 		SOJG	2,PNTOCT+2
  1235	021503	263 17 0 00 000000 		RTN
  1236
  1237					;*PNTDEC - PRINT DECIMAL NUMBERS
  1238
  1239	021504	231 00 0 00 000012 	PNTDEC:	IDIVI	0,^D10			;DECIMAL PRINTER
  1240	021505	506 01 0 17 000000 		HRLM	1,(P)
  1241	021506	332 00 0 00 000000 		SKIPE	0
  1242	021507	260 17 0 00 021504 		GO	PNTDEC
  1243	021510	554 00 0 17 000000 		HLRZ	0,(P)
  1244	021511	271 00 0 00 000060 		ADDI	0,"0"
  1245	021512	254 00 0 00 021513 		JRST	PRINT
  1246
  1247					;*PRINT - PRINT AN ASCII CHARACTER
  1248
  1249	021513	350 00 0 00 025652 	PRINT:	AOS	CHRCTR
  1250	021514	202 01 0 00 025654 		MOVEM	1,SAVAC1
  1251	021515	405 00 0 00 000177 		ANDI	177
  1252	021516	202 00 0 00 025653 		MOVEM	0,SAVAC0
  1253	021517	552 00 0 00 000001 		HRRZM	0,1
  1254	021520	640 00 0 00 000200 		TRC	0,200			;COMPUTE CHAR PARITY
  1255	021521	405 01 0 01 777777 		ANDI	1,-1(1)
  1256	021522	326 01 0 00 021520 		JUMPN	1,.-2
  1257	021523	302 00 0 00 000011 		CAIE	11
  1258	021524	254 00 0 00 021534 		JRST	PRINT1			;NOT TAB
  1259	021525	370 00 0 00 025652 		SOS	CHRCTR
  1260	021526	201 00 0 00 000240 		MOVEI	240
  1261	021527	260 17 0 00 021534 		GO	PRINT1
  1262	021530	350 01 0 00 025652 		AOS	1,CHRCTR		;OUTPUT REQUIRED SPACE'S FOR TAB FUNCTION
  1263	021531	602 01 0 00 000007 		TRNE	1,7
  1264	021532	254 00 0 00 021526 		JRST	.-4
  1265	021533	254 00 0 00 021557 		JRST	PRINT2
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 32
DIAMON	MAC	23-Apr-80 13:27		MESSAGE PRINTER                                                                    SEQ 0063

  1266	021534	306 00 0 00 000012 	PRINT1:	CAIN	0,12			;LF ?
  1267	021535	402 00 0 00 025652 		SETZM	CHRCTR			;YES, CLEAR CHAR COUNTER
  1268	021536	306 00 0 00 000014 		CAIN	0,14			;FORM FEED ?
  1269	021537	402 00 0 00 025652 		SETZM	CHRCTR			;YES, CLEAR CHAR COUNTER
  1270	021540	332 00 0 00 025627 		SKIPE	LPTFLG
  1271	021541	254 00 0 00 021604 		JRST	PNTLPT			;PRINT ON LINE PRINTER
  1272	021542	332 00 0 00 020006 		SKIPE	USER
  1273	021543	254 00 0 00 021565 		JRST	PRINT4
  1274	021544	332 00 0 00 020010 		SKIPE	KLFLG
  1275	021545	254 00 0 00 021562 		JRST	PRINT3
  1276	021546	336 00 0 00 025507 		SKIPN	CNTLOF			;CONTROL O'ED ?
  1277	021547	7 120 14 0 00 000000 		DATAO	TTY,0			;TYPE CHAR
  1278	021550	260 17 0 00 021644 		GO	TTYCHK			;CHECK FOR OPERATOR CONTROL
  1279	021551	7 120 34 0 00 000010 		CONSO	TTY,10
  1280	021552	254 00 0 00 021550 		JRST	.-2
  1281	021553	306 00 0 00 000215 		CAIN	215
  1282	021554	254 00 0 00 021572 		JRST	FILLCR			;FILL CR
  1283	021555	306 00 0 00 000012 		CAIN	12
  1284	021556	254 00 0 00 021575 		JRST	FILLLF			;FILL LF
  1285	021557	200 01 0 00 025654 	PRINT2:	MOVE	1,SAVAC1
  1286	021560	200 00 0 00 025653 		MOVE	0,SAVAC0
  1287	021561	263 17 0 00 000000 		RTN				;EXIT
  1288
  1289	021562	405 00 0 00 000177 	PRINT3:	ANDI	0,177			;KL10 PRINT
  1290	021563	260 17 0 00 022072 		GO	$DTEXX
  1291	021564	254 00 0 00 021557 		JRST	PRINT2
  1292
  1293	021565	051 01 0 00 000000 	PRINT4:	OUTCHR
  1294	021566	254 00 0 00 021557 		JRST	PRINT2
  1295
  1296					;*MISCELLANEOUS
  1297
  1298	021567				CRLF1:	PMSG	<^>^
  1299	021567	201 00 0 00 025174 		MOVEI	[SIXBIT\^_\]
  1300	021570	260 17 0 00 021426 		PNTMSG^
  1301	021571	263 17 0 00 000000 		RTN
  1302
  1303	021572	402 00 0 00 025507 	FILLCR:	SETZM	CNTLOF#			;CLEAR CONTROL O FLAG
  1304	021573	200 01 0 00 025656 		MOVE	1,FCRCNT		;GET CR FILL COUNT
  1305	021574	254 00 0 00 021600 		JRST	FILLX+2			;SEND EXTRA CR
  1306
  1307	021575	200 01 0 00 025657 	FILLLF:	MOVE	1,FLFCNT		;GET LF FILL COUNT
  1308	021576	361 01 0 00 021557 	FILLX:	SOJL	1,PRINT2
  1309	021577	201 00 0 00 000000 		MOVEI	0,0			;USE 000 AS FILLER
  1310	021600	7 120 14 0 00 000000 		DATAO	TTY,0
  1311	021601	7 120 34 0 00 000010 		CONSO	TTY,10
  1312	021602	254 00 0 00 021601 		JRST	.-1
  1313	021603	254 00 0 00 021576 		JRST	FILLX
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 33
DIAMON	MAC	23-Apr-80 13:27		MESSAGE PRINTER                                                                    SEQ 0064

  1314					;*PNTLPT - LINE PRINTER DRIVER
  1315
  1316	021604	201 01 0 00 321206 	PNTLPT:	MOVEI	1,^D<<1000*750>/7>
  1317	021605	405 00 0 00 000177 		ANDI	0,177
  1318	021606	242 00 0 00 000001 		LSH	0,1
  1319	021607	7 124 14 0 00 000000 		DATAO	LPT,0
  1320	021610	336 00 0 00 020010 		SKIPN	KLFLG
  1321	021611	260 17 0 00 021644 		GO	TTYCHK			;CHECK FOR ABORT
  1322	021612	7 124 34 0 00 000100 		CONSO	LPT,100			;WAIT APPROX 750 MS
  1323	021613	367 01 0 00 021610 		SOJG	1,.-3
  1324	021614	337 00 0 00 000001 		SKIPG	1			;DID LPT RESPOND ?
  1325	021615	260 17 0 00 021617 		GO	LPTOFL			;ASK OPERATOR TO REENABLE IT
  1326	021616	254 00 0 00 021557 		JRST	PRINT2
  1327
  1328					;*LPTOFL - LINE PRINTER OFF-LINE
  1329
  1330	021617	261 17 0 00 000000 	LPTOFL:	PUT	0
  1331	021620	261 17 0 00 000001 		PUT	1
  1332	021621	261 17 0 00 025653 		PUT	SAVAC0
  1333	021622	261 17 0 00 025654 		PUT	SAVAC1
  1334	021623	261 17 0 00 025652 		PUT	CHRCTR
  1335	021624	402 00 0 00 025627 		SETZM	LPTFLG			;SEND MESSAGE TO TTY
  1336	021625	200 01 0 00 025303 		MOVE	1,[POINT 7,LOFMSG]
  1337	021626	134 00 0 00 000001 		ILDB	0,1
  1338	021627	322 00 0 00 021632 		JUMPE	0,.+3
  1339	021630	260 17 0 00 021513 		GO	PRINT
  1340	021631	254 00 0 00 021626 		JRST	.-3
  1341	021632	260 17 0 00 021673 		TTICHR				;WAIT FOR OPERATOR
  1342	021633	302 00 0 00 000012 		CAIE	12
  1343	021634	254 00 0 00 021632 		JRST	.-2
  1344	021635	476 00 0 00 025627 		SETOM	LPTFLG			;REENABLE LINE PRINTER
  1345	021636	262 17 0 00 025652 		GET	CHRCTR
  1346	021637	262 17 0 00 025654 		GET	SAVAC1
  1347	021640	262 17 0 00 025653 		GET	SAVAC0
  1348	021641	262 17 0 00 000001 		GET	1
  1349	021642	262 17 0 00 000000 		GET	0
  1350	021643	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 34
DIAMON	MAC	23-Apr-80 13:27		MESSAGE PRINTER                                                                    SEQ 0065

  1351					;*TTYCHK - TELETYPE CHECK ROUTINE
  1352
  1353	021644	332 00 0 00 025554 	TTYCHK:	SKIPE	TTYCFLG#		;INPUT CHECKING ALLOWED ?
  1354	021645	263 17 0 00 000000 		RTN				;NO
  1355	021646	7 120 34 0 00 000040 		CONSO	TTY,40			;ANY TYPEIN ?
  1356	021647	263 17 0 00 000000 		RTN				;NO
  1357	021650	261 17 0 00 000000 		PUT	0
  1358	021651	7 120 04 0 00 000000 		DATAI	TTY,0			;GET CHAR
  1359	021652	405 00 0 00 000177 		ANDI	0,177
  1360	021653	306 00 0 00 000003 		CAIN	0,003
  1361	021654	254 00 0 00 020045 		JRST	SELECT			;^C, START OVER
  1362	021655	306 00 0 00 000004 		CAIN	0,004
  1363	021656	254 00 0 00 021711 		JRST	TTYIND			;^D, START DDT
  1364	021657	306 00 0 00 000017 		CAIN	0,017
  1365	021660	476 00 0 00 025507 		SETOM	CNTLOF			;^O, INHIBIT OUTPUT
  1366	021661	262 17 0 00 000000 		GET	0
  1367	021662	263 17 0 00 000000 		RTN
  1368
  1369	021663				LOFMSG:	ASCIZ/
  1370	021663	015 012 114 120 124 	LPT OFF-LINE, TYPE CR WHEN READY - /
  1371	021664	040 117 106 106 055 
  1372	021665	114 111 116 105 054 
  1373	021666	040 124 131 120 105 
  1374	021667	040 103 122 040 127 
  1375	021670	110 105 116 040 122 
  1376	021671	105 101 104 131 040 
  1377	021672	055 040 000 000 000 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 35
DIAMON	MAC	23-Apr-80 13:27		TELETYPE  INPUT                                                                    SEQ 0066

  1378					SUBTTL	TELETYPE  INPUT
  1379
  1380					;*TTICHR - INPUT A TELETYPE CHARACTER
  1381
  1382	021673	402 00 0 00 025507 	TTYIN:	SETZM	CNTLOF
  1383	021674	476 00 0 00 025554 		SETOM	TTYCFLG			;PREVENT INPUT CHECKS ON ECHO
  1384	021675	332 00 0 00 020006 		SKIPE	USER
  1385	021676	254 00 0 00 021751 		JRST	TTYINU
  1386	021677	332 00 0 00 020010 		SKIPE	KLFLG
  1387	021700	254 00 0 00 021744 		JRST	TTYKL
  1388	021701	7 120 34 0 00 000040 		CONSO	TTY,40			;WAIT FOR TYPEIN
  1389	021702	254 00 0 00 021701 		JRST	.-1
  1390	021703	7 120 04 0 00 000000 		DATAI	TTY,0			;READ CHAR
  1391
  1392					;*TTYINX - CHECK FOR SPECIAL CHAR PROCESS
  1393
  1394	021704	405 00 0 00 000177 	TTYINX:	ANDI	177			;CLEAR PARITY BIT
  1395	021705	306 00 0 00 000003 		CAIN	003
  1396	021706	254 00 0 00 020045 		JRST	SELECT			;^C, START OVER
  1397	021707	302 00 0 00 000004 		CAIE	004
  1398	021710	254 00 0 00 021715 		JRST	.+5
  1399
  1400					;*TTYIND - TRANSFER TO DDT
  1401
  1402	021711	200 00 0 00 010001 	TTYIND:	MOVE	KLDDT+1			;GET DDT IDENTIFIER
  1403	021712	316 00 0 00 025304 		CAMN	[ASCII/DDT/]
  1404	021713	254 00 0 00 000441 		JRST	$DDT			;^D, START DDT
  1405	021714	254 00 0 00 020045 		JRST	SELECT			;NOT THERE, START OVER
  1406	021715	306 00 0 00 000177 		CAIN	177
  1407	021716	254 00 0 00 021742 		JRST	TTYEXT			;RUBOUT
  1408	021717	332 00 0 00 025644 		SKIPE	SCFLAG			;IN COMMENT ?
  1409	021720	254 00 0 00 021723 		JRST	TTYINA
  1410	021721	306 00 0 00 000040 		CAIN	40			;SPACE, CHANGE TO TAB
  1411	021722	201 00 0 00 000011 		MOVEI	11
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 36
DIAMON	MAC	23-Apr-80 13:27		TELETYPE  INPUT                                                                    SEQ 0067

  1412					;*TTYINA - COMPLETE CHARACTER PROCESS
  1413
  1414	021723	306 00 0 00 000033 	TTYINA:	CAIN	33
  1415	021724	254 00 0 00 022032 		JRST	TTALTM			;ALTMODE
  1416	021725	306 00 0 00 000176 		CAIN	176
  1417	021726	254 00 0 00 022032 		JRST	TTALTM			;ALTMODE
  1418	021727	306 00 0 00 000175 		CAIN	175
  1419	021730	254 00 0 00 022032 		JRST	TTALTM			;ALTMODE
  1420	021731	336 00 0 00 020006 		SKIPN	USER
  1421	021732	260 17 0 00 021513 		GO	PRINT
  1422	021733	301 00 0 00 000140 		CAIL	140			;CONVERT TO UPPER CASE
  1423	021734	620 00 0 00 000040 		TRZ	40
  1424	021735	302 00 0 00 000015 		CAIE	15			;IF CR
  1425	021736	254 00 0 00 021742 		JRST	TTYEXT
  1426	021737	201 00 0 00 000012 		MOVEI	12			;PRINT AND EXIT WITH LF
  1427	021740	402 00 0 00 025652 		SETZM	CHRCTR
  1428	021741	254 00 0 00 021723 		JRST	TTYINA
  1429
  1430	021742	402 00 0 00 025554 	TTYEXT:	SETZM	TTYCFLG
  1431	021743	263 17 0 00 000000 		RTN
  1432
  1433					;*TTYKL - KL10 CHARACTER INPUT
  1434
  1435	021744	201 00 0 00 003400 	TTYKL:	MOVEI	3400			;USE DDT MODE
  1436	021745	260 17 0 00 022072 		GO	$DTEXX
  1437	021746	405 00 0 00 000177 		ANDI	0,177
  1438	021747	322 00 0 00 021744 		JUMPE	0,TTYKL			;WAIT FOR RESPONSE
  1439	021750	254 00 0 00 021704 		JRST	TTYINX
  1440
  1441					;*TTYINU - USER MODE CHARACTER INPUT
  1442
  1443	021751	051 04 0 00 000000 	TTYINU:	INCHWL
  1444	021752	302 00 0 00 000015 		CAIE	0,15
  1445	021753	254 00 0 00 021704 		JRST	TTYINX
  1446	021754	402 00 0 00 025652 		SETZM	CHRCTR
  1447	021755	051 00 0 00 000000 		INCHRW				;IF CR, GET LF
  1448	021756	254 00 0 00 021704 		JRST	TTYINX
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 37
DIAMON	MAC	23-Apr-80 13:27		TELETYPE  INPUT                                                                    SEQ 0068

  1449					;*USER MODE LH SWITCHES FOR CHAIN OPERATION
  1450
  1451	021757				LHSWS:	PMSG	<LH SWS - >^
  1452	021757	201 00 0 00 025305 		MOVEI	[SIXBIT\LH SWS - _\]
  1453	021760	260 17 0 00 021426 		PNTMSG^
  1454	021761	260 17 0 00 021765 		TTIOCT
  1455	021762	254 00 0 00 021757 		JRST	LHSWS
  1456	021763	516 00 0 00 020007 		HRLZM	0,CONSW
  1457	021764	263 17 0 00 000000 		RTN
  1458
  1459					;*TTIOCT - TELETYPE OCTAL NUMBER INPUT
  1460
  1461	021765	403 12 0 00 000013 	TTYOCT:	SETZB	DIGIT,DIGITA
  1462	021766	260 17 0 00 021673 	TTYOC1:	TTICHR				;INPUT A CHAR
  1463	021767	306 00 0 00 000012 		CAIN	12			;CR(LF), DONE
  1464	021770	254 00 0 00 022000 		JRST	TTYOC2
  1465
  1466	021771	301 00 0 00 000060 		CAIL	"0"			;A VALID DIGIT ?
  1467	021772	303 00 0 00 000067 		CAILE	"7"
  1468	021773	254 00 0 00 022002 		JRST	TTYOC3			;NO
  1469
  1470	021774	200 13 0 00 000000 		MOVE	DIGITA,0
  1471	021775	242 13 0 00 000041 		LSH	DIGITA,^D33
  1472	021776	246 12 0 00 000003 		LSHC	DIGIT,3			;INSERT NEW OCTAL
  1473	021777	254 00 0 00 021766 		JRST	TTYOC1
  1474
  1475	022000	200 00 0 00 000012 	TTYOC2:	MOVE	0,DIGIT			;PUT NUMBER IN AC0
  1476	022001	254 00 0 00 020423 		JRST	CPOPJ1
  1477
  1478	022002	332 00 0 00 020006 	TTYOC3:	SKIPE	USER
  1479	022003	051 11 0 00 000000 		CLRBFI				;CLEAR USER INPUT
  1480	022004	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 38
DIAMON	MAC	23-Apr-80 13:27		TELETYPE  INPUT                                                                    SEQ 0069

  1481					;*READ - COMMAND FILE READ PROCESS
  1482
  1483	022005	332 00 0 00 025626 	READ:	SKIPE	DINFLG			;DEVICE COMMAND LIST
  1484	022006	254 00 0 00 020425 		JRST	DEVRD			;YES
  1485	022007	254 00 0 00 021673 		JRST	TTYIN			;TTY REQUESTED
  1486	022010	405 00 0 00 000177 	READ1:	ANDI	177
  1487	022011	306 00 0 00 000177 		CAIN	177
  1488	022012	263 17 0 00 000000 		RTN				;RUBOUT
  1489	022013	332 00 0 00 025644 		SKIPE	SCFLAG			;IN COMMENT ?
  1490	022014	254 00 0 00 022017 		JRST	.+3			;YES
  1491	022015	306 00 0 00 000040 		CAIN	40			;SPACE, CHANGE TO TAB
  1492	022016	201 00 0 00 000011 		MOVEI	11
  1493	022017	332 00 0 00 025624 		SKIPE	TAPEPF			;PRINT TAPE ?
  1494	022020	260 17 0 00 021513 		GO	PRINT			;YES
  1495	022021	301 00 0 00 000140 		CAIL	140			;CONVERT TO UPPER CASE
  1496	022022	620 00 0 00 000040 		TRZ	40
  1497	022023	306 00 0 00 000012 		CAIN	12			;IF LF IGNORE
  1498	022024	254 00 0 00 022005 		JRST	READ
  1499	022025	306 00 0 00 000014 		CAIN	14			;IF FF IGNORE
  1500	022026	254 00 0 00 022005 		JRST	READ
  1501	022027	306 00 0 00 000015 		CAIN	15			;IF CR CHANGE TO LF
  1502	022030	201 00 0 00 000012 		MOVEI	12
  1503	022031	254 00 0 00 021742 		JRST	TTYEXT
  1504
  1505					;*TTALTM - ALTMODE PROCESS
  1506
  1507	022032	476 00 0 00 025633 	TTALTM:	SETOM	ALTMFLG			;SET ALTMODE FLAG
  1508	022033	201 00 0 00 000044 		MOVEI	"$"			;PRINT $ CR/LF
  1509	022034	336 00 0 00 020006 		SKIPN	USER			;DON'T PRINT $ IF USER
  1510	022035	260 17 0 00 021513 		GO	PRINT
  1511	022036	260 17 0 00 021567 		GO	CRLF1
  1512	022037	201 00 0 00 000012 		MOVEI	12			;RETURN WITH LF
  1513	022040	263 17 0 00 000000 		RTN
  1514
  1515	022041	201 00 0 00 000011 	PNTTAB:	MOVEI	"	"
  1516	022042	254 00 0 00 021513 		JRST	PRINT			;PRINT A TAB & RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 39
DIAMON	MAC	23-Apr-80 13:27		SPECIAL ROUTINES                                                                   SEQ 0070

  1517					SUBTTL	SPECIAL ROUTINES
  1518
  1519					;*SWITCH - READ CONSOLE SWITCHES
  1520
  1521	022043	332 00 0 00 020006 	$SWITCH:SKIPE	USER
  1522	022044	254 00 0 00 022053 		JRST	$SWU
  1523	022045	332 00 0 00 020010 		SKIPE	KLFLG
  1524	022046	254 00 0 00 022051 		JRST	.+3
  1525	022047	7 000 04 0 00 000000 		DATAI	APR,0			;KA/KI, READ CONSOLE SWITCHES
  1526	022050	263 17 0 00 000000 		RTN
  1527	022051	201 00 0 00 001400 		MOVEI	1400			;KL10, GET SWITCHES FROM PDP-11
  1528	022052	254 00 0 00 022072 		JRST	$DTEXX
  1529
  1530	022053	200 00 0 00 020007 	$SWU:	MOVE	0,CONSW			;GET STORED SWITCHES
  1531	022054	263 17 0 00 000000 		RTN
  1532
  1533					;*DTEINT - KL10 DTE20 INITIALIZATION
  1534
  1535	022055	332 00 0 00 020006 	DTEINT:	SKIPE	USER
  1536	022056	263 17 0 00 000000 		RTN
  1537	022057	402 00 0 00 000444 		SETZM	$DTFLG
  1538	022060	402 00 0 00 000445 		SETZM	$DTCLK
  1539	022061	402 00 0 00 000446 		SETZM	$DTCI
  1540	022062	200 00 0 00 000453 		MOVE	$DTOPR			;GET OPERATIONAL DTE #
  1541	022063	436 00 0 00 022074 		ORM	$$DTE0			;INSERT IN DTE I/O INST
  1542	022064	200 00 0 00 025307 		MOVE	[540000,,540001]	;SET UP PAGE TABLES
  1543	022065	205 01 0 00 777620 		MOVSI	1,-160			;TO RESET CONDITION
  1544	022066	202 00 0 01 000600 		MOVEM	600(1)
  1545	022067	270 00 0 00 025265 		ADD	[2,,2]			;SO PAGING
  1546	022070	253 01 0 00 022066 		AOBJN	1,.-2			;CAN BE TURNED ON
  1547	022071	263 17 0 00 000000 		RTN
  1548
  1549					;*$DTEXX - KL10 DTE20 COMMUNICATIONS
  1550
  1551	022072	202 00 0 00 000451 	$DTEXX:	MOVEM	0,$DTCMD		;SETUP COMMAND WORD
  1552	022073	350 00 0 00 000452 		AOS	$DTSEQ
  1553	022074	7 200 20 0 00 020000 	$$DTE0:	CONO	DTE,20000		;DONG PDP-11
  1554	022075	336 00 0 00 000444 		SKIPN	$DTFLG
  1555	022076	254 00 0 00 022075 		JRST	.-1			;WAIT FOR REPLY
  1556	022077	402 00 0 00 000444 		SETZM	$DTFLG
  1557	022100	200 00 0 00 000450 		MOVE	0,$DTF11		;GET RESPONSE
  1558	022101	263 17 0 00 000000 		RTN
  1559
  1560					;*DTECLR - KL10 DTE20 TELETYPE CLEAR
  1561
  1562	022102	332 00 0 00 020006 	DTECLR:	SKIPE	USER
  1563	022103	263 17 0 00 000000 		RTN
  1564	022104	336 00 0 00 020010 		SKIPN	KLFLG
  1565	022105	263 17 0 00 000000 		RTN
  1566	022106	201 00 0 00 003000 		MOVEI	3000			;CLEAR DDT INPUT MODE
  1567	022107	260 17 0 00 022072 		GO	$DTEXX
  1568	022110	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 1
DEVLDR	MAC	23-Apr-80 13:29		DEVICE BUFFER PARAMETERS                                                           SEQ 0071

  1569					SUBTTL	DEVICE BUFFER PARAMETERS
  1570
  1571			027000		LDBF=	27000		;USER LOAD BUFFER
  1572
  1573			027002		TAB=	LDBF+2		;DECTAPE DIRECTORY BUFFER
  1574
  1575			027002		RBUF=	TAB		;DISK RIB BUFFER
  1576
  1577			027203		LDBF1=	RBUF+201	;USER LOAD BUFFER # 2
  1578
  1579			027205		DBUF=	LDBF1+2		;DATA BUFFER
  1580
  1581			027406		LDBF2=	DBUF+201	;USER LOAD BUFFER # 3
  1582
  1583			027410		HBUF=	LDBF2+2		;HOME BUFFER
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 2
DEVLDR	MAC	23-Apr-80 13:29		DEVICE SELECTION                                                                   SEQ 0072

  1584					SUBTTL	DEVICE SELECTION
  1585
  1586	022111	402 00 0 00 025673 	DEVSEL:	SETZM	PPN
  1587	022112	402 00 0 00 025672 		SETZM	DEVICE
  1588	022113	402 00 0 00 025556 		SETZM	VDTAFLG#
  1589	022114	402 00 0 00 025523 		SETZM	KLDCPF#
  1590	022115	402 00 0 00 025671 		SETZM	SRCHF
  1591	022116	402 00 0 00 025536 		SETZM	PTFLG#
  1592	022117	332 00 0 00 020006 		SKIPE	USER
  1593	022120	254 00 0 00 022146 		JRST	DEVUSR
  1594	022121	402 00 0 00 025645 		SETZM	DEVTYP
  1595						PMSG	<^DEV:T,K,D,V,P - >^
  1596	022122	201 00 0 00 025310 		MOVEI	[SIXBIT\^DEV:T,K,D,V,P - _\]
  1597	022123	260 17 0 00 021426 		PNTMSG^
  1598	022124	260 17 0 00 020236 		GO	TT2CHR
  1599	022125	254 00 0 00 022111 		JRST	DEVSEL			;ONLY A CR
  1600	022126	306 00 0 00 000113 		CAIN	"K"
  1601	022127	254 00 0 00 022141 		JRST	KLDCPS			;KLDCP - THRU THE PDP-11
  1602	022130	306 00 0 00 000104 		CAIN	"D"
  1603	022131	254 00 0 00 022152 		JRST	DTUNIT			;DECTAPE
  1604	022132	306 00 0 00 000126 		CAIN	"V"
  1605	022133	254 00 0 00 022150 		JRST	VDTA			;PDP-11 FORMAT DECTAPE
  1606	022134	306 00 0 00 000120 		CAIN	"P"
  1607	022135	254 00 0 00 022205 		JRST	PPNIN			;DISK PACK
  1608	022136	306 00 0 00 000124 		CAIN	"T"
  1609	022137	254 00 0 00 022201 		JRST	PTAPE			;PAPER TAPE
  1610	022140	254 00 0 00 022111 		JRST	DEVSEL			;ERROR
  1611
  1612	022141	336 00 0 00 020010 	KLDCPS:	SKIPN	KLFLG
  1613	022142	254 00 0 00 022111 		JRST	DEVSEL			;NOT A KL10
  1614	022143	476 00 0 00 025523 		SETOM	KLDCPF
  1615	022144	476 00 0 00 025645 		SETOM	DEVTYP
  1616	022145	263 17 0 00 000000 		RTN
  1617
  1618	022146	476 00 0 00 025645 	DEVUSR:	SETOM	DEVTYP
  1619	022147	263 17 0 00 000000 		RTN
  1620
  1621	022150	476 00 0 00 025556 	VDTA:	SETOM	VDTAFLG
  1622	022151	254 00 0 00 022152 		JRST	DTUNIT
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 3
DEVLDR	MAC	23-Apr-80 13:29		DEVICE SELECTION                                                                   SEQ 0073

  1623					;*DTUNIT - SELECT DTA UNIT, READ IN DIRECTORY
  1624
  1625	022152				DTUNIT:	PMSG	<UNIT # - >^
  1626	022152	201 00 0 00 025313 		MOVEI	[SIXBIT\UNIT # - _\]
  1627	022153	260 17 0 00 021426 		PNTMSG^
  1628	022154	260 17 0 00 020236 		GO	TT2CHR
  1629	022155	263 17 0 00 000000 		RTN				;IF CR, USE SAME DECTAPE
  1630	022156	306 00 0 00 000123 		CAIN	"S"			;IF S, SEARCH ALL DECTAPES
  1631	022157	254 00 0 00 022174 		JRST	DTSRCH
  1632	022160	301 00 0 00 000060 	DTUNI1:	CAIL	60			;MUST BE 0-7
  1633	022161	303 00 0 00 000067 		CAILE	67
  1634	022162	254 00 0 00 022152 		JRST	DTUNIT			;ERROR
  1635	022163	405 00 0 00 000007 		ANDI	0,7			;CONVERT TO OCTAL
  1636	022164	242 00 0 00 000011 		LSH	^D9			;LEFT JUSTIFY FOR CONO
  1637	022165	202 00 0 00 025666 		MOVEM	TAPENO			;SAVE AS TAPE NUMBER
  1638	022166	332 00 0 00 025556 		SKIPE	VDTAFLG
  1639	022167	263 17 0 00 000000 		RTN
  1640	022170	476 00 0 00 025623 		SETOM	PGMGO
  1641	022171	260 17 0 00 023443 		GO	LDDIR			;SELECT TAPE, READ DIRECTORY
  1642	022172	402 00 0 00 025623 		SETZM	PGMGO
  1643	022173	263 17 0 00 000000 		RTN
  1644
  1645	022174	476 00 0 00 025671 	DTSRCH:	SETOM	SRCHF			;SET DECTAPE SEARCH FLAG
  1646	022175	200 00 0 00 025315 		MOVE	[TAB,,TAB+1]
  1647	022176	402 00 0 00 027002 		SETZM	TAB
  1648	022177	251 00 0 00 027201 		BLT	TAB+177			;CLEAR PRESENT IN-CORE DIRECTORY
  1649	022200	263 17 0 00 000000 		RTN
  1650
  1651					;*PTAPE - PAPER TAPE SELECTION
  1652
  1653	022201	476 00 0 00 025645 	PTAPE:	SETOM	DEVTYP
  1654	022202	476 00 0 00 025536 		SETOM	PTFLG			;SET FOR PAPER-TAPE READER
  1655	022203	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 4
DEVLDR	MAC	23-Apr-80 13:29		DEVICE SELECTION                                                                   SEQ 0074

  1656					;*PPNIN - DISK AND PROJ PROGRAMMER SPECIFICATION
  1657
  1658	022204	260 17 0 00 021567 	PPNIN1:	GO	CRLF1
  1659	022205	201 00 0 00 000001 	PPNIN:	MOVEI	1
  1660	022206	202 00 0 00 025645 		MOVEM	DEVTYP			;SET DEVICE TYPE TO DISK PACK
  1661	022207	201 00 0 00 025316 		MOVEI	[ASCIZ/DISK:[P,PN] - /]
  1662	022210	260 17 0 00 021462 		PNTAL
  1663	022211	553 00 0 00 025035 		HRRZS	DATAOW
  1664	022212	402 00 0 00 000000 		SETZM	F
  1665	022213	200 11 0 00 025036 	PPNLP:	MOVE	S,PPNPTR
  1666	022214	403 06 0 00 000004 		SETZB	N,W
  1667	022215	202 00 0 00 000003 	PPNCHR:	MOVEM	F,C
  1668	022216	260 17 0 00 021673 		TTICHR
  1669	022217	250 00 0 00 000003 		EXCH	F,C
  1670	022220	306 03 0 00 000177 		CAIN	C,177
  1671	022221	254 00 0 00 022204 		JRST	PPNIN1			;RUBOUT
  1672	022222	307 03 0 00 000132 		CAIG	C,"Z"
  1673	022223	305 03 0 00 000101 		CAIGE	C,"A"
  1674	022224	334 00 0 00 000000 		SKIPA
  1675	022225	254 00 0 00 022233 		JRST	PPNLTR			;LETTER
  1676	022226	307 03 0 00 000071 		CAIG	C,"9"
  1677	022227	305 03 0 00 000060 		CAIGE	C,"0"
  1678	022230	254 00 0 00 022237 		JRST	PPN0			;NO, BREAK CHARACTER
  1679	022231	242 06 0 00 000003 		LSH	N,3			;BUILD OCTAL NUMBER
  1680	022232	271 06 0 03 777720 		ADDI	N,-60(C)		;ADD IN THIS DIGIT
  1681	022233	640 03 0 00 000040 	PPNLTR:	TRC	C,40			;MAKE IT SIXBIT
  1682	022234	603 11 0 00 770000 		TLNE	S,770000		;ONLY SIX CHARACTERS
  1683	022235	136 03 0 00 000011 		IDPB	C,S			;STORE CHAR IN W
  1684	022236	254 00 0 00 022215 		JRST	PPNCHR			;LOOP FOR MORE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 5
DEVLDR	MAC	23-Apr-80 13:29		DEVICE SELECTION                                                                   SEQ 0075

  1685	022237	302 03 0 00 000072 	PPN0:	CAIE	C,":"			;UNIT DELIMITER ?
  1686	022240	254 00 0 00 022243 		JRST	PPN1			;NO
  1687	022241	202 04 0 00 025672 		MOVEM	W,DEVICE		;YES, SAVE NAME OF DEVICE
  1688	022242	254 00 0 00 022213 		JRST	PPNLP
  1689	022243	302 03 0 00 000135 	PPN1:	CAIE	C,"]"			;END OF PPN ?
  1690	022244	254 00 0 00 022251 		JRST	PPN2			;NO
  1691	022245	542 06 0 00 025673 		HRRM	N,PPN			;YES, SAVE PROGRAMMER NUMBER
  1692	022246	627 00 0 00 000004 		TLZN	F,L.CMA			;CLEAR PPN COMMA FLAG
  1693	022247	254 00 0 00 022204 		JRST	PPNIN1			;IT WASN'T ON, BAD !
  1694	022250	254 00 0 00 022213 		JRST	PPNLP
  1695	022251	607 00 0 00 000006 	PPN2:	TLNN	F,L.LBK!L.CMA		;ANY SYNTAX REQUESTS ?
  1696	022252	254 00 0 00 022257 		JRST	PPN5			;NO
  1697	022253	623 00 0 00 000002 		TLZE	F,L.LBK			;PPN REQUEST ?
  1698	022254	506 06 0 00 025673 		HRLM	N,PPN			;YES, STORE PROJ NO.
  1699	022255	623 00 0 00 000004 		TLZE	F,L.CMA			;PPN PART 2 ?
  1700	022256	542 06 0 00 025673 		HRRM	N,PPN			;YES, STORE PROG NO.
  1701	022257	306 03 0 00 000012 	PPN5:	CAIN	C,12
  1702	022260	263 17 0 00 000000 		RTN				;CR(LF) - COMPLETED
  1703	022261	302 03 0 00 000133 	PPN3:	CAIE	C,"["
  1704	022262	254 00 0 00 022265 		JRST	PPN4
  1705	022263	661 00 0 00 000002 		TLO	F,L.LBK			;PPN REQUEST
  1706	022264	254 00 0 00 022213 		JRST	PPNLP
  1707	022265	302 03 0 00 000054 	PPN4:	CAIE	C,","
  1708	022266	254 00 0 00 022204 		JRST	PPNIN1			;ILLEGAL CHAR
  1709	022267	661 00 0 00 000004 		TLO	F,L.CMA			;COMMA, PART OF PPN
  1710	022270	254 00 0 00 022213 		JRST	PPNLP
  1711
  1712					;*LIST1 - LIST FILES
  1713
  1714	022271	332 00 0 00 025523 	LIST1:	SKIPE	KLDCPF
  1715	022272	254 00 0 00 020045 		JRST	SELECT			;ILLEGAL IN KLDCP MODE
  1716	022273	476 00 0 00 025630 		SETOM	LSTFLG
  1717	022274	254 00 0 00 020204 		JRST	RUNPRG
  1718
  1719					;*DIRECT - PRINT DIRECTORY
  1720
  1721	022275	332 00 0 00 020006 	DIRECT:	SKIPE	USER			;ILLEGAL IN USER MODE
  1722	022276	254 00 0 00 020045 		JRST	SELECT
  1723	022277	332 00 0 00 025523 		SKIPE	KLDCPF			;ILLEGAL IN KLDCP MODE
  1724	022300	254 00 0 00 020045 		JRST	SELECT
  1725	022301	332 00 0 00 025536 		SKIPE	PTFLG
  1726	022302	254 00 0 00 020045 		JRST	SELECT			;ILLEGAL FROM PAPER-TAPE
  1727	022303	260 17 0 00 022043 		SWITCH
  1728	022304	603 00 0 00 020000 		TLNE	LPTSW
  1729	022305	476 00 0 00 025627 		SETOM	LPTFLG
  1730	022306	260 17 0 00 022102 		GO	DTECLR
  1731	022307	332 00 0 00 025645 		SKIPE	DEVTYP
  1732	022310	254 00 0 00 024214 		JRST	DSKDIR			;DISK DIRECTORY
  1733	022311	254 00 0 00 023453 		JRST	FDIR			;DECTAPE DIRECTORY
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 6
DEVLDR	MAC	23-Apr-80 13:29		PROGRAM FILE SELECTION                                                             SEQ 0076

  1734					SUBTTL	PROGRAM FILE SELECTION
  1735
  1736					;*FSELECT - "SUBRTN" FILE SELECTION
  1737
  1738	022312	476 00 0 00 025551 	FSELECT:SETOM	SPECIAL#		;SET SPECIAL MODE
  1739	022313	402 00 0 00 025534 		SETZM	NOCMNT
  1740	022314	202 00 0 00 000016 		MOVEM	0,IP			;SET POINTER TO FILE SPEC
  1741	022315	254 00 0 00 022325 		JRST	DIAGLD+2
  1742
  1743					;*DIAGLD - "DIAMON" FILE SELECTION
  1744
  1745	022316	476 00 0 00 025535 		SETOM	NOFNF#			;SET DON'T REPORT IF CAN'T FIND
  1746	022317	476 00 0 00 025534 		SETOM	NOCMNT
  1747	022320	254 00 0 00 022326 		JRST	.+6
  1748	022321	476 00 0 00 025534 		SETOM	NOCMNT#			;INHIBIT COMMENT PRINTING
  1749	022322	254 00 0 00 022324 		JRST	.+2
  1750	022323	402 00 0 00 025534 	DIAGLD:	SETZM	NOCMNT
  1751	022324	402 00 0 00 025551 		SETZM	SPECIAL			;SET NORMAL MODE
  1752	022325	402 00 0 00 025535 		SETZM	NOFNF
  1753	022326	402 00 0 00 025502 		SETZM	A10FLG#
  1754	022327	402 00 0 00 025524 		SETZM	LDEVICE#
  1755
  1756	022330	554 00 0 16 000001 		HLRZ	0,1(IP)
  1757	022331	306 00 0 00 412120 		CAIN	0,(SIXBIT/A10/)
  1758	022332	476 00 0 00 025502 		SETOM	A10FLG
  1759
  1760	022333	332 00 0 00 020006 		SKIPE	USER
  1761	022334	254 00 0 00 023117 		JRST	USERLD			;USER MODE
  1762
  1763	022335	332 00 0 00 025523 		SKIPE	KLDCPF
  1764	022336	254 00 0 00 023055 		JRST	KLDCPL			;LOAD FROM KLDCP
  1765
  1766	022337	332 00 0 00 025536 		SKIPE	PTFLG
  1767	022340	254 00 0 00 023204 		JRST	PTLD			;LOAD FROM PAPER-TAPE
  1768
  1769	022341	332 00 0 00 025556 		SKIPE	VDTAFLG
  1770	022342	254 00 0 00 023543 		JRST	VDTALD			;LOAD FROM PDP-11 FORMAT DECTAPE
  1771
  1772	022343	336 00 0 00 025645 		SKIPN	DEVTYP
  1773	022344	254 00 0 00 023253 		JRST	DTALD			;DECTAPE
  1774	022345	336 00 0 00 020010 		SKIPN	KLFLG			;KL10 ?
  1775	022346	254 00 0 00 023767 		JRST	DSKLD			;NO, DISK PACK
  1776	022347	201 00 0 00 540027 		MOVEI	540027			;SET DIAMON BUFFERS UNCACHED
  1777	022350	542 00 0 00 000613 		HRRM	613
  1778
  1779	022351	7 010 24 0 00 000000 		CONI	PAG,0			;READ PAGING SYSTEM
  1780	022352	660 00 0 00 020000 		TRO	TRPENB			;SET TRAP ENABLE
  1781	022353	7 010 20 1 00 000000 		CONO	PAG,@0			;RESET PAGING SYSTEM
  1782	022354	254 00 0 00 023767 		JRST	DSKLD			;NOW LOAD FROM DISK
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 7
DEVLDR	MAC	23-Apr-80 13:29		PROGRAM FILE SELECTION                                                             SEQ 0077

  1783					;*RFILE - FILE FOUND AND SETUP
  1784
  1785	022355	402 00 0 00 000005 	RFILE:	SETZM	Q			;CLEAR FILE READ WORD COUNTER
  1786	022356	201 07 0 00 000005 		MOVEI	M,5			;SET LDACHR BYTE COUNTER
  1787	022357	476 00 0 00 025516 		SETOM	FBSAV#			;SET 8 BIT READ FILE BYTE COUNTER
  1788	022360	202 13 0 00 025541 		MOVEM	13,SAV13#
  1789	022361	202 14 0 00 025542 		MOVEM	14,SAV14#
  1790	022362	336 00 0 00 025551 		SKIPN	SPECIAL			;FILE FOUND
  1791	022363	254 00 0 00 023775 		JRST	RFILE1			;NORMAL OPERATION
  1792
  1793					;*FSELF - "SUBRTN" FILE FOUND RETURN
  1794
  1795	022364	202 00 0 00 025722 	FSELF:	MOVEM	0,ACSAVE		;SAVE ACS
  1796	022365	200 00 0 00 025321 		MOVE	0,[1,,ACSAVE+1]
  1797	022366	251 00 0 00 025740 		BLT	ACSAVE+16
  1798	022367	200 00 0 00 025524 		MOVE	0,LDEVICE		;RETURN DEVICE TYPE
  1799	022370	350 00 0 17 000000 		AOS	(P)
  1800	022371	263 17 0 00 000000 		RTN				;SKIP RETURN TO "SUBRTN"
  1801
  1802					;*NFERR - FILE NOT FOUND
  1803
  1804	022372	332 00 0 00 025535 	NFERR:	SKIPE	NOFNF			;REPORT NOT FOUND ?
  1805	022373	263 17 0 00 000000 		RTN				;NO
  1806	022374	336 00 0 00 025551 		SKIPN	SPECIAL			;NOT FOUND
  1807	022375	254 00 0 00 025065 		JRST	NFERR1			;NORMAL OPERATION
  1808
  1809					;*FSELNF - "SUBRTN" FILE NOT FOUND
  1810
  1811	022376	200 00 0 00 025524 	FSELNF:	MOVE	0,LDEVICE		;"FSELECT" - NOT FOUND
  1812	022377	263 17 0 00 000000 		RTN				;NON-SKIP, ERROR RETURN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 8
DEVLDR	MAC	23-Apr-80 13:29		"SUBRTN" PROGRAM FILE READ                                                         SEQ 0078

  1813					SUBTTL	"SUBRTN" PROGRAM FILE READ
  1814
  1815					;*FREAD - DETERMINE READ TYPE
  1816
  1817	022400	202 00 0 00 025517 	FREAD:	MOVEM	0,FRDTYP#
  1818	022401	204 00 0 00 025321 		MOVS	[1,,ACSAVE+1]
  1819	022402	251 00 0 00 000016 		BLT	16			;RESTORE "DIAMON" ACS
  1820	022403	200 00 0 00 025722 		MOVE	ACSAVE
  1821	022404	335 00 0 00 025517 		SKIPGE	FRDTYP
  1822	022405	254 00 0 00 022430 		JRST	FRD36			;READ 36 BIT WORDS
  1823	022406	332 00 0 00 025517 		SKIPE	FRDTYP
  1824	022407	254 00 0 00 022473 		JRST	FRD8			;READ 8 BIT WORDS
  1825
  1826					;*FREAD3 - CHARACTER READ
  1827
  1828	022410	260 17 0 00 022437 	FREAD3:	GO	LDACHR			;LOAD AN ASCII CHARACTER
  1829	022411	254 00 0 00 022424 		JRST	FREAD2			;EOF
  1830	022412	336 00 0 00 025536 		SKIPN	PTFLG			;PAPER TAPE ?
  1831	022413	254 00 0 00 022416 		JRST	FREAD1			;NO, PASS ALL CHARS
  1832	022414	306 16 0 00 000073 		CAIN	16,";"
  1833	022415	254 00 0 00 022704 		JRST	LDCMNT			;COMMENT, FILE CONTROL LINE
  1834
  1835	022416	202 00 0 00 025722 	FREAD1:	MOVEM	0,ACSAVE		;RESAVE "DIAMON" ACS
  1836	022417	200 00 0 00 025321 		MOVE	0,[1,,ACSAVE+1]
  1837	022420	251 00 0 00 025740 		BLT	ACSAVE+16
  1838
  1839	022421	200 00 0 00 000016 		MOVE	0,16			;PUT ASCII BYTE IN AC0
  1840	022422	350 00 0 17 000000 		AOS	(P)
  1841	022423	263 17 0 00 000000 		RTN				;SKIP RETURN
  1842
  1843					;*FREAD2 - END OF FILE
  1844
  1845	022424	336 00 0 00 025645 	FREAD2:	SKIPN	DEVTYP			;EOF
  1846	022425	7 320 20 0 00 400000 		CONO	DTC,DTSTOP		;IF DECTAPE, STOP IT
  1847	022426	402 00 0 00 000000 		SETZM	0			;EOF CODE = 0
  1848	022427	263 17 0 00 000000 		RTN				;NON-SKIP RETURN
  1849
  1850					;*FRD36 - 36 BIT WORD READ
  1851
  1852	022430	332 00 0 00 025556 	FRD36:	SKIPE	VDTAFLG
  1853	022431	254 00 0 00 022424 		JRST	FREAD2			;PDP-11 DTA ILLEGAL
  1854	022432	336 00 0 00 025536 		SKIPN	PTFLG			;PTR ILLEGAL
  1855	022433	260 17 0 00 024016 		GO	RWORD			;READ 36 BIT WORDS
  1856	022434	254 00 0 00 022424 		JRST	FREAD2			;EOF
  1857	022435	200 16 0 00 000004 		MOVE	16,W			;PUT 36 BIT WORD IN AC16
  1858	022436	254 00 0 00 022416 		JRST	FREAD1			;REST AS ABOVE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 9
DEVLDR	MAC	23-Apr-80 13:29		"SUBRTN" PROGRAM FILE READ                                                         SEQ 0079

  1859					;*LDACHR - ASCII CHARACTER PROCESS
  1860
  1861	022437	332 00 0 00 025536 	LDACHR:	SKIPE	PTFLG
  1862	022440	254 00 0 00 023244 		JRST	LDACPT			;LOAD A CHAR FROM PAPER-TAPE
  1863	022441	332 00 0 00 025556 		SKIPE	VDTAFLG
  1864	022442	254 00 0 00 022461 		JRST	LDACD11			;PDP-11 DECTAPE
  1865	022443	302 07 0 00 000005 		CAIE	M,5			;USED ALL OF THIS 36 BIT WORD ?
  1866	022444	254 00 0 00 022454 		JRST	LDACH1			;NOT YET
  1867	022445	402 00 0 00 000007 		SETZM	M			;YES, READ NEXT 36 BIT WORD
  1868	022446	250 13 0 00 025541 		EXCH	13,SAV13
  1869	022447	250 14 0 00 025542 		EXCH	14,SAV14
  1870	022450	260 17 0 00 024016 		GO	RWORD
  1871	022451	254 00 0 00 022470 		JRST	LDAEOF			;EOF
  1872	022452	250 13 0 00 025541 		EXCH	13,SAV13
  1873	022453	250 14 0 00 025542 		EXCH	14,SAV14
  1874
  1875					LDACH1:	LDB	16,[POINT 7,W,6
  1876							POINT 7,W,13
  1877							POINT 7,W,20
  1878							POINT 7,W,27
  1879	022454	135 16 0 07 025322 			POINT 7,W,34](M)	;GET ASCII BYTE
  1880	022455	350 00 0 00 000007 		AOS	M			;COUNT IT
  1881	022456	322 16 0 00 022437 	LDACH2:	JUMPE	16,LDACHR		;IF NULL, IGNORE
  1882	022457	350 00 0 17 000000 		AOS	(P)			;SKIP RETURN
  1883	022460	263 17 0 00 000000 		RTN
  1884
  1885	022461	250 13 0 00 025541 	LDACD11:EXCH	13,SAV13
  1886	022462	250 14 0 00 025542 		EXCH	14,SAV14
  1887	022463	260 17 0 00 023660 		GO	D11CHR			;GET PDP-11 8 BIT BYTE
  1888	022464	254 00 0 00 022470 		JRST	LDAEOF			;EOF
  1889	022465	250 13 0 00 025541 		EXCH	13,SAV13
  1890	022466	250 14 0 00 025542 		EXCH	14,SAV14
  1891	022467	254 00 0 00 022456 		JRST	LDACH2
  1892
  1893	022470	250 13 0 00 025541 	LDAEOF:	EXCH	13,SAV13
  1894	022471	250 14 0 00 025542 		EXCH	14,SAV14
  1895	022472	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 10
DEVLDR	MAC	23-Apr-80 13:29		"SUBRTN" PROGRAM FILE READ                                                         SEQ 0080

  1896					;*FRD8 - 8 BIT WORD READ
  1897
  1898	022473	260 17 0 00 022513 	FRD8:	GO	G8BYT			;GET AN 8 BIT BYTE
  1899	022474	254 00 0 00 022424 		JRST	FREAD2			;EOF
  1900	022475	254 00 0 00 022416 		JRST	FREAD1			;8 BIT BYTE IN AC16
  1901
  1902	022476	7 104 34 0 00 000400 	LD8PT:	CONSO	PTR,400			;READER OUT OF TAPE ?
  1903	022477	263 17 0 00 000000 		RTN				;YES, EOF
  1904	022500	7 104 30 0 00 000020 		CONSZ	PTR,20
  1905	022501	254 00 0 00 022500 		JRST	.-1
  1906	022502	7 104 04 0 00 000016 		DATAI	PTR,16			;INPUT CHAR FROM READER
  1907	022503	254 00 0 00 020423 		JRST	CPOPJ1
  1908
  1909	022504	250 13 0 00 025541 	LD8D11:	EXCH	13,SAV13
  1910	022505	250 14 0 00 025542 		EXCH	14,SAV14
  1911	022506	260 17 0 00 023660 		GO	D11CHR			;GET PDP-11 8 BIT BYTE FROM DTA
  1912	022507	254 00 0 00 022470 		JRST	LDAEOF			;EOF
  1913	022510	250 13 0 00 025541 		EXCH	13,SAV13
  1914	022511	250 14 0 00 025542 		EXCH	14,SAV14
  1915	022512	254 00 0 00 020423 		JRST	CPOPJ1
  1916
  1917	022513	332 00 0 00 025523 	G8BYT:	SKIPE	KLDCPF
  1918	022514	254 00 0 00 023110 		JRST	KLDCP8			;KLDCP 8 BIT READ
  1919	022515	332 00 0 00 025536 		SKIPE	PTFLG
  1920	022516	254 00 0 00 022476 		JRST	LD8PT			;PAPER TAPE 8 BIT READ
  1921	022517	332 00 0 00 025556 		SKIPE	VDTAFLG
  1922	022520	254 00 0 00 022504 		JRST	LD8D11			;11 FORMAT DECTAPE 8 BIT READ
  1923
  1924	022521	350 07 0 00 025516 		AOS	M,FBSAV			;ADVANCE FILE BYTE
  1925	022522	405 07 0 00 000003 		ANDI	M,3			;(MOD 4)
  1926	022523	326 07 0 00 022527 		JUMPN	M,G8BY2			;NEED A NEW WORD ?
  1927
  1928	022524	260 17 0 00 024016 		GO	RWORD			;YES
  1929	022525	263 17 0 00 000000 		RTN				;EOF
  1930
  1931	022526	202 04 0 00 025506 	G8BY1:	MOVEM	W,BYTSAV#		;SAVE WORD
  1932
  1933					G8BY2:	LDB	16,[POINT 8,BYTSAV,17
  1934							    POINT 8,BYTSAV,9
  1935							    POINT 8,BYTSAV,35
  1936	022527	135 16 0 07 025327 			    POINT 8,BYTSAV,27](M)
  1937	022530	254 00 0 00 020423 		JRST	CPOPJ1			;LOAD & SKIP RETURN WITH BYTE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 11
DEVLDR	MAC	23-Apr-80 13:29		LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE                                           SEQ 0081

  1938					SUBTTL	LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE
  1939
  1940					;*PDPROC - FORMAT CONTROL PROCESS
  1941
  1942	022531				LDA10:
  1943	022531	402 00 0 00 025525 	LDPROC:	SETZM	LDOCTF#
  1944	022532	402 00 0 00 025527 		SETZM	LDZBLK#
  1945
  1946	022533	260 17 0 00 022437 		GO	LDACHR			;GET FILE TYPE CHAR
  1947	022534	260 17 0 00 025071 		GO	LERR2			;EOF
  1948	022535	306 16 0 00 000073 		CAIN	16,";"
  1949	022536	254 00 0 00 022704 		JRST	LDCMNT			;LINE STARTS WITH ;, COMMENT
  1950
  1951	022537	402 00 0 00 025526 		SETZM	LDTBLK#
  1952	022540	306 16 0 00 000101 		CAIN	16,"A"			;A, PDP-10 SUPER A10 FILE
  1953	022541	254 00 0 00 022547 		JRST	.+6
  1954	022542	306 16 0 00 000124 		CAIN	16,"T"			;T, PDP-10 ".A10" FILE
  1955						JRST	[SETOM	LDTBLK
  1956	022543	254 00 0 00 025333 			 JRST	.+4]
  1957	022544	302 16 0 00 000132 		CAIE	16,"Z"			;Z, ".A10" CORE ZERO
  1958	022545	260 17 0 00 025074 		GO	LERR3
  1959	022546	476 00 0 00 025527 		SETOM	LDZBLK
  1960
  1961	022547	260 17 0 00 022437 		GO	LDACHR			;GET FORMAT CHAR
  1962	022550	260 17 0 00 025071 		GO	LERR2			;EOF
  1963
  1964	022551	306 16 0 00 000040 		CAIN	16," "			;SPACE, ASCIIZED
  1965	022552	254 00 0 00 022556 		JRST	.+4
  1966	022553	302 16 0 00 000117 		CAIE	16,"O"			;O, OCTAL
  1967	022554	260 17 0 00 025076 		GO	LERR4
  1968	022555	476 00 0 00 025525 		SETOM	LDOCTF
  1969
  1970	022556	200 16 0 00 025335 		MOVE	16,[LDCNT,,LDCNT+1]
  1971	022557	402 00 0 00 025674 		SETZM	LDCNT
  1972	022560	251 16 0 00 025740 		BLT	16,LDATAE		;CLEAR LOAD STORAGE
  1973
  1974	022561	201 13 0 00 025674 		MOVEI	13,LDCNT		;SETUP CONVERTED STORAGE POINTER
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 12
DEVLDR	MAC	23-Apr-80 13:29		LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE                                           SEQ 0082

  1975					;*LDCNV - CONVERT ASCIIZED BACK INTO BITS
  1976
  1977	022562	402 00 0 00 000014 	LDCNV:	SETZM	14			;CLEAR CONVERTED WORD FORMER
  1978
  1979	022563	260 17 0 00 022437 	LDCNV1:	GO	LDACHR			;LOAD AN ASCII CHAR
  1980	022564	260 17 0 00 025071 		GO	LERR2			;EOF
  1981
  1982	022565	306 16 0 00 000015 		CAIN	16,15			;CR, IGNORE
  1983	022566	254 00 0 00 022563 		JRST	LDCNV1
  1984
  1985	022567	306 16 0 00 000012 		CAIN	16,12			;LF, END OF LINE
  1986	022570	254 00 0 00 022625 		JRST	LDEOL
  1987
  1988	022571	306 16 0 00 000054 		CAIN	16,54			;COMMA, FIELD SEPARATOR
  1989	022572	254 00 0 00 022623 		JRST	LDCMA
  1990
  1991	022573	332 00 0 00 025525 		SKIPE	LDOCTF
  1992	022574	254 00 0 00 022620 		JRST	LDCNV3			;LOADING OCTAL FORMAT
  1993
  1994	022575	301 16 0 00 000065 		CAIL	16,"5"		;5 TO : ?
  1995	022576	303 16 0 00 000072 		CAILE	16,":"
  1996	022577	254 00 0 00 022605 		JRST	.+6		;NO
  1997	022600	275 16 0 00 000065 		SUBI	16,"5"		;YES, INSERT SUPPRESSED ONES
  1998	022601	242 14 0 00 000006 		LSH	14,6
  1999	022602	660 14 0 00 000077 		TRO	14,77
  2000	022603	365 16 0 00 022601 		SOJGE	16,.-2
  2001	022604	254 00 0 00 022563 		JRST	LDCNV1
  2002
  2003	022605	301 16 0 00 000060 		CAIL	16,"0"		;0 TO 4 ?
  2004	022606	303 16 0 00 000064 		CAILE	16,"4"
  2005	022607	254 00 0 00 022614 		JRST	.+5		;NO
  2006	022610	405 16 0 00 000007 		ANDI	16,7		;YES, INSERT SUPPRESSED ZEROS
  2007	022611	242 14 0 00 000006 		LSH	14,6
  2008	022612	365 16 0 00 022611 		SOJGE	16,.-1
  2009	022613	254 00 0 00 022563 		JRST	LDCNV1
  2010
  2011	022614	242 14 0 00 000006 		LSH	14,6			;SHIFT WORD FORMER LEFT 6
  2012	022615	405 16 0 00 000077 		ANDI	16,77			;KEEP ASCIIZED OIT BITS
  2013
  2014	022616	434 14 0 00 000016 	LDCNV2:	OR	14,16			;INSERT NEW OIT
  2015	022617	254 00 0 00 022563 		JRST	LDCNV1
  2016
  2017	022620	242 14 0 00 000003 	LDCNV3:	LSH	14,3			;SHIFT WORD FORMER LEFT 3, OCTAL
  2018	022621	405 16 0 00 000007 		ANDI	16,7			;KEEP OCTAL OIT BITS
  2019	022622	254 00 0 00 022616 		JRST	LDCNV2
  2020
  2021	022623	202 14 0 13 000000 	LDCMA:	MOVEM	14,(13)			;STORE CONVERTED WORD
  2022	022624	344 13 0 00 022562 		AOJA	13,LDCNV		;COUNT AND GO FOR NEXT WORD
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 13
DEVLDR	MAC	23-Apr-80 13:29		LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE                                           SEQ 0083

  2023					;*LDEOL - END OF LINE, CHECKSUM LOAD LINE
  2024
  2025	022625	202 14 0 13 000000 	LDEOL:	MOVEM	14,(13)			;STORE CHECKSUM
  2026
  2027	022626	332 00 0 00 025525 		SKIPE	LDOCTF
  2028	022627	254 00 0 00 022637 		JRST	LDTEN			;OCTAL, NO CHECKSUM
  2029
  2030	022630	201 13 0 00 025674 		MOVEI	13,LDCNT		;CHECKSUM LOAD STORAGE
  2031	022631	402 00 0 00 000014 		SETZM	14
  2032	022632	270 14 0 13 000000 		ADD	14,(13)
  2033	022633	302 13 0 00 025740 		CAIE	13,LDATAE
  2034	022634	344 13 0 00 022632 		AOJA	13,.-2
  2035
  2036	022635	602 14 0 00 177777 		TRNE	14,177777		;16 BIT CHECKSUM = 0 ?
  2037	022636	260 17 0 00 025100 		GO	LERR5			;NO, CHECKSUM ERROR
  2038
  2039					;*LDTEN - CREATE LOAD ADDRESS AND WORD COUNT
  2040
  2041	022637	135 13 0 00 025336 	LDTEN:	LDB	13,[POINT 2,LDCNT,27]
  2042	022640	242 13 0 00 000020 		LSH	13,^D16
  2043	022641	434 13 0 00 025675 		OR	13,LDADR		;CREATE PDP-10 LOAD ADDRESS
  2044
  2045	022642	135 14 0 00 025337 		LDB	14,[POINT 8,LDCNT,35]	;WORD COUNT
  2046
  2047	022643	336 00 0 00 025527 		SKIPN	LDZBLK
  2048	022644	254 00 0 00 022654 		JRST	LDTEN1			;LOAD TEN DATA WORDS
  2049
  2050					;*LDTENZ - CLEAR TEN CORE, JOB START TO JOB FIRST FREE
  2051
  2052	022645	322 14 0 00 022531 	LDTENZ:	JUMPE	14,LDPROC		;WC=0, NO ZEROING
  2053	022646	202 13 0 00 025522 		MOVEM	13,JOBSAW		;SETUP JOB START ADDRESS
  2054	022647	270 13 0 14 025675 		ADD	13,LDATA-1(14)
  2055	022650	367 14 0 00 022647 		SOJG	14,.-1			;ADD UP ZERO COUNT
  2056	022651	202 13 0 00 025521 		MOVEM	13,JOBFFW		;SETUP JOB FIRST FREE ADDRESS
  2057
  2058	022652	260 17 0 00 023027 		GO	CLRCOR			;CLEAR PDP-10 CORE
  2059	022653	254 00 0 00 022531 		JRST	LDPROC
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 14
DEVLDR	MAC	23-Apr-80 13:29		LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE                                           SEQ 0084

  2060					;*LDTEN1 - TRANSFER TEN WORDS TO MEMORY
  2061
  2062	022654	336 00 0 00 025526 	LDTEN1:	SKIPN	LDTBLK
  2063	022655	200 13 0 00 025675 		MOVE	13,LDADR
  2064	022656	322 14 0 00 022702 		JUMPE	14,LDDONE		;WC=0, TRANSFER BLOCK
  2065
  2066	022657	201 15 0 00 025676 		MOVEI	15,LDATA		;SETUP PICKUP POINTER
  2067
  2068	022660	200 16 0 15 000000 	LDTEN2:	MOVE	16,(15)			;GET 36 BIT WORD
  2069	022661	336 00 0 00 025526 		SKIPN	LDTBLK
  2070	022662	254 00 0 00 022670 		JRST	.+6
  2071	022663	200 16 0 15 000002 		MOVE	16,2(15)		;BITS 0 TO 7
  2072	022664	242 16 0 00 000020 		LSH	16,^D16
  2073	022665	434 16 0 15 000001 		OR	16,1(15)		;BITS 8 TO 23
  2074	022666	242 16 0 00 000020 		LSH	16,^D16
  2075	022667	434 16 0 15 000000 		OR	16,0(15)		;BITS 24 TO 35
  2076
  2077	022670	202 16 0 13 000000 		MOVEM	16,(13)			;STORE 36 BIT WORD IN MEMORY
  2078
  2079	022671	350 00 0 00 000013 		AOS	13			;INCREMENT PDP-10 ADDRESS
  2080	022672	271 15 0 00 000001 		ADDI	15,1			;BUMP PICKUP POINTER
  2081	022673	332 00 0 00 025526 		SKIPE	LDTBLK
  2082	022674	271 15 0 00 000002 		ADDI	15,2
  2083	022675	275 14 0 00 000001 		SUBI	14,1			;DECREMENT WORD COUNT
  2084	022676	332 00 0 00 025526 		SKIPE	LDTBLK
  2085	022677	275 14 0 00 000002 		SUBI	14,2
  2086	022700	327 14 0 00 022660 		JUMPG	14,LDTEN2		;DO TILL ALL WORDS USED
  2087	022701	254 00 0 00 022531 		JRST	LDPROC			;CONTINUE TILL TRANSFER BLOCK
  2088
  2089					;*LDDONE - COMPLETED, GO TO START ROUTINE
  2090
  2091	022702	200 04 0 00 000013 	LDDONE:	MOVE	W,13			;SETUP START ADDRESS
  2092	022703	254 00 0 00 024055 		JRST	STARTQ			;GO TO START ROUTINE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 15
DEVLDR	MAC	23-Apr-80 13:29		LDA10 - LOAD PDP-10 ASCIIZED ".A10" FILE                                           SEQ 0085

  2093					;*LDCMNT - LOAD FILE COMMENT LINE
  2094
  2095	022704	402 00 0 00 000015 	LDCMNT:	SETZM	PNT			;GET 1ST 3 COMMENT CHARS
  2096	022705	260 17 0 00 022437 		GO	LDACHR
  2097	022706	260 17 0 00 025071 		GO	LERR2			;ILLEGAL EOF
  2098	022707	137 16 0 00 025340 		DPB	16,[POINT 7,PNT,6]
  2099	022710	260 17 0 00 022437 		GO	LDACHR
  2100	022711	260 17 0 00 025071 		GO	LERR2
  2101	022712	137 16 0 00 025341 		DPB	16,[POINT 7,PNT,13]
  2102	022713	260 17 0 00 022437 		GO	LDACHR
  2103	022714	260 17 0 00 025071 		GO	LERR2
  2104	022715	137 16 0 00 025342 		DPB	16,[POINT 7,PNT,20]
  2105
  2106	022716	316 15 0 00 025343 		CAMN	PNT,[ASCII/EOT/]
  2107	022717	254 00 0 00 023226 		JRST	PTCNTL			;PAPER TAPE END OF TAPE
  2108
  2109	022720	261 17 0 00 000000 		PUT	0
  2110	022721	402 00 0 00 000016 		SETZM	PNT1			;NO, PRINT 1ST 3 COMMENT CHARS
  2111	022722	201 00 0 00 000015 		MOVEI	0,PNT
  2112	022723	336 00 0 00 025534 		SKIPN	NOCMNT
  2113	022724	260 17 0 00 021462 		PNTAL
  2114
  2115	022725	260 17 0 00 022732 		GO	CMNPNT			;PRINT REST OF COMMENT LINE
  2116
  2117	022726	262 17 0 00 000000 		GET	0
  2118	022727	332 00 0 00 025551 		SKIPE	SPECIAL
  2119	022730	254 00 0 00 022410 		JRST	FREAD3
  2120	022731	254 00 0 00 022531 		JRST	LDPROC
  2121
  2122					;*CMNPNT - PRINT COMMENT LINE
  2123
  2124	022732	260 17 0 00 022437 	CMNPNT:	GO	LDACHR
  2125	022733	254 00 0 00 025071 		JRST	LERR2
  2126	022734	306 16 0 00 000012 		CAIN	16,12			;LINE FEED ?
  2127	022735	254 00 0 00 022741 		JRST	.+4			;YES
  2128	022736	336 00 0 00 025534 		SKIPN	NOCMNT
  2129	022737	260 17 0 00 020356 		GO	PNT16			;PRINT COMMENT LINE
  2130	022740	254 00 0 00 022732 		JRST	CMNPNT
  2131
  2132	022741	336 00 0 00 025534 		SKIPN	NOCMNT
  2133	022742	260 17 0 00 020356 		GO	PNT16
  2134	022743	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 16
DEVLDR	MAC	23-Apr-80 13:29		PROGRAM CORE AREA SETUP                                                            SEQ 0086

  2135					SUBTTL	PROGRAM CORE AREA SETUP
  2136
  2137			000004		T0=4					;W
  2138			000005		T1=5					;Q
  2139			000007		T2=7					;M
  2140			000006		T3=6					;N
  2141			000003		T4=3					;C
  2142
  2143					;*PRGCOR - SETUP CORE ZEROING FOR ".SAV" FILES
  2144
  2145	022744	332 00 0 00 025502 	PRGCOR:	SKIPE	A10FLG
  2146	022745	254 00 0 00 022531 		JRST	LDA10			;LOAD ".A10" FILE
  2147
  2148	022746	402 00 0 00 000005 		SETZM	Q
  2149	022747	260 17 0 00 024016 		GO	RWORD			;READ FIRST BLOCK/WORD
  2150	022750	260 17 0 00 025102 		GO	ERR2			;EOF, ILLEGAL
  2151
  2152	022751	202 04 0 00 025544 		MOVEM	T0,SAVT0#
  2153	022752	202 05 0 00 025545 		MOVEM	T1,SAVT1#
  2154	022753	202 07 0 00 025546 		MOVEM	T2,SAVT2#
  2155	022754	202 06 0 00 025547 		MOVEM	T3,SAVT3#
  2156	022755	202 03 0 00 025550 		MOVEM	T4,SAVT4#
  2157	022756	336 00 0 00 020006 		SKIPN	USER
  2158	022757	370 00 0 00 025545 		SOS	SAVT1			;EXEC, BACKUP POINTER
  2159
  2160	022760	331 00 0 00 000004 		SKIPL	T0
  2161	022761	260 17 0 00 025112 		GO	ERR6			;FIRST WORD NOT POINTER
  2162	022762	201 07 0 04 000176 		MOVEI	T2,^D126(T0)
  2163	022763	201 06 0 00 000137 		MOVEI	T3,137			;FIRST POINTER LEGAL ?
  2164	022764	315 07 0 00 000006 		CAMGE	T2,T3
  2165	022765	260 17 0 00 025112 		GO	ERR6			;NO
  2166
  2167	022766	550 05 0 00 025545 		HRRZ	T1,SAVT1
  2168	022767	201 06 0 00 000120 		MOVEI	T3,JOBSA
  2169	022770	260 17 0 00 023015 		GO	RMS1			;GET 'JOBSA'
  2170	022771	552 04 0 00 025522 		HRRZM	T0,JOBSAW#
  2171	022772	336 05 0 00 025522 		SKIPN	T1,JOBSAW	
  2172	022773	260 17 0 00 025114 		GO	ERR7			;NO STARTING ADDRESS
  2173	022774	306 05 0 00 000140 		CAIN	T1,140
  2174	022775	260 17 0 00 025114 		GO	ERR7			;PROGRAMS CAN'T START AT 140
  2175
  2176	022776	550 05 0 00 025545 		HRRZ	T1,SAVT1
  2177	022777	201 06 0 00 000121 		MOVEI	T3,JOBFF
  2178	023000	260 17 0 00 023015 		GO	RMS1			;GET 'JOBFF'
  2179	023001	202 04 0 00 025521 		MOVEM	T0,JOBFFW#
  2180
  2181	023002	260 17 0 00 023027 		GO	CLRCOR			;CLEAR PROGRAM'S CORE AREA
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 17
DEVLDR	MAC	23-Apr-80 13:29		PROGRAM CORE AREA SETUP                                                            SEQ 0087

  2182	023003	336 00 0 00 020006 		SKIPN	USER
  2183	023004	350 00 0 00 025545 		AOS	SAVT1			;EXEC, RE-ADVANCE POINTER
  2184	023005	200 04 0 00 025544 		MOVE	T0,SAVT0
  2185	023006	200 05 0 00 025545 		MOVE	T1,SAVT1
  2186	023007	200 07 0 00 025546 		MOVE	T2,SAVT2
  2187	023010	200 06 0 00 025547 		MOVE	T3,SAVT3
  2188	023011	200 03 0 00 025550 		MOVE	T4,SAVT4
  2189	023012	254 00 0 00 024004 		JRST	RFILL3			;NOW GO LOAD PROGRAM
  2190
  2191	023013	274 05 0 00 000003 	RMS2:	SUB	T1,T4
  2192	023014	340 05 0 00 000000 		AOJ	T1,
  2193	023015	200 04 0 05 000000 	RMS1:	MOVE	T0,(T1)			;GET POINTER
  2194	023016	550 07 0 00 000004 		HRRZ	T2,T0			; X
  2195	023017	564 03 0 00 000004 		HLRO	T4,T0			; -N
  2196	023020	274 07 0 00 000003 		SUB	T2,T4			; X+N IN T2
  2197	023021	315 07 0 00 000006 		CAMGE	T2,T3			;THIS POINTER TO REQ DATA ?
  2198	023022	254 00 0 00 023013 		JRST	RMS2			;NO, GET NEXT POINTER
  2199	023023	275 06 0 04 000000 		SUBI	T3,(T0)			;YES, HOW FAR FROM POINTER ?
  2200	023024	270 05 0 00 000006 		ADD	T1,T3			;INCREMENT POINTER
  2201	023025	200 04 0 05 000000 		MOVE	T0,(T1)			;GET REQ DATA
  2202	023026	263 17 0 00 000000 		RTN
  2203
  2204					;*CLRCOR - CLEAR CORE FOR DIAGNOSTIC SEGMENT
  2205					;*	   CLEARS CORE FROM 'JOBSA' TO 'JOBFF'
  2206
  2207	023027	336 00 0 00 020006 	CLRCOR:	SKIPN	USER			;USER MODE ?
  2208	023030	254 00 0 00 023044 		JRST	CLRCR1			;NO
  2209	023031	200 00 0 00 000044 		MOVE	JOBREL			;YES, PRESENT JOBREL LT DIAMON'S ?
  2210	023032	317 00 0 00 025552 		CAMG	SVJBREL
  2211	023033	254 00 0 00 023037 		JRST	.+4			;YES
  2212	023034	200 00 0 00 025552 		MOVE	SVJBREL			;NO, REDUCE CORE TO DIAMON'S
  2213	023035	047 00 0 00 000011 		CORE
  2214	023036	254 00 0 00 025122 		JRST	ERR10
  2215	023037	200 00 0 00 025521 		MOVE	JOBFFW			;THIS PRG NEED MORE THAN DIAMON'S ?
  2216	023040	317 00 0 00 025552 		CAMG	SVJBREL
  2217	023041	254 00 0 00 023044 		JRST	.+3			;NO
  2218	023042	047 00 0 00 000011 		CORE				;YES, EXPAND CORE FOR PROGRAM
  2219	023043	254 00 0 00 025122 		JRST	ERR10
  2220	023044	202 05 0 00 025543 	CLRCR1:	MOVEM	Q,SAVQ#
  2221	023045	200 05 0 00 025522 		MOVE	Q,JOBSAW
  2222	023046	301 05 0 00 020000 		CAIL	Q,START			;DO NOT, REPEAT NOT, CLEAR "DIAMON" !
  2223	023047	301 05 0 00 030000 		CAIL	Q,DIAGNOS
  2224	023050	402 00 0 05 000000 		SETZM	(Q)
  2225	023051	315 05 0 00 025521 		CAMGE	Q,JOBFFW
  2226	023052	344 05 0 00 023046 		AOJA	Q,.-4
  2227	023053	200 05 0 00 025543 		MOVE	Q,SAVQ
  2228	023054	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 18
DEVLDR	MAC	23-Apr-80 13:29		KL10 KLDCP MODE LOADER                                                             SEQ 0088

  2229					SUBTTL	KL10 KLDCP MODE LOADER
  2230
  2231					;*KLDCPL - LOOKUP FILE USING THE CONSOLE LOAD DEVICES
  2232
  2233	023055	476 00 0 00 025502 	KLDCPL:	SETOM	A10FLG			;MUST BE .A10 FORMAT
  2234	023056	201 00 0 00 000026 		MOVEI	0,26			;FLUSH KLDCP OUTPUT BUFFER
  2235	023057	260 17 0 00 022072 		GO	$DTEXX
  2236	023060	200 01 0 16 000000 		MOVE	A,(IP)
  2237	023061	260 17 0 00 020347 		GO	SIXBP			;SEND KLDCP NAME
  2238	023062	201 00 0 00 000056 		MOVEI	"."
  2239	023063	260 17 0 00 021513 		GO	PRINT
  2240	023064	510 01 0 16 000001 		HLLZ	A,1(IP)
  2241	023065	332 00 0 00 000001 		SKIPE	A			;IF NO EXT, USE .A10
  2242	023066	316 01 0 00 025344 		CAMN	A,[SIXBIT/SAV/]		;IF EXT .SAV, CHANGE TO .A10
  2243	023067	200 01 0 00 025345 		MOVE	A,[SIXBIT/A10/]
  2244	023070	260 17 0 00 020347 		GO	SIXBP			;SEND KLDCP EXT
  2245
  2246	023071	201 00 0 00 000406 		MOVEI	0,406			;FILE LOOKUP COMMAND
  2247	023072	260 17 0 00 022072 		GO	$DTEXX			;SEND TO KLDCP
  2248	023073	405 00 0 00 177777 		ANDI	0,177777
  2249	023074	200 01 0 00 000000 		MOVE	A,0
  2250	023075	405 00 0 00 000177 		ANDI	0,177			;SAVE ONLY DEVICE CODE
  2251	023076	202 00 0 00 025524 		MOVEM	0,LDEVICE
  2252	023077	602 01 0 00 177400 		TRNE	A,177400
  2253	023100	254 00 0 00 022372 		JRST	NFERR			;NON-ZERO, NOT FOUND
  2254
  2255	023101	254 00 0 00 022355 		JRST	RFILE			;FOUND & SETUP
  2256
  2257					;*KLDCPW - KLDCP READ WORD
  2258
  2259	023102	201 00 0 00 000407 	KLDCPW:	MOVEI	0,407			;FILE READ COMMAND
  2260	023103	260 17 0 00 022072 		GO	$DTEXX			;SEND TO KLDCP
  2261	023104	200 04 0 00 000000 		MOVE	W,0
  2262	023105	312 04 0 00 025346 		CAME	W,[-1]			;-1 = END OF FILE
  2263	023106	350 00 0 17 000000 		AOS	(P)			;OTHERWISE, SKIP RETURN
  2264	023107	263 17 0 00 000000 		RTN				;WITH 5 CHARS IN W
  2265
  2266					;*KLDCP8 - KLDCP READ 8 BIT BYTE
  2267
  2268	023110	201 00 0 00 000414 	KLDCP8:	MOVEI	0,414			;FILE READ 8 BIT COMMAND
  2269	023111	260 17 0 00 022072 		GO	$DTEXX			;SEND TO KLDCP
  2270	023112	200 16 0 00 000000 		MOVE	16,0
  2271	023113	312 16 0 00 025346 		CAME	16,[-1]			;-1 = END OF FILE
  2272	023114	350 00 0 17 000000 		AOS	(P)			;OTHERWISE, SKIP RETURN
  2273	023115	405 16 0 00 000377 		ANDI	16,377			;WITH 8 BIT BYTE IN AC16
  2274	023116	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 19
DEVLDR	MAC	23-Apr-80 13:29		USER MODE LOADER                                                                   SEQ 0089

  2275					SUBTTL	USER MODE LOADER
  2276
  2277					;*USERLD - LOOKUP FILE ON THE USERS DISK
  2278
  2279	023117	201 00 0 00 000005 	USERLD:	MOVEI	5
  2280	023120	202 00 0 00 025524 		MOVEM	LDEVICE
  2281	023121	402 00 0 00 025752 		SETZM	LDBUF+1
  2282	023122	402 00 0 00 025753 		SETZM	LDBUF+2
  2283	023123	050 16 0 00 025746 		OPEN	LDCHN,LDBLK		;SETUP INPUT FILE
  2284	023124	260 17 0 00 025116 		GO	ERR8
  2285	023125	200 00 0 00 025347 		MOVE	[400000,,LDBF+1]
  2286	023126	202 00 0 00 025751 		MOVEM	LDBUF			;SETUP BUFFER POINTER
  2287	023127	200 00 0 00 025350 		MOVE	[201,,LDBF1+1]
  2288	023130	202 00 0 00 027001 		MOVEM	LDBF+1			;CLEAR BUFFER USE BITS
  2289	023131	200 00 0 00 025351 		MOVE	[201,,LDBF2+1]
  2290	023132	202 00 0 00 027204 		MOVEM	LDBF1+1
  2291	023133	200 00 0 00 025352 		MOVE	[201,,LDBF+1]
  2292	023134	202 00 0 00 027407 		MOVEM	LDBF2+1
  2293	023135	200 00 0 16 000000 		MOVE	(IP)
  2294	023136	202 00 0 00 025742 		MOVEM	LDNAME			;SETUP FILE NAME
  2295	023137	510 00 0 16 000001 		HLLZ	1(IP)
  2296	023140	322 00 0 00 023144 		JUMPE	USLD1			;IF NO EXT, TRY A10 & SAV
  2297
  2298	023141	260 17 0 00 023153 		GO	USLKUP			;LOOKUP FILE
  2299	023142	254 00 0 00 022355 		JRST	RFILE			;FOUND
  2300	023143	254 00 0 00 022372 		JRST	NFERR			;NOT FOUND
  2301
  2302	023144	205 00 0 00 634166 	USLD1:	MOVSI	(SIXBIT/SAV/)
  2303	023145	260 17 0 00 023153 		GO	USLKUP			;LOOKUP "SAV"
  2304	023146	254 00 0 00 022355 		JRST	RFILE			;FOUND
  2305	023147	205 00 0 00 412120 		MOVSI	(SIXBIT/A10/)
  2306	023150	260 17 0 00 023153 		GO	USLKUP			;LOOKUP "A10"
  2307	023151	254 00 0 00 022355 		JRST	RFILE			;FOUND
  2308	023152	254 00 0 00 022372 		JRST	NFERR			;COUNDN'T FIND EITHER
  2309
  2310	023153	202 00 0 00 025743 	USLKUP:	MOVEM	LDNAME+1
  2311	023154	076 16 0 00 025742 		LOOKUP	LDCHN,LDNAME
  2312	023155	254 00 0 00 020423 		JRST	CPOPJ1			;NOT FOUND
  2313	023156	554 00 0 00 025743 		HLRZ	LDNAME+1
  2314	023157	306 00 0 00 412120 		CAIN	(SIXBIT/A10/)
  2315	023160	476 00 0 00 025502 		SETOM	A10FLG			;LOADING "A10" FILE
  2316	023161	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 20
DEVLDR	MAC	23-Apr-80 13:29		USER MODE LOADER                                                                   SEQ 0090

  2317					;*URWD - USER MODE READ WORD
  2318
  2319	023162	373 00 0 00 025753 	URWD:	SOSLE	LDBUF+2
  2320	023163	254 00 0 00 023171 		JRST	URWD1
  2321	023164	056 16 0 00 000000 		IN	LDCHN,
  2322	023165	254 00 0 00 023171 		JRST	URWD1
  2323	023166	063 16 0 00 740000 		STATZ	LDCHN,740000
  2324	023167	260 17 0 00 025120 		GO	ERR9
  2325	023170	263 17 0 00 000000 		RTN
  2326
  2327	023171	134 04 0 00 025752 	URWD1:	ILDB	W,LDBUF+1
  2328	023172	200 05 0 00 025752 		MOVE	Q,LDBUF+1
  2329	023173	254 00 0 00 020423 		JRST	CPOPJ1
  2330
  2331					;*USRINT - USER MODE INIT, SETUP MINIMUM OF 32K OF CORE
  2332
  2333	023174	201 00 0 00 077777 	USRINT:	MOVEI	<^D32*^D1024>-1
  2334	023175	317 00 0 00 025552 		CAMG	SVJBREL			;DO WE HAVE 32K MINIMUM ?
  2335	023176	263 17 0 00 000000 		RTN				;YES
  2336	023177	047 00 0 00 000011 		CORE				;NO, EXPAND CORE TO 32K
  2337	023200	260 17 0 00 025122 		GO	ERR10
  2338	023201	200 00 0 00 000044 		MOVE	JOBREL
  2339	023202	202 00 0 00 025552 		MOVEM	SVJBREL			;SAVE MAX CORE NOW
  2340	023203	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 21
DEVLDR	MAC	23-Apr-80 13:29		PAPER TAPE LOADER                                                                  SEQ 0091

  2341					SUBTTL	PAPER TAPE LOADER
  2342
  2343	023204	201 00 0 00 000004 	PTLD:	MOVEI	4
  2344	023205	202 00 0 00 025524 		MOVEM	LDEVICE
  2345	023206	402 00 0 00 025534 		SETZM	NOCMNT
  2346	023207	476 00 0 00 025502 		SETOM	A10FLG			;ASCII READ ONLY
  2347	023210	205 00 0 00 412120 		MOVSI	(SIXBIT/A10/)
  2348	023211	336 00 0 16 000001 		SKIPN	1(IP)			;ANY EXTENSION ?
  2349	023212	202 00 0 16 000001 		MOVEM	0,1(IP)			;NO, USE ".A10"
  2350	023213	260 17 0 00 021567 		GO	CRLF1
  2351	023214	260 17 0 00 020337 		GO	NAMPNT			;PRINT FILE REQUESTED
  2352						PMSG	<PLACE TAPE IN READER, TYPE CR WHEN READY^>^
  2353	023215	201 00 0 00 025353 		MOVEI	[SIXBIT\PLACE TAPE IN READER, TYPE CR WHEN READY^_\]
  2354	023216	260 17 0 00 021426 		PNTMSG^
  2355	023217	260 17 0 00 021673 		TTICHR
  2356	023220	302 00 0 00 000012 		CAIE	12			;YOU GET LF
  2357	023221	254 00 0 00 023217 		JRST	.-2
  2358
  2359	023222	7 104 04 0 00 000000 		DATAI	PTR,0
  2360	023223	7 104 34 0 00 000400 		CONSO	PTR,400			;TEST TAPE BIT
  2361	023224	254 00 0 00 023204 		JRST	PTLD			;TAPE IN READER FLAG NOT SET
  2362
  2363	023225	254 00 0 00 022355 		JRST	RFILE			;OK, GO
  2364
  2365	023226				PTCNTL:	PMSG	<END OF TAPE>^
  2366	023226	201 00 0 00 025362 		MOVEI	[SIXBIT\END OF TAPE_\]
  2367	023227	260 17 0 00 021426 		PNTMSG^
  2368	023230	260 17 0 00 022732 		GO	CMNPNT			;PRINT REST OF COMMENT LINE
  2369
  2370	023231				PTCNT1:	PMSG	<^PLACE NEXT PART IN READER, TYPE CR WHEN READY^>^
  2371	023231	201 00 0 00 025364 		MOVEI	[SIXBIT\^PLACE NEXT PART IN READER, TYPE CR WHEN READY^_\]
  2372	023232	260 17 0 00 021426 		PNTMSG^
  2373	023233	260 17 0 00 021673 		TTICHR
  2374	023234	302 00 0 00 000012 		CAIE	12
  2375	023235	254 00 0 00 023233 		JRST	.-2
  2376
  2377	023236	7 104 04 0 00 000000 		DATAI	PTR,0
  2378	023237	7 104 34 0 00 000400 		CONSO	PTR,400			;TEST TAPE BIT
  2379	023240	254 00 0 00 023231 		JRST	PTCNT1			;TAPE IN READER FLAG NOT SET
  2380	023241	332 00 0 00 025551 		SKIPE	SPECIAL
  2381	023242	254 00 0 00 022410 		JRST	FREAD3
  2382	023243	254 00 0 00 022531 		JRST	LDPROC
  2383
  2384	023244	7 104 34 0 00 000400 	LDACPT:	CONSO	PTR,400			;READER OUT OF TAPE ?
  2385	023245	263 17 0 00 000000 		RTN				;YES, EOF
  2386	023246	7 104 30 0 00 000020 		CONSZ	PTR,20
  2387	023247	254 00 0 00 023246 		JRST	.-1
  2388	023250	7 104 04 0 00 000016 		DATAI	PTR,16			;INPUT CHAR FROM READER
  2389	023251	405 16 0 00 000177 		ANDI	16,177			;MAKE 7 BITS
  2390	023252	254 00 0 00 022456 		JRST	LDACH2
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 22
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0092

  2391					SUBTTL	DECTAPE LOAD ONLY ROUTINE
  2392
  2393					;*DECTAPE CONTROL BITS
  2394
  2395			400000		DTSTOP=400000				;DTC, STOP
  2396			200000		DTFWD=200000				;DTC, GO FORWARD
  2397			100000		DTRVS=100000				;DTC, GO REVERSE
  2398			020000		DTSEL=020000				;DTC, SELECT
  2399			010000		DTDSEL=010000				;DTC, DESELECT
  2400			000001		DTDREQ=000001				;DTS, DATA REQUEST
  2401			000001		DTFSTP=000001				;DTS, FUNCTION STOP
  2402			100000		DTJBDN=100000				;DTS, JOB DONE
  2403			000100		DTRALL=000100				;DTC, READ ALL
  2404			000200		DTRBN=000200				;DTC, READ BLOCK NUMBERS
  2405			000300		DTREAD=300				;DTC, READ
  2406			020000		DTEND=20000				;DTS, END ZONE
  2407			400000		DTREV=400000				;F, TAPE MOVING IN REVERSE
  2408			653300		DTERR=653300				;DTS, ERROR;  PARITY,DATA MISS,ILL OP,BLK MISS
  2409										;	      WM SW,MK TRK ER,SEL ERR
  2410
  2411					;*ACCUMULATOR ASSIGNMENTS
  2412
  2413			000000		F=0					;TEMP
  2414			000001		A=1					;TEMP
  2415			000002		B=2					;TEMP
  2416			000003		C=3					;HOLDS BITS FOR DECTAPE CONO DURING I/O
  2417			000004		W=4					;WORD RETURNED BY RWORD
  2418			000005		Q=5					;COUNTER, DATA WORD BUFFER
  2419			000006		N=6					;COUNTER, SEARCH & DTABLK
  2420			000007		M=7					;MEMORY AOBJN POINTER, DATA TO CORE
  2421			000010		FILN=10					;NUMBER OF FILE IN DIRECTORY, 1 TO 26 OCTAL
  2422			000011		TABADR=11				;DIRECTORY SLOT ADDRESSER
  2423			000012		PNTR=12					;POSITIONER FOR BYTE TABLE IN DIRECTORY
  2424			000013		BLKNO=13				;BLOCK NUMBER SEARCHED FOR ON TAPE
  2425			000015		PNT=15					;LISTING AC'S
  2426			000016		PNT1=16
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 23
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0093

  2427					;*DTALD - INITIAL ENTRY TO LOAD TAPE
  2428
  2429	023253	201 00 0 00 000001 	DTALD:	MOVEI	1
  2430	023254	202 00 0 00 025524 		MOVEM	LDEVICE
  2431	023255	476 00 0 00 025667 		SETOM	DIRSRC			;SETUP FOR TAPE SEARCH
  2432	023256	402 00 0 00 025670 		SETZM	DOSRCH
  2433	023257	403 11 0 00 000012 		SETZB	TABADR,PNTR		;SETUP DIR SLOT POINTERS
  2434	023260	7 320 20 0 00 400000 		CONO	DTC,DTSTOP		;STOP TAPE DRIVE
  2435	023261	200 01 0 16 000000 		MOVE	A,(IP)			;GET REQUESTED FILE NAME
  2436	023262	510 03 0 16 000001 		HLLZ	C,1(IP)
  2437	023263	205 10 0 00 777752 		MOVSI	FILN,-26		;FILE NAME SPECIFIED
  2438	023264	510 02 0 10 027153 	LUP:	HLLZ	B,TAB+151(FILN)		;LOOK IT UP
  2439	023265	312 01 0 10 027125 		CAME	A,TAB+123(FILN)
  2440	023266	254 00 0 00 023271 		JRST	.+3
  2441	023267	322 03 0 00 023274 		JUMPE	C,LUP3
  2442	023270	312 03 0 00 000002 		CAME	C,B
  2443	023271	253 10 0 00 023264 	LUP1:	AOBJN	FILN,LUP		;NOT FOUND, KEEP LOOKING
  2444	023272	321 10 0 00 023277 	LUP2:	JUMPL	FILN,FNFND		;IF FOUND JUMP
  2445	023273	254 00 0 00 023325 		JRST	NF			;NOT FOUND
  2446
  2447	023274	260 17 0 00 023413 	LUP3:	GO	EXTCK			;CHECK EXT FOR EITHER "A10" OR "SAV"
  2448	023275	254 00 0 00 023271 		JRST	LUP1			;NOT FOUND
  2449	023276	254 00 0 00 023272 		JRST	LUP2			;FOUND
  2450
  2451	023277	201 10 0 10 000001 	FNFND:	MOVEI	FILN,1(FILN)		;FILN IS FILE #+1, CLR LH
  2452
  2453	023300	403 05 0 00 000013 		SETZB	Q,BLKNO
  2454	023301	350 00 0 00 000013 	MNLUP:	AOS	BLKNO
  2455	023302	334 00 0 00 000000 		SKIPA				;SEARCH DIRECTORY BLK # SLOTS
  2456	023303	561 12 0 00 777734 		HRROI	PNTR,-^D36
  2457	023304	271 12 0 00 000005 		ADDI	PNTR,5			;ILDB SUBSTITUTION
  2458	023305	331 00 0 00 000012 		SKIPL	PNTR			;FOR ILDB B,PNTR
  2459	023306	344 11 0 00 023303 		AOJA	TABADR,.-3		;PNTR ORIG = [POINT 5,TAB]
  2460	023307	200 02 0 11 027001 		MOVE	B,TAB-1(TABADR)
  2461	023310	242 02 0 12 000000 		LSH	B,(PNTR)
  2462	023311	405 02 0 00 000037 		ANDI	B,37
  2463	023312	306 02 0 00 000037 		CAIN	B,37
  2464	023313	254 00 0 00 023441 		JRST	BLKERR			;BLOCK NUMBER ERROR
  2465	023314	302 10 0 02 000000 		CAIE	FILN,(B)		;THIS BLK ASSIGNED TO CURRENT
  2466	023315	254 00 0 00 023301 		JRST	MNLUP			;FILE OR IN USE BY ANOTHER
  2467
  2468	023316	260 17 0 00 024050 	RFILL:	GO	RDDTA1			;READ THE DATA BLOCK TO FIND FBN
  2469	023317	254 00 0 00 023421 		JRST	ERR			;SHOULD NEVER GET HERE
  2470	023320	200 01 0 00 027205 		MOVE	A,DBUF			;GET FIRST BLOCK OF FILE
  2471	023321	242 01 0 00 777770 		LSH	A,-^D8			;LDB SUBSTITUTION FOR:
  2472	023322	405 01 0 00 001777 		ANDI	A,1777			;LDB A,[POINT 10,DBUF,27]
  2473	023323	506 01 0 00 027205 		HRLM	A,DBUF			;PUT IN LINK SLOT TO BE READ NEXT
  2474	023324	254 00 0 00 022355 		JRST	RFILE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 24
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0094

  2475					;*NF - NOT FOUND DIRECTORY SEARCH SEQUENCE
  2476
  2477	023325	336 00 0 00 025671 	NF:	SKIPN	SRCHF			;SEARCHING ?
  2478	023326	254 00 0 00 022372 		JRST	NFERR			;NO, NOT FOUND ERROR
  2479	023327	202 17 0 00 025647 		MOVEM	P,SAVEP			;SAVE PUSHDOWN POINTER
  2480	023330	200 17 0 00 025647 	NF1:	MOVE	P,SAVEP			;RESTORE PUSHDOWN POINTER
  2481	023331	350 01 0 00 025667 		AOS	A,DIRSRC		;INCREMENT SEARCH TAPE NUMBER
  2482	023332	301 01 0 00 000010 		CAIL	A,10			;DECTAPES ARE 0-7
  2483	023333	254 00 0 00 022372 		JRST	NFERR			;SEARCHED THEM ALL
  2484	023334	476 00 0 00 025670 		SETOM	DOSRCH			;SET DOING SEARCH
  2485	023335	242 01 0 00 000011 		LSH	A,^D9
  2486	023336	202 01 0 00 025666 		MOVEM	A,TAPENO		;MAKE A TAPE NUMBER
  2487	023337	332 00 0 00 025556 		SKIPE	VDTAFLG
  2488	023340	254 00 0 00 023561 		JRST	VDIR+1			;PDP-11 FORMAT TAPE
  2489	023341	260 17 0 00 023443 		GO	LDDIR			;SELECT TAPE, READ DIRECTORY
  2490	023342	254 00 0 00 023257 		JRST	DTALD+4			;LOOK UP IN THIS DIRECTORY
  2491
  2492					;*PROCBK - READ A BLOCK OF TAPE
  2493
  2494	023343	260 17 0 00 023365 	PROCBK:	GO	SEARCH			;FIRST FIND THE BLOCK
  2495	023344	201 06 0 00 000200 		MOVEI	N,200			;NUMBER OF WORDS IN BLOCK
  2496	023345	603 00 0 00 400000 		TLNE	F,DTREV			;WHICH DIRECTION ?
  2497	023346	271 01 0 00 000177 		ADDI	A,177			;BACKWARDS, GO FROM TOP
  2498	023347	7 320 20 0 00 000300 		CONO	DTC,DTREAD		;READ
  2499	023350	7 324 30 0 00 673300 	PROCLP:	CONSZ	DTS,DTERR!DTEND
  2500	023351	254 00 0 00 023421 		JRST	ERR			;TROUBLE, QUIT
  2501	023352	7 324 34 0 00 000001 		CONSO	DTS,DTDREQ		;DATA AVAILABLE ?
  2502	023353	254 00 0 00 023350 		JRST	PROCLP			;NO, WAIT SOME MORE
  2503	023354	7 320 04 0 01 000000 		DATAI	DTC,(A)			;READ DATA TO BUFFER
  2504	023355	271 01 0 00 000001 		ADDI	A,1			;COUNT BUFFER POINTER
  2505	023356	603 00 0 00 400000 		TLNE	F,DTREV			;GOING BACKWARDS ?
  2506	023357	275 01 0 00 000002 		SUBI	A,2			;YES, COUNT POINTER BACKWARDS
  2507	023360	367 06 0 00 023350 		SOJG	N,PROCLP		;TRANSFERRED WHOLE BLOCK ?
  2508	023361	7 324 20 0 00 000001 		CONO	DTS,1			;CHECKSUM AND QUIT
  2509	023362	7 324 34 0 00 100000 		CONSO	DTS,DTJBDN		;DONE ?
  2510	023363	254 00 0 00 023362 		JRST	.-1			;NOT YET, WAIT
  2511	023364	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 25
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0095

  2512					;*SEARCH - FIND THE BLOCK
  2513
  2514	023365	200 03 0 00 025666 	SEARCH:	MOVE	C,TAPENO		;GET DRIVE NUMBER
  2515	023366	7 320 30 0 00 300000 		CONSZ	DTC,DTFWD!DTRVS		;TAPE GOING ?
  2516	023367	254 00 0 00 023372 		JRST	SRCHC			;YES
  2517	023370	660 03 0 00 200000 		TRO	C,DTFWD			;NO, MAKE IT GO FORWARD
  2518	023371	621 00 0 00 400000 		TLZ	F,DTREV			;SET FLAG FOR THAT
  2519	023372	7 320 20 0 03 020200 	SRCHC:	CONO	DTC,DTRBN!DTSEL(C)	;SEARCH
  2520	023373	7 324 30 0 00 020000 	SRCHW:	CONSZ	DTS,DTEND		;AT END ZONE ?
  2521	023374	254 00 0 00 023410 		JRST	SRCHTA			;YES, TURN AROUND
  2522	023375	7 324 30 0 00 653300 		CONSZ	DTS,DTERR		;ANY ERRORS ?
  2523	023376	254 00 0 00 023421 		JRST	ERR			;YES, QUIT
  2524	023377	7 324 34 0 00 000001 		CONSO	DTS,DTDREQ		;BLOCK NUMBER FOUND ?
  2525	023400	254 00 0 00 023373 		JRST	SRCHW			;NO, WAIT FOR IT
  2526	023401	7 320 04 0 00 000006 		DATAI	DTC,N			;WHAT BLOCK ARE WE AT ?
  2527	023402	405 06 0 00 007777 		ANDI	N,7777			;MASK JUNK
  2528	023403	275 06 0 13 000000 		SUBI	N,(BLKNO)		;GET DISTANCE TO GO
  2529	023404	322 06 0 00 020355 		JUMPE	N,CPOPJ			;FOUND, RTN WITH TAPE ROLLING INTO BLK
  2530	023405	603 00 0 00 400000 		TLNE	F,DTREV			;NOT THERE, WHICH DIRECTION ?
  2531	023406	213 00 0 00 000006 		MOVNS	N			;BACKWARDS, NEGATE
  2532	023407	321 06 0 00 023365 		JUMPL	N,SEARCH		;IF SHOULD CONTINUE, ITS MINUS
  2533	023410	7 320 20 0 00 300000 	SRCHTA:	CONO	DTC,DTFWD!DTRVS		;MUST TURN AROUND (END ZONE OR PASSED)
  2534	023411	641 00 0 00 400000 		TLC	F,DTREV			;COMPLEMENT DIRECTION FLAG
  2535	023412	254 00 0 00 023365 		JRST	SEARCH			;SEARCH SOME MORE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 26
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0096

  2536					;*EXTCK - FILE EXTENSION CHECK
  2537
  2538	023413	316 02 0 00 025344 	EXTCK:	CAMN	B,[SIXBIT/SAV/]
  2539	023414	254 00 0 00 020423 		JRST	CPOPJ1			;FILE EXT IS "SAV"
  2540	023415	312 02 0 00 025345 		CAME	B,[SIXBIT/A10/]
  2541	023416	263 17 0 00 000000 		RTN				;NEITHER
  2542	023417	476 00 0 00 025502 		SETOM	A10FLG			;SET FOR "A10" LOAD
  2543	023420	254 00 0 00 020423 		JRST	CPOPJ1
  2544
  2545					;*ERR - DECTAPE ERROR ROUTINES
  2546
  2547	023421	332 00 0 00 025670 	ERR:	SKIPE	DOSRCH			;DOING A SEARCH ?
  2548	023422	254 00 0 00 023330 		JRST	NF1			;YES, MOVE ON TO NEXT DRIVE
  2549	023423	7 324 24 0 00 000003 		CONI	DTS,C			;GET DECTAPE STATUS
  2550	023424	7 320 20 0 00 400000 		CONO	DTC,DTSTOP		;STOP DECTAPE
  2551						PMSG	<^DECTAPE ERROR, DTS = >^
  2552	023425	201 00 0 00 025374 		MOVEI	[SIXBIT\^DECTAPE ERROR, DTS = _\]
  2553	023426	260 17 0 00 021426 		PNTMSG^
  2554	023427	200 00 0 00 000003 		MOVE	0,C
  2555	023430	260 17 0 00 021475 		GO	PNTOCT
  2556	023431	201 00 0 00 000040 	ERR1:	MOVEI	" "
  2557	023432	260 17 0 00 021513 		GO	PRINT
  2558	023433	260 17 0 00 020337 		GO	NAMPNT
  2559	023434	336 00 0 00 020014 		SKIPN	ONCE			;INITIAL LOAD ERROR ?
  2560	023435	254 00 0 00 020150 		JRST	SELX1			;YES
  2561	023436	332 00 0 00 025623 		SKIPE	PGMGO
  2562	023437	254 00 0 00 020045 		JRST	SELECT
  2563	023440	254 00 0 00 020646 		JRST	RUN
  2564
  2565	023441	7 320 20 0 00 400000 	BLKERR:	CONO	DTC,DTSTOP
  2566	023442	260 17 0 00 025130 		GO	ERR13
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 27
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0097

  2567					;*LDDIR - READ TAPE DIRECTORY
  2568
  2569	023443	201 13 0 00 000144 	LDDIR:	MOVEI	BLKNO,^D100		;BLOCK ON TAPE TO READ
  2570	023444	402 00 0 00 000000 		SETZM	F
  2571	023445	7 320 20 0 00 030000 		CONO	DTC,DTSEL!DTDSEL ;CLEAR DECTAPE
  2572	023446	201 01 0 00 027002 		MOVEI	A,TAB			;SETUP WHERE TO PUT IT
  2573	023447	260 17 0 00 024051 		GO	DTABLK			;READ IT
  2574	023450	254 00 0 00 023421 		JRST	ERR			;SHOULD NEVER GET HERE
  2575	023451	7 320 20 0 00 400000 		CONO	DTC,DTSTOP		;STOP TAPE
  2576	023452	263 17 0 00 000000 		RTN
  2577
  2578					;*FDIR - PRINT DIRECTORY OF DECTAPE
  2579
  2580	023453	260 17 0 00 021567 	FDIR:	GO	CRLF1
  2581	023454	332 00 0 00 025556 		SKIPE	VDTAFLG
  2582	023455	254 00 0 00 023560 		JRST	VDIR			;PDP-11 FORMAT DECTAPE DIRECTORY
  2583
  2584						PMSG	<TAPE ID: >^
  2585	023456	201 00 0 00 025400 		MOVEI	[SIXBIT\TAPE ID: _\]
  2586	023457	260 17 0 00 021426 		PNTMSG^
  2587	023460	200 01 0 00 027201 		MOVE	A,TAB+177		;GET TAPE ID
  2588	023461	260 17 0 00 020347 		GO	SIXBP
  2589	023462	260 17 0 00 021567 		GO	CRLF1
  2590	023463	205 06 0 00 777752 		MOVSI	N,-26			;26 FILES OCTAL
  2591	023464	336 01 0 06 027125 	FILDL:	SKIPN	A,TAB+123(N)		;GET NAME
  2592	023465	254 00 0 00 023503 		JRST	FILDN			;BLANK, LOOK FOR NEXT
  2593	023466	260 17 0 00 020347 		GO	SIXBP			;PRINT FILE NAME
  2594	023467	510 01 0 06 027153 		HLLZ	A,TAB+151(N)		;GET EXTENSION
  2595	023470	322 01 0 00 023505 		JUMPE	A,NOEXT			;BLANK
  2596	023471	201 00 0 00 000056 		MOVEI	F,"."
  2597	023472	260 17 0 00 021513 		GO	PRINT			;TYPE DOT
  2598	023473	260 17 0 00 020347 		GO	SIXBP			;PRINT EXTENSION
  2599	023474	260 17 0 00 022041 	FILD1:	GO	PNTTAB
  2600	023475	200 01 0 00 025652 		MOVE	A,CHRCTR
  2601	023476	305 01 0 00 000020 		CAIGE	A,20			;TABBED FAR ENOUGH ?
  2602	023477	260 17 0 00 022041 		GO	PNTTAB			;NO, DO ANOTHER TAB
  2603	023500	260 17 0 00 023510 		GO	DTBLKC			;COMPUTE NUMBER OF BLOCKS PER FILE
  2604	023501	260 17 0 00 021504 		GO	PNTDEC
  2605	023502	260 17 0 00 021567 		GO	CRLF1			;CR-LF
  2606	023503	253 06 0 00 023464 	FILDN:	AOBJN	N,FILDL			;LOOP FOR ALL NAMES
  2607	023504	254 00 0 00 020000 		JRST	START
  2608
  2609	023505				NOEXT:	PMSG	<    >^
  2610	023505	201 00 0 00 025402 		MOVEI	[SIXBIT\    _\]
  2611	023506	260 17 0 00 021426 		PNTMSG^
  2612	023507	254 00 0 00 023474 		JRST	FILD1
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 28
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0098

  2613					XLIST
  2614					LIST
  2615					;*DTBLKC - COMPUTE NUMBER OF BLOCKS USED PER FILE
  2616
  2617	023510	403 00 0 00 000011 	DTBLKC:	SETZB	0,TABADR
  2618	023511	561 12 0 00 777734 		HRROI	PNTR,-^D36		;ILDB SUBSTITUTION
  2619	023512	271 12 0 00 000005 		ADDI	PNTR,5			;FOR ILDB B,PNTR
  2620	023513	331 00 0 00 000012 		SKIPL	PNTR			;PNTR ORIG = [POINT 5,TAB]
  2621	023514	344 11 0 00 023511 		AOJA	TABADR,.-3
  2622	023515	200 02 0 11 027002 		MOVE	B,TAB(TABADR)		;GET BLOCK SLOT DATA
  2623	023516	242 02 0 12 000000 		LSH	B,(PNTR)
  2624	023517	405 02 0 00 000037 		ANDI	B,37
  2625	023520	306 02 0 00 000037 		CAIN	B,37			;SEARCHED ALL SLOTS
  2626	023521	263 17 0 00 000000 		RTN				;YES
  2627	023522	306 02 0 06 000001 		CAIN	B,1(N)			;BLOCK BELONG TO THIS FILE ?
  2628	023523	350 00 0 00 000000 		AOS	0			;YES
  2629	023524	254 00 0 00 023512 		JRST	DTBLKC+2
  2630
  2631					;*LSTPNT - LIST FILES (ASCIZ)
  2632
  2633	023525	476 00 0 00 025551 	LSTPNT:	SETOM	SPECIAL
  2634	023526	261 17 0 00 000000 		PUSH	P,0
  2635	023527	260 17 0 00 022043 		SWITCH
  2636	023530	603 00 0 00 020000 		TLNE	LPTSW
  2637	023531	476 00 0 00 025627 		SETOM	LPTFLG
  2638	023532	260 17 0 00 022102 		GO	DTECLR
  2639	023533	262 17 0 00 000000 		POP	P,0
  2640	023534	260 17 0 00 022437 	LSTPN1:	GO	LDACHR			;READ A CHAR
  2641	023535	254 00 0 00 020000 		JRST	START			;EOF
  2642	023536	260 17 0 00 020356 		GO	PNT16			;PRINT IT
  2643	023537	254 00 0 00 023534 		JRST	LSTPN1
  2644
  2645
  2646	023540	336 00 0 00 025645 	STOP:	SKIPN	DEVTYP			;SKP IF NOT DECTAPE
  2647	023541	7 320 20 0 00 400000 		CONO	DTC,DTSTOP		;STOP THE DECTAPE
  2648	023542	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 29
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0099

  2649					;*VDTALD - LOAD FROM PDP-11 FORMAT DECTAPE
  2650
  2651			000010		VC=	10
  2652			000011		VT=	11
  2653			000012		VT1=	12
  2654			000013		VT2=	13
  2655			000015		VDIRF=	15
  2656
  2657	023543	201 00 0 00 000003 	VDTALD:	MOVEI	3
  2658	023544	202 00 0 00 025524 		MOVEM	LDEVICE
  2659	023545	476 00 0 00 025667 		SETOM	DIRSRC			;SET FOR TAPE SEARCH
  2660	023546	7 320 20 0 00 400000 		CONO	DTC,DTSTOP
  2661	023547	403 15 0 00 025670 		SETZB	VDIRF,DOSRCH
  2662	023550	476 00 0 00 025502 		SETOM	A10FLG			;CAN ONLY PROCESS ASCII
  2663	023551	200 01 0 16 000000 		MOVE	A,(IP)			;SETUP REQUESTED FILE NAME.EXT
  2664	023552	202 01 0 00 025560 		MOVEM	A,VNAM#
  2665	023553	510 01 0 16 000001 		HLLZ	A,1(IP)
  2666	023554	336 00 0 00 000001 		SKIPN	A
  2667	023555	205 01 0 00 412120 		MOVSI	A,(SIXBIT/A10/)
  2668	023556	202 01 0 00 025557 		MOVEM	A,VEXT#
  2669	023557	254 00 0 00 023561 		JRST	VDIR+1
  2670
  2671					;*VDIR - PRINT PDP-11 FORMAT DECTAPE DIRECTORY
  2672
  2673	023560	476 00 0 00 000015 	VDIR:	SETOM	VDIRF			;SET DOING DIRECTORY FLAG
  2674	023561	201 13 0 00 000102 		MOVEI	BLKNO,102		;FIRST 11 DIR BLOCK
  2675	023562	260 17 0 00 023444 		GO	LDDIR+1			;READ IT
  2676	023563	402 00 0 00 025670 		SETZM	DOSRCH
  2677
  2678	023564	201 10 0 00 000000 	VDIRL2:	MOVEI	VC,0			;START OF DIRECTORY BLOCK
  2679	023565	201 11 0 00 000000 	VDIRL1:	MOVEI	VT,0			;GET 1ST HALF OF NAME
  2680	023566	260 17 0 00 023650 		GO	GTVDWD
  2681	023567	322 11 0 00 023621 		JUMPE	VT,VDIRL4		;BLANK ?, IF SO, SKIP FILE
  2682	023570	260 17 0 00 023730 		GO	R5VSIX			;CONVERT RAD50 TO SIXBIT
  2683	023571	204 01 0 00 000011 		MOVS	A,VT
  2684
  2685	023572	201 11 0 00 000001 		MOVEI	VT,1			;GET 2ND HALF OF NAME
  2686	023573	260 17 0 00 023650 		GO	GTVDWD
  2687	023574	260 17 0 00 023730 		GO	R5VSIX
  2688	023575	540 01 0 00 000011 		HRR	A,VT
  2689
  2690	023576	322 15 0 00 023635 		JUMPE	VDIRF,VDTAL1		;FILE LOAD ?
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 30
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0100

  2691	023577	260 17 0 00 020347 		GO	SIXBP			;NO, PRINT NAME
  2692
  2693	023600	201 00 0 00 000056 		MOVEI	F,"."
  2694	023601	260 17 0 00 021513 		GO	PRINT
  2695
  2696	023602	201 11 0 00 000002 	VDIRL3:	MOVEI	VT,2			;GET EXTENSION
  2697	023603	260 17 0 00 023650 		GO	GTVDWD
  2698	023604	260 17 0 00 023730 		GO	R5VSIX
  2699	023605	204 01 0 00 000011 		MOVS	A,VT
  2700
  2701	023606	322 15 0 00 023640 		JUMPE	VDIRF,VDTAL2		;FILE LOAD ?
  2702
  2703	023607	260 17 0 00 020347 		GO	SIXBP			;NO, PRINT EXTENSION
  2704
  2705	023610	260 17 0 00 022041 		GO	PNTTAB
  2706	023611	200 01 0 00 025652 		MOVE	A,CHRCTR
  2707	023612	305 01 0 00 000020 		CAIGE	A,20
  2708	023613	260 17 0 00 022041 		GO	PNTTAB
  2709
  2710	023614	201 11 0 00 000006 		MOVEI	VT,6			;GET SIZE OF FILE
  2711	023615	260 17 0 00 023650 		GO	GTVDWD
  2712	023616	200 00 0 00 000011 		MOVE	0,VT
  2713	023617	260 17 0 00 021504 		GO	PNTDEC			;PRINT FILE BLOCKS
  2714	023620	260 17 0 00 021567 		GO	CRLF1
  2715
  2716	023621	201 11 0 00 000011 	VDIRL4:	MOVEI	VT,^D9			;SEE IF NEXT FILE EXISTS
  2717	023622	271 10 0 11 000000 		ADDI	VC,(VT)
  2718	023623	200 12 0 00 000010 		MOVE	VT1,VC
  2719	023624	271 12 0 11 000000 		ADDI	VT1,(VT)
  2720	023625	305 12 0 00 000377 		CAIGE	VT1,377			;OFF END OF BLOCK ?
  2721	023626	254 00 0 00 023565 		JRST	VDIRL1			;NO, DO NEXT ENTRY
  2722
  2723	023627	554 11 0 00 027002 		HLRZ	VT,TAB			;YES, SEE IF LINK
  2724	023630	322 11 0 00 023633 		JUMPE	VT,.+3			;NO
  2725	023631	202 11 0 00 000013 		MOVEM	VT,BLKNO		;SAVE AS NEXT DIRECTORY BLOCK NUMBER
  2726	023632	254 00 0 00 023562 		JRST	VDIR+2
  2727
  2728	023633	322 15 0 00 023325 		JUMPE	VDIRF,NF		;FILE LOAD ?
  2729	023634	254 00 0 00 020000 		JRST	START			;NO
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 31
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0101

  2730	023635	312 01 0 00 025560 	VDTAL1:	CAME	A,VNAM			;CORRECT NAME ?
  2731	023636	254 00 0 00 023621 		JRST	VDIRL4			;NO
  2732	023637	254 00 0 00 023602 		JRST	VDIRL3			;YES
  2733
  2734	023640	312 01 0 00 025557 	VDTAL2:	CAME	A,VEXT			;CORRECT EXTENSION ?
  2735	023641	254 00 0 00 023621 		JRST	VDIRL4			;NO
  2736
  2737	023642	201 11 0 00 000005 		MOVEI	VT,5			;YES, GET FILE FIRST BLOCK ADDRESS
  2738	023643	260 17 0 00 023650 		GO	GTVDWD
  2739	023644	506 11 0 00 027205 		HRLM	VT,DBUF			;SETUP FOR FILE READ
  2740	023645	402 00 0 00 025511 		SETZM	D11C1#
  2741	023646	402 00 0 00 025514 		SETZM	D11W#
  2742	023647	254 00 0 00 022355 		JRST	RFILE			;NOW GO FILE LOAD
  2743
  2744					;*GTVDWD - GET WORD FROM PDP-11 DIRECTORY
  2745					;*	   CALL WITH INDECIES IN VT & VC SUCH THAT ADDING THEM GIVES
  2746					;*	   NUMBER OF PDP-11 WORDS INTO DESIRED DIRECTORY
  2747
  2748	023650	201 12 0 11 000001 	GTVDWD:	MOVEI	VT1,1(VT)
  2749	023651	271 12 0 10 000000 		ADDI	VT1,(VC)
  2750	023652	241 12 0 00 777777 		ROT	VT1,-1
  2751	023653	200 11 0 12 027002 		MOVE	VT,TAB(VT1)
  2752	023654	331 00 0 00 000012 		SKIPL	VT1
  2753	023655	204 11 0 12 027002 		MOVS	VT,TAB(VT1)
  2754	023656	405 11 0 00 177777 		ANDI	VT,177777
  2755	023657	263 17 0 00 000000 		RTN
  2756
  2757					;*D11CHR - DECTAPE PDP-11 FORMAT CHARACTER READ
  2758
  2759	023660	332 00 0 00 025511 	D11CHR:	SKIPE	D11C1			;HAVE A BYTE LEFT ?
  2760	023661	254 00 0 00 023670 		JRST	D11CH1			;YES
  2761
  2762	023662	260 17 0 00 023673 		GO	D11WD			;NO, READ A HALF WORD
  2763	023663	263 17 0 00 000000 		RTN				;EOF
  2764
  2765	023664	202 04 0 00 025512 		MOVEM	W,D11CHW#		;STORE REMAINING HALF WORD
  2766	023665	135 16 0 00 025403 		LDB	16,[POINT 8,W,35] ;GET 1ST (RIGHT) BYTE
  2767	023666	476 00 0 00 025511 		SETOM	D11C1			;FLAG ONE LEFT
  2768	023667	254 00 0 00 020423 		JRST	CPOPJ1
  2769
  2770	023670	135 16 0 00 025404 	D11CH1:	LDB	16,[POINT 8,D11CHW,27] ;GET 2ND (LEFT) BYTE
  2771	023671	402 00 0 00 025511 		SETZM	D11C1			;NEED NEW WORD NEXT TIME
  2772	023672	254 00 0 00 020423 		JRST	CPOPJ1
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 32
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0102

  2773					;*D11WD - DECTAPE PDP-11 FORMAT WORD READ
  2774
  2775	023673	373 00 0 00 025514 	D11WD:	SOSLE	D11W			;ANY DATA LEFT IN BLOCK ?
  2776	023674	254 00 0 00 023717 		JRST	D11WD1			;YES
  2777
  2778	023675	554 13 0 00 027205 	D11WD2:	HLRZ	BLKNO,DBUF		;SETUP LINK TO NEXT BLOCK
  2779	023676	602 13 0 00 100000 		TRNE	BLKNO,100000		;NEGATIVE ?
  2780	023677	660 13 0 00 600000 		TRO	BLKNO,600000		;YES, EXTEND SIGN
  2781	023700	573 00 0 00 000013 		HRRES	BLKNO
  2782
  2783	023701	202 13 0 00 025510 		MOVEM	BLKNO,D11BLK#		;SAVE
  2784	023702	322 13 0 00 020355 		JUMPE	BLKNO,CPOPJ		;QUIT ON EOF
  2785	023703	214 13 0 00 025510 		MOVM	BLKNO,D11BLK
  2786	023704	303 13 0 00 001077 		CAILE	BLKNO,1077		;LEGAL BLOCK NUMBER ?
  2787	023705	254 00 0 00 023441 		JRST	BLKERR			;NO
  2788
  2789	023706	201 01 0 00 027205 		MOVEI	A,DBUF			;READ DTA BLOCK INTO DBUF
  2790	023707	260 17 0 00 024051 		GO	DTABLK
  2791	023710	254 04 0 00 023710 		HALT	.
  2792
  2793	023711	335 00 0 00 025510 		SKIPGE	D11BLK			;WHICH DIRECTION ?
  2794	023712	260 17 0 00 023721 		GO	D11SWP			;BACKWARDS, SWAP DATA AROUND
  2795
  2796	023713	201 11 0 00 000377 		MOVEI	VT,377
  2797	023714	202 11 0 00 025514 		MOVEM	VT,D11W			;SETUP # OF 16 BIT WORDS
  2798
  2799	023715	200 11 0 00 025405 		MOVE	VT,[POINT 18,DBUF,17]
  2800	023716	202 11 0 00 025513 		MOVEM	VT,D11PNT#		;SETUP BYTE POINTER
  2801
  2802	023717	134 04 0 00 025513 	D11WD1:	ILDB	W,D11PNT		;READ A 16 BIT WORD
  2803	023720	254 00 0 00 020423 		JRST	CPOPJ1
  2804
  2805	023721	205 06 0 00 777700 	D11SWP:	MOVSI	N,-100			;TURN DATA BUFFER OVER
  2806	023722	204 11 0 06 027205 		MOVS	VT,DBUF(N)		;ALSO SWAPPING WORD HALVES
  2807	023723	211 12 0 06 000000 		MOVNI	VT1,(N)
  2808	023724	250 11 0 12 027404 		EXCH	VT,DBUF+177(VT1)
  2809	023725	206 11 0 06 027205 		MOVSM	VT,DBUF(N)
  2810	023726	253 06 0 00 023722 		AOBJN	N,.-4
  2811	023727	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 33
DEVLDR	MAC	23-Apr-80 13:29		DECTAPE LOAD ONLY ROUTINE                                                          SEQ 0103

  2812					;*R5VSIX - RAD50 CONVERTER
  2813
  2814	023730	402 00 0 00 000004 	R5VSIX:	SETZM	W
  2815	023731	200 13 0 00 025406 		MOVE	VT2,[POINT 6,W,17]
  2816	023732	405 11 0 00 177777 		ANDI	VT,177777
  2817	023733	231 11 0 00 003100 		IDIVI	VT,3100
  2818	023734	261 17 0 00 000012 		PUSH	P,VT1
  2819	023735	260 17 0 00 023746 		GO	R5VOU1
  2820	023736	262 17 0 00 000011 		POP	P,VT
  2821	023737	231 11 0 00 000050 		IDIVI	VT,50
  2822	023740	261 17 0 00 000012 		PUSH	P,VT1
  2823	023741	260 17 0 00 023746 		GO	R5VOU1
  2824	023742	262 17 0 00 000011 		POP	P,VT
  2825	023743	260 17 0 00 023746 		GO	R5VOU1
  2826	023744	200 11 0 00 000004 		MOVE	VT,W
  2827	023745	263 17 0 00 000000 		RTN
  2828
  2829
  2830	023746	231 11 0 00 000006 	R5VOU1:	IDIVI	VT,6
  2831	023747	135 02 0 12 023752 		LDB	B,R5VOU2(VT1)
  2832	023750	136 02 0 00 000013 		IDPB	B,VT2
  2833	023751	263 17 0 00 000000 		RTN
  2834
  2835	023752	36 06 0 11 023760 	R5VOU2:	POINT	6,R5VTAB(VT),5
  2836	023753	30 06 0 11 023760 		POINT	6,R5VTAB(VT),11
  2837	023754	22 06 0 11 023760 		POINT	6,R5VTAB(VT),17
  2838	023755	14 06 0 11 023760 		POINT	6,R5VTAB(VT),23
  2839	023756	06 06 0 11 023760 		POINT	6,R5VTAB(VT),29
  2840	023757	00 06 0 11 023760 		POINT	6,R5VTAB(VT),35
  2841
  2842	023760	00 41 42 43 44 45 	R5VTAB:	SIXBIT	\ ABCDEFGHIJKLMNOPQRSTUVWXYZ$.%0123456789?\
  2843	023761	46 47 50 51 52 53 
  2844	023762	54 55 56 57 60 61 
  2845	023763	62 63 64 65 66 67 
  2846	023764	70 71 72 04 16 05 
  2847	023765	20 21 22 23 24 25 
  2848	023766	26 27 30 31 37 00 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 34
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0104

  2849					SUBTTL DSKLDR DISK PACK LOAD ONLY ROUTINE
  2850
  2851					;*I/O DEVICE PARAMETERS
  2852
  2853			000020		DF22B=	20				;RP10 DF22 BIT MODE BIT
  2854			000250		DPC=	250				;DEVICE CODE FOR RP10
  2855			000254		DPC2=	254				;SECOND RP10
  2856			000004		O.SEEK=	4				;DISK OP FOR RP10 SEEK
  2857			000000		O.READ=	0				;DISK OP FOR RP10 READ
  2858			000270		DHX=	270				;DEVICE CODE FOR RH10/RP04/5/6
  2859			000274		DHX2=	274				;SECOND
  2860			000360		DHX3=	360				;THIRD
  2861			000364		DHX4=	364				;FOURTH
  2862			000370		DHX5=	370				;FIFTH
  2863			000374		DHX6=	374				;SIXTH
  2864
  2865			000540		DHZ=	540				;FIRST RH20/RP04/5/6
  2866			000544		DHZ2=	544				;SECOND
  2867			000550		DHZ3=	550				;THIRD
  2868			000554		DHZ4=	554				;FOURTH
  2869			000560		DHZ5=	560				;FIFTH
  2870			000564		DHZ6=	564				;SIXTH
  2871			000570		DHZ7=	570				;SEVENTH
  2872			000574		DHZ8=	574				;EIGHTH
  2873
  2874			000071		DH.RD=	71				;DISK OP FOR RH10 READ
  2875			000061		DH.WRT=	61				;DISK OP FOR RH10 WRITE
  2876			004000		DF22RH=	4000				;RH10 DF22 BIT MODE BIT
  2877			000022		LOWCMD=	22				;DF-10 LOCATION
  2878
  2879					;*FLAGS, LEFT HALF OF F
  2880
  2881			000002		L.LBK=2					;LEFT BRACKET
  2882			000004		L.CMA=4					;COMMA
  2883
  2884					;*FLAGS, RIGHT HALF OF F
  2885
  2886			000177		R.KDEV=177				;BITS 29-35, DEVICE CODE
  2887			000200		R.TYPE=200				;TYPE OF UNIT
  2888			000400		R.DSKW=400				;WILD DISK NAME, TRY ALL
  2889			001000		R.SRIB=1000				;NEED TO SKIP A BLOCK (RIB AT START)
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 35
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0105

  2890					;*SYSTEM PARAMETERS, MUST AGREE WITH MONITOR
  2891
  2892			000001		HOMBK1=	1				;ADDRESS OF HOME BLOCKS
  2893			000012		HOMBK2=	^D10
  2894			707070		CODHOM=	707070				;VERIFICATION CODE OF HOME BLOCK
  2895			777777		CODRIB=	777777				;VERIFICATION CODE OF RIB BLOCK
  2896			000176		BLKCOD=	176				;WORD ADDRESS OF VERIF CODE
  2897			000177		BLKSLF=	177				;WORD ADDRESS OF SELF POINTER
  2898			000000		RIBFIR=	0				;WORD ADDRESS OF RIB AOBJN POINTER
  2899			000002		RIBNAM=	2				;WORD ADDRESS OF NAME OF FILE IN RIB
  2900			000003		RIBEXT=	3				;WORD ADDRESS OF EXT
  2901			000005		RIBSIZ=	5				;LENGTH OF FILE IN WORDS
  2902
  2903			000004		HOMSNM=	4				;STRUCTURE NAME IN SIXBIT
  2904			000010		HOMLUN=	10				;LOGICAL UNIT NUMBER (OCT) IN STR
  2905			000014		HOMBSC=	14				;BLOCKS PER SUPERCLUSTER IN HOME BLOCK
  2906			000015		HOMSCU=	15				;SUPERCLUSTERS PER UNIT
  2907			000016		HOMCNP=	16				;POINTER TO CLUSTER COUNT IN A RET PTR
  2908			000017		HOMCKP=	17				;POINTER TO CHECKSUM IN A RET PTR
  2909			000020		HOMCLP=	20				;POINTER TO CLUSTER ADDRESS IN A RET PTR
  2910			000021		HOMBPC=	21				;BLOCKS PER CLUSTER
  2911			000023		HOMREF=	23				;NEED TO REFRESH IF NON-ZERO
  2912			000041		HOMCRS=	41				;LBN IN STR OF CRASH.SAV RIB
  2913			000046		HOMMFD=	46				;LBN IN STR OF MFD RIB
  2914
  2915					;*ACCUMULATORS
  2916
  2917			000000		F=0					;FLAGS
  2918			000001		A=1					;GENERAL AC'S
  2919			000002		B=2
  2920			000003		C=3
  2921			000004		W=4					;WORD RETURNED BY RWORD OR SIXBRD
  2922			000012		NAME=12					;NAME OF FILE OR UFD BEING SEARCHED FOR
  2923			000013		EXT=13					;EXTENSION
  2924			000005		Q=5					;COUNTER TO STEP THRU BUFFER OF 200 DATA WORDS
  2925			000011		S=11					;COUNTER TO STEP THRU BUFFER OF 200 RIB WORDS
  2926			000006		N=6					;NUMBER ASSEMBLER IN TYPE IN
  2927			000007		M=7					;MEMORY AOBJN PTR, DATA TO CORE
  2928			000014		K=14					;INDEX OF CONTROLLER TYPE
  2929			000010		LBN=10					;LOGICAL BLOCK NUMBER TO READ
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 36
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0106

  2930					;*DSKLD - INITIAL ENTRY TO LOAD FROM DISK PACK
  2931
  2932	023767	201 00 0 00 000002 	DSKLD:	MOVEI	2			;LDEV = 2
  2933	023770	202 00 0 00 025524 		MOVEM	LDEVICE
  2934	023771	402 00 0 00 000000 		SETZM	F			;DISK PACK
  2935	023772	260 17 0 00 024107 		GO	LOOK			;TRY TO FIND FILE
  2936	023773	254 00 0 00 022372 		JRST	NFERR			;NOT THERE, FAIL
  2937	023774	254 00 0 00 022355 		JRST	RFILE			;FOUND FILE
  2938
  2939					;*RFILE1 - HERE WHEN FILE FOUND
  2940
  2941	023775	332 00 0 00 025630 	RFILE1:	SKIPE	LSTFLG
  2942	023776	254 00 0 00 023525 		JRST	LSTPNT			;LISTING FILE
  2943
  2944	023777	332 00 0 00 025625 		SKIPE	DEVFLG			;READING CMD LIST FILE ?
  2945	024000	254 00 0 00 020413 		JRST	DEVCM2			;YES
  2946	024001	254 00 0 00 022744 		JRST	PRGCOR			;SETUP PROGRAM'S CORE AREA
  2947
  2948	024002	260 17 0 00 024016 	RFILL1:	GO	RWORD			;READ POINTER OR TRANSFER WORD
  2949	024003	260 17 0 00 025102 		GO	ERR2			;EOF, ERROR
  2950	024004	331 07 0 00 000004 	RFILL3:	SKIPL	M,W			;WHICH IS IT?
  2951	024005	254 00 0 00 024055 		JRST	STARTQ			;TRANSFER WORD
  2952	024006	260 17 0 00 024016 	RFILL2: GO	RWORD			;READ DATA WORD
  2953	024007	260 17 0 00 025102 		GO	ERR2			;EOF, ERROR
  2954	024010	202 04 0 07 000001 		MOVEM	W,1(M)			;STORE IT IN CORE
  2955	024011	253 07 0 00 024006 		AOBJN	M,RFILL2		;COUNT THE CORE POINTER
  2956	024012	254 00 0 00 024002 		JRST	RFILL1			;IT RAN OUT, GET ANOTHER
  2957
  2958					;*RWORD - READ DATA WORD FROM FILE
  2959
  2960	024013	200 05 0 00 025033 	RWORD1:	MOVE	Q,DBUFP			;PREPARE TO COUNT DATA WORDS
  2961	024014	336 00 0 00 025645 		SKIPN	DEVTYP
  2962	024015	253 05 0 00 024016 		AOBJN	Q,.+1			;DECTAPE
  2963	024016	332 00 0 00 020006 	RWORD:	SKIPE	USER
  2964	024017	254 00 0 00 023162 		JRST	URWD
  2965	024020	332 00 0 00 025523 		SKIPE	KLDCPF
  2966	024021	254 00 0 00 023102 		JRST	KLDCPW			;GET KLDCP WORD
  2967	024022	325 05 0 00 024026 		JUMPGE	Q,RWNXTB		;NEED ANOTHER BLOCK?
  2968	024023	200 04 0 05 000000 		MOVE	W,(Q)			;NO, GET A WORD
  2969	024024	253 05 0 00 024025 		AOBJN	Q,.+1			;COUNT IT
  2970	024025	254 00 0 00 020423 		JRST	CPOPJ1			;RETURN
  2971
  2972	024026	260 17 0 00 024031 	RWNXTB:	GO	RDDATA			;READ NEXT BLOCK IF ANY
  2973	024027	263 17 0 00 000000 		RTN				;EOF
  2974	024030	254 00 0 00 024013 		JRST	RWORD1			;READ FROM THIS BLOCK
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 37
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0107

  2975					;*RDDATA - READ NEXT BLOCK OF DATA INTO DBUF
  2976
  2977	024031	336 00 0 00 025645 	RDDATA:	SKIPN	DEVTYP
  2978	024032	254 00 0 00 024046 		JRST	RDDTA			;DECTAPE
  2979
  2980	024033	335 00 0 00 025660 	RDDSK:	SKIPGE	LENGTH			;ANY DATA LEFT
  2981	024034	263 17 0 00 000000 		RTN				;NO
  2982	024035	211 01 0 00 000200 		MOVNI	A,200			;SEE IF ANY LEFT
  2983	024036	273 01 0 00 025660 		ADDB	A,LENGTH		;COUNT FILE SIZE DOWN
  2984	024037	260 17 0 00 024322 		GO	SELBLK			;SELECT NEXT DATA BLOCK OF FILE
  2985	024040	263 17 0 00 000000 		RTN				;NONE LEFT
  2986	024041	205 01 0 00 777600 		MOVSI	A,-200
  2987	024042	402 00 0 01 027205 		SETZM	DBUF(A)			;CLEAR DATA BUFFER
  2988	024043	253 01 0 00 024042 		AOBJN	A,.-1
  2989	024044	201 01 0 00 027204 		MOVEI	A,DBUF-1		;SELECT DATA BUFFER
  2990	024045	254 00 0 00 024507 		JRST	DSKBLK			;READ THE BLOCK AND RETURN
  2991
  2992	024046	554 13 0 00 027205 	RDDTA:	HLRZ	BLKNO,DBUF		;LINK
  2993	024047	322 13 0 00 020355 		JUMPE	BLKNO,CPOPJ		;JUMP IF END OF FILE
  2994	024050	201 01 0 00 027205 	RDDTA1:	MOVEI	A,DBUF			;SELECT DATA BUFFER
  2995	024051	260 17 0 00 023343 	DTABLK:	GO	PROCBK			;PROCESS A BLOCK
  2996	024052	332 00 0 00 025551 		SKIPE	SPECIAL
  2997	024053	7 320 20 0 00 400000 		CONO	DTC,DTSTOP
  2998	024054	254 00 0 00 020423 		JRST	CPOPJ1
  2999
  3000					;*STARTQ - HERE ON TRANSFER WORD
  3001
  3002	024055	332 00 0 00 020006 	STARTQ:	SKIPE	USER
  3003	024056	071 16 0 00 000000 		RELEASE	LDCHN,
  3004	024057	336 00 0 00 025645 		SKIPN	DEVTYP
  3005	024060	7 320 20 0 00 400000 		CONO	DTC,DTSTOP		;STOP DECTAPE
  3006	024061	542 04 0 00 024106 		HRRM	W,SADR			;SAVE STARTING ADDRESS
  3007	024062	606 04 0 00 777777 		TRNN	W,-1			;ANY ADDRESS ?
  3008	024063	260 17 0 00 025114 		GO	ERR7			;NO, MUST NOT HAVE RIGHT FILE
  3009	024064	476 00 0 00 030044 		SETOM	MONTEN			;SET LOADED BY TEN FLAG
  3010	024065	201 00 0 00 020000 		MOVEI	START			;SETUP RETURN TO DIAMON
  3011	024066	202 00 0 00 030012 		MOVEM	RETURN
  3012	024067	542 00 0 00 000120 		HRRM	120			;SETUP JOB DATA AREA ALSO
  3013	024070	336 00 0 00 025623 		SKIPN	PGMGO			;LOAD & GO ?
  3014	024071	254 00 0 00 020423 		JRST	CPOPJ1			;NO, BACK TO MONITOR
  3015	024072	332 00 0 00 025633 		SKIPE	ALTMFLG
  3016	024073	263 17 0 00 000000 		RTN				;ALTMODE, RETURN TO LOADER
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 38
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0108

  3017	024074	260 17 0 00 022102 	SADRQ:	GO	DTECLR			;EXEC & KL10, CLEAR DTE
  3018	024075	200 01 1 00 025650 		MOVE	A,@SAVEIP
  3019	024076	332 00 0 00 020006 		SKIPE	USER
  3020	024077	047 01 0 00 000043 		SETNAM	A,			;USER, IDENTIFY PROGRAM RUNNING
  3021	024100	332 00 0 00 000044 		SKIPE	JOBREL
  3022	024101	254 00 0 00 024104 		JRST	.+3
  3023	024102	200 00 0 00 025552 		MOVE	SVJBREL			;SET JOBREL AS "DIAMON" RUN SIZE
  3024	024103	202 00 0 00 000044 		MOVEM	JOBREL
  3025	024104	260 17 0 00 020510 		GO	ZEROAC			;CLEAR AC'S
  3026	024105	402 00 0 00 000017 		SETZM	17
  3027	024106	254 00 0 00 000000 	SADR:	JRST	0			;YES, GO
  3028
  3029					;*LOOK - SUBROUTINE TO LOOK FOR FILE
  3030
  3031	024107	204 01 0 00 025672 	LOOK:	MOVS	A,DEVICE		;GET DEVICE NAME
  3032	024110	332 00 0 00 000001 		SKIPE	A			;BLANK
  3033	024111	306 01 0 00 446353 		CAIN	A,(SIXBIT/DSK/)		;OR JUST DSK?
  3034	024112	664 00 0 00 000400 		TROA	F,R.DSKW		;YES, FLAG WILD DISK NAME
  3035	024113	254 00 0 00 024123 		JRST	LOOK1			;NO, USE SUPPLIED NAME
  3036	024114	200 01 0 00 025407 		MOVE	A,[SIXBIT/KLAD/]	;START AT KLAD
  3037	024115	202 01 0 00 025672 		MOVEM	A,DEVICE		;STORE NAME AWAY
  3038	024116	254 00 0 00 024123 		JRST	LOOK1
  3039
  3040	024117	201 01 0 00 010000 	LOOK2:	MOVEI	A,010000		;INCREMENT WILD DSK NAME
  3041	024120	273 01 0 00 025672 		ADDB	A,DEVICE
  3042	024121	602 01 0 00 200000 		TRNE	A,200000		;TRIED UP TO DSKO?
  3043	024122	254 00 0 00 024170 		JRST	NOTFN1			;YES, GIVE UP
  3044
  3045	024123	200 01 0 00 025672 	LOOK1:	MOVE	A,DEVICE		;DEVICE NAME TO LOOK FOR
  3046	024124	202 01 0 00 025661 		MOVEM	A,STRUCT		;TO ARG OF SEARCH ROUTINE
  3047	024125	402 00 0 00 025662 		SETZM	SLUNIT			;CLEAR LOGICAL UNIT NUMBER
  3048	024126	260 17 0 00 024363 		GO	FNDUNI			;TRY TO FIND SUCH A UNIT
  3049	024127	254 00 0 00 024166 		JRST	NOTFND			;NOT THERE
  3050
  3051	024130	336 12 0 00 025673 	LOOK3:	SKIPN	NAME,PPN		;FIRST SEARCH FOR THE UFD
  3052	024131	200 12 0 00 025037 		MOVE	NAME,DIAGPPN		;IF NONE, USE DIAG AREA
  3053	024132	205 13 0 00 654644 		MOVSI	EXT,(SIXBIT/UFD/)	;EXT IS UFD FOR FILE DIRECTORY	
  3054	024133	200 01 0 00 027456 		MOVE	A,HBUF+HOMMFD		;LBN IN STR OF MFD RIB
  3055	024134	260 17 0 00 024251 		GO	SRCHFD			;SEARCH FOR REQUESTED UFD
  3056	024135	254 00 0 00 024166 		JRST	NOTFND			;NOT THERE
  3057	024136	332 00 0 00 025631 		SKIPE	DDIRFLG
  3058	024137	254 00 0 00 024161 		JRST	LOOK5			;DOING DIRECTORY
  3059	024140	200 12 0 16 000000 		MOVE	NAME,(IP)		;NAME OF FILE TO SEARCH FOR
  3060	024141	510 13 0 16 000001 		HLLZ	EXT,1(IP)		;EXTENSION
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 39
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0109

  3061	024142	550 01 0 01 000001 	LOOK4:	HRRZ	A,1(A)			;SUPERCLUSTER ADDRESS OF THE UFD
  3062	024143	220 01 0 00 027424 		IMUL	A,HBUF+HOMBSC		;MAKE IT A BLOCK NUMBER
  3063	024144	260 17 0 00 024251 		GO	SRCHFD			;SEARCH FOR THE FILE IN UFD
  3064	024145	254 00 0 00 024166 		JRST	NOTFND			;NO SUCH FILE
  3065	024146	550 10 0 01 000001 		HRRZ	LBN,1(A)		;SUPERCLUSTER OF START OF FILE
  3066	024147	220 10 0 00 027424 		IMUL	LBN,HBUF+HOMBSC 	;CONVERT TO LOGICAL BLOCK NUMBER
  3067	024150	260 17 0 00 024177 		GO	SETRIB			;GET THE RIB, CHECK IT
  3068	024151	254 00 0 00 024166 		JRST	NOTFND			;NO LUCK, ASSUME FILE NOT THERE
  3069	024152	510 02 0 00 027005 		HLLZ	B,RBUF+RIBEXT		;GET THE EXTENSION FROM RIB
  3070	024153	312 12 0 00 027004 		CAME	NAME,RBUF+RIBNAM 	;DESIRED NAME?	
  3071	024154	254 00 0 00 024157 		JRST	.+3			;NO
  3072	024155	322 13 0 00 024163 		JUMPE	EXT,LOOK6		;NO EXT GIVEN
  3073	024156	312 02 0 00 000013 		CAME	B,EXT			;DESIRED EXTENSION?
  3074	024157	260 17 0 00 025124 		GO	ERR11			;NO, QUIT.  RIB BAD
  3075	024160	254 00 0 00 020423 		JRST	CPOPJ1			;SUCCESSFUL RETURN
  3076
  3077	024161	476 00 0 00 025632 	LOOK5:	SETOM	DDIRF1			;SET PRINT DIRECTORY
  3078	024162	254 00 0 00 024142 		JRST	LOOK4
  3079
  3080	024163	260 17 0 00 023413 	LOOK6:	GO	EXTCK			;CHECK FOR "A10" OR "SAV"
  3081	024164	260 17 0 00 025124 		GO	ERR11			;NEITHER
  3082	024165	254 00 0 00 020423 		JRST	CPOPJ1			;OK
  3083
  3084	024166	602 00 0 00 000400 	NOTFND:	TRNE	F,R.DSKW		;WILD DEVICE ARGUMENT
  3085	024167	254 00 0 00 024171 		JRST	LOOK7			;YES, INCREMENT IT
  3086	024170	263 17 0 00 000000 	NOTFN1:	RTN				;NOT FOUND, ERROR RETURN
  3087
  3088	024171	200 01 0 00 025672 	LOOK7:	MOVE	A,DEVICE		;DID'NT FIND KLAD
  3089	024172	312 01 0 00 025407 		CAME	A,[SIXBIT/KLAD/]
  3090	024173	254 00 0 00 024117 		JRST	LOOK2
  3091	024174	200 01 0 00 025410 		MOVE	A,[SIXBIT/DSK@/]	;TRY DSKA THRU DSKO
  3092	024175	202 01 0 00 025672 		MOVEM	A,DEVICE
  3093	024176	254 00 0 00 024117 		JRST	LOOK2
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 40
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0110

  3094					;*SETRIB - SUBROUTINE TO SETUP A RIB BLOCK AND CHECK IT
  3095
  3096	024177	260 17 0 00 024301 	SETRIB:	GO	LBNSEL			;MAKE SURE ON RIGHT UNIT
  3097	024200	263 17 0 00 000000 		RTN				;NOT THERE
  3098	024201	201 01 0 00 027001 		MOVEI	A,RBUF-1		;ADDRESS OF THE RIB BUFFER
  3099	024202	260 17 0 00 024507 		GO	DSKBLK			;READ THE FILE'S RIB
  3100	024203	263 17 0 00 000000 		RTN				;COULDN'T READ IT
  3101	024204	402 00 0 00 025665 		SETZM	CLUCNT			;NO CLUSTERS LEFT
  3102	024205	402 00 0 00 025663 		SETZM	BLKCNT			;NO BLOCKS LEFT IN CLUSTER
  3103	024206	200 01 0 00 027007 		MOVE	A,RBUF+RIBSIZ		;LENGTH OF FILE
  3104	024207	202 01 0 00 025660 		MOVEM	A,LENGTH		;SAVE FOR EOF TEST
  3105	024210	200 01 0 00 027200 		MOVE	A,RBUF+BLKCOD		;CHECK THE CODE WORD
  3106	024211	660 00 0 00 001000 		TRO	F,R.SRIB		;WANT TO SKIP RIB WHEN READING
  3107	024212	200 11 0 00 027002 		MOVE	S,RBUF+RIBFIR		;POINTER TO REAL RIB DATA
  3108	024213	254 00 0 00 020423 		JRST	CPOPJ1			;SUCCESSFUL RETURN
  3109
  3110					;*DSKDIR - DISK PACK DIRECTORY ROUTINE
  3111
  3112	024214	260 17 0 00 021567 	DSKDIR:	GO	CRLF1
  3113	024215	402 00 0 00 025553 		SETZM	TABCTR#			;CLEAR ENTRY'S PER LINE COUNTER
  3114	024216	476 00 0 00 025631 		SETOM	DDIRFLG			;SET DIRECTORY FLAG
  3115	024217	402 00 0 00 000000 		SETZM	F
  3116	024220	260 17 0 00 024107 		GO	LOOK			;DO DIRECTORY
  3117	024221	254 00 0 00 020045 		JRST	SELECT			;DONE
  3118
  3119	024222	200 16 0 00 000001 	DDIRPNT:MOVE	IP,A			;SETUP POINTER
  3120	024223	261 17 0 00 000000 		PUSH	P,0
  3121	024224	336 00 0 16 000000 		SKIPN	(IP)
  3122	024225	254 00 0 00 024246 		JRST	DDIRP1			;BLANK NAME
  3123	024226	200 01 0 16 000000 		MOVE	A,(IP)			;PRINT NAME & EXT
  3124	024227	260 17 0 00 020347 		GO	SIXBP
  3125	024230	201 00 0 00 000056 		MOVEI	"."
  3126	024231	260 17 0 00 021513 		GO	PRINT
  3127	024232	510 01 0 16 000001 		HLLZ	A,1(IP)
  3128	024233	260 17 0 00 020347 		GO	SIXBP
  3129	024234	350 01 0 00 025553 		AOS	A,TABCTR		;DONE 8 ENTRIES ON THIS LINE ?
  3130	024235	602 01 0 00 000003 		TRNE	A,3
  3131	024236	254 00 0 00 024241 		JRST	.+3			;NO
  3132	024237	260 17 0 00 021567 		GO	CRLF1			;YES, DO CRLF
  3133	024240	254 00 0 00 024246 		JRST	DDIRP1
  3134	024241	260 17 0 00 022041 		GO	PNTTAB
  3135	024242	405 01 0 00 000003 		ANDI	A,3			;ENTRIES LINE UP ?
  3136	024243	221 01 0 00 000020 		IMULI	A,^D16			;COMPUTE AFTER TAB POSITION
  3137	024244	312 01 0 00 025652 		CAME	A,CHRCTR		;CARRIAGE IN CORRECT PLACE ?
  3138	024245	260 17 0 00 022041 		GO	PNTTAB			;NO, TAB AGAIN
  3139	024246	262 17 0 00 000000 	DDIRP1:	POP	P,0
  3140	024247	200 01 0 00 000016 		MOVE	A,IP
  3141	024250	254 00 0 00 024273 		JRST	SCHN2
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 41
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0111

  3142					;*SRCHFD - SUBROUTINE TO SEARCH A UFD OR MFD FOR FILE & EXT
  3143					;*	   RIB LBN IN STR OF THE FD IN A
  3144
  3145	024251	337 10 0 00 000001 	SRCHFD:	SKIPG	LBN,A			;STORE BLOCK TO READ RIB FROM
  3146	024252	260 17 0 00 025126 		GO	ERR12			;SHOULDN'T BE EOF
  3147	024253	260 17 0 00 024177 		GO	SETRIB			;SET UP THE RIB
  3148	024254	263 17 0 00 000000 		RTN				;CAN'T READ IT
  3149	024255	260 17 0 00 024031 	SCHL1:	GO	RDDATA			;READ THE FILE DIR DATA FROM THIS FD
  3150	024256	263 17 0 00 000000 		RTN				;ERROR RETURN
  3151	024257	200 01 0 00 025033 		MOVE	A,DBUFP
  3152	024260	332 00 0 00 025632 		SKIPE	DDIRF1
  3153	024261	254 00 0 00 024316 		JRST	DDIRP2
  3154	024262	332 00 0 00 025632 	SCHL2:	SKIPE	DDIRF1
  3155	024263	254 00 0 00 024222 		JRST	DDIRPNT			;PRINT DIRECTORY
  3156	024264	200 02 0 01 000000 		MOVE	B,(A)			;GET A FILE NAME
  3157	024265	312 02 0 00 000012 		CAME	B,NAME			;IS NAME RIGHT?
  3158	024266	254 00 0 00 024273 		JRST	SCHN2			;NO, MOVE ON
  3159	024267	510 02 0 01 000001 		HLLZ	B,1(A)			;CHECK THE EXTENSION
  3160	024270	322 13 0 00 024276 		JUMPE	EXT,SCHL2A		;NO EXT, CHECK FOR "A10" OR "SAV"
  3161	024271	316 02 0 00 000013 		CAMN	B,EXT			;IS IT RIGHT TOO?
  3162	024272	254 00 0 00 020423 		JRST	CPOPJ1			;YES.  GOOD RETURN, ANSWER IN (A)
  3163	024273	253 01 0 00 024274 	SCHN2:	AOBJN	A,.+1			;MOVE ON TO NEXT FILE IN FD
  3164	024274	253 01 0 00 024262 		AOBJN	A,SCHL2			;COUNT FILE + EXT, CHECK NEXT FILE IN FD
  3165	024275	254 00 0 00 024255 	SCHN1:	JRST	SCHL1			;READ ON
  3166
  3167	024276	260 17 0 00 023413 	SCHL2A:	GO	EXTCK			;CHECK EXT
  3168	024277	254 00 0 00 024273 		JRST	SCHN2			;NO MATCH
  3169	024300	254 00 0 00 020423 		JRST	CPOPJ1			;OK
  3170
  3171					;*LBNSEL - SUBROUTINE TO SELECT CORRECT UNIT FROM LBN
  3172
  3173	024301	200 01 0 00 000010 	LBNSEL:	MOVE	A,LBN			;GET DESIRED BLOCK NUMBER
  3174	024302	200 02 0 00 027424 		MOVE	B,HBUF+HOMBSC		;COMPUTE SIZE OF UNIT
  3175	024303	220 02 0 00 027425 		IMUL	B,HBUF+HOMSCU
  3176	024304	230 01 0 00 000002 		IDIV	A,B			;SCALE LBN INTO A UNIT AND LOCAL LBN
  3177	024305	200 10 0 00 000002 		MOVE	LBN,B			;LBN WITHIN THE UNIT?
  3178	024306	316 01 0 00 027420 		CAMN	A,HBUF+HOMLUN		;ALREADY AT THIS UNIT?
  3179	024307	254 00 0 00 020423 		JRST	CPOPJ1			;YES, NO NEED TO CHANGE UNITS
  3180	024310	202 01 0 00 025662 		MOVEM	A,SLUNIT		;NO, NEED TO FIND IT
  3181	024311	261 17 0 00 000010 		PUSH	P,LBN			;SAVE THE LBN WITHIN DESIRED UNIT
  3182	024312	260 17 0 00 024363 		GO	FNDUNI			;FIND THE UNIT
  3183	024313	370 00 0 17 777777 		SOS	-1(P)			;NOT THERE, SET FOR NON-SKIP RETURN
  3184	024314	262 17 0 00 000010 		POP	P,LBN			;RESTORE UNIT LBN
  3185	024315	254 00 0 00 020423 		JRST	CPOPJ1			;AND SKIP RETURN
  3186
  3187	024316	135 02 0 00 025411 	DDIRP2:	LDB	B,[POINT 6,DBUF,5]	;IF 1ST WORD IS POINTER
  3188	024317	306 02 0 00 000077 		CAIN	B,77			;MUST BE SPARE RIB - DONE
  3189	024320	263 17 0 00 000000 		RTN
  3190	024321	254 00 0 00 024262 		JRST	SCHL2
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 42
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0112

  3191					;*SELBLK - SUBROUTINE TO SELECT NEXT BLOCK OF DATA
  3192					;*	   THE DATA IS FOUND USING RIB'S STARTING AT 0(S), OR
  3193					;*	   IF STUFF LEFT OVER FROM CURRENT RIB, VIA CLUCNT,BLKCNT,CLBN
  3194
  3195	024322	350 10 0 00 025664 	SELBLK:	AOS	LBN,CLBN		;ASSUME WILL USE NEXT BLOCK
  3196	024323	371 00 0 00 025663 		SOSL	BLKCNT			;ANY BLOCKS LEFT IN CURRENT CLUSTER?
  3197	024324	254 00 0 00 024357 		JRST	SEL1			;YES, GO PICK ONE
  3198	024325	371 00 0 00 025665 		SOSL	CLUCNT			;ANY CLUSTERS LEFT IN CURRENT RET PTR?
  3199	024326	254 00 0 00 024354 		JRST	SEL2			;YES, PICK ONE
  3200	024327	335 00 0 00 000011 	SEL4L:	SKIPGE	S			;FAIL IF OUT OF POINTERS
  3201	024330	336 01 0 11 027002 		SKIPN	A,RBUF(S)		;NEED ANOTHER RET PTR.  EOF YET?
  3202	024331	263 17 0 00 000000 		RTN				;YES, FAIL RETURN
  3203	024332	253 11 0 00 024333 		AOBJN	S,.+1			;COUNT POINTER FOR NEXT RIB
  3204	024333	200 03 0 00 027426 		MOVE	C,HBUF+HOMCNP		;GET THE COUNT POINTER
  3205	024334	260 17 0 00 024406 		GO	RIBBYT			;GET COUNT OF CURRENT RET PTR
  3206	024335	326 02 0 00 024346 		JUMPN	B,SEL3			;IF NON-ZERO, GO GET CLUSTER
  3207	024336	200 03 0 00 027430 		MOVE	C,HBUF+HOMCLP		;NEW UNIT, GET UNIT LOGICAL NUMBER
  3208	024337	260 17 0 00 024406 		GO	RIBBYT
  3209	024340	316 02 0 00 027420 		CAMN	B,HBUF+HOMLUN		;IS THIS UNIT RIGHT ALREADY?
  3210	024341	254 00 0 00 024345 		JRST	SEL4			;YES, DON'T SEARCH
  3211	024342	202 02 0 00 025662 		MOVEM	B,SLUNIT		;NO, SAVE LOG UNIT NUMBER FOR SEARCH
  3212	024343	260 17 0 00 024363 		GO	FNDUNI			;FIND THE UNIT
  3213	024344	263 17 0 00 000000 		RTN				;NOT FOUND, ERROR
  3214	024345	254 00 0 00 024327 	SEL4:	JRST	SEL4L			;READ NEXT RIB ON NEW UNIT
  3215
  3216	024346	275 02 0 00 000001 	SEL3:	SUBI	B,1			;COUNT CLUSTER ABOUT TO BE USED
  3217	024347	202 02 0 00 025665 		MOVEM	B,CLUCNT		;AND SAVE REMAINDER
  3218	024350	200 03 0 00 027430 		MOVE	C,HBUF+HOMCLP		;GET THE CLUSTER ADDRESS
  3219	024351	260 17 0 00 024406 		GO	RIBBYT
  3220	024352	220 02 0 00 027431 		IMUL	B,HBUF+HOMBPC		;CONVERT TO AN LBN
  3221	024353	202 02 0 00 000010 		MOVEM	B,LBN			;PUT IN CORRECT AC
  3222	024354	200 01 0 00 027431 	SEL2:	MOVE	A,HBUF+HOMBPC		;BLOCKS IN A CLUSTER
  3223	024355	275 01 0 00 000001 		SUBI	A,1			;MINUS THE ONE ABOUT TO BE READ
  3224	024356	202 01 0 00 025663 		MOVEM	A,BLKCNT		;SAVE THIS COUNT
  3225	024357	202 10 0 00 025664 	SEL1:	MOVEM	LBN,CLBN		;SAVE CURRENT LBN
  3226	024360	622 00 0 00 001000 		TRZE	F,R.SRIB		;SKIP RIB?
  3227	024361	254 00 0 00 024322 		JRST	SELBLK			;YES, GO THRU THIS ROUTINE AGAIN
  3228	024362	254 00 0 00 020423 		JRST	CPOPJ1			;SUCCESSFUL RETURN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 43
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0113

  3229					;*FNDUNI - SUBROUTINE TO FIND A PARTICULAR LOGICAL UNIT IN THE SYSTEM
  3230					;*	   ARGUMENTS ARE: STRUCTURE NAME (SIXBIT) IN STRUCT
  3231					;*	 	        : UNIT NUMBER WITHIN STRUCTURE IN SLUNIT
  3232					;*	   SKIP RETURN IF FOUND
  3233
  3234	024363	402 00 0 00 025666 	FNDUNI:	SETZM	TTYPE			;CLEAR SEARCH TEMPS
  3235	024364	402 00 0 00 025667 	FNDUL1:	SETZM	TUNIT
  3236	024365	200 14 0 00 025666 	FNDUL2:	MOVE	K,TTYPE			;GET CONTROLLER TYPE
  3237	024366	200 06 0 00 025667 		MOVE	N,TUNIT			;AND UNIT NUMBER
  3238	024367	260 17 0 00 024411 		GO	HOME			;TRY TO READ ITS HOME BLOCK
  3239	024370	254 00 0 00 024377 		JRST	FNDUNX			;NO GOOD, ON TO NEXT		
  3240	024371	200 01 0 00 027414 		MOVE	A,HBUF+HOMSNM		;FOUND THIS UNIT, IS IT DESIRED ONE?
  3241	024372	200 02 0 00 027420 		MOVE	B,HBUF+HOMLUN
  3242	024373	316 01 0 00 025661 		CAMN	A,STRUCT		;CHECK AGAINST SUPPLIED ARGS
  3243	024374	312 02 0 00 025662 		CAME	B,SLUNIT
  3244	024375	254 00 0 00 024377 		JRST	FNDUNX			;NO GOOD, ON TO NEXT
  3245	024376	254 00 0 00 020423 		JRST	CPOPJ1			;CORRECT, SKIP RETURN
  3246
  3247	024377	350 01 0 00 025667 	FNDUNX:	AOS	A,TUNIT			;COUNT TO NEXT UNIT ON CONTROLLER
  3248	024400	307 01 0 00 000007 		CAIG	A,UNIMAX		;TOO BIG?		
  3249	024401	254 00 0 00 024365 		JRST	FNDUL2			;NO, GO CHECK THIS ONE
  3250	024402	350 01 0 00 025666 		AOS	A,TTYPE			;YES, COUNT TO NEXT TYPE OF CONTROLLER
  3251	024403	307 01 0 00 000017 		CAIG	A,TYPMAX		;ALL OF THOSE GONE BY?		
  3252	024404	254 00 0 00 024364 		JRST	FNDUL1			;NO,TRY THIS ONE
  3253	024405	263 17 0 00 000000 		RTN				;ALL TRIED, GIVE FAIL RETURN
  3254
  3255	024406	541 03 0 00 000001 	RIBBYT:	HRRI	C,A			;WHERE THE WORD IS
  3256	024407	135 02 0 00 000003 		LDB	B,C			;GOT THE DESIRED BYTE
  3257	024410	263 17 0 00 000000 		RTN				;AND RETURN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 44
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0114

  3258					;*HOME - SUBROUTINE TO DETERMINE WHETHER A UNIT EXISTS, AND IF SO,
  3259					;*	 READ ITS HOME BLOCK INTO THE HOME BUFFER
  3260					;*	 CALL SEQUENCE:
  3261					;*		K/	CONTROLLER TYPE INDEX
  3262					;*		N/	UNIT NUMBER, 0-7
  3263					;*	  GO HOME
  3264					;*	  NOT THERE RETURN
  3265					;*	  OK	RETURN
  3266
  3267					;*AT THIS POINT, ANY NEEDED UNIT PARAMETERS ARE SAVED
  3268					;*SUCH AS:	R.TYPE & THE HOME BLOCK IN HBUF
  3269
  3270	024411	620 00 0 00 000200 	HOME:	TRZ	F,R.TYPE		;ASSUME UNIT TYPE RP02
  3271	024412	202 06 0 00 025671 		MOVEM	N,CUNIT			;SAVE CURRENT UNIT TYPE
  3272	024413	202 14 0 00 025670 		MOVEM	K,CTYPE			;SAVE CONTROLLER TYPE
  3273	024414	201 03 0 00 024530 		MOVEI	C,UNIINI		;ABS ADR OF INI TABLE BASE (ARG FOR SETCHN)
  3274	024415	661 03 0 00 000014 		TLO	C,K			;SET INDEX FIELD FOR RELOCATION BY K(CONT TYPE)
  3275	024416	135 01 0 00 025412 		LDB	A,[POINT 7,@C,9]	 ;CONTROLLER DEVICE CODE FROM INI TABLE
  3276	024417	402 00 0 00 025540 		SETZM	RH20F#
  3277	024420	301 01 0 00 000540 		CAIL	A,DHZ			;IS THIS RH20 DEVICE CODE ?
  3278	024421	303 01 0 00 000574 		CAILE	A,DHZ8
  3279	024422	254 00 0 00 024426 		JRST	.+4			;NO
  3280	024423	476 00 0 00 025540 		SETOM	RH20F			;YES, SET FLAG
  3281	024424	336 00 0 00 020010 		SKIPN	KLFLG			;ARE WE ON A KL10 ?
  3282	024425	263 17 0 00 000000 		RTN				;NO
  3283	024426	620 00 0 00 000177 		TRZ	F,R.KDEV		;CLEAR CONTROLLER FIELD
  3284	024427	660 00 0 01 000000 		TRO	F,(A)			;SET CONTROLLER FIELD
  3285	024430	201 10 0 00 000001 		MOVEI	LBN,HOMBK1		;WANT TO READ FIRST HOME BLOCK
  3286	024431	201 01 0 00 027204 		MOVEI	A,DBUF-1		;BUFFER FOR TEST I/O
  3287	024432	260 17 0 00 024550 		GO	SETCHN			;SETUP CHAN CMD LIST & INITIALIZE CONTROLLER
  3288	024433	263 17 0 00 000000 		RTN				;ERROR, NOT THERE
  3289
  3290	024434	201 01 0 00 027407 	HOM1:	MOVEI	A,HBUF-1		;READ HOME BLOCK INTO ITS BUFFER
  3291	024435	260 17 0 00 024507 		GO	DSKBLK			;TRY TO READ THE HOME BLOCK
  3292	024436	254 00 0 00 024444 		JRST	HOM2			;CAN'T READ THAT ONE
  3293	024437	200 01 0 00 027606 		MOVE	A,HBUF+BLKCOD		;GET THE CODE WORD
  3294	024440	306 01 0 00 707070 		CAIN	A,CODHOM		;IS IT RIGHT?
  3295	024441	332 00 0 00 027433 		SKIPE	HBUF+HOMREF		;AND NOT NEEDING REFRESHING?
  3296	024442	254 00 0 00 024444 		JRST	HOM2			;NO GOOD
  3297	024443	254 00 0 00 020423 		JRST	CPOPJ1			;OK RETURN
  3298
  3299	024444	306 10 0 00 000012 	HOM2:	CAIN	LBN,HOMBK2		;TRIED BOTH BLOCKS?
  3300	024445	263 17 0 00 000000 		RTN				;YES, GIVE FAIL RETURN
  3301	024446	201 10 0 00 000012 		MOVEI	LBN,HOMBK2		;NO, TRY ANOTHER ONE
  3302	024447	254 00 0 00 024434 		JRST	HOM1			;READ SECOND HOME BLOCK
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 45
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0115

  3303					;*DPCINI - INITIALIZATION FOR PACKS
  3304
  3305	024450	303 06 0 00 000007 	DPCINI:	CAILE	N,7			;LEGAL DRIVE NUMBER?
  3306	024451	263 17 0 00 000000 		RTN				;NO, NON-EXISTENT RETURN
  3307	024452	402 00 0 00 025646 		SETZM	DF22F			;CLEAR DF10 22 BIT MODE FLAG
  3308	024453	137 06 0 00 025026 		DPB	N,PDRIVE		;SAVE FOR I/O
  3309	024454	201 01 0 00 000037 		MOVEI	A,37			;A BAD SURFACE FOR ALL PACKS
  3310	024455	137 01 0 00 025030 		DPB	A,PSURF			;STORE FOR DATAO
  3311	024456	137 01 0 00 025031 		DPB	A,PSEC			;STORE FOR DATAO
  3312	024457	200 03 0 00 025413 		MOVE	C,[DATAO DATAOW]	;SETUP A DATAO TO PACKS
  3313	024460	260 17 0 00 025022 		GO	IOXCT			;DATAO ON RIGHT DEVICE
  3314	024461	260 17 0 00 024477 		GO	IOWAIT			;TIMEOUT OR DONE FLAG
  3315	024462	323 02 0 00 020355 		JUMPLE	B,CPOPJ			;TIMED OUT?
  3316	024463	201 01 0 00 002000 		MOVEI	A,2000			;DRIVE NOT THERE?
  3317	024464	260 17 0 00 025020 		GO	IOCNSZ
  3318	024465	263 17 0 00 000000 		RTN				;NOT THERE, ERROR RETURN
  3319	024466	200 03 0 00 025414 		MOVE	C,[DATAI A]
  3320	024467	260 17 0 00 025022 		GO	IOXCT
  3321	024470	602 01 0 00 002000 		TRNE	A,2000
  3322	024471	660 00 0 00 000200 		TRO	F,R.TYPE		;FLAG AS RP03		
  3323	024472	200 03 0 00 025415 		MOVE	C,[CONI A]
  3324	024473	260 17 0 00 025022 		GO	IOXCT
  3325	024474	603 01 0 00 000020 		TLNE	A,DF22B			;IF 22BIT DF10 ?
  3326	024475	476 00 0 00 025646 		SETOM	DF22F			;SET FLAG
  3327	024476	254 00 0 00 020423 		JRST	CPOPJ1			;SUCCESSFUL RETURN
  3328
  3329	024477	477 01 0 00 000002 	IOWAIT:	SETOB	A,B			;LOOK FOR ALL FLAG BITS
  3330	024500	260 17 0 00 025021 		GO	IOCNSO			;ANYTHING THERE?
  3331	024501	263 17 0 00 000000 		RTN				;NO SUCH DEVICE AT ALL
  3332	024502	201 02 0 00 141520 		MOVEI	B,^D50000		;TIMEOUT
  3333	024503	201 01 0 00 000010 		MOVEI	A,10			;DONE FLAG, ALL CONTROLLERS
  3334	024504	260 17 0 00 025021 		GO	IOCNSO			;LOOK FOR DONE
  3335	024505	367 02 0 00 024503 		SOJG	B,.-2			;NOT YET, COUNT DOWN AND LOOP
  3336	024506	263 17 0 00 000000 		RTN				;DONE OR TIMED OUT
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 46
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0116

  3337					;*DSKBLK - ROUTINE TO READ A BLOCK FROM THE DEVICE AND UNIT IN
  3338					;*	   CTYPE & CUNIT INTO THE BUFFER AT (A)+1, FROM LOGICAL BLOCK
  3339					;*	   NUMBER IN LBN SKIP RETURN IF SUCCESSFUL, NON-SKIP IF ANY
  3340					;*	   HARDWARE ERRORS
  3341
  3342	024507	265 03 0 00 024550 	DSKBLK:	JSP	C,SETCHN		;SETUP CHN CONTROL WORD & CALL PROPER READ ROUTINE
  3343
  3344	024510	000000	024664			DHXRED				;RH10/RP04/5/6
  3345	024511	000000	024664			DHXRED				;SECOND RH10/RP04/5/6
  3346	024512	000000	024664			DHXRED				;3RD
  3347	024513	000000	024664			DHXRED				;4TH
  3348	024514	000000	024664			DHXRED				;5TH
  3349	024515	000000	024664			DHXRED				;6TH
  3350	024516	000000	024664			DHXRED				;1ST RH20/RP04/5/6
  3351	024517	000000	024664			DHXRED				;2ND RH20/RP04/5/6
  3352	024520	000000	024664			DHXRED				;3RD RH20/RP04/5/6
  3353	024521	000000	024664			DHXRED				;4TH RH20/RP04/5/6
  3354	024522	000000	024664			DHXRED				;5TH RH20/RP04/5/6
  3355	024523	000000	024664			DHXRED				;6TH RH20/RP04/5/6
  3356	024524	000000	024664			DHXRED				;7TH RH20/RP04/5/6
  3357	024525	000000	024664			DHXRED				;8TH RH20/RP04/5/6
  3358	024526	000000	024765			DPCRED				;RP10
  3359	024527	000000	024765			DPCRED				;SECOND RP10
  3360
  3361					;*UNIINI - INITIALIZE CONTROLLER ROUTINES
  3362					; (CONSO IRRELEVANT-USED TO GET DEVICE CODE)
  3363
  3364	024530	7 270 34 0 00 024647 	UNIINI:	CONSO	DHX,DHXINI		;FIRST RH10/RP04/5/6
  3365	024531	7 274 34 0 00 024647 		CONSO	DHX2,DHXINI		;SECOND
  3366	024532	7 360 34 0 00 024647 		CONSO	DHX3,DHXINI		;3RD
  3367	024533	7 364 34 0 00 024647 		CONSO	DHX4,DHXINI		;4TH
  3368	024534	7 370 34 0 00 024647 		CONSO	DHX5,DHXINI		;5TH
  3369	024535	7 374 34 0 00 024647 		CONSO	DHX6,DHXINI		;6TH
  3370	024536	7 540 34 0 00 024646 		CONSO	DHZ,DHZINI		;FIRST RH20/RP04/5/6
  3371	024537	7 544 34 0 00 024646 		CONSO	DHZ2,DHZINI		;2ND
  3372	024540	7 550 34 0 00 024646 		CONSO	DHZ3,DHZINI		;3RD
  3373	024541	7 554 34 0 00 024646 		CONSO	DHZ4,DHZINI		;4TH
  3374	024542	7 560 34 0 00 024646 		CONSO	DHZ5,DHZINI		;5TH
  3375	024543	7 564 34 0 00 024646 		CONSO	DHZ6,DHZINI		;6TH
  3376	024544	7 570 34 0 00 024646 		CONSO	DHZ7,DHZINI		;7TH
  3377	024545	7 574 34 0 00 024646 		CONSO	DHZ8,DHZINI		;8TH
  3378	024546	7 250 34 0 00 024450 		CONSO	DPC,DPCINI		;FIRST DPC		
  3379	024547	7 254 34 0 00 024450 		CONSO	DPC2,DPCINI		;SECOND DPC
  3380			000017		TYPMAX=.-UNIINI-1			;MAXIMUM CONTROLLER ROUTINE
  3381			000007		UNIMAX=7				;MAX NUMBER OF UNITS ON A CONTROLLER
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 47
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0117

  3382					;*SETCHN - SUBROUTINE TO SETUP CHANNEL, THEN DISPATCH TO DEVICE
  3383					;*	   DEPENDENT ROUTINE
  3384					;*	   CALL: MOVEI	A, ABS ADR OF FIRST DATA WORD-1
  3385					;*		 HRRI	C, ABS ADR OF FIRST WORD IN DISPATCH TABLE
  3386					;*		 GO	SETCHN
  3387					;*		 ERROR	RETURN
  3388					;*		 OK	RETURN
  3389
  3390	024550	202 01 0 00 025505 	SETCHN:	MOVEM	A,BUFS#			;BUFFER START ADR FOR ECC
  3391	024551	350 00 0 00 025505 		AOS	BUFS
  3392	024552	332 00 0 00 025540 		SKIPE	RH20F			;RH20 ?
  3393	024553	254 00 0 00 024571 		JRST	SETCH1			;YES
  3394	024554	505 01 0 00 777600 		HRLI	A,-200			;MAKE IOWD FOR THE CHANNEL
  3395	024555	332 00 0 00 025646 		SKIPE	DF22F			;DF10 IN 22BIT MODE ?
  3396	024556	505 01 0 00 774000 		HRLI	A,<-200_4>		;YES
  3397	024557	202 01 0 00 000476 		MOVEM	A,CHNCMD		;STORE IT
  3398	024560	402 00 0 00 000477 		SETZM	CHNCMD+1		;END OF CHANNEL CMD LIST
  3399	024561	201 01 0 00 000476 		MOVEI	A,CHNCMD		;SETUP LOW CORE FOR CHANNEL
  3400	024562	202 01 0 00 000022 		MOVEM	A,LOWCMD
  3401	024563	402 00 0 00 000023 		SETZM	LOWCMD+1		;ALSO CLEAR FINAL CONTROL WORD ADDR
  3402	024564	337 01 0 00 000010 	SETCMN:	SKIPG	A,LBN			;GET AND CHECK BLOCK NUMBER
  3403	024565	260 17 0 00 025130 		GO	ERR13			;SHOULD BE GT 0
  3404	024566	200 14 0 00 025670 		MOVE	K,CTYPE			;WHAT CONTROLLER
  3405	024567	271 03 0 14 000000 		ADDI	C,(K)			;FROM ABS. ADR. OF PROPER DISPATCH TABLE ENTRY
  3406	024570	254 00 1 03 000000 		JRST	@(C)			;CALL DISPATCH ENTRY
  3407
  3408	024571	350 00 0 00 000001 	SETCH1:	AOS	A
  3409	024572	670 01 0 00 025416 		TDO	A,[1B0!1B1!200B13]	;COMPLETE THE CCW
  3410	024573	202 01 0 00 000476 		MOVEM	A,CHNCMD		;SAVE IT
  3411	024574	200 14 0 00 025670 		MOVE	K,CTYPE			;CALCULATE EPT LOC FOR ICWA
  3412	024575	135 14 0 00 025417 		LDB	K,[POINT 3,UNIINI(K),9] ;GET CHAN NUMBER
  3413	024576	242 14 0 00 000002 		LSH	K,2			;MULTIPLY BY 4
  3414	024577	261 17 0 00 000000 		PUT	0
  3415	024600	200 00 0 00 000417 		MOVE	417			;SAVE C(417)
  3416	024601	202 00 0 00 025561 		MOVEM	$SV417#
  3417	024602	201 00 0 00 540000 		MOVEI	540000			;RELOCATE THRU ADR 377000 TO
  3418	024603	542 00 0 00 000417 		HRRM	417			;GET TO RH20 CHANNEL AREA
  3419	024604	7 010 24 0 00 000000 		CONI	PAG,0
  3420	024605	660 00 0 00 020000 		TRO	0,TRPENB
  3421	024606	7 010 20 1 00 000000 		CONO	PAG,@0
  3422	024607	202 01 0 14 377000 		MOVEM	A,377000(K)		;PUT ICWA IN PHYSICAL MEMORY
  3423	024610	200 00 0 00 025561 		MOVE	$SV417
  3424	024611	202 00 0 00 000417 		MOVEM	417			;RESTORE C(417)
  3425	024612	7 010 24 0 00 000000 		CONI	PAG,0
  3426	024613	7 010 20 1 00 000000 		CONO	PAG,@0
  3427	024614	262 17 0 00 000000 		GET	0
  3428	024615	254 00 0 00 024564 		JRST	SETCMN			;TO COMMON CODE
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 48
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0118

  3429					;*DHYINI - INITIALIZATION FOR RH10/RP04/5/6
  3430
  3431	024616	303 06 0 00 000007 	DHYINI:	CAILE	N,7			;SEE IF LAST DRIVE
  3432	024617	263 17 0 00 000000 		RTN				;YES, EXIT
  3433	024620	402 00 0 00 025646 		SETZM	DF22F			;CLEAR DF10 22 BIT MODE FLAG
  3434	024621	205 01 0 06 060000 		MOVSI	A,60000(N)		;SETUP DRIVE TYPE
  3435	024622	260 17 0 00 024657 		GO	IODTI			;READ DRIVE TYPE REGISTER
  3436	024623	135 02 0 00 025420 		LDB	B,[POINT 9,A,35]
  3437	024624	200 03 0 00 025421 		MOVE	C,[TLNE A,2000]
  3438	024625	332 00 0 00 025540 		SKIPE	RH20F
  3439	024626	200 03 0 00 025422 		MOVE	C,[TLNN A,(1B10)]
  3440	024627	256 00 0 00 000003 		XCT	C
  3441	024630	254 00 0 00 024651 		JRST	RHINIT			;DRIVE DOESN'T EXIST
  3442	024631	301 02 0 00 000020 		CAIL	B,20			;RP04=20, RP05=21, RP06=22, RM01=24
  3443	024632	303 02 0 00 000024 		CAILE	B,24
  3444	024633	263 17 0 00 000000 		RTN				;NO DEVICE OR NOT AN RP04/5/6
  3445	024634	205 01 0 06 004000 		MOVSI	A,4000(N)		;SELECT CONTROL REGISTER
  3446	024635	541 01 0 00 000023 		HRRI	A,23			;PACK ACK COMMAND
  3447	024636	260 17 0 00 024662 		GO	IODTO
  3448	024637	332 00 0 00 025540 		SKIPE	RH20F
  3449	024640	254 00 0 00 020423 		JRST	CPOPJ1			;DONE IF RH20
  3450	024641	200 03 0 00 025415 		MOVE	C,[CONI A]
  3451	024642	260 17 0 00 025022 		GO	IOXCT
  3452	024643	603 01 0 00 004000 		TLNE	A,DF22RH		;RH10/DF10 IN 22BIT MODE ?
  3453	024644	476 00 0 00 025646 		SETOM	DF22F			;YES
  3454	024645	254 00 0 00 020423 		JRST	CPOPJ1
  3455
  3456					;*DHXINI - RH20/RP04/RP05/RP06 INITIALIZATION
  3457
  3458	024646	476 00 0 00 025540 	DHZINI:	SETOM	RH20F
  3459	024647	260 17 0 00 024651 	DHXINI:	GO	RHINIT
  3460	024650	254 00 0 00 024616 		JRST	DHYINI
  3461
  3462	024651	201 01 0 00 734330 	RHINIT:	MOVEI	A,734330		;INITIALIZE RH10
  3463	024652	332 00 0 00 025540 		SKIPE	RH20F
  3464	024653	201 01 0 00 005730 		MOVEI	A,5730			;INITIALIZE RH20
  3465	024654	200 03 0 00 025423 		MOVE	C,[CONO @A]		;CLEAR
  3466	024655	260 17 0 00 025022 		GO	IOXCT
  3467	024656	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 49
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0119

  3468					;*IODTI - RH10/RH20 DATAO/DATAI ROUTINES
  3469
  3470	024657	200 03 0 00 025424 	IODTI:	MOVE	C,[DATAO A]
  3471	024660	260 17 0 00 025022 		GO	IOXCT
  3472	024661	625 03 0 00 000100 		TLZA	C,100			;TURN IT INTO A DATAI
  3473	024662	200 03 0 00 025424 	IODTO:	MOVE	C,[DATAO A]
  3474	024663	254 00 0 00 025022 		JRST	IOXCT
  3475
  3476					;*DHXRED - READ ROUTINE FOR RH10/RP04/5/6 & RH20/RP04/5/6
  3477					;*	ENTRY:	A/ LOGICAL BLOCK NUMBER
  3478					;*		N/ DRIVE NUMBER
  3479					;*	EXIT:	+1 FOR ERROR
  3480					;*		+2 SUCESSFUL
  3481
  3482	024664	261 17 0 00 000003 	DHXRED:	PUSH	P,C
  3483	024665	200 03 0 00 025425 		MOVE	C,[CONO 10]		;CLEAR DONE
  3484	024666	332 00 0 00 025540 		SKIPE	RH20F
  3485	024667	660 03 0 00 000400 		TRO	C,400
  3486	024670	260 17 0 00 025022 		GO	IOXCT
  3487	024671	262 17 0 00 000003 		POP	P,C
  3488	024672	661 06 0 00 000071 		TLO	N,DH.RD			;N/ FUNCTION,,DRIVE
  3489	024673	231 01 0 00 000574 		IDIVI	A,^D380			;380 SECTORS/CYLINDER
  3490	024674	505 01 0 06 124000 		HRLI	A,124000(N)		;SELECT DESIRED CYLINDER
  3491	024675	260 17 0 00 024662 		GO	IODTO
  3492	024676	231 02 0 00 000024 		IDIVI	B,^D20			;20 SECTORS/SURF
  3493	024677	137 02 0 00 025426 		DPB	B,[POINT 5,C,27]
  3494	024700	205 01 0 06 054000 		MOVSI	A,54000(N)
  3495	024701	540 01 0 00 000003 		HRR	A,C
  3496	024702	260 17 0 00 024662 		GO	IODTO			;DESIRED SECTOR, SURFACE
  3497	024703	204 01 0 00 000006 		MOVS	A,N
  3498	024704	332 00 0 00 025540 		SKIPE	RH20F			;RH20 ?
  3499	024705	674 01 0 00 025427 		TDOA	A,[716200,,377700]	;YES
  3500	024706	670 01 0 00 025430 		TDO	A,[404000,,200000!LOWCMD_6]
  3501	024707	260 17 0 00 024662 		GO	IODTO			;START THE IO, LOAD RH CNTRL REG
  3502	024710	260 17 0 00 024477 		GO	IOWAIT
  3503	024711	323 02 0 00 020355 		JUMPLE	B,CPOPJ
  3504	024712	205 01 0 06 010000 		MOVSI	A,10000(N)
  3505	024713	260 17 0 00 024657 		GO	IODTI			;READ STATUS REGISTER
  3506	024714	606 01 0 00 040000 		TRNN	A,40000		;COMPOSITE ERROR ?
  3507	024715	254 00 0 00 024720 		JRST	NODRER		;NO DRIVE ERROR
  3508	024716	260 17 0 00 024724 		GO	TRYECC		;YES. GO SEE IF CORRECTABLE
  3509	024717	263 17 0 00 000000 		RTN			;+1 NOT CORRECTABLE
  3510	024720	201 01 0 00 536320 	NODRER:	MOVEI	A,536320	;+2 DATA HAS BEEN CORRECTED
  3511	024721	332 00 0 00 025540 		SKIPE	RH20F		;RH20 ?
  3512	024722	201 01 0 00 575000 		MOVEI	A,575000	;YES. GET DIFFERENT STATUS WORD
  3513	024723	254 00 0 00 025020 		JRST	IOCNSZ		;CHECK FOR ERRORS OTHER THAN EXCEPTION
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 50
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0120

  3514					;* SUBROUTINE TO ATTEMPT TO DO ECC CORRECTION 
  3515
  3516					;* GOT HERE BECAUSE WE GOT A COMPOSITE ERROR IN THE DRIVE, IF
  3517					;* DCK=1 AND ECH=0 WE CAN CORRECT USING ECC. THIS ROUTINE LOOKS
  3518					;* IN "BUFS" FOR BUFFER STARTING ADDRESS. "BUFS" IS SET UP IN THE
  3519					;* "SETCHN" ROUTINE.
  3520					;*	CALL SEQ:
  3521					;*	GO	TRYECC		;CALL THE ROUTINE
  3522					;*	RTN+1			;CAN'T CORRECT
  3523					;*	RTN+2			;DATA HAS BEEN CORRECTED IN MEMORY
  3524
  3525	024724	205 01 0 06 020000 	TRYECC:	MOVSI	A,020000(N)	;WANT TO READ DRIVE ER1
  3526	024725	260 17 0 00 024657 		GO	IODTI		;READ IT
  3527	024726	640 01 0 00 100000 		TRC	A,100000	;TEST FOR DCK=1 & HCI=0
  3528	024727	602 01 0 00 100100 		TRNE	A,100100	;	THIS DOES IT
  3529	024730	263 17 0 00 000000 		RTN			;NOT CORRECTABLE. EXIT
  3530	024731	205 01 0 06 160000 		MOVSI	A,160000(N)	;NEED ECC POSITION REGISTER
  3531	024732	260 17 0 00 024657 		GO	IODTI		;READ IT.
  3532	024733	405 01 0 00 177777 		ANDI	A,177777	;SAVE 16 BIT DATA FIELD
  3533	024734	336 02 0 00 000001 		SKIPN	B,A		;CHECK POS AND GET IT TO B
  3534	024735	263 17 0 00 000000 		RTN			;YES. ECC BROKEN. DON'T CORRECT
  3535	024736	303 01 0 00 011025 		CAILE	A,^D4608+^D32-^D11 ;SEE IF POSITION IS WITHIN RANGE
  3536	024737	263 17 0 00 000000 		RTN			;ECC BROKEN. DON'T CORRECT
  3537	024740	350 00 0 17 000000 		AOS	(P)		;WE CAN CORRECT. ADJUST STACK FOR +2 RTN
  3538	024741	275 01 0 00 000001 		SUBI	A,1		;NORMALIZE THE POSITION COUNT
  3539	024742	202 01 0 00 025515 		MOVEM	A,ECCPOS#	;FOR FUTURE USE
  3540	024743	205 01 0 06 170000 		MOVSI	A,170000(N)	;WE NEED ECC PATTERN REG
  3541	024744	260 17 0 00 024657 		GO	IODTI		;READ IT
  3542	024745	135 00 0 00 025431 		LDB	0,[POINT 11,A,35] ;GET THE 11 BIT BURST PATTERN
  3543	024746	275 02 0 00 010764 		SUBI	B,^D4607-^D11	;SEE IF POSITION EXCEEDS DATA FIELD
  3544	024747	323 02 0 00 024753 		JUMPLE	B,NORM		;IF + . WE OVERLAP AND MUST ADJ. PATTERN
  3545
  3546					; MODIFY ECC PATTERN IF CORRECTION SPILLS OVER THE DATA FIELD
  3547
  3548	024750	242 00 0 02 000031 		LSH	0,^D25(B)	;THROW AWAY APPROPRIATE BITS
  3549	024751	213 02 0 00 000002 		MOVNS	B,B		;WANT TO SHIFT LEFT NEXT
  3550	024752	242 00 0 02 777747 		LSH	0,-^D25(B)	;NOW HAVE CORRECT PATTERN LENGTH
  3551
  3552					; THE ACTUAL CODE TO CORRECT THE DATA ERROR
  3553
  3554	024753	400 01 0 00 000000 	NORM:	SETZ	A,		;AND CLEAR ADJACENT AC
  3555	024754	200 02 0 00 025515 		MOVE	B,ECCPOS	;GET THE POSITION BACK AGAIN
  3556	024755	231 02 0 00 000044 		IDIVI	B,^D36		;GET BUFFER OFFSET PLUS REMAINDER
  3557	024756	270 02 0 00 025505 		ADD	B,BUFS		;POINTS TO 1ST WORD NEEDING CORRECTION
  3558	024757	245 00 0 03 000000 		ROTC	0,(C)		;SLIDE THE PATTERN INTO PLACE
  3559	024760	207 00 0 00 000000 		MOVSS	0,0		;HALVES MUST BE SWAPPED
  3560	024761	207 01 0 00 000001 		MOVSS	1,1		; BECAUSE OF RP0X DATA PATH MAPPING
  3561	024762	432 00 0 02 000000 		XORM	0,(B)		;CORRECT THE FIRST WORD
  3562	024763	432 01 0 02 000001 		XORM	1,1(B)		;CORRECT THE SECOND WORD
  3563	024764	263 17 0 00 000000 		RTN			;THEN EXIT TO RTN-1
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 51
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0121

  3564					;*DPCRED - READ ROUTINE FOR THE DISK PACKS
  3565
  3566	024765	260 17 0 00 024771 	DPCRED:	GO DPCCNV			;CONVERT AND SEEK FOR BLOCK
  3567	024766	263 17 0 00 000000 		RTN				;BAD BLOCK NUMBER
  3568	024767	201 01 0 00 000000 		MOVEI	A,O.READ		;SET OPERATION TO READ BLOCK		
  3569	024770	254 00 0 00 025010 		JRST	DPCOPR			;READ THE BLOCK (CHANNEL ALL SET)
  3570
  3571	024771	231 01 0 00 000012 	DPCCNV:	IDIVI	A,12			;GET SECTOR NUMBER
  3572	024772	137 02 0 00 025031 		DPB	B,PSEC			;SAVE IT
  3573	024773	231 01 0 00 000024 		IDIVI	A,24			;GET SURF AND CYL
  3574	024774	137 02 0 00 025030 		DPB	B,PSURF			;STORE SURFACE
  3575	024775	137 01 0 00 025027 		DPB	A,PCYL			;STORE CYLINDER
  3576	024776	551 02 0 00 200000 		HRRZI	B,200000
  3577	024777	622 01 0 00 000400 		TRZE	A,400
  3578	025000	436 02 0 00 025035 		IORM	B,DATAOW		;EXTEND CYL ADR IF RP03
  3579	025001	200 06 0 00 025671 		MOVE	N,CUNIT			;CURRENT UNIT
  3580	025002	137 06 0 00 025026 		DPB	N,PDRIVE		;STORE THAT TOO
  3581	025003	606 00 0 00 000200 		TRNN	F,R.TYPE
  3582	025004	307 01 0 00 000312 		CAIG	A,^D202
  3583	025005	303 01 0 00 000625 		CAILE	A,^D405			;MAKE SURE CYLINDER IS ON DISK?
  3584	025006	260 17 0 00 025132 		GO	ERR14			;TOO BIG A LBN
  3585	025007	201 01 0 00 000004 		MOVEI	A,O.SEEK		;MAKE DISK SEEK TO THE CYLINDER
  3586	025010	137 01 0 00 025032 	DPCOPR:	DPB	A,OPPNT			;STORE THE OPERATION
  3587	025011	200 03 0 00 025432 		MOVE	C,[DATAO CLRATN]	;SETUP DATAO?
  3588	025012	260 17 0 00 025022 		GO	IOXCT			;DO DATAO WITH RIGHT DEVICE
  3589	025013	541 03 0 00 025035 		HRRI	C,DATAOW		;NEW ADDRESS
  3590	025014	256 00 0 00 000003 		XCT	C			;SEND THIS WORD TOO
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 52
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0122

  3591					;*DPCWAT - SUBROUTINE TO WAIT FOR I/O AND CHECK ERRORS
  3592
  3593	025015	260 17 0 00 024477 	DPCWAT:	GO	IOWAIT			;WAIT FOR DONE FLAG OR TIMEOUT
  3594	025016	323 02 0 00 020355 		JUMPLE	B,CPOPJ			;IF TIMED OUT, GIVE UP
  3595	025017	201 01 0 00 177720 		MOVEI	A,177720		;ANY ERRORS
  3596
  3597	025020	334 03 0 00 025433 	IOCNSZ:	SKIPA	C,[CONSZ (A)]		;SETUP I/O INST
  3598	025021	205 03 0 00 700341 	IOCNSO:	MOVSI	C,(CONSO (A))		;SETUP I/O INST
  3599	025022	137 00 0 00 025434 	IOXCT:	DPB	F,[POINT 7,C,9]		;PUT IN I/O DEVICE FIELD
  3600	025023	256 00 0 00 000003 		XCT	C			;DO THE I/O
  3601	025024	263 17 0 00 000000 		RTN				;NO SKIP RETURN
  3602	025025	254 00 0 00 020423 		JRST	CPOPJ1			;SKIP RETURN
  3603
  3604
  3605	025026	36 03 0 00 025035 	PDRIVE:	POINT	3,DATAOW,5		;DRIVE NUMBER FOR DATAO
  3606	025027	26 10 0 00 025035 	PCYL:	POINT	8,DATAOW,13		;CYLINDER NUMBER
  3607	025030	21 05 0 00 025035 	PSURF:	POINT	5,DATAOW,18		;SURFACE NUMBER
  3608	025031	14 05 0 00 025035 	PSEC:	POINT	5,DATAOW,23		;SECTOR NUMBER
  3609	025032	41 03 0 00 025035 	OPPNT:	POINT	3,DATAOW,2		;OPERATION
  3610	025033	777600	027205		DBUFP:	-200,,DBUF			;POINTER TO DATA BLOCK
  3611
  3612	025034	500000	000776		CLRATN:	500000,,776			;CLEAR ATTENTION FLAGS
  3613
  3614	025035	000000	000022		DATAOW:	LOWCMD				;LOW CORE ADDRESS FOR DF10
  3615
  3616	025036	44 06 0 00 000004 	PPNPTR:	POINT	6,W			;POINTER FOR PPN INPUT
  3617
  3618	025037	000006	000010		DIAGPPN: 6,,10				;DEFAULT FOR DIAG AREA ??
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 53
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0123

  3619					;*ERROR - ERROR REPORTING
  3620
  3621	025040	402 00 0 00 025537 	ERROR:	SETZM	RCOVRY#
  3622	025041	261 17 0 00 000001 		PUSH	P,1
  3623	025042	260 17 0 00 021567 		GO	CRLF1
  3624	025043	262 17 0 00 000001 		POP	P,1
  3625	025044	260 17 0 00 020347 		GO	SIXBP
  3626						PMSG	< ERROR AT >^
  3627	025045	201 00 0 00 025435 		MOVEI	[SIXBIT\ ERROR AT _\]
  3628	025046	260 17 0 00 021426 		PNTMSG^
  3629	025047	200 00 0 17 000000 		MOVE	0,(P)
  3630	025050	370 00 0 00 000000 		SOS
  3631	025051	260 17 0 00 021475 		GO	PNTOCT			;PRINT PC OF ERROR
  3632	025052	336 00 0 00 025537 		SKIPN	RCOVRY			;ATTEMPT RECOVERY ?
  3633	025053	254 00 0 00 023431 		JRST	ERR1			;NO, CONSULT LISTING FOR ERRORS
  3634
  3635	025054	336 00 0 00 025536 		SKIPN	PTFLG			;PAPER TAPE ?
  3636	025055	254 00 0 00 023431 		JRST	ERR1			;NO
  3637
  3638	025056	262 17 0 00 000000 		POP	P,0			;RESTORE STACK
  3639						PMSG	<^BACKUP TAPE TO ATTEMPT RECOVERY, TYPE CR WHEN READY^>^
  3640	025057	201 00 0 00 025437 		MOVEI	[SIXBIT\^BACKUP TAPE TO ATTEMPT RECOVERY, TYPE CR WHEN READY^_\]
  3641	025060	260 17 0 00 021426 		PNTMSG^
  3642	025061	260 17 0 00 021673 		TTICHR
  3643	025062	302 00 0 00 000012 		CAIE	12
  3644	025063	254 00 0 00 025061 		JRST	.-2
  3645
  3646	025064	254 00 0 00 022531 		JRST	LDPROC
  3647
  3648					;*NFERR1 - PROGRAM NOT FOUND ERROR
  3649
  3650	025065				NFERR1:	PMSG	<^PROGRAM NOT FOUND - >^
  3651	025065	201 00 0 00 025450 		MOVEI	[SIXBIT\^PROGRAM NOT FOUND - _\]
  3652	025066	260 17 0 00 021426 		PNTMSG^
  3653	025067	260 17 0 00 020337 		GO	NAMPNT
  3654	025070	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 54
DEVLDR	MAC	23-Apr-80 13:29		DSKLDR DISK PACK LOAD ONLY ROUTINE                                                 SEQ 0124

  3655					;*ERROR REPORT MESSAGES
  3656
  3657	025071	200 01 0 00 025454 	LERR2:	MOVE	A,[SIXBIT/ILLEOF/]
  3658	025072	476 00 0 00 025537 		SETOM	RCOVRY
  3659	025073	254 00 0 00 025041 		JRST	ERROR+1
  3660	025074	200 01 0 00 025455 	LERR3:	MOVE	A,[SIXBIT/FLTYPE/]
  3661	025075	254 00 0 00 025072 		JRST	LERR2+1
  3662	025076	200 01 0 00 025456 	LERR4:	MOVE	A,[SIXBIT/FORMAT/]
  3663	025077	254 00 0 00 025072 		JRST	LERR2+1
  3664	025100	200 01 0 00 025457 	LERR5:	MOVE	A,[SIXBIT/CKSUM/]
  3665	025101	254 00 0 00 025072 		JRST	LERR2+1
  3666
  3667	025102	200 01 0 00 025454 	ERR2:	MOVE	A,[SIXBIT/ILLEOF/]
  3668	025103	254 00 0 00 025040 		JRST	ERROR
  3669	025104	200 01 0 00 025455 	ERR3:	MOVE	A,[SIXBIT/FLTYPE/]
  3670	025105	254 00 0 00 025040 		JRST	ERROR
  3671	025106	200 01 0 00 025456 	ERR4:	MOVE	A,[SIXBIT/FORMAT/]
  3672	025107	254 00 0 00 025040 		JRST	ERROR
  3673	025110	200 01 0 00 025457 	ERR5:	MOVE	A,[SIXBIT/CKSUM/]
  3674	025111	254 00 0 00 025040 		JRST	ERROR
  3675	025112	200 01 0 00 025460 	ERR6:	MOVE	A,[SIXBIT/1STPTR/]
  3676	025113	254 00 0 00 025040 		JRST	ERROR
  3677	025114	200 01 0 00 025461 	ERR7:	MOVE	A,[SIXBIT/STADR/]
  3678	025115	254 00 0 00 025040 		JRST	ERROR
  3679	025116	200 01 0 00 025462 	ERR8:	MOVE	A,[SIXBIT/OPEN/]
  3680	025117	254 00 0 00 025040 		JRST	ERROR
  3681	025120	200 01 0 00 025463 	ERR9:	MOVE	A,[SIXBIT/RDERR/]
  3682	025121	254 00 0 00 025040 		JRST	ERROR
  3683	025122	200 01 0 00 025464 	ERR10:	MOVE	A,[SIXBIT/CORE/]
  3684	025123	254 00 0 00 025040 		JRST	ERROR
  3685	025124	200 01 0 00 025465 	ERR11:	MOVE	A,[SIXBIT/BADRIB/]
  3686	025125	254 00 0 00 025040 		JRST	ERROR
  3687	025126	200 01 0 00 025466 	ERR12:	MOVE	A,[SIXBIT/RIBEOF/]
  3688	025127	254 00 0 00 025040 		JRST	ERROR
  3689	025130	200 01 0 00 025467 	ERR13:	MOVE	A,[SIXBIT/BLKNBR/]
  3690	025131	254 00 0 00 025040 		JRST	ERROR
  3691	025132	200 01 0 00 025470 	ERR14:	MOVE	A,[SIXBIT/CYLNBR/]
  3692	025133	254 00 0 00 025040 		JRST	ERROR
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 55
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0125

  3693					SUBTTL	STORAGE ASSIGNMENTS
  3694	025134					LIT
  3695	025134	000112	000011
  3696	025135	104 062 060 115 117 
  3697	025136	116 056 105 130 105 
  3698	025137	000 000 000 000 000 
  3699	025140	104 00 0 00 000200 
  3700	025141	104 00 0 00 000147 
  3701	025142	550 00 0 00 000120 
  3702	025143	254 00 1 00 000000 
  3703	025144	777740	025563
  3704	025145	000001	000001
  3705	025146	025623	025624
  3706	025147	63 65 42 62 64 56 
  3707	025150	63 65 42 65 63 62 
  3708	025151	000000	000000
  3709	025152	63 65 42 53 54 00 
  3710	025153	000000	000000
  3711	025154	63 65 42 62 64 56 
  3712	025155	000000	000000
  3713	025156	53 54 44 44 64 00 
  3714	025157	000000	000000
  3715	025160	00 43 55 44 00 15 
  3716	025161	00 77 00 00 00 00 
  3717	025162	76 46 51 54 45 16 
  3718	025163	45 70 64 00 15 00 
  3719	025164	77 00 00 00 00 00 
  3720	025165	56 57 00 50 45 54 
  3721	025166	60 77 00 00 00 00 
  3722	025167	76 56 41 55 45 75 
  3723	025170	60 41 63 63 45 63 
  3724	025171	75 62 50 00 63 67 
  3725	025172	63 75 51 64 45 62 
  3726	025173	41 64 51 57 56 63 
  3727	025174	76 77 00 00 00 00 
  3728	025175	44 07 0 00 031000 
  3729	025176	70 70 70 76 77 00 
  3730	025177	76 43 55 44 54 63 
  3731	025200	64 00 64 57 57 00 
  3732	025201	54 57 56 47 77 00 
  3733	025202	76 65 63 45 62 00 
  3734	025203	57 56 54 71 77 00 
  3735	025204	76 45 70 45 43 00 
  3736	025205	57 56 54 71 77 00 
  3737	025206	76 65 56 43 50 41 
  3738	025207	51 56 41 42 54 45 
  3739	025210	15 77 00 00 00 00 
  3740	025211	254 00 1 00 027774 
  3741	025212	165742	335216
  3742	025213	00 60 41 63 63 00 
  3743	025214	77 00 00 00 00 00 
  3744	025215	76 43 55 44 07 63 
  3745	025216	00 62 45 61 65 51 
  3746	025217	62 45 44 77 00 00 
  3747	025220	76 71 00 46 57 62 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 55-1
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0126

  3748	025221	00 43 54 57 43 53 
  3749	025222	00 55 41 62 47 51 
  3750	025223	56 63 00 15 00 77 
  3751	025224	76 71 00 57 62 00 
  3752	025225	41 00 46 57 62 00 
  3753	025226	63 60 45 43 51 41 
  3754	025227	54 00 65 63 45 62 
  3755	025230	00 55 57 44 45 00 
  3756	025231	15 00 77 00 00 00 
  3757	025232	76 43 35 43 57 56 
  3758	025233	43 45 41 54 45 44 
  3759	025234	14 60 35 60 65 42 
  3760	025235	54 51 43 14 41 35 
  3761	025236	41 54 64 45 62 56 
  3762	025237	41 64 45 15 77 00 
  3763	025240	76 54 14 63 14 51 
  3764	025241	14 62 00 46 57 62 
  3765	025242	00 66 57 54 64 41 
  3766	025243	47 45 00 55 41 62 
  3767	025244	47 51 56 63 15 77 
  3768	025245	76 55 41 62 47 51 
  3769	025246	56 00 51 56 43 62 
  3770	025247	45 55 45 56 64 10 
  3771	025250	21 00 64 57 00 21 
  3772	025251	27 11 15 77 00 00 
  3773	025252	76 62 41 43 53 10 
  3774	025253	20 00 64 57 00 23 
  3775	025254	27 11 15 77 00 00 
  3776	025255	76 55 65 65 57 00 
  3777	025256	45 62 62 57 62 76 
  3778	025257	77 00 00 00 00 00 
  3779	025260	76 65 63 45 62 00 
  3780	025261	64 62 41 60 00 45 
  3781	025262	62 62 57 62 76 77 
  3782	025263	757776	757777
  3783	025264	557776	557777
  3784	025265	000002	000002
  3785	025266	017160	017400
  3786	025267	264 00 0 00 021053 
  3787	025270	420017	420000
  3788	025271	002000	010000
  3789	025272	400000	400000
  3790	025273	140000	400017
  3791	025274	140000	400000
  3792	025275	76 07 55 41 62 47 
  3793	025276	51 56 00 45 56 41 
  3794	025277	42 54 45 07 00 56 
  3795	025300	57 64 00 63 45 64 
  3796	025301	00 37 76 77 00 00 
  3797	025302	400000	000000
  3798	025303	44 07 0 00 021663 
  3799	025304	104 104 124 000 000 
  3800	025305	54 50 00 63 67 63 
  3801	025306	00 15 00 77 00 00 
  3802	025307	540000	540001
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 55-2
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0127

  3803	025310	76 44 45 66 32 64 
  3804	025311	14 53 14 44 14 66 
  3805	025312	14 60 00 15 00 77 
  3806	025313	65 56 51 64 00 03 
  3807	025314	00 15 00 77 00 00 
  3808	025315	027002	027003
  3809	025316	104 111 123 113 072 
  3810	025317	133 120 054 120 116 
  3811	025320	135 040 055 040 000 
  3812	025321	000001	025723
  3813	025322	35 07 0 00 000004 
  3814	025323	26 07 0 00 000004 
  3815	025324	17 07 0 00 000004 
  3816	025325	10 07 0 00 000004 
  3817	025326	01 07 0 00 000004 
  3818	025327	22 10 0 00 025506 
  3819	025330	32 10 0 00 025506 
  3820	025331	00 10 0 00 025506 
  3821	025332	10 10 0 00 025506 
  3822	025333	476 00 0 00 025526 
  3823	025334	254 00 0 00 022547 
  3824	025335	025674	025675
  3825	025336	10 02 0 00 025674 
  3826	025337	00 10 0 00 025674 
  3827	025340	35 07 0 00 000015 
  3828	025341	26 07 0 00 000015 
  3829	025342	17 07 0 00 000015 
  3830	025343	105 117 124 000 000 
  3831	025344	63 41 66 00 00 00 
  3832	025345	41 21 20 00 00 00 
  3833	025346	777777	777777
  3834	025347	400000	027001
  3835	025350	000201	027204
  3836	025351	000201	027407
  3837	025352	000201	027001
  3838	025353	60 54 41 43 45 00 
  3839	025354	64 41 60 45 00 51 
  3840	025355	56 00 62 45 41 44 
  3841	025356	45 62 14 00 64 71 
  3842	025357	60 45 00 43 62 00 
  3843	025360	67 50 45 56 00 62 
  3844	025361	45 41 44 71 76 77 
  3845	025362	45 56 44 00 57 46 
  3846	025363	00 64 41 60 45 77 
  3847	025364	76 60 54 41 43 45 
  3848	025365	00 56 45 70 64 00 
  3849	025366	60 41 62 64 00 51 
  3850	025367	56 00 62 45 41 44 
  3851	025370	45 62 14 00 64 71 
  3852	025371	60 45 00 43 62 00 
  3853	025372	67 50 45 56 00 62 
  3854	025373	45 41 44 71 76 77 
  3855	025374	76 44 45 43 64 41 
  3856	025375	60 45 00 45 62 62 
  3857	025376	57 62 14 00 44 64 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 55-3
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0128

  3858	025377	63 00 35 00 77 00 
  3859	025400	64 41 60 45 00 51 
  3860	025401	44 32 00 77 00 00 
  3861	025402	00 00 00 00 77 00 
  3862	025403	00 10 0 00 000004 
  3863	025404	10 10 0 00 025512 
  3864	025405	22 22 0 00 027205 
  3865	025406	22 06 0 00 000004 
  3866	025407	53 54 41 44 00 00 
  3867	025410	44 63 53 40 00 00 
  3868	025411	36 06 0 00 027205 
  3869	025412	32 07 1 00 000003 
  3870	025413	7 000 3 0 00 025035 
  3871	025414	7 000 1 0 00 000001 
  3872	025415	7 000 5 0 00 000001 
  3873	025416	604000	000000
  3874	025417	32 03 0 14 024530 
  3875	025420	00 11 0 00 000001 
  3876	025421	603 01 0 00 002000 
  3877	025422	607 01 0 00 000200 
  3878	025423	7 000 4 1 00 000001 
  3879	025424	7 000 3 0 00 000001 
  3880	025425	7 000 4 0 00 000010 
  3881	025426	10 05 0 00 000003 
  3882	025427	716200	377700
  3883	025430	404000	202200
  3884	025431	00 13 0 00 000001 
  3885	025432	7 000 3 0 00 025034 
  3886	025433	7 000 6 0 01 000000 
  3887	025434	32 07 0 00 000003 
  3888	025435	00 45 62 62 57 62 
  3889	025436	00 41 64 00 77 00 
  3890	025437	76 42 41 43 53 65 
  3891	025440	60 00 64 41 60 45 
  3892	025441	00 64 57 00 41 64 
  3893	025442	64 45 55 60 64 00 
  3894	025443	62 45 43 57 66 45 
  3895	025444	62 71 14 00 64 71 
  3896	025445	60 45 00 43 62 00 
  3897	025446	67 50 45 56 00 62 
  3898	025447	45 41 44 71 76 77 
  3899	025450	76 60 62 57 47 62 
  3900	025451	41 55 00 56 57 64 
  3901	025452	00 46 57 65 56 44 
  3902	025453	00 15 00 77 00 00 
  3903	025454	51 54 54 45 57 46 
  3904	025455	46 54 64 71 60 45 
  3905	025456	46 57 62 55 41 64 
  3906	025457	43 53 63 65 55 00 
  3907	025460	21 63 64 60 64 62 
  3908	025461	63 64 41 44 62 00 
  3909	025462	57 60 45 56 00 00 
  3910	025463	62 44 45 62 62 00 
  3911	025464	43 57 62 45 00 00 
  3912	025465	42 41 44 62 51 42 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 55-4
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0129

  3913	025466	62 51 42 45 57 46 
  3914	025467	42 54 53 56 42 62 
  3915	025470	43 71 54 56 42 62 
  3916	025502					VAR
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 56
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0130

  3917	025562	44 51 41 55 57 56 	PGNAME:	SIXBIT /DIAMON/			;PROGRAM NAME
  3918	025563				PLIST:	BLOCK	40			;PUSH LIST
  3919
  3920	025623	000000	000000		PGMGO:	0				;LOAD & GO FLAG
  3921	025624	000000	000000		TAPEPF:	0				;PRINT TAPE FLAG
  3922	025625	000000	000000		DEVFLG:	0				;CMD LIST FROM DEVICE FLAG
  3923	025626	000000	000000		DINFLG:	0				;DEVICE IN FLAG
  3924	025627	000000	000000		LPTFLG:	0				;LINE PRINTER FLAG
  3925	025630	000000	000000		LSTFLG:	0				;LISTING FLAG
  3926	025631	000000	000000		DDIRFLG:0				;DISK DIRECTORY FLAG
  3927	025632	000000	000000		DDIRF1:	0
  3928	025633	000000	000000		ALTMFLG:0				;ALTMODE FLAG
  3929	025634	000000	000000		CLKFLG:	0
  3930	025635	000000	000000		USRFLG:	0
  3931	025636	000000	000000		CNSFLG:	0
  3932	025637	000000	000000		MGNONC:	0
  3933	025640	000000	000000		MGNCNT:	0
  3934	025641	000000	000000		MGNWRD:	0
  3935	025642	000000	000000		MGNADR:	0
  3936	025643	000000	000000		RACKF:	0
  3937	025644	000000	000000		SCFLAG:	0				;PROCESSING COMMENT FLAG
  3938	025645	000000	000000		DEVTYP:	0				;DEVICE TYPE INDICATOR
  3939	025646	000000	000000		DF22F:	0				;22BIT DF10 FLAG
  3940	025647	000000	000000		SAVEP:	0				;PUSHDOWN POINTER SAVE
  3941	025650	000000	000000		SAVEIP:	0				;COMMAND LIST POINTER SAVE
  3942	025651	000000	000000		RUNCTL:	0				;RUN CONTROL
  3943	025652	000000	000000		CHRCTR:	0				;PRINT CHAR COUNTER
  3944	025653	000000	000000		SAVAC0:	0				;AC SAVE
  3945	025654	000000	000000		SAVAC1:	0				; "
  3946	025655	000000	000000		SAVAC2:	0				; "
  3947	025656	000000	000000		FCRCNT:	0				;CR FILLER COUNT
  3948	025657	000000	000000		FLFCNT:	0				;LF FILLER COUNT
  3949	025660	000000	000000		LENGTH:	0				;LENGTH OF DATA
  3950	025661	000000	000000		STRUCT:	0				;STRUCTURE
  3951	025662	000000	000000		SLUNIT:	0				;LOGICAL UNIT
  3952	025663	000000	000000		BLKCNT:	0				;BLOCK COUNT
  3953
  3954	025664	000000	000000		CLBN:	0				;CURRENT LBN
  3955	025665	000000	000000		CLUCNT:	0				;CURRENT CLUSTER COUNT
  3956	025666				TAPENO:					;CURRENT TAPE NUMBER
  3957	025666	000000	000000		TTYPE:	0				;TEMP TYPE
  3958	025667				DIRSRC:					;SEARCH TAPE NUMBER
  3959	025667	000000	000000		TUNIT:	0				;TEMP UNIT
  3960	025670				DOSRCH:					;PRESENTLY DOING SEARCH FLAG
  3961	025670	000000	000000		CTYPE:	0				;CURRENT TYPE
  3962	025671				SRCHF:					;DECTAPE SEARCH FLAG
  3963	025671	000000	000000		CUNIT:	0				;CURRENT UNIT
  3964	025672	000000	000000		DEVICE:	0				;DISK NAME
  3965	025673	000000	000000		PPN:	0				;PROJ-PROG NO.
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 57
DEVLDR	MAC	23-Apr-80 13:29		STORAGE ASSIGNMENTS                                                                SEQ 0131

  3966	025674				SELSTR:					;COMMAND SELECTION STORE
  3967	025674	000000	000000		LDCNT:	0				;A10 LOAD COUNT
  3968	025675	000000	000000		LDADR:	0				;A10 LOAD ADDRESS
  3969	025676				LDATA:	BLOCK ^D34-16			;A10 DATA STORAGE
  3970	025722				ACSAVE:	BLOCK	16
  3971	025740	000000	000000		LDATAE:	0				;A10 END OF DATA STORAGE
  3972	025741	000000	000000			0
  3973
  3974	025742	56 41 55 45 00 00 	LDNAME:	SIXBIT/NAME/
  3975	025743	45 70 64 00 00 00 		SIXBIT/EXT/
  3976	025744	000000	000000			0
  3977	025745	000000	000000			0
  3978
  3979	025746	000000	000013		LDBLK:	13
  3980	025747	44 63 53 00 00 00 		SIXBIT/DSK/
  3981	025750	000000	025751			LDBUF
  3982	025751				LDBUF:	BLOCK	3
  3983
  3984	025754	000000	000000		INLIST:	0
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 58
DEVLDR	MAC	23-Apr-80 13:29		SPECIAL STARTUP MESSAGES AND INITIALIZATION                                        SEQ 0132

  3985					SUBTTL	SPECIAL STARTUP MESSAGES AND INITIALIZATION
  3986
  3987					;*HEADER
  3988
  3989						DEFINE	PTITLE	(MCNVER,DECVER) <
  3990						ASCIZ	%
  3991					* DIAMON [DDQDC] - DECSYSTEM DIAGNOSTIC MONITOR - VER MCNVER'.'DECVER *
  3992					%>
  3993
  3994	025755				HEADER:	PTITLE	\MCNVER,\DECVER^
  3995						ASCIZ	%
  3996	025755	015 012 052 040 104 	* DIAMON [DDQDC] - DECSYSTEM DIAGNOSTIC MONITOR - VER 0.15 *
  3997	025756	111 101 115 117 116 
  3998	025757	040 133 104 104 121 
  3999	025760	104 103 135 040 055 
  4000	025761	040 104 105 103 123 
  4001	025762	131 123 124 105 115 
  4002	025763	040 104 111 101 107 
  4003	025764	116 117 123 124 111 
  4004	025765	103 040 115 117 116 
  4005	025766	111 124 117 122 040 
  4006	025767	055 040 126 105 122 
  4007	025770	040 060 056 061 065 
  4008	025771	040 052 015 012 000 	%^
  4009
  4010					;*HELP
  4011
  4012	025772				HELP:	ASCIZ	%
  4013	025772	015 012 116 117 122 	NORMAL START = 20000
  4014	025773	115 101 114 040 123 
  4015	025774	124 101 122 124 040 
  4016	025775	075 040 062 060 060 
  4017	025776	060 060 015 012 122 	RESTART/ABORT = 20001
  4018	025777	105 123 124 101 122 
  4019	026000	124 057 101 102 117 
  4020	026001	122 124 040 075 040 
  4021	026002	062 060 060 060 061 
  4022	026003	015 012 120 122 111 	PRINT TEST TITLE = 20002
  4023	026004	116 124 040 124 105 
  4024	026005	123 124 040 124 111 
  4025	026006	124 114 105 040 075 
  4026	026007	040 062 060 060 060 
  4027	026010	062 015 012 122 105 	RESTART CURR TEST = 20003
  4028	026011	123 124 101 122 124 
  4029	026012	040 103 125 122 122 
  4030	026013	040 124 105 123 124 
  4031	026014	040 075 040 062 060 
  4032	026015	060 060 063 015 012 
  4033	026016	015 012 104 105 126 	DEVICES;
  4034	026017	111 103 105 123 073 
  4035	026020	015 012 124 075 120 	T=PAPER TAPE, K=KLDCP, D=DTA, V=11DTA, P=DISK PACK
  4036	026021	101 120 105 122 040 
  4037	026022	124 101 120 105 054 
  4038	026023	040 113 075 113 114 
  4039	026024	104 103 120 054 040 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 58-1
DEVLDR	MAC	23-Apr-80 13:29		SPECIAL STARTUP MESSAGES AND INITIALIZATION                                        SEQ 0133

  4040	026025	104 075 104 124 101 
  4041	026026	054 040 126 075 061 
  4042	026027	061 104 124 101 054 
  4043	026030	040 120 075 104 111 
  4044	026031	123 113 040 120 101 
  4045	026032	103 113 015 012 015 
  4046	026033	012 103 117 115 115 	COMMANDS;
  4047	026034	101 116 104 123 073 
  4048	026035	015 012 123 124 104 	STD=START DIAGNOSTIC
  4049	026036	075 123 124 101 122 
  4050	026037	124 040 104 111 101 
  4051	026040	107 116 117 123 124 
  4052	026041	111 103 015 012 123 	STM=REINITIALIZE START
  4053	026042	124 115 075 122 105 
  4054	026043	111 116 111 124 111 
  4055	026044	101 114 111 132 105 
  4056	026045	040 123 124 101 122 
  4057	026046	124 015 012 123 124 	STL=START LOADER
  4058	026047	114 075 123 124 101 
  4059	026050	122 124 040 114 117 
  4060	026051	101 104 105 122 015 
  4061	026052	012 123 124 101 122 	START=START DIAGNOSTIC
  4062	026053	124 075 123 124 101 
  4063	026054	122 124 040 104 111 
  4064	026055	101 107 116 117 123 
  4065	026056	124 111 103 015 012 	SFSTRT=SPECIAL FEATURE START
  4066	026057	123 106 123 124 122 
  4067	026060	124 075 123 120 105 
  4068	026061	103 111 101 114 040 
  4069	026062	106 105 101 124 125 
  4070	026063	122 105 040 123 124 
  4071	026064	101 122 124 015 012 	PFSTRT=POWER FAIL START
  4072	026065	120 106 123 124 122 
  4073	026066	124 075 120 117 127 
  4074	026067	105 122 040 106 101 
  4075	026070	111 114 040 123 124 
  4076	026071	101 122 124 015 012 	REE=REENTER
  4077	026072	122 105 105 075 122 
  4078	026073	105 105 116 124 105 
  4079	026074	122 015 012 104 104 	DDT=DDT
  4080	026075	124 075 104 104 124 
  4081	026076	015 012 123 124 101 	START1=SPECIAL START 1
  4082	026077	122 124 061 075 123 
  4083	026100	120 105 103 111 101 
  4084	026101	114 040 123 124 101 
  4085	026102	122 124 040 061 015 
  4086	026103	012 123 124 101 122 	START2=SPECIAL START 2
  4087	026104	124 062 075 123 120 
  4088	026105	105 103 111 101 114 
  4089	026106	040 123 124 101 122 
  4090	026107	124 040 062 015 012 	START3=SPECIAL START 3
  4091	026110	123 124 101 122 124 
  4092	026111	063 075 123 120 105 
  4093	026112	103 111 101 114 040 
  4094	026113	123 124 101 122 124 
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 58-2
DEVLDR	MAC	23-Apr-80 13:29		SPECIAL STARTUP MESSAGES AND INITIALIZATION                                        SEQ 0134

  4095	026114	040 063 015 012 123 	START4=SPECIAL START 4
  4096	026115	124 101 122 124 064 
  4097	026116	075 123 120 105 103 
  4098	026117	111 101 114 040 123 
  4099	026120	124 101 122 124 040 
  4100	026121	064 015 012 123 124 	START5=SPECIAL START 5
  4101	026122	101 122 124 065 075 
  4102	026123	123 120 105 103 111 
  4103	026124	101 114 040 123 124 
  4104	026125	101 122 124 040 065 
  4105
  4106	026126	015 012 015 012 122 	R=RESELECT, X=XPN, I=INTERNAL, T=TTY, D=DEVICE,
  4107	026127	075 122 105 123 105 
  4108	026130	114 105 103 124 054 
  4109	026131	040 130 075 130 120 
  4110	026132	116 054 040 111 075 
  4111	026133	111 116 124 105 122 
  4112	026134	116 101 114 054 040 
  4113	026135	124 075 124 124 131 
  4114	026136	054 040 104 075 104 
  4115	026137	105 126 111 103 105 
  4116	026140	054 015 012 123 075 	S=SINGLE, F=DIR, L=LIST, G=GO
  4117	026141	123 111 116 107 114 
  4118	026142	105 054 040 106 075 
  4119	026143	104 111 122 054 040 
  4120	026144	114 075 114 111 123 
  4121	026145	124 054 040 107 075 
  4122	026146	107 117 015 012 000 	%
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 59
DEVLDR	MAC	23-Apr-80 13:29		SPECIAL STARTUP MESSAGES AND INITIALIZATION                                        SEQ 0135

  4123					;*TYBAUD - COMPUTE CR & LF FILLERS REQUIRED FOR DIFFERENT BAUD RATES
  4124
  4125	026147	332 00 0 00 020006 	TYBAUD:	SKIPE	USER
  4126	026150	263 17 0 00 000000 		RTN
  4127	026151	201 01 0 00 000060 		MOVEI	1,60
  4128	026152	7 000 20 0 00 001000 		CONO	APR,1000		;CLEAR AND WAIT FOR CLOCK
  4129	026153	7 000 34 0 00 001000 		CONSO	APR,1000
  4130	026154	254 00 0 00 026153 		JRST	.-1
  4131	026155	7 000 20 0 00 001000 		CONO	APR,1000
  4132	026156	403 00 0 00 000002 		SETZB	0,2
  4133
  4134	026157	7 120 14 0 00 000002 	TYBD1:	DATAO	TTY,2			;COUNT # OF CHARS SENT IN 1 SEC
  4135	026160	350 00 0 00 000000 		AOS
  4136	026161	7 120 34 0 00 000010 	TYBD2:	CONSO	TTY,10
  4137	026162	254 00 0 00 026164 		JRST	TYBD3
  4138	026163	254 00 0 00 026157 		JRST	TYBD1			;TTY DONE, SEND ANOTHER CHAR
  4139	026164	7 000 34 0 00 001000 	TYBD3:	CONSO	APR,1000		;HAS CLOCK TICKED ?
  4140	026165	254 00 0 00 026161 		JRST	TYBD2			;NO
  4141	026166	7 000 20 0 00 001000 		CONO	APR,1000		;YES, COUNT DOWN JIFFIES
  4142	026167	365 01 0 00 026161 		SOJGE	1,TYBD2
  4143
  4144	026170	7 120 34 0 00 000010 	TYBD4:	CONSO	TTY,10			;WAIT TILL TTY GETS DONE
  4145	026171	254 00 0 00 026170 		JRST	.-1
  4146	026172	201 01 0 00 000005 		MOVEI	1,5			;5 = 2400 BAUD
  4147	026173	307 00 0 00 000172 		CAIG	0,^D122
  4148	026174	370 00 0 00 000001 		SOS	1			;4 = 1200 BAUD
  4149	026175	307 00 0 00 000076 		CAIG	0,^D62
  4150	026176	370 00 0 00 000001 		SOS	1			;3 = 600 BAUD
  4151	026177	307 00 0 00 000040 		CAIG	0,^D32
  4152	026200	370 00 0 00 000001 		SOS	1			;2 = 300 BAUD
  4153	026201	307 00 0 00 000020 		CAIG	0,^D16
  4154	026202	370 00 0 00 000001 		SOS	1			;1 = 150 BAUD
  4155	026203	307 00 0 00 000014 		CAIG	0,^D12
  4156	026204	370 00 0 00 000001 		SOS	1			;0 = 110 BAUD
  4157	026205	202 01 0 00 020016 		MOVEM	1,TTYSPD		;SAVE
  4158
  4159	026206	402 00 0 00 000002 	TYBD5:	SETZM	2
  4160	026207	306 01 0 00 000005 		CAIN	1,5
  4161	026210	201 02 0 00 000004 		MOVEI	2,4			;4 FILLERS @ 2400
  4162	026211	306 01 0 00 000004 		CAIN	1,4
  4163	026212	201 02 0 00 000002 		MOVEI	2,2			;2 FILLERS @ 1200
  4164	026213	306 01 0 00 000003 		CAIN	1,3
  4165	026214	201 02 0 00 000001 		MOVEI	2,1			;1 FILLER @ 600
  4166	026215	202 02 0 00 025656 		MOVEM	2,FCRCNT		;FOR CR
  4167	026216	202 02 0 00 025657 		MOVEM	2,FLFCNT		;FOR LF
  4168	026217	302 01 0 00 000002 		CAIE	1,2			;IF 300 BAUD
  4169	026220	263 17 0 00 000000 		RTN
  4170	026221	201 02 0 00 000011 		MOVEI	2,^D9			;USE 9 FILLERS FOR CR
  4171	026222	202 02 0 00 025656 		MOVEM	2,FCRCNT		;IN CASE LA30
  4172	026223	263 17 0 00 000000 		RTN
DIAMON	[DDQDC] DECSYSTEM DIAGNOSTIC MONITOR, VERSION 0.15 	MACRO %53(1026) 13:50 23-Apr-80 Page 60
DEVLDR	MAC	23-Apr-80 13:29		SPECIAL STARTUP MESSAGES AND INITIALIZATION                                        SEQ 0136

  4173
  4174		254000	020004			END	JRST	ONETIM

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 026224
CPU TIME USED 00:10.973

22P CORE USED

A	   325	   458	   462	   474	   760	  2236	  2240	  2241	  2242	  2243	  2249	  2252	  2414#	  2435
	  2439	  2470	  2471	  2472	  2473	  2481	  2482	  2485	  2486	  2497	  2503	  2504	  2506	  2572     SEQ 0137
	  2587	  2591	  2594	  2595	  2600	  2601	  2663	  2664	  2665	  2666	  2667	  2668	  2683	  2688
	  2699	  2706	  2707	  2730	  2734	  2789	  2918#	  2982	  2983	  2986	  2987	  2988	  2989	  2994
	  3018	  3020	  3031	  3032	  3033	  3036	  3037	  3040	  3041	  3042	  3045	  3046	  3054	  3061
	  3062	  3065	  3088	  3089	  3091	  3092	  3098	  3103	  3104	  3105	  3119	  3123	  3127	  3129
	  3130	  3135	  3136	  3137	  3140	  3145	  3151	  3156	  3159	  3163	  3164	  3173	  3176	  3178
	  3180	  3201	  3222	  3223	  3224	  3240	  3242	  3247	  3248	  3250	  3251	  3255	  3275	  3277
	  3278	  3284	  3286	  3290	  3293	  3294	  3309	  3310	  3311	  3316	  3319	  3321	  3323	  3325
	  3329	  3333	  3390	  3394	  3396	  3397	  3399	  3400	  3402	  3408	  3409	  3410	  3422	  3434
	  3436	  3437	  3439	  3445	  3446	  3450	  3452	  3462	  3464	  3465	  3470	  3473	  3489	  3490
	  3494	  3495	  3497	  3499	  3500	  3504	  3506	  3510	  3512	  3525	  3527	  3528	  3530	  3532
	  3533	  3535	  3538	  3539	  3540	  3542	  3554	  3568	  3571	  3573	  3575	  3577	  3582	  3583
	  3585	  3586	  3595	  3597	  3598	  3657	  3660	  3662	  3664	  3667	  3669	  3671	  3673	  3675
	  3677	  3679	  3681	  3683	  3685	  3687	  3689	  3691
A10FLG	  1753#	  1753	  1758	  2145	  2233	  2315	  2346	  2542	  2662
ACS0	  1094#	  1094
ACS1	  1095#	  1095	  1108	  1112	  1120
ACSAVE	  1795	  1796	  1797	  1818	  1820	  1835	  1836	  1837	  3970#
ALTMFL	   373	   375	  1507	  3015	  3928#
APR	   247	   746	   890	   938	  1018	  1037	  1525	  4128	  4129	  4131	  4139	  4141
B	   469	  2415#	  2438	  2442	  2460	  2461	  2462	  2463	  2465	  2538	  2540	  2622	  2623	  2624
	  2625	  2627	  2831	  2832	  2919#	  3069	  3073	  3156	  3157	  3159	  3161	  3174	  3175	  3176
	  3177	  3187	  3188	  3206	  3209	  3211	  3216	  3217	  3220	  3221	  3241	  3243	  3256	  3315
	  3329	  3332	  3335	  3436	  3442	  3443	  3492	  3493	  3503	  3533	  3543	  3544	  3548	  3549
	  3550	  3555	  3556	  3557	  3561	  3562	  3572	  3574	  3576	  3578	  3594
BLKCNT	  3102	  3196	  3224	  3952#
BLKCOD	  2896#	  3105	  3293
BLKERR	  2464	  2565#	  2787
BLKNO	  2424#	  2453	  2454	  2528	  2569	  2674	  2725	  2778	  2779	  2780	  2781	  2783	  2784	  2785
	  2786	  2992	  2993
BLKSLF	  2897#
BUFS	  3390#	  3390	  3391	  3557
BYTSAV	  1931#	  1931	  1933	  1934	  1935	  1936
C	  1667	  1669	  1670	  1672	  1673	  1676	  1677	  1680	  1681	  1683	  1685	  1689	  1701	  1703
	  1707	  2416#	  2436	  2441	  2442	  2514	  2517	  2519	  2549	  2554	  2920#	  3204	  3207	  3218
	  3255	  3256	  3273	  3274	  3275	  3312	  3319	  3323	  3342	  3405	  3406	  3437	  3439	  3440
	  3450	  3465	  3470	  3472	  3473	  3482	  3483	  3485	  3487	  3493	  3495	  3558	  3587	  3589
	  3590	  3597	  3598	  3599	  3600
CHAIN	   182#	   699
CHNCMD	    75#	  3397	  3398	  3399	  3410
CHRCTR	  1249	  1259	  1262	  1267	  1269	  1334	  1345	  1427	  1446	  2600	  2706	  3137	  3943#
CLBN	  3195	  3225	  3954#
CLKFLG	   801	   934	  3929#
CLRATN	  3587	  3612#
CLRCOR	  2058	  2181	  2207#
CLRCR1	  2208	  2220#
CLUCNT	  3101	  3198	  3217	  3955#
CMDADR	   342	   351	   424#
CMDEX	   339	   342#
CMDEX1	   348	   351#
CMDHLP	   424	   487#
CMDLP	   336#	   340
CMDLP1	   337	   345#	   349
CMDLST	   336	   338	   345	   347	   398#                                                                            SEQ 0138
CMNCMD	   509#	   523
CMNPNT	  2115	  2124#	  2130	  2368
CNSFLG	   826	   837	   970	   972	  3931#
CNTLOF	  1276	  1303#	  1303	  1365	  1382
CODHOM	  2894#	  3294
CODRIB	  2895#
CONSW	   204#	  1456	  1530
CP2	  1104#	  1134
CPI	  1103	  1130#
CPOPJ	   475#	  2529	  2784	  2993	  3315	  3503	  3594
CPOPJ1	   393	   533#	   539	   554	  1027	  1476	  1907	  1915	  1937	  2312	  2329	  2539	  2543	  2768
	  2772	  2803	  2970	  2998	  3014	  3075	  3082	  3108	  3162	  3169	  3179	  3185	  3228	  3245
	  3297	  3327	  3449	  3454	  3602
CRLF1	   324	   451	   464	   675	   759	   767	  1298#	  1511	  1658	  2350	  2580	  2589	  2605	  2714
	  3112	  3132	  3623
CRRTN	   556	   629#
CRRTN1	   643#
CTYPE	  3272	  3404	  3411	  3961#
CUNIT	  3271	  3579	  3963#
CXPND	   501	   780#
CXPND1	   784	   787#
D11BLK	  2783#	  2783	  2785	  2793
D11C1	  2740#	  2740	  2759	  2767	  2771
D11CH1	  2760	  2770#
D11CHR	  1887	  1911	  2759#
D11CHW	  2765#	  2765	  2770
D11PNT	  2800#	  2800	  2802
D11SWP	  2794	  2805#
D11W	  2741#	  2741	  2775	  2797
D11WD	  2762	  2775#
D11WD1	  2776	  2802#
D11WD2	  2778#
DATAOW	  1663	  3312	  3578	  3589	  3605	  3606	  3607	  3608	  3609	  3614#
DB	  1105	  1136#
DB1	  1137	  1140#
DBUF	  1579#	  1581	  2470	  2473	  2739	  2778	  2789	  2799	  2806	  2808	  2809	  2987	  2989	  2992
	  2994	  3187	  3286	  3610
DBUFP	  2960	  3151	  3610#
DDIRF1	  3077	  3152	  3154	  3927#
DDIRFL	  3057	  3114	  3926#
DDIRP1	  3122	  3133	  3139#
DDIRP2	  3153	  3187#
DDIRPN	  3119#	  3155
DDT	   109#
DDTLNK	    71#
DECVER	     3#	    10	    36	  3994
DEVCM1	   372	   519#
DEVCM2	   525#	  2945
DEVCMD	   427	   516#
DEVFLG	   516	   519	  2944	  3922#
DEVICE	  1587	  1687	  3031	  3037	  3041	  3045	  3088	  3092	  3964#
DEVRD	   536#	  1484
DEVSEL	   272	   395	  1586#	  1599	  1610	  1613                                                                     SEQ 0139
DEVTYP	  1594	  1615	  1618	  1653	  1660	  1731	  1772	  1845	  2646	  2961	  2977	  3004	  3938#
DEVUSR	  1593	  1618#
DF22B	  2853#	  3325
DF22F	  3307	  3326	  3395	  3433	  3453	  3939#
DF22RH	  2876#	  3452
DH.RD	  2874#	  3488
DH.WRT	  2875#
DHX	  2858#	  3364
DHX2	  2859#	  3365
DHX3	  2860#	  3366
DHX4	  2861#	  3367
DHX5	  2862#	  3368
DHX6	  2863#	  3369
DHXINI	  3364	  3365	  3366	  3367	  3368	  3369	  3459#
DHXRED	  3344	  3345	  3346	  3347	  3348	  3349	  3350	  3351	  3352	  3353	  3354	  3355	  3356	  3357
	  3482#
DHYINI	  3431#	  3460
DHZ	  2865#	  3277	  3370
DHZ2	  2866#	  3371
DHZ3	  2867#	  3372
DHZ4	  2868#	  3373
DHZ5	  2869#	  3374
DHZ6	  2870#	  3375
DHZ7	  2871#	  3376
DHZ8	  2872#	  3278	  3377
DHZINI	  3370	  3371	  3372	  3373	  3374	  3375	  3376	  3377	  3458#
DIAGLD	   297	   304	   309	   313	   370	   701	  1741	  1750#
DIAGMN	    90#	   949
DIAGNO	    89#	   439	  2223
DIAGPP	  3052	  3618#
DIGIT	    54#	   547	   590	   596	   597	   636	   638	   639	   869	  1461	  1472	  1475
DIGIT1	    56#	   595	   596	   640	   641
DIGIT2	    57#	   595	   640
DIGITA	    55#	   588	   589	  1461	  1470	  1471
DINFLG	   520	  1483	  3923#
DIRECT	   429	  1721#
DIRSRC	  2431	  2481	  2659	  3958#
DOSRCH	  2432	  2484	  2547	  2661	  2676	  3960#
DPC	  2854#	  3378
DPC2	  2855#	  3379
DPCCNV	  3566	  3571#
DPCINI	  3305#	  3378	  3379
DPCOPR	  3569	  3586#
DPCRED	  3358	  3359	  3566#
DPCWAT	  3593#
DPNTR	    49#	   522	   536
DSKBLK	  2990	  3099	  3291	  3342#
DSKDIR	  1732	  3112#
DSKLD	  1775	  1782	  2932#
DTABLK	  2573	  2790	  2995#
DTALD	  1773	  2429#	  2490
DTBLKC	  2603	  2617#	  2629
DTC	  1846	  2434	  2498	  2503	  2515	  2519	  2526	  2533	  2550	  2565	  2571	  2575	  2647	  2660     SEQ 0140
	  2997	  3005
DTDREQ	  2400#	  2501	  2524
DTDSEL	  2399#	  2571
DTE	   161#	  1553
DTECLR	  1562#	  1730	  2638	  3017
DTEINT	   260	   750	  1535#
DTEND	  2406#	  2499	  2520
DTERR	  2408#	  2499	  2522
DTFSTP	  2401#
DTFWD	  2396#	  2515	  2517	  2533
DTJBDN	  2402#	  2509
DTRALL	  2403#
DTRBN	  2404#	  2519
DTREAD	  2405#	  2498
DTREV	  2407#	  2496	  2505	  2518	  2530	  2534
DTRVS	  2397#	  2515	  2533
DTS	  2499	  2501	  2508	  2509	  2520	  2522	  2524	  2549
DTSEL	  2398#	  2519	  2571
DTSRCH	  1631	  1645#
DTSTOP	  1846	  2395#	  2434	  2550	  2565	  2575	  2647	  2660	  2997	  3005
DTUNI1	  1632#
DTUNIT	  1603	  1622	  1625#	  1634
ECCPOS	  3539#	  3539	  3555
ERR	  2469	  2500	  2523	  2547#	  2574
ERR1	  2556#	  3633	  3636
ERR10	  2214	  2219	  2337	  3683#
ERR11	  3074	  3081	  3685#
ERR12	  3146	  3687#
ERR13	  2566	  3403	  3689#
ERR14	  3584	  3691#
ERR2	  2150	  2949	  2953	  3667#
ERR3	  3669#
ERR4	  3671#
ERR5	  3673#
ERR6	  2161	  2165	  3675#
ERR7	  2172	  2174	  3008	  3677#
ERR8	  2284	  3679#
ERR9	  2324	  3681#
ERROR	  3621#	  3659	  3668	  3670	  3672	  3674	  3676	  3678	  3680	  3682	  3684	  3686	  3688	  3690
	  3692
EX	   502	   674#
EX1	   684#	   756
EX2	   698#
EX3	   706#
EX4	   367	   687	   758	   772#
EX5	   678#	   768
EXBAD	   657	   663#	   719
EXC	  1099	  1108#	  1133	  1138
EXC1	  1112#	  1155
EXC2	  1118	  1122#
EXC3	  1119	  1123#
EXC4	  1114	  1125#
EXC5	  1116#	  1129                                                                                                     SEQ 0141
EXEXEC	   722#
EXNEW	   723	   726	   729#
EXNOE	   654#	   724
EXNOU	   659#	   727
EXT	  2923#	  3053	  3060	  3072	  3073	  3160	  3161
EXTCK	  2447	  2538#	  3080	  3167
EXUSR	   721	   725#
F	   470	   471	   472	  1664	  1667	  1669	  1692	  1695	  1697	  1699	  1705	  1709	  2413#	  2496
	  2505	  2518	  2530	  2534	  2570	  2596	  2693	  2917#	  2934	  3034	  3084	  3106	  3115	  3226
	  3270	  3283	  3284	  3322	  3581	  3599
FBSAV	  1787#	  1787	  1924
FCRCNT	  1304	  3947#	  4166	  4171
FDIR	  1733	  2580#
FILD1	  2599#	  2612
FILDL	  2591#	  2606
FILDN	  2592	  2606#
FILLCR	  1282	  1303#
FILLLF	  1284	  1307#
FILLX	  1305	  1308#	  1313
FILN	  2421#	  2437	  2438	  2439	  2443	  2444	  2451	  2465
FLFCNT	  1307	  3948#	  4167
FLNAM1	   572#
FLNAM2	   568	   588#
FLNAME	   330	   360	   510	   543#	   584	   603	   621	   631
FLNMLP	   552#	   558	   567	   580	   591	   598	   608
FNDUL1	  3235#	  3252
FNDUL2	  3236#	  3249
FNDUNI	  3048	  3182	  3212	  3234#
FNDUNX	  3239	  3244	  3247#
FNFND	  2444	  2451#
FRD36	  1822	  1852#
FRD8	  1824	  1898#
FRDLNK	    69#	   281
FRDTYP	  1817#	  1817	  1821	  1823
FREAD	   280	  1817#
FREAD1	  1831	  1835#	  1858	  1900
FREAD2	  1829	  1845#	  1853	  1856	  1899
FREAD3	  1828#	  2119	  2381
FSELEC	   278	  1738#
FSELF	  1795#
FSELNF	  1811#
FSELNK	    68#	   279
FULL	   649#
G8BY1	  1931#
G8BY2	  1926	  1933#
G8BYT	  1898	  1917#
GJ%OLD	   118#	   226
GJ%SHT	   119#	   226
GTVDWD	  2680	  2686	  2697	  2711	  2738	  2748#
HBUF	  1583#	  3054	  3062	  3066	  3174	  3175	  3178	  3204	  3207	  3209	  3218	  3220	  3222	  3240
	  3241	  3290	  3293	  3295
HEADER	   270	  3994#
HELP	   489	   644	  4012#                                                                                            SEQ 0142
HLPCLR	   487#	   487	   645
HOM1	  3290#	  3302
HOM2	  3292	  3296	  3299#
HOMBK1	  2892#	  3285
HOMBK2	  2893#	  3299	  3301
HOMBPC	  2910#	  3220	  3222
HOMBSC	  2905#	  3062	  3066	  3174
HOMCKP	  2908#
HOMCLP	  2909#	  3207	  3218
HOMCNP	  2907#	  3204
HOMCRS	  2912#
HOME	  3238	  3270#
HOMLUN	  2904#	  3178	  3209	  3241
HOMMFD	  2913#	  3054
HOMREF	  2911#	  3295
HOMSCU	  2906#	  3175
HOMSNM	  2903#	  3240
IMGINM	   173#	   891	  1038
IMGNOF	   170#	  1018
IMGNON	   171#	  1056
INLEND	    44#	   646
INLIST	   359	   362	   379	   381	   382	   509	   679	  3984#
IOCLR	   149#	   247	   746
IOCNSO	  3330	  3334	  3598#
IOCNSZ	  3317	  3513	  3597#
IODTI	  3435	  3470#	  3505	  3526	  3531	  3541
IODTO	  3447	  3473#	  3491	  3496	  3501
IOWAIT	  3314	  3329#	  3502	  3593
IOXCT	  3313	  3320	  3324	  3451	  3466	  3471	  3474	  3486	  3588	  3599#
IP	    58#	   295	   302	   307	   311	   323	   332	   334	   359	   362	   363	   366	   368	   452
	   458	   462	   509	   634	   635	   639	   641	   642	   643	   644	   646	   664	   679	   684
	   686	   688	   692	   706	   707	   716	   748	   754	   755	  1740	  1756	  2236	  2240	  2293
	  2295	  2348	  2349	  2435	  2436	  2663	  2665	  3059	  3060	  3119	  3121	  3123	  3127	  3140
ISPDOF	   172#	  1018
ISPDON	   174#	   935
ITERAT	   202#	   714	   926	   943	   959	   965	  1065	  1166
ITRCNT	    94#	   944	   966
JOBFF	    66#	  2177
JOBFFW	  2056	  2179#	  2179	  2215	  2225
JOBREL	    67#	   215	  2209	  2338	  3021	  3024
JOBSA	    65#	  2168
JOBSAW	  2053	  2170#	  2170	  2171	  2221
JRSTX	  1101	  1146#
JRSTX1	  1147	  1152#
K	  2928#	  3236	  3272	  3274	  3404	  3405	  3411	  3412	  3413	  3422
KAIFLG	   206#	   250	   258	   783	  1163
KLDCP8	  1918	  2268#
KLDCPF	  1589#	  1589	  1614	  1714	  1723	  1763	  1917	  2965
KLDCPL	  1764	  2233#
KLDCPS	  1601	  1612#
KLDCPW	  2259#	  2966
KLDDT	   100#	  1402
KLFLG	   205#	   249	   254	   259	   268	   300	   749	   782	   793	   841	   937	   954	  1000	  1016     SEQ 0143
	  1113	  1162	  1274	  1320	  1386	  1523	  1564	  1612	  1774	  3281
L.CMA	  1692	  1695	  1699	  1709	  2882#
L.LBK	  1695	  1697	  1705	  2881#
LBN	  2929#	  3065	  3066	  3145	  3173	  3177	  3181	  3184	  3195	  3221	  3225	  3285	  3299	  3301
	  3402
LBNSEL	  3096	  3173#
LD8D11	  1909#	  1922
LD8PT	  1902#	  1920
LDA10	  1942#	  2146
LDACD1	  1864	  1885#
LDACH1	  1866	  1875#
LDACH2	  1881#	  1891	  2390
LDACHR	   526	  1828	  1861#	  1881	  1946	  1961	  1979	  2096	  2099	  2102	  2124	  2640
LDACPT	  1862	  2384#
LDADR	  2043	  2063	  3968#
LDAEOF	  1871	  1888	  1893#	  1912
LDATA	  2054	  2066	  3969#
LDATAE	  1972	  2033	  3971#
LDBF	  1571#	  1573	  2285	  2288	  2291
LDBF1	  1577#	  1579	  2287	  2290
LDBF2	  1581#	  1583	  2289	  2292
LDBLK	  2283	  3979#
LDBUF	  2281	  2282	  2286	  2319	  2327	  2328	  3981	  3982#
LDCHN	    61#	  2283	  2311	  2321	  2323	  3003
LDCMA	  1989	  2021#
LDCMNT	  1833	  1949	  2095#
LDCNT	  1970	  1971	  1974	  2030	  2041	  2045	  3967#
LDCNV	  1977#	  2022
LDCNV1	  1979#	  1983	  2001	  2009	  2015
LDCNV2	  2014#	  2019
LDCNV3	  1992	  2017#
LDDIR	  1641	  2489	  2569#	  2675
LDDONE	  2064	  2091#
LDEOL	  1986	  2025#
LDEVIC	  1754#	  1754	  1798	  1811	  2251	  2280	  2344	  2430	  2658	  2933
LDEXCB	   166#	  1002	  1019	  1115
LDLNK	    70#
LDNAME	  2294	  2310	  2311	  2313	  3974#
LDOCTF	  1943#	  1943	  1968	  1991	  2027
LDPROC	  1943#	  2052	  2059	  2087	  2120	  2382	  3646
LDTBLK	  1951#	  1951	  1955	  2062	  2069	  2081	  2084
LDTEN	  2028	  2041#
LDTEN1	  2048	  2062#
LDTEN2	  2068#	  2086
LDTENZ	  2052#
LDUSRB	   167#	  1002	  1019	  1115
LDZBLK	  1944#	  1944	  1959	  2047
LENGTH	  2980	  2983	  3104	  3949#
LERR2	  1947	  1962	  1980	  2097	  2100	  2103	  2125	  3657#	  3661	  3663	  3665
LERR3	  1958	  3660#
LERR4	  1967	  3662#
LERR5	  2037	  3664#
LET	    50#	   388	   392	   545	   568	   597                                                                     SEQ 0144
LHSWS	   677	  1451#	  1455
LIST1	   430	  1714#
LLDUSB	   162#	  1026	  1030	  1128
LOFMSG	  1336	  1369#
LOOK	  2935	  3031#	  3116
LOOK1	  3035	  3038	  3045#
LOOK2	  3040#	  3090	  3093
LOOK3	  3051#
LOOK4	  3061#	  3078
LOOK5	  3058	  3077#
LOOK6	  3072	  3080#
LOOK7	  3085	  3088#
LOWCMD	  2877#	  3400	  3401	  3500	  3614
LPT	  1319	  1322
LPTFLG	   500	  1270	  1335	  1344	  1729	  2637	  3924#
LPTOFL	  1325	  1330#
LPTSW	   180#	  1728	  2636
LSTFLG	  1716	  2941	  3925#
LSTPN1	  2640#	  2643
LSTPNT	  2633#	  2942
LUP	  2438#	  2443
LUP1	  2443#	  2448
LUP2	  2444#	  2449
LUP3	  2441	  2447#
M	  1786	  1865	  1867	  1879	  1880	  1924	  1925	  1926	  1936	  2420#	  2927#	  2950	  2954	  2955
MARGIN	    99#	   936	   938
MCNVER	     4#	    10	    36	  3994
MGNADR	   883	   924	  1055	  1058	  1062	  1087	  3935#
MGNCNT	   922	  1051	  1063	  1074	  1084	  3933#
MGNFLG	   857#	   857	   885	   929
MGNGO	  1074#	  1079
MGNGO1	  1084#
MGNGO2	  1071#	  1083
MGNINC	   861#	   861	  1050
MGNITR	   927#	   927	   940	  1089
MGNMSG	   887	   896#
MGNONC	  1041	  1043	  3932#
MGNWRD	   921	   933	  1048	  1057	  1072	  1080	  3934#
MINUS	   564	   602#
MNLUP	  2454#	  2466
MODLNK	    72#
MONCTL	    95#	   730	  1169
MONFLG	    97#	   967
MONTEN	    98#	  3009
MRGIN	  1022	  1039	  1047#	  1075	  1088	  1091
MRGNCK	   930	  1037#
MRGNF	   925#	   925	   939	   956	  1020	  1047
MUUO	   156#	  1096	  1100	  1109	  1140
MUUOER	   910#	   990	  1150
MUUOH	   995	  1094#
MUUOPC	   157#	  1111	  1116	  1143	  1153
N	  1666	  1679	  1680	  1691	  1698	  1700	  2419#	  2495	  2507	  2526	  2527	  2528	  2529	  2531
	  2532	  2590	  2591	  2594	  2606	  2627	  2805	  2806	  2807	  2809	  2810	  2926#	  3237	  3271     SEQ 0145
	  3305	  3308	  3431	  3434	  3445	  3488	  3490	  3494	  3497	  3504	  3525	  3530	  3540	  3579
	  3580
NAM	    51#	   547	   578	   583	   630	   633	   635
NAM1	    52#	   546	   583	   631	   632	   633	   634
NAM2	    53#	   548	   577	   579
NAME	     7#	  2922#	  3051	  3052	  3059	  3070	  3157
NAMPNT	   453	   458#	   668	   700	  2351	  2558	  3653
NF	  2445	  2477#	  2728
NF1	  2480#	  2548
NFERR	  1804#	  2253	  2300	  2308	  2478	  2483	  2936
NFERR1	  1807	  3650#
NOCMNT	  1739	  1746	  1748#	  1748	  1750	  2112	  2128	  2132	  2345
NODRER	  3507	  3510#
NOEXT	  2595	  2609#
NOFNF	  1745#	  1745	  1752	  1804
NORM	  3544	  3554#
NOTFN1	  3043	  3086#
NOTFND	  3049	  3056	  3064	  3068	  3084#
O.READ	  2857#	  3568
O.SEEK	  2856#	  3585
ONCE	   209#	   266	   321	  2559
ONETIM	   201#	  4174
ONETM1	   201	   215#
OPPNT	  3586	  3609#
P	    59#	    77	    78	    79	    80	   248	   322	   450	   533	   747	  1013	  1240	  1243	  1799
	  1840	  1882	  2263	  2272	  2479	  2480	  2634	  2639	  2818	  2820	  2822	  2824	  3120	  3139
	  3181	  3183	  3184	  3482	  3487	  3537	  3622	  3624	  3629	  3638
PAG	   155#	  1002	  1019	  1025	  1026	  1029	  1030	  1115	  1125	  1127	  1128	  1779	  1781	  3419
	  3421	  3425	  3426
PAGKL	  1001	  1023#
PASS	   208#	   674	   680	   690	   715	   765	   962	   974
PCYL	  3575	  3606#
PDRIVE	  3308	  3580	  3605#
PERIOD	   573	   583#
PFSTRT	   107#	   441
PGMGO	   282	   283	   369	   521	  1640	  1642	  2561	  3013	  3920#
PGNAME	   263	   325	   760	  3917#
PI	   246	   745	   940	   957
PICLR	   150#	   246	   745
PLIST	   248	   322	   450	   747	  1013	  3918#
PNT	  2095	  2098	  2101	  2104	  2106	  2111	  2425#
PNT1	  2110	  2426#
PNT16	   479#	  2129	  2133	  2642
PNTDEC	   766	  1239#	  1242	  2604	  2713
PNTLPT	  1271	  1316#
PNTOCT	  1229#	  1234	  2555	  3631
PNTR	  2423#	  2433	  2456	  2457	  2458	  2461	  2618	  2619	  2620	  2623
PNTTAB	  1515#	  2599	  2602	  2705	  2708	  3134	  3138
PPN	  1586	  1691	  1698	  1700	  3051	  3965#
PPN0	  1678	  1685#
PPN1	  1686	  1689#
PPN2	  1690	  1695#
PPN3	  1703#                                                                                                            SEQ 0146
PPN4	  1704	  1707#
PPN5	  1696	  1701#
PPNCHR	  1667#	  1684
PPNIN	  1607	  1659#
PPNIN1	  1658#	  1671	  1693	  1708
PPNLP	  1665#	  1688	  1694	  1706	  1710
PPNLTR	  1675	  1681#
PPNPTR	  1665	  3616#
PRGCOR	  2145#	  2946
PRINT	   461	   473	   481	  1198	  1203	  1205	  1223	  1233	  1245	  1249#	  1339	  1421	  1494	  1510
	  1516	  2239	  2557	  2597	  2694	  3126
PRINT1	  1258	  1261	  1266#
PRINT2	  1265	  1285#	  1291	  1294	  1308	  1326
PRINT3	  1275	  1289#
PRINT4	  1273	  1293#
PROCBK	  2494#	  2995
PROCLP	  2499#	  2502	  2507
PSEC	  3311	  3572	  3608#
PSURF	  3310	  3574	  3607#
PTAPE	  1609	  1653#
PTCNT1	  2370#	  2379
PTCNTL	  2107	  2365#
PTFLG	  1591#	  1591	  1654	  1725	  1766	  1830	  1854	  1861	  1919	  3635
PTLD	  1767	  2343#	  2361
PTR	  1902	  1904	  1906	  2359	  2360	  2377	  2378	  2384	  2386	  2388
Q	  1785	  2148	  2220	  2221	  2222	  2223	  2224	  2225	  2226	  2227	  2328	  2418#	  2453	  2924#
	  2960	  2962	  2967	  2968	  2969
R.DSKW	  2888#	  3034	  3084
R.KDEV	  2886#	  3283
R.SRIB	  2889#	  3106	  3226
R.TYPE	  2887#	  3270	  3322	  3581
R5VOU1	  2819	  2823	  2825	  2830#
R5VOU2	  2831	  2835#
R5VSIX	  2682	  2687	  2698	  2814#
R5VTAB	  2835	  2836	  2837	  2838	  2839	  2840	  2842#
RACKF	   284	   884	   923	  1059	  1085	  3936#
RANBAS	   210#	   731	   734
RANDBS	    96#	   735
RBOUT	   562	   575	   576	   618#
RBUF	  1575#	  1577	  3069	  3070	  3098	  3103	  3105	  3107	  3201
RCOVRY	  3621#	  3621	  3632	  3658
RDDATA	  2972	  2977#	  3149
RDDSK	  2980#
RDDTA	  2978	  2992#
RDDTA1	  2468	  2994#
READ	   552	  1483#	  1498	  1500
READ1	   540	  1486#
REENTR	   108#	   442
RELIAB	   181#	   710
RERUN	   200#
RERUN1	   200	   739#
RESTRT	   198#	  1015	  1034	  1090
RET	   669	   691	   702	   754#                                                                                    SEQ 0147
RETURN	    91#	   946	  1007	  3011
RFILE	  1785#	  2255	  2299	  2304	  2307	  2363	  2474	  2742	  2937
RFILE1	  1791	  2941#
RFILL	  2468#
RFILL1	  2948#	  2956
RFILL2	  2952#	  2955
RFILL3	  2189	  2950#
RH20F	  3276#	  3276	  3280	  3392	  3438	  3448	  3458	  3463	  3484	  3498	  3511
RHINIT	  3441	  3459	  3462#
RIBBYT	  3205	  3208	  3219	  3255#
RIBEXT	  2900#	  3069
RIBFIR	  2898#	  3107
RIBNAM	  2899#	  3070
RIBSIZ	  2901#	  3103
RL	  1107	  1138#	  1144
RMS1	  2169	  2178	  2193#
RMS2	  2191#	  2198
RUN	   198	   743#	  2563
RUNCTL	   678	   729	   757	  3942#
RUNPR1	   362#	   383
RUNPR2	   346	   378#
RUNPRG	   356#	   376	   428	   517	  1717
RWNXTB	  2967	  2972#
RWORD	  1855	  1870	  1928	  2149	  2948	  2952	  2963#
RWORD1	  2960#	  2974
S	  1665	  1682	  1683	  2925#	  3107	  3200	  3201	  3203
SADR	   352	  3006	  3027#
SADRQ	   353	   365	   431	  3017#
SAV13	  1788#	  1788	  1868	  1872	  1885	  1889	  1893	  1909	  1913
SAV14	  1789#	  1789	  1869	  1873	  1886	  1890	  1894	  1910	  1914
SAVAC0	  1252	  1286	  1332	  1347	  3944#
SAVAC1	  1250	  1285	  1333	  1346	  3945#
SAVAC2	  3946#
SAVEIP	   368	   452	   684	   706	   748	  3018	  3941#
SAVEP	  2479	  2480	  3940#
SAVQ	  2220#	  2220	  2227
SAVT0	  2152#	  2152	  2184
SAVT1	  2153#	  2153	  2158	  2167	  2176	  2183	  2185
SAVT2	  2154#	  2154	  2186
SAVT3	  2155#	  2155	  2187
SAVT4	  2156#	  2156	  2188
SAXPN	   432	  1160#
SCFLAG	   543	   557	   607	   629	  1408	  1489	  3937#
SCHL1	  3149#	  3165
SCHL2	  3154#	  3164	  3190
SCHL2A	  3160	  3167#
SCHN1	  3165#
SCHN2	  3141	  3158	  3163#	  3168
SCSET	   560	   607#
SEARCH	  2494	  2514#	  2532	  2535
SEL1	  3197	  3225#
SEL2	  3199	  3222#
SEL3	  3206	  3216#                                                                                                    SEQ 0148
SEL4	  3210	  3214#
SEL4L	  3200#	  3214
SELBLK	  2984	  3195#	  3227
SELECT	   197	   219	   222	   224	   229	   240#	   374	   391	   775	  1161	  1165	  1361	  1396	  1405
	  1715	  1722	  1724	  1726	  2562	  3117
SELSTR	   323	   332	   378	   380	  3966#
SELX	   267	   276#	   396
SELX1	   287	   310	   314	   321#	  2560
SELX2	   299	   306	   311#
SELX3	   298	   301	   307#
SELX4	   294	   300#
SELXR	   395#	   433
SETCH1	  3393	  3408#
SETCHN	  3287	  3342	  3390#
SETCMN	  3402#	  3428
SETRIB	  3067	  3096#	  3147
SFSTRT	   106#	   440
SIXBP	   326	   459	   463	   469#	   474	   761	  2237	  2244	  2588	  2593	  2598	  2691	  2703	  3124
	  3128	  3625
SLUNIT	  3047	  3180	  3211	  3243	  3951#
SMLUSR	   168#
SPECIA	  1738#	  1738	  1751	  1790	  1806	  2118	  2380	  2633	  2996
SRCHC	  2516	  2519#
SRCHF	  1590	  1645	  2477	  3962#
SRCHFD	  3055	  3063	  3145#
SRCHTA	  2521	  2533#
SRCHW	  2520#	  2525
START	   145	   197#	   454	   491	   495	   652	   916	  2222	  2607	  2641	  2729	  3010
START1	   110#	   443
START2	   111#	   444
START3	   112#	   445
START4	   113#	   446
START5	   114#	   447
STARTQ	  2092	  2951	  3002#
STOP	   532	  2646#
STORED	   425	   500#	   512
STRD2	   793#	   802	  1171
STRD3	   794	   799	   806#	   815
STRD3A	   814	   834#
STRD4	   810	   818#	   824	   831	   835
STRD4A	   828	   837#
STRD5	   819	   832	   838	   841#
STRD5A	   861#	   868	   869	   871	   873
STRD5C	   848	   857#
STRD6	   863	   874#	   880	   882
STRD7	   842	   875	   885#	   892
STRD8	   886	   894#
STRUCT	  3046	  3242	  3950#
SUBLNK	    73#
SUBRTN	    88#	   286
SUSERF	   207#	   544	   602	   637	   685	   694	   952	  1032	  1174
SVJBRE	   216#	   216	  2210	  2212	  2216	  2334	  2339	  3023
T0	  2137#	  2152	  2160	  2162	  2170	  2179	  2184	  2193	  2194	  2195	  2199	  2201                     SEQ 0149
T1	  2138#	  2153	  2167	  2171	  2173	  2176	  2185	  2191	  2192	  2193	  2200	  2201
T2	  2139#	  2154	  2162	  2164	  2186	  2194	  2196	  2197
T3	  2140#	  2155	  2163	  2164	  2168	  2177	  2187	  2197	  2199	  2200
T4	  2141#	  2156	  2188	  2191	  2195	  2196
TAB	  1573#	  1575	  1646	  1647	  1648	  2438	  2439	  2460	  2572	  2587	  2591	  2594	  2622	  2723
	  2751	  2753
TABADR	  2422#	  2433	  2459	  2460	  2617	  2621	  2622
TABCTR	  3113#	  3113	  3129
TAPENO	  1637	  2486	  2514	  3956#
TAPEPF	  1493	  3921#
TITLE	   199#
TOUT	    82	  1216#	  1225
TOUTA	  1215#	  1226
TRPENB	   153#	  1002	  1025	  1029	  1115	  1126	  1780	  3420
TRYECC	  3508	  3525#
TT2CHR	   385#	   798	   809	   823	   847	  1598	  1628
TTAB	   566	   595#
TTALTM	  1415	  1417	  1419	  1507#
TTY	  1277	  1279	  1310	  1311	  1355	  1358	  1388	  1390	  4134	  4136	  4144
TTYCFL	  1353#	  1353	  1383	  1430
TTYCHK	  1278	  1321	  1353#
TTYCMD	   426	   506#
TTYEXT	  1407	  1425	  1430#	  1503
TTYIN	    83	  1382#	  1485
TTYINA	  1409	  1414#	  1428
TTYIND	  1363	  1402#
TTYINU	  1385	  1443#
TTYINX	  1394#	  1439	  1445	  1448
TTYKL	  1387	  1435#	  1438
TTYOC1	  1462#	  1473
TTYOC2	  1464	  1475#
TTYOC3	  1468	  1478#
TTYOCT	    84	  1461#
TTYPE	  3234	  3236	  3250	  3957#
TTYSPD	   211#	  4157
TUNIT	  3235	  3237	  3247	  3959#
TYBAUD	   269	  4125#
TYBD1	  4134#	  4138
TYBD2	  4136#	  4140	  4142
TYBD3	  4137	  4139#
TYBD4	  4144#
TYBD5	  4159#
TYPMAX	  3251	  3380#
UNIINI	  3273	  3364#	  3380	  3412
UNIMAX	  3248	  3381#
UPMP	   158#	   980	   982	   983	   985	   986	   987	   989	   991	   992	   993	   994	   996	   997
	   998	   999	  1002	  1024	  1026	  1096	  1100	  1109	  1111	  1115	  1116	  1128	  1140	  1143
	  1153
URWD	  2319#	  2964
URWD1	  2320	  2322	  2327#
USER	   203#	   240	   243	   244	   261	   264	   293	   317	   676	   720	   743	   780	   931	  1014
	  1160	  1272	  1384	  1420	  1478	  1509	  1521	  1535	  1562	  1592	  1721	  1760	  2157	  2182
	  2207	  2963	  3002	  3019	  4125                                                                             SEQ 0150
USERF	   151#	   154#	   218	   242	  1004	  1117
USERLD	  1761	  2279#
USLD1	  2296	  2302#
USLKUP	  2298	  2303	  2306	  2310#
USRCMP	   169#	  1002	  1115
USRERR	   913#	   984	  1023
USRFLG	   812	   818	   834	   941	   960	  1173	  3930#
USRINT	   262	  2333#
USRITR	   928#	   928	   957	  1033
USRRUN	   942	   952#
USSR1	  1006	  1012#
USSR2	   945	  1013#	  1151
USSR3	  1017	  1029#
USSR4	  1021	  1032#
VC	  2651#	  2678	  2717	  2718	  2749
VCNT0	  1054#
VCNT1	  1053	  1069#
VCNT2	  1068	  1078#
VCNT3	  1077	  1082#
VDIR	  2488	  2582	  2669	  2673#	  2726
VDIRF	  2655#	  2661	  2673	  2690	  2701	  2728
VDIRL1	  2679#	  2721
VDIRL2	  2678#
VDIRL3	  2696#	  2732
VDIRL4	  2681	  2716#	  2731	  2735
VDTA	  1605	  1621#
VDTAFL	  1588#	  1588	  1621	  1638	  1769	  1852	  1863	  1921	  2487	  2581
VDTAL1	  2690	  2730#
VDTAL2	  2701	  2734#
VDTALD	  1770	  2657#
VEXT	  2668#	  2668	  2734
VNAM	  2664#	  2664	  2730
VOLT5	   175#	  1054	  1069	  1078	  1082
VOLTLM	   176#	   858	  1069	  1078
VT	  2652#	  2679	  2681	  2683	  2685	  2688	  2696	  2699	  2710	  2712	  2716	  2717	  2719	  2723
	  2724	  2725	  2737	  2739	  2748	  2751	  2753	  2754	  2796	  2797	  2799	  2800	  2806	  2808
	  2809	  2816	  2817	  2820	  2821	  2824	  2826	  2830	  2835	  2836	  2837	  2838	  2839	  2840
VT1	  2653#	  2718	  2719	  2720	  2748	  2749	  2750	  2751	  2752	  2753	  2807	  2808	  2818	  2822
	  2831
VT2	  2654#	  2815	  2832
W	  1666	  1687	  1857	  1875	  1876	  1877	  1878	  1879	  1931	  2091	  2261	  2262	  2327	  2417#
	  2765	  2766	  2802	  2814	  2815	  2826	  2921#	  2950	  2954	  2968	  3006	  3007	  3616
WHAT	   199	   450#
XPAND	   184#	   788
XPNRN1	   931#	  1035	  1044	  1066	  1073	  1081
XPNRN2	   932	   943#	   953	   964
XPNRN3	   947#	  1008
XPNRUN	   739	   921#	  1176
ZEROAC	   612#	   947	  3025
$$DTE0	  1541	  1553#
$DDT	   127#	   315	   438	  1404
$DTCHR	   139#
$DTCI	   133#	  1539                                                                                                     SEQ 0151
$DTCLK	   132#	  1538
$DTCMD	   136#	  1551
$DTEXX	  1290	  1436	  1528	  1551#	  1567	  2235	  2247	  2260	  2269
$DTF11	   135#	  1557
$DTFLG	   131#	  1537	  1554	  1556
$DTMTD	   140#
$DTMTI	   141#
$DTOPR	   138#	  1540
$DTSEQ	   137#	  1552
$DTSWR	   142#
$DTT11	   134#
$EMODE	    92#	   722
$PSIX	    81	  1181#
$PSIX1	  1186#	  1200
$PSIX2	  1189#	  1199
$PSIX3	  1199#	  1206
$PSIX4	  1194	  1202#
$PSIX5	  1192	  1208#
$STD	   126#	   435
$STL	   128#	   436
$STM	   129#	   437
$SV417	  3416#	  3416	  3423
$SWITC	    85	  1521#
$SWU	  1522	  1530#
$UMODE	    93#	   725
.FHSLF	   120#	   231
.LOC	   102#	   193

CLRBFI	  1479
CORE	  2213	  2218	  2336                                                                                             SEQ 0152
GET	    80#	   482	  1208	  1209	  1210	  1345	  1346	  1347	  1348	  1349	  1366	  2117	  3427
GETT20	   123#	   233
GETTAB	   221
GO	    77#	    81	    82	    83	    84	    85	   260	   262	   269	   272	   297	   304	   309	   313
	   324	   326	   330	   360	   370	   395	   451	   453	   459	   461	   463	   464	   473	   481
	   501	   510	   526	   532	   552	   668	   675	   677	   700	   701	   750	   759	   761	   766
	   767	   798	   809	   823	   847	   947	  1001	  1171	  1198	  1203	  1205	  1223	  1233	  1242
	  1261	  1278	  1290	  1321	  1325	  1339	  1421	  1436	  1494	  1510	  1511	  1567	  1598	  1628
	  1641	  1658	  1730	  1828	  1855	  1870	  1887	  1898	  1911	  1928	  1946	  1947	  1958	  1961
	  1962	  1967	  1979	  1980	  2037	  2058	  2096	  2097	  2099	  2100	  2102	  2103	  2115	  2124
	  2129	  2133	  2149	  2150	  2161	  2165	  2169	  2172	  2174	  2178	  2181	  2235	  2237	  2239
	  2244	  2247	  2260	  2269	  2284	  2298	  2303	  2306	  2324	  2337	  2350	  2351	  2368	  2447
	  2468	  2489	  2494	  2555	  2557	  2558	  2566	  2573	  2580	  2588	  2589	  2593	  2597	  2598
	  2599	  2602	  2603	  2604	  2605	  2638	  2640	  2642	  2675	  2680	  2682	  2686	  2687	  2691
	  2694	  2697	  2698	  2703	  2705	  2708	  2711	  2713	  2714	  2738	  2762	  2790	  2794	  2819
	  2823	  2825	  2935	  2948	  2949	  2952	  2953	  2972	  2984	  2995	  3008	  3017	  3025	  3048
	  3055	  3063	  3067	  3074	  3080	  3081	  3096	  3099	  3112	  3116	  3124	  3126	  3128	  3132
	  3134	  3138	  3146	  3147	  3149	  3167	  3182	  3205	  3208	  3212	  3219	  3238	  3287	  3291
	  3313	  3314	  3317	  3320	  3324	  3330	  3334	  3403	  3435	  3447	  3451	  3459	  3466	  3471
	  3486	  3491	  3496	  3501	  3502	  3505	  3508	  3526	  3531	  3541	  3566	  3584	  3588	  3593
	  3623	  3625	  3631	  3653
GTJFN	   122#	   228
INCHRW	  1447
INCHWL	  1443
MSG	   186#	   910	   914	  1040
NAME	     7	    10
OUTCHR	  1293
PMSG	   188#	   327	   356	   492	   506	   618	   649	   654	   659	   665	   762	   772	   795	   806
	   820	   844	   864	   876	  1298	  1451	  1595	  1625	  2352	  2365	  2370	  2551	  2584	  2609
	  3626	  3639	  3650
PNTAL	    82#	   271	   490	  1662	  2113
PNTMSG	    81#	   329	   358	   494	   508	   620	   651	   656	   661	   667	   764	   774	   797	   808
	   822	   846	   866	   878	   888	   915	  1042	  1300	  1453	  1597	  1627	  2354	  2367	  2372
	  2553	  2586	  2611	  3628	  3641	  3652
PTITLE	  3989#	  3994
PUT	    79#	   479	  1181	  1182	  1183	  1330	  1331	  1332	  1333	  1334	  1357	  2109	  3414
RESET	   121#	   234
RTN	    78#	   387	   465	   475	   483	   534	   616	   647	   781	   785	   789	   894	  1211	  1222
	  1235	  1287	  1301	  1350	  1354	  1356	  1367	  1431	  1457	  1480	  1488	  1513	  1526	  1531
	  1536	  1547	  1558	  1563	  1565	  1568	  1616	  1619	  1629	  1639	  1643	  1649	  1655	  1702
	  1800	  1805	  1812	  1841	  1848	  1883	  1895	  1903	  1929	  2134	  2202	  2228	  2264	  2274
	  2316	  2325	  2335	  2340	  2385	  2511	  2541	  2576	  2626	  2648	  2755	  2763	  2811	  2827
	  2833	  2973	  2981	  2985	  3016	  3086	  3097	  3100	  3148	  3150	  3189	  3202	  3213	  3253
	  3257	  3282	  3288	  3300	  3306	  3318	  3331	  3336	  3432	  3444	  3467	  3509	  3529	  3534
	  3536	  3563	  3567	  3601	  3654	  4126	  4169	  4172
SETDDT	   318
SETNAM	   265	  3020
SWITCH	    85#	   698	   709	   787	  1167	  1727	  2635
TTICHR	    83#	   385	   389	   889	  1341	  1462	  1668	  2355	  2373	  3642
TTIOCT	    84#	   867	   879	  1454