Google
 

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





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

	PRODUCT CODE:		AH-E522C-DD

	DIAGNOSTIC CODE:	DSQDF

	PRODUCT NAME:		DSQDFC0 DECSYSTEM 2020
				DIAGNOSTICS FE-FILE PROGRAM

	VERSION:		0.3

	DATE RELEASED:		FEBRUARY 1979

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF 

		        COPYRIGHT (C) 1978, 1979

	        DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

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

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

	DIGITAL EQUIPMENT CORPORATION ASSUMES NO  RESPONSIBILITY FOR THE
	USE  OR  RELIABILITY  OF  ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
	SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0002
DISK
----

	THE SYSTEM DISK WILL CONTAIN A RESERVED (CONTIGUOUS) FE-FILE
AREA FOR THE 8080 CONSOLE PROCESSOR'S USE.

  TOPS-20 -- <ROOT-DIRECTORY>BOOTSTRAP.BIN
  TOPS-10 -- [6,2020]KS10FE.BIN

	THIS FE-FILE AREA WILL CONTAIN THE KS-10 MICROCODE, THE SYSTEM
AND DIAGNOSTIC PRE-BOOTS AND BOOTSTRAPS, THE BOOTCHECK 1 MICROCODE,
THE BOOTCHECK 2 DIAGNOSTIC CODE, AND 247 [0-366(8)] FRONT-END
INDIRECT 8080 COMMAND FILES.
 
	THIS AREA WILL BE POINTER TO BY WORDS IN THE HOME BLOCK.  THERE
WILL BE THREE WORDS USED IN THE HOME BLOCK.  WORD 1 PROVIDES THE DISK
ADDRESS OF THE FE-FILE AREA.  WORD 2 PROVIDES THE LENGTH OF THE FE-FILE
AREA.  WORD 3 PROVIDES THE 8080 FORMAT TRACK/CYLINDER/SECTOR ADDRESS.

	HOME BLOCK
	----------
	I
	I---------
  101	I  DISK ADDRESS OF FE-FILE AREA (SECTOR #)
	I---------
  102	I  LENGTH (# OF SECTORS)
	I---------
  103	I  8080 TRACK/CYL/SECTOR
	I---------
	I
	----------


	THE 8080 TRACK/CYLINDER/SECTOR WORD WILL BE AS FOLLOWS:

	          3-11              23-27            31-35
	------------------------------------------------------
	I 000 I           I 0'S I           I 000 I          I
	------------------------------------------------------
		  ^		     ^			^
		  I                  I			I
	       CYLINDER            TRACK              SECTOR
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0003
	THE FIRST PAGE IN THE FE-FILE AREA WILL BE USED AS AN 8080
DIRECTORY TO CONTAIN PHYSICAL DISK ADDRESSES AND LENGTHS FOR THE
ASSOCIATED FILES CONTAINED WITHIN THE REMAINDER OF THE FE-FILE AREA.

	THE POINTER WORDS WILL BE IN THE 8080 TRACK/CYL/SECTOR FORMAT
AND THE PAGE ##,,LENGTH WORD WILL BE IN THE STARTING PAGE NUMBER IN THE
FILE AND THE NUMBER OF 512 WORD PAGES.

THIS FILE WILL BE AS FOLLOWS:

	FE-FILE PAGE 0

		--------------
WORD	0	I  POINTER TO FREE SPACE
	1	I    PAGE #,,LENGTH
		I-------------
	2	I  POINTER TO MICROCODE
	3	I    PAGE #,,LENGTH
		I-------------
	4	I  POINTER TO MONITOR PRE-BOOT
	5	I    PAGE #,,LENGTH
		I-------------
	6	I  POINTER TO DIAGNOSTIC PRE-BOOT
	7	I    PAGE #,,LENGTH
		I-------------
	10	I  POINTER TO BOOTCHECK 1 MICROCODE
	11	I    PAGE #,,LENGTH
		I-------------
	12	I  POINTER TO BOOTCHECK 2 PRE-BOOT
	13	I    PAGE #,,LENGTH
		I-------------
	14	I  POINTER TO MONITOR BOOT
	15	I    PAGE #,,LENGTH
		I-------------
	16	I  POINTER TO DIAGNOSTIC BOOT
	17	I    PAGE #,,LENGTH
		I-------------
	20	I  POINTER TO BOOTCHECK 2
	21	I    PAGE #,,LENGTH
		I-------------
	22	I  POINTER TO INDIRECT FILE 0
	23	I    PAGE #,,LENGTH
		I-------------
	24	I  POINTER TO INDIRECT FILE 1
	25	I    PAGE #,,LENGTH
		I-------------
		/   ...
		I-------------
	776	I  POINTER TO INDIRECT FILE 366(8)
	777	I    PAGE #,,LENGTH
		--------------
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0004
		--------------
PAGE 1		I
		I  MICROCODE - 12 PAGES
		I
		--------------

		--------------
PAGE 13		I
		I  MONITOR PRE-BOOT - 1 PAGE
		I
		--------------

		--------------
PAGE 14		I
		I  DIAGNOSTICS PRE-BOOT - 1 PAGE
		I
		--------------

		--------------
PAGE 15		I
		I  BOOTCHECK 1 MICROCODE - 12 PAGES
		I
		--------------

		--------------
PAGE 27		I
		I  BOOTCHECK 2 PRE-BOOT - 1 PAGE
		I
		--------------
		I
		/
		I
		--------------
LAST PAGE	I
		I
		I
		--------------

	FREE SPACE STARTS AT PAGE 28 ON "RESET" WITH THE BOOTS AND OTHER
FILES ASSIGNED SPACE AS APPROPRIATE.

	THE FREE SPACE POINTER STARTS WITH THE PAGE #,,LENGTH WORD EQUAL
TO (^D28,,<LENGTH FROM HOME BLOCK 102 - ^D28>).
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0005
	THE SMFILE PROGRAM WILL HAVE THE FOLLOWING COMMANDS TO GENERATE
AND MAINTAIN THE FE-FILE SYSTEM:

	1.	DEPOSIT	(BC1,CRAM)

	2.	DEBUG	(CLEAR,SET)

	3.	ECHO	(YES,NO)

	4.	EXAMINE	(BC1,CRAM)

	5.	EXIT

	6.	HELP

	7.	INFORMATION	(DISK,FEFILE,FREE,INDIRECT)

	8.	OUTPUT	(BC1,CRAM,MTBOOT,RAM)

	9.	PUSH

	10.	RDBC1	("FILE.EXT")

	11.	READ	("FILE.EXT")

	12.	SERIAL	"NUMBER"

	13.	TAKE	("FILE.EXT")

	14.	TYPE	(INDIRECT) (0-366(8))

	15.	WRITE	(BC1,BC2,BOOT,CRAM,DIAGBT,DONE,INDIRECT,RESET,SETUP)
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0006
	THE WRITE COMMAND WILL HAVE THE FOLLOWING ARGUMENTS:

	A.	BC1

	B.	BC2 "FILE"

	C.	BOOT "FILE"

	D.	CRAM

	E.	DIAGBT "FILE"

	F.	INDIRECT "0-366(8)" "FILE"

	G.	RESET

	H.	SETUP "DEV:"

	I.	DONE

	THE OUTPUT COMMAND WILL HAVE THE FOLLOWING ARGUMENTS:

	A.	BC1 "FILE".RAM

	B.	CRAM "FILE".RAM

	C.	RAM "FILE".RAM

	D.	MTBOOT "INPUT".EXE AS "MTBOOT".RDI
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0007
	AN EXAMPLE SET OF COMMANDS NECESSARY TO CREAT THE FRONT-END
FILE SYSTEM ON DISK FOR THE DECSYSTEM 2020:

	@RUN SMFILE
	DECSYSTEM-2020 FE-FILE PROGRAM
	VERSION #.#
	[FOR HELP TYPE "HELP"]
	SMFILE>WRITE SETUP DEV:
	SMFILE>WRITE RESET
	SMFILE>READ KS10.ULD
	SMFILE>SERIAL ####
	SMFILE>WRITE CRAM
	SMFILE>WRITE BOOT SMBOOT.EXE
	SMFILE>WRITE DIAGBT SMMON.EXE
	SMFILE>WRITE BC2 SMBC2.EXE
	SMFILE>WRITE DONE
	SMFILE>EXIT

	AN EXAMPLE PROCEDURE FOR CREATING THE MICROCODE AND READ-IN 
FILE TO BE THEN COPIED ONTO THE FRONT OF THE "SYSTEM" MAGTAPE FOR
MAGTAPE BOOTING:

	@RUN SMFILE
	DECSYSTEM-2020 FE-FILE PROGRAM
	VERSION #.#
	[FOR HELP TYPE "HELP"
	SMFILE>READ KS10.ULD
	SMFILE>OUTPUT CRAM KS10.RAM
	SMFILE>OUTPUT MTBOOT MTBOOT.EXE AS MTBOOT.RDI
	SMFILE>EXIT
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0008
	THE FRONT-END INDIRECT FILES CONTAIN FRONT-END MICRO-PROCESSOR
COMMANDS THAT ARE USED AS IF THE USER HAD TYPED THEM DIRECTLY.  SEVERAL
COMMANDS MAY BE PUT ON A SINGLE LINE WITH COMMANDS SEPARATED BY COMMAS.
A COMMAND LINE MAY BE UP TO 80 CHARACTERS LONG.  THE INDIRECT FILE MAY
CONTAIN MANY LINES OF COMMANDS WITH THE FILE BEING LIMITED TO A MAXIMUM
OF 2047(10) CHARACTERS.  THE INPUT FILE USED TO CREATE THE FRONT-END
INDIRECT FILE WILL CONTAIN CR/LF PAIRS TO END LINES BUT THESE WILL BE
STRIPPED TO CR ONLY IN THE INDIRECT FILE.

	THE BYTES OF THE INDIRECT FILE WILL BE ARRANGED INTO THE
FOLLOWING FORMAT TO FACILIATE THEIR USE BY THE FRONT-END MICRO-
PROCESSOR:

	   0-3      4-11    12-19    20-27    28-35
	---------------------------------------------
	I 0000 I  CHAR 4 I CHAR 3 I CHAR 2 I CHAR 1 I
	---------------------------------------------
	I 0000 I  CHAR 8 I CHAR 7 I CHAR 6 I CHAR 5 I
	---------------------------------------------
	I		   /----/ 		    I
	---------------------------------------------
	I 0000 I  0 BYTE I CHAR Z I CHAR Y I CHAR X I
	---------------------------------------------

	THE FRONT-END INDIRECT FILE WILL TERMINATE WITH A ZERO BYTE.
SMFILE - DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
                                                                                                                           SEQ 0009
	THE FOLLOWING HALT ADDRESSES DURING THE DISK PRE-BOOT
OPERATION INDICATE THE FOLLOWING FAILURES:

	HALT 1001 - TRIED TO OVERLOAD PRE-BOOT
	HALT 1002 - DISK RETRY FAILURE
	HALT 1003 - NO RH-11 BASE ADDRESS

	THE FOLLOWING HALT STATUS BLOCK IS SAVED IF THE DISK
PRE-BOOT FAILS:

	LOC	100 - 8080 DISK ADDRESS
	LOC	101 - MEMORY PAGE ADDRESS
	LOC	102 - T3, SELECTION PICKUP POINTER
	LOC	103 - RPCS1, CONTROL AND STATUS 1 REG
	LOC	104 - RPCS10, CONTROL AND STATUS 2 REG
	LOC	105 - RPDS, DRIVE STATUS REG
	LOC	106 - RPER1, ERROR 1 REG
	LOC	107 - RPER2, ERROR 2 REG
	LOC	110 - RPER3, ERROR 3 REG
	LOC	111 - UBA PAGING RAM LOCATION 0
	LOC	112 - UBA STATUS REG
	LOC	113 - PRE-BOOT VERSION

	THE FOLLOWING HALT ADDRESSES DURING THE MAGTAPE PRE-BOOT
OPERATION INDICATE THE FOLLOWING FAILURES:

	HALT 1001 - TRIED TO OVERLOAD PRE-BOOT
	HALT 1002 - MAGTAPE READ ERROR
	HALT 1003 - NO RH-11 BASE ADDRESS
	HALT 1004 - MAGTAPE SKIP EOF ERROR

	THE FOLLOWING HALT STATUS BLOCK IS SAVED IF THE MAGTAPE
PRE-BOOT FAILS:

	LOC	100 - 0
	LOC	101 - MEMORY PAGE ADDRESS
	LOC	102 - T3, SLECECTION PICKUP POINTER
	LOC	103 - MTCS1, CONTROL AND STATUS 1 REG
	LOC	104 - MTCS2, CONTROL AND STATUS 2 REG
	LOC	105 - MTDS, DRIVE STATUS REG
	LOC	106 - MTER, ERROR REG
	LOC	107 - 0
	LOC	110 - 0
	LOC	111 - UBA PAGING RAM LOCATION 0
	LOC	112 - UBA STATUS REG
	LOC	113 - PRE-BOOT VERSION

[END]
[SMFILE.HLP 30-FEB-79]
                                                                                                                           SEQ 0010
	AN EXAMPLE SET OF COMMANDS NECESSARY TO CREAT THE FRONT-END
FILE SYSTEM ON DISK FOR THE DECSYSTEM 2020:

	@RUN SMFILE
	DECSYSTEM-2020 FE-FILE PROGRAM
	VERSION #.#
	[FOR HELP TYPE "HELP"]
	SMFILE>WRITE SETUP DEV:
	SMFILE>WRITE RESET
	SMFILE>READ KS10.ULD
	SMFILE>SERIAL ####
	SMFILE>WRITE CRAM
	SMFILE>WRITE BOOT SMBOOT.EXE
	SMFILE>WRITE DIAGBT SMMON.EXE
	SMFILE>WRITE BC2 SMBC2.EXE
	SMFILE>WRITE DONE
	SMFILE>EXIT

	AN EXAMPLE PROCEDURE FOR CREATING THE MICROCODE AND READ-IN 
FILE TO BE THEN COPIED ONTO THE FRONT OF THE "SYSTEM" MAGTAPE FOR
MAGTAPE BOOTING:

	@RUN SMFILE
	DECSYSTEM-2020 FE-FILE PROGRAM
	VERSION #.#
	[FOR HELP TYPE "HELP"
	SMFILE>READ KS10.ULD
	SMFILE>OUTPUT CRAM KS10.RAM
	SMFILE>OUTPUT MTBOOT MTBOOT.EXE AS MTBOOT.RDI
	SMFILE>EXIT
		HISTORY FILE FOR SMFILE
		----------------------                                                                                     SEQ 0011
---------------------------------------------------------------

CODE:		MAINDEC-10-SMFILE

TITLE:		DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM

VERSION:	0.3

DATE:		FEBRUARY 1979

REASON:		CORRECTED A PROBLEM DUE TO TOPS-20 RELEASE 4 CAUSING THE MONITOR
		PREBOOT PAGE TO NOT BE WRITTEN INTO THE BOOTSTRAP.BIN AREA.
		CHANGED THE TOPS-10 MONITOR BOOT SO THAT PAGE 0 DOES NOT GET
		WRITTEN INTO THE BOOTSTRAP FILE.
---------------------------------------------------------------

CODE:		MAINDEC-10-SMFILE

TITLE:		DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM

VERSION:	0.2

DATE:		DECEMBER 1978

REASON:		ENHANCED DIAGNOSTIC AND BOOT CHECK 2 PRE-BOOTS TO PERFORM BASIC
		CPU CHECKING.
---------------------------------------------------------------

CODE:		MAINDEC-10-SMFILE

TITLE:		DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM

VERSION:	0.1

DATE:		MAY 1978

REASON:		ORIGINAL RELEASE OF THIS PROGRAM FOR KS-10.
		STARTED KEEPING A HISTORY.
---------------------------------------------------------------
SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 1             
                                                                                                                           SEQ 0012




















				   DOCUMENT
				**************
         SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^
				**************

















		    COPYRIGHT 1979
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 2             
                                                                                                                           SEQ 0013

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


	36	PARAMETERS

	252	STANDARD PROGRAM ASSIGNMENTS

	332	MACROS

	439	PROGRAM PARAMETERS

	577	FIXED DATABASE

	626	INIT PROGRAM

	695	MAIN LOOP

	850	COMMANDS -- INFORMATION

	970	COMMANDS -- PUSH

	1008	COMMANDS -- DEBUG

	1030	COMMANDS -- ECHO

	1044	COMMANDS -- DEPOSIT

	1071	COMMANDS -- SERIAL

	1097	COMMANDS -- EXAMINE

	1145	COMMANDS -- EXIT

	1154	COMMANDS -- HELP

	1208	COMMANDS -- WRITE

	3255	COMMANDS -- READ

	3371	TOPS-10 DISK ROUTINE DEFINITIONS

	3508	TOPS-10 DISK FILE PROCESS

	3740	TOPS-10 INDIRECT COMMAND FILE PROCESS

	3815	SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY
SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 3             
                                                                                                                           SEQ 0014

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


	4029	ROUTINE TO CREATE KS10FE.BIN FILE

	4121	PROCESS ".ULD" MICROCODE

	4449	COMMANDS -- OUTPUT

	4753	PROCESS TOPS-10 MAGTAPE BOOT EXE FILE

	5173	COMMANDS -- TAKE

	5206	COMMAND SUBROUTINES -- DPYFLD

	5548	COMMAND SUBROUTINES -- UPDFLD

	5623	DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD

	5787	MISCELLANEOUS ROUTINES

	5824	PSI LOGIC -- LEVTAB & CHNTAB

	5870	PSI LOGIC -- CONTROL-C AND CONTROL-X

	5933	PSI LOGIC -- CONTROL T

	5954	STORAGE -- PRESERVED

	5998	 COMMAND PROCESSOR

	6026	MAIN SUBROUTINE PACKAGE CONTROL

	6081	UUO HANDLING SUBROUTINE

	6214	PROCESSOR TYPE DETERMINATION

	6250	PROGRAM HALTS

	6286	PROGRAM NAME PRINTER

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

	6350	*SUBRTN* TELETYPE INPUT ROUTINES

	6518	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 4             
                                                                                                                           SEQ 0015

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


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

	6684	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE

	6722	*SUBRTN* PRINT SUBROUTINES

	7093	*SUBRTN*  CHARACTER OUTPUT ROUTINES

	7378	*STOR* RESERVED STORAGE

	7515	STORAGE -- ZEROED ON STARTUP
SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 5             
                                                                                                                           SEQ 0016
		18	COPYRIGHT 1978,1979
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS. 01752

		22	JOHN R. KIRCHOFF

		*****************************************************************
	36	PARAMETERS
		*****************************************************************

		41	DATA SWITCHES

		47	AC USE

		85	FE-FILE DIRECTORY DEFINTIONS

		134	OPERATOR DEFINITIONS (NON-UUO'S)

		144	SUBROUTINE INITIALIZATION CALL

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

		157	TERMINAL INPUT UUO'S

		172	TERMINAL OUTPUT UUO'S.

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

		247	END OF PASS/PROGRAM UUOS

		*****************************************************************
	252	STANDARD PROGRAM ASSIGNMENTS
		*****************************************************************

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

		269	PDP-10 STANDARD ADDRESS ASSIGNMENTS

		276	JOB DATA AREA EXTERNALS (OLD DEFINITIONS)

		294	JOB DATA AREA EXTERNALS (NEW DEFINITIONS)

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

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

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 6             
                                                                                                                           SEQ 0017
		*****************************************************************
	332	MACROS
		*****************************************************************

		*****************************************************************
	439	PROGRAM PARAMETERS
		*****************************************************************

		442	PROGRAM VARIABLE PARAMETER AREA

		461	SPECIAL PROGRAM DISPATCH ADDRESSES

		471	PROCESSOR CONTROL STORAGE

		479	UUO DISPATCH TABLE

		499	PRINT CONTROL STORAGE

		530	USER MODE OUTPUT FILE INFORMATION

		539	PUSHDOWN LIST CONTROL INFORMATION

		547	NUMBER INPUT DIGIT FLAG

		553	USER MODE MONITOR TYPE FLAG

		559	SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION

		565	"SWITCH" CALL USAGE CONTROL

		571	SM10 (KS-10) PROCESSOR TYPE FLAG

		*****************************************************************
	577	FIXED DATABASE
		*****************************************************************

		*****************************************************************
	626	INIT PROGRAM
		*****************************************************************

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 7             
                                                                                                                           SEQ 0018
		*****************************************************************
	695	MAIN LOOP
		*****************************************************************

		807	HERE ON AN ERROR FROM COMMAND JSYS

		828	COMMAND PARSER SUBROUTINES

		*****************************************************************
	850	COMMANDS -- INFORMATION
		*****************************************************************

		*****************************************************************
	970	COMMANDS -- PUSH
		*****************************************************************

		*****************************************************************
	1008	COMMANDS -- DEBUG
		*****************************************************************

		*****************************************************************
	1030	COMMANDS -- ECHO
		*****************************************************************

		*****************************************************************
	1044	COMMANDS -- DEPOSIT
		*****************************************************************

		1055	HERE TO STORE INTO CRAM

		*****************************************************************
	1071	COMMANDS -- SERIAL
		*****************************************************************

		*****************************************************************
	1097	COMMANDS -- EXAMINE
		*****************************************************************

		1111	EXAMINE CRAM

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 8             
                                                                                                                           SEQ 0019
		*****************************************************************
	1145	COMMANDS -- EXIT
		*****************************************************************

		*****************************************************************
	1154	COMMANDS -- HELP
		*****************************************************************

		1187	TOPS-10 HELP

		*****************************************************************
	1208	COMMANDS -- WRITE
		*****************************************************************

		1225	WRTSET - READ FE-FILE DIRECTORY BLOCK INTO MEMORY

		1317	WRTRSET - RESET FE-DIRECTORY

		1357	FIND - FIND THE PHYSICAL DISK WITH THE GIVEN NAME

		1423	STRCMP - STRING COMPARE ROUTINE

		1432	FALIAS - FIND THE PHYSICAL DISK WITH THE GIVEN ALIAS

		1493	COMPUTE DIAGNOSTIC PRE-BOOT PAGE POINTER

		1570	WRTBOOT - WRITE MONITOR PRE-BOOT AND BOOT ON DISK

		1690	WRTDB - WRITE DIAGNOSTIC PRE-BOOT AND "SMMON" ON DISK

		1812	WRTBC2 - WRITE BOOTCHECK 2 PRE-BOOT AND "SMBC2" ON DISK

		2035	NOW READ EXE FILE

		2114	FIND 1ST PAGE OF FILE & PUT IN PRE-BOOT

		2123	COMPUTE 8080 ADDRESSES - PUT IN PRE-BOOT

		2188	NOW READ EXE FILE

		2267	FIND 1ST PAGE OF FILE & PUT IN PRE-BOOT

		2276	COMPUTE 8080 ADDRESSES - PUT IN PRE-BOOT

		2340	NOW READ EXE FILE

		2425	FIND 1ST PAGE OF FILE & PUT IN PRE-BOOT

		2434	COMPUTE 8080 ADDRESSES - PUT IN PRE-BOOT

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 9             
                                                                                                                           SEQ 0020
		2456	MONITOR BOOT STRAP PROGRAM TO BE WRITTEN ON THE DISK

		2667	WRITE MICRO-CODE ONTO DISK

		2721	WRTFEF, WRITE FRONT-END INDIRECT FILES
				COMMAND - [INDIRECT "0-366(8)" "FILE.EXT"
				CREATES - "FEF000.FI" TO "FEF366.FI" (TOPS-10)

		2810	FEF10, TOPS-10 WRITE FRONT-END INDIRECT FILES

		2886	FEIFMT, FORMAT FRONT-END INDIRECT FILES

		2929	TYPE, TYPE CONTENTS OF INDIRECT FILE

		3002	TYPF10, TOPS-10 TYPE CONTENTS OF INDIRECT FILE

		3039	FETELL, REPORT INDIRECT FILES IN USE & FREE SPACE

		3127	WRTDONE - WRITE FE-DIR FILE BLOCK

		3216	SUBROUTINE TO READ AND WRITE HOME BLOCKS
			CALL WITH:
				T1/ DISK ADDRESS
				STRDES/ DEVICE DESIGNATOR OF STRUCTURE
				GO	REDHOM/WRTHOM
				  ERROR
				OK

		3232		TXO	T1,<.DOPSR>B1!DOP%SN ;MONSYM IS BAD

		*****************************************************************
	3255	COMMANDS -- READ
		*****************************************************************

		3333	TOPS-10 MICROCODE READ PROCESS

		*****************************************************************
	3371	TOPS-10 DISK ROUTINE DEFINITIONS
		*****************************************************************

		3373	I/O CHANNELS

		3382	SYMBOL DEFINITIONS

		3452	ERROR INTERCEPT CONTROL BLOCK

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 10            
                                                                                                                           SEQ 0021
		*****************************************************************
	3508	TOPS-10 DISK FILE PROCESS
		*****************************************************************

		3510	GET A CHARACTER FROM -10 FILE

		3527	END OF INPUT FILE

		3539	PUT A CHARACTER TO -10 FILE

		3551	COMPLETE OUTPUT FILE

		3564	OPEN DEVICE/LOOKUP ON FILE

		3609	OPEN DEVICE/LOOKUP ON DATA FILE

		3642	OPEN DEVICE/ENTER ON FILE

		3690	ENTER FILE ON CHANNEL WC

		*****************************************************************
	3740	TOPS-10 INDIRECT COMMAND FILE PROCESS
		*****************************************************************

		*****************************************************************
	3815	SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY
		*****************************************************************

		3926	OPNHOM - ROUTINE TO OPEN THE DISK ON CHANNEL 'HOM'

		3937	RADHOM - ROUTINE TO READ A BLOCK ON CHANNEL 'HOM'

		3952	WHOM10 - ROUTINE TO WRITE A BLOCK ON CHANNEL 'HOM'

		3966	OPWCDP - ROUTINE TO OPEN IN DUMP MODE TO WRITE

		3977	OPRCDP - ROUTINE TO OPEN IN DUMP MODE TO READ

		3987	GETBLK - ROUTINE TO GET THE LOGICAL BLOCK NUMBER OF THE
				   FIRST BLOCK OF A FILE IN THE TOPS-10 FILE SYSTEM.
			
			CALL:		GO	GETBK1
					OR
					GO	GETBK2
					RETURN WITH BLOCK # IN T1

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 11            
                                                                                                                           SEQ 0022
		*****************************************************************
	4029	ROUTINE TO CREATE KS10FE.BIN FILE
		*****************************************************************

		4060	GET DISK DIRECTORY ADDRESS, PUT IN HOME BLOCK

		4076	WRITE OUT HOME BLOCK #1

		4082	HERE TO UPDATE AND WRITE OUT HOME BLOCK # 10

		*****************************************************************
	4121	PROCESS ".ULD" MICROCODE
		*****************************************************************

		4195	KSXX, CRAM PARITY COMPUTE SUBROUTINE

		4396	SUBROUTINE TO FILE END OF LINE
			CALL WITH:
				GO	RDEOL
				RETURN HERE

		*****************************************************************
	4449	COMMANDS -- OUTPUT
		*****************************************************************

		4461	OUTRAM, OUTPUT MICROCODE ".RAM" FILE

		4509	TOPS-10 OUTPUT MICRO-CODE ".RAM" FILE

		4552	OUTMT, OUTPUT MAGTAPE ".RDI" FILE

		4714	TOPS-10 OUTPUT MAGTAPE ".RDI" FILE

		*****************************************************************
	4753	PROCESS TOPS-10 MAGTAPE BOOT EXE FILE
		*****************************************************************

		4880	SELECT NEXT EXE DATA PAGE

		4884	READ EXE DATA PAGE

		4888	READ EXE DIRECTORY PAGE

		4908	MONITOR BOOT STRAP PROGRAM TO BE WRITTEN ON THE MAGTAPE

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 12            
                                                                                                                           SEQ 0023
		*****************************************************************
	5173	COMMANDS -- TAKE
		*****************************************************************

		*****************************************************************
	5206	COMMAND SUBROUTINES -- DPYFLD
		*****************************************************************

		*****************************************************************
	5548	COMMAND SUBROUTINES -- UPDFLD
		*****************************************************************

		5550	SUBROUTINE TO GET NEW VALUE FOR FIELD
			CALL WITH:
				T2/	OLD VALUE
				GO	UPDFLD
				HERE IF "^" (UPARROW), BACKUP ONE FIELD
				HERE WITH NEW VALUE IN T2

		*****************************************************************
	5623	DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD
		*****************************************************************

		*****************************************************************
	5787	MISCELLANEOUS ROUTINES
		*****************************************************************

		*****************************************************************
	5824	PSI LOGIC -- LEVTAB & CHNTAB
		*****************************************************************

		*****************************************************************
	5870	PSI LOGIC -- CONTROL-C AND CONTROL-X
		*****************************************************************

		5872	HERE ON A CONTROL-C INTERRUPT

		5880	HERE ON CONTROL-X INTERRUPT

		5891	HERE ON CONTROL-Z INTERRUPT

		5902	HERE ON A CONTROL-T INTERRUPT

		5910	here on control-o interrupt

		5915	*PSI LOGIC -- FORK TERMINATION

		5917	HERE WHEN A FORK TERMINATES

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 13            
                                                                                                                           SEQ 0024
		*****************************************************************
	5933	PSI LOGIC -- CONTROL T
		*****************************************************************

		*****************************************************************
	5954	STORAGE -- PRESERVED
		*****************************************************************

		5959	COMMAND STATUS BLOCK FOR COMND JSYS

		*****************************************************************
	5998	 COMMAND PROCESSOR
		*****************************************************************

		*****************************************************************
	6026	MAIN SUBROUTINE PACKAGE CONTROL
		*****************************************************************

		6029	INITIALIZE THE SUBROUTINE PACKAGE

		6038	CONTRL* SUBROUTINE PACKAGE INITIALIZATION

		6054	INITIALIZE PROCESSOR FLAGS AND PUSH LIST

		6072	INITIALIZE SUBROUTINES

		*****************************************************************
	6081	UUO HANDLING SUBROUTINE
		*****************************************************************

		6084	UUO INITIALIZATION

		6094	$UORTN - UUO PROCESSING

		6126	UUO ERROR EXIT ROUTINE

		6144	DECODE ROUTINE FOR SUBROUTINE UUO'S (037)

		*****************************************************************
	6214	PROCESSOR TYPE DETERMINATION
		*****************************************************************

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 14            
                                                                                                                           SEQ 0025
		*****************************************************************
	6250	PROGRAM HALTS
		*****************************************************************

		6252	SUBROUTINE ERROR HALT

		6274	FATAL PROGRAM ERROR HALT

		*****************************************************************
	6286	PROGRAM NAME PRINTER
		*****************************************************************

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

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

		6328	END OF PASS ROUTINE

		6342	END OF PROGRAM ROUTINE

		*****************************************************************
	6350	*SUBRTN* TELETYPE INPUT ROUTINES
		*****************************************************************

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

		6370	TELETYPE INPUT INITIALIZATION

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

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

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 15            
                                                                                                                           SEQ 0026
		6429	TELETYPE ALT-MODE CHECK ROUTINE

		6445	TELETYPE INPUT CHARACTER 

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

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

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

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

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

		6589	INPUT AND COMPUTE NUMBER

		6612	CHECK FOR PROPER AMOUNT OF CHARACTERS

		6637	NUMBER COMPUTING CONSTANTS

		6660	CONVERT CONVERSION ROUTINE

		*****************************************************************
	6684	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
		*****************************************************************

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

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 16            
                                                                                                                           SEQ 0027
		*****************************************************************
	6722	*SUBRTN* PRINT SUBROUTINES
		*****************************************************************

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

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

		6773	PRINT SUBROUTINE ENTRY POINT
			EXIT VIA $PNTI4 BELOW

		6805	PRINT ROUTINE EXIT

		6818	PRINT LIMIT WARNING & ALTERNATE EXIT PATH

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

		6868	SIXBIT PRINT SUBROUTINE
			PRINTS SIXBIT WORD IN AC0

		6872	NORMAL PRINTOUT

		6885	FORCED PRINTOUT

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

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

		6997	OCTAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

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

		7039	PRINTS ASCII WHOSE ADDRESS IS IN AC0

SMFILE DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^             DECDOC VER  00.24   19-FEB-79 10:59:48   PAGE 17            
                                                                                                                           SEQ 0028
		7058	DECIMAL PRINTOUT ROUTINE
			PRINTS NUMBER IN AC0

		*****************************************************************
	7093	*SUBRTN*  CHARACTER OUTPUT ROUTINES
		*****************************************************************

		7096	OUTPUT TERMINATION CONTROL ROUTINE

		7103	OVERALL CHARACTER OUTPUT CONTROL ROUTINE

		7130	USER MODE LF & CR FILLERS

		7146	RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT

		7151	USER MODE CHARACTER OUTPUT

		7183	USER MODE LOGICAL DEVICE OUTPUT

		7192	 LOGICAL DEVICE OUTPUT ROUTINES

		7221	LOGICAL DEVICE INITIALIZATION
			PHY DEV ASSIGNED AT RUN TIME

		7265	USER MODE CLOSE FILE

		7312	TOPS10, LOGICAL DEVICE OUTPUT

		7323	$INT10, TOPS10 INITIALIZE LOGICAL OUTPUT

		7352	USER MODE CLOSE FILE

		*****************************************************************
	7378	*STOR* RESERVED STORAGE
		*****************************************************************

		*****************************************************************
	7515	STORAGE -- ZEROED ON STARTUP
		*****************************************************************
SMPREB DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2^            DECDOC VER  00.24   19-FEB-79 11:02:49   PAGE 1             
                                                                                                                           SEQ 0029




















				   DOCUMENT
				**************
         SMPREB DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2^
				**************

















		    COPYRIGHT 1979
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

SMPREB DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2^            DECDOC VER  00.24   19-FEB-79 11:02:49   PAGE 2             
                                                                                                                           SEQ 0030

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


	23	PARAMETERS

	94	PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK
SMPREB DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2^            DECDOC VER  00.24   19-FEB-79 11:02:49   PAGE 3             
                                                                                                                           SEQ 0031
		14	JOHN R. KIRCHOFF

		*****************************************************************
	23	PARAMETERS
		*****************************************************************

		*****************************************************************
	94	PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK
		*****************************************************************
GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 1             
                                                                                                                           SEQ 0032




















				   DOCUMENT
				**************
             GSCN  --  Command Scanner Interface for DIAGNOSTICS
				**************

















		    COPYRIGHT 1979
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 2             
                                                                                                                           SEQ 0033

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


	29	Table of Contents

	51	Revision History

	84	Local Definitions

	133	Module Storage

	167	S%INIT  --  Initialize the GLXSCN Module

	180	S%ERR - ERROR TYPEOUT ROUTINE

	201	S%CMND  --  Scan a command

	2118	S%SCMP  --  String Comparison Routine

	2170	S%TBLK  --  Table lookup routine

	2297	KEYBOARD INTERFACE

	2303	Table of Contents

	2329	Revision History

	2356	Local Definitions

	2370	Module Storage

	2389	K%INIT  --  Initialization of the Scanning Module

	2430	K%RCOC  --  Read Character Output Control Table

	2462	K%WCOC  --  Write Character  Output Control table

	2485	K%SUET  --  Set User Escape Table

	2515	K%STYP  --  Set terminal type

	2614	K%TXTI  --  Handle Terminal Input

	2671	TXTL  --  Loop for inputting text

	2758	TTYCHR  --  Here to receive 1 character from the TTY
GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 3             
                                                                                                                           SEQ 0034

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


	2776	Utilities for text handling

	2970	SPCHK  --  Check for special characters

	3000	 CCU  --  Handle ^U (Rubout entire line)

	3028	CCR  --  Handle ^R (Re-type the line)

	3048	CCDEL  --  Handle Rubout (Delete one character)

	3079	CCW  --  Handle ^W (Delete back to punctuation character)

	3103	BEGBUF  --  Handle rubouts to beginning of buffer

	3116	TYPEBP  --  Type a string according to a byte-pointer

	3138	GLXCOM  --  Common module for Sub-Systems Components

	3166	Table of contents

	3183	Revision History

	3197	Global Storage

	3213	.INIT  - Initialize the common code

	3234	.ZPAGA - .ZPAGN - .ZCHNK  --  Zero out memory

	3263	.SAVEx Routines -- Save permanent ACS

	3311	.SAVET -- Routine to save the temporary ACS

	3327	.SVxx  --  Routines for saving random ACS

	3368	.POPJ, .RETE,.RETT & .RETF -- Common return routines

	3389	.AOS, .SOS and .ZERO - Support for INCR,DECR, ZERO

	3416	STOP CODE Processor
GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 4             
                                                                                                                           SEQ 0035
		*****************************************************************
	29	Table of Contents
		*****************************************************************

		*****************************************************************
	51	Revision History
		*****************************************************************

		*****************************************************************
	84	Local Definitions
		*****************************************************************

		*****************************************************************
	133	Module Storage
		*****************************************************************

		*****************************************************************
	167	S%INIT  --  Initialize the GLXSCN Module
		*****************************************************************

		*****************************************************************
	180	S%ERR - ERROR TYPEOUT ROUTINE
		*****************************************************************

		*****************************************************************
	201	S%CMND  --  Scan a command
		*****************************************************************

		572	*	RFPOS
			*	HRRZ	T2,T2
			*	JUMPE	T2,CMRTY2	;JUMP IF AT LEFT MARGIN

		653	***************************************
			***************************************

		1120	***********************
			***********************

		1606	*	IMCALL .IDTNC

		1616	*		ODCNV			;GET TODAY
			*		UMOVEM	T3,T3

		1619	*	IMCALL	.IDCNV		;CONVERT TO INTERNAL

GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 5             
                                                                                                                           SEQ 0036
		*****************************************************************
	2118	S%SCMP  --  String Comparison Routine
		*****************************************************************

		*****************************************************************
	2170	S%TBLK  --  Table lookup routine
		*****************************************************************

		*****************************************************************
	2297	KEYBOARD INTERFACE
		*****************************************************************

		*****************************************************************
	2303	Table of Contents
		*****************************************************************

		*****************************************************************
	2329	Revision History
		*****************************************************************

		*****************************************************************
	2356	Local Definitions
		*****************************************************************

		*****************************************************************
	2370	Module Storage
		*****************************************************************

		*****************************************************************
	2389	K%INIT  --  Initialization of the Scanning Module
		*****************************************************************

		*****************************************************************
	2430	K%RCOC  --  Read Character Output Control Table
		*****************************************************************

		*****************************************************************
	2462	K%WCOC  --  Write Character  Output Control table
		*****************************************************************

GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 6             
                                                                                                                           SEQ 0037
		*****************************************************************
	2485	K%SUET  --  Set User Escape Table
		*****************************************************************

		*****************************************************************
	2515	K%STYP  --  Set terminal type
		*****************************************************************

		*****************************************************************
	2614	K%TXTI  --  Handle Terminal Input
		*****************************************************************

		*****************************************************************
	2671	TXTL  --  Loop for inputting text
		*****************************************************************

		*****************************************************************
	2758	TTYCHR  --  Here to receive 1 character from the TTY
		*****************************************************************

		*****************************************************************
	2776	Utilities for text handling
		*****************************************************************

		*****************************************************************
	2970	SPCHK  --  Check for special characters
		*****************************************************************

		*****************************************************************
	3000	 CCU  --  Handle ^U (Rubout entire line)
		*****************************************************************

		*****************************************************************
	3028	CCR  --  Handle ^R (Re-type the line)
		*****************************************************************

		*****************************************************************
	3048	CCDEL  --  Handle Rubout (Delete one character)
		*****************************************************************

GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 7             
                                                                                                                           SEQ 0038
		*****************************************************************
	3079	CCW  --  Handle ^W (Delete back to punctuation character)
		*****************************************************************

		*****************************************************************
	3103	BEGBUF  --  Handle rubouts to beginning of buffer
		*****************************************************************

		*****************************************************************
	3116	TYPEBP  --  Type a string according to a byte-pointer
		*****************************************************************

		*****************************************************************
	3138	GLXCOM  --  Common module for Sub-Systems Components
		*****************************************************************

		*****************************************************************
	3166	Table of contents
		*****************************************************************

		*****************************************************************
	3183	Revision History
		*****************************************************************

		*****************************************************************
	3197	Global Storage
		*****************************************************************

		*****************************************************************
	3213	.INIT  - Initialize the common code
		*****************************************************************

		*****************************************************************
	3234	.ZPAGA - .ZPAGN - .ZCHNK  --  Zero out memory
		*****************************************************************

		*****************************************************************
	3263	.SAVEx Routines -- Save permanent ACS
		*****************************************************************

GSCN  --  C/--!.$ S#!..%2 I.4%2&!#% &/2 DIAGNOSTICS                     DECDOC VER  00.24   19-FEB-79 11:01:47   PAGE 8             
                                                                                                                           SEQ 0039
		*****************************************************************
	3311	.SAVET -- Routine to save the temporary ACS
		*****************************************************************

		*****************************************************************
	3327	.SVxx  --  Routines for saving random ACS
		*****************************************************************

		*****************************************************************
	3368	.POPJ, .RETE,.RETT & .RETF -- Common return routines
		*****************************************************************

		*****************************************************************
	3389	.AOS, .SOS and .ZERO - Support for INCR,DECR, ZERO
		*****************************************************************

		*****************************************************************
	3416	STOP CODE Processor
		*****************************************************************
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 1
SMFILE	MAC	19-Feb-79 10:46	                                                                                           SEQ 0040

     1					;MAINDEC-10-SMFILE
     2
     3			000000		MCNVER=0
     4			000003		DECVER=3
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3^
    13
    14	000137					LOC	137
    15	000137	000000	000003		MCNVER,,DECVER
    16	000000'					RELOC
    17
    18					;*COPYRIGHT 1978,1979
    19					;*DIGITAL EQUIPMENT CORPORATION
    20					;*MARLBORO, MASS. 01752
    21
    22					;*JOHN R. KIRCHOFF
    23
    24						NOSYM
    25						SEARCH	MONSYM,MACSYM
    26						.REQUI	SYS:MACREL
    27						.REQUI	SYS:MONSYM	;FOR DDT
    28
    29					INTERN	$CCLIN
    30					EXTERN	K%INIT,S%INIT,S%CMND,S%ERR
    31
    32					EXTERN	SMPREB	;START ADDRESS OF DIAGNOSTIC PRE-BOOT
    33					EXTERN	SMPEND	;END ADDRESS OF DIAGNOSTIC PRE-BOOT
    34
    35					IF2,<PRINTX	[STARTING PASS 2]>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 2
SMFILE	MAC	19-Feb-79 10:46		PARAMETERS                                                                         SEQ 0041

    36					SUBTTL	PARAMETERS
    37
    38					DEFINE	S,<;*********************************************************************>
    39
    40					S^;*********************************************************************^
    41					;*DATA SWITCHES
    42					S^;*********************************************************************^
    43
    44			040000		NOPNT==	040000		;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
    45			020000		PNTLPT==020000		;PRINT ALL DATA ON LPT (DSK IN USER MODE)
    46
    47					;*AC USE
    48
    49			000001		T1=1			;TEMPS
    50			000002		T2=2
    51			000003		T3=3
    52			000004		T4=4
    53			000005		T5=5
    54			000006		T6=6
    55			000007		T7=7
    56			000010		AC10=10
    57			000011		AC11=11
    58			000012		AC12=12
    59			000013		AC13=13
    60			000014		STPNTR=14		;STBUF STORE POINTER
    61			000015		FP=15			;STACK FRAME POINTER
    62			000016		CX=16			;CALL/RETURN TEMP
    63			000016		T16=16
    64			000017		P=17
    65
    66			000001		A=	1
    67			000002		B=	2
    68			000003		C=	3
    69			000004		D=	4
    70
    71			000000		AC0=	0
    72			000001		AC1=	1
    73			000002		AC2=	2
    74			000003		AC3=	3
    75			000004		AC4=	4
    76			000005		AC=	5
    77			000006		CHR=	6
    78			000007		CHR1=	7
    79			000010		LP=	10	;LINE CHAR POINTER
    80			000015		CNT=	15
    81			000016		INDX=	16
    82			000001		BYTE=	1
    83			000013		P1=	13
    84			000014		P2=	14
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 3
SMFILE	MAC	19-Feb-79 10:46		PARAMETERS                                                                         SEQ 0042

    85					;*FE-FILE DIRECTORY DEFINTIONS
    86
    87			400000		FEDIR=400000		;FE-DIR PAGE
    88
    89			000000		FSP=	0		;FREE SPACE POINTER
    90			000001		FSL=	1		;FREE SPACE PAGE #,,LENGTH
    91
    92			000002		MCP=	2		;MICROCODE POINTER
    93			000003		MCL=	3		;MICROCODE PAGE #,,LENGTH
    94
    95			000004		MPBP=	4		;MONITOR PRE-BOOT POINTER
    96			000005		MPBL=	5		;MONITOR PRE-BOOT PAGE #,,LENGTH
    97
    98			000006		DPBP=	6		;DIAGNOSTIC PRE-BOOT POINTER
    99			000007		DPBL=	7		;DIAGNOSTIC PRE-BOOT PAGE #,,LENGTH
   100
   101			000010		BC1P=	10		;BOOTCHECK 1 POINTER
   102			000011		BC1L=	11		;BOOTCHECK 1 PAGE #,,LENGTH
   103
   104			000012		BCKP=	12		;BOOTCHECK 2 PRE-BOOT POINTER
   105			000013		BCKL=	13		;BOOTCHECK 2 PRE-BOOT PAGE #,,LENGTH
   106
   107			000014		MBOOTP=	14		;MONITOR BOOT POINTER
   108			000015		MBOOTL=	15		;MONITOR BOOT PAGE #,,LENGTH
   109
   110			000016		DBP=	16		;DIAGNOSTIC BOOT POINTER
   111			000017		DBOOTL=	17		;DIAGNOSTIC BOOT PAGE #,,LENGTH
   112
   113			000020		BCHKP=	20		;BOOTCHECK 2 POINTER
   114			000021		BCHKL=	21		;BOOTCHECK 2 PAGE #,,LENGTH
   115
   116			000022		IFP0=	22		;INDIRECT FILE 0 POINTER
   117			000023		IFL0=	23		;INDIRECT FILE 0 PAGE #,,LENGTH
   118
   119			401000		CRAM=	401000		;CRAM STORAGE, 12 PAGES WORTH
   120
   121			415000		MPREBP=	415000		;MONITOR PRE-BOOT PAGE
   122			416000		DPREBP=	416000		;DIAGNOSTIC PRE-BOOT PAGE
   123
   124			417000		CRMBC1=	417000		;BOOTCHECK 1 STORAGE, 12 PAGES WORTH
   125
   126			433000		BCPREBP=433000		;BOOTCHECK 2 PRE-BOOT PAGE
   127
   128			434000		WINDOW=	434000		;WINDOW PAGE
   129
   130			435000		GENPAG=	435000		;
   131
   132			436000		HOMPAG=	436000		;HOME BLOCKS READ INTO HERE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 4
SMFILE	MAC	19-Feb-79 10:46		PARAMETERS                                                                         SEQ 0043

   133					S^;*********************************************************************^
   134					;*OPERATOR DEFINITIONS (NON-UUO'S)
   135					S^;*********************************************************************^
   136
   137		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
   138		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
   139		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
   140		262740	000000		OPDEF	GETIT	[POP	P,]	;GET DATA FROM PUSH LIST 
   141		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
   142
   143					S^;*********************************************************************^
   144					;*SUBROUTINE INITIALIZATION CALL
   145					S^;*********************************************************************^
   146
   147		265000	016626'		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
   148
   149					S^;*********************************************************************^
   150					;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
   151					S^;*********************************************************************^
   152
   153		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
   154		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
   155
   156					S^;*********************************************************************^
   157					;*TERMINAL INPUT UUO'S
   158					S^;*********************************************************************^
   159
   160		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
   161		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
   162		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
   163		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
   164		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
   165		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
   166		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
   167		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
   168		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
   169		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
   170		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 5
SMFILE	MAC	19-Feb-79 10:46		PARAMETERS                                                                         SEQ 0044

   171					S^;*********************************************************************^
   172					;*TERMINAL OUTPUT UUO'S.
   173					S^;*********************************************************************^
   174
   175		037000	000000		OPDEF	PNTA	[37B8!0B12!0]	;PRINT ASCII WORD
   176		037000	000001		OPDEF	PNTAF	[37B8!0B12!1]	;PRINT ASCII WORD FORCED
   177		037740	000000		OPDEF	PNTAL	[37B8!17B12!0]	;PRINT ASCIZ LINE
   178		037740	000001		OPDEF	PNTALF	[37B8!17B12!1]	;PRINT ASCIZ LINE FORCED
   179		037600	000003		OPDEF	PSIXL	[37B8!14B12!3]	;PRINT SIXBIT'Z LINE
   180		037640	000003		OPDEF	PSIXLF	[37B8!15B12!3]	;PRINT SIXBIT'Z LINE FORCED
   181		037000	000000		OPDEF	PNTMSG	[37B8!0B12!0]	;PRINT MESSAGE IMMEDIATE
   182		037040	000000		OPDEF	PNTMSF	[37B8!1B12!0]	;PRINT MESSAGE IMMEDIATE FORCED
   183		037100	000000		OPDEF	PSIXM	[37B8!2B12!0]	;PRINT SIXBIT'Z MSG IMMEDIATE
   184		037200	000000		OPDEF	PSIXMF	[37B8!4B12!0]	;PRINT SIXBIT'Z MSG IMM FORCED
   185		037000	000000		OPDEF	PNTCI	[37B8!0B12!0]	;PRINT CHARACTER IMMEDIATE
   186		037040	000000		OPDEF	PNTCIF	[37B8!1B12!0]	;PRINT CHARACTER IMMEDIATE FORCED
   187		037500	000000		OPDEF	PNTCHR	[37B8!12B12!0]	;PRINT CHARACTER
   188		037500	000001		OPDEF	PNTCHF	[37B8!12B12!1]	;PRINT CHARACTER FORCED
   189		037040	000000		OPDEF	PNT1	[37B8!1B12!0]	;PRINT ONE OCTAL DIGIT
   190		037040	000001		OPDEF	PNT1F	[37B8!1B12!1]	;PRINT 1 OCTAL DIGIT FORCED	
   191		037100	000000		OPDEF	PNT2	[37B8!2B12!0]	;PRINT TWO OCTAL DIGITS
   192		037100	000001		OPDEF	PNT2F	[37B8!2B12!1]	;PRINT 2 OCTAL DIGITS FORCED	
   193		037140	000000		OPDEF	PNT3	[37B8!3B12!0]	;PRINT THREE OCTAL DIGITS
   194		037140	000001		OPDEF	PNT3F	[37B8!3B12!1]	;PRINT THREE OCTAL DIGITS FORCED	
   195		037200	000000		OPDEF	PNT4	[37B8!4B12!0]	;PRINT FOUR OCTAL DIGITS
   196		037200	000001		OPDEF	PNT4F	[37B8!4B12!1]	;PRINT FOUR OCTAL DIGITS FORCED
   197		037240	000000		OPDEF	PNT5	[37B8!5B12!0]	;PRINT FIVE OCTAL DIGITS
   198		037240	000001		OPDEF	PNT5F	[37B8!5B12!1]	;PRINT FIVE OCTAL DIGITS FORCED
   199		037300	000000		OPDEF	PNT6	[37B8!6B12!0]	;PRINT SIX OCTAL DIGITS
   200		037300	000001		OPDEF	PNT6F	[37B8!6B12!1]	;PRINT SIX OCTAL DIGITS FORCED
   201		037340	000000		OPDEF	PNT7	[37B8!7B12!0]	;PRINT 7 OCTAL DIGITS
   202		037340	000001		OPDEF	PNT7F	[37B8!7B12!1]	;PRINT 7 OCTAL DIGITS FORCED
   203		037400	000000		OPDEF	PNT8	[37B8!10B12!0]	;PRINT 8 OCTAL DIGITS
   204		037400	000001		OPDEF	PNT8F	[37B8!10B12!1]	;PRINT 8 OCTAL DIGITS FORCED
   205		037440	000000		OPDEF	PNT11	[37B8!11B12!0]	;PRINT 11 OCTAL DIGITS
   206		037440	000001		OPDEF	PNT11F	[37B8!11B12!1]	;PRINT 11 OCTAL DIGITS FORCED.
   207		037400	000000		OPDEF	PNTADR	[37B8!10B12!0]	;PRINT PHYSICAL ADDRESS
   208		037400	000001		OPDEF	PNTADF	[37B8!10B12!1]	;PRINT PHYSICAL ADDRESS FORCED
   209		037600	000000		OPDEF	PNTOCT  [37B8!14B12!0]	;PRINT FULL WORD OCTAL
   210		037600	000001		OPDEF	PNTOTF	[37B8!14B12!1]	;PRINT FULL WORD OCTAL FORCED
   211		037540	000000		OPDEF	PNTHW	[37B8!13B12!0]	;PRINT OCTAL HALF WORDS, 6 SP 6
   212		037540	000001		OPDEF	PNTHWF	[37B8!13B12!1]	;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
   213		037700	000003		OPDEF	PNTOCS	[37B8!16B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S
   214		037740	000003		OPDEF	PNTOCF	[37B8!17B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
   215		037640	000000		OPDEF	PNTDEC	[37B8!15B12!0]	;PRINT DECIMAL, SUPRESS LEADING 0'S
   216		037640	000001		OPDEF	PNTDCF	[37B8!15B12!1]	;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
   217		037700	000000		OPDEF	PNTDS	[37B8!16B12!0]	;PRINT DECIMAL, SPACES FOR LD 0'S
   218		037700	000001		OPDEF	PNTDSF	[37B8!16B12!1]	;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 6
SMFILE	MAC	19-Feb-79 10:46		PARAMETERS                                                                         SEQ 0045

   219		037200	000002		OPDEF	PNTNM	[37B8!4B12!2]	;PRINT PROGRAM NAME
   220		037000	000002		OPDEF	PNTSIX	[37B8!0B12!2]	;PRINT SIXBIT WORD
   221		037040	000002		OPDEF	PNTSXF	[37B8!1B12!2]	;PRINT SIXBIT WORD FORCED
   222		037240	000002		OPDEF	DROPDV	[37B8!5B12!2]	;CLOSE LOGICAL FILE, USER MODE
   223		037000	000063'		OPDEF	PCRL	[37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
   224		037040	000063'		OPDEF	PCRLF	[37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
   225		037000	000040		OPDEF	PSP	[37B8!0B12!40]	;PRINT SPACE
   226		037040	000040		OPDEF	PSPF	[37B8!1B12!40]	;PRINT SPACE FORCED
   227		037040	000040		OPDEF	PSPACE	[37B8!1B12!40]	;PRINT SPACE FORCED
   228		037040	000011		OPDEF	PTAB	[37B8!1B12!11]	;PRINT TAB FORCED
   229		037000	000064'		OPDEF	PCRL2	[37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
   230		037040	000064'		OPDEF	PCRL2F	[37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
   231		037040	000007		OPDEF	PBELL	[37B8!1B12!7]	;PRINT TTY BELL
   232
   233		037040	000026		OPDEF	PFORCE	[37B8!1B12!26]	;PRINT FORCE, CONTROL O OVERRIDE
   234
   235					DEFINE	PMSG	(ARG),<
   236						PSIXM	[SIXBIT\ARG'_\]>
   237
   238					DEFINE	PMSGF	(ARG),<
   239						PSIXMF	[SIXBIT\ARG'_\]>
   240
   241					;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
   242					;*	CONSERVES CORE OVER ASCIZ
   243
   244					DEFINE	SIXBTZ	(ARG),<	[SIXBIT\ARG'_\]>
   245
   246					S^;*********************************************************************^
   247					;*END OF PASS/PROGRAM UUOS
   248					S^;*********************************************************************^
   249
   250		037500	000004		OPDEF	ENDUUO	[37B8!12B12!4]	;UUO TO DISPLAY LIGHTS
   251		037700	000004		OPDEF	EOPUUO	[37B8!16B12!4]	;END OF PROGRAM UUO
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 7
SMFILE	MAC	19-Feb-79 10:46		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0046

   252					SUBTTL	STANDARD PROGRAM ASSIGNMENTS
   253
   254					S^;*********************************************************************^
   255					;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
   256					S^;*********************************************************************^
   257
   258			400000		AROV==	400000			;ARITHMETIC OVERFLOW
   259			200000		CRY0==	200000			;CARRY 0
   260			100000		CRY1==	100000			;CARRY 1
   261			040000		FOV==	40000			;FLOATING POINT OVERFLOW
   262			020000		BIS==	20000			;BYTE INTERRUPT
   263			010000		USERF==	10000			;USER MODE
   264			004000		EXIOT==	4000			;USER PRIV I/O
   265			000100		FXU==	100			;FLOATING POINT UNDERFLOW
   266			000040		DCK==	40			;DIVIDE CHECK
   267
   268					S^;*********************************************************************^
   269					;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
   270					S^;*********************************************************************^
   271
   272			000040		LUUO==	40			;UUO STORAGE, UUO 1-37
   273			000041		LUUOI==	41			;UUO SERVICE INSTRUCTION
   274
   275					S^;*********************************************************************^
   276					;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
   277					S^;*********************************************************************^
   278
   279			000040		JOBUUO==40
   280			000041		JOB41==	41
   281			000044		JOBREL==44
   282			000074		JOBDDT==74
   283			000116		JOBSYM==116
   284			000117		JOBUSY==117
   285			000120		JOBSA==	120
   286			000121		JOBFF==	121
   287			000124		JOBREN==124
   288			000125		JOBAPR==125
   289			000126		JOBCNI==126
   290			000127		JOBTPC==127
   291			000130		JOBOPC==130
   292			000137		JOBVER==137
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 8
SMFILE	MAC	19-Feb-79 10:46		STANDARD PROGRAM ASSIGNMENTS                                                       SEQ 0047

   293					S^;*********************************************************************^
   294					;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
   295					S^;*********************************************************************^
   296
   297			000040		.JBUUO==40
   298			000041		.JB41==	41
   299			000044		.JBREL==44
   300			000074		.JBDDT==74
   301			000116		.JBSYM==116
   302			000117		.JBUSY==117
   303			000120		.JBSA==	120
   304			000121		.JBFF==	121
   305			000124		.JBREN==124
   306			000125		.JBAPR==125
   307			000126		.JBCNI==126
   308			000127		.JBTPC==127
   309			000130		.JBOPC==130
   310			000137		.JBVER==137
   311
   312					S^;*********************************************************************^
   313					;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
   314					S^;*********************************************************************^
   315
   316			200000		PDLOVU==200000			;PUSHDOWN LIST OVERFLOW
   317			020000		MPVU==	20000			;MEMORY PROTECTION VIOLATION
   318			010000		NXMU==	10000			;NON-X-MEMORY
   319			004000		PARU==	4000			;PARITY ERROR
   320			001000		CLKU==	1000			;CLOCK
   321			000100		FOVU==	100			;FLOATING OVERFLOW
   322			000010		AROVU==	10			;ARITHMETIC OVERFLOW
   323
   324					S^;*********************************************************************^
   325					;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
   326					;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
   327					;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
   328					S^;*********************************************************************^
   329
   330			000017		$DEVCH==17			;LOGICAL DEVICE CHANNEL
   331
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 9
SMFILE	MAC	19-Feb-79 10:46		MACROS                                                                             SEQ 0048

   332					SUBTTL	MACROS
   333
   334					DEFINE	SCMTAB(NAME),<
   335					NAME:	XWD	L.'NAME,L.'NAME
   336					
   337					DEFINE	ECMTAB,<
   338						L.'NAME==.-NAME-1
   339					>
   340					>
   341
   342					DEFINE	CMTAB(CMD,ADR),<
   343						[ASCIZ "CMD"],,ADR
   344					>
   345
   346					DEFINE	CMABR(ABBR,REST,ADDR),<
   347						[ASCIZ "ABBR"],,[ TLNN T1,(CM%ESC)
   348								  JRST ADDR
   349								  HRROI	T1,[ASCIZ "REST "]
   350								  SKIPN MONTYP
   351									JRST [HRRZ 1,1
   352									OUTSTR @1
   353									JRST ADDR]
   354								  PSOUT
   355								  JRST ADDR]
   356					>
   357
   358					DEFINE	CMD(FUNC,ERR,%A),<
   359					%A:!	XLIST
   360					IFNB <ERR>,<
   361						MOVEI	T1,[ASCIZ "ERR"]
   362						MOVEM	T1,CMDMSG
   363					>
   364					IFB <ERR>,<
   365						SETZM	CMDMSG
   366					>
   367						MOVEI	T1,CSB
   368						MOVEI	T2,FUNC
   369						SKIPN	MONTYP
   370						JRST	[GO 	S%CMND
   371							 JRST	.+3]
   372						COMND
   373						ERJMP	[PUSH P,[%A]
   374							 JRST CMJERR]
   375						TLNE	T1,(CM%NOP)
   376						GO	CMDERR
   377						LIST
   378					>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 10
SMFILE	MAC	19-Feb-79 10:46		MACROS                                                                             SEQ 0049

   379					DEFINE	NOISE(TEXT),<
   380						CMD	[FLDDB.(.CMNOI,,<-1,,[ASCIZ "TEXT"]>)],<EXPECTING TEXT>
   381					>
   382					DEFINE	CMDNOP(FUNC,ERR,%A),<
   383					%A:!	XLIST
   384					IFNB <ERR>,<
   385						MOVEI	T1,[ASCIZ "ERR"]
   386						MOVEM	T1,CMDMSG
   387					>
   388					IFB <ERR>,<
   389						SETZM	CMDMSG
   390					>
   391						MOVEI	T1,CSB
   392						MOVEI	T2,FUNC
   393						SKIPN	MONTYP
   394						JRST	[GO 	S%CMND
   395							 JRST	.+3]
   396						COMND
   397						ERJMP	[PUSH P,[%A]
   398							 JRST CMJERR]
   399						TLNE	T1,(CM%NOP)
   400						LIST
   401					>
   402
   403					DEFINE	ERR(TEXT),<
   404						GO	[HRROI	T1,[ASCIZ "TEXT"]
   405							 JRST	ERR%]
   406					>
   407
   408					DEFINE	WARN(TEXT),<
   409						MOVEI	[ASCIZ "
   410					% TEXT
   411					"]
   412						PNTALF
   413					>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 11
SMFILE	MAC	19-Feb-79 10:46		MACROS                                                                             SEQ 0050

   414					DEFINE	MOVSLJ(AC,E),<
   415						EXTEND	AC,[EXP <016B8+<Z E>>]
   416					>
   417
   418					DEFINE	MOVST(AC,E),<
   419						EXTEND	AC,[EXP <015B8+<Z E>>]
   420					>
   421
   422		260740	000623'		OPDEF	CONFIRM	[GO	CFMCMD]
   423
   424					DEFINE	OP$$AC(OP,ACLST),<
   425						XLIST
   426					IRP ACLST,<
   427						OP	P,ACLST
   428					>
   429						LIST
   430					>
   431
   432					DEFINE	SAVEAC,<
   433						OP$$AC	PUSH,<T1,T2,T3,T4,T5,T6,FP,CX>
   434					>
   435
   436					DEFINE	RESTAC,<
   437						OP$$AC	POP,<CX,FP,T6,T5,T4,T3,T2,T1>
   438					>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 12
SMFILE	MAC	19-Feb-79 10:46		PROGRAM PARAMETERS                                                                 SEQ 0051

   439					SUBTTL	PROGRAM PARAMETERS
   440
   441					S^;*********************************************************************^
   442					;*PROGRAM VARIABLE PARAMETER AREA
   443					S^;*********************************************************************^
   444
   445	000000'	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
   446	000001'	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
   447	000002'	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
   448	000003'	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
   449	000004'	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
   450	000005'	000000	000000		MONTEN:	0		;-1= LOADED BY 10
   451	000006'	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
   452	000007'	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
   453	000010'	000000	000000		ITRCNT:	0		;PROGRAM ITERATION COUNT
   454	000011'	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
   455	000012'	000000	000000		TESTPC:	0		;SUBTEST PC
   456	000013'	000000	000000		ERRPC:	0		;ERROR PC
   457	000014'	000000	000000		ERRTLS:	0		;ERROR TOTALS
   458	000015'	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
   459
   460					S^;*********************************************************************^
   461					;*SPECIAL PROGRAM DISPATCH ADDRESSES
   462					S^;*********************************************************************^
   463
   464	000016'				CPOPJ1:			;SKIP RETURN
   465	000016'	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
   466	000017'				CPOPJ:			;NON-SKIP REGULAR RETURN
   467	000017'	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
   468	000020'	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
   469
   470					S^;*********************************************************************^
   471					;*PROCESSOR CONTROL STORAGE
   472					S^;*********************************************************************^
   473
   474	000021'	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
   475
   476	000022'	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
   477	000023'	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 13
SMFILE	MAC	19-Feb-79 10:46		PROGRAM PARAMETERS                                                                 SEQ 0052

   478					S^;*********************************************************************^
   479					;*UUO DISPATCH TABLE
   480					S^;*********************************************************************^
   481						XLIST
   482						LIST
   483	000024'	000020'	000020'		UUODIS:	LUUO1,,$UUOER
   484	000025'	000020'	000020'			LUUO3,,LUUO2
   485	000026'	000020'	000020'			LUUO5,,LUUO4
   486	000027'	000020'	000020'			LUUO7,,LUUO6
   487	000030'	000020'	000020'			LUUO11,,LUUO10
   488	000031'	000020'	000020'			LUUO13,,LUUO12
   489	000032'	000020'	000020'			LUUO15,,LUUO14
   490	000033'	000020'	000020'			LUUO17,,LUUO16
   491	000034'	000020'	000020'			LUUO21,,LUUO20
   492	000035'	000020'	000020'			LUUO23,,LUUO22
   493	000036'	000020'	000020'			LUUO25,,LUUO24
   494	000037'	000020'	000020'			LUUO27,,LUUO26
   495	000040'	000020'	000020'			LUUO31,,LUUO30
   496	000041'	000020'	000020'			LUUO33,,LUUO32
   497
   498					S^;*********************************************************************^
   499					;*PRINT CONTROL STORAGE
   500					S^;*********************************************************************^
   501
   502	000042'	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
   503	000043'	000000	000000		PNTENB:	0		;PRINT ENABLE
   504	000044'	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
   505	000045'	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
   506	000046'	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
   507	000047'	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
   508	000050'	000000	000000		$TWCNT:	0		;TIME WAITED
   509	000051'	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
   510	000052'	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
   511	000053'	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
   512	000054'	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
   513	000055'	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
   514	000056'	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
   515	000057'	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
   516	000060'	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
   517	000061'	000000	000000		USRLFF:	0		;USER LF FILLERS
   518	000062'	000000	000000		USRCRF:	0		;USER CR FILLERS
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 14
SMFILE	MAC	19-Feb-79 10:46		PROGRAM PARAMETERS                                                                 SEQ 0053

   519
   520	000063'				CRLF:	ASCII/
   521	000063'	015 012 000 000 000 	/
   522	000064'				CRLF2:	ASCII/
   523
   524	000064'	015 012 015 012 000 	/
   525	000065'	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
   526	000066'	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
   527	000067'	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
   528
   529					S^;*********************************************************************^
   530					;*USER MODE OUTPUT FILE INFORMATION
   531					S^;*********************************************************************^
   532
   533	000070'				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
   534	000073'	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
   535	000074'	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
   536	000075'					BLOCK	2
   537
   538					S^;*********************************************************************^
   539					;*PUSHDOWN LIST CONTROL INFORMATION
   540					S^;*********************************************************************^
   541
   542	000077'	777577	000077'		PLIST:	PLIST-PLISTE,,PLIST
   543	000100'				PLISTS:	BLOCK	200
   544	000300'	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
   545
   546					S^;*********************************************************************^
   547					;*NUMBER INPUT DIGIT FLAG
   548					S^;*********************************************************************^
   549
   550	000301'	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
   551
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 15
SMFILE	MAC	19-Feb-79 10:46		PROGRAM PARAMETERS                                                                 SEQ 0054

   552					S^;*********************************************************************^
   553					;*USER MODE MONITOR TYPE FLAG
   554					S^;*********************************************************************^
   555
   556	000302'	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
   557
   558					S^;*********************************************************************^
   559					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
   560					S^;*********************************************************************^
   561
   562	000303'	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
   563
   564					S^;*********************************************************************^
   565					;*"SWITCH" CALL USAGE CONTROL
   566					S^;*********************************************************************^
   567
   568	000304'	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
   569
   570					S^;*********************************************************************^
   571					;*SM10 (KS-10) PROCESSOR TYPE FLAG
   572					S^;*********************************************************************^
   573
   574	000305'	000000	000000		SM10:	0	;IF -1 THIS IS A KS-10
   575
   576					SALL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 16
SMFILE	MAC	19-Feb-79 10:46		FIXED DATABASE                                                                     SEQ 0055

   577					SUBTTL	FIXED DATABASE
   578
   579	000306'	254 00 0 00 000345'	EV:	JRST START
   580	000307'	254 00 0 00 000537'		JRST REEN
   581	000310'	000000	000003			MCNVER,,DECVER
   582
   583	000311'	123 115 106 111 114 	PROMPT:	ASCIZ	"SMFILE>"
   584	000312'	105 076 000 000 000 
   585
   586	000313'	000000	000000		CMDFNC:	FLDDB.	(.CMKEY,,MAINCM)
   587	000314'	000000	000315'
   588	000315'	000023	000023			SCMTAB	MAINCM
   589
   590	000316'	012650'	012656'			CMABR	D,EPOSIT,DEP
   591	000317'	012665'	012670'			CMABR	DE,OSIT,DEP
   592	000320'	012677'	001074'			CMTAB	DEBUG,SETDEB
   593	000321'	012701'	001176'			CMTAB	DEPOSIT,DEP
   594
   595	000322'	012703'	012711'			CMABR	E,XAMINE,EXAM
   596	000323'	012720'	001143'			CMTAB	ECHO,ECHO
   597	000324'	012721'	012726'			CMABR	EX,IT,.EXIT
   598	000325'	012735'	001324'			CMTAB	EXAMINE,EXAM
   599	000326'	012737'	001421'			CMTAB	EXIT,.EXIT
   600
   601	000327'	012740'	001440'			CMTAB	HELP,HELP
   602
   603	000330'	012741'	000664'			CMTAB	INFORMATION,INFORM
   604
   605	000331'	012744'	010230'			CMTAB	OUTPUT,OUTX
   606
   607	000332'	012746'	001022'			CMTAB	PUSH,PUSHCM
   608
   609	000333'	012747'	005215'			CMTAB	RDBC1,RDBC1
   610	000334'	012751'	005217'			CMTAB	READ,READ
   611
   612	000335'	012752'	001252'			CMTAB	SERIAL,SERIAL
   613
   614	000336'	012754'	011405'			CMTAB	TAKE,TAKE
   615	000337'	012755'	004621'			CMTAB	TYPE,.TYPE
   616
   617	000340'	012756'	001526'			CMTAB	WRITE,WRITE
   618
   619						ECMTAB
   620
   621	000341'	014000	000000		INIT:	FLDDB.	.CMINI
   622	000342'	000000	000000
   623	000343'	010000	000000		CFM:	FLDDB.	.CMCFM
   624	000344'	000000	000000
   625
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 17
SMFILE	MAC	19-Feb-79 10:46		INIT PROGRAM                                                                       SEQ 0056

   626					SUBTTL	INIT PROGRAM
   627
   628	000345'	265 00 0 00 016626'	START:	PGMINT
   629
   630	000346'	402 00 0 00 000046'		SETZM	PNTSPC		;NO SPACES AFTER NUMBERS
   631	000347'	201 16 0 00 000001 		MOVEI	16,1		;CLEAR AC'S
   632	000350'	403 00 0 00 021144'		SETZB	0,FIRZER	;AND LOW CORE
   633	000351'	251 16 0 00 000016 		BLT	16,16
   634	000352'	200 01 0 00 012760'		MOVE	T1,[FIRZER,,FIRZER+1]
   635	000353'	251 01 0 00 021433'		BLT	T1,ENDZER	;ZAP!
   636
   637	000354'	200 01 0 00 012761'		MOVE	T1,[.PRIIN,,.PRIOU]
   638	000355'	202 01 0 00 016373'		MOVEM	T1,CSB+.CMIOJ
   639
   640	000356'	332 00 0 00 000302'		SKIPE	MONTYP
   641	000357'	254 00 0 00 000367'		JRST	START1
   642
   643						OUTSTR	[ASCIZ/[FOR HELP TYPE "HELP"]
   644	000360'	051 03 0 00 012762'	/]
   645	000361'	260 17 0 00 012465'		GO	CONCIN		;INIT ^C INTERRUPT
   646	000362'	260 17 0 00 000000*		GO	S%INIT		;INIT SCANNING MODULE
   647	000363'	260 17 0 00 000000*		GO	K%INIT		;INIT KEYBOARD MODULE
   648	000364'	260 17 0 00 000522'		GO	T$INT		;INIT SPECIAL SUBRTN INPUT
   649	000365'	260 17 0 00 012444'		GO	INTCOR		;INIT CORE FOR CRAM STORE
   650	000366'	254 00 0 00 000541'		JRST	NEXT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 18
SMFILE	MAC	19-Feb-79 10:46		INIT PROGRAM                                                                       SEQ 0057

   651					START1:	TMSG	<[FOR HELP TYPE "HELP"]
   652	000367'	561 01 0 00 012762'	>
   653	000370'	104 00 0 00 000076 
   654	000371'	201 01 0 00 400000 		MOVEI	T1,.FHSLF
   655	000372'	104 00 0 00 000150 		RPCAP			;GET CURRENT CAPABILITIES
   656	000373'	320 16 0 00 012772'		ERMSG	<RPCAP FAILED>
   657	000374'	661 03 0 00 600000 		TLO	T3,(SC%CTC+SC%GTB)
   658	000375'	104 00 0 00 000151 		EPCAP
   659	000376'	320 16 0 00 013000'		ERMSG	<EPCAP FAILED>
   660
   661	000377'	201 01 0 00 400000 		MOVEI	T1,.FHSLF	;THIS FORK
   662	000400'	200 02 0 00 013003'		MOVE	T2,[LEVTAB,,CHNTAB]
   663	000401'	104 00 0 00 000125 		SIR
   664	000402'	320 16 0 00 013015'		ERMSG	<CAN NOT SET ADDRESS OF LEVTAB AND CHNTAB>
   665
   666	000403'	200 01 0 00 013020'		MOVE	T1,[.TICCX,,^D30]
   667	000404'	104 00 0 00 000137 		ATI
   668	000405'	320 16 0 00 013027'		ERMSG	<CAN NOT ENABLE CONTROL-X>
   669
   670	000406'	200 01 0 00 013032'		MOVE	T1,[.TICCC,,^D31]
   671	000407'	104 00 0 00 000137 		ATI
   672	000410'	320 16 0 00 013041'		ERMSG	<CAN NOT ENABLE CONTROL-C>
   673
   674	000411'	200 01 0 00 013044'		MOVE	T1,[.TICCZ,,^D32]
   675	000412'	104 00 0 00 000137 		ATI
   676	000413'	320 16 0 00 013053'		ERMSG	<CAN NOT ENABLE CONTROL-Z>
   677
   678	000414'	200 01 0 00 013056'		MOVE	T1,[.TICCT,,^D33]
   679	000415'	104 00 0 00 000137 		ATI
   680	000416'	320 16 0 00 013065'		ERMSG	<CAN NOT ENABLE CONTROL-T>
   681
   682	000417'	200 01 0 00 013070'		MOVE	T1,[.TICCo,,^D34]
   683	000420'	104 00 0 00 000137 		ATI
   684	000421'	320 16 0 00 013077'		ERMSG	<CAN NOT ENABLE CONTROL-o>
   685
   686	000422'	201 01 0 00 400000 		MOVEI	T1,.FHSLF
   687	000423'	201 02 0 00 200076 		MOVEI	T2,1B19+1B30+1B31+1B32+1B33+1b34
   688	000424'	104 00 0 00 000131 		AIC
   689	000425'	320 16 0 00 013105'		ERMSG	<AIC FAILED>
   690
   691	000426'	104 00 0 00 000126 		EIR
   692	000427'	320 16 0 00 013113'		ERMSG	<EIR FAILED>
   693
   694	000430'	254 00 0 00 000541'		JRST	NEXT		;JOIN MAIN LOOP
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 19
SMFILE	MAC	19-Feb-79 10:46		MAIN LOOP                                                                          SEQ 0058

   695					SUBTTL	MAIN LOOP
   696
   697	000431'	336 00 0 00 000302'	CMDERR:	SKIPN	MONTYP
   698	000432'	254 00 0 00 000462'		JRST	CMDE10
   699	000433'	261 17 0 00 000002 		PUSH	P,T2
   700	000434'	201 01 0 00 400000 		MOVEI	T1,.FHSLF
   701	000435'	104 00 0 00 000012 		GETER
   702	000436'	320 16 0 00 013123'		ERMSG	<CMDERR: GETER FAILED>
   703	000437'	621 02 0 00 777777 		TLZ	T2,-1
   704	000440'	306 02 0 00 600416 		CAIN	T2,IFIXX3
   705						JRST   [POP P,T2
   706	000441'	254 00 0 00 013126'			RET]
   707
   708	000442'	336 00 0 00 021155'		SKIPN	CMDMSG
   709	000443'	254 00 0 00 000451'		JRST	.+6
   710
   711						HRROI	T1,[ASCIZ "
   712	000444'	561 01 0 00 013130'	?COMMAND ERROR: "]
   713	000445'	104 00 0 00 000076 		PSOUT
   714	000446'	560 01 0 00 021155'		HRRO	T1,CMDMSG
   715	000447'	104 00 0 00 000076 		PSOUT
   716	000450'	254 00 0 00 000537'		JRST	REEN
   717
   718						HRROI	T1,[ASCIZ "
   719	000451'	561 01 0 00 013134'	?JSYS ERROR: "]
   720	000452'	104 00 0 00 000076 		PSOUT
   721	000453'	201 01 0 00 000101 		MOVEI	T1,.PRIOU
   722	000454'	525 02 0 00 400000 		HRLOI	T2,.FHSLF
   723	000455'	201 03 0 00 000000 		MOVEI	T3,0
   724	000456'	104 00 0 00 000011 		ERSTR
   725	000457'	320 16 0 00 000457'		  ERJMP	.
   726	000460'	320 16 0 00 000460'		  ERJMP	.
   727	000461'	254 00 0 00 000537'		JRST	REEN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 20
SMFILE	MAC	19-Feb-79 10:46		MAIN LOOP                                                                          SEQ 0059

   728
   729	000462'	336 00 0 00 021155'	CMDE10:	SKIPN	CMDMSG
   730	000463'	254 00 0 00 000470'		JRST	.+5
   731	000464'	051 03 0 00 013140'		OUTSTR	[ASCIZ/?COMMAND ERROR: /]
   732	000465'	051 03 1 00 021155'		OUTSTR	@CMDMSG
   733						OUTSTR	[ASCIZ/
   734	000466'	051 03 0 00 013144'	/]
   735	000467'	254 00 0 00 000537'		JRST	REEN
   736	000470'	260 17 0 00 000000*		GO	S%ERR		;REPORT SCANNER ERROR
   737	000471'	254 00 0 00 000537'		JRST	REEN
   738
   739	000472'	336 00 0 00 000302'	ERR%:	SKIPN	MONTYP
   740	000473'	254 00 0 00 000505'		JRST	ERR%10
   741	000474'	104 00 0 00 000313 		ESOUT
   742	000475'	561 01 0 00 013145'		TMSG	< - ERROR AT PC >
   743	000476'	104 00 0 00 000076 
   744	000477'	550 00 0 17 000000 		HRRZ	(P)
   745	000500'	370 00 0 00 000000 		SOS
   746	000501'	037 17 0 00 000003 		PNTOCF
   747						TMSG	<
   748	000502'	561 01 0 00 013144'	>
   749	000503'	104 00 0 00 000076 
   750	000504'	254 00 0 00 000537'		JRST	REEN
   751	000505'	051 13 0 00 000000 	ERR%10:	TTCALL	13,0
   752	000506'	255 00 0 00 000000 		JFCL
   753	000507'	550 01 0 00 000001 		HRRZ	1,1
   754	000510'	051 03 0 00 013151'		OUTSTR	[ASCIZ/?/]
   755	000511'	051 03 1 00 000001 		OUTSTR	@1
   756	000512'	051 03 0 00 013145'		OUTSTR	[ASCIZ/ - ERROR AT PC /]
   757	000513'	550 00 0 17 000000 		HRRZ	(P)
   758	000514'	370 00 0 00 000000 		SOS
   759	000515'	037 17 0 00 000003 		PNTOCF
   760						OUTSTR	[ASCIZ/
   761	000516'	051 03 0 00 013144'	/]
   762	000517'	051 11 0 00 000000 		CLRBFI
   763	000520'	402 00 0 00 005403'		SETZM	CCBLK+2
   764	000521'	254 00 0 00 000537'		JRST	REEN
   765
   766	000522'	200 00 0 00 013152'	T$INT:	MOVE	[GO	$$TT0]
   767	000523'	202 00 0 00 017246'		MOVEM	$$$TT0
   768	000524'	200 00 0 00 013153'		MOVE	[GO	$$TT1]
   769	000525'	202 00 0 00 017317'		MOVEM	$$$TT1
   770	000526'	263 17 0 00 000000 		RTN
   771
   772	000527'	051 00 0 00 000052'	$$TT0:	INCHRW	$TTCHR
   773	000530'	200 00 0 00 000052'		MOVE	$TTCHR
   774	000531'	302 00 0 00 000032 		CAIE	"Z"-100
   775	000532'	037 12 0 00 000000 		PNTCHR
   776	000533'	263 17 0 00 000000 		RTN
   777
   778	000534'	051 00 0 00 000000 	$$TT1:	INCHRW
   779	000535'	037 12 0 00 000000 		PNTCHR
   780	000536'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 21
SMFILE	MAC	19-Feb-79 10:46		MAIN LOOP                                                                          SEQ 0060

   781	000537'	200 01 0 00 012761'	REEN:	MOVE	T1,[.PRIIN,,.PRIOU]
   782	000540'	202 01 0 00 016373'		MOVEM	T1,CSB+.CMIOJ
   783
   784	000541'	402 00 0 00 021160'	NEXT:	SETZM	CTADR
   785	000542'	561 01 0 00 016423'		HRROI	T1,CMDBUF
   786	000543'	202 01 0 00 016375'		MOVEM	T1,CSB+.CMBFP
   787	000544'	202 01 0 00 016376'		MOVEM	T1,CSB+.CMPTR
   788	000545'	201 01 0 00 000372 		MOVEI	T1,^D250
   789	000546'	202 01 0 00 016377'		MOVEM	T1,CSB+.CMCNT
   790	000547'	202 01 0 00 016402'		MOVEM	T1,CSB+.CMABC
   791	000550'	561 01 0 00 016505'		HRROI	T1,ATOM
   792	000551'	202 01 0 00 016401'		MOVEM	T1,CSB+.CMABP
   793
   794	000552'					CMD	INIT
   795
   796	000563'	200 17 0 00 000077'	PARSE:	MOVE	P,PLIST
   797	000564'	201 01 0 00 012645'		MOVEI	T1,PARSET
   798	000565'	202 01 0 00 021160'		MOVEM	T1,CTADR
   799
   800	000566'					CMD	CMDFNC,<NOT A VALID COMMAND>
   801
   802	000600'	402 00 0 00 021160'		SETZM	CTADR
   803	000601'	550 04 0 02 000000 		HRRZ	T4,(T2)		;GET DISPATCH ADDRESS
   804	000602'	260 17 0 04 000000 		GO	(T4)		;PROCESS COMMAND
   805
   806	000603'	254 00 0 00 000541'		JRST	NEXT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 22
SMFILE	MAC	19-Feb-79 10:46		MAIN LOOP                                                                          SEQ 0061

   807					;*HERE ON AN ERROR FROM COMMAND JSYS
   808
   809	000604'	201 01 0 00 400000 	CMJERR:	MOVEI	T1,.FHSLF
   810	000605'	104 00 0 00 000012 		GETER
   811	000606'	320 16 0 00 013175'		ERMSG	<GETER FAILED>
   812	000607'	621 02 0 00 777777 		TLZ	T2,-1
   813	000610'	302 02 0 00 600220 		CAIE	T2,IOX4
   814	000611'	260 17 0 00 000000*		CALL	JSHLT0
   815
   816	000612'				EOCF:	MOVEI	[ASCIZ "
   817						[END OF COMMAND FILE]
   818	000612'	201 00 0 00 013200'	SMFILE>"]
   819	000613'	037 17 0 00 000001 		PNTALF
   820	000614'	554 01 0 00 016373'		HLRZ	T1,CSB+.CMIOJ
   821	000615'	104 00 0 00 000022 		CLOSF
   822	000616'	260 17 0 00 013215'		ERR	<CAN NOT CLOSE COMMAND FILE>
   823	000617'	200 01 0 00 012761'		MOVE	T1,[.PRIIN,,.PRIOU]
   824	000620'	202 01 0 00 016373'		MOVEM	T1,CSB+.CMIOJ
   825	000621'	402 00 0 00 021165'		SETZM	INTAKE
   826	000622'	263 17 0 00 000000 		RTN
   827
   828					;*COMMAND PARSER SUBROUTINES
   829
   830	000623'				CFMCMD:	CMD	CFM,<MUST END LINE WITH RETURN>
   831	000635'	554 01 0 00 016373'		HLRZ	T1,CSB+.CMIOJ
   832	000636'	306 01 0 00 000100 		CAIN	T1,.PRIIN
   833	000637'	254 00 0 00 000644'		JRST	CFMCM1
   834	000640'	201 00 0 00 016423'		MOVEI	CMDBUF
   835	000641'	335 00 0 00 016573'		SKIPGE	ECOFLG
   836	000642'	037 17 0 00 000001 		PNTALF
   837	000643'	263 17 0 00 000000 		RET
   838	000644'	201 00 0 00 016423'	CFMCM1:	MOVEI	CMDBUF
   839	000645'	332 00 0 00 000051'		SKIPE	$DVOFF		;LOGGING ?
   840	000646'	037 17 0 00 000000 		PNTAL
   841	000647'	263 17 0 00 000000 		RTN
   842
   843	000650'	200 12 0 00 013232'	SIXOUT:	MOVE	AC12,[POINT 6,AC11]
   844	000651'	201 13 0 00 000006 		MOVEI	AC13,6
   845	000652'	134 00 0 00 000012 		ILDB	AC12
   846	000653'	271 00 0 00 000040 		ADDI	40
   847	000654'	037 12 0 00 000001 		PNTCHF
   848	000655'	367 13 0 00 000652'		SOJG	AC13,.-3
   849	000656'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 23
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- INFORMATION                                                            SEQ 0062

   850					SUBTTL	COMMANDS -- INFORMATION
   851
   852	000657'	000004	000004			SCMTAB	INFO
   853	000660'	013233'	000753'			CMTAB	DISK,IDISK
   854	000661'	013234'	000717'			CMTAB	FEFILE,IFEFILE
   855	000662'	013236'	000703'			CMTAB	FREE,IFREE
   856	000663'	013237'	004760'			CMTAB	INDIRECT,FETELL
   857						ECMTAB
   858
   859	000664'				INFORM:	CMD	[FLDDB.(.CMKEY,,INFO)],<NO INFORMATION ABOUT THAT>
   860	000676'	550 01 0 02 000000 		HRRZ	T1,(T2)
   861	000677'	261 17 0 00 000001 		PUT	T1
   862	000700'	260 17 0 00 000623'		CONFIRM
   863	000701'	262 17 0 00 000001 		GETIT T1
   864	000702'	254 00 0 01 000000 		JRST	(T1)
   865
   866	000703'	336 00 0 00 000302'	IFREE:	SKIPN	MONTYP
   867	000704'	254 00 0 00 000715'		JRST	IFREE10
   868	000705'	336 00 0 00 021046'		SKIPN	FESETF
   869	000706'	260 17 0 00 013262'		ERR	<FE-FILE SYSTEM NOT SETUP>
   870
   871	000707'	037 02 0 00 013264'		PMSG	<^FRONT-END FREE PAGES = >
   872
   873	000710'	550 00 0 00 400001 		HRRZ	FEDIR+FSL
   874	000711'	037 15 0 00 000001 		PNTDCF
   875
   876	000712'	037 01 0 00 000063'		PCRLF
   877	000713'	037 01 0 00 000063'		PCRLF
   878	000714'	263 17 0 00 000000 		RTN
   879
   880	000715'	037 04 0 00 013271'	IFREE10:PMSGF	<N/A - TOPS-10^>
   881	000716'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 24
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- INFORMATION                                                            SEQ 0063

   882
   883	000717'	336 00 0 00 021046'	IFEFILE:SKIPN	FESETF
   884	000720'	260 17 0 00 013262'		ERR	<FE-FILE SYSTEM NOT SETUP>
   885
   886	000721'	336 00 0 00 000302'		SKIPN	MONTYP
   887	000722'	254 00 0 00 000737'		JRST	IFEF10
   888
   889	000723'	037 04 0 00 013274'		PMSGF	<^DISK ADDRESS IN HOME BLOCK = >
   890	000724'	200 00 0 00 436301 		MOVE 	HOMPAG+200+101
   891	000725'	037 13 0 00 000001 		PNTHWF
   892
   893	000726'	037 04 0 00 013302'		PMSGF	<^LENGTH IN HOME BLOCK =       >
   894	000727'	200 00 0 00 436302 		MOVE	HOMPAG+200+102
   895	000730'	037 13 0 00 000001 		PNTHWF
   896
   897	000731'	037 04 0 00 013310'		PMSGF	<^8080 POINTER IN HOME BLOCK = >
   898	000732'	200 00 0 00 436303 		MOVE	HOMPAG+200+103
   899	000733'	037 13 0 00 000001 		PNTHWF
   900
   901	000734'	037 01 0 00 000063'		PCRLF
   902	000735'	037 01 0 00 000063'		PCRLF
   903	000736'	263 17 0 00 000000 		RTN
   904
   905	000737'	037 04 0 00 013274'	IFEF10:	PMSGF	<^DISK ADDRESS IN HOME BLOCK = >
   906	000740'	200 00 0 00 005542'		MOVE 	HOMBUF+101
   907	000741'	037 13 0 00 000001 		PNTHWF
   908
   909	000742'	037 04 0 00 013316'		PMSGF	<^LENGTH IN HOME BLOCK =        >
   910	000743'	200 00 0 00 005543'		MOVE	HOMBUF+102
   911	000744'	037 13 0 00 000001 		PNTHWF
   912
   913	000745'	037 04 0 00 013310'		PMSGF	<^8080 POINTER IN HOME BLOCK = >
   914	000746'	200 00 0 00 005544'		MOVE	HOMBUF+103
   915	000747'	037 13 0 00 000001 		PNTHWF
   916
   917	000750'	037 01 0 00 000063'		PCRLF
   918	000751'	037 01 0 00 000063'		PCRLF
   919	000752'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 25
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- INFORMATION                                                            SEQ 0064

   920
   921	000753'	336 00 0 00 021046'	IDISK:	SKIPN	FESETF
   922	000754'	260 17 0 00 013262'		ERR	<FE-FILE SYSTEM NOT SETUP>
   923
   924	000755'	336 00 0 00 000302'		SKIPN	MONTYP
   925	000756'	254 00 0 00 001004'		JRST	IDSK10		;TOPS-10
   926
   927	000757'	561 01 0 00 021274'		HRROI	T1,STBUF
   928	000760'	550 02 0 00 002523'		HRRZ	T2,FEJFN
   929	000761'	205 03 0 00 100000 		MOVSI	T3,(1B2)
   930	000762'	104 00 0 00 000030 		JFNS
   931	000763'	320 16 0 00 013332'		ERMSG	<CAN NOT GET STRUCTURE NAME>
   932
   933	000764'	037 04 0 00 013335'		PMSGF	<^USING >
   934	000765'	201 00 0 00 021274'		MOVEI	STBUF
   935	000766'	037 17 0 00 000001 		PNTALF			;PRINT STRUCTURE
   936
   937	000767'	037 01 0 00 000011 		PTAB
   938
   939	000770'	200 01 0 00 021037'		MOVE	T1,DSKTYP
   940	000771'	306 01 0 00 000001 		CAIN	T1,.MSRP4
   941	000772'	037 04 0 00 013337'		PMSGF	<RP04>
   942	000773'	306 01 0 00 000005 		CAIN	T1,.MSRP5
   943	000774'	037 04 0 00 013340'		PMSGF	<RP05>
   944	000775'	306 01 0 00 000006 		CAIN	T1,.MSRP6
   945	000776'	037 04 0 00 013341'		PMSGF	<RP06>
   946	000777'	306 01 0 00 000011 		CAIN	T1,11
   947	001000'	037 04 0 00 013342'		PMSGF	<RM03>
   948
   949	001001'	037 01 0 00 000063'		PCRLF
   950	001002'	037 01 0 00 000063'		PCRLF
   951	001003'	263 17 0 00 000000 		RTN
   952
   953	001004'	037 04 0 00 013335'	IDSK10:	PMSGF	<^USING >
   954	001005'	200 00 0 00 005405'		MOVE	DIRDEV
   955	001006'	037 01 0 00 000002 		PNTSXF			;PRINT STRUCTURE
   956
   957	001007'	037 01 0 00 000011 		PTAB
   958
   959	001010'	200 01 0 00 021037'		MOVE	T1,DSKTYP
   960	001011'	306 01 0 00 000000 		CAIN	T1,.DCUR4
   961	001012'	037 04 0 00 013337'		PMSGF	<RP04>
   962	001013'	306 01 0 00 000001 		CAIN	T1,.DCUR6
   963	001014'	037 04 0 00 013341'		PMSGF	<RP06>
   964	001015'	306 01 0 00 000002 		CAIN	T1,.DCUR3
   965	001016'	037 04 0 00 013342'		PMSGF	<RM03>
   966
   967	001017'	037 01 0 00 000063'		PCRLF
   968	001020'	037 01 0 00 000063'		PCRLF
   969	001021'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 26
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- PUSH                                                                   SEQ 0065

   970					SUBTTL	COMMANDS -- PUSH
   971
   972	001022'				PUSHCM:	NOISE	<COMMAND LEVEL>
   973	001034'	260 17 0 00 000623'		CONFIRM
   974	001035'	336 00 0 00 000302'		SKIPN	MONTYP
   975	001036'	254 00 0 00 001065'		JRST	PUSH10
   976
   977	001037'	205 01 0 00 000001 		MOVSI	T1,(GJ%SHT)
   978	001040'	561 02 0 00 013357'		HRROI	T2,[ASCIZ "PS:<SYSTEM>EXEC.EXE.0"]
   979	001041'	104 00 0 00 000020 		GTJFN
   980	001042'	320 16 0 00 013372'		ERMSG	<CAN NOT GET JFN ON EXEC>
   981
   982	001043'	552 01 0 00 021042'		HRRZM	T1,EXJFN#
   983	001044'	205 02 0 00 200000 		MOVSI	T2,(CR%CAP)
   984	001045'	104 00 0 00 000152 		CFORK
   985	001046'	320 16 0 00 013403'		ERMSG	<CAN NOT CREATE AN EXEC FORK>
   986
   987	001047'	552 01 0 00 021041'		HRRZM	T1,EXFORK#
   988	001050'	514 01 0 00 000001 		HRLZ	T1,T1
   989	001051'	540 01 0 00 021042'		HRR	T1,EXJFN
   990	001052'	104 00 0 00 000200 		GET
   991	001053'	320 16 0 00 013412'		ERMSG	<CAN NOT GET EXEC>
   992
   993	001054'	550 01 0 00 021041'		HRRZ	T1,EXFORK
   994	001055'	201 02 0 00 000000 		MOVEI	T2,0
   995	001056'	104 00 0 00 000201 		SFRKV
   996	001057'	320 16 0 00 013422'		ERMSG	<CAN NOT START EXEC>
   997
   998	001060'	104 00 0 00 000163 		WFORK
   999	001061'	320 16 0 00 013431'	pushpc:	ERMSG	<PUSH: WFORK ERROR>
  1000
  1001	001062'	104 00 0 00 000153 		KFORK
  1002	001063'	320 16 0 00 013441'		ERMSG	<CAN NOT KILL EXEC FORK>
  1003
  1004	001064'	263 17 0 00 000000 		RTN
  1005
  1006	001065'	037 04 0 00 013444'	PUSH10:	PMSGF	<NO TOPS-10 FUNCTIONALITY^>
  1007	001066'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 27
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- DEBUG                                                                  SEQ 0066

  1008					SUBTTL	COMMANDS -- DEBUG
  1009
  1010	001067'	000002	000002			SCMTAB	SETCLR
  1011	001070'	013451'	012667'			CMTAB	CLEAR,[0]
  1012	001071'	013453'	013454'			CMTAB	SET,[-1]
  1013						ECMTAB
  1014
  1015	001072'	000001	000001			SCMTAB	DBFLGS
  1016	001073'	012677'	016567'			CMTAB	DEBUG,DEBUGF
  1017						ECMTAB
  1018
  1019
  1020	001074'				SETDEB:	CMD	[FLDDB.(.CMKEY,,SETCLR)],<MUST BE 'SET' OR 'CLEAR'>
  1021	001106'	550 01 0 02 000000 		HRRZ	T1,(T2)		;GET POINTER
  1022	001107'	200 06 0 01 000000 		MOVE	T6,(T1)		;GET FLAG
  1023	001110'					CMD	[FLDDB.(.CMKEY,,DBFLGS)],<NOT A DEBUG FLAG>
  1024	001122'	550 05 0 02 000000 		HRRZ	T5,(T2)		;PLACE TO STORE ANSWER
  1025	001123'					NOISE	<FLAG>
  1026	001135'	260 17 0 00 000623'		CONFIRM
  1027	001136'	202 06 0 05 000000 		MOVEM	T6,(T5)		;SET/CLEAR FLAG
  1028	001137'	263 17 0 00 000000 		RTN
  1029
  1030					SUBTTL	COMMANDS -- ECHO
  1031
  1032	001140'	000002	000002			SCMTAB	YESNO
  1033	001141'	013516'	000000			CMTAB	NO,0
  1034	001142'	013517'	777777			CMTAB	YES,777777
  1035						ECMTAB
  1036
  1037	001143'				ECHO:	NOISE	<COMMAND FILES>
  1038	001155'					CMD	[FLDDB.(.CMKEY,,YESNO,<YES OR NO>,<YES>)]
  1039	001166'	570 01 0 02 000000 		HRRE	T1,(T2)
  1040	001167'	261 17 0 00 000001 		PUT	T1
  1041	001170'	260 17 0 00 000623'		CONFIRM
  1042	001171'	262 17 0 00 016573'		GETIT	ECOFLG
  1043	001172'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 28
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- DEPOSIT                                                                SEQ 0067

  1044					SUBTTL	COMMANDS -- DEPOSIT
  1045
  1046	001173'	000002	000002			SCMTAB	DEPCMD
  1047	001174'	013547'	001212'			CMTAB	BC1,DPBC1
  1048	001175'	013550'	001214'			CMTAB	CRAM,DPCRAM
  1049						ECMTAB
  1050
  1051	001176'				DEP:	CMD	[FLDDB.(.CMKEY,,DEPCMD)],<CAN NOT DEPOSIT THAT>
  1052	001210'	550 01 0 02 000000 		HRRZ	T1,(T2)
  1053	001211'	254 00 0 01 000000 		JRST	(T1)
  1054
  1055					;*HERE TO STORE INTO CRAM
  1056
  1057	001212'	476 00 0 00 021027'	DPBC1:	SETOM	BC1FLG#
  1058	001213'	254 00 0 00 001215'		JRST	DPCRAM+1
  1059	001214'	402 00 0 00 021027'	DPCRAM:	SETZM	BC1FLG
  1060	001215'					NOISE	<LOCATION>
  1061	001227'					CMD	[FLDDB.(.CMNUM,,^D8)],<NOT A VALID CRAM ADDRESS>
  1062	001241'	331 00 0 00 000002 		SKIPL	T2
  1063	001242'	301 02 0 00 004000 		CAIL	T2,4000
  1064	001243'	260 17 0 00 013621'		ERR	<ADDRESS MUST BE 0 TO 3777>
  1065	001244'	202 02 0 00 021152'		MOVEM	T2,EXMADR
  1066	001245'	260 17 0 00 000623'		CONFIRM
  1067	001246'	200 06 0 00 021152'		MOVE	T6,EXMADR
  1068	001247'	476 00 0 00 021163'		SETOM	DEPFLG
  1069	001250'	260 17 0 00 011465'		GO	DPYFLD
  1070	001251'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 29
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- SERIAL                                                                 SEQ 0068

  1071					SUBTTL	COMMANDS -- SERIAL
  1072
  1073	001252'				SERIAL:	NOISE	<CPU SERIAL NUMBER (4097 TO 32767) INTO MICROCODE>
  1074	001264'					CMD	[FLDDB.(.CMNUM,,^D10)],<NOT A VALID SERIAL NUMBER>
  1075	001276'	202 02 0 00 021071'		MOVEM	T2,SNBR#
  1076	001277'	260 17 0 00 000623'		CONFIRM
  1077
  1078	001300'	200 02 0 00 021071'		MOVE	T2,SNBR
  1079	001301'	331 00 0 00 000002 		SKIPL	T2
  1080	001302'	305 02 0 00 010001 		CAIGE	T2,^D4097
  1081	001303'	260 17 0 00 013663'		ERR	<NOT A VALID SERIAL NUMBER>
  1082	001304'	303 02 0 00 077777 		CAILE	T2,^D32767
  1083	001305'	260 17 0 00 013663'		ERR	<NOT A VALID SERIAL NUMBER>
  1084
  1085	001306'	336 00 0 00 016572'		SKIPN	RDFLAG
  1086	001307'	260 17 0 00 013676'		ERR	<MUST FIRST READ MICROCODE WITH READ COMMAND>
  1087
  1088	001310'	201 06 0 00 001700 		MOVEI	T6,1700		;SERIAL # AT APRID: (1700) OF MICROCODE
  1089	001311'	221 06 0 00 000003 		IMULI	T6,3
  1090	001312'	271 06 0 00 401000 		ADDI	T6,CRAM
  1091
  1092	001313'	137 02 0 00 013700'		DPB	T2,[POINT 12,1(T6),23]
  1093	001314'	242 02 0 00 777764 		LSH	T2,-^D12
  1094	001315'	137 02 0 00 013701'		DPB	T2,[POINT 6,1(T6),35]
  1095
  1096	001316'	254 00 0 00 012121'		JRST	ENDDPY+2	;RECOMPUTE CRAM PARITY
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 30
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- EXAMINE                                                                SEQ 0069

  1097					SUBTTL	COMMANDS -- EXAMINE
  1098
  1099	001317'	000002	000002			SCMTAB	EXCMDS
  1100	001320'	013547'	001340'			CMTAB	BC1,EXBC1
  1101	001321'	013550'	001342'			CMTAB	CRAM,EXCRAM
  1102						ECMTAB
  1103
  1104	001322'	000000	000000		EMDFNC:	FLDDB.	(.CMKEY,,EXCMDS)
  1105	001323'	000000	001317'
  1106
  1107	001324'				EXAM:	CMD	EMDFNC,<CAN NOT EXAMINE THAT>
  1108	001336'	550 01 0 02 000000 		HRRZ	T1,(T2)
  1109	001337'	254 00 0 01 000000 		JRST	(T1)
  1110
  1111					;*EXAMINE CRAM
  1112
  1113	001340'	476 00 0 00 021027'	EXBC1:	SETOM	BC1FLG
  1114	001341'	254 00 0 00 001343'		JRST	EXCRAM+1
  1115	001342'	402 00 0 00 021027'	EXCRAM:	SETZM	BC1FLG
  1116	001343'					NOISE	<LOCATION>
  1117	001355'					CMD	[FLDDB.(.CMNUM,,^D8)],<NOT A VALID CRAM LOCATION>
  1118	001367'	261 17 0 00 000002 		PUSH	P,T2
  1119	001370'	260 17 0 00 000623'		CONFIRM
  1120	001371'	262 17 0 00 000002 		POP	P,T2
  1121	001372'	331 00 0 00 000002 		SKIPL	T2
  1122	001373'	301 02 0 00 004000 		CAIL	T2,4000
  1123	001374'	260 17 0 00 013621'		ERR	ADDRESS MUST BE 0 TO 3777
  1124	001375'	202 02 0 00 021152'		MOVEM	T2,EXMADR
  1125	001376'	037 01 0 00 013734'	EXCRM:	PNTMSF	[ASCIZ/SHOULD BE:	/]
  1126	001377'	200 00 0 00 021152'		MOVE	EXMADR
  1127	001400'	037 06 0 00 000001 		PNT6F
  1128	001401'	037 01 0 00 000057 		PNTCIF	"/"
  1129	001402'	200 06 0 00 021152'		MOVE	T6,EXMADR
  1130	001403'	221 06 0 00 000003 		IMULI	T6,3
  1131	001404'	336 00 0 00 021027'		SKIPN	BC1FLG
  1132	001405'	271 06 0 00 401000 		ADDI	T6,CRAM
  1133	001406'	332 00 0 00 021027'		SKIPE	BC1FLG
  1134	001407'	271 06 0 00 417000 		ADDI	T6,CRMBC1
  1135	001410'	200 00 0 06 000002 		MOVE	2(T6)
  1136	001411'	037 10 0 00 000001 		PNT8F
  1137	001412'	200 00 0 06 000001 		MOVE	1(T6)
  1138	001413'	037 14 0 00 000001 		PNTOTF
  1139	001414'	200 00 0 06 000000 		MOVE	(T6)
  1140	001415'	037 14 0 00 000001 		PNTOTF
  1141
  1142	001416'	260 17 0 00 012227'		GO	CRMFLD
  1143	001417'	037 01 0 00 000063'		PCRLF
  1144	001420'	263 17 0 00 000000 		RET
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 31
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- EXIT                                                                   SEQ 0070

  1145					SUBTTL	COMMANDS -- EXIT
  1146
  1147	001421'				.EXIT:	NOISE	<TO MONITOR>
  1148	001433'	260 17 0 00 000623'		CONFIRM
  1149	001434'	336 00 0 00 000302'		SKIPN	MONTYP
  1150	001435'	047 00 0 00 000012 		EXIT
  1151	001436'	104 00 0 00 000170 		HALTF
  1152	001437'	254 00 0 00 000345'		JRST	START
  1153
  1154					SUBTTL	COMMANDS -- HELP
  1155
  1156	001440'	260 17 0 00 000623'	HELP:	CONFIRM
  1157	001441'	336 00 0 00 000302'		SKIPN	MONTYP
  1158	001442'	254 00 0 00 001474'		JRST	HELP10
  1159	001443'	205 01 0 00 100011 		MOVSI	T1,(GJ%OLD!GJ%PHY!GJ%SHT)
  1160	001444'	561 02 0 00 001471'		HRROI	T2,HLPFIL
  1161	001445'	104 00 0 00 000020 		GTJFN
  1162	001446'	254 00 0 00 001464'		JRST	NOHELP
  1163	001447'	200 02 0 00 013753'		MOVE	T2,[7B5!OF%RD!OF%NWT]
  1164	001450'	104 00 0 00 000021 		OPENF
  1165	001451'	254 00 0 00 001464'		JRST	NOHELP
  1166	001452'	201 06 0 00 000101 		MOVEI	T6,.PRIOU
  1167	001453'	104 00 0 00 000050 	HELPLP:	BIN
  1168	001454'	320 16 0 00 001461'		ERJMP	HELPEX
  1169	001455'	250 01 0 00 000006 		EXCH	T1,T6
  1170	001456'	104 00 0 00 000051 		BOUT
  1171	001457'	250 01 0 00 000006 		EXCH	T1,T6
  1172	001460'	254 00 0 00 001453'		JRST	HELPLP
  1173
  1174	001461'	104 00 0 00 000022 	HELPEX:	CLOSF
  1175	001462'	260 17 0 00 013762'		ERR	<HELP: CAN NOT CLOSE HELP FILE>
  1176	001463'	263 17 0 00 000000 		RTN
  1177
  1178	001464'	037 04 0 00 013764'	NOHELP:	PMSGF	<?CAN NOT READ >
  1179	001465'	201 00 0 00 001471'		MOVEI	HLPFIL
  1180	001466'	037 17 0 00 000001 		PNTALF
  1181	001467'	037 01 0 00 000063'		PCRLF
  1182	001470'	263 17 0 00 000000 		RTN
  1183
  1184	001471'	123 115 106 111 114 	HLPFIL:	ASCIZ	"SMFILE.HLP"
  1185	001472'	105 056 110 114 120 
  1186	001473'	000 000 000 000 000 
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 32
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- HELP                                                                   SEQ 0071

  1187					;*TOPS-10 HELP
  1188
  1189	001474'	200 00 0 00 013767'	HELP10:	MOVE	[SIXBIT/DSK/]
  1190	001475'	202 00 0 00 016406'		MOVEM	GTJDEV
  1191	001476'	402 00 0 00 016407'		SETZM	GTJDIR
  1192	001477'	200 00 0 00 013770'		MOVE	[SIXBIT/SMFILE/]
  1193	001500'	202 00 0 00 016410'		MOVEM	GTJFIL
  1194	001501'	200 00 0 00 013771'		MOVE	[SIXBIT/HLP/]
  1195	001502'	202 00 0 00 016411'		MOVEM	GTJEXT
  1196
  1197	001503'	260 17 0 00 007027'		GO	OPNTEN		;FIND FILE
  1198	001504'	260 17 0 00 013777'		ERR	<SMFILE.HLP NOT FOUND>
  1199
  1200	001505'	260 17 0 00 006764'	HLP10A:	GO	GET10
  1201	001506'	335 00 0 00 021040'		SKIPGE	EOFSW
  1202	001507'	254 00 0 00 007015'		JRST	R10EOF
  1203
  1204	001510'	202 03 0 00 021047'		MOVEM	T3,HLP10X#
  1205	001511'	201 00 0 00 021047'		MOVEI	HLP10X
  1206	001512'	037 00 0 00 000000 		PNTA
  1207	001513'	254 00 0 00 001505'		JRST	HLP10A
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 33
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0072

  1208					SUBTTL	COMMANDS -- WRITE
  1209
  1210	001514'	000011	000011			SCMTAB	WRTCMD
  1211	001515'	013547'	004265'			CMTAB	BC1,WRTBC1
  1212	001516'	014001'	003021'			CMTAB	BC2,WRTBC2
  1213	001517'	014002'	002526'			CMTAB	BOOT,WRTBOOT
  1214	001520'	013550'	004267'			CMTAB	CRAM,WRTCRM
  1215	001521'	014003'	002663'			CMTAB	DIAGBT,WRTDB
  1216	001522'	014005'	005064'			CMTAB	DONE,WRTDONE
  1217	001523'	013237'	004352'			CMTAB	INDIRECT,WRTFEF
  1218	001524'	014006'	001657'			CMTAB	RESET,WRTRSET
  1219	001525'	014010'	001542'			CMTAB	SETUP,WRTSET
  1220						ECMTAB
  1221
  1222	001526'				WRITE:	CMD	[FLDDB.(.CMKEY,,WRTCMD)],<CAN NOT WRITE THAT>
  1223	001540'	550 01 0 02 000000 		HRRZ	T1,(T2)
  1224	001541'	254 00 0 01 000000 		JRST	(T1)
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 34
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0073

  1225					;*WRTSET - READ FE-FILE DIRECTORY BLOCK INTO MEMORY
  1226
  1227	001542'	561 01 0 00 014025'	WRTSET:	HRROI	T1,[ASCIZ "BOOTSTRAP"]
  1228	001543'	332 00 0 00 016567'		SKIPE	DEBUGF
  1229	001544'	561 01 0 00 014027'		HRROI	T1,[ASCIZ "BOOTST"]
  1230	001545'	336 00 0 00 000302'		SKIPN	MONTYP
  1231	001546'	561 01 0 00 014031'		HRROI	T1,[ASCIZ "KS10FE"]
  1232	001547'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  1233
  1234	001550'	561 01 0 00 014033'		HRROI	T1,[ASCIZ "BIN"]
  1235	001551'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  1236
  1237	001552'	561 01 0 00 014034'		HRROI	T1,[ASCIZ "ROOT-DIRECTORY"]
  1238	001553'	332 00 0 00 016567'		SKIPE	DEBUGF
  1239	001554'	561 01 0 00 014037'		HRROI	T1,[ASCIZ "KIRCHOFF"]
  1240	001555'	336 00 0 00 000302'		SKIPN	MONTYP
  1241	001556'	561 01 0 00 014041'		HRROI	T1,[ASCIZ "[6,2020]"]
  1242	001557'	202 01 0 00 016407'		MOVEM	T1,GTJDIR
  1243
  1244	001560'	561 01 0 00 014043'		HRROI	T1,[ASCIZ "XXX:"]
  1245	001561'	202 01 0 00 016406'		MOVEM	T1,GTJDEV
  1246
  1247	001562'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  1248	001563'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  1249
  1250	001564'					CMD	[FLDDB.(.CMFIL)]
  1251	001575'	552 02 0 00 002523'		HRRZM	T2,FEJFN
  1252
  1253	001576'	260 17 0 00 000623'		CONFIRM
  1254
  1255	001577'	336 00 0 00 000302'		SKIPN	MONTYP
  1256	001600'	254 00 0 00 007315'		JRST	DEVSTR		;TOPS-10
  1257
  1258	001601'	561 01 0 00 021274'		HRROI	T1,STBUF
  1259	001602'	550 02 0 00 002523'		HRRZ	T2,FEJFN
  1260	001603'	205 03 0 00 100000 		MOVSI	T3,(1B2)
  1261	001604'	104 00 0 00 000030 		JFNS
  1262	001605'	320 16 0 00 013332'		ERMSG	<CAN NOT GET STRUCTURE NAME>
  1263
  1264	001606'	336 00 0 00 016567'		SKIPN	DEBUGF
  1265	001607'	260 17 0 00 001713'		GO	FIND		;FIND PHYSICAL DISK
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 35
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0074

  1266
  1267	001610'	561 01 0 00 021274'		HRROI	T1,STBUF
  1268	001611'	104 00 0 00 000120 		STDEV
  1269	001612'	260 17 0 00 014061'		ERR	<STDEV FAILED FOR STRUCTURE>
  1270	001613'	202 02 0 00 021072'		MOVEM	T2,STRDES#
  1271
  1272	001614'	550 01 0 00 002523'		HRRZ	T1,FEJFN
  1273	001615'	200 02 0 00 014063'		MOVE	T2,[1,,.FBCTL]
  1274	001616'	201 03 0 00 000003 		MOVEI	T3,T3
  1275	001617'	104 00 0 00 000063 		GTFDB
  1276	001620'	320 16 0 00 014071'		ERMSG	<WRTSETUP: GTFDB FAILED>
  1277	001621'	603 03 0 00 020000 		TLNE	T3,(FB%NXF)	;DOES FILE EXIST
  1278	001622'	260 17 0 00 014102'		ERR	<FRONT-END FILE DOES NOT EXIST>
  1279
  1280	001623'	200 02 0 00 014104'		MOVE	T2,[1,,.FBBYV]
  1281	001624'	201 03 0 00 000003 		MOVEI	T3,T3
  1282	001625'	104 00 0 00 000063 		GTFDB
  1283	001626'	320 16 0 00 014114'		ERMSG	<WRITE: GTFBD FOR SIZE FAILED>
  1284	001627'	621 03 0 00 777777 		TLZ	T3,FB%PGC	;JUST PAGE COUNT
  1285	001630'	305 03 0 00 000060 		CAIGE	T3,^D48
  1286	001631'	260 17 0 00 014125'		 ERR	<BOOTSTRAP.BIN FILE TOO SMALL>
  1287
  1288	001632'	200 01 0 00 002523'		MOVE	T1,FEJFN
  1289	001633'	201 02 0 00 300000 		MOVEI	T2,OF%RD!OF%WR
  1290	001634'	104 00 0 00 000021 		OPENF			;OPEN THE FILE
  1291						JRST	[JSERR		;CAN'T OPEN THE FRONT-END FILE SYSTEM?
  1292	001635'	254 00 0 00 014127'			JRST START]
  1293
  1294	001636'	514 01 0 00 002523'		HRLZ	T1,FEJFN
  1295	001637'	200 02 0 00 014131'		MOVE	T2,[.FHSLF,,<FEDIR_-^D9>]
  1296	001640'	200 03 0 00 014132'		MOVE	T3,[PM%RD+PM%WR+PM%PLD]
  1297	001641'	104 00 0 00 000056 		PMAP			;READ FE DIRECTORY BLOCK
  1298						 ERJMP	[JSERR
  1299	001642'	320 16 0 00 014127'			 JRST	START]
  1300
  1301	001643'	332 00 0 00 016567'		SKIPE	DEBUGF
  1302	001644'	254 00 0 00 001654'		JRST	WRTSEX
  1303
  1304	001645'	201 01 0 00 000000 		MOVEI	T1,0
  1305	001646'	260 17 0 00 005166'		GO	REDHOM		;READ HOME BLOCK
  1306	001647'	263 17 0 00 000000 		 RTN
  1307
  1308	001650'	336 00 0 00 436301 		SKIPN	HOMPAG+200+101
  1309	001651'	260 17 0 00 014141'		 ERR	<NO DISK ADDRESS IN HOME BLOCK>
  1310
  1311	001652'	336 00 0 00 436302 		SKIPN	HOMPAG+200+102
  1312	001653'	260 17 0 00 014150'		 ERR	<NO LENGTH IN HOME BLOCK>
  1313
  1314	001654'	476 00 0 00 021046'	WRTSEX:	SETOM	FESETF#
  1315	001655'	402 00 0 00 021045'		SETZM	FERSETF#
  1316	001656'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 36
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0075

  1317					;*WRTRSET - RESET FE-DIRECTORY
  1318
  1319	001657'	260 17 0 00 000623'	WRTRSET:CONFIRM
  1320	001660'	336 00 0 00 021046'		SKIPN	FESETF		;FE-DIR  IN CODE ?
  1321	001661'	260 17 0 00 013262'		 ERR	<FE-FILE SYSTEM NOT SETUP>
  1322
  1323	001662'	402 00 0 00 400000 		SETZM	FEDIR		;CLEAR FE-DIR PAGE
  1324	001663'	200 00 0 00 014152'		MOVE	[FEDIR,,FEDIR+1]
  1325	001664'	251 00 0 00 400777 		BLT	FEDIR+777
  1326
  1327	001665'	332 00 0 00 000302'		SKIPE	MONTYP
  1328	001666'	200 01 0 00 436302 		MOVE	T1,HOMPAG+200+102	;GET LENGTH IN SECTORS
  1329	001667'	336 00 0 00 000302'		SKIPN	MONTYP
  1330	001670'	200 01 0 00 005543'		MOVE	T1,HOMBUF+102
  1331	001671'	332 00 0 00 016567'		SKIPE	DEBUGF
  1332	001672'	201 01 0 00 000400 		MOVEI	T1,^D64*4
  1333
  1334	001673'	231 01 0 00 000004 		IDIVI	T1,^D4		;CONVERT TO PAGES
  1335	001674'	275 01 0 00 000034 		SUBI	T1,^D28		;SUB FIXED FILES
  1336	001675'	505 01 0 00 000034 		HRLI	T1,^D28		;FIRST FREE PAGE STARTS AT PAGE 28
  1337	001676'	202 01 0 00 400001 		MOVEM	T1,FEDIR+FSL	;SET RESET PAGE #,,LENGTH
  1338
  1339	001677'	200 01 0 00 014153'		MOVE	T1,[^D1,,^D12]
  1340	001700'	202 01 0 00 400003 		MOVEM	T1,FEDIR+MCL	;SETUP MCODE PAGE #,,LENGTH
  1341
  1342	001701'	200 01 0 00 014154'		MOVE	T1,[^D13,,^D1]
  1343	001702'	202 01 0 00 400005 		MOVEM	T1,FEDIR+MPBL	;SETUP M-PRE-BOOT PAGE #,,LENGTH
  1344
  1345	001703'	200 01 0 00 014155'		MOVE	T1,[^D14,,^D1]
  1346	001704'	202 01 0 00 400007 		MOVEM	T1,FEDIR+DPBL	;SETUP D-PRE-BOOT PAGE #,,LENGTH
  1347
  1348	001705'	200 01 0 00 014156'		MOVE	T1,[^D15,,^D12]
  1349	001706'	202 01 0 00 400011 		MOVEM	T1,FEDIR+BC1L	;SETUP BOOTCHECK 1 PAGE #,,LENGTH
  1350
  1351	001707'	200 01 0 00 014157'		MOVE	T1,[^D27,,^D1]
  1352	001710'	202 01 0 00 400013 		MOVEM	T1,FEDIR+BCKL	;SETUP BC2-PRE-BOOT PAGE #,,LENGTH
  1353
  1354	001711'	476 00 0 00 021045'		SETOM	FERSETF		;INDICATE RESET
  1355
  1356	001712'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 37
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0076

  1357					;*FIND - FIND THE PHYSICAL DISK WITH THE GIVEN NAME
  1358
  1359	001713'	201 06 0 00 001761'	FIND:	MOVEI	T6,ARGBLK	;SET ARG BLOCK INDEX
  1360	001714'	476 00 0 06 000000 		SETOM	.MSRCH(T6)	;-1 TO CHAN ENTRY OF BLOCK
  1361	001715'	476 00 0 06 000001 		SETOM	.MSRCT(T6)	;-1 TO CONTROLLER ENTRY OF BLOCK
  1362	001716'	476 00 0 06 000002 		SETOM	.MSRUN(T6)	;-1 TO UNIT ENTRY OF BLOCK
  1363
  1364	001717'	402 00 0 06 000003 	FINDN:	SETZM	.MSRST(T6)	;CLEAR STATUS ENTRY OF BLOCK
  1365	001720'	200 01 0 00 014160'		MOVE	T1,[ARGBLK+.MSRST,,ARGBLK+.MSRST+1]
  1366	001721'	251 01 0 00 002007'		BLT	T1,ARGBLK+ARGLN-1	;CLEAR REST OF BLOCK
  1367
  1368	001722'	561 01 0 00 002122'		HRROI	T1,BUFFER
  1369	001723'	202 01 0 06 000004 		MOVEM	T1,.MSRSN(T6)	;USE BUFFER TO SAVE PACK NAME
  1370
  1371	001724'	200 01 0 00 014161'		MOVE	T1,[.MSRLN,,.MSRNU]
  1372	001725'	201 02 0 00 001761'		MOVEI	T2,ARGBLK
  1373	001726'	104 00 0 00 000555 	MS:	MSTR			;GET STATUS OF NEXT DISK UNIT
  1374	001727'	320 17 0 00 002010'		 ERCAL	FINDER		;  ERROR
  1375
  1376	001730'	306 02 0 00 601757 		CAIN	T2,MSTX27	;ERROR, IS THE UNIT A DISK ?
  1377	001731'	254 00 0 00 001717'		JRST	FINDN		;NO, NOT A DISK, TRY FOR ANOTHER
  1378
  1379	001732'	200 01 0 06 000003 		MOVE	T1,.MSRST(T6)	;GET UNIT STATUS
  1380	001733'	607 01 0 00 400000 		TLNN	T1,(MS%MNT)	;MOUNTED ?
  1381	001734'	254 00 0 00 001717'		JRST	FINDN		;NO, TRY ANOTHER
  1382	001735'	603 01 0 00 040000 		TLNE	T1,(MS%OFL)	;IS THE UNIT OFF-LINE ?
  1383	001736'	254 00 0 00 001717'		JRST FINDN		;YES, TRY ANOTHER
  1384
  1385	001737'	200 02 0 00 014162'		MOVE	T2,[POINT 7,STBUF]
  1386	001740'	200 03 0 00 014163'		MOVE	T3,[POINT 7,BUFFER]
  1387	001741'	260 17 0 00 002021'		GO	STRCMP		;COMPARE REQUESTED/DISK NAME
  1388	001742'	254 00 0 00 001717'		JRST	FINDN		;NO MATCH
  1389
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 38
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0077

  1390	001743'	200 01 0 06 000003 		MOVE	T1,.MSRST(T6)	;GET MONITORS DRIVE TYPE
  1391	001744'	135 01 0 00 014164'		LDB	T1,[POINT 9,T1,17]
  1392	001745'	202 01 0 00 021037'		MOVEM	T1,DSKTYP#	;SAVE
  1393
  1394	001746'	402 00 0 00 021064'		SETZM	RM03F#
  1395	001747'	306 01 0 00 000001 		CAIN	T1,.MSRP4	;RP04 ?
  1396	001750'	254 00 0 00 001760'		JRST	FINDX		;YES
  1397	001751'	306 01 0 00 000005 		CAIN	T1,.MSRP5	;RP05 ?
  1398	001752'	254 00 0 00 001760'		JRST	FINDX		;YES
  1399	001753'	306 01 0 00 000006 		CAIN	T1,.MSRP6	;RP06 ?
  1400	001754'	254 00 0 00 001760'		JRST	FINDX		;YES
  1401	001755'	302 01 0 00 000011 		CAIE	T1,11		;.MSRM3 RM03 ?
  1402	001756'	260 17 0 00 014172'		ERR	<DISK IS NOT A VALID TYPE>
  1403	001757'	476 00 0 00 021064'		SETOM	RM03F		;YES
  1404
  1405	001760'	263 17 0 00 000000 	FINDX:	RTN
  1406
  1407			000027			ARGLN=.MSRLN
  1408	001761'				ARGBLK:	BLOCK	ARGLN
  1409
  1410					;ERROR HANDLER FOR THE GET NEXT UNIT JSYS
  1411
  1412	002010'	201 01 0 00 400000 	FINDER:	MOVEI	T1,400000	;SET PROCESS HANDLE
  1413	002011'	104 00 0 00 000012 		GETER			;GET ERROR CODE
  1414	002012'	550 02 0 00 000002 		HRRZ	T2,T2		;ERROR CODE ONLY
  1415	002013'	306 02 0 00 601757 		CAIN	T2,MSTX27	;IS THE UNIT A DISK ?
  1416	002014'	263 17 0 00 000000 		RTN			;NO, GO BACK AND LOOK FURTHER
  1417	002015'	302 02 0 00 601422 		CAIE	T2,MSTX18	;NO MORE UNITS FOUND ?
  1418						JRST	[JSERR
  1419	002016'	254 00 0 00 014127'			 JRST	START]
  1420	002017'	262 17 0 00 000006 		GETIT	T6
  1421	002020'	254 00 0 00 002027'		JRST	FALIAS		;CAN'T FIND PHYSICAL, TRY ALIAS
  1422
  1423					;*STRCMP - STRING COMPARE ROUTINE
  1424
  1425	002021'	134 00 0 00 000002 	STRCMP:	ILDB	0,T2
  1426	002022'	134 01 0 00 000003 		ILDB	T1,T3
  1427	002023'	312 00 0 00 000001 		CAME	0,T1		;EQUAL ?
  1428	002024'	263 17 0 00 000000 		RTN			;NO, LOSE
  1429
  1430	002025'	326 00 0 00 002021'		JUMPN	0,STRCMP	;YES, END OF STRING ?
  1431	002026'	254 00 0 00 000016'		JRST	CPOPJ1		;YES, SKIP RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 39
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0078

  1432					;*FALIAS - FIND THE PHYSICAL DISK WITH THE GIVEN ALIAS
  1433
  1434	002027'	201 06 0 00 001761'	FALIAS:	MOVEI	T6,ARGBLK	;SET ARG BLOCK INDEX
  1435	002030'	476 00 0 06 000000 		SETOM	.MSRCH(T6)	;-1 TO CHAN ENTRY OF BLOCK
  1436	002031'	476 00 0 06 000001 		SETOM	.MSRCT(T6)	;-1 TO CONTROLLER ENTRY OF BLOCK
  1437	002032'	476 00 0 06 000002 		SETOM	.MSRUN(T6)	;-1 TO UNIT ENTRY OF BLOCK
  1438
  1439	002033'	402 00 0 06 000003 	FADN:	SETZM	.MSRST(T6)	;CLEAR STATUS ENTRY OF BLOCK
  1440	002034'	200 01 0 00 014160'		MOVE	T1,[ARGBLK+.MSRST,,ARGBLK+.MSRST+1]
  1441	002035'	251 01 0 00 002007'		BLT	T1,ARGBLK+ARGLN-1	;CLEAR REST OF BLOCK
  1442
  1443	002036'	561 01 0 00 002122'		HRROI	T1,BUFFER
  1444	002037'	202 01 0 06 000005 		MOVEM	T1,.MSRSA(T6)	;USE BUFFER TO SAVE PACK ALIAS
  1445
  1446	002040'	200 01 0 00 014161'		MOVE	T1,[.MSRLN,,.MSRNU]
  1447	002041'	201 02 0 00 001761'		MOVEI	T2,ARGBLK
  1448	002042'	104 00 0 00 000555 	FAMS:	MSTR			;GET STATUS OF NEXT DISK UNIT
  1449	002043'	320 17 0 00 002075'		 ERCAL	FADER		;  ERROR
  1450
  1451	002044'	306 02 0 00 601757 		CAIN	T2,MSTX27	;ERROR, IS THE UNIT A DISK ?
  1452	002045'	254 00 0 00 002033'		JRST	FADN		;NO, NOT A DISK, TRY FOR ANOTHER
  1453
  1454	002046'	200 01 0 06 000003 		MOVE	T1,.MSRST(T6)	;GET UNIT STATUS
  1455	002047'	607 01 0 00 400000 		TLNN	T1,(MS%MNT)	;MOUNTED ?
  1456	002050'	254 00 0 00 002033'		JRST	FADN		;NO, TRY ANOTHER
  1457	002051'	603 01 0 00 040000 		TLNE	T1,(MS%OFL)	;IS THE UNIT OFF-LINE ?
  1458	002052'	254 00 0 00 002033'		JRST	FADN		;YES, TRY ANOTHER
  1459
  1460	002053'	200 02 0 00 014162'		MOVE	T2,[POINT 7,STBUF]
  1461	002054'	200 03 0 00 014163'		MOVE	T3,[POINT 7,BUFFER]
  1462	002055'	260 17 0 00 002021'		GO	STRCMP		;COMPARE REQUESTED/DISK NAME
  1463	002056'	254 00 0 00 002033'		JRST	FADN		;NO MATCH
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 40
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0079

  1464	002057'	200 01 0 06 000003 		MOVE	T1,.MSRST(T6)	;GET MONITORS DRIVE TYPE
  1465	002060'	135 01 0 00 014164'		LDB	T1,[POINT 9,T1,17]
  1466	002061'	202 01 0 00 021037'		MOVEM	T1,DSKTYP#	;SAVE
  1467
  1468	002062'	402 00 0 00 021064'		SETZM	RM03F#
  1469	002063'	306 01 0 00 000001 		CAIN	T1,.MSRP4	;RP04 ?
  1470	002064'	254 00 0 00 002074'		JRST	FINDAX		;YES
  1471	002065'	306 01 0 00 000005 		CAIN	T1,.MSRP5	;RP05 ?
  1472	002066'	254 00 0 00 002074'		JRST	FINDAX		;YES
  1473	002067'	306 01 0 00 000006 		CAIN	T1,.MSRP6	;RP06 ?
  1474	002070'	254 00 0 00 002074'		JRST	FINDAX		;YES
  1475	002071'	302 01 0 00 000011 		CAIE	T1,11		;.MSRM3 RM03 ?
  1476	002072'	260 17 0 00 014172'		ERR	<DISK IS NOT A VALID TYPE>
  1477	002073'	476 00 0 00 021064'		SETOM	RM03F		;YES
  1478
  1479	002074'	263 17 0 00 000000 	FINDAX:	RTN
  1480
  1481					;ERROR HANDLER FOR THE GET NEXT UNIT JSYS
  1482
  1483	002075'	201 01 0 00 400000 	FADER:	MOVEI	T1,400000	;SET PROCESS HANDLE
  1484	002076'	104 00 0 00 000012 		GETER			;GET ERROR CODE
  1485	002077'	550 02 0 00 000002 		HRRZ	T2,T2		;ERROR CODE ONLY
  1486	002100'	306 02 0 00 601757 		CAIN	T2,MSTX27	;IS THE UNIT A DISK ?
  1487	002101'	263 17 0 00 000000 		RTN			;NO, GO BACK AND LOOK FURTHER
  1488	002102'	306 02 0 00 601422 		CAIN	T2,MSTX18	;NO MORE UNITS FOUND ?
  1489	002103'	260 17 0 00 014200'		 ERR	<CAN'T FIND DISK>
  1490						JRST	[JSERR
  1491	002104'	254 00 0 00 014127'			 JRST	START]
  1492
  1493					;*COMPUTE DIAGNOSTIC PRE-BOOT PAGE POINTER
  1494
  1495	002105'	201 00 0 00 000000*	CPBPNTR:MOVEI	SMPREB		;GET START ADR OF PRE-BOOT
  1496	002106'	271 00 0 00 000005 		ADDI	5		;ADD OFFSET TO POINTER
  1497	002107'	200 00 1 00 000000 		MOVE	0,@0		;GET POINTER TO POINTER BLOCK
  1498	002110'	554 01 0 00 000000 		HLRZ	1,0		;GET LH CODE WORD
  1499	002111'	302 01 0 00 123456 		CAIE	1,123456	;IS IT CORRECT ?
  1500	002112'	260 17 0 00 014212'		ERR	<DIAGNOSTIC PRE-BOOT CODE WORD INCORRECT>
  1501	002113'	275 00 0 00 001000 		SUBI	0,1000		;REMOVE OFFSET
  1502	002114'	271 00 0 00 002105*		ADDI	0,SMPREB	;ADD ACTUAL LOCATION
  1503	002115'	552 00 0 00 021070'		HRRZM	0,SMPBPG#	;SAVE
  1504	002116'	504 00 0 00 000000 		HRL	0,0		;FORM BLT POINTER
  1505	002117'	271 00 0 00 000001 		ADDI	0,1
  1506	002120'	202 00 0 00 021067'		MOVEM	0,SMPBBLT#	;SAVE
  1507	002121'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 41
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0080

  1508
  1509					;DEFINITIONS FOR SM10
  1510
  1511			001000		BOORG=1000	;START OF HARDWARE BOOT
  1512			000101		FEADR=101	;ADDRESS OF BOOTSTRAP
  1513			000102		FEMAX=102	;ADDRESS OF LENGTH POINTER
  1514
  1515		701140	000000		OPDEF	WRUBR	[701B8+3B12]	;WRITE USER BASE REGISTER
  1516		712000	000000		OPDEF	RDIO	[712B8]		;READ I/O
  1517		711000	000000		OPDEF	TION	[711B8]		;TEST I/O
  1518		713000	000000		OPDEF	WRIO	[713B8]		;WRITE I/O
  1519
  1520			763000		UBAP0=	763000	;ADDRESS OF UNIBUS MAP
  1521			763100		UBSTAT=	763100	;ADDRESS OF UNIBUS STATUS
  1522
  1523			000031		KPALIVE=31	;KEEP-ALIVE & STATUS WORD
  1524			000036		MSRH=	36	;RH-11 BASE ADDRESS
  1525			000037		MSDRIVE=37	;DRIVE NUMBER
  1526			000040		MSSLAVE=40	;SLAVE & FORMAT
  1527
  1528			000021		RIPST=21	;READ IN PRESET
  1529			000071		RDATA=71	;READ DATA
  1530			000200		RDY=200		;READY
  1531			020000		MCPE=20000	;MASS I/O CONTROL BUS PARITY ERROR
  1532			040000		TRE=40000	;TRANSFER ERROR
  1533			100000		SC=100000	;SPECIAL CONDITION
  1534			010000		FMT22=10000	;FORMAT 22 (FORMAT BIT)
  1535
  1536			000040		RHCLR=	40	;CONTROLLER CLEAR
  1537
  1538			000071		MT.RF=	71	;READ FORWARD
  1539			000031		MT.SF=	31	;SPACE FILE FORWARD
  1540			000033		MT.SR=	33	;SPACE REVERSE
  1541			000004		MTTM=	4	;TAPE MARK
  1542			020000		MTPIP=	20000	;POSITIONING IN PROGRESS
  1543			000200		MTDRY=	200	;DRIVE READY
  1544			001000		MTFCE=	1000	;FRAME COUNT ERROR
  1545
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 42
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0081

  1546					;REGISTER DEFINITIONS
  1547
  1548			000000		RPCS1=	00	;CONTROL AND STATUS 1
  1549			000002		RPWC=	02	;WORD COUNT REGISTER
  1550			000004		RPBA=	04	;UNIBUS ADDRESS REGISTER
  1551			000006		RPDA=	06	;DESIRED SECTOR/TRACK ADDRESS REGISTER
  1552			000010		RPCS2=	10	;CONTROL AND STATUS 2
  1553			000012		RPDS=	12	;DRIVE STATUS
  1554			000014		RPER1=	14	;ERROR 1
  1555			000040		RPER2=	40	;ERROR 2
  1556			000042		RPER3=	42	;ERROR 3
  1557			000032		RPOF=	32	;OFFSET REGISTER
  1558			000034		RPDC=	34	;DESIRED CYLINDER REGISTER
  1559			000006		RPFC=	6	;MAGTAPE FRAME COUNTER
  1560			000032		RPTC=	32	;MAGTAPE TAPE CONTROL
  1561
  1562			100000		UNV36X=100000	;UNIBUS 36 BIT TRANSFER BIT
  1563			040000		UBVBIT==40000	;UNIBUS VALID BIT
  1564
  1565	002122'				BUFFER:	BLOCK	<BUFSIZ==400>
  1566	002522'				BTJFN:	BLOCK	1		;BOOT JFN
  1567	002523'				FEJFN:	BLOCK	1		;JFN FOR THE FRONT-END FILE SYSTEM
  1568	002524'				BOOTEV:	BLOCK	1		;ENTRY VECTOR FOR BOOT
  1569	002525'				FORKN:	BLOCK	1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 43
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0082

  1570					;*WRTBOOT - WRITE MONITOR PRE-BOOT AND BOOT ON DISK
  1571
  1572	002526'	561 01 0 00 014214'	WRTBOOT:HRROI	T1,[ASCIZ "SMBOOT"]
  1573	002527'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  1574
  1575	002530'	561 01 0 00 014216'		HRROI	T1,[ASCIZ "EXE"]
  1576	002531'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  1577
  1578	002532'	402 00 0 00 016406'		SETZM	GTJDEV
  1579	002533'	402 00 0 00 016407'		SETZM	GTJDIR
  1580
  1581	002534'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  1582	002535'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  1583
  1584	002536'					CMD	[FLDDB.(.CMFIL)]
  1585	002547'	202 02 0 00 002522'		MOVEM	T2,BTJFN	;SAVE THE JFN OF THE BOOT FILE
  1586
  1587	002550'	260 17 0 00 000623'		CONFIRM
  1588
  1589	002551'	336 00 0 00 021046'		SKIPN	FESETF		;FE-DIR  IN CORE ?
  1590	002552'	260 17 0 00 013262'		 ERR	<FE-FILE SYSTEM NOT SETUP>
  1591	002553'	336 00 0 00 021045'		SKIPN	FERSETF	
  1592	002554'	260 17 0 00 014231'		ERR	<FE-FILE SYSTEM NOT RESET>
  1593
  1594	002555'	402 00 0 00 004164'		SETZM	RPPAGD
  1595	002556'	200 00 0 00 014233'		MOVE	[RPPAGD,,RPPAGD+1]
  1596	002557'	251 00 0 00 004264'		BLT	RPPAGX		;CLEAR PRE-BOOT POINTER STORAGE
  1597
  1598	002560'	336 00 0 00 000302'		SKIPN	MONTYP
  1599	002561'	254 00 0 00 003232'		JRST	WB10		;TOPS-10
  1600
  1601	002562'	403 01 0 00 000002 		SETZB	T1,T2		;CREATE A BLANK FORK
  1602	002563'	104 00 0 00 000152 		CFORK
  1603						ERJMP	[JSERR		;ERROR ON CFORK
  1604	002564'	320 16 0 00 014234'			HALTF]
  1605	002565'	202 01 0 00 002525'		MOVEM	T1,FORKN	;SAVE FORK
  1606
  1607	002566'	550 01 0 00 002522'		HRRZ	T1,BTJFN	;GET THE JFN OF THE BOOT
  1608	002567'	504 01 0 00 002525'		HRL	T1,FORKN	;GET PROCESS HANDLE
  1609	002570'	400 02 0 00 000000 		SETZ	T2,0
  1610	002571'	104 00 0 00 000200 		GET
  1611						ERJMP	[JSERR		;ERROR ON GET
  1612	002572'	320 16 0 00 014127'			JRST START]
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 44
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0083

  1613
  1614	002573'	200 01 0 00 002525'		MOVE	T1,FORKN
  1615	002574'	104 00 0 00 000205 		GEVEC			;GET THE VECTOR OF BOOT
  1616	002575'	202 02 0 00 002524'		MOVEM	T2,BOOTEV	;SAVE BOOT ENTRY VECTOR ADDRESS
  1617
  1618	002576'	400 03 0 00 000000 		SETZ	T3,		;CLEAR PAGE COUNTER
  1619	002577'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  1620	002600'	514 01 0 00 002525'		HRLZ	T1,FORKN	;GET PROCESS HANDLE
  1621	002601'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  1622
  1623	002602'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  1624	002603'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  1625	002604'	350 00 0 00 000003 		AOS	T3		;IT'S THERE, COUNT IT
  1626	002605'	253 04 0 00 002600'		AOBJN	T4,.-5
  1627
  1628	002606'	550 01 0 00 400001 		HRRZ	T1,FEDIR+FSL	;GET PRESENT FREE SPACE LENGTH
  1629	002607'	315 01 0 00 000003 		CAMGE	T1,T3		;ENOUGH ROOM ?
  1630	002610'	260 17 0 00 014245'		ERR	<NOT ENOUGH FREE SPACE>
  1631
  1632	002611'	402 00 0 00 434000 		SETZM	WINDOW
  1633	002612'	200 00 0 00 014247'		MOVE	[WINDOW,,WINDOW+1]
  1634	002613'	251 00 0 00 434777 		BLT	WINDOW+777	;CLEAR MONITOR PRE-BOOT PAGE
  1635
  1636	002614'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  1637	002615'	514 13 0 00 002523'		HRLZ	P1,FEJFN	;GET JFN OF FRONT-END-FILE SYSTEM
  1638	002616'	544 13 0 00 400001 		HLR	P1,FEDIR+FSL	;GET FREE SPACE PAGE #
  1639	002617'	516 13 0 00 400015 		HRLZM	P1,FEDIR+MBOOTL	;SET MBOOT START PAGE
  1640
  1641	002620'	201 14 0 00 004164'		MOVEI	P2,RPPAGD
  1642	002621'	402 00 0 00 021061'		SETZM	PBCNT#
  1643	002622'	554 07 0 00 400015 		HLRZ	T7,FEDIR+MBOOTL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 45
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0084

  1644
  1645	002623'	514 01 0 00 002525'	PAGELP:	HRLZ	T1,FORKN	;GET PROCESS HANDLE
  1646	002624'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  1647	002625'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  1648	002626'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  1649	002627'	260 17 0 00 003157'		GO	COPPAG		;COPY PAGE
  1650
  1651	002630'	253 04 0 00 002623'		AOBJN	T4,PAGELP	;TRY ANOTHER PAGE
  1652
  1653	002631'	405 13 0 00 777777 		ANDI	P1,-1
  1654	002632'	506 13 0 00 400001 		HRLM	P1,FEDIR+FSL	;RESET FREE SPACE START PAGE
  1655	002633'	550 00 0 00 400001 		HRRZ	0,FEDIR+FSL	;FREE SPACE NOW SMALLER BY BOOT
  1656	002634'	274 00 0 00 021061'		SUB	0,PBCNT
  1657	002635'	542 00 0 00 400001 		HRRM	0,FEDIR+FSL
  1658
  1659	002636'	200 13 0 00 021061'		MOVE	P1,PBCNT
  1660	002637'	542 13 0 00 400015 		HRRM	P1,FEDIR+MBOOTL	;SET MBOOT LENGTH
  1661
  1662	002640'	476 00 0 14 000000 		SETOM	(P2)		;INDICATE END OF SPACE
  1663
  1664	002641'	200 01 0 00 002524'		MOVE	T1,BOOTEV	;FIND ENTRY VECTOR
  1665	002642'	552 01 0 14 000001 		HRRZM	T1,1(P2)	;SET ENTRY VECTOR
  1666
  1667	002643'	514 01 0 00 002523'		HRLZ	T1,FEJFN
  1668	002644'	541 01 0 00 000015 		HRRI	T1,^D13
  1669	002645'	200 02 0 00 014250'		MOVE	T2,[.FHSLF,,<WINDOW_-^D9>]
  1670	002646'	200 03 0 00 014251'		MOVE	T3,[PM%WR!PM%RD]
  1671	002647'	104 00 0 00 000056 		PMAP			;GET MONITOR PRE-BOOT IN FE-FILE
  1672						 ERJMP	[JSERR
  1673	002650'	320 16 0 00 014127'			 JRST	START]
  1674
  1675	002651'	200 00 0 00 014252'		MOVE	[BTSTR1,,WINDOW]
  1676	002652'	251 00 0 00 434335 		BLT	WINDOW+<RPPAGX-BTSTR1>
  1677
  1678	002653'	474 01 0 00 000000 		SETO	T1,
  1679	002654'	400 03 0 00 000000 		SETZ	T3,
  1680	002655'	104 00 0 00 000056 		PMAP			;PUT MONITOR PRE-BOOT IN FE-FILE
  1681						 ERJMP	[JSERR
  1682	002656'	320 16 0 00 014127'			 JRST	START]
  1683
  1684	002657'	200 01 0 00 002525'		MOVE	T1,FORKN
  1685	002660'	104 00 0 00 000153 		KFORK			;KILL "GET" FORK
  1686						 ERJMP	[JSERR
  1687	002661'	320 16 0 00 014127'			 JRST	START]
  1688
  1689	002662'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 46
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0085

  1690					;*WRTDB - WRITE DIAGNOSTIC PRE-BOOT AND "SMMON" ON DISK
  1691
  1692	002663'	561 01 0 00 014253'	WRTDB:	HRROI	T1,[ASCIZ "SMMON"]
  1693	002664'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  1694
  1695	002665'	561 01 0 00 014216'		HRROI	T1,[ASCIZ "EXE"]
  1696	002666'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  1697
  1698	002667'	402 00 0 00 016406'		SETZM	GTJDEV
  1699	002670'	402 00 0 00 016407'		SETZM	GTJDIR
  1700
  1701	002671'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  1702	002672'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  1703
  1704	002673'					CMD	[FLDDB.(.CMFIL)]
  1705	002704'	202 02 0 00 002522'		MOVEM	T2,BTJFN	;SAVE THE JFN OF THE BOOT FILE
  1706
  1707	002705'	260 17 0 00 000623'		CONFIRM
  1708
  1709	002706'	336 00 0 00 021046'		SKIPN	FESETF		;FE-DIR  IN CODE ?
  1710	002707'	260 17 0 00 013262'		 ERR	<FE-FILE SYSTEM NOT SETUP>
  1711	002710'	336 00 0 00 021045'		SKIPN	FERSETF	
  1712	002711'	260 17 0 00 014231'		ERR	<FE-FILE SYSTEM NOT RESET>
  1713
  1714	002712'	260 17 0 00 002105'		GO	CPBPNTR		;COMPUTE DIAGNOSTIC PRE-BOOT POINTER
  1715
  1716	002713'	402 00 1 00 021070'		SETZM	@SMPBPG
  1717	002714'	200 00 0 00 021067'		MOVE	SMPBBLT
  1718	002715'	251 00 0 00 000000*		BLT	SMPEND		;CLEAR PRE-BOOT POINTER STORAGE
  1719
  1720	002716'	336 00 0 00 000302'		SKIPN	MONTYP
  1721	002717'	254 00 0 00 003402'		JRST	WDB10		;TOPS-10
  1722
  1723	002720'	403 01 0 00 000002 		SETZB	T1,T2		;CREATE A BLANK FORK
  1724	002721'	104 00 0 00 000152 		CFORK
  1725						ERJMP	[JSERR		;ERROR ON CFORK
  1726	002722'	320 16 0 00 014234'			HALTF]
  1727	002723'	202 01 0 00 002525'		MOVEM	T1,FORKN	;SAVE FORK
  1728
  1729	002724'	550 01 0 00 002522'		HRRZ	T1,BTJFN	;GET THE JFN OF THE BOOT
  1730	002725'	504 01 0 00 002525'		HRL	T1,FORKN	;GET PROCESS HANDLE
  1731	002726'	400 02 0 00 000000 		SETZ	T2,0
  1732	002727'	104 00 0 00 000200 		GET
  1733						ERJMP	[JSERR		;ERROR ON GET
  1734	002730'	320 16 0 00 014127'			JRST START]
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 47
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0086

  1735
  1736	002731'	200 01 0 00 002525'		MOVE	T1,FORKN
  1737	002732'	104 00 0 00 000205 		GEVEC			;GET THE VECTOR OF BOOT
  1738	002733'	202 02 0 00 002524'		MOVEM	T2,BOOTEV	;SAVE BOOT ENTRY VECTOR ADDRESS
  1739
  1740	002734'	400 03 0 00 000000 		SETZ	T3,		;CLEAR PAGE COUNTER
  1741	002735'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  1742	002736'	514 01 0 00 002525'		HRLZ	T1,FORKN	;GET PROCESS HANDLE
  1743	002737'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  1744
  1745	002740'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  1746	002741'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  1747	002742'	350 00 0 00 000003 		AOS	T3		;IT'S THERE, COUNT IT
  1748	002743'	253 04 0 00 002736'		AOBJN	T4,.-5
  1749
  1750	002744'	550 01 0 00 400001 		HRRZ	T1,FEDIR+FSL	;GET PRESENT FREE SPACE LENGTH
  1751	002745'	315 01 0 00 000003 		CAMGE	T1,T3		;ENOUGH ROOM ?
  1752	002746'	260 17 0 00 014245'		ERR	<NOT ENOUGH FREE SPACE>
  1753
  1754	002747'	402 00 0 00 434000 		SETZM	WINDOW
  1755	002750'	200 00 0 00 014247'		MOVE	[WINDOW,,WINDOW+1]
  1756	002751'	251 00 0 00 434777 		BLT	WINDOW+777	;CLEAR DIAG PRE-BOOT PAGE
  1757
  1758	002752'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  1759	002753'	514 13 0 00 002523'		HRLZ	P1,FEJFN	;GET JFN OF FRONT-END-FILE SYSTEM
  1760	002754'	544 13 0 00 400001 		HLR	P1,FEDIR+FSL	;GET FREE SPACE PAGE #
  1761	002755'	516 13 0 00 400017 		HRLZM	P1,FEDIR+DBOOTL	;SET DBOOT START PAGE
  1762
  1763	002756'	200 14 0 00 021070'		MOVE	P2,SMPBPG
  1764	002757'	402 00 0 00 021061'		SETZM	PBCNT
  1765	002760'	554 07 0 00 400017 		HLRZ	T7,FEDIR+DBOOTL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 48
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0087

  1766
  1767	002761'	514 01 0 00 002525'	WRTDBLP:HRLZ	T1,FORKN	;GET PROCESS HANDLE
  1768	002762'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  1769	002763'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  1770	002764'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  1771	002765'	260 17 0 00 003157'		GO	COPPAG		;COPY PAGE
  1772
  1773	002766'	253 04 0 00 002761'		AOBJN	T4,WRTDBLP	;TRY ANOTHER PAGE
  1774
  1775	002767'	405 13 0 00 777777 		ANDI	P1,-1
  1776	002770'	506 13 0 00 400001 		HRLM	P1,FEDIR+FSL	;RESET FREE SPACE START PAGE
  1777	002771'	550 00 0 00 400001 		HRRZ	0,FEDIR+FSL	;FREE SPACE NOW SMALLER BY BOOT
  1778	002772'	274 00 0 00 021061'		SUB	0,PBCNT
  1779	002773'	542 00 0 00 400001 		HRRM	0,FEDIR+FSL
  1780
  1781	002774'	200 13 0 00 021061'		MOVE	P1,PBCNT
  1782	002775'	542 13 0 00 400017 		HRRM	P1,FEDIR+DBOOTL	;SET DBOOT LENGTH
  1783
  1784	002776'	476 00 0 14 000000 		SETOM	(P2)		;INDICATE END OF SPACE
  1785
  1786	002777'	200 01 0 00 002524'		MOVE	T1,BOOTEV	;FIND ENTRY VECTOR
  1787	003000'	552 01 0 14 000001 		HRRZM	T1,1(P2)	;SET ENTRY VECTOR
  1788
  1789	003001'	514 01 0 00 002523'		HRLZ	T1,FEJFN
  1790	003002'	541 01 0 00 000016 		HRRI	T1,^D14
  1791	003003'	200 02 0 00 014250'		MOVE	T2,[.FHSLF,,<WINDOW_-^D9>]
  1792	003004'	200 03 0 00 014251'		MOVE	T3,[PM%WR!PM%RD]
  1793	003005'	104 00 0 00 000056 		PMAP			;GET DIAG PRE-BOOT IN FE-FILE
  1794						 ERJMP	[JSERR
  1795	003006'	320 16 0 00 014127'			 JRST	START]
  1796
  1797	003007'	200 00 0 00 014262'		MOVE	[SMPREB,,WINDOW]
  1798	003010'	251 00 0 00 434777 		BLT	WINDOW+777
  1799
  1800	003011'	474 01 0 00 000000 		SETO	T1,
  1801	003012'	400 03 0 00 000000 		SETZ	T3,
  1802	003013'	104 00 0 00 000056 		PMAP			;PUT DIAG PRE-BOOT IN FE-FILE
  1803						 ERJMP	[JSERR
  1804	003014'	320 16 0 00 014127'			 JRST	START]
  1805
  1806	003015'	200 01 0 00 002525'		MOVE	T1,FORKN
  1807	003016'	104 00 0 00 000153 		KFORK			;KILL "GET" FORK
  1808						 ERJMP	[JSERR
  1809	003017'	320 16 0 00 014127'			 JRST	START]
  1810
  1811	003020'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 49
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0088

  1812					;*WRTBC2 - WRITE BOOTCHECK 2 PRE-BOOT AND "SMBC2" ON DISK
  1813
  1814	003021'	561 01 0 00 014263'	WRTBC2:HRROI	T1,[ASCIZ "SMBC2"]
  1815	003022'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  1816
  1817	003023'	561 01 0 00 014216'		HRROI	T1,[ASCIZ "EXE"]
  1818	003024'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  1819
  1820	003025'	402 00 0 00 016406'		SETZM	GTJDEV
  1821	003026'	402 00 0 00 016407'		SETZM	GTJDIR
  1822
  1823	003027'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  1824	003030'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  1825
  1826	003031'					CMD	[FLDDB.(.CMFIL)]
  1827	003042'	202 02 0 00 002522'		MOVEM	T2,BTJFN	;SAVE THE JFN OF THE BC2 FILE
  1828
  1829	003043'	260 17 0 00 000623'		CONFIRM
  1830
  1831	003044'	336 00 0 00 021046'		SKIPN	FESETF		;FE-DIR  IN CODE ?
  1832	003045'	260 17 0 00 013262'		 ERR	<FE-FILE SYSTEM NOT SETUP>
  1833	003046'	336 00 0 00 021045'		SKIPN	FERSETF	
  1834	003047'	260 17 0 00 014231'		ERR	<FE-FILE SYSTEM NOT RESET>
  1835
  1836	003050'	260 17 0 00 002105'		GO	CPBPNTR		;COMPUTE DIAGNOSTIC PRE-BOOT POINTER
  1837
  1838	003051'	402 00 1 00 021070'		SETZM	@SMPBPG
  1839	003052'	200 00 0 00 021067'		MOVE	SMPBBLT
  1840	003053'	251 00 0 00 002715*		BLT	SMPEND		;CLEAR PRE-BOOT POINTER STORAGE
  1841
  1842	003054'	336 00 0 00 000302'		SKIPN	MONTYP
  1843	003055'	254 00 0 00 003552'		JRST	BC210		;TOPS-10
  1844
  1845	003056'	403 01 0 00 000002 		SETZB	T1,T2		;CREATE A BLANK FORK
  1846	003057'	104 00 0 00 000152 		CFORK
  1847						ERJMP	[JSERR		;ERROR ON CFORK
  1848	003060'	320 16 0 00 014234'			HALTF]
  1849	003061'	202 01 0 00 002525'		MOVEM	T1,FORKN	;SAVE FORK
  1850
  1851	003062'	550 01 0 00 002522'		HRRZ	T1,BTJFN	;GET THE JFN OF THE BOOT
  1852	003063'	504 01 0 00 002525'		HRL	T1,FORKN	;GET PROCESS HANDLE
  1853	003064'	400 02 0 00 000000 		SETZ	T2,0
  1854	003065'	104 00 0 00 000200 		GET
  1855						ERJMP	[JSERR		;ERROR ON GET
  1856	003066'	320 16 0 00 014127'			JRST START]
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 50
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0089

  1857
  1858	003067'	200 01 0 00 002525'		MOVE	T1,FORKN
  1859	003070'	104 00 0 00 000205 		GEVEC			;GET THE VECTOR OF BOOT
  1860	003071'	202 02 0 00 002524'		MOVEM	T2,BOOTEV	;SAVE BOOT ENTRY VECTOR ADDRESS
  1861
  1862	003072'	400 03 0 00 000000 		SETZ	T3,		;CLEAR PAGE COUNTER
  1863	003073'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  1864	003074'	514 01 0 00 002525'		HRLZ	T1,FORKN	;GET PROCESS HANDLE
  1865	003075'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  1866
  1867	003076'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  1868	003077'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  1869	003100'	350 00 0 00 000003 		AOS	T3		;IT'S THERE, COUNT IT
  1870	003101'	253 04 0 00 003074'		AOBJN	T4,.-5
  1871
  1872	003102'	550 01 0 00 400001 		HRRZ	T1,FEDIR+FSL	;GET PRESENT FREE SPACE LENGTH
  1873	003103'	315 01 0 00 000003 		CAMGE	T1,T3		;ENOUGH ROOM ?
  1874	003104'	260 17 0 00 014245'		ERR	<NOT ENOUGH FREE SPACE>
  1875
  1876	003105'	402 00 0 00 434000 		SETZM	WINDOW
  1877	003106'	200 00 0 00 014247'		MOVE	[WINDOW,,WINDOW+1]
  1878	003107'	251 00 0 00 434777 		BLT	WINDOW+777	;CLEAR BC2 PRE-BOOT PAGE
  1879
  1880	003110'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  1881	003111'	514 13 0 00 002523'		HRLZ	P1,FEJFN	;GET JFN OF FRONT-END-FILE SYSTEM
  1882	003112'	544 13 0 00 400001 		HLR	P1,FEDIR+FSL	;GET FREE SPACE PAGE #
  1883	003113'	516 13 0 00 400021 		HRLZM	P1,FEDIR+BCHKL	;SET BC2 START PAGE
  1884
  1885	003114'	200 14 0 00 021070'		MOVE	P2,SMPBPG
  1886	003115'	402 00 0 00 021061'		SETZM	PBCNT
  1887	003116'	554 07 0 00 400021 		HLRZ	T7,FEDIR+BCHKL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 51
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0090

  1888
  1889	003117'	514 01 0 00 002525'	BC2LP:	HRLZ	T1,FORKN	;GET PROCESS HANDLE
  1890	003120'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  1891	003121'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  1892	003122'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  1893	003123'	260 17 0 00 003157'		GO	COPPAG		;COPY PAGE
  1894
  1895	003124'	253 04 0 00 003117'		AOBJN	T4,BC2LP	;TRY ANOTHER PAGE
  1896
  1897	003125'	405 13 0 00 777777 		ANDI	P1,-1
  1898	003126'	506 13 0 00 400001 		HRLM	P1,FEDIR+FSL	;RESET FREE SPACE START PAGE
  1899	003127'	550 00 0 00 400001 		HRRZ	0,FEDIR+FSL	;FREE SPACE NOW SMALLER BY BC2
  1900	003130'	274 00 0 00 021061'		SUB	0,PBCNT
  1901	003131'	542 00 0 00 400001 		HRRM	0,FEDIR+FSL
  1902
  1903	003132'	200 13 0 00 021061'		MOVE	P1,PBCNT
  1904	003133'	542 13 0 00 400021 		HRRM	P1,FEDIR+BCHKL	;SET BC2 LENGTH
  1905
  1906	003134'	476 00 0 14 000000 		SETOM	(P2)		;INDICATE END OF SPACE
  1907
  1908	003135'	200 01 0 00 002524'		MOVE	T1,BOOTEV	;FIND ENTRY VECTOR
  1909	003136'	552 01 0 14 000001 		HRRZM	T1,1(P2)	;SET ENTRY VECTOR
  1910
  1911	003137'	514 01 0 00 002523'		HRLZ	T1,FEJFN
  1912	003140'	541 01 0 00 000033 		HRRI	T1,^D27
  1913	003141'	200 02 0 00 014250'		MOVE	T2,[.FHSLF,,<WINDOW_-^D9>]
  1914	003142'	200 03 0 00 014251'		MOVE	T3,[PM%WR!PM%RD]
  1915	003143'	104 00 0 00 000056 		PMAP			;GET BC2 PRE-BOOT IN FE-FILE
  1916						 ERJMP	[JSERR
  1917	003144'	320 16 0 00 014127'			 JRST	START]
  1918
  1919	003145'	200 00 0 00 014262'		MOVE	[SMPREB,,WINDOW]
  1920	003146'	251 00 0 00 434777 		BLT	WINDOW+777
  1921
  1922	003147'	474 01 0 00 000000 		SETO	T1,
  1923	003150'	400 03 0 00 000000 		SETZ	T3,
  1924	003151'	104 00 0 00 000056 		PMAP			;PUT BC2 PRE-BOOT IN FE-FILE
  1925						 ERJMP	[JSERR
  1926	003152'	320 16 0 00 014127'			 JRST	START]
  1927
  1928	003153'	200 01 0 00 002525'		MOVE	T1,FORKN
  1929	003154'	104 00 0 00 000153 		KFORK			;KILL "GET" FORK
  1930						 ERJMP	[JSERR
  1931	003155'	320 16 0 00 014127'			 JRST	START]
  1932
  1933	003156'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 52
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0091

  1934
  1935	003157'	261 17 0 00 000001 	COPPAG:	PUT	T1
  1936	003160'	261 17 0 00 000003 		PUT	T3
  1937
  1938	003161'	402 00 0 00 021060'		SETZM	PAG0FLG#
  1939	003162'	550 03 0 00 000001 		HRRZ	T3,T1
  1940	003163'	306 03 0 00 000001 		CAIN	T3,1		;IS THIS PAGE 1 ?
  1941	003164'	260 17 0 00 014300'		ERR	<CAN'T OVERLOAD PRE-BOOT PAGE>
  1942
  1943	003165'	306 03 0 00 000000 		CAIN	T3,0		;IS THIS PAGE 0 ?
  1944	003166'	476 00 0 00 021060'		SETOM	PAG0FLG		;IF PAGE 0 OF FILE, SET FLAG
  1945	003167'	262 17 0 00 000003 		GETIT	T3
  1946	003170'	262 17 0 00 000001 		GETIT	T1
  1947
  1948	003171'	332 00 0 00 021060'		SKIPE	PAG0FLG		;IF PAGE 0, IGNORE IT
  1949	003172'	263 17 0 00 000000 		RTN
  1950
  1951	003173'	261 17 0 00 000001 		PUT	T1
  1952	003174'	200 06 0 00 000014 		MOVE	T6,P2
  1953	003175'	260 17 0 00 005041'		GO	SBOOTP		;SET 8080 POINTER
  1954	003176'	350 00 0 00 000014 		AOS	P2
  1955
  1956	003177'	262 17 0 00 000001 		GETIT	T1
  1957	003200'	552 01 0 14 000000 		HRRZM	T1,0(P2)	;SET A POINTER TO PAGE NUMBER
  1958	003201'	350 00 0 00 000014 		AOS	P2		;POINT TO NEXT
  1959
  1960	003202'	261 17 0 00 000001 		PUT	T1
  1961	003203'	550 03 0 00 000001 		HRRZ	T3,T1		;FIND THE PAGE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 53
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0092

  1962
  1963	003204'	504 01 0 00 002525'		HRL	T1,FORKN	;GET FORK NUMBER
  1964	003205'	540 01 0 00 000003 		HRR	T1,T3		;GET PAGE NUMBER
  1965	003206'	200 02 0 00 014302'		MOVE	T2,[.FHSLF,,<GENPAG_-^D9>]
  1966	003207'	200 03 0 00 014303'		MOVE	T3,[PM%RD]
  1967	003210'	104 00 0 00 000056 		PMAP			;GET PAGE IN SELF
  1968						ERJMP	[JSERR
  1969	003211'	320 16 0 00 014127'			JRST START]
  1970
  1971	003212'	200 01 0 00 000013 		MOVE	T1,P1		;SET UP PMAP ARGUMENTS
  1972	003213'	200 02 0 00 014304'		MOVE	T2,[.FHSLF,,<IPAG_-^D9>]
  1973	003214'	205 03 0 00 140000 		MOVSI	T3,(PM%WR!PM%RD)
  1974	003215'	104 00 0 00 000056 		PMAP
  1975						ERJMP	[JSERR
  1976	003216'	320 16 0 00 014127'			JRST START]	;JSYS ERROR
  1977
  1978	003217'	200 03 0 00 014305'		MOVE	T3,[GENPAG,,IPAG]
  1979	003220'	251 03 0 00 022637'		BLT	T3,IPAG+777
  1980
  1981	003221'	474 01 0 00 000000 		SETO	T1,
  1982	003222'	400 03 0 00 000000 		SETZ	T3,
  1983	003223'	104 00 0 00 000056 		PMAP
  1984						ERJMP	[JSERR
  1985	003224'	320 16 0 00 014127'			JRST START]	;JSYS ERROR
  1986
  1987	003225'	262 17 0 00 000003 		GETIT	T3		;REMOVE PAGE NUMBER
  1988	003226'	350 00 0 00 000013 		AOS	P1		;UPDATE P1 ARGUMENTS
  1989	003227'	350 00 0 00 021061'		AOS	PBCNT		;COUNT PAGES
  1990	003230'	271 07 0 00 000001 		ADDI	T7,1		;UPDATE DISK ADDRESS
  1991	003231'	263 17 0 00 000000 		RTN			;RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 54
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0093

  1992					;HERE TO READ MONITOR BOOT EXE FILE
  1993
  1994	003232'	260 17 0 00 007027'	WB10:	GO	OPNTEN		;OPEN INPUT FILE
  1995	003233'	260 17 0 00 014311'		ERR	<FILE NOT FOUND>
  1996
  1997	003234'	200 01 0 00 006663'		MOVE	T1,LOOK10+.RBNAM
  1998	003235'	202 01 0 00 006043'		MOVEM	T1,O.NAM1	;SAME NAME AS INPUT
  1999
  2000	003236'	205 01 0 00 625155 		MOVSI	T1,(SIXBIT/RIM/)
  2001	003237'	202 01 0 00 006044'		MOVEM	T1,O.EXT	;OUTPUT EXT IS ".RIM"
  2002
  2003	003240'	200 01 0 00 006667'		MOVE	T1,LOOK10+.RBVER
  2004	003241'	202 01 0 00 006051'		MOVEM	T1,O.VER	;USE INPUT VERSION AS OUTPUT VERSION
  2005
  2006	003242'	135 01 0 00 014313'		LDB	T1,[POINT 11,LOOK10+.RBPRV,23]
  2007	003243'	202 01 0 00 006050'		MOVEM	T1,O.TIME	;USE INPUT TIME AND DATE AS OUTPUT
  2008
  2009	003244'	135 01 0 00 014314'		LDB	T1,[POINT 3,LOOK10+.RBEXT,20]
  2010	003245'	137 01 0 00 014315'		DPB	T1,[POINT 3,O.DATE,23]
  2011	003246'	135 01 0 00 014316'		LDB	T1,[POINT 12,LOOK10+.RBPRV,35]
  2012	003247'	137 01 0 00 014317'		DPB	T1,[POINT 12,O.DATE,35]
  2013
  2014	003250'	200 01 0 00 021036'		MOVE	T1,DIRDIR	;USE WRTSET'S PPN
  2015	003251'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  2016
  2017	003252'	200 01 0 00 005405'		MOVE	T1,DIRDEV	;USE WRTSET'S DEVICE
  2018	003253'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  2019
  2020	003254'	201 01 0 00 000577 		MOVEI	T1,577		;SET PROTECTION TO 577
  2021	003255'	202 01 0 00 006045'		MOVEM	T1,O.PRT
  2022
  2023	003256'	200 01 0 00 006666'		MOVE	T1,LOOK10+.RBSIZ ;GET FILE SIZE IN WORDS
  2024	003257'	602 01 0 00 000777 		TRNE	T1,777
  2025	003260'	260 17 0 00 014327'		ERR	<FILE NOT EVEN MULTIPLE OF PAGES>
  2026	003261'	370 00 0 00 000001 		SOS	T1		;MINUS EXE DIR PAGE
  2027	003262'	231 01 0 00 001000 		IDIVI	T1,^D512	;CONVERT TO PAGES
  2028	003263'	202 01 0 00 400015 		MOVEM	T1,FEDIR+MBOOTL	;SET MONITOR BOOT LENGTH
  2029	003264'	221 01 0 00 000004 		IMULI	T1,4		;CONVERT TO BLOCKS
  2030	003265'	202 01 0 00 021065'		MOVEM	T1,S.ALO	;SET FOR ALLOCATION
  2031
  2032	003266'	260 17 0 00 007160'		GO	ETER10		;ENTER OUTPUT FILE
  2033	003267'	260 17 0 00 014335'		ERR	<FILE ENTER FAILURE>
  2034
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 55
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0094

  2035					;*NOW READ EXE FILE
  2036
  2037	003270'	402 00 0 00 021066'		SETZM	SELPAG#
  2038	003271'	260 17 0 00 010762'		GO	REDDIR		;READ THE DIRECTORY PAGE
  2039
  2040	003272'	554 01 0 00 434000 		HLRZ	A,DBUF		;DIRECTORY DESCRIPTOR
  2041	003273'	550 06 0 00 434000 		HRRZ	T6,DBUF		;LENGTH OF THE DIRECTORY
  2042	003274'	306 01 0 00 001776 		CAIN	A,SV.DIR	;IS THIS A DIRECTORY?
  2043	003275'	301 06 0 00 000200 		CAIL	T6,^D128	; WHICH IS LESS THAN OR EQUAL TO 128 WORDS LONG?
  2044	003276'	260 17 0 00 014347'		ERR	<NOT A DIRECTORY OR ONE WE CAN'T HANDLE>
  2045
  2046	003277'	211 06 0 06 777777 		MOVNI	T6,-1(T6)	;MAKE AN AOBJN POINTER TO THE DIRECTORY
  2047	003300'	505 06 0 00 434001 		HRLI	T6,DBUF+1	; ..
  2048	003301'	207 00 0 00 000006 		MOVSS	T6		; ..
  2049
  2050	003302'	201 14 0 00 004164'		MOVEI	P2,RPPAGD
  2051	003303'	271 14 0 00 000001 		ADDI	P2,1
  2052
  2053	003304'	200 13 0 06 000000 	WB10A:	MOVE	M,(T6)		;BITS,,FILE PAGE NUMBER
  2054	003305'	321 13 0 00 003312'		JUMPL	M,WB10C		;JUMP IF HI SEG PAGE, READ IT IMMEDIATELY
  2055									; ABOVE THE LOW SEGMENT
  2056
  2057	003306'	550 05 0 06 000001 		HRRZ	T5,1(T6)	;CORE PAGE NUMBER
  2058	003307'	242 05 0 00 000011 		LSH	T5,P2WLSH	;CORE ADDRESS
  2059	003310'	336 00 0 00 000005 		SKIPN	T5		;PAGE 0?
  2060	003311'	561 05 0 00 000000 		HRROI	T5,0		;YES, READ IT AND REMEMBER ITS PAGE 0
  2061
  2062	003312'	135 07 0 00 014351'	WB10C:	LDB	T7,[POINT 9,1(T6),8]
  2063
  2064	003313'	606 13 0 00 777777 	WB10D:	TRNN	M,-1		;AN ALLOCATED BUT ZERO PAGE?
  2065	003314'	364 13 0 00 003346'		SOJA	M,WB10H		;YES, COUNT DOWN REPEAT COUNT AND UPDATE CORE ADDRESS
  2066	003315'	550 04 0 00 000013 		HRRZ	T4,M		;FILE PAGE NUMBER
  2067	003316'	242 04 0 00 000002 		LSH	T4,P2BLSH	;CONVERT TO BLOCK WITHIN THE FILE
  2068	003317'	315 04 0 00 021066'		CAMGE	T4,SELPAG	;FILE PAGE NUMBERS MUST BE MONOTONICALLY INCREASING
  2069	003320'	260 17 0 00 014364'		ERR	<PAGES IN EXE DIR AREN'T MONOTONICALLY INCREASING>
  2070
  2071	003321'	316 04 0 00 021066'	WB10E:	CAMN	T4,SELPAG	;AT THE RIGHT BLOCK WITHIN THE FILE?
  2072	003322'	254 00 0 00 003325'		JRST	WB10G		;YES
  2073
  2074	003323'	260 17 0 00 010761'	WB10F:	GO	SELBLK		;BYPASS FILE PAGE
  2075	003324'	254 00 0 00 003321'		JRST	WB10E		;SEE IF THERE YET
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 56
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0095

  2076
  2077	003325'	306 05 0 00 001000 	WB10G:	CAIN	T5,1000
  2078	003326'	260 17 0 00 014300'		ERR	<CAN'T OVERLOAD PRE-BOOT PAGE>
  2079
  2080	003327'	260 17 0 00 010761'		GO	REDPAG		;READ EXE DATA PAGE
  2081
  2082	003330'	321 05 0 00 003343'		JUMPL	T5,WB10X	;PAGE 0 ?
  2083
  2084	003331'	261 17 0 00 000005 		PUT	T5
  2085	003332'	405 05 0 00 777777 		ANDI	T5,-1
  2086	003333'	242 05 0 00 777767 		LSH	T5,W2PLSH
  2087	003334'	552 05 0 14 000000 		HRRZM	T5,(P2)		;SET A POINTER TO PAGE NUMBER
  2088	003335'	262 17 0 00 000005 		GETIT	T5
  2089	003336'	271 14 0 00 000002 		ADDI	P2,2		;POINT TO NEXT
  2090
  2091						OUT	WC,[IOWD ^D512,IPAG
  2092	003337'	057 03 0 00 014366'			    0]
  2093	003340'	334 00 0 00 000000 		SKIPA
  2094	003341'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  2095
  2096	003342'	325 05 0 00 003346'		JUMPGE	T5,WB10H	;PAGE 0 JUST READ?
  2097
  2098	003343'	200 00 0 00 021760'	WB10X:	MOVE	IPAG+.JBSA
  2099	003344'	202 00 0 00 002524'		MOVEM	BOOTEV		;SAVE STARTING ADDRESS
  2100
  2101	003345'	201 05 0 00 000000 		MOVEI	T5,0		;READ NEXT PAGE INTO PAGE 1
  2102
  2103	003346'	271 05 0 00 001000 	WB10H:	ADDI	T5,PAGSIZ	;NEXT PAGE
  2104	003347'	371 00 0 00 000007 	WB10I:	SOSL	T7		;READ ALL THE PAGES DESCRIBED BY THIS ENTRY?
  2105	003350'	344 13 0 00 003313'		AOJA	M,WB10D		;NO, READ THE NEXT PAGE
  2106
  2107	003351'	253 06 0 00 003352'		AOBJN	T6,.+1		;BUMP PAST THIS DIRECTORY ENTRY, AND
  2108	003352'	253 06 0 00 003304'		AOBJN	T6,WB10A	; GO GET THE NEXT DIRECTORY ENTRY
  2109
  2110	003353'	476 00 0 14 777777 		SETOM	-1(P2)		;INDICATE END OF SPACE
  2111
  2112	003354'	200 01 0 00 002524'		MOVE	T1,BOOTEV
  2113	003355'	552 01 0 14 000000 		HRRZM	T1,(P2)		;SET ENTRY VECTOR
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 57
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0096

  2114					;*FIND 1ST PAGE OF FILE & PUT IN PRE-BOOT
  2115
  2116	003356'	070 03 0 00 000004 		CLOSE	WC,CL.DLL	;CLOSE FILE
  2117	003357'	071 03 0 00 000000 		RELEAS	WC,
  2118
  2119	003360'	260 17 0 00 007507'		GO	GETBK2		;GET DISK ADDRESS
  2120	003361'	202 01 0 00 400014 		MOVEM	T1,FEDIR+MBOOTP
  2121	003362'	202 01 0 00 000005 		MOVEM	T1,T5
  2122
  2123					;*COMPUTE 8080 ADDRESSES - PUT IN PRE-BOOT
  2124
  2125	003363'	201 06 0 00 004164'		MOVEI	T6,RPPAGD
  2126
  2127	003364'	200 00 0 06 000000 	WB10J:	MOVE	(T6)		;GET ADDRESS POINTER
  2128	003365'	316 00 0 00 013454'		CAMN	[-1]		;TERMINATOR ?
  2129	003366'	254 00 0 00 003374'		JRST	WB10K		;YES
  2130
  2131	003367'	200 01 0 00 000005 		MOVE	T1,T5
  2132	003370'	260 17 0 00 005044'		GO	TBOOTP		;SET DISK ADDRESS
  2133	003371'	271 05 0 00 000004 		ADDI	T5,4
  2134	003372'	271 06 0 00 000002 		ADDI	T6,2
  2135	003373'	254 00 0 00 003364'		JRST	WB10J
  2136
  2137	003374'	402 00 0 00 415000 	WB10K:	SETZM	MPREBP
  2138	003375'	200 00 0 00 014375'		MOVE	[MPREBP,,MPREBP+1]
  2139	003376'	251 00 0 00 415777 		BLT	MPREBP+777
  2140
  2141	003377'	200 00 0 00 014376'		MOVE	[BTSTR1,,MPREBP]	;PUT MONITOR PRE-BOOT IN PLACE
  2142	003400'	251 00 0 00 415335 		BLT	MPREBP+<RPPAGX-BTSTR1>
  2143
  2144	003401'	263 17 0 00 000000 		RTN			;DONE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 58
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0097

  2145					;HERE TO READ DIAGNOSTIC BOOT EXE FILE
  2146
  2147	003402'	260 17 0 00 007027'	WDB10:	GO	OPNTEN		;OPEN INPUT FILE
  2148	003403'	260 17 0 00 014311'		ERR	<FILE NOT FOUND>
  2149
  2150	003404'	200 01 0 00 006663'		MOVE	T1,LOOK10+.RBNAM
  2151	003405'	202 01 0 00 006043'		MOVEM	T1,O.NAM1	;SAME NAME AS INPUT
  2152
  2153	003406'	205 01 0 00 625155 		MOVSI	T1,(SIXBIT/RIM/)
  2154	003407'	202 01 0 00 006044'		MOVEM	T1,O.EXT	;OUTPUT EXT IS ".RIM"
  2155
  2156	003410'	200 01 0 00 006667'		MOVE	T1,LOOK10+.RBVER
  2157	003411'	202 01 0 00 006051'		MOVEM	T1,O.VER	;USE INPUT VERSION AS OUTPUT VERSION
  2158
  2159	003412'	135 01 0 00 014313'		LDB	T1,[POINT 11,LOOK10+.RBPRV,23]
  2160	003413'	202 01 0 00 006050'		MOVEM	T1,O.TIME	;USE INPUT TIME AND DATE AS OUTPUT
  2161
  2162	003414'	135 01 0 00 014314'		LDB	T1,[POINT 3,LOOK10+.RBEXT,20]
  2163	003415'	137 01 0 00 014315'		DPB	T1,[POINT 3,O.DATE,23]
  2164	003416'	135 01 0 00 014316'		LDB	T1,[POINT 12,LOOK10+.RBPRV,35]
  2165	003417'	137 01 0 00 014317'		DPB	T1,[POINT 12,O.DATE,35]
  2166
  2167	003420'	200 01 0 00 021036'		MOVE	T1,DIRDIR	;USE WRTSET'S PPN
  2168	003421'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  2169
  2170	003422'	200 01 0 00 005405'		MOVE	T1,DIRDEV	;USE WRTSET'S DEVICE
  2171	003423'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  2172
  2173	003424'	201 01 0 00 000577 		MOVEI	T1,577		;SET PROTECTION TO 577
  2174	003425'	202 01 0 00 006045'		MOVEM	T1,O.PRT
  2175
  2176	003426'	200 01 0 00 006666'		MOVE	T1,LOOK10+.RBSIZ ;GET FILE SIZE IN WORDS
  2177	003427'	602 01 0 00 000777 		TRNE	T1,777
  2178	003430'	260 17 0 00 014327'		ERR	<FILE NOT EVEN MULTIPLE OF PAGES>
  2179	003431'	370 00 0 00 000001 		SOS	T1		;MINUS EXE DIR PAGE
  2180	003432'	231 01 0 00 001000 		IDIVI	T1,^D512	;CONVERT TO PAGES
  2181	003433'	202 01 0 00 400017 		MOVEM	T1,FEDIR+DBOOTL	;SET MONITOR BOOT LENGTH
  2182	003434'	221 01 0 00 000004 		IMULI	T1,4		;CONVERT TO BLOCKS
  2183	003435'	202 01 0 00 021065'		MOVEM	T1,S.ALO	;SET FOR ALLOCATION
  2184
  2185	003436'	260 17 0 00 007160'		GO	ETER10		;ENTER OUTPUT FILE
  2186	003437'	260 17 0 00 014335'		ERR	<FILE ENTER FAILURE>
  2187
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 59
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0098

  2188					;*NOW READ EXE FILE
  2189
  2190	003440'	402 00 0 00 021066'		SETZM	SELPAG#
  2191	003441'	260 17 0 00 010762'		GO	REDDIR		;READ THE DIRECTORY PAGE
  2192
  2193	003442'	554 01 0 00 434000 		HLRZ	A,DBUF		;DIRECTORY DESCRIPTOR
  2194	003443'	550 06 0 00 434000 		HRRZ	T6,DBUF		;LENGTH OF THE DIRECTORY
  2195	003444'	306 01 0 00 001776 		CAIN	A,SV.DIR	;IS THIS A DIRECTORY?
  2196	003445'	301 06 0 00 000200 		CAIL	T6,^D128	; WHICH IS LESS THAN OR EQUAL TO 128 WORDS LONG?
  2197	003446'	260 17 0 00 014347'		ERR	<NOT A DIRECTORY OR ONE WE CAN'T HANDLE>
  2198
  2199	003447'	211 06 0 06 777777 		MOVNI	T6,-1(T6)	;MAKE AN AOBJN POINTER TO THE DIRECTORY
  2200	003450'	505 06 0 00 434001 		HRLI	T6,DBUF+1	; ..
  2201	003451'	207 00 0 00 000006 		MOVSS	T6		; ..
  2202
  2203	003452'	200 14 0 00 021070'		MOVE	P2,SMPBPG
  2204	003453'	271 14 0 00 000001 		ADDI	P2,1
  2205
  2206	003454'	200 13 0 06 000000 	WDB10A:	MOVE	M,(T6)		;BITS,,FILE PAGE NUMBER
  2207	003455'	321 13 0 00 003462'		JUMPL	M,WDB10C		;JUMP IF HI SEG PAGE, READ IT IMMEDIATELY
  2208									; ABOVE THE LOW SEGMENT
  2209
  2210	003456'	550 05 0 06 000001 		HRRZ	T5,1(T6)	;CORE PAGE NUMBER
  2211	003457'	242 05 0 00 000011 		LSH	T5,P2WLSH	;CORE ADDRESS
  2212	003460'	336 00 0 00 000005 		SKIPN	T5		;PAGE 0?
  2213	003461'	561 05 0 00 000000 		HRROI	T5,0		;YES, READ IT AND REMEMBER ITS PAGE 0
  2214
  2215	003462'	135 07 0 00 014351'	WDB10C:	LDB	T7,[POINT 9,1(T6),8]
  2216
  2217	003463'	606 13 0 00 777777 	WDB10D:	TRNN	M,-1		;AN ALLOCATED BUT ZERO PAGE?
  2218	003464'	364 13 0 00 003516'		SOJA	M,WDB10H	;YES, COUNT DOWN REPEAT COUNT AND UPDATE CORE ADDRESS
  2219	003465'	550 04 0 00 000013 		HRRZ	T4,M		;FILE PAGE NUMBER
  2220	003466'	242 04 0 00 000002 		LSH	T4,P2BLSH	;CONVERT TO BLOCK WITHIN THE FILE
  2221	003467'	315 04 0 00 021066'		CAMGE	T4,SELPAG	;FILE PAGE NUMBERS MUST BE MONOTONICALLY INCREASING
  2222	003470'	260 17 0 00 014364'		ERR	<PAGES IN EXE DIR AREN'T MONOTONICALLY INCREASING>
  2223
  2224	003471'	316 04 0 00 021066'	WDB10E:	CAMN	T4,SELPAG	;AT THE RIGHT BLOCK WITHIN THE FILE?
  2225	003472'	254 00 0 00 003475'		JRST	WDB10G		;YES
  2226
  2227	003473'	260 17 0 00 010761'	WDB10F:	GO	SELBLK		;BYPASS FILE PAGE
  2228	003474'	254 00 0 00 003471'		JRST	WDB10E		;SEE IF THERE YET
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 60
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0099

  2229
  2230	003475'	306 05 0 00 001000 	WDB10G:	CAIN	T5,1000
  2231	003476'	260 17 0 00 014300'		ERR	<CAN'T OVERLOAD PRE-BOOT PAGE>
  2232
  2233	003477'	260 17 0 00 010761'		GO	REDPAG		;READ EXE DATA PAGE
  2234
  2235	003500'	321 05 0 00 003513'		JUMPL	T5,WDB10X	;PAGE 0 ?
  2236
  2237	003501'	261 17 0 00 000005 		PUT	T5
  2238	003502'	405 05 0 00 777777 		ANDI	T5,-1
  2239	003503'	242 05 0 00 777767 		LSH	T5,W2PLSH
  2240	003504'	552 05 0 14 000000 		HRRZM	T5,(P2)		;SET A POINTER TO PAGE NUMBER
  2241	003505'	262 17 0 00 000005 		GETIT	T5
  2242	003506'	271 14 0 00 000002 		ADDI	P2,2		;POINT TO NEXT
  2243
  2244						OUT	WC,[IOWD ^D512,IPAG
  2245	003507'	057 03 0 00 014366'			    0]
  2246	003510'	334 00 0 00 000000 		SKIPA
  2247	003511'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  2248
  2249	003512'	325 05 0 00 003516'		JUMPGE	T5,WDB10H	;PAGE 0 JUST READ?
  2250
  2251	003513'	200 00 0 00 021760'	WDB10X:	MOVE	IPAG+.JBSA
  2252	003514'	202 00 0 00 002524'		MOVEM	BOOTEV		;SAVE STARTING ADDRESS
  2253
  2254	003515'	201 05 0 00 000000 		MOVEI	T5,0		;READ NEXT PAGE INTO PAGE 1
  2255
  2256	003516'	271 05 0 00 001000 	WDB10H:	ADDI	T5,PAGSIZ	;NEXT PAGE
  2257	003517'	371 00 0 00 000007 	WDB10I:	SOSL	T7		;READ ALL THE PAGES DESCRIBED BY THIS ENTRY?
  2258	003520'	344 13 0 00 003463'		AOJA	M,WDB10D	;NO, READ THE NEXT PAGE
  2259
  2260	003521'	253 06 0 00 003522'		AOBJN	T6,.+1		;BUMP PAST THIS DIRECTORY ENTRY, AND
  2261	003522'	253 06 0 00 003454'		AOBJN	T6,WDB10A	; GO GET THE NEXT DIRECTORY ENTRY
  2262
  2263	003523'	476 00 0 14 777777 		SETOM	-1(P2)		;INDICATE END OF SPACE
  2264
  2265	003524'	200 01 0 00 002524'		MOVE	T1,BOOTEV
  2266	003525'	552 01 0 14 000000 		HRRZM	T1,(P2)	;SET ENTRY VECTOR
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 61
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0100

  2267					;*FIND 1ST PAGE OF FILE & PUT IN PRE-BOOT
  2268
  2269	003526'	070 03 0 00 000004 		CLOSE	WC,CL.DLL	;CLOSE FILE
  2270	003527'	071 03 0 00 000000 		RELEAS	WC,
  2271
  2272	003530'	260 17 0 00 007507'		GO	GETBK2		;GET DISK ADDRESS
  2273	003531'	202 01 0 00 400016 		MOVEM	T1,FEDIR+DBP
  2274	003532'	202 01 0 00 000005 		MOVEM	T1,T5
  2275
  2276					;*COMPUTE 8080 ADDRESSES - PUT IN PRE-BOOT
  2277
  2278	003533'	200 06 0 00 021070'		MOVE	T6,SMPBPG
  2279
  2280	003534'	200 00 0 06 000000 	WDB10J:	MOVE	(T6)		;GET ADDRESS POINTER
  2281	003535'	316 00 0 00 013454'		CAMN	[-1]		;TERMINATOR ?
  2282	003536'	254 00 0 00 003544'		JRST	WDB10K		;YES
  2283
  2284	003537'	200 01 0 00 000005 		MOVE	T1,T5
  2285	003540'	260 17 0 00 005044'		GO	TBOOTP		;SET DISK ADDRESS
  2286	003541'	271 05 0 00 000004 		ADDI	T5,4
  2287	003542'	271 06 0 00 000002 		ADDI	T6,2
  2288	003543'	254 00 0 00 003534'		JRST	WDB10J
  2289
  2290	003544'	402 00 0 00 416000 	WDB10K:	SETZM	DPREBP
  2291	003545'	200 00 0 00 014377'		MOVE	[DPREBP,,DPREBP+1]
  2292	003546'	251 00 0 00 416777 		BLT	DPREBP+777
  2293
  2294	003547'	200 00 0 00 014400'		MOVE	[SMPREB,,DPREBP]	;PUT DIAGNOSTIC PRE-BOOT IN PLACE
  2295	003550'	251 00 0 00 416777 		BLT	DPREBP+777
  2296
  2297	003551'	263 17 0 00 000000 		RTN			;DONE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 62
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0101

  2298					;HERE TO READ DIAGNOSTIC BC2 EXE FILE
  2299
  2300	003552'	260 17 0 00 007027'	BC210:	GO	OPNTEN		;OPEN INPUT FILE
  2301	003553'	260 17 0 00 014311'		ERR	<FILE NOT FOUND>
  2302
  2303	003554'	200 01 0 00 006663'		MOVE	T1,LOOK10+.RBNAM
  2304	003555'	202 01 0 00 006043'		MOVEM	T1,O.NAM1	;SAME NAME AS INPUT
  2305
  2306	003556'	205 01 0 00 625155 		MOVSI	T1,(SIXBIT/RIM/)
  2307	003557'	202 01 0 00 006044'		MOVEM	T1,O.EXT	;OUTPUT EXT IS ".RIM"
  2308
  2309	003560'	200 01 0 00 006667'		MOVE	T1,LOOK10+.RBVER
  2310	003561'	202 01 0 00 006051'		MOVEM	T1,O.VER	;USE INPUT VERSION AS OUTPUT VERSION
  2311
  2312	003562'	135 01 0 00 014313'		LDB	T1,[POINT 11,LOOK10+.RBPRV,23]
  2313	003563'	202 01 0 00 006050'		MOVEM	T1,O.TIME	;USE INPUT TIME AND DATE AS OUTPUT
  2314
  2315	003564'	135 01 0 00 014314'		LDB	T1,[POINT 3,LOOK10+.RBEXT,20]
  2316	003565'	137 01 0 00 014315'		DPB	T1,[POINT 3,O.DATE,23]
  2317	003566'	135 01 0 00 014316'		LDB	T1,[POINT 12,LOOK10+.RBPRV,35]
  2318	003567'	137 01 0 00 014317'		DPB	T1,[POINT 12,O.DATE,35]
  2319
  2320	003570'	200 01 0 00 021036'		MOVE	T1,DIRDIR	;USE WRTSET'S PPN
  2321	003571'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  2322
  2323	003572'	200 01 0 00 005405'		MOVE	T1,DIRDEV	;USE WRTSET'S DEVICE
  2324	003573'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  2325
  2326	003574'	201 01 0 00 000577 		MOVEI	T1,577		;SET PROTECTION TO 577
  2327	003575'	202 01 0 00 006045'		MOVEM	T1,O.PRT
  2328
  2329	003576'	200 01 0 00 006666'		MOVE	T1,LOOK10+.RBSIZ ;GET FILE SIZE IN WORDS
  2330	003577'	602 01 0 00 000777 		TRNE	T1,777
  2331	003600'	260 17 0 00 014327'		ERR	<FILE NOT EVEN MULTIPLE OF PAGES>
  2332	003601'	370 00 0 00 000001 		SOS	T1		;MINUS EXE DIR PAGE
  2333	003602'	231 01 0 00 001000 		IDIVI	T1,^D512	;CONVERT TO PAGES
  2334	003603'	202 01 0 00 400021 		MOVEM	T1,FEDIR+BCHKL	;SET BC2 LENGTH
  2335	003604'	221 01 0 00 000004 		IMULI	T1,4		;CONVERT TO BLOCKS
  2336	003605'	202 01 0 00 021065'		MOVEM	T1,S.ALO	;SET FOR ALLOCATION
  2337
  2338	003606'	260 17 0 00 007160'		GO	ETER10		;ENTER OUTPUT FILE
  2339	003607'	260 17 0 00 014335'		ERR	<FILE ENTER FAILURE>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 63
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0102

  2340					;*NOW READ EXE FILE
  2341
  2342	003610'	402 00 0 00 021066'		SETZM	SELPAG#
  2343	003611'	260 17 0 00 010762'		GO	REDDIR		;READ THE DIRECTORY PAGE
  2344
  2345	003612'	554 01 0 00 434000 		HLRZ	A,DBUF		;DIRECTORY DESCRIPTOR
  2346	003613'	550 06 0 00 434000 		HRRZ	T6,DBUF		;LENGTH OF THE DIRECTORY
  2347	003614'	306 01 0 00 001776 		CAIN	A,SV.DIR	;IS THIS A DIRECTORY?
  2348	003615'	301 06 0 00 000200 		CAIL	T6,^D128	; WHICH IS LESS THAN OR EQUAL TO 128 WORDS LONG?
  2349	003616'	260 17 0 00 014347'		ERR	<NOT A DIRECTORY OR ONE WE CAN'T HANDLE>
  2350
  2351	003617'	211 06 0 06 777777 		MOVNI	T6,-1(T6)	;MAKE AN AOBJN POINTER TO THE DIRECTORY
  2352	003620'	505 06 0 00 434001 		HRLI	T6,DBUF+1	; ..
  2353	003621'	207 00 0 00 000006 		MOVSS	T6		; ..
  2354
  2355	003622'	200 14 0 00 021070'		MOVE	P2,SMPBPG
  2356	003623'	271 14 0 00 000001 		ADDI	P2,1
  2357
  2358	003624'	200 13 0 06 000000 	BC210A:	MOVE	M,(T6)		;BITS,,FILE PAGE NUMBER
  2359	003625'	321 13 0 00 003632'		JUMPL	M,BC210C	;JUMP IF HI SEG PAGE, READ IT IMMEDIATELY
  2360									; ABOVE THE LOW SEGMENT
  2361
  2362	003626'	550 05 0 06 000001 		HRRZ	T5,1(T6)	;CORE PAGE NUMBER
  2363	003627'	242 05 0 00 000011 		LSH	T5,P2WLSH	;CORE ADDRESS
  2364	003630'	336 00 0 00 000005 		SKIPN	T5		;PAGE 0?
  2365	003631'	561 05 0 00 000000 		HRROI	T5,0		;YES, READ IT AND REMEMBER ITS PAGE 0
  2366
  2367	003632'	135 07 0 00 014351'	BC210C:	LDB	T7,[POINT 9,1(T6),8]
  2368
  2369	003633'	606 13 0 00 777777 	BC210D:	TRNN	M,-1		;AN ALLOCATED BUT ZERO PAGE?
  2370	003634'	364 13 0 00 003673'		SOJA	M,BC210H	;YES, COUNT DOWN REPEAT COUNT AND UPDATE CORE ADDRESS
  2371	003635'	550 04 0 00 000013 		HRRZ	T4,M		;FILE PAGE NUMBER
  2372	003636'	242 04 0 00 000002 		LSH	T4,P2BLSH	;CONVERT TO BLOCK WITHIN THE FILE
  2373	003637'	315 04 0 00 021066'		CAMGE	T4,SELPAG	;FILE PAGE NUMBERS MUST BE MONOTONICALLY INCREASING
  2374	003640'	260 17 0 00 014364'		ERR	<PAGES IN EXE DIR AREN'T MONOTONICALLY INCREASING>
  2375
  2376	003641'	316 04 0 00 021066'	BC210E:	CAMN	T4,SELPAG	;AT THE RIGHT BLOCK WITHIN THE FILE?
  2377	003642'	254 00 0 00 003645'		JRST	BC210G		;YES
  2378
  2379	003643'	260 17 0 00 010761'	BC210F:	GO	SELBLK		;BYPASS FILE PAGE
  2380	003644'	254 00 0 00 003641'		JRST	BC210E		;SEE IF THERE YET
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 64
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0103

  2381
  2382	003645'	306 05 0 00 001000 	BC210G:	CAIN	T5,1000
  2383	003646'	260 17 0 00 014300'		ERR	<CAN'T OVERLOAD PRE-BOOT PAGE>
  2384
  2385	003647'	260 17 0 00 010761'		GO	REDPAG		;READ EXE DATA PAGE
  2386
  2387	003650'	325 05 0 00 003656'		JUMPGE	T5,.+6		;PAGE 0 ?
  2388
  2389	003651'	261 17 0 00 000001 		PUT	T1
  2390	003652'	402 00 0 00 021671'		SETZM	IPAG+KPALIVE	;YES, ZERO 8080 COMM AREA
  2391	003653'	200 01 0 00 014401'		MOVE	T1,[IPAG+KPALIVE,,IPAG+KPALIVE+1]
  2392	003654'	251 01 0 00 021700'		BLT	T1,IPAG+MSSLAVE
  2393	003655'	262 17 0 00 000001 		GETIT	T1
  2394
  2395	003656'	261 17 0 00 000005 		PUT	T5
  2396	003657'	405 05 0 00 777777 		ANDI	T5,-1
  2397	003660'	242 05 0 00 777767 		LSH	T5,W2PLSH
  2398	003661'	552 05 0 14 000000 		HRRZM	T5,(P2)		;SET A POINTER TO PAGE NUMBER
  2399	003662'	262 17 0 00 000005 		GETIT	T5
  2400	003663'	271 14 0 00 000002 		ADDI	P2,2		;POINT TO NEXT
  2401
  2402						OUT	WC,[IOWD ^D512,IPAG
  2403	003664'	057 03 0 00 014366'			    0]
  2404	003665'	334 00 0 00 000000 		SKIPA
  2405	003666'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  2406
  2407	003667'	325 05 0 00 003673'		JUMPGE	T5,BC210H	;PAGE 0 JUST READ?
  2408
  2409	003670'	200 00 0 00 021760'		MOVE	IPAG+.JBSA
  2410	003671'	202 00 0 00 002524'		MOVEM	BOOTEV		;SAVE STARTING ADDRESS
  2411
  2412	003672'	201 05 0 00 000000 		MOVEI	T5,0		;READ NEXT PAGE INTO PAGE 1
  2413
  2414	003673'	271 05 0 00 001000 	BC210H:	ADDI	T5,PAGSIZ	;NEXT PAGE
  2415	003674'	371 00 0 00 000007 	BC210I:	SOSL	T7		;READ ALL THE PAGES DESCRIBED BY THIS ENTRY?
  2416	003675'	344 13 0 00 003633'		AOJA	M,BC210D	;NO, READ THE NEXT PAGE
  2417
  2418	003676'	253 06 0 00 003677'		AOBJN	T6,.+1		;BUMP PAST THIS DIRECTORY ENTRY, AND
  2419	003677'	253 06 0 00 003624'		AOBJN	T6,BC210A	; GO GET THE NEXT DIRECTORY ENTRY
  2420
  2421	003700'	476 00 0 14 777777 		SETOM	-1(P2)		;INDICATE END OF SPACE
  2422
  2423	003701'	200 01 0 00 002524'		MOVE	T1,BOOTEV
  2424	003702'	552 01 0 14 000000 		HRRZM	T1,(P2)	;SET ENTRY VECTOR
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 65
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0104

  2425					;*FIND 1ST PAGE OF FILE & PUT IN PRE-BOOT
  2426
  2427	003703'	070 03 0 00 000004 		CLOSE	WC,CL.DLL	;CLOSE FILE
  2428	003704'	071 03 0 00 000000 		RELEAS	WC,
  2429
  2430	003705'	260 17 0 00 007507'		GO	GETBK2		;GET DISK ADDRESS
  2431	003706'	202 01 0 00 400020 		MOVEM	T1,FEDIR+BCHKP
  2432	003707'	202 01 0 00 000005 		MOVEM	T1,T5
  2433
  2434					;*COMPUTE 8080 ADDRESSES - PUT IN PRE-BOOT
  2435
  2436	003710'	200 06 0 00 021070'		MOVE	T6,SMPBPG
  2437
  2438	003711'	200 00 0 06 000000 	BC210J:	MOVE	(T6)		;GET ADDRESS POINTER
  2439	003712'	316 00 0 00 013454'		CAMN	[-1]		;TERMINATOR ?
  2440	003713'	254 00 0 00 003721'		JRST	BC210K		;YES
  2441
  2442	003714'	200 01 0 00 000005 		MOVE	T1,T5
  2443	003715'	260 17 0 00 005044'		GO	TBOOTP		;SET DISK ADDRESS
  2444	003716'	271 05 0 00 000004 		ADDI	T5,4
  2445	003717'	271 06 0 00 000002 		ADDI	T6,2
  2446	003720'	254 00 0 00 003711'		JRST	BC210J
  2447
  2448	003721'	402 00 0 00 433000 	BC210K:	SETZM	BCPREBP
  2449	003722'	200 00 0 00 014402'		MOVE	[BCPREBP,,BCPREBP+1]
  2450	003723'	251 00 0 00 433777 		BLT	BCPREBP+777
  2451
  2452	003724'	200 00 0 00 014403'		MOVE	[SMPREB,,BCPREBP]	;PUT DIAGNOSTIC PRE-BOOT IN PLACE
  2453	003725'	251 00 0 00 433777 		BLT	BCPREBP+777
  2454
  2455	003726'	263 17 0 00 000000 		RTN			;DONE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 66
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0105

  2456					;*MONITOR BOOT STRAP PROGRAM TO BE WRITTEN ON THE DISK
  2457
  2458	003727'				BTSTR1:
  2459	001000					PHASE	BOORG
  2460
  2461	001000	254 00 0 00 001005 	BTSTRT:!JRST	BTSTAR
  2462
  2463	001001	254 04 0 00 001001 	BTHLT0:!HALT	.		;TRIED TO OVERLOAD PRE-BOOT
  2464	001002	254 04 0 00 001002 	BTHLT1:!HALT	.		;DISK RETRY FAILURE
  2465	001003	254 04 0 00 001003 	BTHLT2:!HALT	.		;NO RH-11 BASE ADDRESS
  2466	001004	254 04 0 00 001004 	BTHLT3:!HALT	.		;RESERVED
  2467
  2468	001005	205 17 0 00 777761 	BTSTAR:!MOVSI	17,-17
  2469	001006	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2470	001007	253 17 0 00 001006 		AOBJN	17,.-1
  2471	001010	402 00 0 00 000017 		SETZM	17
  2472
  2473	001011	200 13 0 00 000036 		MOVE	P1,MSRH		;GET DISK ADDRESS
  2474	001012	202 13 0 00 001230 		MOVEM	P1,MSRHSV
  2475	001013	336 00 0 00 000013 		SKIPN	P1
  2476	001014	254 00 0 00 001003 		JRST	BTHLT2		;NO RH-11 BASE ADDRESS ?
  2477	001015	502 13 0 00 001233 		HLLM	P1,BTUBP0	;SETUP UBA MAP POINTER
  2478	001016	502 13 0 00 001234 		HLLM	P1,BTUBST	;SETUP UBA STATUS POINTER
  2479
  2480	001017	200 01 0 00 000031 		MOVE	T1,KPALIVE
  2481	001020	202 01 0 00 001227 		MOVEM	T1,MSKPAL	;SAVE KEEP-ALIVE WORD
  2482
  2483	001021	201 01 0 00 000040 		MOVEI	T1,RHCLR
  2484	001022	713 01 0 13 000010 		WRIO	T1,RPCS2(P1)	;CLEAR CONTROLLER
  2485
  2486	001023	200 01 0 00 000037 		MOVE	T1,MSDRIVE
  2487	001024	202 01 0 00 001231 		MOVEM	T1,MSDRSV
  2488	001025	713 01 0 13 000010 		WRIO	T1,RPCS2(P1)	;SELECT DRIVE
  2489
  2490	001026	201 01 0 00 000021 		MOVEI	T1,RIPST	;DO READIN PRESET
  2491	001027	713 01 0 13 000000 		WRIO	T1,RPCS1(P1)	;WRITE REGISTER
  2492	001030	201 02 0 00 000200 		MOVEI	T2,RDY		;WAIT FOR READY
  2493	001031	711 02 0 13 000012 		TION	T2,RPDS(P1)	;CHECK READY?
  2494	001032	254 00 0 00 001031 		JRST	.-1		;NO -- CONTINUE WAIT
  2495
  2496	001033	201 03 0 00 001235 		MOVEI	T3,RPPAG	;FIND THE OFFSET STUFF
  2497	001034	201 05 0 00 000012 		MOVEI	T5,^D10		;SET RETRY COUNT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 67
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0106

  2498
  2499	001035	200 04 0 03 000000 	RDABLK:!MOVE	T4,0(T3)	;FIND THE DISK ADDRESS
  2500	001036	321 04 0 00 001135 		JUMPL	T4,RDADON	;QUIT IF ALL DONE WITH PAGES
  2501
  2502	001037	350 00 0 00 000003 		AOS	T3		;POINT TO BLOCK ENTRIES
  2503	001040	713 04 0 13 000006 		WRIO	T4,RPDA(P1)	;SET DISK ADDRESS
  2504	001041	207 00 0 00 000004 		MOVSS	T4		;FIND CYL ADDRESS
  2505	001042	713 04 0 13 000034 		WRIO	T4,RPDC(P1)	;SET CYL ADDRESS
  2506
  2507	001043	211 04 0 00 002000 		MOVNI	T4,2000		;READ A PAGE (WORD COUNT)
  2508	001044	713 04 0 13 000002 		WRIO	T4,RPWC(P1)	;SET WORD COUNT
  2509
  2510	001045	400 04 0 00 000000 		SETZ	T4,		;CLEAR CURRENT ADDRESS REGISTER
  2511	001046	713 04 0 13 000004 		WRIO	T4,RPBA(P1)	;SET UNIBUS ADDRESS TO 0
  2512
  2513	001047	200 04 0 03 000000 		MOVE	T4,0(T3)	;FIND THE CORE ADDRESS
  2514	001050	350 00 0 00 000003 		AOS	T3		;POINT TO NEXT ENTRY
  2515	001051	306 04 0 00 000001 		CAIN	T4,1		;CAN'T OVERLOAD PRE-BOOT
  2516	001052	254 00 0 00 001073 		JRST	RDBADR		;PAGE 1 REQUESTED TO BE LOADED ?
  2517
  2518	001053	435 04 0 00 140000 		IORI	T4,UBVBIT!UNV36X
  2519	001054	713 04 1 00 001233 		WRIO	T4,@BTUBP0	;SET UP UNIBUS ADAPTOR PAGE 0
  2520
  2521	001055	201 04 0 00 000071 		MOVEI	T4,RDATA	;SET GO
  2522	001056	713 04 0 13 000000 		WRIO	T4,RPCS1(P1)	;WAIT FOR GO
  2523	001057	712 04 0 13 000000 		RDIO	T4,RPCS1(P1)
  2524	001060	606 04 0 00 000200 		TRNN	T4,RDY
  2525	001061	254 00 0 00 001057 		JRST	.-2		;HO HUM WAIT
  2526
  2527	001062	606 04 0 00 060000 		TRNN	T4,TRE!MCPE	;CHECK ERROR CONDITION SUMMARY
  2528	001063	254 00 0 00 001035 		JRST	RDABLK		;DO NEXT PAGE
  2529
  2530	001064	275 03 0 00 000002 		SUBI	T3,2		;BACKUP TO SAME ENTRY
  2531	001065	363 05 0 00 001076 		SOJLE	T5,RDFAIL	;TRY AGAIN TILL RETRY RUNS OUT
  2532
  2533	001066	201 01 0 00 000040 	RDRTRY:!MOVEI	T1,RHCLR	;ERROR, CLEAR & TRY AGAIN
  2534	001067	713 01 0 13 000010 		WRIO	T1,RPCS2(P1)	;CLEAR CONTROLLER
  2535
  2536	001070	200 01 0 00 000037 		MOVE	T1,MSDRIVE
  2537	001071	713 01 0 13 000010 		WRIO	T1,RPCS2(P1)	;SELECT DRIVE
  2538
  2539	001072	254 00 0 00 001035 		JRST	RDABLK		;TRY AGAIN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 68
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0107

  2540
  2541	001073	201 17 0 00 001001 	RDBADR:!MOVEI	17,BTHLT0	;SET HALT ADDRESS
  2542	001074	275 03 0 00 000002 		SUBI	T3,2		;POINT TO FAILING ENTRY
  2543	001075	254 00 0 00 001077 		JRST	.+2
  2544
  2545	001076	201 17 0 00 001002 	RDFAIL:!MOVEI	17,BTHLT1	;SET HALT ADDRESS
  2546	001077	200 00 0 03 000000 		MOVE	(T3)
  2547	001100	202 00 0 00 000100 		MOVEM	100		;SAVE 8080 DISK ADDRESS
  2548	001101	200 00 0 03 000001 		MOVE	1(T3)
  2549	001102	202 00 0 00 000101 		MOVEM	101		;SAVE MEMORY PAGE ADDRESS
  2550
  2551	001103	202 03 0 00 000102 		MOVEM	T3,102		;SAVE SELECTION PICKUP POINTER
  2552
  2553	001104	712 00 0 13 000000 		RDIO	RPCS1(P1)
  2554	001105	202 00 0 00 000103 		MOVEM	103		;SAVE CONTROL AND STATUS 1
  2555	001106	712 00 0 13 000010 		RDIO	RPCS2(P1)
  2556	001107	202 00 0 00 000104 		MOVEM	104		;SAVE CONTROL AND STATUS 2
  2557	001110	712 00 0 13 000012 		RDIO	RPDS(P1)
  2558	001111	202 00 0 00 000105 		MOVEM	105		;SAVE DRIVE STATUS
  2559	001112	712 00 0 13 000014 		RDIO	RPER1(P1)
  2560	001113	202 00 0 00 000106 		MOVEM	106		;SAVE ERROR 1
  2561	001114	712 00 0 13 000040 		RDIO	RPER2(P1)
  2562	001115	202 00 0 00 000107 		MOVEM	107		;SAVE ERROR 2
  2563	001116	712 00 0 13 000042 		RDIO	RPER3(P1)
  2564	001117	202 00 0 00 000110 		MOVEM	110		;SAVE ERROR 3
  2565
  2566	001120	712 00 1 00 001233 		RDIO	@BTUBP0
  2567	001121	202 00 0 00 000111 		MOVEM	111		;SAVE UBA PAGING RAM LOC 0
  2568	001122	712 00 1 00 001234 		RDIO	@BTUBST
  2569	001123	202 00 0 00 000112 		MOVEM	112		;SAVE UBA STATUS REG
  2570
  2571	001124	200 00 0 00 001232 		MOVE	BTVER
  2572	001125	202 00 0 00 000113 		MOVEM	113		;SAVE PRE-BOOT VERSION
  2573
  2574	001126	200 00 0 00 001230 		MOVE	MSRHSV
  2575	001127	202 00 0 00 000036 		MOVEM	MSRH		;REINSTALL RH-11 BASE ADDRESS
  2576	001130	200 00 0 00 001231 		MOVE	MSDRSV
  2577	001131	202 00 0 00 000037 		MOVEM	MSDRIVE		;REINSTALL DRIVE NUMBER
  2578	001132	200 00 0 00 001227 		MOVE	MSKPAL
  2579	001133	202 00 0 00 000031 		MOVEM	KPALIVE		;REINSTALL KEEP-ALIVE
  2580
  2581	001134	254 00 1 00 000017 		JRST	@17		;HALT AT APPROPRIATE HALT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 69
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0108

  2582
  2583	001135	200 00 0 03 000001 	RDADON:!MOVE	1(T3)		;GET START ADDRESS
  2584	001136	202 00 0 00 000020 		MOVEM	20		;SAVE
  2585
  2586	001137	701 03 0 00 001217 		WRUBR	ACBLK7
  2587	001140	205 17 0 00 777761 		MOVSI	17,-17
  2588	001141	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2589	001142	253 17 0 00 001141 		AOBJN	17,.-1
  2590	001143	402 00 0 00 000017 		SETZM	17
  2591
  2592	001144	701 03 0 00 001220 		WRUBR	ACBLK6
  2593	001145	205 17 0 00 777761 		MOVSI	17,-17
  2594	001146	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2595	001147	253 17 0 00 001146 		AOBJN	17,.-1
  2596	001150	402 00 0 00 000017 		SETZM	17
  2597
  2598	001151	701 03 0 00 001221 		WRUBR	ACBLK5
  2599	001152	205 17 0 00 777761 		MOVSI	17,-17
  2600	001153	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2601	001154	253 17 0 00 001153 		AOBJN	17,.-1
  2602	001155	402 00 0 00 000017 		SETZM	17
  2603
  2604	001156	701 03 0 00 001222 		WRUBR	ACBLK4
  2605	001157	205 17 0 00 777761 		MOVSI	17,-17
  2606	001160	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2607	001161	253 17 0 00 001160 		AOBJN	17,.-1
  2608	001162	402 00 0 00 000017 		SETZM	17
  2609
  2610	001163	701 03 0 00 001223 		WRUBR	ACBLK3
  2611	001164	205 17 0 00 777761 		MOVSI	17,-17
  2612	001165	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2613	001166	253 17 0 00 001165 		AOBJN	17,.-1
  2614	001167	402 00 0 00 000017 		SETZM	17
  2615
  2616	001170	701 03 0 00 001224 		WRUBR	ACBLK2
  2617	001171	205 17 0 00 777761 		MOVSI	17,-17
  2618	001172	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2619	001173	253 17 0 00 001172 		AOBJN	17,.-1
  2620	001174	402 00 0 00 000017 		SETZM	17
  2621
  2622	001175	701 03 0 00 001225 		WRUBR	ACBLK1
  2623	001176	205 17 0 00 777761 		MOVSI	17,-17
  2624	001177	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2625	001200	253 17 0 00 001177 		AOBJN	17,.-1
  2626	001201	402 00 0 00 000017 		SETZM	17
  2627
  2628	001202	701 03 0 00 001226 		WRUBR	ACBLK0
  2629	001203	205 17 0 00 777761 		MOVSI	17,-17
  2630	001204	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  2631	001205	253 17 0 00 001204 		AOBJN	17,.-1
  2632	001206	402 00 0 00 000017 		SETZM	17
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 70
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0109

  2633
  2634	001207	200 00 0 00 001230 		MOVE	MSRHSV
  2635	001210	202 00 0 00 000036 		MOVEM	MSRH		;REINSTALL RH-11 BASE ADDRESS
  2636	001211	200 00 0 00 001231 		MOVE	MSDRSV
  2637	001212	202 00 0 00 000037 		MOVEM	MSDRIVE		;REINSTALL DRIVE NUMBER
  2638	001213	200 00 0 00 001227 		MOVE	MSKPAL
  2639	001214	202 00 0 00 000031 		MOVEM	KPALIVE		;REINSTALL KEEP-ALIVE
  2640
  2641	001215	400 00 0 00 000000 		SETZ
  2642	001216	254 00 1 00 000020 		JRST	@20		;NOW START BOOT
  2643
  2644	001217	407000	000000		ACBLK7:!	1B0!7B8		;WRUBR ARGUMENTS
  2645	001220	406000	000000		ACBLK6:!	1B0!6B8
  2646	001221	405000	000000		ACBLK5:!	1B0!5B8
  2647	001222	404000	000000		ACBLK4:!	1B0!4B8
  2648	001223	403000	000000		ACBLK3:!	1B0!3B8
  2649	001224	402000	000000		ACBLK2:!	1B0!2B8
  2650	001225	401000	000000		ACBLK1:!	1B0!1B8
  2651	001226	400000	000000		ACBLK0:!	1B0!0B8
  2652
  2653	001227	000000	000000		MSKPAL:!	0		;KEEP-ALIVE & STATUS WORD
  2654	001230	000000	000000		MSRHSV:!	0		;RH-11 BASE ADDRESS
  2655	001231	000000	000000		MSDRSV:!	0		;DRIVE NUMBER
  2656
  2657	001232	000000	000003		BTVER:!	MCNVER,,DECVER		;PRE-BOOT VERSION
  2658
  2659	001233	000001	763000		BTUBP0:!	1,,763000	;ADDRESS OF FIRST WINDOW
  2660	001234	000001	763100		BTUBST:!	1,,763100	;ADDRESS OF UBA STATUS
  2661
  2662	001235				RPPAG:!				;NEXT TWO INSTRUCTIONS MUST FOLLOW!!DO NOT MOVE
  2663	004164'					DEPHASE
  2664
  2665	004164'				RPPAGD:	BLOCK	100
  2666	004264'	000000	000000		RPPAGX:	0
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 71
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0110

  2667					;*WRITE MICRO-CODE ONTO DISK
  2668
  2669	004265'	476 00 0 00 021027'	WRTBC1:	SETOM	BC1FLG
  2670	004266'	254 00 0 00 004270'		JRST	WRTCRM+1
  2671	004267'	402 00 0 00 021027'	WRTCRM:	SETZM	BC1FLG
  2672	004270'					NOISE	<MICROCODE ONTO DISK>
  2673	004302'	260 17 0 00 000623'		CONFIRM
  2674
  2675	004303'	336 00 0 00 021046'		SKIPN	FESETF		;FE-DIR  IN CODE ?
  2676	004304'	260 17 0 00 013262'		 ERR	<FE-FILE SYSTEM NOT SETUP>
  2677	004305'	336 00 0 00 016572'		SKIPN	RDFLAG
  2678	004306'	260 17 0 00 013676'		ERR	<MUST FIRST READ MICROCODE WITH READ COMMAND>
  2679
  2680	004307'	336 00 0 00 000302'		SKIPN	MONTYP
  2681	004310'	254 00 0 00 004342'		JRST	WRTC10		;TOPS-10
  2682
  2683	004311'	554 03 0 00 400003 		HLRZ	T3,FEDIR+MCL	;GET MICROCODE START PAGE
  2684	004312'	332 00 0 00 021027'		SKIPE	BC1FLG
  2685	004313'	554 03 0 00 400011 		HLRZ	T3,FEDIR+BC1L
  2686	004314'	242 03 0 00 000011 		LSH	T3,^D9		;MAKE WORD POINTER INTO FILE
  2687	004315'	202 03 0 00 021075'		MOVEM	T3,WTPTR#	;SAVE
  2688
  2689	004316'	200 01 0 00 002523'		MOVE	T1,FEJFN
  2690	004317'	200 02 0 00 021075'		MOVE	T2,WTPTR
  2691	004320'	104 00 0 00 000027 		SFPTR
  2692	004321'	320 16 0 00 014427'		ERMSG	<CAN NOT SET FILE POINTER>
  2693
  2694	004322'	201 06 0 00 401000 		MOVEI	T6,CRAM
  2695	004323'	332 00 0 00 021027'		SKIPE	BC1FLG
  2696	004324'	201 06 0 00 417000 		MOVEI	T6,CRMBC1
  2697	004325'	201 05 0 00 004000 		MOVEI	T5,4000
  2698	004326'	200 02 0 06 000000 	WTLOOP:	MOVE	T2,(T6)
  2699	004327'	104 00 0 00 000051 		BOUT
  2700	004330'	200 02 0 06 000001 		MOVE	T2,1(T6)
  2701	004331'	104 00 0 00 000051 		BOUT
  2702	004332'	200 02 0 06 000002 		MOVE	T2,2(T6)
  2703	004333'	104 00 0 00 000051 		BOUT
  2704	004334'	271 06 0 00 000003 		ADDI	T6,3
  2705	004335'	367 05 0 00 004326'		SOJG	T5,WTLOOP
  2706
  2707	004336'	200 01 0 00 002523'		MOVE	T1,FEJFN
  2708	004337'	201 02 0 00 000000 		MOVEI	T2,0		;SET FILE POINTER TO 0
  2709	004340'	104 00 0 00 000027 		SFPTR
  2710	004341'	320 16 0 00 014427'		ERMSG	<CAN NOT SET FILE POINTER>
  2711
  2712	004342'	201 06 0 00 400002 	WRTC10:	MOVEI	T6,FEDIR+MCP
  2713	004343'	554 07 0 00 400003 		HLRZ	T7,FEDIR+MCL
  2714	004344'	336 00 0 00 021027'		SKIPN	BC1FLG
  2715	004345'	254 00 0 00 004350'		JRST	.+3
  2716	004346'	201 06 0 00 400010 		MOVEI	T6,FEDIR+BC1P
  2717	004347'	554 07 0 00 400011 		HLRZ	T7,FEDIR+BC1L
  2718	004350'	260 17 0 00 005012'		GO	S8080P		;SETUP 8080 POINTER
  2719
  2720	004351'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 72
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0111

  2721					;*WRTFEF, WRITE FRONT-END INDIRECT FILES
  2722					;*	COMMAND - [INDIRECT "0-366(8)" "FILE.EXT"
  2723					;*	CREATES - "FEF000.FI" TO "FEF366.FI" (TOPS-10)
  2724
  2725	004352'				WRTFEF:	CMD	[FLDDB.(.CMNUM,,^D8)],<NOT A VALID FILE NUMBER>
  2726
  2727	004364'	331 00 0 00 000002 		SKIPL	T2
  2728	004365'	303 02 0 00 000366 		CAILE	T2,366
  2729	004366'	260 17 0 00 014444'		ERR	<NOT A VALID FILE NUMBER>
  2730	004367'	202 02 0 00 021044'		MOVEM	T2,FEFNBR#
  2731
  2732	004370'	402 00 0 00 016410'		SETZM	GTJFIL		;NO DEFAULTS ALLOWED
  2733	004371'	402 00 0 00 016411'		SETZM	GTJEXT
  2734	004372'	402 00 0 00 016406'		SETZM	GTJDEV
  2735	004373'	402 00 0 00 016407'		SETZM	GTJDIR
  2736
  2737	004374'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  2738	004375'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  2739
  2740	004376'					CMD	[FLDDB.(.CMFIL)]
  2741	004407'	516 02 0 00 021043'		HRLZM	T2,FEFJFN#	;SAVE THE JFN OF THE FILE
  2742
  2743	004410'	260 17 0 00 000623'		CONFIRM
  2744
  2745	004411'	336 00 0 00 021046'		SKIPN	FESETF
  2746	004412'	260 17 0 00 013262'		ERR	<FE-FILE SYSTEM NOT SETUP>
  2747
  2748	004413'	336 00 0 00 000302'		SKIPN	MONTYP
  2749	004414'	254 00 0 00 004472'		JRST	FEF10		;TOPS-10
  2750
  2751	004415'	550 01 0 00 400001 		HRRZ	T1,FEDIR+FSL	;GET FREE SPACE LENGTH
  2752	004416'	305 01 0 00 000001 		CAIGE	T1,1		;THIS NEEDS ONE PAGE
  2753	004417'	260 17 0 00 014245'		ERR	<NOT ENOUGH FREE SPACE>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 73
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0112

  2754
  2755	004420'	554 01 0 00 021043'		HLRZ	T1,FEFJFN
  2756	004421'	201 02 0 00 200000 		MOVEI	T2,OF%RD
  2757	004422'	104 00 0 00 000021 		OPENF			;OPEN FILE
  2758	004423'	260 17 0 00 014457'		ERR	<INDIRECT OPEN ERROR>
  2759
  2760	004424'	554 01 0 00 021043'		HLRZ	T1,FEFJFN
  2761	004425'	200 02 0 00 014104'		MOVE	T2,[1,,.FBBYV]
  2762	004426'	201 03 0 00 000004 		MOVEI	T3,T4
  2763	004427'	104 00 0 00 000063 		GTFDB			;GET FILE PAGE COUNT
  2764	004430'	405 04 0 00 777777 		ANDI	T4,-1
  2765	004431'	302 04 0 00 000001 		CAIE	T4,^D1		;CAN ONLY BE ONE PAGE
  2766	004432'	254 00 0 00 004466'		 JRST	FEFERR		;WRONG LENGTH
  2767
  2768	004433'	200 01 0 00 021043'		MOVE	T1,FEFJFN
  2769	004434'	200 02 0 00 014302'		MOVE	T2,[.FHSLF,,<GENPAG_-^D9>]
  2770	004435'	200 03 0 00 014461'		MOVE	T3,[PM%RD+PM%PLD+PM%CPY]
  2771	004436'	104 00 0 00 000056 		PMAP			;GET FILE
  2772						ERJMP	[JSERR
  2773	004437'	320 16 0 00 014127'			 JRST	START]
  2774
  2775	004440'	416 00 0 00 435000 		SETMM	GENPAG		;MAKE PRIVATE
  2776
  2777	004441'	554 01 0 00 021043'		HLRZ	T1,FEFJFN
  2778	004442'	104 00 0 00 000022 		CLOSF			;CLOSE FILE
  2779	004443'	260 17 0 00 014467'		ERR	<INDIRECT CLOSE ERROR>
  2780
  2781	004444'	260 17 0 00 004560'		GO	FEIFMT		;FORMAT INDIRECT FILE
  2782
  2783	004445'	200 01 0 00 014471'		MOVE	T1,[.FHSLF,,<IPAG_-^D9>]
  2784	004446'	514 02 0 00 002523'		HRLZ	T2,FEJFN
  2785	004447'	544 02 0 00 400001 		HLR	T2,FEDIR+FSL	;GET FREE-SPACE PAGE
  2786	004450'	200 03 0 00 014472'		MOVE	T3,[PM%WR]
  2787	004451'	104 00 0 00 000056 		PMAP			;PUT INDIRECT INTO FE-FILE
  2788						 ERJMP	[JSERR
  2789	004452'	320 16 0 00 014127'			 JRST	START]
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 74
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0113

  2790
  2791	004453'	200 01 0 00 400001 		MOVE	T1,FEDIR+FSL	;GET FREE-SPACE PAGE #,,LENGTH
  2792	004454'	200 02 0 00 000001 		MOVE	T2,T1
  2793	004455'	275 01 0 00 000001 		SUBI	T1,1		;MINUS ONE IN LENGTH
  2794	004456'	270 01 0 00 014473'		ADD	T1,[1,,0]	;PLUS ONE TO PAGE #
  2795	004457'	202 01 0 00 400001 		MOVEM	T1,FEDIR+FSL	;RESAVE
  2796
  2797	004460'	200 01 0 00 021044'		MOVE	T1,FEFNBR	;GET INDIRECT NUMBER
  2798	004461'	221 01 0 00 000002 		IMULI	T1,2		;DOUBLE IT
  2799	004462'	271 01 0 00 400023 		ADDI	T1,FEDIR+IFL0	;ADD FEDIR START POSITION
  2800
  2801	004463'	541 02 0 00 000001 		HRRI	T2,^D1		;MAKE POINTER PAGE #,,1
  2802	004464'	202 02 0 01 000000 		MOVEM	T2,(T1)		;SETUP FE-DIR POINTER
  2803
  2804	004465'	263 17 0 00 000000 		RTN
  2805
  2806	004466'	554 01 0 00 021043'	FEFERR:	HLRZ	T1,FEFJFN
  2807	004467'	104 00 0 00 000022 		CLOSF			;CLOSE OUT BAD INDIRECT
  2808	004470'	260 17 0 00 014467'		ERR	<INDIRECT CLOSE ERROR>
  2809	004471'	260 17 0 00 014501'		ERR	<INDIRECT WRONG LENGTH>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 75
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0114

  2810					;*FEF10, TOPS-10 WRITE FRONT-END INDIRECT FILES
  2811
  2812	004472'	260 17 0 00 007027'	FEF10:	GO	OPNTEN		;OPEN INPUT FILE
  2813	004473'	260 17 0 00 014311'		ERR	<FILE NOT FOUND>
  2814
  2815	004474'	200 01 0 00 006666'		MOVE	T1,LOOK10+.RBSIZ ;GET FILE SIZE IN WORDS
  2816	004475'	303 01 0 00 001000 		CAILE	T1,^D512	;MUST BE ONE PAGE OR LESS
  2817	004476'	260 17 0 00 014501'		ERR	<INDIRECT WRONG LENGTH>
  2818
  2819	004477'	402 00 0 00 435000 		SETZM	GENPAG
  2820	004500'	200 01 0 00 014503'		MOVE	T1,[GENPAG,,GENPAG+1]
  2821	004501'	251 01 0 00 435777 		BLT	T1,GENPAG+777
  2822
  2823	004502'	201 07 0 00 435000 		MOVEI	T7,GENPAG		;READ IN INDIRECT
  2824	004503'	260 17 0 00 006764'		GO	GET10
  2825	004504'	335 00 0 00 021040'		SKIPGE	EOFSW
  2826	004505'	254 00 0 00 004510'		JRST	.+3
  2827	004506'	202 03 0 07 000000 		MOVEM	T3,(T7)
  2828	004507'	344 07 0 00 004503'		AOJA	T7,.-4
  2829
  2830	004510'	260 17 0 00 007015'		GO	R10EOF		;CLOSE INPUT FILE
  2831
  2832	004511'	260 17 0 00 004560'		GO	FEIFMT		;FORMAT INDIRECT FILE
  2833
  2834	004512'	400 01 0 00 000000 		SETZ	T1,		;COOK UP OUTPUT FILE NAME
  2835	004513'	135 00 0 00 014504'		LDB	[POINT 3,FEFNBR,29]
  2836	004514'	137 00 0 00 014505'		DPB	[POINT 3,T1,23]
  2837	004515'	135 00 0 00 014506'		LDB	[POINT 3,FEFNBR,32]
  2838	004516'	137 00 0 00 014507'		DPB	[POINT 3,T1,29]
  2839	004517'	135 00 0 00 014510'		LDB	[POINT 3,FEFNBR,35]
  2840	004520'	137 00 0 00 014511'		DPB	[POINT 3,T1,35]
  2841	004521'	270 01 0 00 014512'		ADD	T1,[SIXBIT/FEF000/]
  2842	004522'	202 01 0 00 006043'		MOVEM	T1,O.NAM1
  2843
  2844	004523'	205 01 0 00 465100 		MOVSI	T1,(SIXBIT/FI/)
  2845	004524'	202 01 0 00 006044'		MOVEM	T1,O.EXT
  2846
  2847	004525'	200 01 0 00 021036'		MOVE	T1,DIRDIR	;USE WRTSET'S PPN
  2848	004526'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  2849
  2850	004527'	200 01 0 00 005405'		MOVE	T1,DIRDEV	;USE WRTSET'S DEVICE
  2851	004530'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  2852
  2853	004531'	201 01 0 00 000577 		MOVEI	T1,577		;SET PROTECTION 577
  2854	004532'	202 01 0 00 006045'		MOVEM	T1,O.PRT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 76
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0115

  2855
  2856	004533'	402 00 0 00 006051'		SETZM	O.VER
  2857	004534'	402 00 0 00 006050'		SETZM	O.TIME
  2858	004535'	402 00 0 00 006047'		SETZM	O.DATE
  2859
  2860	004536'	201 01 0 00 000004 		MOVEI	T1,4		;MAKE FILE ONE PAGE
  2861	004537'	202 01 0 00 021065'		MOVEM	T1,S.ALO
  2862
  2863	004540'	260 17 0 00 007160'		GO	ETER10		;CREATE FILE
  2864	004541'	260 17 0 00 014517'		ERR	<FILE ENTER ERROR>
  2865
  2866						OUT	WC,[IOWD ^D512,IPAG
  2867	004542'	057 03 0 00 014366'			    0]
  2868	004543'	334 00 0 00 000000 		SKIPA
  2869	004544'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  2870
  2871	004545'	070 03 0 00 000004 		CLOSE	WC,CL.DLL	;CLOSE FILE
  2872	004546'	071 03 0 00 000000 		RELEAS	WC,
  2873
  2874	004547'	260 17 0 00 007507'		GO	GETBK2		;GET DISK ADDRESS
  2875	004550'	202 01 0 00 000007 		MOVEM	T1,T7
  2876	004551'	200 06 0 00 021044'		MOVE	T6,FEFNBR	;POINT TO FEDIR POSITION
  2877	004552'	221 06 0 00 000002 		IMULI	T6,2
  2878	004553'	271 06 0 00 400022 		ADDI	T6,FEDIR+IFP0
  2879
  2880	004554'	201 02 0 00 000001 		MOVEI	T2,1
  2881	004555'	202 02 0 06 000001 		MOVEM	T2,1(T6)	;MARK IN USE
  2882
  2883	004556'	260 17 0 00 005020'		GO	T8080P		;COMPUTE 8080 POINTER
  2884
  2885	004557'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 77
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0116

  2886					;*FEIFMT, FORMAT FRONT-END INDIRECT FILES
  2887
  2888	004560'	402 00 0 00 021640'	FEIFMT:	SETZM	IPAG		;CLEAR STORAGE
  2889	004561'	200 01 0 00 014521'		MOVE	T1,[IPAG,,IPAG+1]
  2890	004562'	251 01 0 00 022637'		BLT	T1,IPAG+777
  2891
  2892	004563'	200 06 0 00 014522'		MOVE	T6,[POINT 7,GENPAG]
  2893	004564'	201 05 0 00 021640'		MOVEI	T5,IPAG
  2894	004565'	201 04 0 00 003777 		MOVEI	T4,<^D512*^D4>-1
  2895
  2896	004566'	400 02 0 00 000000 	FEILP:	SETZ	T2,
  2897	004567'	260 17 0 00 004607'		GO	FEICHR		;FIRST CHAR
  2898	004570'	254 00 0 00 004606'		JRST	FEILP2		;EOF
  2899	004571'	137 03 0 00 014523'		DPB	T3,[POINT 8,T2,35]
  2900
  2901	004572'	260 17 0 00 004607'		GO	FEICHR		;SECOND CHAR
  2902	004573'	254 00 0 00 004605'		JRST	FEILP1		;EOF
  2903	004574'	137 03 0 00 014524'		DPB	T3,[POINT 8,T2,27]
  2904
  2905	004575'	260 17 0 00 004607'		GO	FEICHR		;FIRST CHAR
  2906	004576'	254 00 0 00 004605'		JRST	FEILP1		;EOF
  2907	004577'	137 03 0 00 014525'		DPB	T3,[POINT 8,T2,19]
  2908
  2909	004600'	260 17 0 00 004607'		GO	FEICHR		;FIRST CHAR
  2910	004601'	254 00 0 00 004605'		JRST	FEILP1		;EOF
  2911	004602'	137 03 0 00 014526'		DPB	T3,[POINT 8,T2,11]
  2912
  2913	004603'	202 02 0 05 000000 		MOVEM	T2,(T5)		;STORE WORD
  2914	004604'	344 05 0 00 004566'		AOJA	T5,FEILP	;LOOP TILL EOF
  2915
  2916	004605'	202 02 0 05 000000 	FEILP1:	MOVEM	T2,(T5)		;SAVE FINAL WORD
  2917	004606'	263 17 0 00 000000 	FEILP2:	RTN			;DONE
  2918
  2919	004607'	316 06 0 00 014527'	FEICHR:	CAMN	T6,[POINT 7,GENPAG+777,34]
  2920	004610'	254 00 0 00 004616'		JRST	FEIBIG		;INPUT FILE TOO BIG
  2921
  2922	004611'	134 03 0 00 000006 		ILDB	T3,T6		;GET INPUT CHAR
  2923	004612'	326 03 0 00 004614'		JUMPN	T3,.+2
  2924	004613'	263 17 0 00 000000 		RTN			;NULL, END-OF-FILE
  2925	004614'	363 04 0 00 004616'		SOJLE	T4,FEIBIG	;COUNT CHAR, JUMP IF TOO MANY
  2926	004615'	254 00 0 00 000016'		JRST	CPOPJ1		;SKIP RETURN WITH CHAR
  2927
  2928	004616'	260 17 0 00 014535'	FEIBIG:	ERR	<INDIRECT FILE TOO BIG>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 78
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0117

  2929					;*TYPE, TYPE CONTENTS OF INDIRECT FILE
  2930
  2931	004617'	000001	000001			SCMTAB	..TYPE
  2932	004620'	013237'	004635'			CMTAB	INDIRECT,TYPEFI
  2933						ECMTAB
  2934
  2935	004621'				.TYPE:	CMD	[FLDDB.(.CMKEY,,..TYPE)],<CAN NOT TYPE THAT>
  2936	004633'	550 01 0 02 000000 		HRRZ	T1,(T2)
  2937	004634'	254 00 0 01 000000 		JRST	(T1)
  2938
  2939	004635'				TYPEFI:	CMD	[FLDDB.(.CMNUM,,^D8)],<NOT A VALID FILE NUMBER>
  2940	004647'	331 00 0 00 000002 		SKIPL	T2
  2941	004650'	303 02 0 00 000366 		CAILE	T2,366
  2942	004651'	260 17 0 00 014444'		ERR	<NOT A VALID FILE NUMBER>
  2943	004652'	202 02 0 00 021044'		MOVEM	T2,FEFNBR
  2944
  2945	004653'	260 17 0 00 000623'		CONFIRM
  2946
  2947	004654'	336 00 0 00 021046'		SKIPN	FESETF
  2948	004655'	260 17 0 00 013262'		ERR	<FE-FILE SYSTEM NOT SETUP>
  2949
  2950	004656'	200 01 0 00 021044'		MOVE	T1,FEFNBR	;GET INDIRECT FILE NUMBER
  2951	004657'	221 01 0 00 000002 		IMULI	T1,2		;DOUBLE IT
  2952	004660'	271 01 0 00 400023 		ADDI	T1,FEDIR+IFL0	;ADD FEDIR START POSITION
  2953
  2954	004661'	336 00 0 00 000302'		SKIPN	MONTYP
  2955	004662'	254 00 0 00 004725'		JRST	TYPF10		;TOPS-10
  2956
  2957	004663'	554 01 0 01 000000 		HLRZ	T1,(T1)		;GET FE-DIR POINTER
  2958
  2959	004664'	336 00 0 00 000001 		SKIPN	T1
  2960	004665'	260 17 0 00 014565'		ERR	<INDIRECT FILE DOES NOT EXIST>
  2961
  2962	004666'	504 01 0 00 002523'		HRL	T1,FEJFN
  2963	004667'	200 02 0 00 014567'		MOVE	T2,[.FHSLF,,<IPAG_-^D9>]
  2964	004670'	200 03 0 00 014303'		MOVE	T3,[PM%RD]
  2965	004671'	104 00 0 00 000056 		PMAP			;GET INDIRECT FILE
  2966						ERJMP	[JSERR
  2967	004672'	320 16 0 00 014127'			 JRST	START]
  2968
  2969	004673'	037 01 0 00 000063'		PCRLF
  2970	004674'	201 06 0 00 021640'		MOVEI	T6,IPAG
  2971	004675'	200 03 0 06 000000 		MOVE	T3,(T6)
  2972	004676'	260 17 0 00 004702'		GO	FEITYP		;PRINT IT
  2973	004677'	344 06 0 00 004675'		AOJA	T6,.-2
  2974	004700'	037 01 0 00 000063'		PCRLF
  2975
  2976	004701'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 79
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0118

  2977
  2978	004702'	135 00 0 00 014570'	FEITYP:	LDB	0,[POINT 8,T3,35]
  2979	004703'	322 00 0 00 000016'		JUMPE	0,CPOPJ1
  2980	004704'	260 17 0 00 004717'		GO	FEIPNT
  2981
  2982	004705'	135 00 0 00 014571'		LDB	0,[POINT 8,T3,27]
  2983	004706'	322 00 0 00 000016'		JUMPE	0,CPOPJ1
  2984	004707'	260 17 0 00 004717'		GO	FEIPNT
  2985
  2986	004710'	135 00 0 00 014572'		LDB	0,[POINT 8,T3,19]
  2987	004711'	322 00 0 00 000016'		JUMPE	0,CPOPJ1
  2988	004712'	260 17 0 00 004717'		GO	FEIPNT
  2989
  2990	004713'	135 00 0 00 014573'		LDB	0,[POINT 8,T3,11]
  2991	004714'	322 00 0 00 000016'		JUMPE	0,CPOPJ1
  2992	004715'	260 17 0 00 004717'		GO	FEIPNT
  2993
  2994	004716'	263 17 0 00 000000 		RTN
  2995
  2996	004717'	302 00 0 00 000015 	FEIPNT:	CAIE	0,15		;CR ?
  2997	004720'	254 00 0 00 004723'		JRST	.+3		;NO
  2998	004721'	037 12 0 00 000001 		PNTCHF			;YES, PRINT CR/LF
  2999	004722'	201 00 0 00 000012 		MOVEI	0,12
  3000	004723'	037 12 0 00 000001 		PNTCHF
  3001	004724'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 80
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0119

  3002					;*TYPF10, TOPS-10 TYPE CONTENTS OF INDIRECT FILE
  3003
  3004	004725'	336 00 0 01 000000 	TYPF10:	SKIPN	(T1)
  3005	004726'	260 17 0 00 014565'		ERR	<INDIRECT FILE DOES NOT EXIST>
  3006
  3007	004727'	400 01 0 00 000000 		SETZ	T1,		;COOK UP INPUT FILE NAME
  3008	004730'	135 00 0 00 014504'		LDB	[POINT 3,FEFNBR,29]
  3009	004731'	137 00 0 00 014505'		DPB	[POINT 3,T1,23]
  3010	004732'	135 00 0 00 014506'		LDB	[POINT 3,FEFNBR,32]
  3011	004733'	137 00 0 00 014507'		DPB	[POINT 3,T1,29]
  3012	004734'	135 00 0 00 014510'		LDB	[POINT 3,FEFNBR,35]
  3013	004735'	137 00 0 00 014511'		DPB	[POINT 3,T1,35]
  3014	004736'	270 01 0 00 014512'		ADD	T1,[SIXBIT/FEF000/]
  3015	004737'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  3016
  3017	004740'	205 01 0 00 465100 		MOVSI	T1,(SIXBIT/FI/)
  3018	004741'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  3019
  3020	004742'	200 01 0 00 021036'		MOVE	T1,DIRDIR
  3021	004743'	202 01 0 00 016407'		MOVEM	T1,GTJDIR
  3022
  3023	004744'	200 01 0 00 005405'		MOVE	T1,DIRDEV
  3024	004745'	202 01 0 00 016406'		MOVEM	T1,GTJDEV
  3025
  3026	004746'	260 17 0 00 007027'		GO	OPNTEN		;FIND INPUT FILE
  3027	004747'	260 17 0 00 014565'		ERR	<INDIRECT FILE DOES NOT EXIST>
  3028
  3029	004750'	037 01 0 00 000063'		PCRLF
  3030	004751'	260 17 0 00 006764'	TF10LP:	GO	GET10		;GET INPUT WORD
  3031	004752'	335 00 0 00 021040'		SKIPGE	EOFSW
  3032	004753'	254 00 0 00 004756'		JRST	.+3		;END-OF-FILE
  3033
  3034	004754'	260 17 0 00 004702'		GO	FEITYP		;PRINT IT
  3035	004755'	254 00 0 00 004751'		JRST	TF10LP
  3036
  3037	004756'	037 01 0 00 000063'		PCRLF
  3038	004757'	254 00 0 00 007015'		JRST	R10EOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 81
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0120

  3039					;*FETELL, REPORT INDIRECT FILES IN USE & FREE SPACE
  3040
  3041	004760'	037 04 0 00 014574'	FETELL:	PMSGF	<^THE FOLLOWING FRONT-END INDIRECT FILES EXIST:^>
  3042
  3043	004761'	201 06 0 00 400023 		MOVEI	T6,FEDIR+IFL0	;GET START ADDRESS
  3044	004762'	400 07 0 00 000000 		SETZ	T7,		;ZERO FORMAT COUNTER
  3045
  3046	004763'	200 00 0 06 000000 	FETEL0:	MOVE	(T6)		;GET ENTRY
  3047	004764'	322 00 0 00 004777'		JUMPE	FETEL1		;NOT USED
  3048
  3049	004765'	200 00 0 00 000006 		MOVE T6
  3050	004766'	275 00 0 00 400023 		SUBI	FEDIR+IFL0
  3051	004767'	231 00 0 00 000002 		IDIVI	2
  3052	004770'	037 17 0 00 000003 		PNTOCF			;PRINT IT
  3053
  3054	004771'	350 00 0 00 000007 		AOS	T7
  3055	004772'	602 07 0 00 000003 		TRNE	T7,3
  3056	004773'	254 00 0 00 004776'		JRST	.+3
  3057	004774'	037 01 0 00 000063'		PCRLF
  3058	004775'	254 00 0 00 004777'		JRST	.+2
  3059	004776'	037 01 0 00 000011 		PTAB
  3060
  3061	004777'	271 06 0 00 000002 	FETEL1:	ADDI	T6,2		;STEP TO NEXT ENTRY
  3062	005000'	302 06 0 00 401001 		CAIE	T6,FEDIR+1001	;DONE ?
  3063	005001'	254 00 0 00 004763'		JRST	FETEL0		;NOT YET
  3064
  3065	005002'	336 00 0 00 000302'		SKIPN	MONTYP
  3066	005003'	254 00 0 00 005007'		JRST	FETEL2
  3067
  3068	005004'	037 04 0 00 013264'		PMSGF	<^FRONT-END FREE PAGES = >
  3069	005005'	550 00 0 00 400001 		HRRZ	FEDIR+FSL
  3070	005006'	037 15 0 00 000001 		PNTDCF
  3071
  3072	005007'	037 01 0 00 000063'	FETEL2:	PCRLF
  3073	005010'	037 01 0 00 000063'		PCRLF
  3074	005011'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 82
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0121

  3075
  3076					;ADDR DIVIDED BY SECTOR/CYL = CYL
  3077					;REM DIVIDED BY SECTOR/TRACK = TRACK
  3078					;REM = SECTOR
  3079
  3080	005012'	200 01 0 00 000007 	S8080P:	MOVE	T1,T7
  3081	005013'	221 01 0 00 000004 		IMULI	T1,4		;CHANGE PAGES TO SECTORS
  3082	005014'	332 00 0 00 000302'		SKIPE	MONTYP
  3083	005015'	270 01 0 00 436301 		ADD	T1,HOMPAG+200+101
  3084	005016'	336 00 0 00 000302'		SKIPN	MONTYP
  3085	005017'	270 01 0 00 005542'		ADD	T1,HOMBUF+101
  3086	005020'	404 01 0 00 014604'	T8080P:	AND	T1,[37,,-1]	;MASK ADDRESS BITS ONLY
  3087	005021'	332 00 0 00 021064'		SKIPE	RM03F
  3088	005022'	260 17 0 00 005210'		GO	TRM03P		;RM03 DISK
  3089	005023'	231 01 0 00 000574 		IDIVI	T1,<^D20*^D19>	;FIND CYL
  3090
  3091	005024'	261 17 0 00 000001 		PUT	T1
  3092	005025'	200 01 0 00 000002 		MOVE	T1,T2
  3093	005026'	336 00 0 00 021064'		SKIPN	RM03F
  3094	005027'	231 01 0 00 000024 		IDIVI	T1,^D20		;FIND SECTOR
  3095	005030'	332 00 0 00 021064'		SKIPE	RM03F
  3096	005031'	231 01 0 00 000036 		IDIVI	T1,^D30
  3097	005032'	242 01 0 00 000010 		LSH	T1,8
  3098	005033'	434 01 0 00 000002 		IOR	T1,T2
  3099	005034'	262 17 0 00 000002 		GETIT	T2
  3100
  3101	005035'	242 02 0 00 000006 		LSH	T2,6
  3102	005036'	504 01 0 00 000002 		HRL	T1,T2
  3103	005037'	202 01 0 06 000000 		MOVEM	T1,(T6)		;STORE 8080 POINTER
  3104	005040'	263 17 0 00 000000 		RTN
  3105
  3106	005041'	200 01 0 00 000007 	SBOOTP:	MOVE	T1,T7
  3107	005042'	221 01 0 00 000004 		IMULI	T1,4		;CHANGE PAGES TO SECTORS
  3108	005043'	270 01 0 00 436301 		ADD	T1,HOMPAG+200+101
  3109	005044'	404 01 0 00 014604'	TBOOTP:	AND	T1,[37,,-1]	;MASK ADDRESS BITS ONLY
  3110	005045'	332 00 0 00 021064'		SKIPE	RM03F
  3111	005046'	260 17 0 00 005210'		GO	TRM03P		;RM03 DISK
  3112	005047'	231 01 0 00 000574 		IDIVI	T1,<^D20*^D19>	;FIND CYL
  3113
  3114	005050'	261 17 0 00 000001 		PUT	T1
  3115	005051'	200 01 0 00 000002 		MOVE	T1,T2
  3116	005052'	336 00 0 00 021064'		SKIPN	RM03F
  3117	005053'	231 01 0 00 000024 		IDIVI	T1,^D20		;FIND SECTOR
  3118	005054'	332 00 0 00 021064'		SKIPE	RM03F
  3119	005055'	231 01 0 00 000036 		IDIVI	T1,^D30
  3120	005056'	242 01 0 00 000010 		LSH	T1,8
  3121	005057'	434 01 0 00 000002 		IOR	T1,T2
  3122	005060'	262 17 0 00 000002 		GETIT	T2
  3123
  3124	005061'	504 01 0 00 000002 		HRL	T1,T2
  3125	005062'	202 01 0 06 000000 		MOVEM	T1,(T6)		;STORE 8080 POINTER
  3126	005063'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 83
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0122

  3127					;*WRTDONE - WRITE FE-DIR FILE BLOCK
  3128
  3129	005064'	260 17 0 00 000623'	WRTDONE:CONFIRM
  3130	005065'	336 00 0 00 021046'		SKIPN	FESETF		;FE-DIR  IN CODE ?
  3131	005066'	260 17 0 00 013262'		 ERR	<FE-FILE SYSTEM NOT SETUP>
  3132
  3133	005067'	201 05 0 00 000400 		MOVEI	T5,^D512/2
  3134	005070'	336 00 0 00 000302'		SKIPN	MONTYP
  3135	005071'	201 05 0 00 000011 		MOVEI	T5,^D18/2
  3136	005072'	201 04 0 00 400000 		MOVEI	T4,FEDIR
  3137
  3138	005073'	200 06 0 00 000004 		MOVE	T6,T4		;POSITION TO T6
  3139	005074'	554 07 0 04 000001 		HLRZ	T7,1(T4)	;PAGE # TO T7
  3140	005075'	322 07 0 00 005077'		JUMPE	T7,.+2		;POSITION NOT USED
  3141	005076'	260 17 0 00 005012'		GO	S8080P		;SET 8080 DISK POINTER
  3142	005077'	271 04 0 00 000002 		ADDI	T4,2
  3143	005100'	367 05 0 00 005073'		SOJG	T5,.-5
  3144
  3145	005101'	336 00 0 00 000302'		SKIPN	MONTYP
  3146	005102'	254 00 0 00 005145'		JRST	WRTD10		;TOPS-10
  3147
  3148	005103'	474 01 0 00 000000 		SETO	T1,
  3149	005104'	200 02 0 00 014131'		MOVE	T2,[.FHSLF,,<FEDIR_-^D9>]
  3150	005105'	400 03 0 00 000000 		SETZ	T3,
  3151	005106'	104 00 0 00 000056 		PMAP			;UNMAP FE-DIR PAGE
  3152						 ERJMP	[JSERR
  3153	005107'	320 16 0 00 014127'			 JRST	START]
  3154
  3155	005110'	200 01 0 00 002523'		MOVE	T1,FEJFN
  3156	005111'	104 00 0 00 000022 		CLOSF
  3157	005112'	260 17 0 00 014613'		 ERR	<CAN NOT CLOSE BOOTSTRAP.BIN>
  3158
  3159	005113'	201 01 0 00 000000 		MOVEI	T1,0		;UPDATE HOME BLOCKS
  3160	005114'	260 17 0 00 005166'		GO	REDHOM
  3161	005115'	263 17 0 00 000000 		  RET
  3162
  3163	005116'	260 17 0 00 005141'		GO	SHOMEP		;COMPUTE 8080 POINTER
  3164
  3165	005117'	200 01 0 00 021030'		MOVE	T1,BTADDR#	;SAME AS ON DISK ?
  3166	005120'	316 01 0 00 436303 		CAMN	T1,HOMPAG+200+103
  3167	005121'	263 17 0 00 000000 		RTN			;YES, LEAVE HOME BLOCKS ALONE THEN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 84
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0123

  3168
  3169	005122'	200 01 0 00 021030'		MOVE	T1,BTADDR
  3170	005123'	202 01 0 00 436303 		MOVEM	T1,HOMPAG+200+103
  3171	005124'	201 01 0 00 000000 		MOVEI	T1,0
  3172	005125'	260 17 0 00 005165'		GO	WRTHOM		;NO, UPDATE HOME BLOCKS
  3173	005126'	263 17 0 00 000000 		  RET
  3174
  3175	005127'	201 01 0 00 000010 		MOVEI	T1,10
  3176	005130'	260 17 0 00 005166'		GO	REDHOM
  3177	005131'	263 17 0 00 000000 		  RET
  3178
  3179	005132'	200 01 0 00 021030'		MOVE	T1,BTADDR
  3180	005133'	202 01 0 00 436503 		MOVEM	T1,HOMPAG+400+103
  3181	005134'	201 01 0 00 000010 		MOVEI	T1,10
  3182	005135'	260 17 0 00 005165'		GO	WRTHOM
  3183	005136'	263 17 0 00 000000 		  RET
  3184
  3185	005137'				HOMSET:	PNTMSF	[ASCIZ/
  3186					[HOME BLOCKS SET]
  3187	005137'	037 01 0 00 014615'	/]
  3188	005140'	263 17 0 00 000000 		RET
  3189
  3190	005141'	201 06 0 00 021030'	SHOMEP:	MOVEI	T6,BTADDR
  3191	005142'	400 07 0 00 000000 		SETZ	T7,
  3192	005143'	260 17 0 00 005012'		GO	S8080P
  3193	005144'	263 17 0 00 000000 		RTN
  3194
  3195	005145'	077 01 0 00 006735'	WRTD10:	ENTER	DAT,ODAT10	;SET FOR OUTPUT
  3196	005146'	260 17 0 00 014627'		ERR	<KS10FE.BIN ENTER ERROR>
  3197
  3198	005147'	075 01 0 00 000001 		USETO	DAT,1
  3199
  3200	005150'	201 02 0 00 000034 		MOVEI	T2,^D28
  3201	005151'	200 03 0 00 014631'		MOVE	T3,[FEDIR,,IPAG]
  3202	005152'	200 01 0 00 000003 	WRTD11:	MOVE	T1,T3
  3203	005153'	251 01 0 00 022637'		BLT	T1,IPAG+777
  3204	005154'	205 01 0 00 001000 		MOVSI	T1,^D512
  3205	005155'	270 03 0 00 000001 		ADD	T3,T1
  3206
  3207						OUT	DAT,[IOWD ^D512,IPAG
  3208	005156'	057 01 0 00 014366'			     0]
  3209	005157'	334 00 0 00 000000 		SKIPA
  3210	005160'	260 17 0 00 014637'		ERR	<KS10FE.BIN OUTPUT ERROR>
  3211	005161'	367 02 0 00 005152'		SOJG	T2,WRTD11
  3212
  3213	005162'	070 01 0 00 000000 		CLOSE	DAT,
  3214	005163'	071 01 0 00 000000 		RELEAS	DAT,
  3215	005164'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 85
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- WRITE                                                                  SEQ 0124

  3216					;*SUBROUTINE TO READ AND WRITE HOME BLOCKS
  3217					;*CALL WITH:
  3218					;*	T1/ DISK ADDRESS
  3219					;*	STRDES/ DEVICE DESIGNATOR OF STRUCTURE
  3220					;*	GO	REDHOM/WRTHOM
  3221					;*	  ERROR
  3222					;*	OK
  3223
  3224	005165'	334 02 0 00 014641'	WRTHOM:	SKIPA	T2,[DOP%WR+1000]
  3225	005166'	201 02 0 00 001000 	REDHOM:	MOVEI	T2,1000
  3226
  3227	005167'	332 00 0 00 016567'		SKIPE	DEBUGF
  3228	005170'	254 00 0 00 000016'		JRST	CPOPJ1		;DON'T DO HOME IF DEBUG
  3229
  3230	005171'	201 03 0 00 436000 		MOVEI	T3,HOMPAG
  3231	005172'	200 04 0 00 021072'		MOVE	T4,STRDES
  3232					;*	TXO	T1,<.DOPSR>B1!DOP%SN ;MONSYM IS BAD
  3233	005173'	661 01 0 00 577600 		TLO	T1,577600
  3234	005174'	104 00 0 00 000242 		DSKOP
  3235	005175'	320 16 0 00 005200'		ERJMP	BADHOM
  3236	005176'	322 01 0 00 000000*		JUMPE	T1,RSKP
  3237	005177'	260 17 0 00 014650'		ERR	ERROR UPDATING HOME BLOCKS
  3238
  3239	005200'	201 01 0 00 400000 	BADHOM:	MOVEI	T1,.FHSLF
  3240	005201'	104 00 0 00 000012 		GETER
  3241	005202'	320 16 0 00 014657'		ERMSG	<BADHOM: GETER FAILED>
  3242	005203'	621 02 0 00 777777 		TLZ	T2,-1
  3243	005204'	302 02 0 00 600614 		CAIE	T2,WHELX1
  3244	005205'	260 17 0 00 014650'		ERR	ERROR UPDATING HOME BLOCKS
  3245						PNTMSF	[ASCIZ/
  3246					%HOME BLOCKS NOT UPDATED -- MUST BE WHEEL OR OPERATOR
  3247	005206'	037 01 0 00 014662'	/]
  3248	005207'	263 17 0 00 000000 		RET
  3249
  3250	005210'	332 00 0 00 000302'	TRM03P:	SKIPE	MONTYP		;TOPS-20
  3251	005211'	231 01 0 00 000224 		IDIVI	T1,<^D30*^D5>-2
  3252	005212'	336 00 0 00 000302'		SKIPN	MONTYP		;TOPS-10
  3253	005213'	231 01 0 00 000226 		IDIVI	T1,<^D30*^D5>
  3254	005214'	254 00 0 00 000016'		JRST	CPOPJ1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 86
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- READ                                                                   SEQ 0125

  3255					SUBTTL	COMMANDS -- READ
  3256
  3257	005215'	476 00 0 00 021027'	RDBC1:	SETOM	BC1FLG
  3258	005216'	254 00 0 00 005220'		JRST	READ+1
  3259	005217'	402 00 0 00 021027'	READ:	SETZM	BC1FLG
  3260	005220'					NOISE	<MICROCODE FROM FILE>
  3261	005232'	561 01 0 00 014713'		HRROI	T1,[ASCIZ "KS10"]
  3262	005233'	332 00 0 00 021027'		SKIPE	BC1FLG
  3263	005234'	561 01 0 00 014714'		HRROI	T1,[ASCIZ "KSBC1"]
  3264	005235'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  3265	005236'	561 01 0 00 014716'		HRROI	T1,[ASCIZ "ULD"]	;MAKE THIS "RAM" FOR PRODUCTION
  3266	005237'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  3267	005240'	402 00 0 00 016406'		SETZM	GTJDEV
  3268	005241'	402 00 0 00 016407'		SETZM	GTJDIR
  3269	005242'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  3270	005243'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  3271	005244'					CMD	[FLDDB.(.CMFIL)]
  3272	005255'	516 02 0 00 021162'		HRLZM	T2,UCFILE
  3273	005256'	260 17 0 00 000623'		CONFIRM
  3274	005257'	336 00 0 00 000302'		SKIPN	MONTYP
  3275	005260'	254 00 0 00 005336'		JRST	READ10
  3276
  3277	005261'	554 01 0 00 021162'		HLRZ	T1,UCFILE
  3278	005262'	201 02 0 00 200000 		MOVEI	T2,OF%RD
  3279	005263'	104 00 0 00 000021 		OPENF
  3280	005264'	260 17 0 00 014732'		ERR	<CAN NOT OPEN MICROCODE FILE>
  3281
  3282	005265'	402 00 0 00 021274'		SETZM	STBUF
  3283	005266'	561 01 0 00 021274'		HRROI	T1,STBUF
  3284	005267'	554 02 0 00 021162'		HLRZ	T2,UCFILE
  3285	005270'	205 03 0 00 000200 		MOVSI	T3,200
  3286	005271'	104 00 0 00 000030 		JFNS			;GET FILE ".EXT" STRING
  3287	005272'	200 00 0 00 021274'		MOVE	STBUF
  3288	005273'	312 00 0 00 014734'		CAME	[ASCIZ/RAM/]
  3289	005274'	254 00 0 00 007626'		JRST	RDULD		;OLD STYLE ".ULD" MICROCODE
  3290
  3291	005275'	554 01 0 00 021162'		HLRZ	T1,UCFILE
  3292	005276'	200 02 0 00 014104'		MOVE	T2,[1,,.FBBYV]
  3293	005277'	201 03 0 00 000004 		MOVEI	T3,T4
  3294
  3295	005300'	104 00 0 00 000063 		GTFDB			;GET FILE PAGE COUNT
  3296
  3297	005301'	405 04 0 00 777777 		ANDI	T4,-1
  3298	005302'	302 04 0 00 000014 		CAIE	T4,^D12
  3299	005303'	254 00 0 00 005331'		 JRST	READF		;WRONG LENGTH
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 87
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- READ                                                                   SEQ 0126

  3300
  3301	005304'	200 01 0 00 021162'		MOVE	T1,UCFILE
  3302	005305'	336 00 0 00 021027'		SKIPN	BC1FLG
  3303	005306'	200 02 0 00 014735'		MOVE	T2,[.FHSLF,,<CRAM_-^D9>]
  3304	005307'	332 00 0 00 021027'		SKIPE	BC1FLG
  3305	005310'	200 02 0 00 014736'		MOVE	T2,[.FHSLF,,<CRMBC1_-^D9>]
  3306	005311'	200 03 0 00 014737'		MOVE	T3,[PM%CNT+PM%RD+PM%WR+PM%PLD+PM%CPY+^D12]
  3307
  3308	005312'	104 00 0 00 000056 		PMAP			;READ CRAM INTO MEMORY
  3309						ERJMP	[JSERR
  3310	005313'	320 16 0 00 014127'			 JRST	START]
  3311
  3312	005314'	336 00 0 00 021027'		SKIPN	BC1FLG
  3313	005315'	201 01 0 00 401000 		MOVEI	T1,CRAM
  3314	005316'	332 00 0 00 021027'		SKIPE	BC1FLG
  3315	005317'	201 01 0 00 417000 		MOVEI	T1,CRMBC1
  3316	005320'	201 02 0 00 000014 		MOVEI	T2,^D12
  3317	005321'	416 00 0 01 000000 		SETMM	(T1)		;TOUCH EACH CRAM PAGE
  3318	005322'	271 01 0 00 001000 		ADDI	T1,1000		; TO MAKE IT PRIVATE
  3319	005323'	367 02 0 00 005321'		SOJG	T2,.-2
  3320
  3321	005324'	554 01 0 00 021162'		HLRZ	T1,UCFILE
  3322	005325'	104 00 0 00 000022 		CLOSF			;CLOSE OUT CRAM FILE
  3323	005326'	260 17 0 00 014746'		 ERR	<CAN NOT CLOSE MICROCODE FILE>
  3324
  3325	005327'	476 00 0 00 016572'		SETOM	RDFLAG
  3326	005330'	263 17 0 00 000000 		RTN
  3327
  3328	005331'	554 01 0 00 021162'	READF:	HLRZ	T1,UCFILE
  3329	005332'	104 00 0 00 000022 		CLOSF			;CLOSE OUT BAD FILE
  3330	005333'	260 17 0 00 014746'		 ERR	<CAN NOT CLOSE MICROCODE FILE>
  3331	005334'	260 17 0 00 014756'		 ERR	<MICROCODE FILE WRONG LENGTH>
  3332	005335'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 88
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- READ                                                                   SEQ 0127

  3333					;*TOPS-10 MICROCODE READ PROCESS
  3334
  3335	005336'	260 17 0 00 007027'	READ10:	GO	OPNTEN		;OPEN INPUT FILE
  3336	005337'	260 17 0 00 014311'		ERR	<FILE NOT FOUND>
  3337
  3338	005340'	200 01 0 00 006667'		MOVE	T1,LOOK10+.RBVER ;USE INPUT VERSION AS OUTPUT VERSION
  3339	005341'	202 01 0 00 006755'		MOVEM	T1,MC.VER
  3340
  3341	005342'	135 01 0 00 014313'		LDB	T1,[POINT 11,LOOK10+.RBPRV,23]
  3342	005343'	202 01 0 00 006756'		MOVEM	T1,MC.TIME	;USE INPUT TIME AND DATE AS OUTPUT
  3343
  3344	005344'	135 01 0 00 014314'		LDB	T1,[POINT 3,LOOK10+.RBEXT,20]
  3345	005345'	137 01 0 00 014760'		DPB	T1,[POINT 3,MC.DATE,23]
  3346	005346'	135 01 0 00 014316'		LDB	T1,[POINT 12,LOOK10+.RBPRV,35]
  3347	005347'	137 01 0 00 014761'		DPB	T1,[POINT 12,MC.DATE,35]
  3348
  3349	005350'	200 01 0 00 006666'		MOVE	T1,LOOK10+.RBSIZ ;GET FILE SIZE IN WORDS
  3350
  3351	005351'	200 00 0 00 016411'		MOVE	0,GTJEXT
  3352	005352'	312 00 0 00 014762'		CAME	0,[SIXBIT/RAM/]
  3353	005353'	254 00 0 00 007626'		JRST	RDULD
  3354
  3355	005354'	302 01 0 00 014000 		CAIE	T1,^D12*^D512
  3356	005355'	260 17 0 00 014763'		ERR	<FILE WRONG LENGTH>
  3357
  3358	005356'	336 00 0 00 021027'		SKIPN	BC1FLG
  3359	005357'	201 07 0 00 401000 		MOVEI	T7,CRAM		;SETUP CRAM STORAGE POINTER
  3360	005360'	332 00 0 00 021027'		SKIPE	BC1FLG
  3361	005361'	201 07 0 00 417000 		MOVEI	T7,CRMBC1
  3362
  3363	005362'	260 17 0 00 006764'	LOOP1:	GO	GET10		;GET WORD FROM FILE
  3364	005363'	335 00 0 00 021040'		SKIPGE	EOFSW
  3365	005364'	254 00 0 00 005367'		JRST	LOOP2
  3366	005365'	202 03 0 07 000000 		MOVEM	T3,(T7)		;STORE IT
  3367	005366'	344 07 0 00 005362'		AOJA	T7,LOOP1
  3368
  3369	005367'	476 00 0 00 016572'	LOOP2:	SETOM	RDFLAG
  3370	005370'	254 00 0 00 007015'		JRST	R10EOF		;DONE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 89
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK ROUTINE DEFINITIONS                                                   SEQ 0128

  3371					SUBTTL	TOPS-10 DISK ROUTINE DEFINITIONS
  3372
  3373					;*I/O CHANNELS
  3374
  3375			000001		DAT=1	;GENERAL DATA CHANNEL
  3376			000002		RC=2	;READ CHANNEL
  3377			000003		WC=3	;WRITE CHANNEL
  3378			000004		DIR=4	;DIRECTORY CHANNEL
  3379			000005		HOM=5	;HOME BLOCK CHANNEL
  3380			000006		$CHN=6	;COMMAND FILE CHANNEL
  3381
  3382					;*SYMBOL DEFINITIONS
  3383
  3384			000020		BLKSIZ==20			;SIZE OF LOOKUP/ENTER BLOCKS
  3385
  3386					RADIX	10
  3387			000001		HMBK01==1+20*0+380*0		;HOME BLOCK #1
  3388									;1=SECTOR NUMBER
  3389									;0=TRACK NUMBER
  3390									;0=CYLINDER NUMBER
  3391			000012		HMBK10==10+20*0+380*0		;HOME BLOCK #10
  3392
  3393					RADIX	8
  3394			000001		.BFPTR=1
  3395			000002		.BFCTR=2
  3396			000015		.DCUPN=15
  3397			006703'		TO10IC==HEAD10+.BFCTR		;-10 INPUT RING BUF BYTE COUNT
  3398			006702'		TO10IP==HEAD10+.BFPTR		;-10 INPUT RING BUF BYTE PTR
  3399			006731'		TO10OC==HEDBLK+.BFCTR		;-10 OUTPUT RING BUF BYTE COUNT
  3400			006730'		TO10OP==HEDBLK+.BFPTR		;-10 OUTPUT RING BUF BYTE PTR
  3401			005440'		PHYDEV==DATDEV+.DCUPN		;PHY UNIT FOR DATA FILE(0-399)
  3402			005422'		DSKUPN==DIRDEV+.DCUPN		;PHY UNIT FOR FILE IN 406-409
  3403			006720'		E10ALC==ENTBLK+.RBALC		;# OF BLOCKS TO ALLOCATE
  3404			006726'		E10STS==ENTBLK+.RBSTS		;FILE STATUS WORD
  3405			006672'		E20ALC==LOOK10+.RBALC		;# OF BLOCKS TO ALLOCATE
  3406			006700'		E20STS==LOOK10+.RBSTS		;FILE STATUS WORD
  3407
  3408			200000		SU.SOT=200000			;SUSET. OUTPUT BIT
  3409			010000		CTYPF=10000			;SET IF ANY CHARS TYPED FOR A COMMAND
  3410			000014		.IOBIN=14
  3411			000017		.IODMP=17
  3412			040000		RP.NFS=1B21
  3413			020000		RP.ABC=1B22
  3414			000004		CL.DLL=4
  3415			000000		.DCUR4=0	;RP04
  3416			000001		.DCUR6=1	;RP06
  3417			000002		.DCUR3=2	;RM03
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 90
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK ROUTINE DEFINITIONS                                                   SEQ 0129

  3418
  3419					;EXTENDED ENTER BLOCK
  3420
  3421			000000		.RBCNT=0	;0,,COUNT OF ENTRIES
  3422			000001		.RBPPN=1	;PROJ,PROG #
  3423			000002		.RBNAM=2	;SIXBIT FILE NAME
  3424			000003		.RBEXT=3	;SIXBIT EXT,,18-20 HI DATE,21-35 ACCESS DATE
  3425			000004		.RBPRV=4	;0-8 PROT,9-12 DATA MODE,13-23 CREATE TIME,24-35 CREATE DATE
  3426			000005		.RBSIZ=5
  3427			000006		.RBVER=6
  3428			000007		.RBSPL=7
  3429			000010		.RBEST=10	;0 - EST BLOCKS
  3430			000011		.RBALC=11	;# OF CONTIGUOUS BLOCKS
  3431			000012		.RBPOS=12
  3432			000013		.RBTF1=13
  3433			000014		.RBNCA=14
  3434			000015		.RBMTA=15
  3435			000016		.RBDEV=16
  3436			000017		.RBSTS=17	;FILE STATUS, UFD,,FILE - BIT 22 RP.ABC
  3437
  3438			000100		HOLD==^D64		;DEFAULT PAGE COUNT FOR KS-10 AREA
  3439			000000		PRIME==0		;RELATIVE BLOCK OF PRIME RIB FOR USETI
  3440			005461'		HOMCLP== HOMBUF+20	;ADDRESS POINTER FOR RETRIEVAL PTRS
  3441			005462'		HOMBPC== HOMBUF+21	;BLOCKS PER CLUSTER
  3442
  3443	005371'	777600	005440'		HOMLST:	IOWD ^D128,HOMBUF	;COMMAND LIST FOR HOME BLOCK
  3444	005372'	000000	000000			0
  3445	005373'	777600	006455'		DIRLST:	IOWD ^D128,DIRBUF	;COMMAND LIST FOR DIRECTORY BLOCK
  3446	005374'	000000	000000			0
  3447	005375'	777600	006255'		DATLST:	IOWD ^D128,DATBUF	;COMMAND LIST FOR DATA BLOCK
  3448	005376'	000000	000000			0
  3449	005377'	777600	005640'		H10LST:	IOWD ^D128,HOMB10	;COMMAND LIST FOR HOME BLK #10
  3450	005400'	000000	000000			0
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 91
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK ROUTINE DEFINITIONS                                                   SEQ 0130

  3451
  3452					;*ERROR INTERCEPT CONTROL BLOCK
  3453
  3454	005401'	000004	012471'		CCBLK:	4,,CCINT
  3455	005402'	000000	000002			0,,2
  3456	005403'					BLOCK	2
  3457
  3458	005405'				DIRDEV:	BLOCK	16	;DEVICE INFORMATION FOR DIR FILE
  3459
  3460	005423'				DATDEV:	BLOCK	16	;DEVICE INFORMATION FOR DATA FILE
  3461
  3462	005441'				HOMBUF:	BLOCK	200	;BUFFER CONTAINS HOME BLOCK # 1
  3463
  3464	005641'				HOMB10:	BLOCK	200	;BUFFER CONTAINS HOME BLOCK # 10
  3465
  3466	006041'				CMDCNT:	BLOCK	1	;COMMAND LINE COUNT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 92
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK ROUTINE DEFINITIONS                                                   SEQ 0131

  3467
  3468	006042'				O.STR:			;START OF OUTPUT SPEC STORAGE
  3469	006042'				O.DEV:	BLOCK	1	;DEVICE
  3470	006043'				O.NAM1:	BLOCK	1	;NAME
  3471	006044'				O.EXT:	BLOCK	1	;EXT
  3472	006045'				O.PRT:	BLOCK	1	;PROTECTION
  3473	006046'				O.PPN:	BLOCK	1	;PROJ,PROG #
  3474	006047'				O.DATE:	BLOCK	1	;CREATION DATE
  3475	006050'				O.TIME:	BLOCK	1	;CREATION TIME
  3476	006051'				O.VER:	BLOCK	1	;VERSION NUMBER
  3477
  3478	006052'				I.STR:			;START OF INPUT SPEC STORAGE
  3479	006052'				I.DEV:	BLOCK	1	;DEVICE
  3480	006053'				I.NAM1:	BLOCK	1	;NAME
  3481	006054'				I.EXT:	BLOCK	1	;EXT
  3482	006055'				I.PPN:	BLOCK	1	;PROJ,PROG #
  3483
  3484	006056'				GETBUF:	BLOCK	^D128	;A DEDICATED BUFFER
  3485
  3486	006256'				DATBUF:	BLOCK	^D128	;BUFFER CONTAINING REGULAR DATA BLOCK
  3487			006455'		DATEND=.-1
  3488
  3489	006456'				DIRBUF:	BLOCK	^D128	;BUFFER CONTAINING DIRECTORY BLOCK
  3490			006655'		ENDBLK=.-1
  3491
  3492	006656'				OPEN10:	BLOCK	3	;-10 OPEN BLOCK
  3493	006661'				LOOK10:	BLOCK	BLKSIZ	;-10 LOOKUP BLOCK
  3494	006701'				HEAD10:	BLOCK	3	;-10 BUFFER HEADER
  3495	006704'				OPNBLK:	BLOCK	3	;-10 OUTPUT OPEN BLOCK
  3496	006707'				ENTBLK:	BLOCK	BLKSIZ	;-10 ENTER BLOCK
  3497	006727'				HEDBLK:	BLOCK	3	;-10 OUTPUT BUFFER HEADER
  3498	006732'				OPND10:	BLOCK	3	;-10 DAT OPEN BLOCK
  3499	006735'				ODAT10:	BLOCK	BLKSIZ	;-10 DAT LOOKUP BLOCK
  3500
  3501	006755'				MC.VER:	BLOCK	1	;MICROCODE VERSION
  3502	006756'				MC.TIME:BLOCK	1	;MICROCODE TIME
  3503	006757'				MC.DATE:BLOCK	1	;MICROCODE DATE
  3504	006760'				MT.VER:	BLOCK	1	;MAGTAPE VERSION
  3505	006761'				MT.TIME:BLOCK	1	;MAGTAPE TIME
  3506	006762'				MT.DATE:BLOCK	1	;MAGTAPE DATE
  3507	006763'				MT.SADR:BLOCK	1	;MAGTAPE START ADDRESS
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 93
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK FILE PROCESS                                                          SEQ 0132

  3508					SUBTTL	TOPS-10 DISK FILE PROCESS
  3509
  3510					;*GET A CHARACTER FROM -10 FILE
  3511
  3512	006764'	332 00 0 00 021040'	GET10:	SKIPE	EOFSW		;HAVE WE HIT EOF YET ?
  3513	006765'	254 00 0 00 006772'		JRST	GET10Z		;YES, CLEAR CHARACTER
  3514
  3515	006766'	375 00 0 00 006703'	CHKCNT:	SOSGE	TO10IC		;BYTE COUNT=0?
  3516	006767'	254 00 0 00 006774'		JRST	IN10		;YES
  3517
  3518	006770'	134 03 0 00 006702'		ILDB	T3,TO10IP	;GET BUFFER PTR
  3519	006771'	263 17 0 00 000000 		RTN			;RETURN, BUFFER FULL
  3520
  3521	006772'	400 03 0 00 000000 	GET10Z:	SETZ	T3,
  3522	006773'	263 17 0 00 000000 		RTN
  3523
  3524	006774'	056 02 0 00 000000 	IN10:	IN	RC,
  3525	006775'	254 00 0 00 006764'		JRST	GET10
  3526
  3527					;*END OF INPUT FILE
  3528
  3529	006776'	062 02 0 00 000003 	COMEND:	GETSTS	RC,C		;GET ERROR STATUS
  3530	006777'	602 03 0 00 740000 		TRNE	C,74B23		;SEE IF ANY ERRORS
  3531	007000'	260 17 0 00 014770'		ERR	<READ ERROR>
  3532
  3533	007001'	606 03 0 00 020000 		TRNN	C,1B22		;SEE IF END OF FILE
  3534	007002'	260 17 0 00 014776'		ERR	<SHOULD NEVER HAPPEN>
  3535
  3536	007003'	476 00 0 00 021040'		SETOM	EOFSW		;INDICATE EOF IS DETECTED
  3537	007004'	402 00 0 00 000003 		SETZM	T3		;ZERO THE CHARACTER
  3538	007005'	263 17 0 00 000000 		RTN			;RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 94
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK FILE PROCESS                                                          SEQ 0133

  3539					;*PUT A CHARACTER TO -10 FILE
  3540
  3541	007006'	377 00 0 00 006731'	PUT10:	SOSG	TO10OC		;DECREMENT BYTE COUNT
  3542	007007'	254 00 0 00 007012'		JRST	PUTBUF
  3543
  3544	007010'	136 03 0 00 006730'	PUTNXT:	IDPB	T3,TO10OP	;PUT WORD IN BUFFER
  3545	007011'	263 17 0 00 000000 		RTN
  3546
  3547	007012'	057 03 0 00 000000 	PUTBUF:	OUT	WC,		;EMPTY BUFFER
  3548	007013'	254 00 0 00 007010'		JRST	PUTNXT
  3549	007014'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  3550
  3551					;*COMPLETE OUTPUT FILE
  3552
  3553	007015'	070 02 0 00 000000 	R10EOF:	CLOSE	RC,		;CLOSE READ CHANNEL
  3554	007016'	071 02 0 00 000000 		RELEAS	RC,
  3555	007017'	200 01 0 00 021053'		MOVE	T1,JBFFRC
  3556	007020'	202 01 0 00 000121 		MOVEM	T1,.JBFF	;RECLAIM BUF SPACE
  3557
  3558	007021'	263 17 0 00 000000 		RTN
  3559
  3560	007022'	070 03 0 00 000000 	W10EOF:	CLOSE	WC,		;CLOSE WRITE CHANNEL
  3561	007023'	071 03 0 00 000000 		RELEAS	WC,
  3562
  3563	007024'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 95
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK FILE PROCESS                                                          SEQ 0134

  3564					;*OPEN DEVICE/LOOKUP ON FILE
  3565
  3566	007025'	476 00 0 00 021056'		SETOM	OPNTDMP
  3567	007026'	334 00 0 00 000000 		SKIPA
  3568	007027'	402 00 0 00 021056'	OPNTEN:	SETZM	OPNTDMP#
  3569	007030'	402 00 0 00 006701'		SETZM	HEAD10
  3570	007031'	402 00 0 00 006702'		SETZM	HEAD10+1
  3571	007032'	402 00 0 00 006703'		SETZM	HEAD10+2
  3572	007033'	201 01 0 00 006701'		MOVEI	T1,HEAD10	;SETUP BUFFER HEADER
  3573	007034'	202 01 0 00 006660'		MOVEM	T1,OPEN10+2
  3574	007035'	402 00 0 00 021040'		SETZM	EOFSW#
  3575
  3576	007036'	200 01 0 00 016406'		MOVE	T1,GTJDEV	;SETUP DEVICE
  3577	007037'	202 01 0 00 006657'		MOVEM	T1,OPEN10+1
  3578
  3579	007040'	201 01 0 00 000014 		MOVEI	T1,.IOBIN	;SET BINARY MODE
  3580	007041'	332 00 0 00 021056'		SKIPE	OPNTDMP
  3581	007042'	201 01 0 00 000017 		MOVEI	T1,.IODMP	;SET DUMP MODE
  3582	007043'	202 01 0 00 006656'		MOVEM	T1,OPEN10
  3583
  3584	007044'	050 02 0 00 006656'		OPEN	RC,OPEN10	;OPEN READ CHANNEL
  3585	007045'	260 17 0 00 015004'		ERR	<TOPS-10 OPEN ERROR>
  3586
  3587	007046'	200 01 0 00 000121 		MOVE	T1,.JBFF	;SAVE RING BUFFER ADDRESS
  3588	007047'	202 01 0 00 021053'		MOVEM	T1,JBFFRC#
  3589
  3590	007050'	336 00 0 00 021056'		SKIPN	OPNTDMP
  3591	007051'	064 02 0 00 000002 		INBUF	RC,2		;TWO BUFFERS
  3592
  3593	007052'	200 01 0 00 016410'		MOVE	T1,GTJFIL	;SETUP FILE NAME
  3594	007053'	202 01 0 00 006663'		MOVEM	T1,LOOK10+.RBNAM
  3595
  3596	007054'	200 01 0 00 016411'		MOVE	T1,GTJEXT	;SETUP FILE EXT
  3597	007055'	202 01 0 00 006664'		MOVEM	T1,LOOK10+.RBEXT
  3598
  3599	007056'	200 01 0 00 016407'		MOVE	T1,GTJDIR	;SETUP PPN
  3600	007057'	202 01 0 00 006662'		MOVEM	T1,LOOK10+.RBPPN
  3601
  3602	007060'	201 01 0 00 000017 		MOVEI	T1,17
  3603	007061'	202 01 0 00 006661'		MOVEM	T1,LOOK10
  3604
  3605	007062'	076 02 0 00 006661'		LOOKUP	RC,LOOK10	;FIND FILE
  3606	007063'	263 17 0 00 000000 		RTN			;NOT FOUND
  3607
  3608	007064'	254 00 0 00 000016'		JRST	CPOPJ1		;FOUND
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 96
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK FILE PROCESS                                                          SEQ 0135

  3609					;*OPEN DEVICE/LOOKUP ON DATA FILE
  3610
  3611	007065'	402 00 0 00 006732'	OPNDAT:	SETZM	OPND10
  3612	007066'	402 00 0 00 006733'		SETZM	OPND10+1
  3613	007067'	402 00 0 00 006734'		SETZM	OPND10+2
  3614	007070'	201 01 0 00 006732'		MOVEI	T1,OPND10	;SETUP BUFFER HEADER
  3615	007071'	202 01 0 00 006734'		MOVEM	T1,OPND10+2
  3616
  3617	007072'	200 01 0 00 016406'		MOVE	T1,GTJDEV	;SETUP DEVICE
  3618	007073'	202 01 0 00 006733'		MOVEM	T1,OPND10+1
  3619
  3620	007074'	201 01 0 00 000017 		MOVEI	T1,.IODMP	;SET DUMP MODE
  3621	007075'	202 01 0 00 006732'		MOVEM	T1,OPND10
  3622
  3623	007076'	050 01 0 00 006732'		OPEN	DAT,OPND10	;OPEN READ CHANNEL
  3624	007077'	260 17 0 00 015004'		ERR	<TOPS-10 OPEN ERROR>
  3625
  3626	007100'	200 01 0 00 016410'		MOVE	T1,GTJFIL	;SETUP FILE NAME
  3627	007101'	202 01 0 00 006737'		MOVEM	T1,ODAT10+.RBNAM
  3628
  3629	007102'	200 01 0 00 016411'		MOVE	T1,GTJEXT	;SETUP FILE EXT
  3630	007103'	202 01 0 00 006740'		MOVEM	T1,ODAT10+.RBEXT
  3631
  3632	007104'	200 01 0 00 016407'		MOVE	T1,GTJDIR	;SETUP PPN
  3633	007105'	202 01 0 00 006736'		MOVEM	T1,ODAT10+.RBPPN
  3634
  3635	007106'	201 01 0 00 000017 		MOVEI	T1,17
  3636	007107'	202 01 0 00 006735'		MOVEM	T1,ODAT10
  3637
  3638	007110'	076 01 0 00 006735'		LOOKUP	DAT,ODAT10	;FIND FILE
  3639	007111'	263 17 0 00 000000 		RTN			;NOT FOUND
  3640
  3641	007112'	254 00 0 00 000016'		JRST	CPOPJ1		;FOUND
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 97
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK FILE PROCESS                                                          SEQ 0136

  3642					;*OPEN DEVICE/ENTER ON FILE
  3643
  3644	007113'	402 00 0 00 006727'	OPNWRT:	SETZM	HEDBLK
  3645	007114'	402 00 0 00 006730'		SETZM	HEDBLK+1
  3646	007115'	402 00 0 00 006731'		SETZM	HEDBLK+2
  3647	007116'	205 01 0 00 006727'		MOVSI	T1,HEDBLK	;SETUP BUFFER HEADER
  3648	007117'	202 01 0 00 006706'		MOVEM	T1,OPNBLK+2
  3649
  3650	007120'	200 01 0 00 006042'		MOVE	T1,O.DEV	;SETUP DEVICE
  3651	007121'	336 00 0 00 000001 		SKIPN	T1
  3652	007122'	205 01 0 00 446353 		MOVSI	T1,(SIXBIT/DSK/)
  3653	007123'	202 01 0 00 006705'		MOVEM	T1,OPNBLK+1
  3654	007124'	201 01 0 00 000017 		MOVEI	T1,.IODMP	;SET DUMP MODE
  3655	007125'	202 01 0 00 006704'		MOVEM	T1,OPNBLK
  3656	007126'	050 03 0 00 006704'		OPEN	WC,OPNBLK	;OPEN WRITE CHANNEL
  3657	007127'	260 17 0 00 015004'		ERR	<TOPS-10 OPEN ERROR>
  3658
  3659	007130'	402 00 0 00 006707'		SETZM	ENTBLK
  3660	007131'	200 01 0 00 015006'		MOVE	T1,[ENTBLK,,ENTBLK+1]
  3661	007132'	251 01 0 00 006726'		BLT	T1,ENTBLK+17
  3662
  3663	007133'	200 01 0 00 006043'		MOVE	T1,O.NAM1	;SETUP FILE NAME
  3664	007134'	202 01 0 00 006711'		MOVEM	T1,ENTBLK+.RBNAM
  3665
  3666	007135'	200 01 0 00 006044'		MOVE	T1,O.EXT	;SETUP FILE EXT
  3667	007136'	202 01 0 00 006712'		MOVEM	T1,ENTBLK+.RBEXT
  3668
  3669	007137'	200 01 0 00 006046'		MOVE	T1,O.PPN	;SETUP PPN
  3670	007140'	202 01 0 00 006710'		MOVEM	T1,ENTBLK+.RBPPN
  3671
  3672	007141'	200 01 0 00 006045'		MOVE	T1,O.PRT	;SETUP PROTECTION
  3673	007142'	137 01 0 00 015007'		DPB	T1,[POINT 9,ENTBLK+.RBPRV,8]
  3674
  3675	007143'	135 01 0 00 014315'		LDB	T1,[POINT 3,O.DATE,23] ;SETUP TIME AND DATE
  3676	007144'	137 01 0 00 015010'		DPB	T1,[POINT 3,ENTBLK+.RBEXT,20]
  3677	007145'	135 01 0 00 014317'		LDB	T1,[POINT 12,O.DATE,35]
  3678	007146'	137 01 0 00 015011'		DPB	T1,[POINT 12,ENTBLK+.RBPRV,35]
  3679	007147'	200 01 0 00 006050'		MOVE	T1,O.TIME
  3680	007150'	137 01 0 00 015012'		DPB	T1,[POINT 11,ENTBLK+.RBPRV,23]
  3681
  3682	007151'	200 01 0 00 006051'		MOVE	T1,O.VER	;SETUP VERSION
  3683	007152'	202 01 0 00 006715'		MOVEM	T1,ENTBLK+.RBVER
  3684
  3685	007153'	201 01 0 00 000017 		MOVEI	T1,17
  3686	007154'	202 01 0 00 006707'		MOVEM	T1,ENTBLK
  3687	007155'	077 03 0 00 006707'		ENTER	WC,ENTBLK	;ENTER FILE
  3688	007156'	263 17 0 00 000000 		RTN
  3689	007157'	254 00 0 00 000016'		JRST	CPOPJ1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 98
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 DISK FILE PROCESS                                                          SEQ 0137

  3690					;*ENTER FILE ON CHANNEL WC
  3691
  3692	007160'	402 00 0 00 006727'	ETER10:	SETZM	HEDBLK
  3693	007161'	402 00 0 00 006730'		SETZM	HEDBLK+1
  3694	007162'	402 00 0 00 006731'		SETZM	HEDBLK+2
  3695	007163'	205 01 0 00 006727'		MOVSI	T1,HEDBLK	;SETUP BUFFER HEADER
  3696	007164'	202 01 0 00 006706'		MOVEM	T1,OPNBLK+2
  3697	007165'	200 01 0 00 006042'		MOVE	T1,O.DEV	;SETUP DEVICE
  3698	007166'	336 00 0 00 000001 		SKIPN	T1
  3699	007167'	205 01 0 00 446353 		MOVSI	T1,(SIXBIT/DSK/)
  3700	007170'	202 01 0 00 006705'		MOVEM	T1,OPNBLK+1
  3701	007171'	201 01 0 00 000017 		MOVEI	T1,.IODMP	;DUMP MODE
  3702	007172'	202 01 0 00 006704'		MOVEM	T1,OPNBLK
  3703
  3704	007173'	050 03 0 00 006704'		OPEN	WC,OPNBLK	;OPEN WRITE CHANNEL
  3705	007174'	260 17 0 00 015004'		ERR	<TOPS-10 OPEN ERROR>
  3706
  3707	007175'	402 00 0 00 006707'		SETZM	ENTBLK
  3708	007176'	200 01 0 00 015006'		MOVE	T1,[ENTBLK,,ENTBLK+1]
  3709	007177'	251 01 0 00 006726'		BLT	T1,ENTBLK+17
  3710
  3711	007200'	200 01 0 00 006043'		MOVE	T1,O.NAM1	;SETUP FILE NAME
  3712	007201'	202 01 0 00 006711'		MOVEM	T1,ENTBLK+.RBNAM
  3713	007202'	200 01 0 00 006044'		MOVE	T1,O.EXT	;SETUP FILE EXT
  3714	007203'	202 01 0 00 006712'		MOVEM	T1,ENTBLK+.RBEXT
  3715	007204'	200 01 0 00 006046'		MOVE	T1,O.PPN	;SETUP PROJ,PROG #
  3716	007205'	336 00 0 00 000001 		SKIPN	T1
  3717	007206'	200 01 0 00 015013'		MOVE	T1,[6,,2020]	;DEFAULT PPN IS 6,20
  3718	007207'	202 01 0 00 006710'		MOVEM	T1,ENTBLK+.RBPPN
  3719	007210'	200 01 0 00 006045'		MOVE	T1,O.PRT	;SETUP PROTECTION
  3720	007211'	137 01 0 00 015007'		DPB	T1,[POINT 9,ENTBLK+.RBPRV,8]
  3721	007212'	135 01 0 00 014315'		LDB	T1,[POINT 3,O.DATE,23]	;SETUP TIME AND DATE
  3722	007213'	137 01 0 00 015010'		DPB	T1,[POINT 3,ENTBLK+.RBEXT,20]
  3723	007214'	135 01 0 00 014317'		LDB	T1,[POINT 12,O.DATE,35]
  3724	007215'	137 01 0 00 015011'		DPB	T1,[POINT 12,ENTBLK+.RBPRV,35]
  3725	007216'	200 01 0 00 006050'		MOVE	T1,O.TIME
  3726	007217'	137 01 0 00 015012'		DPB	T1,[POINT 11,ENTBLK+.RBPRV,23]
  3727	007220'	200 01 0 00 006051'		MOVE	T1,O.VER	;SETUP VERSION
  3728	007221'	202 01 0 00 006715'		MOVEM	T1,ENTBLK+.RBVER
  3729
  3730	007222'	201 01 0 00 000017 		MOVEI	T1,17		;SET # OF WORDS IN EXTENDED ENTER
  3731	007223'	202 01 0 00 006707'		MOVEM	T1,ENTBLK
  3732	007224'	201 01 0 00 060000 		MOVEI	T1,RP.NFS!RP.ABC ;BIT 22 FOR BAD CHECKSUM
  3733	007225'	202 01 0 00 006726'		MOVEM	T1,E10STS	;TELL MON NOT TO CHECK IT
  3734	007226'	200 01 0 00 021065'		MOVE	T1,S.ALO	;SET BLOCKS ALLOCATED
  3735	007227'	202 01 0 00 006720'		MOVEM	T1,E10ALC
  3736
  3737	007230'	077 03 0 00 006707'		ENTER	WC,ENTBLK
  3738	007231'	263 17 0 00 000000 		  RTN			;ERROR RETURN
  3739	007232'	254 00 0 00 000016'		JRST	CPOPJ1		;GIVE SKIP (GOOD) RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 99
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 INDIRECT COMMAND FILE PROCESS                                              SEQ 0138

  3740					SUBTTL	TOPS-10 INDIRECT COMMAND FILE PROCESS
  3741
  3742	007233'	332 00 0 00 021244'	$CCL:	SKIPE	$CCLF		;ALREADY DOING INDIRECT ?
  3743	007234'	260 17 0 00 015020'		ERR	<CCL COMMAND ERROR>
  3744
  3745	007235'	476 00 0 00 021244'		SETOM	$CCLF		;SET COMMAND FILE PROCESS FLAG
  3746
  3747	007236'	200 01 0 00 016406'		MOVE	T1,GTJDEV
  3748	007237'	336 00 0 00 000001 		SKIPN	T1		;ANY DEVICE SPECIFIED ?
  3749	007240'	205 01 0 00 446353 		MOVSI	T1,'DSK'	;NO, ASSUME "DSK"
  3750	007241'	202 01 0 00 007304'		MOVEM	T1,CCLBLK+1
  3751
  3752	007242'	200 01 0 00 016410'		MOVE	T1,GTJFIL
  3753	007243'	202 01 0 00 007311'		MOVEM	T1,CCLDIR	;SETUP FILE NAME
  3754
  3755	007244'	200 01 0 00 016411'		MOVE	T1,GTJEXT
  3756	007245'	336 00 0 00 000001 		SKIPN	T1		;ANY EXTENSION SPECIFIED ?
  3757	007246'	205 01 0 00 435544 		MOVSI	T1,'CMD'	;NO, ASSUME "CMD"
  3758	007247'	202 01 0 00 007312'		MOVEM	T1,CCLDIR+1
  3759
  3760	007250'	200 01 0 00 016407'		MOVE	T1,GTJDIR
  3761	007251'	202 01 0 00 007314'		MOVEM	T1,CCLDIR+3	;SETUP PPN
  3762
  3763	007252'	201 00 0 00 007306'		MOVEI	$IBF
  3764	007253'	202 00 0 00 007305'		MOVEM	CCLBLK+2
  3765
  3766	007254'	050 06 0 00 007303'		OPEN	$CHN,CCLBLK	;OPEN COMMAND CHANNEL
  3767	007255'	260 17 0 00 015025'		ERR	<CCL OPEN ERROR>
  3768
  3769	007256'	064 06 0 00 000001 		INBUF	$CHN,1		;ONE BUFFER
  3770
  3771	007257'	076 06 0 00 007311'		LOOKUP	$CHN,CCLDIR	;FIND COMMAND FILE
  3772	007260'	260 17 0 00 015033'		ERR	<CCL FILE NOT FOUND>
  3773
  3774	007261'	200 00 0 00 000121 		MOVE	.JBFF		;SAVE FIRST FREE FOR RECLAIM
  3775	007262'	202 00 0 00 021127'		MOVEM	$SJBFF#
  3776
  3777	007263'	200 01 0 00 015035'		MOVE	T1,[.NULIO,,.PRIOU]
  3778	007264'	202 01 0 00 016373'		MOVEM	T1,CSB+.CMIOJ
  3779	007265'	331 00 0 00 016573'		SKIPL	ECOFLG
  3780	007266'	476 00 0 00 021165'		SETOM	INTAKE
  3781	007267'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 100
SMFILE	MAC	19-Feb-79 10:46		TOPS-10 INDIRECT COMMAND FILE PROCESS                                              SEQ 0139

  3782	007270'	373 00 0 00 007310'	$CCLIN:	SOSLE	$IBF+2		;ANY CHARS AVAILABLE ?
  3783	007271'	254 00 0 00 007301'		JRST	$CCLI1		;YES
  3784
  3785	007272'	056 06 0 00 000000 		IN	$CHN,		;NO, INPUT A BUFFER
  3786	007273'	254 00 0 00 007301'		 JRST	$CCLI1		;OK
  3787
  3788	007274'	063 06 0 00 740000 		STATZ	$CHN,740000	;NO, CHECK STATUS
  3789	007275'	260 17 0 00 015042'		ERR	<CCL FILE READ ERROR>
  3790
  3791						MOVEI	[ASCIZ/
  3792						[END OF COMMAND FILE]
  3793	007276'	201 00 0 00 015044'	/]
  3794	007277'	037 17 0 00 000001 		PNTALF
  3795	007300'	254 00 0 00 000537'		JRST	REEN
  3796
  3797	007301'	134 02 0 00 007307'	$CCLI1:	ILDB	T2,$IBF+1	;GET CHAR
  3798
  3799					;	CAIN	T2,12		;LF, CLEAR COMMENT FLAG
  3800					;	SETZM	$CMNTF
  3801					;	CAIN	T2,14		;F/F, CLEAR COMMENT FLAG
  3802					;	SETZM	$CMNTF
  3803					;
  3804					;	CAIN	T2,";"		;SEMICOLON, SET COMMENT FLAG
  3805					;	SETOM	$CMNTF
  3806					;
  3807					;	SKIPE	$CMNTF		;PROCESSING COMMENT ?
  3808					;	JRST	$CCLIN		;YES
  3809
  3810	007302'	263 17 0 00 000000 		RTN			;RETURN TO CHAR PROCESS
  3811
  3812	007303'				CCLBLK:	BLOCK	3
  3813	007306'				$IBF:	BLOCK	3
  3814	007311'				CCLDIR:	BLOCK	4
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 101
SMFILE	MAC	19-Feb-79 10:46		SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY                                       SEQ 0140

  3815					SUBTTL	SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY
  3816					;	===============================================
  3817
  3818	007315'	200 02 0 00 016407'	DEVSTR:	MOVE	T2,GTJDIR
  3819	007316'	202 02 0 00 021036'		MOVEM	T2,DIRDIR#	;SAVE STRUCTURE PPN
  3820	007317'	200 02 0 00 016406'		MOVE	T2,GTJDEV	;GET STRUCTURE NAME
  3821	007320'	202 02 0 00 005405'		MOVEM	T2,DIRDEV
  3822	007321'	202 02 0 00 005423'		MOVEM	T2,DATDEV	;SAVE IT
  3823	007322'	200 01 0 00 015052'		MOVE	T1,[0,,DIRDEV]	;STATUS AT LOC+0
  3824
  3825	007323'	047 01 0 00 000045 		DSKCHR	T1,
  3826	007324'	260 17 0 00 015060'		ERR	<DEVICE SELECTION ERROR>
  3827
  3828	007325'	135 02 0 00 015062'		LDB	T2,[POINT 6,T1,26];GET BITS 21-26
  3829	007326'	275 02 0 00 000005 		SUBI	T2,5		;5=RH10/RH20 CTR
  3830	007327'	322 02 0 00 007331'		JUMPE	T2,.+2		;IT'S RH10/RH20 CTR
  3831	007330'	260 17 0 00 015071'		ERR	<NOT AN RH10/RH20 CONTROLLER>
  3832
  3833	007331'	402 00 0 00 021064'		SETZM	RM03F
  3834	007332'	135 02 0 00 015073'		LDB	T2,[POINT 3,T1,32]
  3835	007333'	202 02 0 00 021037'		MOVEM	T2,DSKTYP
  3836	007334'	306 02 0 00 000000 		CAIN	T2,.DCUR4
  3837	007335'	254 00 0 00 007343'		JRST	CTLROK
  3838	007336'	306 02 0 00 000001 		CAIN	T2,.DCUR6
  3839	007337'	254 00 0 00 007343'		JRST	CTLROK
  3840	007340'	306 02 0 00 000002 		CAIN	T2,.DCUR3
  3841						JRST	[SETOM	RM03F
  3842	007341'	254 00 0 00 015074'			 JRST CTLROK]
  3843	007342'	260 17 0 00 015104'		ERR	<NOT AN RP04/RP06/RM03 DISK>
  3844
  3845	007343'	200 01 0 00 015106'	CTLROK:	MOVE	T1,[16,,DIRDEV]	;PHYNAME AT LOC+15
  3846
  3847	007344'	047 01 0 00 000045 		DSKCHR	T1,		;GET PHY DEVICE NAME
  3848	007345'	260 17 0 00 015060'		ERR	<DEVICE SELECTION ERROR>
  3849
  3850	007346'	200 01 0 00 015107'		MOVE	T1,[16,,DATDEV]
  3851
  3852	007347'	047 01 0 00 000045 		DSKCHR	T1,
  3853	007350'	260 17 0 00 015060'		ERR	<DEVICE SELECTION ERROR>
  3854
  3855	007351'	201 00 0 00 000001 	USRHPQ:	MOVEI	1
  3856	007352'	047 00 0 00 000071 		HPQ			;SET HI-PRI RUN Q
  3857	007353'	255 00 0 00 000000 		 JFCL
  3858
  3859	007354'	201 00 0 00 007360'	USRHDQ:	MOVEI	HDQ		;SET HI-PRI DISK Q
  3860	007355'	047 00 0 00 000121 		DISK.
  3861	007356'	255 00 0 00 000000 		 JFCL
  3862	007357'	254 00 0 00 007361'		JRST	.+2
  3863	007360'	000003	777777		HDQ:	3,,-1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 102
SMFILE	MAC	19-Feb-79 10:46		SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY                                       SEQ 0141

  3864	007361'	260 17 0 00 007434'		GO	OPNHOM		;OPEN WITH HOM CHANNEL
  3865	007362'	260 17 0 00 015114'		ERR	<HOM CHN OPEN ERROR>
  3866
  3867	007363'	201 03 0 00 000001 		MOVEI	T3,HMBK01	;GET HOME BLK #1
  3868	007364'	260 17 0 00 007442'		GO	RADHOM
  3869	007365'	260 17 0 00 015123'		ERR	<HOME BLOCK #1 READ ERROR>
  3870
  3871	007366'	200 01 0 00 005544'		MOVE	T1,HOMBUF+103
  3872	007367'	202 01 0 00 021030'		MOVEM	T1,BTADDR	;SAVE ORIGINAL 8080 POINTER
  3873
  3874	007370'	200 02 0 00 005542'		MOVE	B,HOMBUF+101	;GET DISK ADDRESS
  3875	007371'	202 02 0 00 021031'		MOVEM	B,BTLADR#
  3876
  3877	007372'	200 03 0 00 005543'		MOVE	C,HOMBUF+102	;GET LENGTH IN SECTORS
  3878	007373'	202 03 0 00 021032'		MOVEM	C,BTLPAG#
  3879
  3880	007374'	322 02 0 00 007530'		JUMPE	B,CRESTR	;NO CURRENT KS10FE.BIN
  3881
  3882	007375'	260 17 0 00 007065'	CREST1:	GO	OPNDAT
  3883	007376'	254 00 0 00 007530'		JRST	CRESTR		;REALLY NOT THERE
  3884
  3885	007377'	200 01 0 00 006746'		MOVE	T1,ODAT10+.RBALC
  3886	007400'	305 01 0 00 000161 		CAIGE	T1,<^D28*^D4>+1
  3887	007401'	260 17 0 00 015132'		ERR	<KS10FE.BIN WRONG SIZE>
  3888
  3889	007402'	074 01 0 00 000000 		USETI	DAT,PRIME	;GET LOGICAL BLK # OF 1ST BLK
  3890
  3891						IN	DAT,[IOWD 200,GETBUF
  3892	007403'	056 01 0 00 015134'			     0]
  3893	007404'	334 00 0 00 000000 		SKIPA
  3894	007405'	260 17 0 00 015143'		ERR	<PRIME RIB READ ERROR>
  3895	007406'	260 17 0 00 007521'		GO	GOARND+4
  3896
  3897	007407'	312 01 0 00 021031'		CAME	T1,BTLADR	;HOME BLOCK & FILE AGREE ?
  3898	007410'	260 17 0 00 015157'		ERR	<KS10FE.BIN HOME BLOCK & FILE ADDRESSES DIFFER>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 103
SMFILE	MAC	19-Feb-79 10:46		SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY                                       SEQ 0142

  3899
  3900	007411'	074 01 0 00 000001 		USETI	DAT,1		;SELECT 1ST PAGE
  3901
  3902	007412'	201 05 0 00 000034 		MOVEI	T5,^D28
  3903	007413'	200 04 0 00 015161'		MOVE	T4,[IPAG,,FEDIR]
  3904	007414'	201 03 0 00 400777 		MOVEI	T3,FEDIR+777
  3905
  3906					CREST2:	IN	DAT,[IOWD ^D512,IPAG
  3907	007415'	056 01 0 00 014366'			    0]
  3908	007416'	254 00 0 00 007425'		JRST	CREST3
  3909
  3910	007417'	062 01 0 00 000001 		GETSTS	DAT,T1
  3911	007420'	602 01 0 00 740000 		TRNE	T1,74B23	;ANY ERRORS
  3912	007421'	260 17 0 00 015167'		ERR	<KS10FE.BIN READ ERROR>
  3913	007422'	606 01 0 00 020000 		TRNN	T1,1B22		;END OF FILE ?
  3914	007423'	260 17 0 00 014776'		ERR	<SHOULD NEVER HAPPEN>
  3915	007424'	254 00 0 00 001654'		JRST	WRTSEX
  3916
  3917	007425'	200 01 0 00 000004 	CREST3:	MOVE	T1,T4
  3918	007426'	200 02 0 00 000003 		MOVE	T2,T3
  3919	007427'	251 01 0 02 000000 		BLT	T1,(T2)		;TRANSFER TO HI-CORE
  3920
  3921	007430'	271 04 0 00 001000 		ADDI	T4,^D512
  3922	007431'	271 03 0 00 001000 		ADDI	T3,^D512
  3923	007432'	367 05 0 00 007415'		SOJG	T5,CREST2
  3924
  3925	007433'	254 00 0 00 001654'		JRST	WRTSEX
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 104
SMFILE	MAC	19-Feb-79 10:46		SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY                                       SEQ 0143

  3926					;*OPNHOM - ROUTINE TO OPEN THE DISK ON CHANNEL 'HOM'
  3927
  3928	007434'	201 05 0 00 000017 	OPNHOM:	MOVEI	T5,.IODMP	;OPEN IN DUMP MODE
  3929	007435'	200 06 0 00 005422'		MOVE	T6,DSKUPN	;GET DEVICE NAME
  3930	007436'	201 07 0 00 000000 		MOVEI	T7,0
  3931
  3932	007437'	050 05 0 00 000005 		OPEN	HOM,T5
  3933	007440'	263 17 0 00 000000 		  RTN			;ERROR RETURN
  3934
  3935	007441'	254 00 0 00 000016'		JRST	CPOPJ1		;GOOD RETURN
  3936
  3937					;*RADHOM - ROUTINE TO READ A BLOCK ON CHANNEL 'HOM'
  3938
  3939	007442'	400 01 0 00 000000 	RADHOM:	SETZ	T1,
  3940	007443'	201 02 0 00 000005 		MOVEI	T2,HOM
  3941	007444'	137 02 0 00 015171'		DPB	T2,[POINT 4,T1,12]	;PUT CHANNEL IN ARG REG.
  3942	007445'	137 03 0 00 015172'		DPB	T3,[POINT 23,T1,35]	;PUT BLK NO IN ARG REG
  3943
  3944	007446'	047 01 0 00 000146 		SUSET.	T1,		;INSERT BLOCK NUMBER
  3945	007447'	260 17 0 00 015177'		ERR	<SUSET. UUO FAILURE>
  3946
  3947	007450'	056 05 0 00 005371'		IN	HOM,HOMLST	;BRING IN THE DIRECTORY BLOCK
  3948	007451'	254 00 0 00 000016'		  JRST	CPOPJ1		;GOOD RETURN
  3949
  3950	007452'	263 17 0 00 000000 		RTN			;BAD RETURN
  3951
  3952					;*WHOM10 - ROUTINE TO WRITE A BLOCK ON CHANNEL 'HOM'
  3953
  3954	007453'	205 01 0 00 200000 	WHOM10:	MOVSI	T1,SU.SOT	;OUTPUT BIT
  3955	007454'	201 02 0 00 000005 		MOVEI	T2,HOM
  3956	007455'	137 02 0 00 015171'		DPB	T2,[POINT 4,T1,12]	;PUT CHANNEL IN ARG REG.
  3957	007456'	137 03 0 00 015172'		DPB	T3,[POINT 23,T1,35]	;PUT BLK NO IN ARG REG
  3958
  3959	007457'	047 01 0 00 000146 		SUSET.	T1,
  3960	007460'	260 17 0 00 015177'		ERR	<SUSET. UUO FAILURE>
  3961
  3962	007461'	057 05 0 00 005371'		OUT	HOM,HOMLST	;OUTPUT HOME BLOCK
  3963	007462'	254 00 0 00 000016'		  JRST	CPOPJ1		;GOOD RETURN
  3964
  3965	007463'	263 17 0 00 000000 		RTN			;ERROR RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 105
SMFILE	MAC	19-Feb-79 10:46		SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY                                       SEQ 0144

  3966					;*OPWCDP - ROUTINE TO OPEN IN DUMP MODE TO WRITE
  3967
  3968	007464'	201 01 0 00 000017 	OPWCDP:	MOVEI	T1,.IODMP	;DUMP MODE
  3969	007465'	200 02 0 00 005422'		MOVE	T2,DSKUPN	;DEVICE NAME
  3970	007466'	402 00 0 00 000003 		SETZM	T3
  3971
  3972	007467'	050 03 0 00 000001 		OPEN	WC,T1		;OPEN FOR  OUTPUT
  3973	007470'	263 17 0 00 000000 		  RTN			;ERROR RETURN
  3974
  3975	007471'	254 00 0 00 000016'		JRST	CPOPJ1		;GOOD RETURN
  3976
  3977					;*OPRCDP - ROUTINE TO OPEN IN DUMP MODE TO READ
  3978
  3979	007472'	201 01 0 00 000017 	OPRCDP:	MOVEI	T1,.IODMP	;USE DUMP MODE INPUT
  3980	007473'	200 02 0 00 005422'		MOVE	T2,DSKUPN	;GET DEVICE NAME
  3981	007474'	402 00 0 00 000003 		SETZM	T3		;NO BUFFER
  3982
  3983	007475'	050 02 0 00 000001 		OPEN	RC,T1
  3984	007476'	263 17 0 00 000000 		  RTN			;ERROR RETURN
  3985
  3986	007477'	254 00 0 00 000016'		JRST	CPOPJ1		;GOOD RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 106
SMFILE	MAC	19-Feb-79 10:46		SPECIFY DEVICE FILE STRUCTURE FOR  DIRECTORY                                       SEQ 0145

  3987					;*GETBLK - ROUTINE TO GET THE LOGICAL BLOCK NUMBER OF THE
  3988					;*	   FIRST BLOCK OF A FILE IN THE TOPS-10 FILE SYSTEM.
  3989					;*
  3990					;*CALL:		GO	GETBK1
  3991					;*		OR
  3992					;*		GO	GETBK2
  3993					;*		RETURN WITH BLOCK # IN T1
  3994
  3995	007500'	260 17 0 00 007472'	GETBK1:	GO	OPRCDP		;USE DUMP MODE INPUT
  3996	007501'	260 17 0 00 015206'		ERR	<DUMP MODE OPEN ERROR>
  3997
  3998	007502'	201 01 0 00 000017 		MOVEI	T1,17		;GET # OF ARGUMENTS
  3999	007503'	202 01 0 00 006661'		MOVEM	T1,LOOK10	;SAVE # OF ARGS IN LOOKUP BLK
  4000
  4001	007504'	076 02 0 00 006661'		LOOKUP	RC,LOOK10	;LOOKUP THE FILE
  4002	007505'	260 17 0 00 015214'		ERR	<CAN'T FIND FILE>
  4003
  4004	007506'	254 00 0 00 007515'		JRST	GOARND		;GO AROUND
  4005
  4006	007507'	260 17 0 00 007472'	GETBK2:	GO	OPRCDP		;USE DUMP MODE INPUT
  4007	007510'	260 17 0 00 015206'		ERR	<DUMP MODE OPEN ERROR>
  4008
  4009	007511'	201 01 0 00 000017 		MOVEI	T1,17		;GET # OF ARGUMENTS
  4010	007512'	202 01 0 00 006707'		MOVEM	T1,ENTBLK	;SAVE IT
  4011
  4012	007513'	076 02 0 00 006707'		LOOKUP	RC,ENTBLK	;LOOKUP THE OUTPUT FILE
  4013	007514'	260 17 0 00 015214'		ERR	<CAN'T FIND FILE>
  4014
  4015	007515'	074 02 0 00 000000 	GOARND:	USETI	RC,PRIME	;SET UP TO READ PRIME RIB
  4016
  4017						IN	RC,[IOWD 200,GETBUF
  4018	007516'	056 02 0 00 015134'			    0 ]		;READ THE PRIME RIB
  4019	007517'	334 00 0 00 000000 		SKIPA
  4020	007520'	260 17 0 00 015143'		ERR	<PRIME RIB READ ERROR>
  4021
  4022	007521'	550 01 0 00 006056'		HRRZ	T1,GETBUF	;GET ADDRESS OF 1ST POINTER
  4023	007522'	201 01 0 01 006057'		MOVEI	T1,GETBUF+1(T1)	;GET SECOND POINTER
  4024	007523'	500 01 0 00 005461'		HLL	T1,HOMCLP	;FORM BYTE POINTER
  4025	007524'	135 01 0 00 000001 		LDB	T1,T1		;GET ADDRESS POINTER
  4026	007525'	220 01 0 00 005462'		IMUL	T1,HOMBPC	;COMPUTE RIB LOGICAL BLOCK #
  4027	007526'	271 01 0 00 000001 		ADDI	T1,1		;COMPUTE # OF DATA BLOCK 1
  4028	007527'	263 17 0 00 000000 		RTN			;RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 107
SMFILE	MAC	19-Feb-79 10:46		ROUTINE TO CREATE KS10FE.BIN FILE                                                  SEQ 0146

  4029					SUBTTL	ROUTINE TO CREATE KS10FE.BIN FILE
  4030					;	===========================================
  4031
  4032	007530'	200 01 0 00 016406'	CRESTR:	MOVE	T1,GTJDEV
  4033	007531'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  4034
  4035	007532'	200 01 0 00 016410'		MOVE	T1,GTJFIL
  4036	007533'	202 01 0 00 006043'		MOVEM	T1,O.NAM1
  4037
  4038	007534'	200 01 0 00 016411'		MOVE	T1,GTJEXT
  4039	007535'	202 01 0 00 006044'		MOVEM	T1,O.EXT
  4040
  4041	007536'	200 01 0 00 016407'		MOVE	T1,GTJDIR
  4042	007537'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  4043
  4044	007540'	201 01 0 00 000577 		MOVEI	T1,577		;SET PROTECTION 577
  4045	007541'	202 01 0 00 006045'		MOVEM	T1,O.PRT
  4046
  4047	007542'	402 00 0 00 006047'		SETZM	O.DATE
  4048	007543'	402 00 0 00 006050'		SETZM	O.TIME
  4049	007544'	402 00 0 00 006051'		SETZM	O.VER
  4050
  4051	007545'	201 01 0 00 000160 		MOVEI	T1,^D28*^D4
  4052	007546'	202 01 0 00 021065'		MOVEM	T1,S.ALO#
  4053
  4054	007547'	260 17 0 00 007160'		GO	ETER10		;ENTER FILE
  4055	007550'	260 17 0 00 015224'		ERR	<ERROR CREATING KS10FE.BIN>
  4056
  4057	007551'	070 03 0 00 000004 		CLOSE	WC,CL.DLL	;CLOSE WRITE CHANNEL
  4058	007552'	071 03 0 00 000000 		RELEAS	WC,
  4059
  4060					;*GET DISK DIRECTORY ADDRESS, PUT IN HOME BLOCK
  4061
  4062	007553'	260 17 0 00 007507'		GO	GETBK2		;GET 1ST BLOCK FROM -10
  4063	007554'	202 01 0 00 021031'		MOVEM	T1,BTLADR
  4064
  4065	007555'	200 07 0 00 021031'		MOVE	T7,BTLADR
  4066	007556'	201 06 0 00 021030'		MOVEI	T6,BTADDR
  4067	007557'	260 17 0 00 005020'		GO	T8080P		;COMPUTE 8080 POINTER
  4068
  4069	007560'	200 00 0 00 021031'		MOVE	BTLADR		;SET LOGICAL ADDRESS
  4070	007561'	202 00 0 00 005542'		MOVEM	HOMBUF+101
  4071	007562'	201 00 0 00 000160 		MOVEI	^D28*^D4	;SET LENGTH IN SECTORS
  4072	007563'	202 00 0 00 021032'		MOVEM	BTLPAG
  4073	007564'	202 00 0 00 005543'		MOVEM	HOMBUF+102
  4074	007565'	200 00 0 00 021030'		MOVE	BTADDR		;SET 8080 ADDRESS
  4075	007566'	202 00 0 00 005544'		MOVEM	HOMBUF+103
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 108
SMFILE	MAC	19-Feb-79 10:46		ROUTINE TO CREATE KS10FE.BIN FILE                                                  SEQ 0147

  4076					;*WRITE OUT HOME BLOCK #1
  4077
  4078	007567'	201 03 0 00 000001 		MOVEI	T3,HMBK01		;HOME BLOCK # 1
  4079	007570'	260 17 0 00 007453'		GO	WHOM10			;WRITE IT
  4080	007571'	260 17 0 00 015234'		ERR	<HOME BLOCK #1 WRITE ERROR>
  4081
  4082					;*HERE TO UPDATE AND WRITE OUT HOME BLOCK # 10
  4083
  4084	007572'	201 03 0 00 000012 		MOVEI	T3,HMBK10		;GET BLOCK # FOR HOBK10
  4085	007573'	400 01 0 00 000000 		SETZ	T1,
  4086	007574'	201 02 0 00 000005 		MOVEI	T2,HOM
  4087	007575'	137 02 0 00 015171'		DPB	T2,[POINT 4,T1,12]	;PUT CHANNEL IN ARG REG.
  4088	007576'	137 03 0 00 015172'		DPB	T3,[POINT 23,T1,35]	;PUT BLK NO IN ARG REG
  4089
  4090	007577'	047 01 0 00 000146 		SUSET.	T1,
  4091	007600'	260 17 0 00 015177'		ERR	<SUSET. UUO FAILURE>
  4092
  4093	007601'	056 05 0 00 005377'		IN	HOM,H10LST		;BRING IN HOME BLK #10
  4094	007602'	254 00 0 00 007604'		JRST	.+2			;READ OK
  4095
  4096	007603'	260 17 0 00 015244'		ERR	<HOME BLOCK #10 READ ERROR>
  4097
  4098	007604'	200 00 0 00 021031'		MOVE	BTLADR		;SET LOGICAL ADDRESS
  4099	007605'	202 00 0 00 005742'		MOVEM	HOMB10+101
  4100	007606'	200 00 0 00 021032'		MOVE	BTLPAG		;SET LENGTH IN PAGES
  4101	007607'	202 00 0 00 005743'		MOVEM	HOMB10+102
  4102	007610'	200 00 0 00 021030'		MOVE	BTADDR		;SET 8080 ADDRESS
  4103	007611'	202 00 0 00 005744'		MOVEM	HOMB10+103
  4104
  4105	007612'	205 01 0 00 200000 		MOVSI	T1,SU.SOT		;SET OUTPUT BIT
  4106	007613'	201 02 0 00 000005 		MOVEI	T2,HOM
  4107	007614'	137 02 0 00 015171'		DPB	T2,[POINT 4,T1,12]	;PUT CHANNEL IN ARG REG.
  4108	007615'	137 03 0 00 015172'		DPB	T3,[POINT 23,T1,35]	;PUT BLK NO IN ARG REG
  4109
  4110	007616'	047 01 0 00 000146 		SUSET.	T1,
  4111	007617'	260 17 0 00 015177'		ERR	<SUSET. UUO FAILURE>
  4112
  4113	007620'	057 05 0 00 005377'		OUT	HOM,H10LST		;OUTPUT HMBK10
  4114	007621'	334 00 0 00 000000 		SKIPA
  4115
  4116	007622'	260 17 0 00 015254'		ERR	<HOME BLOCK #10 WRITE ERROR>
  4117
  4118	007623'	070 04 0 00 000000 		CLOSE	DIR,			;CLOSE DIR CHANNEL
  4119	007624'	070 05 0 00 000000 		CLOSE	HOM,			;CLOSE HOM CHANNEL
  4120	007625'	254 00 0 00 007375'		JRST	CREST1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 109
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0148

  4121					SUBTTL	PROCESS ".ULD" MICROCODE
  4122
  4123	007626'	201 01 0 00 012633'	RDULD:	MOVEI	T1,RDULDT
  4124	007627'	202 01 0 00 021160'		MOVEM	T1,CTADR
  4125	007630'	332 00 0 00 021027'		SKIPE	BC1FLG
  4126	007631'	254 00 0 00 007636'		JRST	.+5
  4127	007632'	402 00 0 00 401000 		SETZM	CRAM
  4128	007633'	200 00 0 00 015256'		MOVE	[CRAM,,CRAM+1]
  4129	007634'	251 00 0 00 414777 		BLT	CRAM+13777	;CLEAR MICROCODE STORE
  4130	007635'	254 00 0 00 007641'		JRST	.+4
  4131	007636'	402 00 0 00 417000 		SETZM	CRMBC1
  4132	007637'	200 00 0 00 015257'		MOVE	[CRMBC1,,CRMBC1+1]
  4133	007640'	251 00 0 00 432777 		BLT	CRMBC1+13777
  4134
  4135	007641'	402 00 0 00 021173'		SETZM	IBF+1
  4136	007642'	336 00 0 00 000302'		SKIPN	MONTYP
  4137	007643'	254 00 0 00 007651'		JRST	READ.1
  4138
  4139	007644'	554 01 0 00 021162'		HLRZ	T1,UCFILE
  4140	007645'	200 02 0 00 014104'		MOVE	T2,[1,,.FBBYV]
  4141	007646'	201 03 0 00 021051'		MOVEI	T3,INCNT#
  4142	007647'	104 00 0 00 000063 		GTFDB			;GET FILE PAGE COUNT
  4143	007650'	553 00 0 00 021051'		HRRZS	INCNT
  4144
  4145	007651'	260 17 0 00 010156'	READ.1:	GO	RDEOL
  4146	007652'	260 17 0 00 010162'		GO	RDBYTE
  4147	007653'	306 01 0 00 000105 		CAIN	T1,"E"
  4148	007654'	254 00 0 00 007756'		JRST	READ.5
  4149	007655'	302 01 0 00 000133 		CAIE	T1,"["
  4150	007656'	254 00 0 00 007651'		JRST	READ.1
  4151	007657'	201 06 0 00 000000 		MOVEI	T6,0
  4152
  4153	007660'	260 17 0 00 010162'	READ.2:	GO	RDBYTE
  4154	007661'	306 01 0 00 000135 		CAIN	T1,"]"
  4155	007662'	254 00 0 00 007667'		JRST	READ.3
  4156	007663'	275 01 0 00 000060 		SUBI	T1,"0"
  4157	007664'	242 06 0 00 000003 		LSH	T6,3
  4158	007665'	270 06 0 00 000001 		ADD	T6,T1
  4159	007666'	254 00 0 00 007660'		JRST	READ.2
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 110
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0149

  4160
  4161	007667'	260 17 0 00 010162'	READ.3:	GO	RDBYTE
  4162	007670'	302 01 0 00 000075 		CAIE	T1,"="
  4163	007671'	260 17 0 00 015267'		ERR	<MICROCODE IS NOT IN CORRECT FORMAT>
  4164	007672'	202 06 0 00 021063'		MOVEM	T6,RDULT6#
  4165	007673'	221 06 0 00 000003 		IMULI	T6,3
  4166	007674'	336 00 0 00 021027'		SKIPN	BC1FLG
  4167	007675'	271 06 0 00 401000 		ADDI	T6,CRAM
  4168	007676'	332 00 0 00 021027'		SKIPE	BC1FLG
  4169	007677'	271 06 0 00 417000 		ADDI	T6,CRMBC1
  4170	007700'	202 06 0 00 021033'		MOVEM	T6,CRAMT6#
  4171
  4172	007701'	200 04 0 00 015271'	RDULIN:	MOVE	T4,[POINT 3,ULDSTR]
  4173	007702'	201 05 0 00 000044 		MOVEI	T5,^D36
  4174
  4175	007703'	260 17 0 00 010162'		GO	RDBYTE
  4176	007704'	136 01 0 00 000004 		IDPB	T1,T4
  4177
  4178	007705'	367 05 0 00 007703'		SOJG	T5,RDULIN+2
  4179
  4180	007706'	400 10 0 00 000000 	KSSHF3:	SETZ	AC10,
  4181	007707'	403 11 0 00 000012 		SETZB	AC11,AC12
  4182
  4183	007710'	200 07 0 00 015272'		MOVE	T7,[-^D108,,KSCRMP]
  4184
  4185	007711'	200 14 0 00 015273'		MOVE	STPNTR,[POINT 1,ULDSTR]
  4186	007712'	200 00 0 00 015274'		MOVE	0,[ILDB	T6,STPNTR]
  4187	007713'	200 01 0 00 015275'		MOVE	T1,[DPB	T6,(T7)]
  4188	007714'	200 02 0 00 015276'		MOVE	T2,[AOBJN T7,0]
  4189	007715'	200 03 0 00 015277'		MOVE	T3,[JRST KSSHF4]
  4190	007716'	254 00 0 00 000000 		JRST	0
  4191
  4192	007717'	260 17 0 00 007721'	KSSHF4:	GO	KSXX		;COMPUTE PARITY
  4193	
  4194	007720'	254 00 0 00 007651'		JRST	READ.1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 111
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0150

  4195					;*KSXX, CRAM PARITY COMPUTE SUBROUTINE
  4196
  4197	007721'	200 14 0 00 015300'	KSXX:	MOVE	STPNTR,[POINT 1,AC10]
  4198	007722'	201 00 0 00 000044 		MOVEI	0,^D36
  4199	007723'	400 01 0 00 000000 		SETZ	T1,
  4200	007724'	200 02 0 00 015274'		MOVE	T2,[ILDB T6,STPNTR]
  4201	007725'	200 03 0 00 015301'		MOVE	T3,[ADD T1,T6]
  4202	007726'	200 04 0 00 015302'		MOVE	T4,[SOJG 0,T2]
  4203	007727'	200 05 0 00 015303'		MOVE	T5,[JRST KSXX1]
  4204	007730'	254 00 0 00 000002 		JRST	T2		;COMPUTE CRAM PARITY "CRA"
  4205
  4206	007731'	650 01 0 00 016570'	KSXX1:	TDC	T1,PARFLG
  4207	007732'	137 01 0 00 010154'		DPB	T1,PB.CRA
  4208
  4209	007733'	201 00 0 00 000074 		MOVEI	0,^D60
  4210	007734'	400 01 0 00 000000 		SETZ	T1,
  4211	007735'	200 05 0 00 015304'		MOVE	T5,[JRST KSXX2]
  4212	007736'	254 00 0 00 000002 		JRST	T2		;COMPUTE CRAM PARITY "CRM"
  4213
  4214	007737'	650 01 0 00 016570'	KSXX2:	TDC	T1,PARFLG
  4215	007740'	137 01 0 00 010155'		DPB	T1,PB.CRM
  4216
  4217	007741'	200 06 0 00 021033'		MOVE	T6,CRAMT6
  4218	007742'	200 01 0 00 000011 		MOVE	T1,AC11
  4219	007743'	200 02 0 00 000012 		MOVE	T2,AC12
  4220	007744'	246 01 0 00 777764 		LSHC	T1,-^D12
  4221	007745'	202 02 0 06 000000 		MOVEM	T2,(T6)		;STORE BITS 60-95
  4222
  4223	007746'	200 01 0 00 000010 		MOVE	T1,AC10
  4224	007747'	200 02 0 00 000011 		MOVE	T2,AC11
  4225	007750'	246 01 0 00 777764 		LSHC	T1,-^D12
  4226	007751'	202 02 0 06 000001 		MOVEM	T2,1(T6)	;STORE BITS 24-59
  4227
  4228	007752'	200 02 0 00 000010 		MOVE	T2,AC10
  4229	007753'	242 02 0 00 777764 		LSH	T2,-^D12
  4230	007754'	202 02 0 06 000002 		MOVEM	T2,2(T6)	;STORE BITS 0-23
  4231
  4232	007755'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 112
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0151

  4233 
  4234	007756'	260 17 0 00 010162'	READ.5:	GO	RDBYTE
  4235	007757'	302 01 0 00 000116 		CAIE	T1,"N"
  4236	007760'	254 00 0 00 007651'		JRST	READ.1
  4237	007761'	260 17 0 00 010162'		GO	RDBYTE
  4238	007762'	302 01 0 00 000104 		CAIE	T1,"D"
  4239	007763'	254 00 0 00 007651'		JRST	READ.1
  4240
  4241	007764'	476 00 0 00 016572'		SETOM	RDFLAG
  4242
  4243	007765'	336 00 0 00 000302'		SKIPN	MONTYP
  4244	007766'	254 00 0 00 007015'		JRST	R10EOF
  4245
  4246	007767'	474 01 0 00 000000 		SETO	T1,
  4247	007770'	200 02 0 00 015305'		MOVE	T2,[.FHSLF,,<IPAG_-^D9>]
  4248	007771'	400 03 0 00 000000 		SETZ	T3,
  4249
  4250	007772'	104 00 0 00 000056 		PMAP			;RELEASE LAST INPUT PAGE
  4251						ERJMP	[JSERR
  4252	007773'	320 16 0 00 014127'			 JRST	START]
  4253
  4254	007774'	554 01 0 00 021162'		HLRZ	T1,UCFILE
  4255	007775'	104 00 0 00 000022 		CLOSF
  4256	007776'	260 17 0 00 014746'		ERR	<CAN NOT CLOSE MICROCODE FILE>
  4257
  4258	007777'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 113
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0152

  4259					DEFINE	CRMBIT(BIT),<
  4260					  IFL BIT-^D36,<
  4261						POINT	1,AC10,BIT
  4262					  >
  4263					  IFGE BIT-^D36,<
  4264					    IFL BIT-^D72,<
  4265						POINT	1,AC11,BIT-^D36
  4266					    >
  4267					    IFGE BIT-^D72,<
  4268						POINT	1,AC12,BIT-^D72
  4269					    >
  4270					  >
  4271					>
  4272
  4273					DEFINE	CRMRNG(FROM,TO),<
  4274						ZZ..==FROM
  4275					  REPEAT TO-FROM+1,<
  4276						CRMBIT	\ZZ..
  4277						ZZ..==ZZ..+1
  4278					  >
  4279					>
  4280
  4281						RADIX	10
  4282	010000'	43 01 0 00 000010 	KSCRMP:	CRMRNG	0,11	;J
  4283	010001'	42 01 0 00 000010 
  4284	010002'	41 01 0 00 000010 
  4285	010003'	40 01 0 00 000010 
  4286	010004'	37 01 0 00 000010 
  4287	010005'	36 01 0 00 000010 
  4288	010006'	35 01 0 00 000010 
  4289	010007'	34 01 0 00 000010 
  4290	010010'	33 01 0 00 000010 
  4291	010011'	32 01 0 00 000010 
  4292	010012'	31 01 0 00 000010 
  4293	010013'	30 01 0 00 000010 
  4294	010014'	13 01 0 00 000011 		CRMRNG	60,68	;ALU LSRC RSRC
  4295	010015'	12 01 0 00 000011 
  4296	010016'	11 01 0 00 000011 
  4297	010017'	10 01 0 00 000011 
  4298	010020'	07 01 0 00 000011 
  4299	010021'	06 01 0 00 000011 
  4300	010022'	05 01 0 00 000011 
  4301	010023'	04 01 0 00 000011 
  4302	010024'	03 01 0 00 000011 
  4303	010025'	24 01 0 00 000012 		CRMRNG	87,89	;DEST
  4304	010026'	23 01 0 00 000012 
  4305	010027'	22 01 0 00 000012 
  4306	010030'	00 01 0 00 000012 		CRMBIT	107
  4307	010031'	00 01 0 00 000012 		CRMBIT	107
  4308	010032'	41 01 0 00 000012 		CRMRNG	74,77	;A
  4309	010033'	40 01 0 00 000012 
  4310	010034'	37 01 0 00 000012 
  4311	010035'	36 01 0 00 000012 
  4312
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 114
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0153

  4313	010036'	00 01 0 00 000012 		CRMBIT	107
  4314	010037'	00 01 0 00 000012 		CRMBIT	107
  4315	010040'	33 01 0 00 000012 		CRMRNG	80,83	;B
  4316	010041'	32 01 0 00 000012 
  4317	010042'	31 01 0 00 000012 
  4318	010043'	30 01 0 00 000012 
  4319	010044'	27 01 0 00 000012 		CRMRNG	84,86	;RAMADR
  4320	010045'	26 01 0 00 000012 
  4321	010046'	25 01 0 00 000012 
  4322	010047'	00 01 0 00 000012 		CRMBIT	107
  4323	010050'	43 01 0 00 000012 		CRMRNG	72,73	;DBUS
  4324	010051'	42 01 0 00 000012 
  4325	010052'	02 01 0 00 000011 		CRMRNG	69,71	;DBM
  4326	010053'	01 01 0 00 000011 
  4327	010054'	00 01 0 00 000011 
  4328	010055'	35 01 0 00 000012 		CRMBIT	78	;DP CLOCK L
  4329	010056'	25 01 0 00 000011 		CRMBIT	50	;PAR EN L
  4330	010057'	17 01 0 00 000012 		CRMBIT	92	;PAR CK L
  4331	010060'	34 01 0 00 000012 		CRMBIT	79	;DP CLOCK R
  4332	010061'	24 01 0 00 000011 		CRMBIT	51	;PAR EN R
  4333	010062'	16 01 0 00 000012 		CRMBIT	93	;PAR CK R
  4334	010063'	21 01 0 00 000010 		CRMRNG	18,20	;SPEC
  4335	010064'	20 01 0 00 000010 
  4336	010065'	17 01 0 00 000010 
  4337	010066'	05 01 0 00 000010 		CRMRNG	30,32
  4338	010067'	04 01 0 00 000010 
  4339	010070'	03 01 0 00 000010 
  4340	010071'	16 01 0 00 000010 		CRMRNG	21,23	;DISP
  4341	010072'	15 01 0 00 000010 
  4342	010073'	14 01 0 00 000010 
  4343	010074'	10 01 0 00 000010 		CRMRNG	27,29
  4344	010075'	07 01 0 00 000010 
  4345	010076'	06 01 0 00 000010 
  4346	010077'	24 01 0 00 000010 		CRMRNG	15,17	;SKIP
  4347	010100'	23 01 0 00 000010 
  4348	010101'	22 01 0 00 000010 
  4349	010102'	02 01 0 00 000010 		CRMRNG	33,35
  4350	010103'	01 01 0 00 000010 
  4351	010104'	00 01 0 00 000010 
  4352	010105'	00 01 0 00 000012 		CRMBIT	107
  4353	010106'	27 01 0 00 000010 		CRMRNG	12,13	;T
  4354	010107'	26 01 0 00 000010 
  4355	010110'	12 01 0 00 000010 		CRMBIT	25	;CRY 38
  4356	010111'	21 01 0 00 000012 		CRMRNG	90,91	;SC & FE
  4357	010112'	20 01 0 00 000012 
  4358	010113'	27 01 0 00 000011 		CRMBIT	48	;FM WRITE
  4359	010114'	11 01 0 00 000010 		CRMBIT	26	;MEM
  4360	010115'	23 01 0 00 000011 		CRMRNG	52,53	;DIVIDE AND MULTI PREC
  4361	010116'	22 01 0 00 000011 
  4362	010117'	26 01 0 00 000011 		CRMBIT	49	;MULTI SHIFT
  4363	010120'	25 01 0 00 000010 		CRMBIT	14	;CALL
  4364
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 115
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0154

  4365	010121'	00 01 0 00 000012 		CRMBIT	107
  4366	010122'	00 01 0 00 000012 		CRMBIT	107
  4367	010123'	00 01 0 00 000012 		CRMBIT	107
  4368	010124'	00 01 0 00 000012 		CRMBIT	107
  4369	010125'	00 01 0 00 000012 		CRMBIT	107
  4370	010126'	00 01 0 00 000012 		CRMBIT	107
  4371	010127'	00 01 0 00 000012 		CRMBIT	107
  4372	010130'	00 01 0 00 000012 		CRMBIT	107
  4373	010131'	00 01 0 00 000012 		CRMBIT	107
  4374	010132'	21 01 0 00 000011 		CRMRNG	54,59	; #
  4375	010133'	20 01 0 00 000011 
  4376	010134'	17 01 0 00 000011 
  4377	010135'	16 01 0 00 000011 
  4378	010136'	15 01 0 00 000011 
  4379	010137'	14 01 0 00 000011 
  4380	010140'	43 01 0 00 000011 		CRMRNG	36,47
  4381	010141'	42 01 0 00 000011 
  4382	010142'	41 01 0 00 000011 
  4383	010143'	40 01 0 00 000011 
  4384	010144'	37 01 0 00 000011 
  4385	010145'	36 01 0 00 000011 
  4386	010146'	35 01 0 00 000011 
  4387	010147'	34 01 0 00 000011 
  4388	010150'	33 01 0 00 000011 
  4389	010151'	32 01 0 00 000011 
  4390	010152'	31 01 0 00 000011 
  4391	010153'	30 01 0 00 000011 
  4392
  4393	010154'	13 01 0 00 000010 	PB.CRA:	CRMBIT	24
  4394	010155'	15 01 0 00 000012 	PB.CRM:	CRMBIT	94
  4395						RADIX	8
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 116
SMFILE	MAC	19-Feb-79 10:46		PROCESS ".ULD" MICROCODE                                                           SEQ 0155

  4396					;*SUBROUTINE TO FILE END OF LINE
  4397					;*CALL WITH:
  4398					;*	GO	RDEOL
  4399					;*	RETURN HERE
  4400
  4401	010156'	260 17 0 00 010162'	RDEOL:	GO	RDBYTE
  4402	010157'	306 01 0 00 000012 		CAIN	T1,12
  4403	010160'	263 17 0 00 000000 		RTN
  4404	010161'	254 00 0 00 010156'		JRST	RDEOL
  4405
  4406	010162'	373 00 0 00 021173'	RDBYTE:	SOSLE	IBF+1
  4407	010163'	254 00 0 00 010166'		JRST	.+3
  4408	010164'	260 17 0 00 010171'		GO	RDUINP		;GET NEXT FILE PAGE
  4409	010165'	260 17 0 00 015312'		ERR	<MICROCODE ERROR EOF>
  4410
  4411	010166'	134 01 0 00 021172'		ILDB	T1,IBF		;GET FILE BYTE
  4412	010167'	322 01 0 00 010162'		JUMPE	T1,RDBYTE	;IGNORE NULLS
  4413
  4414	010170'	263 17 0 00 000000 		RTN
  4415
  4416	010171'	336 00 0 00 000302'	RDUINP:	SKIPN	MONTYP
  4417	010172'	254 00 0 00 010211'		JRST	RDUI10
  4418	010173'	375 00 0 00 021051'		SOSGE	INCNT		;COUNT DOWN PAGE COUNT
  4419	010174'	263 17 0 00 000000 		RTN			;NONE LEFT, EOF
  4420
  4421	010175'	200 01 0 00 021162'		MOVE	T1,UCFILE
  4422	010176'	200 02 0 00 015314'		MOVE	T2,[.FHSLF,,<IPAG_-^D9>]
  4423	010177'	400 03 0 00 000000 		SETZ	T3,
  4424
  4425	010200'	104 00 0 00 000056 		PMAP			;GET NEXT FILE PAGE
  4426						ERJMP	[JSERR
  4427	010201'	320 16 0 00 014127'			 JRST	START]
  4428
  4429	010202'	201 00 0 00 005000 		MOVEI	1000*5
  4430	010203'	202 00 0 00 021173'		MOVEM	IBF+1		;SET BYTE COUNT
  4431
  4432	010204'	200 00 0 00 015315'		MOVE	[POINT 7,IPAG]
  4433	010205'	202 00 0 00 021172'		MOVEM	IBF		;SET BYTE POINTER
  4434
  4435	010206'	350 00 0 00 021162'		AOS	UCFILE		;INCREMENT FILE PAGE NUMBER
  4436	010207'	350 00 0 17 000000 		AOS	(P)
  4437	010210'	263 17 0 00 000000 		RTN
  4438
  4439	010211'	260 17 0 00 006764'	RDUI10:	GO	GET10
  4440	010212'	202 03 0 00 021062'		MOVEM	T3,RDUIBF#
  4441	010213'	335 00 0 00 021040'		SKIPGE	EOFSW
  4442	010214'	263 17 0 00 000000 		RTN
  4443	010215'	201 00 0 00 000005 		MOVEI	5
  4444	010216'	202 00 0 00 021173'		MOVEM	IBF+1
  4445	010217'	200 00 0 00 015316'		MOVE	[POINT 7,RDUIBF]
  4446	010220'	202 00 0 00 021172'		MOVEM	IBF
  4447	010221'	350 00 0 17 000000 		AOS	(P)
  4448	010222'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 117
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0156

  4449					SUBTTL	COMMANDS -- OUTPUT
  4450
  4451	010223'	000004	000004			SCMTAB	OUTCMD
  4452	010224'	013547'	010244'			CMTAB	BC1,OUTBC1
  4453	010225'	013550'	010246'			CMTAB	CRAM,OUTRAM
  4454	010226'	015317'	010373'			CMTAB	MTBOOT,OUTMT
  4455	010227'	014734'	010246'			CMTAB	RAM,OUTRAM
  4456						ECMTAB
  4457
  4458	010230'				OUTX:	CMD	[FLDDB.(.CMKEY,,OUTCMD)],<CAN NOT OUTPUT THAT>
  4459	010242'	550 01 0 02 000000 		HRRZ	T1,(T2)
  4460	010243'	254 00 0 01 000000 		JRST	(T1)
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 118
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0157

  4461					;*OUTRAM, OUTPUT MICROCODE ".RAM" FILE
  4462
  4463	010244'	476 00 0 00 021027'	OUTBC1:	SETOM	BC1FLG
  4464	010245'	254 00 0 00 010247'		JRST	OUTRAM+1
  4465	010246'	402 00 0 00 021027'	OUTRAM:	SETZM	BC1FLG
  4466	010247'					NOISE	<MICROCODE INTO .RAM FILE>
  4467	010261'	561 01 0 00 014713'		HRROI	T1,[ASCIZ "KS10"]
  4468	010262'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  4469	010263'	561 01 0 00 014734'		HRROI	T1,[ASCIZ "RAM"]
  4470	010264'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  4471	010265'	402 00 0 00 016406'		SETZM	GTJDEV
  4472	010266'	402 00 0 00 016407'		SETZM	GTJDIR
  4473	010267'	205 01 0 00 400000 		MOVSI	T1,(GJ%FOU)
  4474	010270'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  4475
  4476	010271'					CMD	[FLDDB.(.CMFIL)]
  4477	010302'	202 02 0 00 021057'		MOVEM	T2,OUTJFN#
  4478
  4479	010303'	260 17 0 00 000623'		CONFIRM
  4480
  4481	010304'	336 00 0 00 000302'		SKIPN	MONTYP
  4482	010305'	254 00 0 00 010333'		JRST	ORAM10		;TOPS-10
  4483
  4484	010306'	200 01 0 00 021057'		MOVE	T1,OUTJFN
  4485	010307'	201 02 0 00 100000 		MOVEI	T2,OF%WR
  4486	010310'	104 00 0 00 000021 		OPENF
  4487	010311'	260 17 0 00 015366'		 ERR	<CAN NOT OPEN MICROCODE OUTPUT FILE>
  4488
  4489	010312'	336 00 0 00 021027'		SKIPN	BC1FLG
  4490	010313'	201 06 0 00 401000 		MOVEI	T6,CRAM
  4491	010314'	332 00 0 00 021027'		SKIPE	BC1FLG
  4492	010315'	201 06 0 00 417000 		MOVEI	T6,CRMBC1
  4493	010316'	201 05 0 00 004000 		MOVEI	T5,4000
  4494	010317'	200 02 0 06 000000 	OUTLP:	MOVE	T2,(T6)
  4495	010320'	104 00 0 00 000051 		BOUT
  4496	010321'	200 02 0 06 000001 		MOVE	T2,1(T6)
  4497	010322'	104 00 0 00 000051 		BOUT
  4498	010323'	200 02 0 06 000002 		MOVE	T2,2(T6)
  4499	010324'	104 00 0 00 000051 		BOUT
  4500
  4501	010325'	271 06 0 00 000003 		ADDI	T6,3
  4502	010326'	367 05 0 00 010317'		SOJG	T5,OUTLP
  4503
  4504	010327'	200 01 0 00 021057'		MOVE	T1,OUTJFN
  4505	010330'	104 00 0 00 000022 		CLOSF
  4506	010331'	260 17 0 00 015400'		 ERR	<CAN NOT CLOSE MICROCODE OUTPUT FILE>
  4507
  4508	010332'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 119
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0158

  4509					;*TOPS-10 OUTPUT MICRO-CODE ".RAM" FILE
  4510
  4511	010333'	200 01 0 00 006755'	ORAM10:	MOVE	T1,MC.VER
  4512	010334'	202 01 0 00 006051'		MOVEM	T1,O.VER
  4513	010335'	200 01 0 00 006756'		MOVE	T1,MC.TIME
  4514	010336'	202 01 0 00 006050'		MOVEM	T1,O.TIME
  4515	010337'	200 01 0 00 006757'		MOVE	T1,MC.DATE
  4516	010340'	202 01 0 00 006047'		MOVEM	T1,O.DATE
  4517	010341'	402 00 0 00 006045'		SETZM	O.PRT
  4518
  4519	010342'	200 01 0 00 016406'		MOVE	T1,GTJDEV
  4520	010343'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  4521	010344'	200 01 0 00 016410'		MOVE	T1,GTJFIL
  4522	010345'	202 01 0 00 006043'		MOVEM	T1,O.NAM1
  4523	010346'	200 01 0 00 016411'		MOVE	T1,GTJEXT
  4524	010347'	202 01 0 00 006044'		MOVEM	T1,O.EXT
  4525	010350'	200 01 0 00 016407'		MOVE	T1,GTJDIR
  4526	010351'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  4527
  4528	010352'	260 17 0 00 007113'		GO	OPNWRT		;OPEN OUTPUT
  4529	010353'	260 17 0 00 015406'		ERR	<OUTPUT OPEN FAILURE>
  4530
  4531	010354'	201 02 0 00 000014 		MOVEI	T2,^D12
  4532	010355'	336 00 0 00 021027'		SKIPN	BC1FLG
  4533	010356'	200 03 0 00 015410'		MOVE	T3,[CRAM,,IPAG]
  4534	010357'	332 00 0 00 021027'		SKIPE	BC1FLG
  4535	010360'	200 03 0 00 015411'		MOVE	T3,[CRMBC1,,IPAG]
  4536
  4537	010361'	200 01 0 00 000003 	ORAM11:	MOVE	T1,T3
  4538	010362'	251 01 0 00 022637'		BLT	T1,IPAG+777
  4539	010363'	205 01 0 00 001000 		MOVSI	T1,^D512
  4540	010364'	270 03 0 00 000001 		ADD	T3,T1
  4541
  4542						OUT	WC,[IOWD ^D512,IPAG
  4543	010365'	057 03 0 00 014366'			    0]
  4544	010366'	334 00 0 00 000000 		SKIPA
  4545	010367'	260 17 0 00 015417'		ERR	<MICROCODE OUTPUT ERROR>
  4546
  4547	010370'	367 02 0 00 010361'		SOJG	T2,ORAM11
  4548
  4549	010371'	260 17 0 00 007022'		GO	W10EOF
  4550
  4551	010372'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 120
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0159

  4552					;*OUTMT, OUTPUT MAGTAPE ".RDI" FILE
  4553
  4554	010373'	561 01 0 00 015317'	OUTMT:HRROI	T1,[ASCIZ "MTBOOT"]
  4555	010374'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  4556
  4557	010375'	561 01 0 00 014216'		HRROI	T1,[ASCIZ "EXE"]
  4558	010376'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  4559
  4560	010377'	402 00 0 00 016406'		SETZM	GTJDEV
  4561	010400'	402 00 0 00 016407'		SETZM	GTJDIR
  4562
  4563	010401'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  4564	010402'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  4565
  4566	010403'					CMD	[FLDDB.(.CMFIL)]
  4567	010414'	202 02 0 00 002522'		MOVEM	T2,BTJFN	;SAVE THE JFN OF THE BOOT FILE
  4568
  4569	010415'	336 00 0 00 000302'		SKIPN	MONTYP
  4570	010416'	260 17 0 00 010615'		GO	OMT10		;TOPS-10
  4571
  4572	010417'					NOISE	<AS>
  4573	010431'	561 01 0 00 015317'		HRROI	T1,[ASCIZ "MTBOOT"]
  4574	010432'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  4575	010433'	561 01 0 00 015440'		HRROI	T1,[ASCIZ "RDI"]
  4576	010434'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  4577	010435'	402 00 0 00 016406'		SETZM	GTJDEV
  4578	010436'	402 00 0 00 016407'		SETZM	GTJDIR
  4579	010437'	205 01 0 00 400000 		MOVSI	T1,(GJ%FOU)
  4580	010440'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  4581
  4582	010441'					CMD	[FLDDB.(.CMFIL)]
  4583	010452'	202 02 0 00 021054'		MOVEM	T2,MTJFN#
  4584
  4585	010453'	260 17 0 00 000623'		CONFIRM
  4586
  4587	010454'	336 00 0 00 000302'		SKIPN	MONTYP
  4588	010455'	254 00 0 00 010630'		JRST	OMT10A		;TOPS-10
  4589
  4590	010456'	200 01 0 00 021054'		MOVE	T1,MTJFN
  4591	010457'	201 02 0 00 100000 		MOVEI	T2,OF%WR
  4592	010460'	104 00 0 00 000021 		OPENF
  4593	010461'	260 17 0 00 015456'		 ERR	<CAN NOT OPEN MAGTAPE RDI OUTPUT FILE>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 121
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0160

  4594	010462'	403 01 0 00 000002 		SETZB	T1,T2		;CREATE A BLANK FORK
  4595	010463'	104 00 0 00 000152 		CFORK
  4596						ERJMP	[JSERR		;ERROR ON CFORK
  4597	010464'	320 16 0 00 014234'			HALTF]
  4598	010465'	202 01 0 00 002525'		MOVEM	T1,FORKN	;SAVE FORK
  4599
  4600	010466'	550 01 0 00 002522'		HRRZ	T1,BTJFN	;GET THE JFN OF THE BOOT
  4601	010467'	504 01 0 00 002525'		HRL	T1,FORKN	;GET PROCESS HANDLE
  4602	010470'	400 02 0 00 000000 		SETZ	T2,0
  4603	010471'	104 00 0 00 000200 		GET
  4604						ERJMP	[JSERR		;ERROR ON GET
  4605	010472'	320 16 0 00 014127'			JRST START]
  4606
  4607	010473'	200 01 0 00 002525'		MOVE	T1,FORKN
  4608	010474'	104 00 0 00 000205 		GEVEC			;GET THE VECTOR OF BOOT
  4609	010475'	202 02 0 00 002524'		MOVEM	T2,BOOTEV	;SAVE BOOT ENTRY VECTOR ADDRESS
  4610
  4611	010476'	402 00 0 00 434000 		SETZM	WINDOW
  4612	010477'	200 00 0 00 014247'		MOVE	[WINDOW,,WINDOW+1]
  4613	010500'	251 00 0 00 434777 		BLT	WINDOW+777	;CLEAR DIAG PRE-BOOT PAGE
  4614
  4615	010501'	402 00 0 00 011304'		SETZM	MTPAGD
  4616	010502'	200 00 0 00 015460'		MOVE	[MTPAGD,,MTPAGD+1]
  4617	010503'	251 00 0 00 011404'		BLT	MTPAGX		;CLEAR PRE-BOOT POINTER STORAGE
  4618
  4619	010504'	200 04 0 00 014236'		MOVE	T4,[-1000,,0]	;ALLOW FOR 1000 PAGES
  4620
  4621	010505'	514 13 0 00 021054'		HRLZ	P1,MTJFN	;GET JFN OF .RDI FILE
  4622	010506'	541 13 0 00 000001 		HRRI	P1,1		;GET MTBOOT START PAGE
  4623
  4624	010507'	201 14 0 00 011305'		MOVEI	P2,MTPAGD+1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 122
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0161

  4625	010510'	514 01 0 00 002525'	MTPGLP:	HRLZ	T1,FORKN	;GET PROCESS HANDLE
  4626	010511'	540 01 0 00 000004 		HRR	T1,T4		;GET PAGE NUMBER
  4627	010512'	104 00 0 00 000057 		RPACS			;READ PAGE ACCESS
  4628	010513'	612 02 0 00 014237'		TDNE	T2,[PA%RD!PA%PEX]
  4629	010514'	260 17 0 00 010557'		GO	MTCOPPG		;COPY PAGE
  4630
  4631	010515'	253 04 0 00 010510'		AOBJN	T4,MTPGLP	;TRY ANOTHER PAGE
  4632
  4633	010516'	476 00 0 14 000000 		SETOM	(P2)		;INDICATE END OF SPACE
  4634
  4635	010517'	200 01 0 00 002524'		MOVE	T1,BOOTEV	;FIND ENTRY VECTOR
  4636	010520'	552 01 0 14 000001 		HRRZM	T1,1(P2)	;SET ENTRY VECTOR
  4637
  4638	010521'	200 00 0 00 015461'		MOVE	[MTSTR1,,WINDOW]
  4639	010522'	251 00 0 00 434406 		BLT	WINDOW+<MTPAGX-MTSTR1>
  4640
  4641	010523'	200 01 0 00 014250'		MOVE	T1,[.FHSLF,,<WINDOW_-^D9>]
  4642	010524'	514 02 0 00 021054'		HRLZ	T2,MTJFN
  4643	010525'	541 02 0 00 000000 		HRRI	T2,0
  4644	010526'	200 03 0 00 014472'		MOVE	T3,[PM%WR]
  4645	010527'	104 00 0 00 000056 		PMAP			;PUT MAGTAPE PRE-BOOT IN .RDI FILE
  4646						 ERJMP	[JSERR
  4647	010530'	320 16 0 00 014127'			 JRST	START]
  4648
  4649	010531'	200 01 0 00 002525'		MOVE	T1,FORKN
  4650	010532'	104 00 0 00 000153 		KFORK			;KILL "GET" FORK
  4651						 ERJMP	[JSERR
  4652	010533'	320 16 0 00 014127'			 JRST	START]
  4653
  4654	010534'	200 01 0 00 021054'		MOVE	T1,MTJFN
  4655	010535'	661 01 0 00 400000 		TLO	T1,(CO%NRJ)
  4656	010536'	104 00 0 00 000022 		CLOSF			;CLOSE FILE, KEEP JFN
  4657	010537'	260 17 0 00 015471'		 ERR	<CAN NOT CLOSE MAGTAPE RDI FILE>
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 123
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0162

  4658	010540'	200 01 0 00 021054'		MOVE	T1,MTJFN
  4659	010541'	661 01 0 00 400011 		TLO	T1,(CF%NUD!<.FBBYV>B17)
  4660	010542'	200 02 0 00 013323'		MOVE	T2,[FB%BSZ]
  4661	010543'	205 03 0 00 004400 		MOVSI	T3,(^D36B11)
  4662	010544'	104 00 0 00 000064 		CHFDB			;UPDATE BYTE SIZE IN FDB
  4663
  4664	010545'	200 01 0 00 021054'		MOVE	T1,MTJFN
  4665	010546'	661 01 0 00 000012 		TLO	T1,(<.FBSIZ>B17)
  4666	010547'	200 02 0 00 013454'		MOVE	T2,[-1]
  4667	010550'	550 03 0 00 000013 		HRRZ	T3,P1
  4668	010551'	221 03 0 00 001000 		IMULI	T3,^D512
  4669	010552'	104 00 0 00 000064 		CHFDB			;UPDATE EOF POINTER IN FDB
  4670
  4671	010553'	200 01 0 00 021054'		MOVE	T1,MTJFN
  4672	010554'	104 00 0 00 000023 		RLJFN
  4673	010555'	260 17 0 00 015502'		 ERR	<CAN NOT RELEASE MAGTAPE RDI JFN>
  4674
  4675	010556'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 124
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0163

  4676	010557'	552 01 0 14 000000 	MTCOPPG:HRRZM	T1,0(P2)	;SET A POINTER TO PAGE NUMBER
  4677	010560'	350 00 0 00 000014 		AOS	P2		;POINT TO NEXT
  4678	010561'	261 17 0 00 000001 		PUT	T1
  4679	010562'	550 03 0 00 000001 		HRRZ	T3,T1		;FIND THE PAGE
  4680
  4681	010563'	402 00 0 00 021060'		SETZM	PAG0FLG#
  4682	010564'	306 03 0 00 000001 		CAIN	T3,1		;IS THIS PAGE 1 ?
  4683	010565'	260 17 0 00 014300'		ERR	<CAN'T OVERLOAD PRE-BOOT PAGE>
  4684	010566'	306 03 0 00 000000 		CAIN	T3,0		;IS THIS PAGE 0 ?
  4685	010567'	476 00 0 00 021060'		SETOM	PAG0FLG		;IF PAGE 0 OF FILE, SET FLAG
  4686
  4687	010570'	504 01 0 00 002525'		HRL	T1,FORKN	;GET FORK NUMBER
  4688	010571'	540 01 0 00 000003 		HRR	T1,T3		;GET PAGE NUMBER
  4689	010572'	200 02 0 00 014302'		MOVE	T2,[.FHSLF,,<GENPAG_-^D9>]
  4690	010573'	200 03 0 00 014303'		MOVE	T3,[PM%RD]
  4691	010574'	104 00 0 00 000056 		PMAP			;GET PAGE IN SELF
  4692						ERJMP	[JSERR
  4693	010575'	320 16 0 00 014127'			JRST START]
  4694
  4695	010576'	200 03 0 00 014305'		MOVE	T3,[GENPAG,,IPAG]
  4696	010577'	251 03 0 00 022637'		BLT	T3,IPAG+777
  4697
  4698	010600'	336 00 0 00 021060'		SKIPN	PAG0FLG		;IS THIS PAGE 0 ?
  4699	010601'	254 00 0 00 010605'		JRST	.+4		;NO
  4700	010602'	402 00 0 00 021671'		SETZM	IPAG+KPALIVE	;YES, ZERO 8080 COMM AREA
  4701	010603'	200 01 0 00 014401'		MOVE	T1,[IPAG+KPALIVE,,IPAG+KPALIVE+1]
  4702	010604'	251 01 0 00 021700'		BLT	T1,IPAG+MSSLAVE
  4703
  4704	010605'	200 01 0 00 015504'		MOVE	T1,[.FHSLF,,<IPAG_-^D9>]
  4705	010606'	200 02 0 00 000013 		MOVE	T2,P1		;SET UP PMAP ARGUMENTS
  4706	010607'	205 03 0 00 040000 		MOVSI	T3,(PM%WR)
  4707	010610'	104 00 0 00 000056 		PMAP
  4708						ERJMP	[JSERR
  4709	010611'	320 16 0 00 014127'			JRST START]	;JSYS ERROR
  4710
  4711	010612'	262 17 0 00 000003 		GETIT	T3		;REMOVE PAGE NUMBER
  4712	010613'	350 00 0 00 000013 		AOS	P1		;UPDATE P1 ARGUMENTS
  4713	010614'	263 17 0 00 000000 		RTN			;RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 125
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- OUTPUT                                                                 SEQ 0164

  4714					;*TOPS-10 OUTPUT MAGTAPE ".RDI" FILE
  4715
  4716	010615'	260 17 0 00 007027'	OMT10:	GO	OPNTEN		;OPEN INPUT FILE
  4717	010616'	260 17 0 00 014311'		ERR	<FILE NOT FOUND>
  4718
  4719	010617'	200 01 0 00 006667'		MOVE	T1,LOOK10+.RBVER ;USE INPUT VERSION AS OUTPUT VERSION
  4720	010620'	202 01 0 00 006760'		MOVEM	T1,MT.VER
  4721
  4722	010621'	135 01 0 00 014313'		LDB	T1,[POINT 11,LOOK10+.RBPRV,23]
  4723	010622'	202 01 0 00 006761'		MOVEM	T1,MT.TIME	;USE INPUT TIME AND DATE AS OUTPUT
  4724
  4725	010623'	135 01 0 00 014314'		LDB	T1,[POINT 3,LOOK10+.RBEXT,20]
  4726	010624'	137 01 0 00 015505'		DPB	T1,[POINT 3,MT.DATE,23]
  4727	010625'	135 01 0 00 014316'		LDB	T1,[POINT 12,LOOK10+.RBPRV,35]
  4728	010626'	137 01 0 00 015506'		DPB	T1,[POINT 12,MT.DATE,35]
  4729
  4730	010627'	263 17 0 00 000000 		RTN
  4731
  4732	010630'	200 01 0 00 006760'	OMT10A:	MOVE	T1,MT.VER
  4733	010631'	202 01 0 00 006051'		MOVEM	T1,O.VER
  4734	010632'	200 01 0 00 006761'		MOVE	T1,MT.TIME
  4735	010633'	202 01 0 00 006050'		MOVEM	T1,O.TIME
  4736	010634'	200 01 0 00 006762'		MOVE	T1,MT.DATE
  4737	010635'	202 01 0 00 006047'		MOVEM	T1,O.DATE
  4738	010636'	402 00 0 00 006045'		SETZM	O.PRT
  4739
  4740	010637'	200 01 0 00 016406'		MOVE	T1,GTJDEV
  4741	010640'	202 01 0 00 006042'		MOVEM	T1,O.DEV
  4742	010641'	200 01 0 00 016410'		MOVE	T1,GTJFIL
  4743	010642'	202 01 0 00 006043'		MOVEM	T1,O.NAM1
  4744	010643'	200 01 0 00 016411'		MOVE	T1,GTJEXT
  4745	010644'	202 01 0 00 006044'		MOVEM	T1,O.EXT
  4746	010645'	200 01 0 00 016407'		MOVE	T1,GTJDIR
  4747	010646'	202 01 0 00 006046'		MOVEM	T1,O.PPN
  4748
  4749	010647'	260 17 0 00 007113'		GO	OPNWRT		;OPEN OUTPUT
  4750	010650'	260 17 0 00 015406'		ERR	<OUTPUT OPEN FAILURE>
  4751
  4752	010651'	254 00 0 00 010652'		JRST	REDEXE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 126
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0165

  4753					SUBTTL	PROCESS TOPS-10 MAGTAPE BOOT EXE FILE
  4754
  4755					;MISCELLANEOUS EQUATES
  4756
  4757			400000		PM.ACC==400000		;ALLOW ACCESS TO A PAGE
  4758			100000		PM.WRT==100000		;ALLOW A PAGE TO BE WRITTEN
  4759			400000		PG.LEB==400000		;LOAD THE EXEC BASE REGISTER
  4760			020000		PG.EAT==20000		;TURN ON THE PAGING HARDWARE (ENABLE TRAPS)
  4761			001000		PAGSIZ==^D512		;NUMBER OF WORDS IN A PAGE
  4762			000200		BLKSIZ==^D128		;NUMBER OF WORDS IN A BLOCK
  4763			000002		P2BLSH==2		;SHIFT AMOUNT TO CONVERT PAGES TO BLOCKS
  4764		777777	777776		B2PLSH==-2		;SHIFT AMOUNT TO CONVERT BLOCKS TO PAGES
  4765			000011		P2WLSH==^D9		;SHIFT AMOUNT TO CONVERT PAGES TO WORDS
  4766		777777	777767		W2PLSH==-^D9		;SHIFT AMOUNT TO CONVERT WORDS TO PAGES
  4767			001776		SV.DIR==1776		;DIRECTORY BLOCK CODE
  4768			001777		SV.END==1777		;END DIRECTORY BLOCK CODE
  4769
  4770			434000		DBUF=WINDOW		;EXE DIRECTORY PAGE
  4771
  4772			000010		Q=10
  4773			000012		N=12
  4774			000013		M=13
  4775			000014		K=14
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 127
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0166

  4776					;HERE TO READ AN EXE FILE
  4777
  4778	010652'	402 00 0 00 021066'	REDEXE:	SETZM	SELPAG#
  4779	010653'	260 17 0 00 010762'		GO	REDDIR		;READ THE DIRECTORY PAGE
  4780
  4781	010654'	554 01 0 00 434000 		HLRZ	A,DBUF		;DIRECTORY DESCRIPTOR
  4782	010655'	550 06 0 00 434000 		HRRZ	T6,DBUF		;LENGTH OF THE DIRECTORY
  4783	010656'	306 01 0 00 001776 		CAIN	A,SV.DIR	;IS THIS A DIRECTORY?
  4784	010657'	301 06 0 00 000200 		CAIL	T6,^D128	; WHICH IS LESS THAN OR EQUAL TO 128 WORDS LONG?
  4785	010660'	260 17 0 00 014347'		ERR	<NOT A DIRECTORY OR ONE WE CAN'T HANDLE>
  4786
  4787	010661'	211 06 0 06 777777 		MOVNI	T6,-1(T6)	;MAKE AN AOBJN POINTER TO THE DIRECTORY
  4788	010662'	505 06 0 00 434001 		HRLI	T6,DBUF+1	; ..
  4789	010663'	207 00 0 00 000006 		MOVSS	T6		; ..
  4790
  4791						OUT	WC,[IOWD ^D512,IPAG
  4792	010664'	057 03 0 00 014366'			    0]		;MAKE DUMMY FIRST PAGE FOR NOW
  4793	010665'	334 00 0 00 000000 		SKIPA
  4794	010666'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  4795
  4796	010667'	201 14 0 00 011305'		MOVEI	P2,MTPAGD+1
  4797
  4798	010670'	200 13 0 06 000000 	REDEX2:	MOVE	M,(T6)		;BITS,,FILE PAGE NUMBER
  4799	010671'	321 13 0 00 010676'		JUMPL	M,REDEX3	;JUMP IF HI SEG PAGE, READ IT IMMEDIATELY
  4800									; ABOVE THE LOW SEGMENT
  4801
  4802	010672'	550 05 0 06 000001 		HRRZ	T5,1(T6)	;CORE PAGE NUMBER
  4803	010673'	242 05 0 00 000011 		LSH	T5,P2WLSH	;CORE ADDRESS
  4804	010674'	336 00 0 00 000005 		SKIPN	T5		;PAGE 0?
  4805	010675'	561 05 0 00 000000 		HRROI	T5,0		;YES, READ IT AND REMEMBER ITS PAGE 0
  4806
  4807	010676'	135 07 0 00 014351'	REDEX3:	LDB	T7,[POINT 9,1(T6),8]
  4808
  4809	010677'	606 13 0 00 777777 	REDEX4:	TRNN	M,-1		;AN ALLOCATED BUT ZERO PAGE?
  4810	010700'	364 13 0 00 010740'		SOJA	M,REDEX8	;YES, COUNT DOWN REPEAT COUNT AND UPDATE CORE ADDRESS
  4811	010701'	550 04 0 00 000013 		HRRZ	T4,M		;FILE PAGE NUMBER
  4812	010702'	242 04 0 00 000002 		LSH	T4,P2BLSH	;CONVERT TO BLOCK WITHIN THE FILE
  4813	010703'	315 04 0 00 021066'		CAMGE	T4,SELPAG	;FILE PAGE NUMBERS MUST BE MONOTONICALLY INCREASING
  4814	010704'	260 17 0 00 014364'		ERR	<PAGES IN EXE DIR AREN'T MONOTONICALLY INCREASING>
  4815
  4816	010705'	316 04 0 00 021066'	REDEX5:	CAMN	T4,SELPAG	;AT THE RIGHT BLOCK WITHIN THE FILE?
  4817	010706'	254 00 0 00 010711'		JRST	REDEX7		;YES
  4818
  4819	010707'	260 17 0 00 010761'	REDEX6:	GO	SELBLK		;BYPASS FILE PAGE
  4820	010710'	254 00 0 00 010705'		JRST	REDEX5		;SEE IF THERE YET
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 128
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0167

  4821
  4822	010711'	306 05 0 00 001000 	REDEX7:	CAIN	T5,1000
  4823	010712'	260 17 0 00 014300'		ERR	<CAN'T OVERLOAD PRE-BOOT PAGE>
  4824
  4825	010713'	260 17 0 00 010761'		GO	REDPAG		;READ EXE DATA PAGE
  4826
  4827	010714'	302 05 0 00 000000 		CAIE	T5,0		;PAGE 0 ?
  4828	010715'	254 00 0 00 010723'		JRST	.+6		;NO
  4829	010716'	261 17 0 00 000001 		PUT	T1
  4830	010717'	402 00 0 00 021671'		SETZM	IPAG+KPALIVE	;YES, ZERO 8080 COMM AREA
  4831	010720'	200 01 0 00 014401'		MOVE	T1,[IPAG+KPALIVE,,IPAG+KPALIVE+1]
  4832	010721'	251 01 0 00 021700'		BLT	T1,IPAG+MSSLAVE
  4833	010722'	262 17 0 00 000001 		GETIT	T1
  4834
  4835	010723'	261 17 0 00 000005 		PUT	T5
  4836	010724'	405 05 0 00 777777 		ANDI	T5,-1
  4837	010725'	242 05 0 00 777767 		LSH	T5,W2PLSH
  4838	010726'	552 05 0 14 000000 		HRRZM	T5,(P2)		;SET A POINTER TO PAGE NUMBER
  4839	010727'	262 17 0 00 000005 		GETIT	T5
  4840	010730'	350 00 0 00 000014 		AOS	P2		;POINT TO NEXT
  4841
  4842						OUT	WC,[IOWD ^D512,IPAG
  4843	010731'	057 03 0 00 014366'			    0]
  4844	010732'	334 00 0 00 000000 		SKIPA
  4845	010733'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  4846
  4847	010734'	325 05 0 00 010740'		JUMPGE	T5,REDEX8	;PAGE 0 JUST READ?
  4848
  4849	010735'	200 00 0 00 021760'		MOVE	IPAG+.JBSA
  4850	010736'	202 00 0 00 006763'		MOVEM	MT.SADR		;SAVE STARTING ADDRESS
  4851
  4852	010737'	201 05 0 00 000000 		MOVEI	T5,0		;READ NEXT PAGE INTO PAGE 1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 129
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0168

  4853
  4854	010740'	271 05 0 00 001000 	REDEX8:	ADDI	T5,PAGSIZ	;NEXT PAGE
  4855	010741'	371 00 0 00 000007 	REDEX9:	SOSL	T7		;READ ALL THE PAGES DESCRIBED BY THIS ENTRY?
  4856	010742'	344 13 0 00 010677'		AOJA	M,REDEX4	;NO, READ THE NEXT PAGE
  4857
  4858	010743'	253 06 0 00 010744'		AOBJN	T6,.+1		;BUMP PAST THIS DIRECTORY ENTRY, AND
  4859	010744'	253 06 0 00 010670'		AOBJN	T6,REDEX2	; GO GET THE NEXT DIRECTORY ENTRY
  4860
  4861	010745'	476 00 0 14 000000 		SETOM	(P2)		;INDICATE END OF SPACE
  4862
  4863	010746'	200 01 0 00 006763'		MOVE	T1,MT.SADR
  4864	010747'	552 01 0 14 000001 		HRRZM	T1,1(P2)	;SET ENTRY VECTOR
  4865
  4866	010750'	402 00 0 00 021640'		SETZM	IPAG
  4867	010751'	200 00 0 00 014521'		MOVE	[IPAG,,IPAG+1]
  4868	010752'	251 00 0 00 022637'		BLT	IPAG+777
  4869
  4870	010753'	200 00 0 00 015507'		MOVE	[MTSTR1,,IPAG]
  4871	010754'	251 00 0 00 022246'		BLT	IPAG+<MTPAGX-MTSTR1>
  4872
  4873	010755'	260 17 0 00 010771'		GO	RDEX10		;PUT MAGTAPE PRE-BOOT IN ".RDI" FILE
  4874
  4875	010756'	260 17 0 00 007022'		GO	W10EOF		;CLOSE OUTPUT
  4876	010757'	260 17 0 00 007015'		GO	R10EOF		;CLOSE INPUT
  4877
  4878	010760'	263 17 0 00 000000 		RTN			;DONE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 130
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0169

  4879
  4880					;*SELECT NEXT EXE DATA PAGE
  4881
  4882	010761'				SELBLK:
  4883
  4884					;*READ EXE DATA PAGE
  4885
  4886	010761'	334 10 0 00 015510'	REDPAG:	SKIPA	AC10,[-^D512,,IPAG]
  4887
  4888					;*READ EXE DIRECTORY PAGE
  4889
  4890	010762'	200 10 0 00 015511'	REDDIR:	MOVE	AC10,[-^D512,,WINDOW]
  4891
  4892	010763'	260 17 0 00 006764'		GO	GET10
  4893	010764'	202 03 0 10 000000 		MOVEM	T3,(AC10)
  4894	010765'	253 10 0 00 010763'		AOBJN	AC10,.-2
  4895
  4896	010766'	201 00 0 00 000004 		MOVEI	4
  4897	010767'	272 00 0 00 021066'		ADDM	SELPAG		;INDICATE NEXT SELECTED PAGE
  4898
  4899	010770'	263 17 0 00 000000 		RTN
  4900
  4901	010771'	075 03 0 00 000001 	RDEX10:	USETO	WC,1		;SELECT 1ST PAGE
  4902
  4903						OUT	WC,[IOWD ^D512,IPAG
  4904	010772'	057 03 0 00 014366'			    0]
  4905	010773'	334 00 0 00 000000 		SKIPA
  4906	010774'	260 17 0 00 014373'		ERR	<WRITE ERROR>
  4907	010775'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 131
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0170

  4908					;*MONITOR BOOT STRAP PROGRAM TO BE WRITTEN ON THE MAGTAPE
  4909
  4910	010776'				MTSTR1:
  4911	001000					PHASE	BOORG
  4912
  4913	001000	254 00 0 00 001005 	MTSTRT:!JRST	MTSTAR
  4914	001001	254 04 0 00 001001 	MTHLT0:!HALT	.		;TRIED TO OVERLOAD PRE-BOOT PAGE
  4915	001002	254 04 0 00 001002 	MTHLT1:!HALT	.		;MAGTAPE READ ERROR
  4916	001003	254 04 0 00 001003 	MTHLT2:!HALT	.		;NO RH-11 BASE ADDRESS
  4917	001004	254 04 0 00 001004 	MTHLT3:!HALT	.		;MAGTAPE SKIP EOF ERROR
  4918
  4919	001005	205 17 0 00 777761 	MTSTAR:!MOVSI	17,-17
  4920	001006	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  4921	001007	253 17 0 00 001006 		AOBJN	17,.-1
  4922	001010	402 00 0 00 000017 		SETZM	17
  4923
  4924	001011	200 00 0 00 000036 		MOVE	MSRH		;GET MAGTAPE ADDRESS
  4925	001012	202 00 0 00 001261 		MOVEM	MTRHSV
  4926	001013	336 00 0 00 000000 		SKIPN
  4927	001014	254 00 0 00 001003 		JRST	MTHLT2		;NO RH-11 BASE ADDRESS ?
  4928
  4929	001015	200 00 0 00 000037 		MOVE	MSDRIVE
  4930	001016	202 00 0 00 001262 		MOVEM	MTDRSV		;SAVE DRIVE
  4931	001017	200 00 0 00 000040 		MOVE	MSSLAVE
  4932	001020	202 00 0 00 001263 		MOVEM	MTSLSV		;SAVE SLAVE & FORMAT
  4933	001021	200 00 0 00 000031 		MOVE	KPALIVE
  4934	001022	202 00 0 00 001260 		MOVEM	MTKPAL		;SAVE KEEP-ALIVE WORD
  4935
  4936	001023	200 00 0 00 001261 		MOVE	MTRHSV		;SETUP RH-11 TABLE
  4937	001024	200 01 0 00 001265 		MOVE	T1,MTPNTR
  4938	001025	202 00 0 01 000000 		MOVEM	(T1)
  4939	001026	271 00 0 00 000002 		ADDI	2
  4940	001027	253 01 0 00 001025 		AOBJN	T1,.-2
  4941	001030	201 00 0 00 763000 		MOVEI	UBAP0		;SETUP UBA MAP POINTER
  4942	001031	542 00 0 00 001304 		HRRM	MTUBP0
  4943	001032	201 00 0 00 763100 		MOVEI	UBSTAT		;SETUP UBA STATUS POINTER
  4944	001033	542 00 0 00 001305 		HRRM	MTUBST
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 132
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0171

  4945
  4946	001034	201 13 0 00 000144 		MOVEI	P1,^D100	;RETRY 100 TIMES
  4947	001035	201 03 0 00 001307 		MOVEI	T3,MTPAG+1	;FIND THE OFFSET STUFF
  4948
  4949	001036	265 17 0 00 001070 	RDMT:!	JSP	P,MTSRH		;SETUP RH-11
  4950
  4951	001037	200 04 0 03 000000 		MOVE	T4,(T3)		;FIND THE CORE ADDRESS
  4952	001040	306 04 0 00 000001 		CAIN	T4,1		;CAN'T OVERLOAD PRE-BOOT
  4953	001041	254 00 0 00 001113 		JRST	MTBADR		;PAGE 1 REQUESTED TO BE LOADED ?
  4954
  4955	001042	321 04 0 00 001156 		JUMPL	T4,RDMTDN	;QUIT IF ALL DONE WITH PAGES
  4956
  4957	001043	435 04 0 00 040000 		IORI	T4,UBVBIT
  4958	001044	713 04 1 00 001304 		WRIO	T4,@MTUBP0	;SET UP UNIBUS ADAPTOR PAGE 0
  4959
  4960	001045	400 01 0 00 000000 		SETZ	T1,		;CLEAR CURRENT ADDRESS REGISTER
  4961	001046	713 01 1 00 001270 		WRIO	T1,@MTBA	;SET UNIBUS ADDRESS TO 0
  4962
  4963	001047	211 01 0 00 002000 		MOVNI	T1,2000		;READ A PAGE (WORD COUNT)
  4964	001050	713 01 1 00 001267 		WRIO	T1,@MTWC	;SET WORD COUNT
  4965
  4966	001051	201 01 0 00 000071 		MOVEI	T1,MT.RF
  4967	001052	713 01 1 00 001266 		WRIO	T1,@MTCS1	;READ FORWARD
  4968
  4969	001053	265 17 0 00 001063 		JSP	P,MTRDY		;WAIT FOR READY
  4970	001054	602 01 0 00 000004 		TRNE	T1,MTTM
  4971	001055	254 00 0 00 001115 		JRST	MTFAIL		;READ ERROR, EOF DETECTED
  4972
  4973	001056	712 01 1 00 001274 		RDIO	T1,@MTER
  4974	001057	602 01 0 00 176777 		TRNE	T1,177777-MTFCE
  4975	001060	254 00 0 00 001101 		JRST	MTRTRX		;ERROR OTHER THAN LENGTH ERROR
  4976
  4977	001061	350 00 0 00 000003 		AOS	T3		;POINT TO NEXT ENTRY
  4978	001062	254 00 0 00 001036 		JRST	RDMT		;DO NEXT PAGE
  4979
  4980	001063	712 01 1 00 001273 	MTRDY:	RDIO	T1,@MTDS	;READ DRIVE STATUS
  4981	001064	606 01 0 00 020000 		TRNN	T1,MTPIP	;IS DRIVE STOPPED ?
  4982	001065	606 01 0 00 000200 		TRNN	T1,MTDRY	;DRIVE READY ?
  4983	001066	254 00 0 00 001063 		JRST	MTRDY		;NO, WAIT
  4984	001067	254 00 1 00 000017 		JRST	@P		;YES, RETURN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 133
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0172

  4985
  4986	001070	201 01 0 00 000040 	MTSRH:!	MOVEI	T1,RHCLR
  4987	001071	713 01 1 00 001272 		WRIO	T1,@MTCS2	;CLEAR MAGTAPE
  4988
  4989	001072	200 01 0 00 001262 		MOVE	T1,MTDRSV
  4990	001073	713 01 1 00 001272 		WRIO	T1,@MTCS2	;SELECT DRIVE
  4991
  4992	001074	200 01 0 00 001263 		MOVE	T1,MTSLSV
  4993	001075	713 01 1 00 001303 		WRIO	T1,@MTTC	;LOAD TAPE CONTROL REGISTER
  4994
  4995	001076	400 01 0 00 000000 		SETZ	T1,
  4996	001077	713 01 1 00 001271 		WRIO	T1,@MTFC	;CLEAR FRAME COUNTER
  4997
  4998	001100	254 00 1 00 000017 		JRST	@P		;RETURN
  4999
  5000	001101	361 13 0 00 001115 	MTRTRX:! SOJL	P1,MTFAIL	;DONE ALL RETRIES ?
  5001
  5002	001102	265 17 0 00 001070 		JSP	P,MTSRH		;NO, SETUP RH-11
  5003
  5004	001103	211 01 0 00 000001 		MOVNI	T1,1
  5005	001104	713 01 1 00 001271 		WRIO	T1,@MTFC	;SET FRAME COUNT TO -1
  5006
  5007	001105	201 01 0 00 000033 		MOVEI	T1,MT.SR
  5008	001106	713 01 1 00 001266 		WRIO	T1,@MTCS1	;BACKSPACE THE TAPE
  5009
  5010	001107	265 17 0 00 001063 		JSP	P,MTRDY		;WAIT FOR TAPE TO STOP
  5011
  5012	001110	254 00 0 00 001036 		JRST	RDMT		;NOW TRY AGAIN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 134
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0173

  5013
  5014	001111	201 17 0 00 001004 	MTSERR:!MOVEI	17,MTHLT3	;SET HALT ADDRESS
  5015	001112	254 00 0 00 001117 		JRST	.+5
  5016
  5017	001113	201 17 0 00 001001 	MTBADR:!MOVEI	17,MTHLT0	;SET HALT ADDRESS
  5018	001114	254 00 0 00 001116 		JRST	.+2
  5019
  5020	001115	201 17 0 00 001002 	MTFAIL:!MOVEI	17,MTHLT1	;SET HALT ADDRESS
  5021	001116	370 00 0 00 000003 		SOS	T3		;POINT TO FAILING ENTRY
  5022
  5023	001117	402 00 0 00 000100 		SETZM	100
  5024	001120	200 00 0 03 000000 		MOVE	(T3)
  5025	001121	202 00 0 00 000101 		MOVEM	101		;SAVE MEMORY PAGE ADDRESS
  5026
  5027	001122	202 03 0 00 000102 		MOVEM	T3,102		;SAVE SELECTION PICKUP POINTER
  5028
  5029	001123	712 00 1 00 001266 		RDIO	@MTCS1
  5030	001124	202 00 0 00 000103 		MOVEM	103		;SAVE CONTROL AND STATUS 1
  5031	001125	712 00 1 00 001272 		RDIO	@MTCS2
  5032	001126	202 00 0 00 000104 		MOVEM	104		;SAVE CONTROL AND STATUS 2
  5033	001127	712 00 1 00 001273 		RDIO	@MTDS
  5034	001130	202 00 0 00 000105 		MOVEM	105		;SAVE DRIVE STATUS
  5035	001131	712 00 1 00 001274 		RDIO	@MTER
  5036	001132	202 00 0 00 000106 		MOVEM	106		;SAVE ERROR 1
  5037	001133	400 00 0 00 000000 		SETZ
  5038	001134	202 00 0 00 000107 		MOVEM	107		;NO ERROR 2
  5039	001135	400 00 0 00 000000 		SETZ
  5040	001136	202 00 0 00 000110 		MOVEM	110		;NO ERROR 3
  5041
  5042	001137	712 00 1 00 001304 		RDIO	@MTUBP0
  5043	001140	202 00 0 00 000111 		MOVEM	111		;SAVE UBA PAGING RAM LOC 0
  5044	001141	712 00 1 00 001305 		RDIO	@MTUBST
  5045	001142	202 00 0 00 000112 		MOVEM	112		;SAVE UBA STATUS REG
  5046
  5047	001143	200 00 0 00 001264 		MOVE	MTVER
  5048	001144	202 00 0 00 000113 		MOVEM	113		;SAVE PRE-BOOT VERSION
  5049
  5050	001145	200 00 0 00 001261 		MOVE	MTRHSV
  5051	001146	202 00 0 00 000036 		MOVEM	MSRH		;REINSTALL RH-11 BASE ADDRESS
  5052	001147	200 00 0 00 001262 		MOVE	MTDRSV
  5053	001150	202 00 0 00 000037 		MOVEM	MSDRIVE		;REINSTALL DRIVE NUMBER
  5054	001151	200 00 0 00 001263 		MOVE	MTSLSV
  5055	001152	202 00 0 00 000040 		MOVEM	MSSLAVE		;REINSTALL SLAVE NUMBER
  5056	001153	200 00 0 00 001260 		MOVE	MTKPAL
  5057	001154	202 00 0 00 000031 		MOVEM	KPALIVE		;REINSTALL KEEP-ALIVE
  5058
  5059	001155	254 00 1 00 000017 		JRST	@17		;HALT AT APPROPRIATE HALT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 135
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0174

  5060
  5061	001156	350 00 0 00 000003 	RDMTDN:! AOS	T3
  5062	001157	200 00 0 03 000000 		MOVE	(T3)		;SETUP START ADDRESS
  5063	001160	202 00 0 00 000020 		MOVEM	20
  5064
  5065	001161	265 17 0 00 001070 		JSP	P,MTSRH		;SETUP RH-11
  5066
  5067	001162	201 01 0 00 000031 		MOVEI	T1,MT.SF	;SPACE FORWARD OVER EOF MARKER
  5068	001163	713 01 1 00 001266 		WRIO	T1,@MTCS1
  5069
  5070	001164	265 17 0 00 001063 		JSP	P,MTRDY		;WAIT FOR TAPE TO STOP
  5071	001165	606 01 0 00 000004 		TRNN	T1,MTTM		;TAPE MARK DETECTED ?
  5072	001166	254 00 0 00 001111 		JRST	MTSERR		;NO, SPACE FORWARD ERROR
  5073
  5074	001167	200 00 0 00 001261 		MOVE	MTRHSV
  5075	001170	202 00 0 00 000036 		MOVEM	MSRH		;REINSTALL RH-11 ADDRESS
  5076	001171	200 00 0 00 001262 		MOVE	MTDRSV
  5077	001172	202 00 0 00 000037 		MOVEM	MSDRIVE		;REINSTALL DRIVE NUMBER
  5078	001173	200 00 0 00 001263 		MOVE	MTSLSV
  5079	001174	202 00 0 00 000040 		MOVEM	MSSLAVE		;REINSTALL SLAVE NUMBER
  5080	001175	200 00 0 00 001260 		MOVE	MTKPAL
  5081	001176	202 00 0 00 000031 		MOVEM	KPALIVE		;REINSTALL KEEP-ALIVE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 136
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0175

  5082
  5083	001177	701 03 0 00 001250 		WRUBR	MTBLK7
  5084	001200	205 17 0 00 777761 		MOVSI	17,-17
  5085	001201	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5086	001202	253 17 0 00 001201 		AOBJN	17,.-1
  5087	001203	402 00 0 00 000017 		SETZM	17
  5088
  5089	001204	701 03 0 00 001251 		WRUBR	MTBLK6
  5090	001205	205 17 0 00 777761 		MOVSI	17,-17
  5091	001206	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5092	001207	253 17 0 00 001206 		AOBJN	17,.-1
  5093	001210	402 00 0 00 000017 		SETZM	17
  5094
  5095	001211	701 03 0 00 001252 		WRUBR	MTBLK5
  5096	001212	205 17 0 00 777761 		MOVSI	17,-17
  5097	001213	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5098	001214	253 17 0 00 001213 		AOBJN	17,.-1
  5099	001215	402 00 0 00 000017 		SETZM	17
  5100
  5101	001216	701 03 0 00 001253 		WRUBR	MTBLK4
  5102	001217	205 17 0 00 777761 		MOVSI	17,-17
  5103	001220	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5104	001221	253 17 0 00 001220 		AOBJN	17,.-1
  5105	001222	402 00 0 00 000017 		SETZM	17
  5106
  5107	001223	701 03 0 00 001254 		WRUBR	MTBLK3
  5108	001224	205 17 0 00 777761 		MOVSI	17,-17
  5109	001225	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5110	001226	253 17 0 00 001225 		AOBJN	17,.-1
  5111	001227	402 00 0 00 000017 		SETZM	17
  5112
  5113	001230	701 03 0 00 001255 		WRUBR	MTBLK2
  5114	001231	205 17 0 00 777761 		MOVSI	17,-17
  5115	001232	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5116	001233	253 17 0 00 001232 		AOBJN	17,.-1
  5117	001234	402 00 0 00 000017 		SETZM	17
  5118
  5119	001235	701 03 0 00 001256 		WRUBR	MTBLK1
  5120	001236	205 17 0 00 777761 		MOVSI	17,-17
  5121	001237	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5122	001240	253 17 0 00 001237 		AOBJN	17,.-1
  5123	001241	402 00 0 00 000017 		SETZM	17
  5124
  5125	001242	701 03 0 00 001257 		WRUBR	MTBLK0
  5126	001243	205 17 0 00 777761 		MOVSI	17,-17
  5127	001244	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
  5128	001245	253 17 0 00 001244 		AOBJN	17,.-1
  5129	001246	402 00 0 00 000017 		SETZM	17
  5130
  5131	001247	254 00 1 00 000020 		JRST	@20		;START BOOT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 137
SMFILE	MAC	19-Feb-79 10:46		PROCESS TOPS-10 MAGTAPE BOOT EXE FILE                                              SEQ 0176

  5132
  5133
  5134	001250	407000	000000		MTBLK7:!	1B0!7B8		;WRUBR ARGUMENTS
  5135	001251	406000	000000		MTBLK6:!	1B0!6B8
  5136	001252	405000	000000		MTBLK5:!	1B0!5B8
  5137	001253	404000	000000		MTBLK4:!	1B0!4B8
  5138	001254	403000	000000		MTBLK3:!	1B0!3B8
  5139	001255	402000	000000		MTBLK2:!	1B0!2B8
  5140	001256	401000	000000		MTBLK1:!	1B0!1B8
  5141	001257	400000	000000		MTBLK0:!	1B0!0B8
  5142
  5143	001260	000000	000000		MTKPAL:!	0		;KEEP-ALIVE & STATUS WORD
  5144	001261	000000	000000		MTRHSV:!	0		;RH-11 BASE ADDRESS
  5145	001262	000000	000000		MTDRSV:!	0		;DRIVE NUMBER
  5146	001263	000000	000000		MTSLSV:!	0		;SLAVE NUMBER
  5147
  5148	001264	000000	000003		MTVER:!	MCNVER,,DECVER		;PRE-BOOT VERSION
  5149
  5150	001265	777760	001266		MTPNTR:!	-^D16,,MTCS1
  5151	001266	000000	000000		MTCS1:!	0
  5152	001267	000000	000000		MTWC:!	0
  5153	001270	000000	000000		MTBA:!	0
  5154	001271	000000	000000		MTFC:!	0
  5155	001272	000000	000000		MTCS2:!	0
  5156	001273	000000	000000		MTDS:!	0
  5157	001274	000000	000000		MTER:!	0
  5158	001275	000000	000000		MTAS:!	0
  5159	001276	000000	000000		MTCC:!	0
  5160	001277	000000	000000		MTDB:!	0
  5161	001300	000000	000000		MTMR:!	0
  5162	001301	000000	000000		MTDT:!	0
  5163	001302	000000	000000		MTSN:!	0
  5164	001303	000000	000000		MTTC:!	0
  5165	001304	000000	000000		MTUBP0:! 0	;ADDRESS OF FIRST WINDOW
  5166	001305	000000	000000		MTUBST:! 0	;ADDRESS OF UBA STATUS REGISTER
  5167
  5168	001306				MTPAG:!			;NEXT TWO INSTRUCTIONS MUST FOLLOW!!DO NOT MOVE
  5169	011304'					DEPHASE
  5170
  5171	011304'				MTPAGD:	BLOCK	100
  5172	011404'	000000	000000		MTPAGX:	0
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 138
SMFILE	MAC	19-Feb-79 10:46		COMMANDS -- TAKE                                                                   SEQ 0177

  5173					SUBTTL	COMMANDS -- TAKE
  5174
  5175	011405'				TAKE:	NOISE	<COMMANDS FROM FILE>
  5176	011417'	561 01 0 00 015527'		HRROI	T1,[ASCIZ "SMFILE"]
  5177	011420'	202 01 0 00 016410'		MOVEM	T1,GTJFIL
  5178	011421'	561 01 0 00 015531'		HRROI	T1,[ASCIZ "CMD"]
  5179	011422'	202 01 0 00 016411'		MOVEM	T1,GTJEXT
  5180	011423'	402 00 0 00 016406'		SETZM	GTJDEV
  5181	011424'	402 00 0 00 016407'		SETZM	GTJDIR
  5182	011425'	205 01 0 00 100000 		MOVSI	T1,(GJ%OLD)
  5183	011426'	202 01 0 00 016404'		MOVEM	T1,GTJFLG
  5184	011427'					CMD	[FLDDB.(.CMFIL)]
  5185	011440'	552 02 0 00 021161'		HRRZM	T2,CMFILE
  5186	011441'	260 17 0 00 000623'		CONFIRM
  5187
  5188	011442'	336 00 0 00 000302'		SKIPN	MONTYP
  5189	011443'	254 00 0 00 007233'		JRST	$CCL		;TOPS-10
  5190
  5191	011444'	554 01 0 00 016373'		HLRZ	T1,CSB+.CMIOJ
  5192	011445'	306 01 0 00 000100 		CAIn	T1,.PRIIN
  5193	011446'	254 00 0 00 011451'		jrst	.+3
  5194	011447'	104 00 0 00 000022 		CLOSF
  5195	011450'	260 17 0 00 015546'		ERR	<CAN NOT CLOSE OLD COMMAND FILE>
  5196	011451'	550 01 0 00 021161'		HRRZ	T1,CMFILE
  5197	011452'	200 02 0 00 015550'		MOVE	T2,[7B5+OF%RD]
  5198	011453'	104 00 0 00 000021 		OPENF
  5199	011454'	260 17 0 00 015555'		ERR	<CAN NOT OPEN FILE>
  5200	011455'	514 01 0 00 000001 		HRLZ	T1,T1
  5201	011456'	541 01 0 00 377777 		HRRI	T1,.NULIO
  5202	011457'	202 01 0 00 016373'		MOVEM	T1,CSB+.CMIOJ
  5203	011460'	331 00 0 00 016573'		SKIPL	ECOFLG
  5204	011461'	476 00 0 00 021165'		SETOM	INTAKE
  5205	011462'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 139
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0178

  5206					SUBTTL	COMMAND SUBROUTINES -- DPYFLD
  5207
  5208		260740	011463'		OPDEF	DPYNOF	[GO	$DPYNOF]
  5209
  5210					$DPYNOF:PNTMSF	[ASCIZ/%VALUE DID NOT FIT IN FIELD
  5211	011463'	037 01 0 00 015557'	/]
  5212	011464'	263 17 0 00 000000 		RET
  5213
  5214	011465'	201 01 0 00 012117'	DPYFLD:	MOVEI	T1,ENDDPY
  5215	011466'	202 01 0 00 021156'		MOVEM	T1,CZADR
  5216	011467'	202 17 0 00 021157'		MOVEM	P,CZSP
  5217	011470'	037 01 0 00 000064'		PCRL2F
  5218
  5219	011471'	200 06 0 00 021152'		MOVE	T6,EXMADR
  5220	011472'	221 06 0 00 000003 		IMULI	T6,3
  5221	011473'	336 00 0 00 021027'		SKIPN	BC1FLG
  5222	011474'	271 06 0 00 401000 		ADDI	T6,CRAM
  5223	011475'	332 00 0 00 021027'		SKIPE	BC1FLG
  5224	011476'	271 06 0 00 417000 		ADDI	T6,CRMBC1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 140
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0179

  5225
  5226	011477'	037 04 0 00 015565'	DPYCALL:PMSGF	< CALL/>
  5227	011500'	135 02 0 00 015567'		LDB	T2,[POINT 1,2(T6),26]
  5228	011501'	260 17 0 00 012141'		GO	UPDFLD
  5229	011502'	254 00 0 00 011477'		 JRST	DPYCALL
  5230	011503'	137 02 0 00 015567'		DPB	T2,[POINT 1,2(T6),26]
  5231	011504'	242 02 0 00 777777 		LSH	T2,-1
  5232	011505'	322 02 0 00 011507'		JUMPE	T2,.+2
  5233	011506'	260 17 0 00 011463'		DPYNOF
  5234
  5235	011507'	037 04 0 00 015570'	DPYJ:	PMSGF	< J/>
  5236	011510'	135 02 0 00 015571'		LDB	T2,[POINT 12,2(T6),23]
  5237	011511'	260 17 0 00 012141'		GO	UPDFLD
  5238	011512'	254 00 0 00 011477'		 JRST	DPYCALL
  5239	011513'	137 02 0 00 015571'		DPB	T2,[POINT 12,2(T6),23]
  5240	011514'	242 02 0 00 777764 		LSH	T2,-^D12
  5241	011515'	322 02 0 00 011517'		JUMPE	T2,.+2
  5242	011516'	260 17 0 00 011463'		DPYNOF
  5243
  5244	011517'	037 04 0 00 015572'	DPYNBR:	PMSGF	< #/>
  5245	011520'	135 02 0 00 013701'		LDB	T2,[POINT 6,1(T6),35]
  5246	011521'	242 02 0 00 000014 		LSH	T2,^D12
  5247	011522'	135 01 0 00 013700'		LDB	T1,[POINT 12,1(T6),23]
  5248	011523'	434 02 0 00 000001 		OR	T2,T1
  5249	011524'	260 17 0 00 012141'		GO	UPDFLD
  5250	011525'	254 00 0 00 011507'		 JRST	DPYJ
  5251	011526'	137 02 0 00 013700'		DPB	T2,[POINT 12,1(T6),23]
  5252	011527'	242 02 0 00 777764 		LSH	T2,-^D12
  5253	011530'	137 02 0 00 013701'		DPB	T2,[POINT 6,1(T6),35]
  5254	011531'	242 02 0 00 777772 		LSH	T2,-6
  5255	011532'	322 02 0 00 011534'		JUMPE	T2,.+2
  5256	011533'	260 17 0 00 011463'		DPYNOF
  5257
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 141
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0180

  5258	011534'	037 04 0 00 015573'	DPYALU:	PMSGF	< ALU/>
  5259	011535'	135 02 0 00 015574'		LDB	T2,[POINT 3,(T6),2]
  5260	011536'	260 17 0 00 012141'		GO	UPDFLD
  5261	011537'	254 00 0 00 011517'		 JRST	DPYNBR
  5262	011540'	137 02 0 00 015574'		DPB	T2,[POINT 3,(T6),2]
  5263	011541'	242 02 0 00 777775 		LSH	T2,-3
  5264	011542'	322 02 0 00 011544'		JUMPE	T2,.+2
  5265	011543'	260 17 0 00 011463'		DPYNOF
  5266
  5267	011544'	037 04 0 00 015575'		PMSGF	<S/D^>
  5268	011545'	037 04 0 00 015576'	DPYLSRC:PMSGF	<  LSRC/>
  5269	011546'	135 02 0 00 015600'		LDB	T2,[POINT 3,(T6),5]
  5270	011547'	260 17 0 00 012141'		GO	UPDFLD
  5271	011550'	254 00 0 00 011534'		 JRST	DPYALU
  5272	011551'	137 02 0 00 015600'		DPB	T2,[POINT 3,(T6),5]
  5273	011552'	242 02 0 00 777775 		LSH	T2,-3
  5274	011553'	322 02 0 00 011555'		JUMPE	T2,.+2
  5275	011554'	260 17 0 00 011463'		DPYNOF
  5276
  5277	011555'	037 04 0 00 015601'	DPYRSRC:PMSGF	<  RSRC/>
  5278	011556'	135 02 0 00 015603'		LDB	T2,[POINT 3,(T6),8]
  5279	011557'	260 17 0 00 012141'		GO	UPDFLD
  5280	011560'	254 00 0 00 011545'		 JRST	DPYLSRC
  5281	011561'	137 02 0 00 015603'		DPB	T2,[POINT 3,(T6),8]
  5282	011562'	242 02 0 00 777775 		LSH	T2,-3
  5283	011563'	322 02 0 00 011565'		JUMPE	T2,.+2
  5284	011564'	260 17 0 00 011463'		DPYNOF
  5285
  5286	011565'	037 04 0 00 015604'	DPYDEST:PMSGF	<  DEST/>
  5287	011566'	135 02 0 00 015606'		LDB	T2,[POINT 3,(T6),29]
  5288	011567'	260 17 0 00 012141'		GO	UPDFLD
  5289	011570'	254 00 0 00 011555'		 JRST	DPYRSRC
  5290	011571'	137 02 0 00 015606'		DPB	T2,[POINT 3,(T6),29]
  5291	011572'	242 02 0 00 777775 		LSH	T2,-3
  5292	011573'	322 02 0 00 011575'		JUMPE	T2,.+2
  5293	011574'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 142
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0181

  5294
  5295	011575'	037 04 0 00 015607'		PMSGF	<A/B^>
  5296	011576'	037 04 0 00 015610'	DPYA:	PMSGF	<  A/>
  5297	011577'	135 02 0 00 015611'		LDB	T2,[POINT 4,(T6),17]
  5298	011600'	260 17 0 00 012141'		GO	UPDFLD
  5299	011601'	254 00 0 00 011565'		 JRST	DPYDEST
  5300	011602'	137 02 0 00 015611'		DPB	T2,[POINT 4,(T6),17]
  5301	011603'	242 02 0 00 777774 		LSH	T2,-4
  5302	011604'	322 02 0 00 011606'		JUMPE	T2,.+2
  5303	011605'	260 17 0 00 011463'		DPYNOF
  5304
  5305	011606'	037 04 0 00 015612'	DPYB:	PMSGF	<  B/>
  5306	011607'	135 02 0 00 015613'		LDB	T2,[POINT 4,(T6),23]
  5307	011610'	260 17 0 00 012141'		GO	UPDFLD
  5308	011611'	254 00 0 00 011576'		 JRST	DPYA
  5309	011612'	137 02 0 00 015613'		DPB	T2,[POINT 4,(T6),23]
  5310	011613'	242 02 0 00 777774 		LSH	T2,-4
  5311	011614'	322 02 0 00 011616'		JUMPE	T2,.+2
  5312	011615'	260 17 0 00 011463'		DPYNOF
  5313
  5314	011616'	037 04 0 00 015614'		PMSGF	<RBM^>
  5315	011617'	037 04 0 00 015615'	DPYRAM:	PMSGF	<  RAMADR/>
  5316	011620'	135 02 0 00 015617'		LDB	T2,[POINT 3,(T6),26]
  5317	011621'	260 17 0 00 012141'		GO	UPDFLD
  5318	011622'	254 00 0 00 011606'		 JRST	DPYB
  5319	011623'	137 02 0 00 015617'		DPB	T2,[POINT 3,(T6),26]
  5320	011624'	242 02 0 00 777775 		LSH	T2,-3
  5321	011625'	322 02 0 00 011627'		JUMPE	T2,.+2
  5322	011626'	260 17 0 00 011463'		DPYNOF
  5323
  5324	011627'	037 04 0 00 015620'	DPYDBUS:PMSGF	<  DBUS/>
  5325	011630'	135 02 0 00 015622'		LDB	T2,[POINT 2,(T6),13]
  5326	011631'	260 17 0 00 012141'		GO	UPDFLD
  5327	011632'	254 00 0 00 011617'		 JRST	DPYRAM
  5328	011633'	137 02 0 00 015622'		DPB	T2,[POINT 2,(T6),13]
  5329	011634'	242 02 0 00 777776 		LSH	T2,-2
  5330	011635'	322 02 0 00 011637'		JUMPE	T2,.+2
  5331	011636'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 143
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0182

  5332	011637'	037 04 0 00 015623'	DPYDBM:	PMSGF	<  DBM/>
  5333	011640'	135 02 0 00 015625'		LDB	T2,[POINT 3,(T6),11]
  5334	011641'	260 17 0 00 012141'		GO	UPDFLD
  5335	011642'	254 00 0 00 011627'		 JRST	DPYDBUS
  5336	011643'	137 02 0 00 015625'		DPB	T2,[POINT 3,(T6),11]
  5337	011644'	242 02 0 00 777775 		LSH	T2,-3
  5338	011645'	322 02 0 00 011647'		JUMPE	T2,.+2
  5339	011646'	260 17 0 00 011463'		DPYNOF
  5340
  5341	011647'	037 04 0 00 015626'	DPYSPEC:PMSGF	< SPEC/>
  5342	011650'	135 02 0 00 015630'		LDB	T2,[POINT 3,2(T6),32]
  5343	011651'	242 02 0 00 000003 		LSH	T2,3
  5344	011652'	135 01 0 00 015631'		LDB	T1,[POINT 3,1(T6),8]
  5345	011653'	434 02 0 00 000001 		OR	T2,T1
  5346	011654'	260 17 0 00 012141'		GO	UPDFLD
  5347	011655'	254 00 0 00 011637'		 JRST	DPYDBM
  5348	011656'	137 02 0 00 015631'		DPB	T2,[POINT 3,1(T6),8]
  5349	011657'	242 02 0 00 777775 		LSH	T2,-3
  5350	011660'	137 02 0 00 015630'		DPB	T2,[POINT 3,2(T6),32]
  5351	011661'	242 02 0 00 777775 		LSH	T2,-3
  5352	011662'	322 02 0 00 011664'		JUMPE	T2,.+2
  5353	011663'	260 17 0 00 011463'		DPYNOF
  5354
  5355	011664'	037 04 0 00 015632'	DPYDISP:PMSGF	< DISP/>
  5356	011665'	135 02 0 00 015634'		LDB	T2,[POINT 3,2(T6),35]
  5357	011666'	242 02 0 00 000003 		LSH	T2,3
  5358	011667'	135 01 0 00 015635'		LDB	T1,[POINT 3,1(T6),5]
  5359	011670'	434 02 0 00 000001 		OR	T2,T1
  5360	011671'	260 17 0 00 012141'		GO	UPDFLD
  5361	011672'	254 00 0 00 011647'		 JRST	DPYSPEC
  5362	011673'	137 02 0 00 015635'		DPB	T2,[POINT 3,1(T6),5]
  5363	011674'	242 02 0 00 777775 		LSH	T2,-3
  5364	011675'	137 02 0 00 015634'		DPB	T2,[POINT 3,2(T6),35]
  5365	011676'	242 02 0 00 777775 		LSH	T2,-3
  5366	011677'	322 02 0 00 011701'		JUMPE	T2,.+2
  5367	011700'	260 17 0 00 011463'		DPYNOF
  5368
  5369	011701'	037 04 0 00 015636'	DPYSKIP:PMSGF	< SKIP/>
  5370	011702'	135 02 0 00 015640'		LDB	T2,[POINT 4,2(T6),29]
  5371	011703'	242 02 0 00 000003 		LSH	T2,3
  5372	011704'	135 01 0 00 015641'		LDB	T1,[POINT 3,1(T6),11]
  5373	011705'	434 02 0 00 000001 		OR	T2,T1
  5374	011706'	260 17 0 00 012141'		GO	UPDFLD
  5375	011707'	254 00 0 00 011664'		 JRST	DPYDISP
  5376	011710'	137 02 0 00 015641'		DPB	T2,[POINT 3,1(T6),11]
  5377	011711'	242 02 0 00 777775 		LSH	T2,-3
  5378	011712'	137 02 0 00 015640'		DPB	T2,[POINT 4,2(T6),29]
  5379	011713'	242 02 0 00 777774 		LSH	T2,-4
  5380	011714'	322 02 0 00 011716'		JUMPE	T2,.+2
  5381	011715'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 144
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0183

  5382	011716'	037 04 0 00 015642'	DPYT:	PMSGF	< T/>
  5383	011717'	135 02 0 00 015643'		LDB	T2,[POINT 2,2(T6),25]
  5384	011720'	260 17 0 00 012141'		GO	UPDFLD
  5385	011721'	254 00 0 00 011701'		 JRST	DPYSKIP
  5386	011722'	137 02 0 00 015643'		DPB	T2,[POINT 2,2(T6),25]
  5387	011723'	242 02 0 00 777776 		LSH	T2,-2
  5388	011724'	322 02 0 00 011726'		JUMPE	T2,.+2
  5389	011725'	260 17 0 00 011463'		DPYNOF
  5390
  5391	011726'	037 04 0 00 015644'	DPYCRY:	PMSGF	< CARRY IN/>
  5392	011727'	135 02 0 00 015646'		LDB	T2,[POINT 1,1(T6),1]
  5393	011730'	260 17 0 00 012141'		GO	UPDFLD
  5394	011731'	254 00 0 00 011716'		 JRST	DPYT
  5395	011732'	137 02 0 00 015646'		DPB	T2,[POINT 1,1(T6),1]
  5396	011733'	242 02 0 00 777777 		LSH	T2,-1
  5397	011734'	322 02 0 00 011736'		JUMPE	T2,.+2
  5398	011735'	260 17 0 00 011463'		DPYNOF
  5399
  5400	011736'	037 04 0 00 015647'	DPYLSC:	PMSGF	< LOAD SC/>
  5401	011737'	135 02 0 00 015651'		LDB	T2,[POINT 1,(T6),30]
  5402	011740'	260 17 0 00 012141'		GO	UPDFLD
  5403	011741'	254 00 0 00 011726'		 JRST	DPYCRY
  5404	011742'	137 02 0 00 015651'		DPB	T2,[POINT 1,(T6),30]
  5405	011743'	242 02 0 00 777777 		LSH	T2,-1
  5406	011744'	322 02 0 00 011746'		JUMPE	T2,.+2
  5407	011745'	260 17 0 00 011463'		DPYNOF
  5408
  5409	011746'	037 04 0 00 015652'	DPYLFE:	PMSGF	< LOAD FE/>
  5410	011747'	135 02 0 00 015654'		LDB	T2,[POINT 1,(T6),31]
  5411	011750'	260 17 0 00 012141'		GO	UPDFLD
  5412	011751'	254 00 0 00 011736'		 JRST	DPYLSC
  5413	011752'	137 02 0 00 015654'		DPB	T2,[POINT 1,(T6),31]
  5414	011753'	242 02 0 00 777777 		LSH	T2,-1
  5415	011754'	322 02 0 00 011756'		JUMPE	T2,.+2
  5416	011755'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 145
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0184

  5417	011756'	037 04 0 00 015655'	DPYFMW:	PMSGF	< FM WRITE/>
  5418	011757'	135 02 0 00 015657'		LDB	T2,[POINT 1,1(T6),24]
  5419	011760'	260 17 0 00 012141'		GO	UPDFLD
  5420	011761'	254 00 0 00 011746'		 JRST	DPYLFE
  5421	011762'	137 02 0 00 015657'		DPB	T2,[POINT 1,1(T6),24]
  5422	011763'	242 02 0 00 777777 		LSH	T2,-1
  5423	011764'	322 02 0 00 011766'		JUMPE	T2,.+2
  5424	011765'	260 17 0 00 011463'		DPYNOF
  5425
  5426	011766'	037 04 0 00 015660'	DPYMEM:	PMSGF	< MEM CYCLE/>
  5427	011767'	135 02 0 00 015662'		LDB	T2,[POINT 1,1(T6),2]
  5428	011770'	260 17 0 00 012141'		GO	UPDFLD
  5429	011771'	254 00 0 00 011756'		 JRST	DPYFMW
  5430	011772'	137 02 0 00 015662'		DPB	T2,[POINT 1,1(T6),2]
  5431	011773'	242 02 0 00 777777 		LSH	T2,-1
  5432	011774'	322 02 0 00 011776'		JUMPE	T2,.+2
  5433	011775'	260 17 0 00 011463'		DPYNOF
  5434
  5435	011776'	037 04 0 00 015663'	DPYDIV:	PMSGF	< DIVIDE/>
  5436	011777'	135 02 0 00 015665'		LDB	T2,[POINT 1,1(T6),28]
  5437	012000'	260 17 0 00 012141'		GO	UPDFLD
  5438	012001'	254 00 0 00 011766'		 JRST	DPYMEM
  5439	012002'	137 02 0 00 015665'		DPB	T2,[POINT 1,1(T6),28]
  5440	012003'	242 02 0 00 777777 		LSH	T2,-1
  5441	012004'	322 02 0 00 012006'		JUMPE	T2,.+2
  5442	012005'	260 17 0 00 011463'		DPYNOF
  5443
  5444	012006'	037 04 0 00 015666'	DPYMP:	PMSGF	< MULTI PREC/>
  5445	012007'	135 02 0 00 015671'		LDB	T2,[POINT 1,1(T6),29]
  5446	012010'	260 17 0 00 012141'		GO	UPDFLD
  5447	012011'	254 00 0 00 011776'		 JRST	DPYDIV
  5448	012012'	137 02 0 00 015671'		DPB	T2,[POINT 1,1(T6),29]
  5449	012013'	242 02 0 00 777777 		LSH	T2,-1
  5450	012014'	322 02 0 00 012016'		JUMPE	T2,.+2
  5451	012015'	260 17 0 00 011463'		DPYNOF
  5452
  5453	012016'	037 04 0 00 015672'	DPYMS:	PMSGF	< MULTI SHIFT/>
  5454	012017'	135 02 0 00 015675'		LDB	T2,[POINT 1,1(T6),25]
  5455	012020'	260 17 0 00 012141'		GO	UPDFLD
  5456	012021'	254 00 0 00 012006'		 JRST	DPYMP
  5457	012022'	137 02 0 00 015675'		DPB	T2,[POINT 1,1(T6),25]
  5458	012023'	242 02 0 00 777777 		LSH	T2,-1
  5459	012024'	322 02 0 00 012026'		JUMPE	T2,.+2
  5460	012025'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 146
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0185

  5461	012026'	037 04 0 00 015676'		PMSGF	<C/LR^>
  5462	012027'	037 04 0 00 015677'	DPYCLL:	PMSGF	<  DP CLOCK L/>
  5463	012030'	135 02 0 00 015702'		LDB	T2,[POINT 1,(T6),18]
  5464	012031'	260 17 0 00 012141'		GO	UPDFLD
  5465	012032'	254 00 0 00 012006'		 JRST	DPYMP
  5466	012033'	137 02 0 00 015702'		DPB	T2,[POINT 1,(T6),18]
  5467	012034'	242 02 0 00 777777 		LSH	T2,-1
  5468	012035'	322 02 0 00 012037'		JUMPE	T2,.+2
  5469	012036'	260 17 0 00 011463'		DPYNOF
  5470
  5471	012037'	037 04 0 00 015703'	DPYGEL:	PMSGF	<  PAR EN L/>
  5472	012040'	135 02 0 00 015705'		LDB	T2,[POINT 1,1(T6),26]
  5473	012041'	260 17 0 00 012141'		GO	UPDFLD
  5474	012042'	254 00 0 00 012027'		 JRST	DPYCLL
  5475	012043'	137 02 0 00 015705'		DPB	T2,[POINT 1,1(T6),26]
  5476	012044'	242 02 0 00 777777 		LSH	T2,-1
  5477	012045'	322 02 0 00 012047'		JUMPE	T2,.+2
  5478	012046'	260 17 0 00 011463'		DPYNOF
  5479
  5480	012047'	037 04 0 00 015706'	DPYCHL:	PMSGF	<  CHKL/>
  5481	012050'	135 02 0 00 015710'		LDB	T2,[POINT 1,(T6),32]
  5482	012051'	260 17 0 00 012141'		GO	UPDFLD
  5483	012052'	254 00 0 00 012037'		 JRST	DPYGEL
  5484	012053'	137 02 0 00 015710'		DPB	T2,[POINT 1,(T6),32]
  5485	012054'	242 02 0 00 777777 		LSH	T2,-1
  5486	012055'	322 02 0 00 012057'		JUMPE	T2,.+2
  5487	012056'	260 17 0 00 011463'		DPYNOF
  5488
  5489	012057'	037 04 0 00 015711'	DPYCLR:	PMSGF	<  DP CLOCK R/>
  5490	012060'	135 02 0 00 015714'		LDB	T2,[POINT 1,(T6),19]
  5491	012061'	260 17 0 00 012141'		GO	UPDFLD
  5492	012062'	254 00 0 00 012047'		 JRST	DPYCHL
  5493	012063'	137 02 0 00 015714'		DPB	T2,[POINT 1,(T6),19]
  5494	012064'	242 02 0 00 777777 		LSH	T2,-1
  5495	012065'	322 02 0 00 012067'		JUMPE	T2,.+2
  5496	012066'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 147
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0186

  5497	012067'	037 04 0 00 015715'	DPYGER:	PMSGF	<  PAR EN R/>
  5498	012070'	135 02 0 00 015717'		LDB	T2,[POINT 1,1(T6),27]
  5499	012071'	260 17 0 00 012141'		GO	UPDFLD
  5500	012072'	254 00 0 00 012057'		 JRST	DPYCLR
  5501	012073'	137 02 0 00 015717'		DPB	T2,[POINT 1,1(T6),27]
  5502	012074'	242 02 0 00 777777 		LSH	T2,-1
  5503	012075'	322 02 0 00 012077'		JUMPE	T2,.+2
  5504	012076'	260 17 0 00 011463'		DPYNOF
  5505
  5506	012077'	037 04 0 00 015720'	DPYCHR:	PMSGF	<  CHKR/>
  5507	012100'	135 02 0 00 015722'		LDB	T2,[POINT 1,(T6),33]
  5508	012101'	260 17 0 00 012141'		GO	UPDFLD
  5509	012102'	254 00 0 00 012067'		 JRST	DPYGER
  5510	012103'	137 02 0 00 015722'		DPB	T2,[POINT 1,(T6),33]
  5511	012104'	242 02 0 00 777777 		LSH	T2,-1
  5512	012105'	322 02 0 00 012107'		JUMPE	T2,.+2
  5513	012106'	260 17 0 00 011463'		DPYNOF
  5514
  5515	012107'	037 04 0 00 015723'	DPYMK:	PMSGF	< MARK/>
  5516	012110'	135 02 0 00 015725'		LDB	T2,[POINT 1,(T6),35]
  5517	012111'	260 17 0 00 012141'		GO	UPDFLD
  5518	012112'	254 00 0 00 012077'		 JRST	DPYCHR
  5519	012113'	137 02 0 00 015725'		DPB	T2,[POINT 1,(T6),35]
  5520	012114'	242 02 0 00 777777 		LSH	T2,-1
  5521	012115'	322 02 0 00 012117'		JUMPE	T2,.+2
  5522	012116'	260 17 0 00 011463'		DPYNOF
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 148
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- DPYFLD                                                      SEQ 0187

  5523
  5524	012117'	402 00 0 00 021156'	ENDDPY:	SETZM	CZADR
  5525	012120'	200 17 0 00 021157'		MOVE	P,CZSP
  5526	012121'	202 06 0 00 021033'		MOVEM	T6,CRAMT6
  5527
  5528	012122'	200 01 0 06 000002 		MOVE	T1,2(T6)		;RECREATE SHUFFLE FORMAT
  5529	012123'	200 02 0 06 000001 		MOVE	T2,1(T6)		;MICROCODE WORD
  5530	012124'	245 01 0 00 000014 		ROTC	T1,^D12
  5531	012125'	202 01 0 00 000010 		MOVEM	T1,AC10
  5532
  5533	012126'	200 01 0 06 000000 		MOVE	T1,(T6)
  5534	012127'	200 02 0 06 000001 		MOVE	T2,1(T6)
  5535	012130'	245 01 0 00 000014 		ROTC	T1,^D12
  5536	012131'	202 02 0 00 000011 		MOVEM	T2,AC11
  5537
  5538	012132'	200 12 0 06 000000 		MOVE	AC12,(T6)
  5539	012133'	242 12 0 00 000014 		LSH	AC12,^D12
  5540
  5541	012134'	400 01 0 00 000000 		SETZ	T1,
  5542	012135'	137 01 0 00 010154'		DPB	T1,PB.CRA		;CLEAR PRESENT PARITY BITS
  5543	012136'	137 01 0 00 010155'		DPB	T1,PB.CRM
  5544
  5545	012137'	260 17 0 00 007721'		GO	KSXX			;COMPUTE PARITY & RESTORE
  5546
  5547	012140'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 149
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- UPDFLD                                                      SEQ 0188

  5548					SUBTTL	COMMAND SUBROUTINES -- UPDFLD
  5549
  5550					;*SUBROUTINE TO GET NEW VALUE FOR FIELD
  5551					;*CALL WITH:
  5552					;*	T2/	OLD VALUE
  5553					;*	GO	UPDFLD
  5554					;*	HERE IF "^" (UPARROW), BACKUP ONE FIELD
  5555					;*	HERE WITH NEW VALUE IN T2
  5556
  5557	012141'	200 00 0 00 000002 	UPDFLD:	MOVE	T2
  5558	012142'	037 17 0 00 000003 		PNTOCf
  5559	012143'	336 00 0 00 021163'		SKIPN	DEPFLG
  5560	012144'	254 00 0 00 005176*		RETSKP
  5561	012145'	202 02 0 00 021074'		MOVEM	T2,VALUE#
  5562	012146'	037 01 0 00 000011 		PTAB
  5563	012147'	336 00 0 00 000302'		SKIPN	MONTYP
  5564	012150'	254 00 0 00 012177'		JRST	UPDFL1
  5565	012151'	554 01 0 00 016373'		HLRZ	T1,CSB+.CMIOJ
  5566	012152'	104 00 0 00 000050 		BIN
  5567	012153'	306 02 0 00 000015 		CAIN	T2,15
  5568	012154'	254 00 0 00 012167'		JRST	GTFLD1
  5569	012155'	306 02 0 00 000136 		CAIN	T2,"^"
  5570	012156'	254 00 0 00 012175'		JRST	CRPOPJ		;UPARROW
  5571	012157'	104 00 0 00 000042 		BKJFN			;BACKUP INPUT POINTER 1 BYTE
  5572	012160'	260 17 0 00 015733'		ERR	<UPDFLD: BKJFN FAILED>
  5573	012161'	554 01 0 00 016373'	UPFLD2:	HLRZ	T1,CSB+.CMIOJ
  5574	012162'	201 03 0 00 000010 		MOVEI	T3,10
  5575	012163'	104 00 0 00 000225 		NIN
  5576						JRST   [PNTMSF [ASCIZ/
  5577					TRY AGAIN: /]
  5578	012164'	254 00 0 00 015740'			JRST UPFLD2]
  5579	012165'	350 00 0 17 000000 		AOS	(P)
  5580	012166'	263 17 0 00 000000 		RTN
  5581
  5582	012167'	104 00 0 00 000050 	GTFLD1:	BIN
  5583	012170'	302 02 0 00 000012 		CAIE	T2,12
  5584	012171'	260 17 0 00 015753'		ERR	<CARRIAGE RETURN NOT FOLLOWED BY LINE FEED>
  5585	012172'	200 02 0 00 021074'		MOVE	T2,VALUE
  5586	012173'	350 00 0 17 000000 		AOS	(P)
  5587	012174'	263 17 0 00 000000 		RTN
  5588
  5589	012175'	037 01 0 00 000063'	CRPOPJ:	PCRLF
  5590	012176'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 150
SMFILE	MAC	19-Feb-79 10:46		COMMAND SUBROUTINES -- UPDFLD                                                      SEQ 0189

  5591
  5592	012177'	037 03 0 00 000003 	UPDFL1:	TTIOCT
  5593	012200'	254 00 0 00 012217'		JRST	UPDFL3
  5594	012201'	336 00 0 00 000301'		SKIPN	TTNBRF
  5595	012202'	254 00 0 00 012211'		JRST	UPDFL2
  5596	012203'	200 02 0 00 000000 		MOVE	T2,0
  5597	012204'	200 00 0 00 000053'		MOVE	0,$CHRIN
  5598	012205'	302 00 0 00 000015 		CAIE	0,15
  5599						JRST	[PNTMSF	[ASCIZ/
  5600					TRY AGAIN: /]
  5601	012206'	254 00 0 00 015755'			JRST	UPDFL1]
  5602	012207'	350 00 0 17 000000 		AOS	(P)
  5603	012210'	263 17 0 00 000000 		RTN
  5604
  5605	012211'	200 00 0 00 000053'	UPDFL2:	MOVE	0,$CHRIN
  5606	012212'	302 00 0 00 000015 		CAIE	0,15
  5607	012213'	254 00 0 00 012223'		JRST	UPDFL4
  5608	012214'	200 02 0 00 021074'		MOVE	T2,VALUE
  5609	012215'	350 00 0 17 000000 		AOS	(P)
  5610	012216'	263 17 0 00 000000 		RTN
  5611
  5612	012217'	306 00 0 00 000136 	UPDFL3:	CAIN	0,"^"
  5613	012220'	254 00 0 00 012175'		JRST	CRPOPJ
  5614	012221'	306 00 0 00 000032 		CAIN	0,"Z"-100
  5615	012222'	254 00 0 00 012225'		JRST	UPDFL5
  5616
  5617	012223'				UPDFL4:	PNTMSF	[ASCIZ/
  5618	012223'	037 01 0 00 015735'	TRY AGAIN: /]
  5619	012224'	254 00 0 00 012177'		JRST	UPDFL1
  5620
  5621	012225'	037 01 0 00 000063'	UPDFL5:	PCRLF
  5622	012226'	254 00 0 00 012117'		JRST	ENDDPY
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 151
SMFILE	MAC	19-Feb-79 10:46		DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD                                          SEQ 0190

  5623					SUBTTL	DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD
  5624
  5625	012227'				CRMFLD:	PNTMSF	[ASCIZ	%
  5626
  5627					C    J   #  ALU S/D  A/B RBM SPEC DISP SKIP T C SC FE FM MC DV MP C/LR M
  5628	012227'	037 01 0 00 015757'	%]
  5629	012230'	135 00 0 00 015567'		LDB	[POINT 1,2(T6),26]
  5630	012231'	202 00 0 00 021247'		MOVEM	CFCALL
  5631	012232'	037 01 0 00 000001 		PNT1F			;PRINT "CALL"
  5632	012233'	037 01 0 00 000040 		PSPACE
  5633
  5634	012234'	135 00 0 00 015571'		LDB	[POINT 12,2(T6),23]
  5635	012235'	202 00 0 00 021250'		MOVEM	CFJ
  5636	012236'	037 04 0 00 000001 		PNT4F			;PRINT "J"
  5637	012237'	037 01 0 00 000040 		PSPACE
  5638
  5639	012240'	135 00 0 00 013701'		LDB	[POINT 6,1(T6),35]
  5640	012241'	242 00 0 00 000014 		LSH	^D12
  5641	012242'	135 01 0 00 013700'		LDB	T1,[POINT 12,1(T6),23]
  5642	012243'	434 00 0 00 000001 		OR	T1
  5643	012244'	202 00 0 00 021251'		MOVEM	CFNBR
  5644	012245'	037 06 0 00 000001 		PNT6F			;PRINT "#"
  5645	012246'	037 01 0 00 000040 		PSPACE
  5646
  5647	012247'	135 00 0 00 015574'		LDB	[POINT 3,(T6),2]
  5648	012250'	202 00 0 00 021252'		MOVEM	CFALU
  5649	012251'	037 01 0 00 000001 		PNT1F			;PRINT "ALU"
  5650	012252'	037 01 0 00 000040 		PSPACE
  5651
  5652	012253'	135 00 0 00 015600'		LDB	[POINT 3,(T6),5]
  5653	012254'	242 00 0 00 000003 		LSH	3		;"LSRC"
  5654	012255'	135 01 0 00 015603'		LDB	T1,[POINT 3,(T6),8]
  5655	012256'	434 00 0 00 000001 		OR	T1
  5656	012257'	242 00 0 00 000003 		LSH	3		;"RSRC"
  5657	012260'	135 01 0 00 015606'		LDB	T1,[POINT 3,(T6),29]
  5658	012261'	434 00 0 00 000001 		OR	T1		;"DEST"
  5659	012262'	202 00 0 00 021253'		MOVEM	CFSD
  5660	012263'	037 03 0 00 000001 		PNT3F			;PRINT "S/D"
  5661	012264'	037 01 0 00 000040 		PSPACE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 152
SMFILE	MAC	19-Feb-79 10:46		DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD                                          SEQ 0191

  5662	012265'	135 00 0 00 015611'		LDB	[POINT 4,(T6),17]
  5663	012266'	242 00 0 00 000006 		LSH	6		;"A"
  5664	012267'	135 01 0 00 015613'		LDB	T1,[POINT 4,(T6),23]
  5665	012270'	434 00 0 00 000001 		OR	T1		;"B"
  5666	012271'	202 00 0 00 021254'		MOVEM	CFAB
  5667	012272'	037 04 0 00 000001 		PNT4F			;PRINT "A/B"
  5668	012273'	037 01 0 00 000040 		PSPACE
  5669
  5670	012274'	135 00 0 00 015617'		LDB	[POINT 3,(T6),26]
  5671	012275'	242 00 0 00 000003 		LSH	3		;PRINT "R"
  5672	012276'	135 01 0 00 015622'		LDB	T1,[POINT 2,(T6),13]
  5673	012277'	434 00 0 00 000001 		OR	T1		;PRINT "B"
  5674	012300'	242 00 0 00 000003 		LSH	3
  5675	012301'	135 01 0 00 015625'		LDB	T1,[POINT 3,(T6),11]
  5676	012302'	434 00 0 00 000001 		OR	T1		;PRINT "M"
  5677	012303'	202 00 0 00 021255'		MOVEM	CFRBM
  5678	012304'	037 03 0 00 000001 		PNT3F			;PRINT "RBM"
  5679	012305'	037 01 0 00 000040 		PSPACE
  5680	012306'	037 01 0 00 000040 		PSPACE
  5681	012307'	037 01 0 00 000040 		PSPACE
  5682
  5683	012310'	135 00 0 00 015630'		LDB	[POINT 3,2(T6),32]
  5684	012311'	242 00 0 00 000003 		LSH	3
  5685	012312'	135 01 0 00 015631'		LDB	T1,[POINT 3,1(T6),8]
  5686	012313'	434 00 0 00 000001 		OR	T1
  5687	012314'	202 00 0 00 021256'		MOVEM	CFSPEC
  5688	012315'	037 02 0 00 000001 		PNT2F			;PRINT "SPEC"
  5689	012316'	037 01 0 00 000040 		PSPACE
  5690	012317'	037 01 0 00 000040 		PSPACE
  5691	012320'	037 01 0 00 000040 		PSPACE
  5692
  5693	012321'	135 00 0 00 015634'		LDB	[POINT 3,2(T6),35]
  5694	012322'	242 00 0 00 000003 		LSH	3
  5695	012323'	135 01 0 00 015635'		LDB	T1,[POINT 3,1(T6),5]
  5696	012324'	434 00 0 00 000001 		OR	T1
  5697	012325'	202 00 0 00 021257'		MOVEM	CFDISP
  5698	012326'	037 02 0 00 000001 		PNT2F			;PRINT "DISP"
  5699	012327'	037 01 0 00 000040 		PSPACE
  5700	012330'	037 01 0 00 000040 		PSPACE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 153
SMFILE	MAC	19-Feb-79 10:46		DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD                                          SEQ 0192

  5701	012331'	037 01 0 00 000040 		PSPACE
  5702	012332'	135 00 0 00 015777'		LDB	[POINT 3,2(T6),29]
  5703	012333'	242 00 0 00 000003 		LSH	3
  5704	012334'	135 01 0 00 015641'		LDB	T1,[POINT 3,1(T6),11]
  5705	012335'	434 00 0 00 000001 		OR	T1
  5706	012336'	202 00 0 00 021260'		MOVEM	CFSKIP
  5707	012337'	037 02 0 00 000001 		PNT2F			;PRINT "SKIP"
  5708	012340'	037 01 0 00 000040 		PSPACE
  5709
  5710	012341'	135 00 0 00 015643'		LDB	[POINT 2,2(T6),25]
  5711	012342'	202 00 0 00 021261'		MOVEM	CFT
  5712	012343'	037 01 0 00 000001 		PNT1F			;PRINT "T"
  5713	012344'	037 01 0 00 000040 		PSPACE
  5714
  5715	012345'	135 00 0 00 015646'		LDB	[POINT 1,1(T6),1]
  5716	012346'	202 00 0 00 021262'		MOVEM	CFC
  5717	012347'	037 01 0 00 000001 		PNT1F			;PRINT "C"
  5718	012350'	037 01 0 00 000040 		PSPACE
  5719	012351'	037 01 0 00 000040 		PSPACE
  5720
  5721	012352'	135 00 0 00 015651'		LDB	[POINT 1,(T6),30]
  5722	012353'	202 00 0 00 021263'		MOVEM	CFSC
  5723	012354'	037 01 0 00 000001 		PNT1F			;PRINT "SC"
  5724	012355'	037 01 0 00 000040 		PSPACE
  5725	012356'	037 01 0 00 000040 		PSPACE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 154
SMFILE	MAC	19-Feb-79 10:46		DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD                                          SEQ 0193

  5726	012357'	135 00 0 00 015654'		LDB	[POINT 1,(T6),31]
  5727	012360'	202 00 0 00 021264'		MOVEM	CFFE
  5728	012361'	037 01 0 00 000001 		PNT1F			;PRINT "FE"
  5729	012362'	037 01 0 00 000040 		PSPACE
  5730	012363'	037 01 0 00 000040 		PSPACE
  5731
  5732	012364'	135 00 0 00 015657'		LDB	[POINT 1,1(T6),24]
  5733	012365'	202 00 0 00 021265'		MOVEM	CFFM
  5734	012366'	037 01 0 00 000001 		PNT1F			;PRINT "FM"
  5735	012367'	037 01 0 00 000040 		PSPACE
  5736	012370'	037 01 0 00 000040 		PSPACE
  5737
  5738	012371'	135 00 0 00 015662'		LDB	[POINT 1,1(T6),2]
  5739	012372'	202 00 0 00 021266'		MOVEM	CFMC
  5740	012373'	037 01 0 00 000001 		PNT1F			;PRINT "MC"
  5741	012374'	037 01 0 00 000040 		PSPACE
  5742	012375'	037 01 0 00 000040 		PSPACE
  5743
  5744	012376'	135 00 0 00 015665'		LDB	[POINT 1,1(T6),28]
  5745	012377'	202 00 0 00 021267'		MOVEM	CFDV
  5746	012400'	037 01 0 00 000001 		PNT1F			;PRINT "DV"
  5747	012401'	037 01 0 00 000040 		PSPACE
  5748	012402'	037 01 0 00 000040 		PSPACE
  5749
  5750	012403'	135 00 0 00 015671'		LDB	[POINT 1,1(T6),29]
  5751	012404'	242 00 0 00 000001 		LSH	1
  5752	012405'	135 01 0 00 015675'		LDB	T1,[POINT 1,1(T6),25]
  5753	012406'	434 00 0 00 000001 		OR	T1
  5754	012407'	202 00 0 00 021270'		MOVEM	CFMP
  5755	012410'	037 01 0 00 000001 		PNT1F			;PRINT "MP"
  5756	012411'	037 01 0 00 000040 		PSPACE
  5757	012412'	037 01 0 00 000040 		PSPACE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 155
SMFILE	MAC	19-Feb-79 10:46		DISPLAY CRAM BY FIELD BREAKDOWN -- CRMFLD                                          SEQ 0194

  5758
  5759	012413'	135 00 0 00 015702'		LDB	[POINT 1,(T6),18]
  5760	012414'	242 00 0 00 000001 		LSH	1		;"CLKL"
  5761	012415'	135 01 0 00 015705'		LDB	T1,[POINT 1,1(T6),26]
  5762	012416'	434 00 0 00 000001 		OR	T1		;"GENL"
  5763	012417'	242 00 0 00 000001 		LSH	1
  5764	012420'	135 01 0 00 015710'		LDB	T1,[POINT 1,(T6),32]
  5765	012421'	434 00 0 00 000001 		OR	T1		;"CHKL"
  5766	012422'	202 00 0 00 021271'		MOVEM	CFCL
  5767	012423'	037 01 0 00 000001 		PNT1F			;PRINT "CL"
  5768	012424'	037 01 0 00 000040 		PSPACE
  5769
  5770	012425'	135 00 0 00 015714'		LDB	[POINT 1,(T6),19]
  5771	012426'	242 00 0 00 000001 		LSH	1		;"CLKR"
  5772	012427'	135 01 0 00 015717'		LDB	T1,[POINT 1,1(T6),27]
  5773	012430'	434 00 0 00 000001 		OR	T1		;"GENR"
  5774	012431'	242 00 0 00 000001 		LSH	1
  5775	012432'	135 01 0 00 015722'		LDB	T1,[POINT 1,(T6),33]
  5776	012433'	434 00 0 00 000001 		OR	T1		;"CHKR"
  5777	012434'	202 00 0 00 021272'		MOVEM	CFCR
  5778	012435'	037 01 0 00 000001 		PNT1F			;PRINT "CR"
  5779	012436'	037 01 0 00 000040 		PSPACE
  5780
  5781	012437'	135 00 0 00 015725'		LDB	[POINT 1,(T6),35]
  5782	012440'	202 00 0 00 021273'		MOVEM	CFMARK
  5783	012441'	037 01 0 00 000001 		PNT1F			;PRINT "M"
  5784
  5785	012442'	037 01 0 00 000063'		PCRLF
  5786	012443'	263 17 0 00 000000 		RET
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 156
SMFILE	MAC	19-Feb-79 10:46		MISCELLANEOUS ROUTINES                                                             SEQ 0195

  5787					SUBTTL	MISCELLANEOUS ROUTINES
  5788
  5789	012444'	332 00 0 00 021050'	INTCOR:	SKIPE	IC1TIM#
  5790	012445'	254 00 0 00 012461'		JRST	INTCR1
  5791
  5792	012446'	205 01 0 00 436777 		MOVSI	T1,400000+<^D31*^D512>-1
  5793	012447'	047 01 0 00 000011 		CORE	T1,
  5794	012450'	260 17 0 00 016004'		ERR	<CAN'T GET HI-CORE>
  5795
  5796	012451'	402 00 0 00 000000 		SETZM			;MAKE IT WRITABLE
  5797	012452'	047 00 0 00 000036 		SETUWP
  5798	012453'	260 17 0 00 016014'		ERR	<CAN'T MAKE HI-CORE WRITABLE>
  5799
  5800	012454'	402 00 0 00 400000 		SETZM	400000
  5801	012455'	200 01 0 00 014152'		MOVE	T1,[400000,,400001]
  5802	012456'	251 01 0 00 436777 		BLT	T1,400000+<^D31*^D512>-1
  5803	012457'	476 00 0 00 021050'		SETOM	IC1TIM
  5804	012460'	263 17 0 00 000000 		RTN
  5805
  5806	012461'	402 00 0 00 000000 	INTCR1:	SETZM			;MAKE IT WRITABLE
  5807	012462'	047 00 0 00 000036 		SETUWP
  5808	012463'	260 17 0 00 016014'		ERR	<CAN'T MAKE HI-CORE WRITABLE>
  5809	012464'	263 17 0 00 000000 		RTN
  5810
  5811	012465'	201 00 0 00 005401'	CONCIN:	MOVEI	CCBLK		;SETUP ^C INTERRUPT BLOCK
  5812	012466'	202 00 0 00 000134 		MOVEM	134
  5813	012467'	402 00 0 00 005403'		SETZM	CCBLK+2
  5814	012470'	263 17 0 00 000000 		RTN
  5815
  5816	012471'	060 16 0 00 000000 	CCINT:	SETSTS	16,0		;RESET TTY
  5817	012472'	554 00 0 00 005404'		HLRZ	CCBLK+3		;GET INTERRUPT REASON
  5818	012473'	302 00 0 00 000002 		CAIE	2		;^C ?
  5819	012474'	254 04 0 00 012474'		HALT .
  5820	012475'	047 00 0 00 000012 		EXIT
  5821
  5822		060700	000000		RTTY=	SETSTS	16,0		;RESET TTY
  5823		060700	000700		STTY=	SETSTS	16,700		;SET TTY, IO.LEM+IO.SUP+IO.TEC,+.IOASC
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 157
SMFILE	MAC	19-Feb-79 10:46		PSI LOGIC -- LEVTAB & CHNTAB                                                       SEQ 0196

  5824					SUBTTL	PSI LOGIC -- LEVTAB & CHNTAB
  5825
  5826	012476'	000000	021144'		LEVTAB:	LEV1PC
  5827	012477'	000000	021145'			LEV2PC
  5828	012500'	000000	021146'			LEV3PC
  5829
  5830	012501'	000000	021147'		LFLVTB:	LF1PC
  5831	012502'	000000	021150'			LF2PC
  5832	012503'	000000	021151'			LF3PC
  5833
  5834	012504'	000000	000000		CHNTAB:	0			;00 UNUSED
  5835	012505'	000000	000000			0			;01 UNUSED
  5836	012506'	000000	000000			0			;02 UNUSED
  5837	012507'	000000	000000			0			;03 UNUSED
  5838	012510'	000000	000000			0			;04 UNUSED
  5839	012511'	000000	000000			0			;05 UNUSED
  5840	012512'	000000	000000			0			;06 ARITHMETIC OVERFLOW
  5841	012513'	000000	000000			0			;07 FLOATING POINT OVERFLOW
  5842	012514'	000000	000000			0			;08 RESERVED
  5843	012515'	000000	000000			0			;09 PDL OV
  5844	012516'	000000	000000			0			;10 END OF FILE
  5845	012517'	000000	000000			0			;11 DATA ERROR
  5846	012520'	000000	000000			0			;12 RESERVED
  5847	012521'	000000	000000			0			;13 RESERVED
  5848	012522'	000000	000000			0			;14 RESERVED
  5849	012523'	000000	000000			0			;15 ILLEGAL INSTRUCTION
  5850	012524'	000000	000000			0			;16 ILLEGAL MEMORY READ
  5851	012525'	000000	000000			0			;17 ILLEGAL MEMORY WRITE
  5852	012526'	000000	000000			0			;18 RESERVED
  5853	012527'	000002	012621'			2,,FRKERR		;19 INFERIOR PROCESS TERMINATION
  5854	012530'	000000	000000			0			;20 SYSTEM RESOURCES EXHAUSTED
  5855	012531'	000000	000000			0			;21 RESERVED
  5856	012532'	000000	000000			0			;22 NON-X-PAGE
  5857	012533'	000000	000000			0			;23 UNUSED
  5858	012534'	000000	000000			0			;24 UNUSED
  5859	012535'	000000	000000			0			;25 UNUSED
  5860	012536'	000000	000000			0			;26 UNUSED
  5861	012537'	000000	000000			0			;27 UNUSED
  5862	012540'	000000	000000			0			;28 UNUSED
  5863	012541'	000000	000000			0			;29 UNUSED
  5864	012542'	000001	012555'			1,,CTLX			;30 CONTROL-X
  5865	012543'	000001	012550'			1,,CTLC			;31 CONTROL-C
  5866	012544'	000001	012563'			1,,CTLZ			;32 CONTROL-Z
  5867	012545'	000001	012573'			1,,CTLT			;33 CONTROL-T
  5868	012546'	000001	012617'			1,,ctlo			;34 control-o
  5869	012547'	000000	000000			0			;35 UNUSED
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 158
SMFILE	MAC	19-Feb-79 10:46		PSI LOGIC -- CONTROL-C AND CONTROL-X                                               SEQ 0197

  5870					SUBTTL PSI LOGIC -- CONTROL-C AND CONTROL-X
  5871
  5872					;*HERE ON A CONTROL-C INTERRUPT
  5873
  5874	012550'	200 00 0 00 016016'	CTLC:	MOVE	[1B5+.+3]
  5875	012551'	202 00 0 00 021144'		MOVEM	LEV1PC
  5876	012552'	104 00 0 00 000136 		DEBRK
  5877	012553'	104 00 0 00 000170 		HALTF			;EXIT TO MONITOR
  5878	012554'	254 00 0 00 000345'		JRST	START
  5879
  5880					;*HERE ON CONTROL-X INTERRUPT
  5881
  5882					CTLX:	TMSG	<
  5883					ABORTED
  5884	012555'	561 01 0 00 016017'	>
  5885	012556'	104 00 0 00 000076 
  5886	012557'	200 01 0 00 016022'		MOVE	T1,[1B5+REEN]	;WHERE TO GO
  5887	012560'	202 01 0 00 021144'		MOVEM	T1,LEV1PC	;STORE IT
  5888	012561'	104 00 0 00 000136 		DEBRK			;GO REENTER
  5889	012562'	254 00 0 00 000537'		JRST	REEN		;INTERNAL CONFUSION
  5890
  5891					;*HERE ON CONTROL-Z INTERRUPT
  5892
  5893	012563'	336 00 0 00 021156'	CTLZ:	SKIPN	CZADR
  5894	012564'	104 00 0 00 000136 		DEBRK
  5895	012565'	261 17 0 00 000001 		PUSH	P,T1
  5896	012566'	200 01 0 00 021156'		MOVE	T1,CZADR
  5897	012567'	661 01 0 00 010000 		TLO	T1,(1B5)
  5898	012570'	202 01 0 00 021144'		MOVEM	T1,LEV1PC
  5899	012571'	262 17 0 00 000001 		POP	P,T1
  5900	012572'	104 00 0 00 000136 		DEBRK
  5901
  5902					;*HERE ON A CONTROL-T INTERRUPT
  5903
  5904	012573'	336 00 0 00 021160'	CTLT:	SKIPN	CTADR
  5905	012574'	104 00 0 00 000136 		DEBRK
  5906						SAVEAC
  5907	012605'	260 17 1 00 021160'		GO	@CTADR
  5908						RESTAC
  5909	012616'	104 00 0 00 000136 		DEBRK
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 159
SMFILE	MAC	19-Feb-79 10:46		PSI LOGIC -- CONTROL-C AND CONTROL-X                                               SEQ 0198

  5910					;*here on control-o interrupt
  5911
  5912	012617'	462 00 0 00 021055'	ctlo:	SETCMM	NOTYPE#
  5913	012620'	104 00 0 00 000136 		debrk
  5914
  5915					;**PSI LOGIC -- FORK TERMINATION
  5916
  5917					;*HERE WHEN A FORK TERMINATES
  5918	012621'	261 17 0 00 000001 	FRKERR:	put	t1
  5919	012622'	550 01 0 00 021145'		hrrz	t1,lev2pc
  5920	012623'	306 01 0 00 001061'		cain	t1,pushpc
  5921						jrst	[getit	t1
  5922	012624'	254 00 0 00 016023'			 debrk]
  5923	012625'	201 01 0 00 000101 		MOVEI	T1,.PRIOU
  5924	012626'	104 00 0 00 000104 		DOBE
  5925	012627'	104 00 0 00 000100 		CFIBF
  5926						TMSG	<
  5927					?UNEXPECTED INFERIOR PROCESS TERMINATION
  5928					PROGRAM RESTARTING...
  5929	012630'	561 01 0 00 016025'	>
  5930	012631'	104 00 0 00 000076 
  5931	012632'	254 00 0 00 000345'		JRST	START
  5932
  5933					SUBTTL	PSI LOGIC -- CONTROL T
  5934
  5935					RDULDT:	TMSG	<
  5936	012633'	561 01 0 00 016043'	READING CRAM ADDRESS - >
  5937	012634'	104 00 0 00 000076 
  5938	012635'	200 02 0 00 021063'		MOVE	T2,RDULT6
  5939	012636'	201 01 0 00 000101 		MOVEI	T1,.PRIOU
  5940	012637'	201 03 0 00 000010 		MOVEI	T3,^D8
  5941	012640'	104 00 0 00 000224 		NOUT
  5942	012641'	260 17 0 00 016056'		ERR	<CONTROL-T NOUT FAILED>
  5943						TMSG	<
  5944	012642'	561 01 0 00 013144'	>
  5945	012643'	104 00 0 00 000076 
  5946	012644'	263 17 0 00 000000 		RTN
  5947
  5948
  5949	012645'				PARSET:	HRROI	T1,[ASCIZ "
  5950					WAITING FOR A COMMAND
  5951	012645'	561 01 0 00 016060'	SMFILE>"]
  5952	012646'	104 00 0 00 000076 		PSOUT
  5953	012647'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 160
SMFILE	MAC	19-Feb-79 10:46		STORAGE -- PRESERVED                                                               SEQ 0199

  5954					SUBTTL	STORAGE -- PRESERVED
  5955
  5956						XLIST			;LITERAL POOL
  5957						LIST			;LITERAL POOL
  5958
  5959					;*COMMAND STATUS BLOCK FOR COMND JSYS
  5960	016372'	000000	000563'		CSB:	PARSE
  5961	016373'	000100	000101			.PRIIN,,.PRIOU
  5962	016374'	777777	000311'			-1,,PROMPT
  5963	016375'	777777	016423'			-1,,CMDBUF
  5964	016376'	777777	016423'			-1,,CMDBUF
  5965	016377'	000000	000372			^D250
  5966	016400'	000000	000000			0
  5967	016401'	777777	016505'			-1,,ATOM
  5968	016402'	000000	000372			^D250
  5969	016403'	000000	016404'			GTJFNB
  5970
  5971	016404'				GTJFNB:
  5972	016404'	100000	000000		GTJFLG:	EXP	GJ%OLD
  5973	016405'	000100	000101			.PRIIN,,.PRIOU
  5974	016406'	000000	000000		GTJDEV:	0
  5975	016407'	777777	020476'		GTJDIR:	-1,,[ASCIZ "SMFILE"]
  5976	016410'	777777	020500'		GTJFIL:	-1,,[ASCIZ "DECSYSTEM-2020"]
  5977	016411'	777777	020503'		GTJEXT:	-1,,[ASCIZ "RAM"]
  5978	016412'	000000	000000			0
  5979	016413'	000000	000000			0
  5980	016414'	000000	000000			0
  5981	016415'	000000	000000			0
  5982	016416'	000000	000000			0
  5983	016417'	000000	000000			0
  5984	016420'	000000	000000			0
  5985	016421'	000000	000000			0
  5986	016422'	000000	000000			0
  5987
  5988	016423'				CMDBUF:	BLOCK	^D50
  5989	016505'				ATOM:	BLOCK	^D50
  5990	016567'	000000	000000		DEBUGF:	0			;0 = PRODUCTION, -1 = DEBUG
  5991	016570'	000000	000000		PARFLG:	0			;EVEN/ODD CRAM PARITY SWITCH
  5992	016571'	000000	000000		LOGFLG:	0			;-1 = LOG, 0 = NO LOG
  5993	016572'				RDFLAG:	BLOCK	1		;INDICATES MICROCODE READ IN
  5994	016573'	777777	777777		ECOFLG:	-1			;-1=ECHO, 0=DON'T ECHO TAKE FILES
  5995
  5996	016574'	63 55 46 51 54 45 	LOGNAM:	SIXBIT/SMFILE/		;LOG FILE NAME & EXT
  5997	016575'	54 57 47 00 00 00 	LOGEXT:	SIXBIT/LOG/
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 161
SMFILE	MAC	19-Feb-79 10:46		COMMAND PROCESSOR                                                                  SEQ 0200

  5998					SUBTTL	 COMMAND PROCESSOR
  5999
  6000						LALL
  6001
  6002	016576'	000000	016600'		$PNAME:	PGMNAM
  6003	016577'	000000	000003		$PVER:	MCNVER,,DECVER
  6004
  6005	016600'				PGMNAM:	ASCIZ	%
  6006	016600'	015 012 104 105 103 	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM
  6007	016601'	123 131 123 124 105 
  6008	016602'	115 040 062 060 062 
  6009	016603'	060 040 104 111 101 
  6010	016604'	107 116 117 123 124 
  6011	016605'	111 103 123 040 106 
  6012	016606'	105 055 106 111 114 
  6013	016607'	105 040 120 122 117 
  6014	016610'	107 122 101 115 015 
  6015	016611'	012 000 000 000 000 	%
  6016
  6017	016612'	037 05 0 00 000002 	REENTR:	DROPDV			;CLOSE LOG FILE
  6018	016613'	332 00 0 00 000302'		SKIPE	MONTYP
  6019	016614'	254 00 0 00 016617'		JRST	REEN20
  6020	016615'	047 00 0 00 000000 		CALLI	0
  6021	016616'	047 00 0 00 000012 		CALLI	12
  6022
  6023	016617'	104 00 0 00 000147 	REEN20:	RESET
  6024	016620'	104 00 0 00 000170 		HALTF
  6025	016621'	254 00 0 00 000345'		JRST	START
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 162
SMFILE	MAC	19-Feb-79 10:46		MAIN SUBROUTINE PACKAGE CONTROL                                                    SEQ 0201

  6026					SUBTTL	MAIN SUBROUTINE PACKAGE CONTROL
  6027
  6028					S^;*********************************************************************^
  6029					;*INITIALIZE THE SUBROUTINE PACKAGE
  6030					S^;*********************************************************************^
  6031
  6032	016622'	63 65 42 62 64 56 	SUBRTN:	SIXBIT/SUBRTN/		;"SUBRTN" IDENTIFICATION WORD
  6033	016623'	000000	000003		SUBVER:	MCNVER,,DECVER		;"SUBRTN" VERSION INFORMATION
  6034	016624'	63 55 46 51 54 45 	PNTNAM:	SIXBIT/SMFILE/
  6035	016625'	54 57 47 00 00 00 	PNTEXT:	SIXBIT/LOG/
  6036
  6037					S^;*********************************************************************^
  6038					;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
  6039					S^;*********************************************************************^
  6040
  6041	016626'				SBINIT:
  6042	016626'	202 00 0 00 021077'	$PGMIN:	MOVEM	0,$$PAC0
  6043	016627'	476 00 0 00 000000'		SETOM	USER
  6044	016630'	265 00 0 00 016631'		JSP	0,.+1		;LOAD FLAGS INTO AC0
  6045	016631'	607 00 0 00 010000 		TLNN	0,USERF		;USER MODE ?
  6046	016632'	254 04 0 00 016632'		HALT	.		;EXEC MODE
  6047	016633'	402 00 0 00 000302'		SETZM	MONTYP
  6048	016634'	200 00 0 00 020504'		MOVE	[112,,11]
  6049	016635'	047 00 0 00 000041 		GETTAB			;GET MONITOR TYPE ID
  6050	016636'	310 00 0 00 000000 		CAM
  6051	016637'	306 00 0 00 040000 		CAIN	40000		;TOPS20 ?
  6052	016640'	476 00 0 00 000302'		SETOM	MONTYP		;YES
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 163
SMFILE	MAC	19-Feb-79 10:46		MAIN SUBROUTINE PACKAGE CONTROL                                                    SEQ 0202

  6053					S^;*********************************************************************^
  6054					;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
  6055					S^;*********************************************************************^
  6056
  6057	016641'	554 00 0 00 000120 	$PGMN1:	HLRZ	JOBSA		;RESET JOB FIRST FREE TO
  6058	016642'	202 00 0 00 000121 		MOVEM	JOBFF		;END OF LOW SEGMENT
  6059	016643'	336 00 0 00 000302'		SKIPN	MONTYP
  6060	016644'	047 00 0 00 000000 		CALLI	0		;TOPS10 RESET
  6061	016645'	332 00 0 00 000302'		SKIPE	MONTYP
  6062	016646'	104 00 0 00 000147 		RESET			;CLEAR USER I/O
  6063	016647'	254 02 1 00 016650'		JRST	2,@.+1		;CLEAR PC FLAGS
  6064	016650'	000000	016651'				0,,.+1
  6065	016651'	200 00 0 00 000006'		MOVE	CONSW
  6066	016652'	202 00 0 00 021130'		MOVEM	$SVCSW#		;SAVE PREVIOUS SWITCHES
  6067	016653'	402 00 0 00 000006'		SETZM	CONSW#		;CLEAR SWITCH REGISTER
  6068	016654'	402 00 0 00 021131'		SETZM	$SWFLG#		;DISALLOW SWITCHES TILL INITED
  6069	016655'	200 17 0 00 000077'		MOVE	P,PLIST		;INIT PUSH POINTER
  6070
  6071					S^;*********************************************************************^
  6072					;*INITIALIZE SUBROUTINES
  6073					S^;*********************************************************************^
  6074
  6075	016656'	260 17 0 00 017027'	PGINGO:	GO	$CPUTP		;DETERMINE CPU TYPE (KL/KI/KA)
  6076	016657'	260 17 0 00 016664'		GO	$UUOIN		;INIT UUO TRAP TRANSFER LOCATION
  6077	016660'	260 17 0 00 017562'		GO	$PNTIN		;INIT PRINT SUBROUTINE
  6078	016661'	260 17 0 00 017161'		GO	$TYPIN		;INIT TTY INPUT SUBROUTINE
  6079	016662'	476 00 0 00 000015'		SETOM	$ONETM		;SET ONE TIME FLAG
  6080	016663'	254 00 1 00 021077'		JRST	@$$PAC0#
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 164
SMFILE	MAC	19-Feb-79 10:46		UUO HANDLING SUBROUTINE                                                            SEQ 0203

  6081					SUBTTL	UUO HANDLING SUBROUTINE
  6082
  6083					S^;*********************************************************************^
  6084					;*UUO INITIALIZATION
  6085					S^;*********************************************************************^
  6086
  6087	016664'	200 00 0 00 020505'	$UUOIN:	MOVE	[GO  $UORTN]	;BRING IN UUORTN ENTRY INSTR.
  6088	016665'	202 00 0 00 000041 		MOVEM	JOB41		;SETUP UUO TRAP AT JOB41
  6089	016666'	200 00 0 00 020506'		MOVE	[JRST $UOERX]
  6090	016667'	202 00 0 00 000020'		MOVEM	$UUOER		;SET UUO ERROR IN "FIXED"
  6091	016670'	402 00 0 00 021142'		SETZM	$UPLER#
  6092	016671'	263 17 0 00 000000 		RTN			;EXIT
  6093
  6094					;*$UORTN - UUO PROCESSING
  6095
  6096	016672'	261 17 0 00 000000 	$UORTN:	PUT	AC0		;SAVE AC0 ON PUSH LIST
  6097	016673'	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET THE UUO
  6098	016674'	242 00 0 00 777745 		LSH	AC0,-^D27	;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
  6099	016675'	303 00 0 00 000036 		CAILE	AC0,36		;IS IT 36 OR LESS? (LOW)
  6100	016676'	254 00 0 00 016720'		JRST	$SUBUO		;DECODE 37 @ $SUBUO
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 165
SMFILE	MAC	19-Feb-79 10:46		UUO HANDLING SUBROUTINE                                                            SEQ 0204

  6101	016677'	200 00 0 17 777777 	$USRUO:	MOVE	AC0,-1(P)	;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
  6102	016700'	275 00 0 00 000001 		SUBI	1		; - 1
  6103	016701'	202 00 0 00 000023'		MOVEM	$SVUPC		;SAVE FOR USER UUO ROUTINE (IF NEEDED)
  6104	016702'	200 00 0 00 000040 		MOVE	AC0,JOBUUO	;GET UUO FROM LOCATION 40 IN JDA
  6105	016703'	202 00 0 00 000022'		MOVEM	$SVUUO		;SAVE FOR USER UUO ROUTINE
  6106	016704'	200 00 0 00 000022'		MOVE	AC0,$SVUUO
  6107	016705'	242 00 0 00 777745 		LSH	AC0,-^D27	;RIGHT SHIFT FOR INDEX INTO UUO TABLE
  6108	016706'	261 17 0 00 000001 		PUT	1
  6109	016707'	246 00 0 00 777777 		LSHC	0,-1
  6110	016710'	271 00 0 00 000024'		ADDI	UUODIS		;ADD USER UUO TABLE START TO THE UUO
  6111	016711'	607 01 0 00 400000 	$XUUO:	TLNN	1,400000
  6112	016712'	550 00 1 00 000000 		HRRZ	@0		;EVEN UUO
  6113	016713'	603 01 0 00 400000 		TLNE	1,400000
  6114	016714'	554 00 1 00 000000 		HLRZ	@0		;ODD UUO
  6115	016715'	262 17 0 00 000001 		GETIT	1
  6116	016716'	250 00 0 17 000000 		EXCH	AC0,(P)		;PUT ADR ON STACK, AC0 BACK IN AC0
  6117	016717'	263 17 0 00 000000 		RTN			;SPECIAL XFER TO ROUTINE USING ADR ON STACK
  6118
  6119	016720'	275 00 0 00 000037 	$SUBUO:	SUBI	AC0,37		;NORMALIZE TO MAKE LOWEST UUO = 0
  6120	016721'	271 00 0 00 016723'		ADDI	AC0,TABLE0	;ADDR OF TABLE + NORM. UUO (0-3)
  6121	016722'	254 00 1 00 000000 		JRST	@0		;SELECT THE CORRECT ERROR UUO VIA TABLE
  6122
  6123	016723'	254 00 0 00 016737'	TABLE0:	JRST	$UUO37		;UUO = 37 .......DECODE SUBROUTINE UUO
  6124
  6125					S^;*********************************************************************^
  6126					;*UUO ERROR EXIT ROUTINE
  6127					S^;*********************************************************************^
  6128						SALL
  6129
  6130	016724'	262 17 0 00 000000 		GETIT	AC0		;POP OFF AC0 (KA MUUO'S)
  6131	016725'	261 17 0 00 000040 	$UOERX:	PUT	JOBUUO		;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
  6132	016726'	037 02 0 00 020507'		PMSG	<^ILLEGAL UUO^UUO]]FLAGS]  PC^>
  6133	016727'	262 17 0 00 000000 		GETIT	AC0		;GET BAD UUO FROM THE STACK (P - 1)
  6134	016730'	037 13 0 00 000000 		PNTHW			;PRINT IT
  6135	016731'	037 00 0 00 000040 		PSP			;PRINT SPACE
  6136	016732'	262 17 0 00 000000 		GETIT	AC0		;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
  6137	016733'	275 00 0 00 000001 		SUBI	AC0,1		;SUBTRACT 1
  6138	016734'	037 13 0 00 000000 		PNTHW			;PRINT FLAGS & UUO PC
  6139	016735'	037 00 0 00 000063'		PCRL			;PRINT C/R & L/F
  6140	016736'	037 15 0 00 000004 		FATAL
  6141
  6142						LALL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 166
SMFILE	MAC	19-Feb-79 10:46		UUO HANDLING SUBROUTINE                                                            SEQ 0205

  6143					S^;*********************************************************************^
  6144					;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
  6145					S^;*********************************************************************^
  6146
  6147	016737'	550 00 0 00 000040 	$UUO37:	HRRZ	JOBUUO		;GET CALLING UUO
  6148	016740'	322 00 0 00 017641'		JUMPE	$PNTIT		;PRINT UUO
  6149	016741'	306 00 0 00 000001 		CAIN	0,1
  6150	016742'	254 00 0 00 017617'		JRST	$PNTIF		;PRINT FORCED UUO
  6151	016743'	602 00 0 00 777600 		TRNE	777600
  6152	016744'	254 00 0 00 017015'		JRST	$EG177		;PRINT MESSAGE UUO
  6153	016745'	301 00 0 00 000005 		CAIL	5
  6154	016746'	254 00 0 00 017010'		JRST	$EG4		;PRINT CHAR IMMEDIATE UUO
  6155	016747'	261 17 0 00 000001 		PUT	1
  6156	016750'	200 01 0 00 000040 		MOVE	1,JOBUUO
  6157	016751'	242 01 0 00 777751 		LSH	1,-^D23		;EXTRACT UUO AC FIELD
  6158	016752'	405 01 0 00 000017 		ANDI	1,17
  6159	016753'	242 00 0 00 000004 		LSH	0,4		;POSITION E FIELD
  6160	016754'	434 00 0 00 000001 		IOR	0,1		;COMBINE E & AC FIELD
  6161	016755'	246 00 0 00 777777 		LSHC	0,-1		;SET ODD/EVEN
  6162	016756'	271 00 0 00 016740'		ADDI	$UOTAB-20	;COMPUTE TABLE ENTRY OFFSET
  6163	016757'	254 00 0 00 016711'		JRST	$XUUO
  6164
  6165	016760'				$UOTAB:				;E FIELD = 2
  6166	016760'	017735'	017724'			$PTSXF,,$PNTSX
  6167	016761'	016725'	016725'			$UOERX,,$UOERX
  6168	016762'	020350'	017113'			$DRPDV,,$PNTNM
  6169	016763'	016725'	016725'			$UOERX,,$UOERX
  6170	016764'	016725'	016725'			$UOERX,,$UOERX
  6171	016765'	016725'	016725'			$UOERX,,$UOERX
  6172	016766'	016725'	016725'			$UOERX,,$UOERX
  6173	016767'	016725'	016725'			$UOERX,,$UOERX
  6174									;E FIELD = 3
  6175	016770'	017341'	017223'			$YESNO,,$OPTLK
  6176	016771'	017405'	017337'			$TPOCT,,$NOYES
  6177	016772'	017401'	017403'			$TPCNV,,$TPDEC
  6178	016773'	017233'	017163'			$TALTM,,$TTLK
  6179	016774'	017210'	017527'			$TTYIN,,$TISIX
  6180	016775'	016725'	017273'			$UOERX,,$TPCLR
  6181	016776'	017746'	017751'			$PSIXF,,$PSIX
  6182	016777'	020010'	020013'			$POCSF,,$POCS
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 167
SMFILE	MAC	19-Feb-79 10:46		UUO HANDLING SUBROUTINE                                                            SEQ 0206

  6183									;E FIELD = 4
  6184	017000'	016725'	016725'			$UOERX,,$UOERX
  6185	017001'	016725'	016725'			$UOERX,,$UOERX
  6186	017002'	016725'	016725'			$UOERX,,$UOERX
  6187	017003'	016725'	016725'			$UOERX,,$UOERX
  6188	017004'	016725'	016725'			$UOERX,,$UOERX
  6189	017005'	016725'	017144'			$UOERX,,$END
  6190	017006'	017104'	017065'			$FATAL,,$ERHLT
  6191	017007'	016725'	017155'			$UOERX,,$EOP
  6192
  6193	017010'	200 00 0 00 000040 	$EG4:	MOVE	JOBUUO		;IMMEDIATE CHARACTER PRINT
  6194	017011'	603 00 0 00 000040 		TLNE	(1B12)
  6195						JRST	[PNTCHF
  6196	017012'	254 00 0 00 020514'			JRST	$EGX]
  6197	017013'	037 12 0 00 000000 		PNTCHR
  6198	017014'	254 00 0 00 017025'		JRST	$EGX
  6199
  6200	017015'	200 00 0 00 000040 	$EG177:	MOVE	JOBUUO		;IMMEDIATE MESSAGE PRINT
  6201	017016'	603 00 0 00 000200 		TLNE	(4B12)
  6202						JRST	[PSIXLF
  6203	017017'	254 00 0 00 020516'			JRST	$EGX]
  6204	017020'	603 00 0 00 000100 		TLNE	(2B12)
  6205						JRST	[PSIXL
  6206	017021'	254 00 0 00 020520'			JRST	$EGX]
  6207	017022'	603 00 0 00 000040 		TLNE	(1B12)
  6208						JRST	[PNTALF
  6209	017023'	254 00 0 00 020522'			JRST	$EGX]
  6210	017024'	037 17 0 00 000000 		PNTAL
  6211	017025'	262 17 0 00 000000 	$EGX:	GETIT	0
  6212	017026'	263 17 0 00 000000 		RTN
  6213
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 168
SMFILE	MAC	19-Feb-79 10:46		PROCESSOR TYPE DETERMINATION                                                       SEQ 0207

  6214					SUBTTL	PROCESSOR TYPE DETERMINATION
  6215					S^;*********************************************************************^
  6216
  6217	017027'	402 00 0 00 021034'	$CPUTP:	SETZM	CYCL60#
  6218	017030'	402 00 0 00 000305'		SETZM	SM10
  6219	017031'	402 00 0 00 000002'		SETZM	KLFLG
  6220	017032'	402 00 0 00 000001'		SETZM	KAIFLG
  6221	017033'	200 01 0 00 020524'	$CPKL:	MOVE	1,[1,,1]	;IF KL10, AC1 AFTER BLT WILL CHANGE
  6222	017034'	251 01 0 00 000001 		BLT	1,1
  6223	017035'	316 01 0 00 020524'		CAMN	1,[1,,1]
  6224	017036'	254 00 0 00 017057'		JRST	$CPKAI
  6225	017037'	476 00 0 00 000002'		SETOM	KLFLG		;KL10 - SET FLAG
  6226
  6227	017040'	336 00 0 00 000302'	$CPINI:	SKIPN	MONTYP
  6228	017041'	254 00 0 00 017046'		JRST	.+5		;TOPS-10
  6229	017042'	200 01 0 00 020525'		MOVE	1,[SIXBIT/APRID/]
  6230	017043'	104 00 0 00 000016 		SYSGT			;GET SERIAL NUMBER
  6231	017044'	200 00 0 00 000001 		MOVE	0,1
  6232	017045'	254 00 0 00 017051'		JRST	.+4
  6233	017046'	200 00 0 00 020526'		MOVE	0,[20,,11]
  6234	017047'	047 00 0 00 000041 		GETTAB
  6235	017050'	400 00 0 00 000000 		SETZ	0,
  6236	017051'	202 00 0 00 021100'		MOVEM	0,$$SNX#	;SAVE IT
  6237	017052'	336 00 0 00 000002'		SKIPN	KLFLG
  6238	017053'	263 17 0 00 000000 		RTN
  6239	017054'	303 00 0 00 010000 		CAILE	0,^D4096	;IS THIS A KS10 ?
  6240	017055'	476 00 0 00 000305'		SETOM	SM10		;YES, SERIAL # GT 4096.
  6241	017056'	263 17 0 00 000000 		RTN
  6242
  6243	017057'	476 00 0 00 000001'	$CPKAI:	SETOM	KAIFLG
  6244	017060'	211 00 0 00 000001 		MOVNI	0,1
  6245	017061'	253 00 0 00 017062'		AOBJN	0,.+1
  6246	017062'	332 00 0 00 000000 		SKIPE
  6247	017063'	402 00 0 00 000001'		SETZM	KAIFLG		;KA10
  6248
  6249	017064'	254 00 0 00 017040'		JRST	$CPINI
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 169
SMFILE	MAC	19-Feb-79 10:46		PROGRAM HALTS                                                                      SEQ 0208

  6250					SUBTTL	PROGRAM HALTS
  6251
  6252					;*SUBROUTINE ERROR HALT
  6253					S^;*********************************************************************^
  6254						SALL
  6255
  6256	017065'	037 04 0 00 000002 	$ERHLT:	PNTNM			;PRINT PROGRAM NAME
  6257	017066'	037 04 0 00 020527'		PMSGF	<ERROR HALT AT >
  6258	017067'	262 17 0 00 021104'		GETIT	$ERH0
  6259	017070'	261 17 0 00 000000 		PUT	0
  6260	017071'	200 00 0 00 021104'		MOVE	AC0,$ERH0#	;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
  6261	017072'	370 00 0 00 000000 		SOS			;SUBTRACT ONE FOR USRPC OF ERROR
  6262	017073'	037 06 0 00 000001 		PNT6F			;PRINT USRPC FORCED
  6263	017074'	037 01 0 00 000063'		PCRLF
  6264
  6265	017075'	262 17 0 00 000000 	$ERHL4:	GETIT	AC0
  6266	017076'	332 00 0 00 000302'		SKIPE	MONTYP
  6267	017077'	254 00 0 00 017102'		JRST	.+3
  6268	017100'	047 01 0 00 000012 		CALLI	1,12
  6269	017101'	254 00 1 00 021104'		JRST	@$ERH0
  6270	017102'	104 00 0 00 000170 		HALTF			;RETURN TO MONITOR
  6271	017103'	254 00 1 00 021104'		JRST	@$ERH0		;IF CONTINUED
  6272						LALL
  6273
  6274					;*FATAL PROGRAM ERROR HALT
  6275					S^;*********************************************************************^
  6276						SALL
  6277
  6278	017104'	037 04 0 00 000002 	$FATAL:	PNTNM
  6279	017105'	037 04 0 00 020532'		PMSGF	<FATAL PROGRAM ERROR AT >
  6280	017106'	200 00 0 17 000000 		MOVE	AC0,(P)		;RETRIEVE USRPC + 1 FROM THE STACK
  6281	017107'	370 00 0 00 000000 		SOS			;- 1
  6282	017110'	037 06 0 00 000001 		PNT6F			;PRINT IT
  6283	017111'	037 01 0 00 000063'		PCRLF
  6284	017112'	254 00 0 00 017155'		JRST	$EOP		;END PROGRAM
  6285						LALL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 170
SMFILE	MAC	19-Feb-79 10:46		PROGRAM NAME PRINTER                                                               SEQ 0209

  6286					SUBTTL	PROGRAM NAME PRINTER
  6287
  6288					;*PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
  6289					S^;*********************************************************************^
  6290						SALL
  6291	017113'	331 00 0 00 000004'	$PNTNM:	SKIPL	MONCTL		;DIAG MON / SYS EXR ?
  6292	017114'	254 00 0 00 017142'		JRST	$PNM2		;NO
  6293	017115'	037 00 1 00 016576'		PNTMSG	@$PNAME		;PRINT PROGRAM NAME
  6294	017116'	037 02 0 00 020536'		PMSG	<VERSION >
  6295	017117'	554 00 0 00 000137 		HLRZ	JOBVER
  6296	017120'	037 16 0 00 000003 		PNTOCS			;PRINT MCN LEVEL
  6297	017121'	037 00 0 00 000056 		PNTCI	"."
  6298	017122'	550 00 0 00 000137 		HRRZ	JOBVER
  6299	017123'	037 16 0 00 000003 		PNTOCS			;PRINT DEC VERSION
  6300	017124'	336 00 0 00 000302'		SKIPN	MONTYP
  6301	017125'	037 02 0 00 020540'		PMSG	<, TOPS-10>
  6302	017126'	332 00 0 00 000302'		SKIPE	MONTYP
  6303	017127'	037 02 0 00 020542'		PMSG	<, TOPS-20>
  6304	
  6305	017130'	332 00 0 00 000002'		SKIPE	KLFLG
  6306						JRST	[SKIPE	SM10
  6307							 JRST	[PMSG	<, KS10>
  6308								 JRST	$PNM3]
  6309							 PMSG	<, KL10>
  6310	017131'	254 00 0 00 020552'			 JRST	$PNM3]
  6311	017132'	336 00 0 00 000001'		SKIPN	KAIFLG
  6312						JRST	[PMSG	<, KA10>
  6313	017133'	254 00 0 00 020560'			 JRST	$PNM3]
  6314	017134'	037 02 0 00 020562'		PMSG	<, KI10>
  6315
  6316	017135'	336 00 0 00 021100'	$PNM3:	SKIPN	$$SNX
  6317	017136'	254 00 0 00 017142'		JRST	$PNM2
  6318	017137'	037 02 0 00 020564'		PMSG	<, CPU#=>
  6319	017140'	200 00 0 00 021100'		MOVE	$$SNX
  6320	017141'	037 15 0 00 000000 		PNTDEC
  6321
  6322	017142'	037 00 0 00 000063'	$PNM2:	PCRL
  6323	017143'	263 17 0 00 000000 		RTN			;EXIT
  6324
  6325						LALL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 171
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES                                       SEQ 0210

  6326					SUBTTL	*SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
  6327						LALL
  6328					;*END OF PASS ROUTINE
  6329					S^;*********************************************************************^
  6330						SALL
  6331	017144'	350 00 0 00 000007'	$END:	AOS	PASCNT		;INCREMENT PASS COUNTER
  6332	017145'	370 00 0 00 000010'		SOS	ITRCNT
  6333	017146'	037 04 0 00 020566'	$END2:	PMSGF	<END PASS >
  6334	017147'	200 00 0 00 000007'		MOVE	PASCNT		;PRINT END OF PASS COUNT
  6335	017150'	037 15 0 00 000001 		PNTDCF
  6336	017151'	037 01 0 00 000056 		PNTCIF	"."
  6337	017152'	037 01 0 00 000063'		PCRLF
  6338	017153'	350 00 0 17 000000 	$END3:	AOS	(P)
  6339	017154'	263 17 0 00 000000 		RTN
  6340						LALL
  6341
  6342					;*END OF PROGRAM ROUTINE
  6343					S^;*********************************************************************^
  6344
  6345	017155'	336 00 0 00 000302'	$EOP:	SKIPN	MONTYP
  6346	017156'	047 00 0 00 000012 		CALLI	12
  6347	017157'	104 00 0 00 000170 		HALTF			;YES, EXIT
  6348	017160'	254 00 0 00 000345'		JRST	START
  6349						LALL
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 172
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0211

  6350					SUBTTL	*SUBRTN* TELETYPE INPUT ROUTINES
  6351
  6352					S^;*********************************************************************^
  6353					;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
  6354					;*CHARACTER OR NUMBER RETURNED IN AC0.
  6355					;*CALL SEQUENCE IS AS FOLLOWS:
  6356					;*	NAME
  6357					;*	NO/ERROR RESPONSE RETURN (+ 1)
  6358					;*	NORMAL RESPONSE RETURN (+ 2)
  6359					;*$OPTLK =	INPUT ANY CHARACTER
  6360					;*$YESNO =	ASK QUESTION, CORRECT RESPONSE Y
  6361					;*$NOYES =	ASK QUESTION, CORRECT RESPONSE N
  6362					;*$TPOCT =	INPUT UP TO 12 OCTALS
  6363					;*$TPDEC =	INPUT UP TO 11 DECIMALS
  6364					;*$TPCNV =	INPUT UP TO 9 CONVERT'S
  6365					;*$TTLK  =	KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
  6366					;*$TALTM =	KEYBOARD, ALT-MODE CHECK
  6367					;*$TISIX =	INPUT UP TO 6 SIXBIT CHARACTERS
  6368					S^;*********************************************************************^
  6369
  6370					;*TELETYPE INPUT INITIALIZATION
  6371					S^;*********************************************************************^
  6372	017161'	402 00 0 00 021052'	$TYPIN:	SETZM	INUPTR		;CLEAR INPUT POINTER
  6373	017162'	263 17 0 00 000000 		RTN			;NO TYPE-IN AVAILABLE
  6374
  6375					S^;*********************************************************************^
  6376					;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
  6377					;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
  6378					S^;*********************************************************************^
  6379
  6380	017163'	400 00 0 00 000000 	$TTLK:	SETZ	AC0,
  6381	017164'	335 00 0 00 000004'		SKIPGE	MONCTL		;NO CHECK IF "MONITOR"
  6382	017165'	263 17 0 00 000000 		RTN
  6383	017166'	332 00 0 00 000302'		SKIPE	MONTYP
  6384	017167'	254 00 0 00 017173'		JRST	.+4
  6385	017170'	051 02 0 00 000052'		INCHRS	$TTCHR		;TOPS10 INPUT CHAR AND SKIP
  6386	017171'	263 17 0 00 000000 		RTN			;NONE AVAILABLE
  6387	017172'	254 00 0 00 017304'		JRST	$HEAR4		;GO PROCESS
  6388	017173'	261 17 0 00 000001 		PUT	1
  6389	017174'	261 17 0 00 000002 		PUT	2
  6390	017175'	201 01 0 00 000100 		MOVEI	1,.PRIIN
  6391	017176'	104 00 0 00 000102 		SIBE			;ANY INPUT AVAILABLE ?
  6392	017177'	254 00 0 00 017203'		 JRST	.+4		;YES
  6393	017200'	262 17 0 00 000002 		GETIT	2
  6394	017201'	262 17 0 00 000001 		GETIT	1
  6395	017202'	263 17 0 00 000000 		RTN
  6396	017203'	104 00 0 00 000073 		PBIN			;GET INPUT CHAR
  6397	017204'	202 01 0 00 000052'		MOVEM	1,$TTCHR
  6398	017205'	262 17 0 00 000002 		GETIT	2
  6399	017206'	262 17 0 00 000001 		GETIT	1
  6400	017207'	254 00 0 00 017304'		JRST	$HEAR4		;CHAR TYPED, GO PROCESS
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 173
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0212

  6401					S^;*********************************************************************^
  6402					;*TELETYPE IMAGE MODE INPUT
  6403					;*PROVIDES UNBUFFERED MODE INPUT
  6404					;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
  6405					S^;*********************************************************************^
  6406
  6407	017210'	332 00 0 00 000302'	$TTYIN:	SKIPE	MONTYP
  6408	017211'	254 00 0 00 017214'		JRST	.+3
  6409	017212'	051 00 0 00 000000 		INCHRW			;TOPS10 INPUT CHAR AND WAIT
  6410	017213'	254 00 0 00 017220'		JRST	.+5
  6411	017214'	261 17 0 00 000001 		PUT	1
  6412	017215'	104 00 0 00 000073 		PBIN
  6413	017216'	202 01 0 00 000052'		MOVEM	1,$TTCHR
  6414	017217'	262 17 0 00 000001 		GETIT	1
  6415	017220'	260 17 0 00 017304'		GO	$HEAR4		;PROCESS IT
  6416	017221'	254 00 0 00 017220'		JRST	.-1
  6417	017222'	263 17 0 00 000000 		RTN
  6418
  6419	017223'	202 04 0 00 021132'	$OPTLK:	MOVEM	4,$TACB4#
  6420	017224'	260 17 0 00 017244'		GO	$HEAR
  6421	017225'	254 00 0 00 017224'		JRST	.-1
  6422	017226'	350 00 0 17 000000 		AOS	(P)
  6423	017227'	201 04 0 00 000001 		MOVEI	4,1
  6424	017230'	202 04 0 00 000050'		MOVEM	4,$TWCNT	;INDICATE NO TIMEOUT
  6425	017231'	200 04 0 00 021132'		MOVE	4,$TACB4
  6426	017232'	263 17 0 00 000000 		RTN
  6427
  6428					S^;*********************************************************************^
  6429					;*TELETYPE ALT-MODE CHECK ROUTINE
  6430					S^;*********************************************************************^
  6431
  6432	017233'	260 17 0 00 017163'	$TALTM:	GO	$TTLK
  6433	017234'	263 17 0 00 000000 		RTN			;NO TYPE-IN  ...EXIT
  6434
  6435	017235'	302 00 0 00 000175 	$TALT2:	CAIE	175
  6436	017236'	306 00 0 00 000176 		CAIN	176
  6437	017237'	254 00 0 00 017242'		JRST	$TALT1		;ALT-MODE WAS TYPED
  6438	017240'	302 00 0 00 000033 		CAIE	33
  6439	017241'	254 00 0 00 017243'		JRST	.+2		;NO ALT-MODE
  6440
  6441	017242'	254 00 0 00 000016'	$TALT1:	JRST	CPOPJ1		;ALT-MODE, RETURN +2
  6442
  6443	017243'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 174
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0213

  6444					S^;*********************************************************************^
  6445					;*TELETYPE INPUT CHARACTER 
  6446					S^;*********************************************************************^
  6447
  6448	017244'	332 00 0 00 000302'	$HEAR:	SKIPE	MONTYP
  6449	017245'	254 00 0 00 017250'		JRST	.+3
  6450	017246'	051 04 0 00 000052'	$$$TT0:	INCHWL	$TTCHR		;TOPS10 INPUT CHAR LINE MODE
  6451	017247'	254 00 0 00 017304'		JRST	$HEAR4
  6452	017250'	336 00 0 00 021052'		SKIPN	INUPTR		;ANY INPUT POINTER ?
  6453	017251'	254 00 0 00 017256'		JRST	.+5		;NO, INPUT CLEARED
  6454	017252'	134 00 0 00 021052'		ILDB	0,INUPTR	;GET CHAR FROM STORE
  6455	017253'	322 00 0 00 017256'		JUMPE	0,.+3		;USED IT ALL, GET NEW INPUT
  6456	017254'	202 00 0 00 000052'		MOVEM	0,$TTCHR	;SAVE IT
  6457	017255'	254 00 0 00 017304'		JRST	$HEAR4		;GO PROCESS
  6458
  6459	017256'	261 17 0 00 000001 		PUT	1
  6460	017257'	261 17 0 00 000002 		PUT	2
  6461	017260'	261 17 0 00 000003 		PUT	3
  6462	017261'	200 01 0 00 020570'		MOVE	1,[POINT 7,D$ISTR]
  6463	017262'	202 01 0 00 021052'		MOVEM	1,INUPTR#	;SETUP INPUT POINTER
  6464	017263'	200 02 0 00 020571'		MOVE	2,[RD%BRK!RD%TOP!^D132]
  6465	017264'	400 03 0 00 000000 		SETZ	3,
  6466
  6467	017265'	104 00 0 00 000523 		RDTTY			;GET TTY INPUT FROM MONITOR
  6468	017266'	254 00 0 00 020363'		 JRST	T20ERR
  6469
  6470	017267'	262 17 0 00 000003 		GETIT	3
  6471	017270'	262 17 0 00 000002 		GETIT	2
  6472	017271'	262 17 0 00 000001 		GETIT	1
  6473	017272'	254 00 0 00 017244'		JRST	$HEAR		;NOW GO PROCESS
  6474
  6475	017273'	261 17 0 00 000001 	$TPCLR:	PUT	1
  6476	017274'	402 00 0 00 021052'		SETZM	INUPTR		;CLEAR INPUT POINTER
  6477	017275'	201 01 0 00 000100 		MOVEI	1,.PRIIN
  6478	017276'	336 00 0 00 000302'		SKIPN	MONTYP
  6479	017277'	051 11 0 00 000000 		CLRBFI			;TOPS10 CLEAR BUFFER
  6480	017300'	332 00 0 00 000302'		SKIPE	MONTYP
  6481	017301'	104 00 0 00 000100 		CFIBF			;ERROR, CLEAR TYPE-IN BUFFER
  6482	017302'	262 17 0 00 000001 		GETIT	1
  6483	017303'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 175
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE INPUT ROUTINES                                                   SEQ 0214

  6484					S^;*********************************************************************^
  6485					;*CHARACTER PROCESSING ROUTINE FOR INPUT
  6486					;*CHARACTER RETURNED IN AC0 IS UPPER CASE
  6487					;*ACTUAL CHARACTER IS IN $TTCHR
  6488					S^;*********************************************************************^
  6489
  6490	017304'	200 00 0 00 000052'	$HEAR4:	MOVE	0,$TTCHR	;GET ACTUAL CHARACTER
  6491	017305'	405 00 0 00 000177 		ANDI	0,177		;CLEAR PARITY BIT
  6492	017306'	301 00 0 00 000141 		CAIL	0,"A"+40	;CONVERT TO UPPER CASE
  6493	017307'	303 00 0 00 000172 		CAILE	0,"Z"+40
  6494	017310'	254 00 0 00 017312'		JRST	.+2
  6495	017311'	275 00 0 00 000040 		SUBI	0,40
  6496	017312'	202 00 0 00 000053'		MOVEM	0,$CHRIN#	;SAVE CHARACTER
  6497	017313'	302 00 0 00 000015 		CAIE	0,15		;IS IT CR ?
  6498	017314'	254 00 0 00 017331'		JRST	$HEAR3		;NO
  6499	017315'	402 00 0 00 021101'		SETZM	$CARCT		;CLEAR CHARACTER COUNTER
  6500	017316'	336 00 0 00 000302'		SKIPN	MONTYP
  6501	017317'	051 00 0 00 000000 	$$$TT1:	INCHRW			;TOPS10 FLUSH LF
  6502	017320'	332 00 0 00 000302'		SKIPE	MONTYP
  6503	017321'	133 00 0 00 021052'		IBP	INUPTR		;GET RID OF LF
  6504	017322'	200 00 0 00 000006'		MOVE	0,CONSW
  6505	017323'	607 00 0 00 020000 		TLNN	0,PNTLPT	;LPT/LOGICAL DEVICE OUTPUT ?
  6506	017324'	254 00 0 00 017326'		JRST	$HEAR2		;NO
  6507	017325'	037 00 0 00 000063'		PCRL			;YES-ADD CRLF
  6508	017326'	200 00 0 00 000053'	$HEAR2:	MOVE	0,$CHRIN	;PUT INPUT CHAR IN AC0
  6509	017327'	350 00 0 17 000000 		AOS	(P)		;SKIP RETURN +2 
  6510	017330'	263 17 0 00 000000 		RTN			;NORMAL RETURN +1 
  6511
  6512	017331'	200 00 0 00 000006'	$HEAR3:	MOVE	0,CONSW		;GET DATA SWITCHES
  6513	017332'	607 00 0 00 020000 		TLNN	0,PNTLPT	;PRINT ON LPT?
  6514	017333'	254 00 0 00 017326'		JRST	$HEAR2		;NO-EXIT 
  6515	017334'	200 00 0 00 000053'		MOVE	0,$CHRIN	;YES
  6516	017335'	037 12 0 00 000000 		PNTCHR			;SEND CHAR TO LPT/LOGICAL DEV
  6517	017336'	254 00 0 00 017326'		JRST	$HEAR2		;EXIT 
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 176
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE                                          SEQ 0215

  6518					SUBTTL	*SUBRTN* TELETYPE  YES/NO TYPE-IN ROUTINE
  6519
  6520					S^;*********************************************************************^
  6521					;*ACCEPTS Y OR N
  6522					;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
  6523					;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
  6524					;*'Y OR N <CR> - ' ASKED UPON ENTRY
  6525					S^;*********************************************************************^
  6526
  6527	017337'	201 00 0 00 000001 	$NOYES:	MOVEI	0,1		;INIT FOR N ANSWER
  6528	017340'	254 00 0 00 017342'		JRST	.+2
  6529	017341'	201 00 0 00 000000 	$YESNO:	MOVEI	0,0		;INIT FOR Y ANSWER
  6530	017342'	202 01 0 00 021133'		MOVEM	1,$TACC1#	;SAVE AC'S
  6531	017343'	202 02 0 00 021134'		MOVEM	2,$TACC2#
  6532	017344'	200 02 0 00 000000 		MOVE	2,0
  6533
  6534	017345'				$YN1:	PMSGF	< Y OR N <CR> - >^
  6535	017345'	037 04 0 00 020572'		PSIXMF	[SIXBIT\ Y OR N <CR> - _\]^
  6536	017346'	260 17 0 00 017223'		GO	$OPTLK
  6537	017347'	254 00 0 00 017367'		JRST	$YN2		;NO RESPONSE
  6538	017350'	302 00 0 00 000131 		CAIE	0,"Y"		;IS IT A 'Y' ?
  6539	017351'	306 00 0 00 000116 		CAIN	0,"N"		;OR AN 'N' ?
  6540	017352'	254 00 0 00 017354'		JRST	.+2		;YES
  6541	017353'	254 00 0 00 017373'		JRST	$YN3		;NEITHER, ERROR
  6542	017354'	200 01 0 00 000000 		MOVE	1,0
  6543	017355'	242 01 0 00 000007 		LSH	1,7		;POSITION 1ST CHAR
  6544	017356'	260 17 0 00 017223'		GO	$OPTLK
  6545	017357'	254 00 0 00 017367'		JRST	$YN2		;NO RESPONSE
  6546	017360'	434 01 0 00 000000 		OR	1,0		;MERGE 2ND CHAR
  6547	017361'	316 01 0 02 017376'		CAMN	1,$YN4(2)	;COMPARE FOR REQUESTED
  6548	017362'	254 00 0 00 017366'		JRST	.+4		;YES, RETURN +2
  6549	017363'	316 01 0 02 017377'		CAMN	1,$YN4+1(2)	;COMPARE FOR OPPOSITE
  6550	017364'	254 00 0 00 017367'		JRST	.+3		;YES, RETURN +1
  6551	017365'	254 00 0 00 017373'		JRST	$YN3		;ERROR, REPEAT
  6552	017366'	350 00 0 17 000000 		AOS	(P)		;YES, RETURN +2
  6553	017367'	200 02 0 00 021134'	$YN2:	MOVE	2,$TACC2	;RESTORE AC2
  6554	017370'	200 00 0 00 000001 		MOVE	0,1
  6555	017371'	200 01 0 00 021133'		MOVE	1,$TACC1	;RESTORE AC1
  6556	017372'	263 17 0 00 000000 		RTN			;RETURN +1
  6557
  6558	017373'	037 01 0 00 000063'	$YN3:	PCRLF
  6559	017374'	260 17 0 00 017273'		GO	$TPCLR		;CLEAR INPUT
  6560	017375'	254 00 0 00 017345'		JRST	$YN1
  6561
  6562	017376'	000000	026215		$YN4:	EXP	26215		;'Y' (CR)
  6563	017377'	000000	023415			EXP	23415		;'N' (CR)
  6564	017400'	000000	026215			EXP	26215		;'Y' (CR)
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 177
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0216

  6565					SUBTTL	*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
  6566
  6567					S^;*********************************************************************^
  6568					;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
  6569					;*NUMBER RETURNED IN AC0.
  6570					S^;*********************************************************************^
  6571
  6572	017401'	201 00 0 00 000002 	$TPCNV:	MOVEI	AC0,2		;SET INDEX TO CONVERT
  6573	017402'	254 00 0 00 017406'		JRST	$TPCV1
  6574	017403'	201 00 0 00 000001 	$TPDEC:	MOVEI	AC0,1		;SET INDEX TO DECIMAL
  6575	017404'	254 00 0 00 017406'		JRST	$TPCV1
  6576	017405'	201 00 0 00 000000 	$TPOCT:	MOVEI	AC0,0		;SET INDEX TO OCTAL
  6577
  6578	017406'	202 01 0 00 021135'	$TPCV1:	MOVEM	1,$TACD1#	;SAVE AC'S 1-3
  6579	017407'	202 02 0 00 021136'		MOVEM	2,$TACD2#
  6580	017410'	202 03 0 00 021137'		MOVEM	3,$TACD3#
  6581	017411'	200 03 0 00 000000 		MOVE	3,0		;LOAD AC3 WITH THE INDEX
  6582	017412'	403 01 0 00 000002 		SETZB	1,2		;CLEAR DATA REG, CHAR COUNTER
  6583	017413'	402 00 0 00 000054'		SETZM	$TYPNB#		;CLEAR ERR NUMBER
  6584	017414'	402 00 0 00 021107'		SETZM	$NEGF#		;CLEAR NEGATE FLAG
  6585	017415'	402 00 0 00 021102'		SETZM	$CNVD#		;CLEAR DECIMAL CONVERT FLAG
  6586	017416'	402 00 0 00 000301'		SETZM	TTNBRF		;CLEAR DIGIT TYPED FLAG
  6587
  6588
  6589					;*INPUT AND COMPUTE NUMBER
  6590					S^;*********************************************************************^
  6591
  6592	017417'	260 17 0 00 017223'	$TYPLP:	GO	$OPTLK
  6593	017420'	254 00 0 00 017456'		JRST	$TPERR		;NO RESPONSE, GO TO ERROR EXIT
  6594	017421'	306 00 0 00 000055 		CAIN	0,"-"		;IS IT MINUS ?
  6595	017422'	254 00 0 00 017474'		JRST	$NEGX		;YES
  6596	017423'	306 00 0 00 000056 		CAIN	0,"."		;IS IT PERIOD ?
  6597	017424'	254 00 0 00 017500'		JRST	$CNVX		;YES
  6598	017425'	306 00 0 00 000015 		CAIN	0,15		;IS IT CR ?
  6599	017426'	254 00 0 00 017442'		JRST	$TPEXT		;YES
  6600	017427'	306 00 0 00 000054 		CAIN	0,","		;IS IT COMMA ?
  6601	017430'	254 00 0 00 017442'		JRST	$TPEXT		;YES
  6602	017431'	301 00 0 00 000060 		CAIL	0,"0"		;A VALID DIGIT ?
  6603	017432'	256 00 0 03 017463'		XCT	$TPCK(3)	;YES
  6604	017433'	254 00 0 00 017456'		JRST	$TPERR		;NO ...ERROR EXIT
  6605
  6606	017434'	476 00 0 00 000301'	$TYPL1:	SETOM	TTNBRF		;SET DIGIT TYPED FLAG
  6607	017435'	350 00 0 00 000002 		AOS	2		;INCREMENT CHARACTER COUNTER
  6608	017436'	256 00 0 03 017466'		XCT	$TPMUL(3)	;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
  6609	017437'	275 00 0 00 000060 		SUBI	60		;ADD IN NEW CHAR
  6610	017440'	270 01 0 00 000000 		ADD	1,0
  6611	017441'	254 00 0 00 017417'		JRST	$TYPLP		;REPEAT TILL CR OR COMMA
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 178
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0217

  6612					;*CHECK FOR PROPER AMOUNT OF CHARACTERS
  6613					S^;*********************************************************************^
  6614
  6615	017442'	256 00 0 03 017471'	$TPEXT:	XCT	$TPNBR(3)	;PROPER NUMBER OF CHARACTERS
  6616	017443'	254 00 0 00 017456'		JRST	$TPERR		;NO ...ERROR EXIT 
  6617	017444'	306 03 0 00 000002 		CAIN	3,2		;CONVERT ? (INDEX = 2)
  6618	017445'	254 00 0 00 017504'		JRST	$CNVX1		;YES
  6619									;NO, EXIT
  6620
  6621	017446'	200 03 0 00 021137'	$TPEX1:	MOVE	3,$TACD3	;RESTORE AC'S 3 & 2
  6622	017447'	200 02 0 00 021136'		MOVE	2,$TACD2
  6623	017450'	200 00 0 00 000001 		MOVE	0,1		;PUT NUMBER IN AC0
  6624	017451'	332 00 0 00 021107'		SKIPE	$NEGF		;NEGATE ?
  6625	017452'	210 00 0 00 000001 		MOVN	0,1		;YES
  6626	017453'	200 01 0 00 021135'		MOVE	1,$TACD1	;RESTORE AC1
  6627	017454'	350 00 0 17 000000 		AOS	(P)		;RETURN +2 
  6628	017455'	263 17 0 00 000000 		RTN			;RETURN +1 
  6629
  6630	017456'	202 01 0 00 000054'	$TPERR:	MOVEM	1,$TYPNB	;SAVE NUMBER - ERROR EXIT
  6631	017457'	200 03 0 00 021137'		MOVE	3,$TACD3	;RESTORE AC'S
  6632	017460'	200 02 0 00 021136'		MOVE	2,$TACD2
  6633	017461'	200 01 0 00 021135'		MOVE	1,$TACD1
  6634	017462'	263 17 0 00 000000 		RTN			;ERROR EXIT )
  6635
  6636
  6637					;*NUMBER COMPUTING CONSTANTS
  6638					S^;*********************************************************************^
  6639
  6640	017463'	303 00 0 00 000067 	$TPCK:	CAILE	0,"7"		;OCTAL NUMBER CHECK
  6641	017464'	303 00 0 00 000071 		CAILE	0,"9"		;DECIMAL NUMBER CHECK
  6642	017465'	303 00 0 00 000071 		CAILE	0,"9"		;CONVERT NUMBER CHECK
  6643	017466'	242 01 0 00 000003 	$TPMUL:	LSH	1,3		;OCTAL BASE SHIFT
  6644	017467'	221 01 0 00 000012 		IMULI	1,^D10		;DECIMAL BASE MULTIPLIER
  6645	017470'	242 01 0 00 000004 		LSH	1,4		;CONVERT SHIFT
  6646	017471'	303 02 0 00 000014 	$TPNBR:	CAILE	2,^D12		;ACCEPT UP TO 12 OCTALS
  6647	017472'	303 02 0 00 000013 		CAILE	2,^D11		;ACCEPT UP TO 11 DECIMALS
  6648	017473'	303 02 0 00 000011 		CAILE	2,^D9		;ACCEPT UP TO 9 CONVERT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 179
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE                            SEQ 0218

  6649	017474'	332 00 0 00 000002 	$NEGX:	SKIPE	2		;1ST CHAR ?
  6650	017475'	254 00 0 00 017456'		JRST	$TPERR		;NO, ERROR EXIT )
  6651	017476'	476 00 0 00 021107'		SETOM	$NEGF		;YES, SET NEGATE FLAG
  6652	017477'	254 00 0 00 017417'		JRST	$TYPLP		;GET NEXT CHAR
  6653
  6654	017500'	302 03 0 00 000002 	$CNVX:	CAIE	3,2		;PERIOD, IN CONVERT ?
  6655	017501'	254 00 0 00 017456'		JRST	$TPERR		;NO, ERROR EXIT )
  6656	017502'	476 00 0 00 021102'		SETOM	$CNVD		;YES, SET DECIMAL FLAG
  6657	017503'	254 00 0 00 017417'		JRST	$TYPLP		;GET NEXT CHAR
  6658
  6659
  6660					;*CONVERT CONVERSION ROUTINE
  6661					S^;*********************************************************************^
  6662
  6663	017504'	201 02 0 00 000011 	$CNVX1:	MOVEI	2,^D9		;NINE DIGITS
  6664	017505'	402 00 0 00 000000 		SETZM	0
  6665	017506'	332 00 0 00 021102'		SKIPE	$CNVD		;OCTAL OR DECIMAL ?
  6666	017507'	254 00 0 00 017517'		JRST	$CNVX2		;DECIMAL
  6667	017510'	612 01 0 00 020575'		TDNE	1,[421042104210]	;OCTAL
  6668	017511'	254 00 0 00 017456'		JRST	$TPERR		;OCTAL ERROR, 8 OR 9 INPUT
  6669	017512'	242 01 0 00 000001 		LSH	1,1		;SQUEEZE OUT 4TH BIT
  6670	017513'	246 00 0 00 000003 		LSHC	0,3		;COMPACT INTO OCTAL
  6671	017514'	366 02 0 00 017512'		SOJN	2,.-2		;COMPLETED ?
  6672	017515'	200 01 0 00 000000 		MOVE	1,0		;YES
  6673	017516'	254 00 0 00 017446'		JRST	$TPEX1		;RETURN 
  6674
  6675	017517'	402 00 0 00 000003 	$CNVX2:	SETZM	3		;DECIMAL
  6676	017520'	402 00 0 00 000000 		SETZM	0
  6677	017521'	221 03 0 00 000012 		IMULI	3,^D10		;MULTIPLY BY DECIMAL BASE
  6678	017522'	246 00 0 00 000004 		LSHC	0,4		;UNPACK NEXT DIGIT
  6679	017523'	270 03 0 00 000000 		ADD	3,0		;ADD IN
  6680	017524'	366 02 0 00 017520'		SOJN	2,.-4		;COMPLETED ?
  6681	017525'	200 01 0 00 000003 		MOVE	1,3		;YES
  6682	017526'	254 00 0 00 017446'		JRST	$TPEX1		;RETURN )
  6683
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 180
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE                                            SEQ 0219

  6684					SUBTTL	*SUBRTN*  TELETYPE SIXBIT INPUT ROUTINE
  6685
  6686					S^;*********************************************************************^
  6687					;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
  6688					;*SIXBIT WORD RETURNED IN AC0
  6689					S^;*********************************************************************^
  6690
  6691	017527'	202 01 0 00 021140'	$TISIX:	MOVEM	1,$TSX1#	;SAVE AC'S
  6692	017530'	202 02 0 00 021141'		MOVEM	2,$TSX2#
  6693	017531'	200 02 0 00 020576'		MOVE	2,[POINT 6,1]
  6694	017532'	201 01 0 00 000000 		MOVEI	1,0
  6695
  6696	017533'	260 17 0 00 017223'	$TSXB1:	GO	$OPTLK
  6697	017534'	254 00 0 00 017556'		JRST	$TSXB3		;NO RESPONSE, RTN + 1
  6698	017535'	306 00 0 00 000015 		CAIN	0,15
  6699	017536'	254 00 0 00 017555'		JRST	$TSXB2		;CR, TERMINATE, RTN + 2 
  6700	017537'	306 00 0 00 000054 		CAIN	0,","
  6701	017540'	254 00 0 00 017555'		JRST	$TSXB2		;COMMA, TERMINATE, RTN + 2
  6702	017541'	301 00 0 00 000060 		CAIL	0,"0"
  6703	017542'	303 00 0 00 000132 		CAILE	0,"Z"
  6704	017543'	254 00 0 00 017556'		JRST	$TSXB3		;ERROR, RTN + 1 
  6705	017544'	303 00 0 00 000071 		CAILE	0,"9"
  6706	017545'	301 00 0 00 000101 		CAIL	0,"A"
  6707	017546'	254 00 0 00 017550'		JRST	$TSXB4		;ALPHA-NUMERIC
  6708	017547'	254 00 0 00 017556'		JRST	$TSXB3		;ERROR, RTN + 1 
  6709
  6710	017550'	640 00 0 00 000040 	$TSXB4:	TRC	0,40		;CONVERT TO SIX-BIT
  6711	017551'	602 01 0 00 000077 		TRNE	1,77
  6712	017552'	254 00 0 00 017556'		JRST	$TSXB3		;TOO MANY CHAR'S, RTN + 1
  6713	017553'	136 00 0 00 000002 		IDPB	0,2		;PUT INTO WORD
  6714	017554'	254 00 0 00 017533'		JRST	$TSXB1		;GET NEXT CHARACTER
  6715
  6716	017555'	350 00 0 17 000000 	$TSXB2:	AOS	(P)		;INCR USRPC FOR RTN + 2 (NORMAL)
  6717
  6718	017556'	200 00 0 00 000001 	$TSXB3:	MOVE	0,1		;SIXBIT WORD IN AC0
  6719	017557'	200 01 0 00 021140'		MOVE	1,$TSX1		;RESTORE AC'S
  6720	017560'	200 02 0 00 021141'		MOVE	2,$TSX2
  6721	017561'	263 17 0 00 000000 		RTN			;EXIT + 1/+2
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 181
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0220

  6722					SUBTTL	*SUBRTN* PRINT SUBROUTINES
  6723
  6724					S^;*********************************************************************^
  6725					;*	$PNTSX		PRINT SIXBIT NORMAL
  6726					;*	$PTSXF		PRINT SIXBIT FORCED
  6727					;*	$PNTCW		PRINT DF10 CONTROL WORD
  6728					;*	$PNTI1		PRINT OCTAL NUMBER
  6729					;*	$CHRPN		PRINT CHARACTER
  6730					;*	$ASCPN		PRINT ASCII CHARACTER/LINE
  6731					;*	$DECPN		PRINT DECIMAL NUMBER
  6732					S^;*********************************************************************^
  6733
  6734					S^;*********************************************************************^
  6735					;*PRINT SUBROUTINE INITIALIZATION
  6736					;*INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
  6737					S^;*********************************************************************^
  6738
  6739	017562'	402 00 0 00 021106'	$PNTIN:	SETZM	$INTDF#		;CLEAR DEVICE DEFAULT FLAG
  6740	017563'	402 00 0 00 000051'		SETZM	$DVOFF#		;CLEAR DEVICE INITED FLAG
  6741	017564'	402 00 0 00 000044'		SETZM	PDISF#		;CLEAR PRINT DISABLED FLAG
  6742	017565'	402 00 0 00 021126'		SETZM	$PTINH#		;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
  6743	017566'	402 00 0 00 000045'		SETZM	PNTINH#		;ALLOW EXEC PRINT TYPE IN INHIBIT
  6744	017567'	402 00 0 00 021076'		SETZM	XOFFLAG#	;CLEAR XOFF FLAG
  6745	017570'	402 00 0 00 000042'		SETZM	PNTFLG#		;CLEAR IN PRINT FLAG
  6746	017571'	476 00 0 00 000046'		SETOM	PNTSPC#		;SET PRINT SPACE FLAG
  6747	017572'	211 00 0 00 011610 		MOVNI	0,^D5000	;SET PRINT ENABLE TO 5000 LINES
  6748	017573'	202 00 0 00 000043'		MOVEM	0,PNTENB
  6749	017574'	402 00 0 00 021073'		SETZM	TTYFIL#		;ALLOW EXEC FILLERS
  6750	017575'	402 00 0 00 000055'		SETZM	$CRLF#		;ALLOW FREE CR/LF
  6751	017576'	402 00 0 00 000056'		SETZM	$TABF		;ALLOW TAB CONVERSION
  6752	017577'	402 00 0 00 000057'		SETZM	$FFF		;ALLOW FORM FEED CONVERSION
  6753	017600'	402 00 0 00 000060'		SETZM	$VTF		;ALLOW VERTICAL TAB CONVERSION
  6754
  6755	017601'	336 00 0 00 000302'		SKIPN	MONTYP
  6756	017602'	254 00 0 00 017610'		JRST	$PNTIX
  6757
  6758	017603'	201 01 0 00 000101 		movei	1,.priou
  6759	017604'	104 00 0 00 000107 		rfmod			;don't translate print output
  6760	017605'	620 02 0 00 000300 		trz	2,tt%dam
  6761	017606'	660 02 0 00 000300 		tro	2,3b29
  6762	017607'	104 00 0 00 000110 		sfmod
  6763
  6764	017610'	201 00 0 00 016612'	$PNTIX:	MOVEI	REENTR		;SETUP REENTER ADDRESS
  6765	017611'	202 00 0 00 000124 		MOVEM	JOBREN
  6766	017612'	335 00 0 00 000004'		SKIPGE	MONCTL		;MONITOR CONTROL ?
  6767	017613'	263 17 0 00 000000 		RTN			;YES, DON'T PRINT TITLE
  6768	017614'	332 00 0 00 000015'		SKIPE	$ONETM		;FIRST TIME?
  6769	017615'	263 17 0 00 000000 		RTN			;NO .....EXIT
  6770	017616'	254 00 0 00 017115'		JRST	$PNTNM+2	;YES ...PRINT PROGRAM NAME
  6771									;AND EXIT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 182
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0221

  6772					S^;*********************************************************************^
  6773					;*PRINT SUBROUTINE ENTRY POINT
  6774					;*EXIT VIA $PNTI4 BELOW
  6775					S^;*********************************************************************^
  6776
  6777	017617'	476 00 0 00 000042'	$PNTIF:	SETOM	PNTFLG		;SET IN PRINT FLAG
  6778	017620'	476 00 0 00 021123'		SETOM	$PNTTY#		;FORCE TO TTY
  6779	017621'	402 00 0 00 021126'		SETZM	$PTINH
  6780	017622'	332 00 0 00 000302'		SKIPE	MONTYP
  6781	017623'	254 00 0 00 017627'		JRST	.+4
  6782	017624'	051 13 0 00 000000 		TTCALL	13,0		;TOPS10 CLEAR CONTROL O
  6783	017625'	255 00 0 00 000000 		JFCL
  6784	017626'	254 00 0 00 017676'		JRST	$PNTIA
  6785	017627'	261 17 0 00 000001 		PUT	1
  6786	017630'	261 17 0 00 000002 		PUT	2
  6787	017631'	201 01 0 00 000101 		MOVEI	1,.PRIOU
  6788	017632'	104 00 0 00 000107 		RFMOD
  6789	017633'	621 02 0 00 400000 		TLZ	2,(TT%OSP)	;CLEAR CONTROL O
  6790	017634'	104 00 0 00 000110 		SFMOD
  6791	017635'	262 17 0 00 000002 		GETIT	2
  6792	017636'	262 17 0 00 000001 		GETIT	1
  6793	017637'	402 00 0 00 021052'		SETZM	INUPTR		;CLEAR TTY INPUT BUFFER
  6794	017640'	254 00 0 00 017676'		JRST	$PNTIA
  6795
  6796	017641'	476 00 0 00 000042'	$PNTIT:	SETOM	PNTFLG		;SET IN PRINT FLAG
  6797	017642'	402 00 0 00 021123'		SETZM	$PNTTY		;NOT FORCED TO TTY
  6798	017643'	331 00 0 00 000043'		SKIPL	PNTENB#		;PRINT LIMIT REACHED YET?
  6799	017644'	254 00 0 00 017662'		JRST	$PNTIB		;YES ..DON'T PRINT
  6800	017645'	200 00 0 00 000006'		MOVE	CONSW		;READ DATA SWITCHES INTO AC0
  6801	017646'	607 00 0 00 040000 		TLNN	0,NOPNT		;NO PRINT SWITCH SET?
  6802	017647'	254 00 0 00 017676'		JRST	$PNTIA
  6803	017650'	262 17 0 00 000000 		GETIT	AC0		;YES ...RESTORE AC0 FROM STACK (P - 1)
  6804	017651'	254 00 0 00 017660'		JRST	$PRNTX		;EXIT, DON'T PRINT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 183
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0222

  6805					;*PRINT ROUTINE EXIT
  6806					S^;*********************************************************************^
  6807
  6808	017652'	402 00 0 00 021123'	$PNTI4:	SETZM	$PNTTY		;CLEAR FORCE TO TTY FLAG
  6809
  6810	017653'	200 01 0 00 021110'		MOVE	1,$PACA1	;RESTORE AC'S
  6811	017654'	200 02 0 00 021111'		MOVE	2,$PACA2
  6812	017655'	200 03 0 00 021112'		MOVE	3,$PACA3
  6813	017656'	200 04 0 00 021113'		MOVE	4,$PACA4
  6814	017657'	200 05 0 00 021114'		MOVE	5,$PACA5
  6815	017660'	402 00 0 00 000042'	$PRNTX:	SETZM	PNTFLG		;CLEAR IN PRINT FLAG
  6816	017661'	263 17 0 00 000000 		RTN			;RETURN 
  6817
  6818					;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
  6819					S^;*********************************************************************^
  6820
  6821	017662'	262 17 0 00 000000 	$PNTIB:	GETIT	AC0		;RESTORE THE STACK (P - 1)
  6822	017663'	332 00 0 00 000044'		SKIPE	PDISF#		;FIRST TIME PRINT DISABLED?
  6823	017664'	254 00 0 00 017660'		JRST	$PRNTX		;YES	...EXIT )
  6824
  6825	017665'	476 00 0 00 000044'	$PNTB1:	SETOM	PDISF		;NO ........SET IT
  6826	017666'	202 01 0 00 021110'		MOVEM	1,$PACA1	;SAVE AC'S 1 - 5
  6827	017667'	202 02 0 00 021111'		MOVEM	2,$PACA2
  6828	017670'	202 03 0 00 021112'		MOVEM	3,$PACA3
  6829	017671'	202 04 0 00 021113'		MOVEM	4,$PACA4
  6830	017672'	202 05 0 00 021114'		MOVEM	5,$PACA5
  6831	017673'	476 00 0 00 021123'		SETOM	$PNTTY		;SET FORCE TO TTY FLAG
  6832						MOVEI	[ASCIZ/
  6833					******
  6834					EXCEEDED ALLOWED PRINTOUTS
  6835	017674'	201 00 0 00 020577'	/]
  6836	017675'	254 00 0 00 020107'		JRST	$ASCPN-1	;PRINT THE WARNING & EXIT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 184
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0223

  6837					S^;*********************************************************************^
  6838					;*PRINT ROUTINE SELECTOR
  6839					;*BASED ON "AC FIELD" = 12 - 17
  6840					S^;*********************************************************************^
  6841
  6842	017676'	202 01 0 00 021110'	$PNTIA:	MOVEM	1,$PACA1#	;SAVE AC1.
  6843	017677'	202 02 0 00 021111'		MOVEM	2,$PACA2#	;SAVE AC2.
  6844	017700'	202 03 0 00 021112'		MOVEM	3,$PACA3#	;SAVE AC3.
  6845	017701'	202 04 0 00 021113'		MOVEM	4,$PACA4#	;SAVE AC4.
  6846	017702'	202 05 0 00 021114'		MOVEM	5,$PACA5#	;SAVE AC5.
  6847	017703'	262 17 0 00 000000 		GETIT	AC0		;RESTORE AC0 FROM STACK (P - 1)
  6848	017704'	402 00 0 00 021121'		SETZM	$PNT#		;CLEAR PRINT HALF WORDS FLAG
  6849	017705'	200 02 0 00 000040 		MOVE	2,LUUO
  6850	017706'	241 02 0 00 000015 		ROT	2,15		;GET X (AC FIELD)
  6851	017707'	405 02 0 00 000017 		ANDI	2,17		;OUT OF THE UUO
  6852
  6853	017710'	306 02 0 00 000017 	$PNTIC:	CAIN	2,17		;X=17?
  6854	017711'	254 00 0 00 020107'		JRST	$PNTLN		;YES. PRINT ASCII LINE
  6855	017712'	322 02 0 00 020110'		JUMPE	2,$ASCPN	;X=0? YES. GO PRINT 1 WORD ASCII
  6856	017713'	306 02 0 00 000015 		CAIN	2,15		;X=15?
  6857	017714'	254 00 0 00 020125'		JRST	$DECPN		;YES, PRINT DECIMALS )
  6858	017715'	306 02 0 00 000016 		CAIN	2,16		;X=16?
  6859	017716'	254 00 0 00 020124'		JRST	$DECSP		;YES, PRINT DECIMALS, LEADING SPACES 
  6860	017717'	306 02 0 00 000013 		CAIN	2,13		;X=13?
  6861	017720'	254 00 0 00 020075'		JRST	$PNTI3		;YES, PRINT OCTALS, 6 SP 6
  6862	017721'	306 02 0 00 000012 		CAIN	2,12		;X=12?
  6863	017722'	254 00 0 00 020103'		JRST	$CHRPN		;YES, PRINT CHARACTER )
  6864
  6865	017723'	254 00 0 00 020053'		JRST	$PNTI1		;NONE OF THE ABOVE, PRINT OCTAL
  6866									;(AC FIELD <12 OR = TO 14)
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 185
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0224

  6867					S^;*********************************************************************^
  6868					;*SIXBIT PRINT SUBROUTINE
  6869					;*PRINTS SIXBIT WORD IN AC0
  6870					S^;*********************************************************************^
  6871
  6872					;*NORMAL PRINTOUT
  6873					S^;*********************************************************************^
  6874
  6875	017724'	261 17 0 00 000001 	$PNTSX:	PUT	1		;SAVE AC1 ON STACK (P + 1)
  6876	017725'	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  6877	017726'	201 00 0 00 000000 		MOVEI	0,0
  6878	017727'	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  6879	017730'	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  6880	017731'	037 12 0 00 000000 		PNTCHR			;PRINT IT
  6881	017732'	326 01 0 00 017726'		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  6882	017733'	262 17 0 00 000001 		GETIT	1		;RESTORE AC1 FROM THE STACK (P - 1)
  6883	017734'	263 17 0 00 000000 		RTN			;EXIT
  6884
  6885					;*FORCED PRINTOUT
  6886					S^;*********************************************************************^
  6887
  6888	017735'	261 17 0 00 000001 	$PTSXF:	PUT	1		;SAVE AC1 ON THE STACK (P + 1)
  6889	017736'	200 01 0 00 000000 		MOVE	1,0		;PUT SIXBIT WORD IN AC1
  6890	017737'	201 00 0 00 000000 		MOVEI	0,0
  6891	017740'	246 00 0 00 000006 		LSHC	0,6		;GET NEXT CHAR INTO AC0
  6892	017741'	271 00 0 00 000040 		ADDI	0,40		;CONVERT TO ASCII
  6893	017742'	037 12 0 00 000001 		PNTCHF			;PRINT
  6894	017743'	326 01 0 00 017737'		JUMPN	1,.-4		;LOOP TILL ALL PRINTED
  6895	017744'	262 17 0 00 000001 		GETIT	1		;FROM THE STACK (P - 1)
  6896	017745'	263 17 0 00 000000 		RTN			;EXIT 
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 186
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0225

  6897					S^;*********************************************************************^
  6898					;*SIXBIT MESSAGE PRINT ROUTINE
  6899					;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
  6900					;*"BACKARROW" (77) SIGNIFIES END OF TEXT
  6901					;*"UPARROW" (76) SIGNIFIES CR/LF
  6902					;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
  6903					S^;*********************************************************************^
  6904
  6905	017746'	261 17 0 00 000005 	$PSIXF:	PUT	5
  6906	017747'	474 05 0 00 000000 		SETO	5,		;SET FORCED PRINTING FLAG
  6907	017750'	254 00 0 00 017753'		JRST	.+3
  6908
  6909	017751'	261 17 0 00 000005 	$PSIX:	PUT	5
  6910	017752'	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTING
  6911	017753'	261 17 0 00 000001 		PUT	1
  6912	017754'	261 17 0 00 000002 		PUT	2
  6913	017755'	261 17 0 00 000003 		PUT	3
  6914	017756'	261 17 0 00 000004 		PUT	4
  6915
  6916	017757'	550 04 0 00 000000 		HRRZ	4,0		;MESSAGE ADDRESS TO AC4
  6917
  6918	017760'	201 03 0 00 000006 	$PSIX1:	MOVEI	3,6		;6 = NUM OF 6BIT CHAR PER WORD
  6919	017761'	200 01 0 04 000000 		MOVE	1,(4)		;GET FIRST/NEXT WORD OF MESSAGE
  6920
  6921	017762'	400 02 0 00 000000 	$PSIX2:	SETZ	2,
  6922	017763'	245 01 0 00 000006 		ROTC	1,6		;C(AC1) = CHAR TO BE PRINTED
  6923	017764'	306 02 0 00 000077 		CAIN	2,77
  6924	017765'	254 00 0 00 020002'		JRST	$PSIX5		;"BACKARROW", DONE
  6925	017766'	306 02 0 00 000076 		CAIN	2,76
  6926	017767'	254 00 0 00 017777'		JRST	$PSIX4		;"UPARROW", CR/LF
  6927	017770'	306 02 0 00 000075 		CAIN	2,75
  6928	017771'	201 02 0 00 000151 		MOVEI	2,151		;"BRACKET", CHANGE TO TAB (151+40=11)
  6929	017772'	201 00 0 02 000040 		MOVEI	0,40(2)		;CHANGE TO ASCII
  6930						JUMPN	5,[PNTCHF
  6931	017773'	326 05 0 00 020607'			JRST	.+2]	;FORCED PRINT
  6932	017774'	037 12 0 00 000000 		PNTCHR
  6933	017775'	366 03 0 00 017762'	$PSIX3:	SOJN	3,$PSIX2	;PRINTED ALL CHARS FROM THIS WORD ?
  6934	017776'	344 04 0 00 017760'		AOJA	4,$PSIX1	;YES, DO NEXT WORD
  6935
  6936					$PSIX4:	JUMPN	5,[PCRLF
  6937	017777'	326 05 0 00 020611'			JRST	.+2]
  6938	020000'	037 00 0 00 000063'		PCRL			;PRINT CR/LF
  6939	020001'	254 00 0 00 017775'		JRST	$PSIX3
  6940
  6941	020002'	262 17 0 00 000004 	$PSIX5:	GETIT	4
  6942	020003'	262 17 0 00 000003 		GETIT	3
  6943	020004'	262 17 0 00 000002 		GETIT	2
  6944	020005'	262 17 0 00 000001 		GETIT	1
  6945	020006'	262 17 0 00 000005 		GETIT	5
  6946	020007'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 187
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0226

  6947					S^;*********************************************************************^
  6948					;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
  6949					;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
  6950					;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
  6951					S^;*********************************************************************^
  6952
  6953	020010'	261 17 0 00 000005 	$POCSF:	PUT	5
  6954	020011'	474 05 0 00 000000 		SETO	5,		;FORCED PRINTOUT
  6955	020012'	254 00 0 00 020015'		JRST	.+3
  6956
  6957	020013'	261 17 0 00 000005 	$POCS:	PUT	5
  6958	020014'	400 05 0 00 000000 		SETZ	5,		;NORMAL PRINTOUT
  6959	020015'	261 17 0 00 000001 		PUT	1
  6960	020016'	261 17 0 00 000002 		PUT	2
  6961	020017'	261 17 0 00 000003 		PUT	3
  6962	020020'	261 17 0 00 000004 		PUT	4
  6963
  6964	020021'	200 02 0 00 000000 		MOVE	2,0
  6965	020022'	325 02 0 00 020027'		JUMPGE	2,$POCS1	;IS NUMBER NEGATIVE ?
  6966	020023'	201 00 0 00 000055 		MOVEI	"-"
  6967						JUMPN	5,[PNTCHF
  6968	020024'	326 05 0 00 020613'			JRST	.+2]
  6969	020025'	037 12 0 00 000000 		PNTCHR			;YES, PRINT MINUS SIGN
  6970	020026'	210 02 0 00 000002 		MOVN	2,2		;MAKE NUMBER POSITIVE
  6971
  6972	020027'	400 04 0 00 000000 	$POCS1:	SETZ	4,
  6973	020030'	403 03 0 00 000001 		SETZB	3,1
  6974	020031'	322 02 0 00 020037'		JUMPE	2,$POCS3	;IF NUMBER 0, PRINT 1 ZERO
  6975
  6976	020032'	201 03 0 00 000014 		MOVEI	3,^D12		;PRINT UP TO 12 DIGITS
  6977	020033'	400 01 0 00 000000 	$POCS2:	SETZ	1,
  6978	020034'	246 01 0 00 000003 		LSHC	1,3
  6979	020035'	322 01 0 00 020051'		JUMPE	1,$POCS5	;IS THIS DIGIT ZERO ?
  6980	020036'	474 04 0 00 000000 		SETO	4,		;NO, SET NON-ZERO DIGIT FLAG
  6981	020037'	201 00 0 01 000060 	$POCS3:	MOVEI	"0"(1)		;MAKE ASCII NUMBER
  6982						JUMPN	5,[PNTCHF
  6983	020040'	326 05 0 00 020615'			JRST	.+2]
  6984	020041'	037 12 0 00 000000 		PNTCHR			;PRINT DIGIT
  6985
  6986	020042'	367 03 0 00 020033'	$POCS4:	SOJG	3,$POCS2	;ALL DONE ?
  6987	020043'	262 17 0 00 000004 		GETIT	4
  6988	020044'	262 17 0 00 000003 		GETIT	3
  6989	020045'	262 17 0 00 000002 		GETIT	2
  6990	020046'	262 17 0 00 000001 		GETIT	1
  6991	020047'	262 17 0 00 000005 		GETIT	5
  6992	020050'	263 17 0 00 000000 		RTN
  6993
  6994	020051'	322 04 0 00 020042'	$POCS5:	JUMPE	4,$POCS4	;PRINTED NON-ZERO DIGIT ?
  6995	020052'	254 00 0 00 020037'		JRST	$POCS3		;YES, PRINT ZEROS
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 188
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0227

  6996					S^;*********************************************************************^
  6997					;*OCTAL PRINTOUT ROUTINE
  6998					;*PRINTS NUMBER IN AC0
  6999					S^;*********************************************************************^
  7000
  7001	020053'	200 03 0 00 000002 	$PNTI1:	MOVE	3,2		;MOVE X INTO AC3.
  7002	020054'	241 00 0 00 777775 		ROT	0,-3		;ROT OCTAL NUM 3 PLACES
  7003	020055'	366 03 0 00 020054'		SOJN	3,.-1		;X AMOUNT OF TIMES.
  7004
  7005	020056'	201 01 0 00 000006 	$PNTI2:	MOVEI	1,6		;PUT 6 INTO AC1 SO THAT
  7006	020057'	245 00 0 00 000003 		ROTC	0,3		;C(AC1) AFTER THE ROTC WILL BE 60
  7007	020060'	265 03 0 00 020155'		JSP	3,$TOUT		;PLUS NUMBER TO BE PRINTED
  7008	020061'	366 02 0 00 020056'		SOJN	2,$PNTI2	;SUB 1 FROM X...PRINT UNTIL X=0.
  7009	020062'	202 01 0 00 021122'		MOVEM	1,$PNTSV#	;SAVE NUMBER
  7010	020063'	336 00 0 00 000046'		SKIPN	PNTSPC
  7011	020064'	254 00 0 00 020067'		JRST	.+3
  7012	020065'	201 01 0 00 000040 		MOVEI	1,40		;AT THIS POINT WE HAVE PRINTED
  7013	020066'	265 03 0 00 020155'		JSP	3,$TOUT		;X AMOUNT OF NUMBER(S) AND NOW A SPACE
  7014	020067'	336 00 0 00 021121'		SKIPN	$PNT#		;PRINT 6 SP 6 FLAG SET?
  7015	020070'	254 00 0 00 017652'		JRST	$PNTI4		;NO, EXIT )
  7016	020071'	200 01 0 00 021122'		MOVE	1,$PNTSV	;RESTORE NUMBER
  7017	020072'	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR 2ND HALF
  7018	020073'	402 00 0 00 021121'		SETZM	$PNT		;CLEAR PRINT SPACE FLAG
  7019	020074'	254 00 0 00 020056'		JRST	$PNTI2		;PRINT REST OF NUMBER
  7020
  7021	020075'	201 03 0 00 000014 	$PNTI3:	MOVEI	3,14		;SETUP FOR LH WORD
  7022	020076'	201 02 0 00 000006 		MOVEI	2,6		;SETUP FOR FIRST HALF
  7023	020077'	476 00 0 00 021121'		SETOM	$PNT		;SET PRINT 6 SP 6 FLAG
  7024	020100'	476 00 0 00 000046'		SETOM	PNTSPC		;SET THE PRINT SPACE FLAG
  7025	020101'	254 00 0 00 020054'		JRST	$PNTI1+1	;PRINT FIRST HALF NUMBER
  7026	020102'	254 00 0 00 017652'		JRST	$PNTI4		;EXIT
  7027
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 189
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0228

  7028					S^;*********************************************************************^
  7029					;*ASCII/CHARACTER PRINTOUT ROUTINE
  7030					;*PRINTS CHAR IN LOWER 7 BITS OF AC0
  7031					S^;*********************************************************************^
  7032
  7033	020103'	405 00 0 00 000177 	$CHRPN:	ANDI	0,177		;STRIP CHAR TO 7 BITS
  7034	020104'	200 01 0 00 000000 		MOVE	1,0
  7035	020105'	265 03 0 00 020155'		JSP	3,$TOUT		;PRINT A CHARACTER
  7036	020106'	254 00 0 00 017652'		JRST	$PNTI4		;LEAVE 
  7037
  7038					S^;*********************************************************************^
  7039					;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
  7040					S^;*********************************************************************^
  7041
  7042	020107'	476 00 0 00 021121'	$PNTLN:	SETOM	$PNT#		;SET PRINT MORE THAN 1 WORD FLAG.
  7043
  7044	020110'	202 00 0 00 021125'	$ASCPN:	MOVEM	0,$POINT#	;SAVE ADDRESS OF ASCII MESSAGE.
  7045	020111'	201 02 0 00 000005 	$ASCP1:	MOVEI	2,5		;5 = NUM OF ASCII CHAR. IN A WORD.
  7046	020112'	200 00 1 00 021125'		MOVE	0,@$POINT	;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
  7047
  7048	020113'	400 01 0 00 000000 	$ASCP2:	SETZ	1,		;CLEAR AC1.
  7049	020114'	245 00 0 00 000007 		ROTC	0,7		;C(AC1) = CHAR TO BE PRINTED.
  7050	020115'	322 01 0 00 017652'		JUMPE	1,$PNTI4	;CHAR = NULL?..NO MORE CHAR..EXIT
  7051	020116'	265 03 0 00 020155'		JSP	3,$TOUT		;PRINT A CHAR
  7052	020117'	366 02 0 00 020113'		SOJN	2,$ASCP2	;PNT ALL CHAR FROM THIS WORD?
  7053	020120'	350 00 0 00 021125'		AOS	$POINT		;YES. INC TO GET NEXT WORD.
  7054	020121'	336 00 0 00 021121'		SKIPN	$PNT		;PNT MORE THAN ONE WORD FLAG SET?
  7055	020122'	254 00 0 00 017652'		JRST	$PNTI4		;NO..LEAVE
  7056	020123'	254 00 0 00 020111'		JRST	$ASCP1		;YES...RETURN TO PNT NEXT WORD.
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 190
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN* PRINT SUBROUTINES                                                         SEQ 0229

  7057					S^;*********************************************************************^
  7058					;*DECIMAL PRINTOUT ROUTINE
  7059					;*PRINTS NUMBER IN AC0
  7060					S^;*********************************************************************^
  7061
  7062	020124'	476 00 0 00 021121'	$DECSP:	SETOM	$PNT		;SET LEADING SPACES PRINT CONTROL
  7063
  7064	020125'	325 00 0 00 020131'	$DECPN:	JUMPGE	0,.+4		;IS NUMBER NEGATIVE ?
  7065	020126'	201 01 0 00 000055 		MOVEI	1,"-"		;YES, PRINT MINUS SIGN
  7066	020127'	265 03 0 00 020155'		JSP	3,$TOUT
  7067	020130'	210 00 0 00 000000 		MOVN	0,0		;MAKE NUMBER POSITIVE
  7068	020131'	260 17 0 00 020133'		GO	$RADIX		;DECIMAL-ASCII CONVERSION & PRINT CHARS
  7069	020132'	254 00 0 00 017652'		JRST	$PNTI4		;EXIT
  7070
  7071	020133'	200 02 0 00 000067'	$RADIX:	MOVE	2,RADLSC	;SETUP DIGIT COUNTER
  7072	020134'	246 00 0 00 777735 		LSHC	0,-^D35		;SHIFT RIGHT 35 BITS INTO AC1
  7073	020135'	242 01 0 00 777777 		LSH	1,-1		;VACATE AC1 SIGN BIT
  7074
  7075	020136'	234 00 0 00 000065'	$DCCMP:	DIV	0,RADIX		;DIVIDE DOUBLE LENGTH INTERGER BY 10
  7076	020137'	506 01 0 17 000000 		HRLM	1,(17)		;SAVE DIGIT
  7077	020140'	370 00 0 00 000002 		SOS	2		;COUNT DIGIT
  7078	020141'	322 00 0 00 020147'		JUMPE	0,$LDSPS	;ALL DIGITS FORMED?
  7079	020142'	260 17 0 00 020134'		GO	$RADIX+1	;NO, COMPUTE NEXT ONE
  7080
  7081	020143'	554 01 0 17 000000 	$DECP1:	HLRZ	1,(17)		;YES, RETRIEVE DIGIT
  7082	020144'	271 01 0 00 000060 		ADDI	1,60		;CONVERT TO ASCII
  7083	020145'	265 03 0 00 020155'		JSP	3,$TOUT		;TYPE-OUT A DIGIT
  7084	020146'	263 17 0 00 000000 		RTN			;GET NEXT/EXIT
  7085
  7086	020147'	336 00 0 00 021121'	$LDSPS:	SKIPN	$PNT		;LEADING SPACES PRINT SET?
  7087	020150'	254 00 0 00 020143'		JRST	$DECP1		;NO ...GO PRINT
  7088									;YES ...DO IT
  7089	020151'	361 02 0 00 020143'	$DCSPS:	SOJL	2,$DECP1	;SPACES COMPLETE ?  YES
  7090	020152'	200 01 0 00 000066'		MOVE	1,RADLSP	;NO, PRINT LEADING SPACE
  7091	020153'	265 03 0 00 020155'		JSP	3,$TOUT		;TYPE OUT THE SPACE
  7092	020154'	254 00 0 00 020151'		JRST	.-3		;CHECK FOR NEXT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 193
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0230

  7093					SUBTTL	*SUBRTN*  CHARACTER OUTPUT ROUTINES
  7094
  7095					S^;*********************************************************************^
  7096					;*OUTPUT TERMINATION CONTROL ROUTINE
  7097					S^;*********************************************************************^
  7098
  7099	020155'	202 00 0 00 021115'	$TOUT:	MOVEM	0,$PACB0#	;SAVE AC0.
  7100	020156'	202 01 0 00 021124'		MOVEM	1,$PNTYC#	;SAVE CHARACTER TO BE PRINTED
  7101
  7102					S^;*********************************************************************^
  7103					;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
  7104					S^;*********************************************************************^
  7105
  7106	020157'	200 00 0 00 000006'	$TOUTB:	MOVE	AC0,CONSW	;DATA SWITCHES INTO AC0
  7107	020160'	350 00 0 00 021101'		AOS	$CARCT#		;INC CHAR CNTR.
  7108	020161'	306 01 0 00 000007 		CAIN	1,7		;CHAR A BELL ?
  7109	020162'	402 00 0 00 021126'		SETZM	$PTINH		;YES, CLEAR PRINT INHIBIT
  7110	020163'	302 01 0 00 000015 		CAIE	1,15		;CHAR A CR?
  7111	020164'	254 00 0 00 020170'		JRST	$TOUB1		;NO-CHK FOR LF
  7112	020165'	336 00 0 00 021126'		SKIPN	$PTINH		;DON'T COUNT ^O'ED LINES
  7113	020166'	350 00 0 00 000043'		AOS	PNTENB		;COUNT LINES, TILL NO MORE
  7114	020167'	402 00 0 00 021101'		SETZM	$CARCT		;CLR CHAR CNTR.
  7115
  7116	020170'	306 01 0 00 000012 	$TOUB1:	CAIN	1,12		;IS CHAR A LF?
  7117	020171'	402 00 0 00 021101'		SETZM	$CARCT		;YES-CLR CHAR CNTR.
  7118	020172'	332 00 0 00 021123'		SKIPE	$PNTTY		;NO-IS PRINT FORCED ON?
  7119	020173'	254 00 0 00 020176'		JRST	$TOUB2		;YES-DON'T CHECK NON-PNT SW
  7120	020174'	603 00 0 00 040000 		TLNE	0,NOPNT		;IS NON PNT SWITCH ON?
  7121	020175'	254 00 0 03 000000 		JRST	(3)		;YES, RETURN
  7122
  7123	020176'	265 04 0 00 020221'	$TOUB2:	JSP	4,$TOUT2	;SEND CHARACTER USER MODE 
  7124
  7125	020177'	332 00 0 00 000061'	$TOUB3:	SKIPE	USRLFF#		;NEED USER LF FILLERS ?
  7126	020200'	254 00 0 00 020210'		JRST	$USRFL		;YES
  7127	020201'	332 00 0 00 000062'		SKIPE	USRCRF#		;NEED USER CR FILLERS ?
  7128	020202'	254 00 0 00 020204'		JRST	$USRFC		;YES
  7129	020203'	254 00 0 00 020217'		JRST	$TOUTA		;NO-BACK TO PRINT ROUTINE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 194
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0231

  7130					;*USER MODE LF & CR FILLERS
  7131					S^;*********************************************************************^
  7132
  7133	020204'	302 01 0 00 000015 	$USRFC:	CAIE	1,15		;CR ?
  7134	020205'	254 00 0 00 020217'		JRST	$TOUTA		;NO-RETURN TO PRINT ROUTINE 
  7135	020206'	200 05 0 00 000062'		MOVE	5,USRCRF	;SEND FILLERS FOR CR
  7136	020207'	254 00 0 00 020213'		JRST	$USRF1		;DEPENDING ON 'USRCRF'
  7137
  7138	020210'	302 01 0 00 000012 	$USRFL:	CAIE	1,12		;LF ?
  7139	020211'	254 00 0 00 020217'		JRST	$TOUTA		;NO-RETURN TO PRINT 
  7140	020212'	200 05 0 00 000061'		MOVE	5,USRLFF	;SEND FILLERS FOR LF
  7141	020213'	361 05 0 00 020217'	$USRF1:	SOJL	5,$TOUTA	;DEPENDING ON 'USRLFF'
  7142	020214'	201 01 0 00 000001 		MOVEI	1,001		;^A
  7143	020215'	265 04 0 00 020221'		JSP	4,$TOUT2	;SEND CHARACTER 
  7144	020216'	254 00 0 00 020213'		JRST	$USRF1
  7145
  7146					;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
  7147					S^;*********************************************************************^
  7148	020217'	200 00 0 00 021115'	$TOUTA:	MOVE	AC0,$PACB0	;RESTORE AC0
  7149	020220'	254 00 0 03 000000 		JRST	(3)		;RETURN TO PRINT ROUTINE
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 195
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0232

  7150					S^;*********************************************************************^
  7151					;*USER MODE CHARACTER OUTPUT
  7152					S^;*********************************************************************^
  7153
  7154	020221'	202 04 0 00 021116'	$TOUT2:	MOVEM	4,$PACC4#
  7155	020222'	306 01 0 00 000026 		CAIN	1,26		;DON'T PRINT NULLS
  7156	020223'	254 00 1 00 021116'		JRST	@$PACC4
  7157	020224'	200 00 0 00 000006'		MOVE	0,CONSW
  7158	020225'	603 00 0 00 020000 		TLNE	0,PNTLPT	;IS LPT PRINT SWITCH UP ?
  7159	020226'	254 00 0 00 020254'		JRST	$TOUT3		;YES, GO PRINT ON LOGICAL DEVICE
  7160	020227'	037 05 0 00 000002 		DROPDV			;CLOSE DEV IF SWITCH CHANGED
  7161	020230'	200 00 0 00 021101'	$TOUT6:	MOVE	0,$CARCT	;CHARACTER NUMBER
  7162	020231'	306 00 0 00 000001 		CAIN	0,1		;FIRST CHAR IN LINE ?
  7163	020232'	254 00 0 00 020242'		JRST	$TOUT4		;YES
  7164	020233'	332 00 0 00 021055'	$TOUT5:	SKIPE	NOTYPE		;TYPEOUT INHIBITED ?
  7165	020234'	254 00 1 00 021116'		JRST	@$PACC4		;YES
  7166	020235'	336 00 0 00 000302'		SKIPN	MONTYP
  7167	020236'	051 01 0 00 000001 		OUTCHR	1
  7168	020237'	332 00 0 00 000302'		SKIPE	MONTYP
  7169	020240'	104 00 0 00 000074 		PBOUT			;OUTPUT VIA MONITOR TTCALL
  7170	020241'	254 00 1 00 021116'		JRST	@$PACC4		;GO RESTORE AC0 AND RETURN
  7171
  7172	020242'	331 00 0 00 000004'	$TOUT4:	SKIPL	MONCTL		;SYSTEM EXERCISER
  7173	020243'	254 00 0 00 020233'		JRST	$TOUT5		;NO
  7174	020244'	261 17 0 00 000001 		PUT	1
  7175	020245'	201 01 0 00 000077 		MOVEI	1,"?"		;PRECEDE LINE WITH ?
  7176	020246'	336 00 0 00 000302'		SKIPN	MONTYP
  7177	020247'	051 01 0 00 000001 		OUTCHR	1
  7178	020250'	332 00 0 00 000302'		SKIPE	MONTYP
  7179	020251'	104 00 0 00 000074 		PBOUT
  7180	020252'	262 17 0 00 000001 		GETIT	1
  7181	020253'	254 00 0 00 020233'		JRST	$TOUT5
  7182
  7183					;*USER MODE LOGICAL DEVICE OUTPUT
  7184					S^;*********************************************************************^
  7185
  7186	020254'	336 00 0 00 000051'	$TOUT3:	SKIPN	$DVOFF		;DEVICE BEEN INITED YET ?
  7187	020255'	260 17 0 00 020305'		GO	$INTDV		;NO, GO DO IT
  7188	020256'	260 17 0 00 020262'		GO	$PUTCR		;GO OUTPUT CHAR
  7189	020257'	336 00 0 00 021123'		SKIPN	$PNTTY		;SKIP IF MESSAGE ALSO FORCED TO TTY
  7190	020260'	254 00 1 00 021116'		JRST	@$PACC4
  7191	020261'	254 00 0 00 020230'		JRST	$TOUT6		;OUTPUT 
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 196
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0233

  7192					;* LOGICAL DEVICE OUTPUT ROUTINES
  7193					S^;*********************************************************************^
  7194
  7195	020262'	336 00 0 00 000302'	$PUTCR:	SKIPN	MONTYP
  7196	020263'	254 00 0 00 020421'		JRST	$PUT10
  7197	020264'	261 17 0 00 000001 		PUT	1
  7198	020265'	261 17 0 00 000002 		PUT	2
  7199	020266'	200 02 0 00 000001 		MOVE	2,1
  7200	020267'	200 01 0 00 021035'		MOVE	1,DEVJFN
  7201	020270'	104 00 0 00 000051 		BOUT
  7202	020271'	320 16 0 00 020275'		ERJMP	$PUTER
  7203	020272'	262 17 0 00 000002 		GETIT	2
  7204	020273'	262 17 0 00 000001 		GETIT	1
  7205	020274'	263 17 0 00 000000 		RTN
  7206
  7207					$PUTER:	TMSG	<
  7208					LOG OUTPUT ERROR - LOGGING STOPPED
  7209					>^
  7210						HRROI .AC1,[ASCIZ \
  7211					LOG OUTPUT ERROR - LOGGING STOPPED
  7212	020275'	561 01 0 00 020617'	\]
  7213	020276'	104 00 0 00 000076 		PSOUT^
  7214	020277'	402 00 0 00 016571'		SETZM	LOGFLG
  7215	020300'	402 00 0 00 000006'		SETZM	CONSW
  7216	020301'	260 17 0 00 020350'		GO	$DRPDV
  7217	020302'	262 17 0 00 000002 		GETIT	2
  7218	020303'	262 17 0 00 000001 		GETIT	1
  7219	020304'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 197
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0234

  7220					S^;*********************************************************************^
  7221					;*LOGICAL DEVICE INITIALIZATION
  7222					;*PHY DEV ASSIGNED AT RUN TIME
  7223					S^;*********************************************************************^
  7224
  7225	020305'	200 00 0 00 016625'	$INTDV:	MOVE	0,PNTEXT
  7226	020306'	202 00 0 00 000074'		MOVEM	0,$OUTEX
  7227	020307'	200 00 0 00 016624'		MOVE	0,PNTNAM	;SETUP LOGICAL OUTPUT FILE NAME
  7228	020310'	202 00 0 00 000073'		MOVEM	0,$OUTNM
  7229	020311'	202 01 0 00 021117'		MOVEM	1,$PACF1#
  7230	020312'	202 02 0 00 021120'		MOVEM	2,$PACF2#
  7231	020313'	402 00 0 00 021105'		SETZM	$INTD3#
  7232	020314'	336 00 0 00 000302'		SKIPN	MONTYP
  7233	020315'	254 00 0 00 020431'		JRST	$INT10		;TOPS10
  7234	020316'	200 00 0 00 020627'		MOVE	[POINT 7,FILASC,27]
  7235	020317'	200 01 0 00 020630'		MOVE	1,[ASCII/DEV:/]
  7236	020320'	202 01 0 00 020666'		MOVEM	1,FILASC
  7237	020321'	201 01 0 00 000073'	$INT21:	MOVEI	1,$OUTNM
  7238	020322'	260 17 0 00 020372'		GO	SIXASC		;CONVERT SIXBIT TO ASCII
  7239	020323'	515 01 0 00 000001 		HRLZI	1,(GJ%SHT)	;IF FILE EXISTS, APPEND TO IT
  7240	020324'	561 02 0 00 020666'		HRROI	2,FILASC
  7241	020325'	104 00 0 00 000020 		GTJFN
  7242	020326'	320 16 0 00 020337'		 ERJMP	$INT22		;DEVICE NOT AVAILABLE, DEFAULT TO DSK
  7243	020327'	202 01 0 00 021035'		MOVEM	1,DEVJFN#
  7244	020330'	200 02 0 00 020631'		MOVE	2,[7B5!OF%APP]
  7245	020331'	104 00 0 00 000021 		OPENF
  7246	020332'	254 00 0 00 020363'		 JRST	T20ERR
  7247	020333'	476 00 0 00 000051'	$INT12:	SETOM	$DVOFF
  7248	020334'	200 02 0 00 021120'		MOVE	2,$PACF2
  7249	020335'	200 01 0 00 021117'		MOVE	1,$PACF1
  7250	020336'	263 17 0 00 000000 		RTN
  7251
  7252	020337'	332 00 0 00 021105'	$INT22:	SKIPE	$INTD3
  7253	020340'	254 00 0 00 020363'		 JRST	T20ERR
  7254						HRROI	1,[ASCIZ/
  7255					****
  7256					USING 'DSK' PRINT FILE
  7257					****
  7258	020341'	561 01 0 00 020632'	/]
  7259	020342'	104 00 0 00 000076 		PSOUT
  7260	020343'	200 00 0 00 020627'		MOVE	[POINT 7,FILASC,27]
  7261	020344'	200 01 0 00 020642'		MOVE	1,[ASCII/DSK:/]
  7262	020345'	202 01 0 00 020666'		MOVEM	1,FILASC
  7263	020346'	476 00 0 00 021105'		SETOM	$INTD3
  7264	020347'	254 00 0 00 020321'		JRST	$INT21
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 198
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0235

  7265					;*USER MODE CLOSE FILE
  7266					S^;*********************************************************************^
  7267
  7268	020350'	336 00 0 00 000051'	$DRPDV:	SKIPN	$DVOFF		;DEVICE INITED?
  7269	020351'	263 17 0 00 000000 		RTN			;NO, DON'T BOTHER 
  7270	020352'	336 00 0 00 000302'		SKIPN	MONTYP
  7271	020353'	254 00 0 00 020457'		JRST	$DRP10		;TOPS10
  7272	020354'	261 17 0 00 000001 		PUT	1
  7273	020355'	200 01 0 00 021035'		MOVE	1,DEVJFN
  7274	020356'	104 00 0 00 000022 		CLOSF
  7275	020357'	254 00 0 00 020363'		 JRST	T20ERR
  7276	020360'	262 17 0 00 000001 		GETIT	1
  7277	020361'	402 00 0 00 000051'		SETZM	$DVOFF
  7278	020362'	263 17 0 00 000000 		RTN			;EXIT 
  7279
  7280	020363'	201 01 0 00 000101 	T20ERR:	MOVEI	1,.PRIOU
  7281	020364'	525 02 0 00 400000 		HRLOI	2,.FHSLF
  7282	020365'	400 03 0 00 000000 		SETZ	3,
  7283	020366'	104 00 0 00 000011 		ERSTR
  7284	020367'	104 00 0 00 000170 		 HALTF
  7285	020370'	104 00 0 00 000170 		 HALTF
  7286	020371'	104 00 0 00 000170 		HALTF
  7287
  7288	020372'	261 17 0 00 000002 	SIXASC:	PUT	2
  7289	020373'	261 17 0 00 000003 		PUT	3
  7290	020374'	261 17 0 00 000004 		PUT	4
  7291	020375'	200 03 0 00 000000 		MOVE	3,0
  7292	020376'	200 04 0 00 000001 		MOVE	4,1
  7293	020377'	200 01 0 04 000000 		MOVE	1,(4)
  7294	020400'	260 17 0 00 020413'		GO	SIXSTR
  7295	020401'	201 00 0 00 000056 		MOVEI	"."
  7296	020402'	136 00 0 00 000003 		IDPB	0,3
  7297	020403'	510 01 0 04 000001 		HLLZ	1,1(4)
  7298	020404'	332 00 0 00 000001 		SKIPE	1
  7299	020405'	260 17 0 00 020413'		GO	SIXSTR
  7300	020406'	136 01 0 00 000003 		IDPB	1,3
  7301	020407'	262 17 0 00 000004 		GETIT	4
  7302	020410'	262 17 0 00 000003 		GETIT	3
  7303	020411'	262 17 0 00 000002 		GETIT	2
  7304	020412'	263 17 0 00 000000 		RTN
  7305
  7306	020413'	403 00 0 00 000002 	SIXSTR:	SETZB	0,2
  7307	020414'	246 00 0 00 000006 		LSHC	0,6
  7308	020415'	271 00 0 00 000040 		ADDI	0,40
  7309	020416'	136 00 0 00 000003 		IDPB	0,3
  7310	020417'	326 01 0 00 020413'		JUMPN	1,.-4
  7311	020420'	263 17 0 00 000000 		RTN
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 199
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0236

  7312					;*TOPS10, LOGICAL DEVICE OUTPUT
  7313
  7314	020421'	332 00 0 00 021103'	$PUT10:	SKIPE	$DVTTY#		;IF DEVICE IS TTY
  7315	020422'	254 00 0 00 020427'		JRST	.+5		;EMPTY BUFFER AFTER EACH CHAR
  7316	020423'	377 00 0 00 000072'		SOSG	$OBUF+2		;INCREMENT BYTE COUNT
  7317	020424'	254 00 0 00 020427'		JRST	.+3
  7318	020425'	136 01 0 00 000071'		IDPB	1,$OBUF+1	;STORE CHAR
  7319	020426'	263 17 0 00 000000 		RTN
  7320	020427'	057 17 0 00 000000 		OUT	$DEVCH,		;EMPTY BUFFER
  7321	020430'	254 00 0 00 020425'		JRST	.-3
  7322
  7323					;*$INT10, TOPS10 INITIALIZE LOGICAL OUTPUT
  7324
  7325	020431'	202 00 0 00 000073'	$INT10:	MOVEM	0,$OUTNM
  7326	020432'	041 17 0 00 000000 		INIT	$DEVCH,0	;ASCII MODE, DEV CHANNEL
  7327	020433'	44 45 66 00 00 00 		SIXBIT	/DEV/		;LOGICAL DEVICE, LPT,DSK,DTAX
  7328	020434'	000070'	000000			XWD	$OBUF,		;OUTPUT ONLY
  7329	020435'	254 00 0 00 020447'		JRST	$INT13		;DEV NOT AVAIL, DEFAULT TO DISK
  7330	020436'	065 17 0 00 000001 	$INT11:	OUTBUF	$DEVCH,1	;SETUP OUTPUT BUFFER
  7331	020437'	077 17 0 00 000073'		ENTER	$DEVCH,$OUTNM	;INIT OUTPUT FILE
  7332	020440'	254 00 0 00 020474'		JRST	$OERR2		;NO DIR ROOM, ERROR
  7333	020441'	476 00 0 00 000051'		SETOM	$DVOFF		;SET DEVICE INITED FLAG
  7334	020442'	201 00 0 00 000017 		MOVEI	0,$DEVCH
  7335	020443'	047 00 0 00 000004 		DEVCHR			;GET DEVICE CHARACTERISTICS
  7336	020444'	603 00 0 00 000010 		TLNE	0,10
  7337	020445'	476 00 0 00 021103'		SETOM	$DVTTY		;DEVICE IS TTY
  7338	020446'	254 00 0 00 020333'		JRST	$INT12		;EXIT
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 200
SMFILE	MAC	19-Feb-79 10:46		*SUBRTN*  CHARACTER OUTPUT ROUTINES                                                SEQ 0237

  7339	020447'	336 00 0 00 021106'	$INT13:	SKIPN	$INTDF		;FIRST DEFAULT INIT ?
  7340						OUTSTR	[ASCIZ/
  7341					****
  7342					USING 'DSK' PRINT FILE
  7343					****
  7344	020450'	051 03 0 00 020632'	/]
  7345	020451'	476 00 0 00 021106'		SETOM	$INTDF
  7346	020452'	041 17 0 00 000000 		INIT	$DEVCH,0
  7347	020453'	44 63 53 00 00 00 		SIXBIT	/DSK/
  7348	020454'	000070'	000000			XWD	$OBUF,
  7349	020455'	254 00 0 00 020472'		JRST	$OERR1
  7350	020456'	254 00 0 00 020436'		JRST	$INT11
  7351
  7352					;*USER MODE CLOSE FILE
  7353
  7354	020457'	070 17 0 00 000000 	$DRP10:	CLOSE	$DEVCH,		;CLOSE FILE
  7355	020460'	063 17 0 00 740000 		STATZ	$DEVCH,740000	;RECHECK FINAL ERROR BITS
  7356						OUTSTR	[ASCIZ/
  7357					%PRINT CLOSE ERROR
  7358	020461'	051 03 0 00 020643'	/]
  7359	020462'	071 17 0 00 000000 		RELEAS	$DEVCH,		;RELINQUISH DEVICE, WRITE DIRECTORY
  7360	020463'	402 00 0 00 000051'		SETZM	$DVOFF
  7361	020464'	263 17 0 00 000000 		RTN			;EXIT 
  7362
  7363	020465'				$OUTER:	OUTSTR	[ASCIZ/
  7364					%PRINT OUTPUT ERROR
  7365	020465'	051 03 0 00 020650'	/]
  7366	020466'	332 00 0 00 000303'		SKIPE	$$OUTER
  7367	020467'	256 00 0 00 000303'		XCT	$$OUTER		;EXECUTE USERS ERROR RTN, IF PROV.
  7368	020470'	047 01 0 00 000012 		EXIT	1,		;ERROR, QUIT
  7369	020471'	254 00 0 00 000345'		JRST	START		;RESTART USER SEGMENT 
  7370
  7371	020472'				$OERR1:	OUTSTR	[ASCIZ/
  7372	020472'	051 03 0 00 020655'	DSK INIT ERROR/]
  7373	020473'	254 00 0 00 020465'		JRST	$OUTER		;DISK PRINT OUTPUT ERROR
  7374
  7375	020474'				$OERR2:	OUTSTR	[ASCIZ/
  7376	020474'	051 03 0 00 020661'	NO DIR ROOM/]
  7377	020475'	254 00 0 00 020465'		JRST	$OUTER		;DISK PRINT OUTPUT ERROR
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 201
SMFILE	MAC	19-Feb-79 10:46		*STOR* RESERVED STORAGE                                                            SEQ 0238

  7378					SUBTTL	*STOR* RESERVED STORAGE
  7379
  7380					;PROGRAM LITERALS
  7381	020476'					LIT
  7382	020476'	123 115 106 111 114 
  7383	020477'	105 000 000 000 000 
  7384	020500'	104 105 103 123 131 
  7385	020501'	123 124 105 115 055 
  7386	020502'	062 060 062 060 000 
  7387	020503'	122 101 115 000 000 
  7388	020504'	000112	000011
  7389	020505'	260 17 0 00 016672'
  7390	020506'	254 00 0 00 016725'
  7391	020507'	76 51 54 54 45 47 
  7392	020510'	41 54 00 65 65 57 
  7393	020511'	76 65 65 57 75 75 
  7394	020512'	46 54 41 47 63 75 
  7395	020513'	00 00 60 43 76 77 
  7396	020514'	037 12 0 00 000001 
  7397	020515'	254 00 0 00 017025'
  7398	020516'	037 15 0 00 000003 
  7399	020517'	254 00 0 00 017025'
  7400	020520'	037 14 0 00 000003 
  7401	020521'	254 00 0 00 017025'
  7402	020522'	037 17 0 00 000001 
  7403	020523'	254 00 0 00 017025'
  7404	020524'	000001	000001
  7405	020525'	41 60 62 51 44 00 
  7406	020526'	000020	000011
  7407	020527'	45 62 62 57 62 00 
  7408	020530'	50 41 54 64 00 41 
  7409	020531'	64 00 77 00 00 00 
  7410	020532'	46 41 64 41 54 00 
  7411	020533'	60 62 57 47 62 41 
  7412	020534'	55 00 45 62 62 57 
  7413	020535'	62 00 41 64 00 77 
  7414	020536'	66 45 62 63 51 57 
  7415	020537'	56 00 77 00 00 00 
  7416	020540'	14 00 64 57 60 63 
  7417	020541'	15 21 20 77 00 00 
  7418	020542'	14 00 64 57 60 63 
  7419	020543'	15 22 20 77 00 00 
  7420	020544'	14 00 53 63 21 20 
  7421	020545'	77 00 00 00 00 00 
  7422	020546'	037 02 0 00 020544'
  7423	020547'	254 00 0 00 017135'
  7424	020550'	14 00 53 54 21 20 
  7425	020551'	77 00 00 00 00 00 
  7426	020552'	332 00 0 00 000305'
  7427	020553'	254 00 0 00 020546'
  7428	020554'	037 02 0 00 020550'
  7429	020555'	254 00 0 00 017135'
  7430	020556'	14 00 53 41 21 20 
  7431	020557'	77 00 00 00 00 00 
  7432	020560'	037 02 0 00 020556'
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 201-1
SMFILE	MAC	19-Feb-79 10:46		*STOR* RESERVED STORAGE                                                            SEQ 0239

  7433	020561'	254 00 0 00 017135'
  7434	020562'	14 00 53 51 21 20 
  7435	020563'	77 00 00 00 00 00 
  7436	020564'	14 00 43 60 65 03 
  7437	020565'	35 77 00 00 00 00 
  7438	020566'	45 56 44 00 60 41 
  7439	020567'	63 63 00 77 00 00 
  7440	020570'	44 07 0 00 020671'
  7441	020571'	600000	000204
  7442	020572'	00 71 00 57 62 00 
  7443	020573'	56 00 34 43 62 36 
  7444	020574'	00 15 00 77 00 00 
  7445	020575'	421042	104210
  7446	020576'	44 06 0 00 000001 
  7447	020577'	015 012 052 052 052 
  7448	020600'	052 052 052 015 012 
  7449	020601'	105 130 103 105 105 
  7450	020602'	104 105 104 040 101 
  7451	020603'	114 114 117 127 105 
  7452	020604'	104 040 120 122 111 
  7453	020605'	116 124 117 125 124 
  7454	020606'	123 015 012 000 000 
  7455	020607'	037 12 0 00 000001 
  7456	020610'	254 00 0 00 017775'
  7457	020611'	037 01 0 00 000063'
  7458	020612'	254 00 0 00 020001'
  7459	020613'	037 12 0 00 000001 
  7460	020614'	254 00 0 00 020026'
  7461	020615'	037 12 0 00 000001 
  7462	020616'	254 00 0 00 020042'
  7463	020617'	015 012 114 117 107 
  7464	020620'	040 117 125 124 120 
  7465	020621'	125 124 040 105 122 
  7466	020622'	122 117 122 040 055 
  7467	020623'	040 114 117 107 107 
  7468	020624'	111 116 107 040 123 
  7469	020625'	124 117 120 120 105 
  7470	020626'	104 015 012 000 000 
  7471	020627'	10 07 0 00 020666'
  7472	020630'	104 105 126 072 000 
  7473	020631'	070000	020000
  7474	020632'	015 012 052 052 052 
  7475	020633'	052 015 012 125 123 
  7476	020634'	111 116 107 040 047 
  7477	020635'	104 123 113 047 040 
  7478	020636'	120 122 111 116 124 
  7479	020637'	040 106 111 114 105 
  7480	020640'	015 012 052 052 052 
  7481	020641'	052 015 012 000 000 
  7482	020642'	104 123 113 072 000 
  7483	020643'	015 012 045 120 122 
  7484	020644'	111 116 124 040 103 
  7485	020645'	114 117 123 105 040 
  7486	020646'	105 122 122 117 122 
  7487	020647'	015 012 000 000 000 
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 201-2
SMFILE	MAC	19-Feb-79 10:46		*STOR* RESERVED STORAGE                                                            SEQ 0240

  7488	020650'	015 012 045 120 122 
  7489	020651'	111 116 124 040 117 
  7490	020652'	125 124 120 125 124 
  7491	020653'	040 105 122 122 117 
  7492	020654'	122 015 012 000 000 
  7493	020655'	015 012 104 123 113 
  7494	020656'	040 111 116 111 124 
  7495	020657'	040 105 122 122 117 
  7496	020660'	122 000 000 000 000 
  7497	020661'	015 012 116 117 040 
  7498	020662'	104 111 122 040 122 
  7499	020663'	117 117 115 000 000 
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 202
SMFILE	MAC	19-Feb-79 10:46		*STOR* RESERVED STORAGE                                                            SEQ 0241

  7500	020665'	000000	000000		ENDSLD:	0
  7501
  7502					;END OF PROGRAM VARIABLES
  7503
  7504	020666'				FILASC:	BLOCK	3
  7505
  7506	020671'				D$ISTR:	BLOCK	^D30		;INPUT STORAGE
  7507
  7508	020727'				PATCH:	BLOCK	100		;DEBUGGING AREA
  7509
  7510					;PROGRAM VARIABLE WORDS
  7511
  7512	021027'					VAR
  7513
  7514	021143'	000000	000000		END:	0
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 203
SMFILE	MAC	19-Feb-79 10:46		STORAGE -- ZEROED ON STARTUP                                                       SEQ 0242

  7515					SUBTTL	STORAGE -- ZEROED ON STARTUP
  7516	021144'				FIRZER:!
  7517
  7518	021144'				LEV1PC:	BLOCK	1		;RETURN PC FOR PSI'S
  7519	021145'				LEV2PC:	BLOCK	1		; ..
  7520	021146'				LEV3PC:	BLOCK	1		; ..
  7521	021147'				LF1PC:	BLOCK	1		;RETURN PC FOR PSI'S
  7522	021150'				LF2PC:	BLOCK	1		; ..
  7523	021151'				LF3PC:	BLOCK	1		; ..
  7524	021152'				EXMADR:	BLOCK	1		;ADDRESS OF LAST EXAMINE COMMAND
  7525	021153'				BITPTR:	BLOCK	1		;BYTE POINTER TO INPUT BIT
  7526	021154'				BITBYT:	BLOCK	1		;INPUT BYTE
  7527	021155'				CMDMSG:	BLOCK	1		;POINTER TO ERROR MESSAGE
  7528	021156'				CZADR:	BLOCK	1		;WHERE TO GO ON CONTROL-Z
  7529	021157'				CZSP:	BLOCK	1		;CONTROL-Z STACK POINTER
  7530	021160'				CTADR:	BLOCK	1		;WHERE TO GO ON CONTROL-T
  7531	021161'				CMFILE:	BLOCK	1		;COMMAND JFN
  7532	021162'				UCFILE:	BLOCK	1		;INPUT JFN
  7533	021163'				DEPFLG:	BLOCK	1		;0=EXAMINE, -1=DEPOSIT
  7534	021164'				LASTCA:	BLOCK	1		;LAST CRAM ADDRESS
  7535	021165'				INTAKE:	BLOCK	1		;-1 DON'T TYPE DATA BECAUSE OF TAKE CMD
  7536	021166'				ULDSTR:	BLOCK	4		;".ULD" LINE STORAGE
  7537	021172'				IBF:	BLOCK	2		;INPUT FILE POINTERS
  7538	021174'				DSKBF:	BLOCK	3
  7539	021177'				GSBF:	BLOCK	3
  7540	021202'				DSKLIN:	BLOCK	^D30
  7541	021240'				DSKNAM:	BLOCK	1
  7542	021241'				DSKEXT:	BLOCK	3
  7543	021244'				$CCLF:	BLOCK	1
  7544	021245'				$CMNTF:	BLOCK	1
  7545	021246'				$LISTF:	BLOCK	1
SMFILE	DECSYSTEM 2020 DIAGNOSTICS FE-FILE PROGRAM, VER 0,3	MACRO %53(1020) 10:47 19-Feb-79 Page 204
SMFILE	MAC	19-Feb-79 10:46		STORAGE -- ZEROED ON STARTUP                                                       SEQ 0243

  7546	021247'				CFCALL:	BLOCK	1
  7547	021250'				CFJ:	BLOCK	1
  7548	021251'				CFNBR:	BLOCK	1
  7549	021252'				CFALU:	BLOCK	1
  7550	021253'				CFSD:	BLOCK	1
  7551	021254'				CFAB:	BLOCK	1
  7552	021255'				CFRBM:	BLOCK	1
  7553	021256'				CFSPEC:	BLOCK	1
  7554	021257'				CFDISP:	BLOCK	1
  7555	021260'				CFSKIP:	BLOCK	1
  7556	021261'				CFT:	BLOCK	1
  7557	021262'				CFC:	BLOCK	1
  7558	021263'				CFSC:	BLOCK	1
  7559	021264'				CFFE:	BLOCK	1
  7560	021265'				CFFM:	BLOCK	1
  7561	021266'				CFMC:	BLOCK	1
  7562	021267'				CFDV:	BLOCK	1
  7563	021270'				CFMP:	BLOCK	1
  7564	021271'				CFCL:	BLOCK	1
  7565	021272'				CFCR:	BLOCK	1
  7566	021273'				CFMARK:	BLOCK	1
  7567	021274'				STBUF:	BLOCK	40		;STRING BUFFER
  7568	021334'				LFPDL:	BLOCK	100
  7569			021433'		ENDZER==.-1
  7570
  7571	021640'					RELOC	<<.+1140>&777000>-140
  7572	021640'				IPAG:	BLOCK	^D512
  7573
  7574		000003	000306'			END	<3,,EV>

NO ERRORS DETECTED

PROGRAM BREAK IS 022640
CPU TIME USED 00:54.339

78P CORE USED

A	    66#	  2040	  2042	  2193	  2195	  2345	  2347	  4781	  4783
AC	    76#                                                                                                            SEQ 0244
AC0	    71#	  6096	  6097	  6098	  6099	  6101	  6104	  6106	  6107	  6116	  6119	  6120	  6130	  6133
	  6136	  6137	  6260	  6265	  6280	  6380	  6572	  6574	  6576	  6803	  6821	  6847	  7106	  7148
AC1	    72#
AC10	    56#	  4180	  4197	  4223	  4228	  4282	  4283	  4284	  4285	  4286	  4287	  4288	  4289	  4290
	  4291	  4292	  4293	  4334	  4335	  4336	  4337	  4338	  4339	  4340	  4341	  4342	  4343	  4344
	  4345	  4346	  4347	  4348	  4349	  4350	  4351	  4353	  4354	  4355	  4359	  4363	  4393	  4886
	  4890	  4893	  4894	  5531
AC11	    57#	   843	  4181	  4218	  4224	  4294	  4295	  4296	  4297	  4298	  4299	  4300	  4301	  4302
	  4325	  4326	  4327	  4329	  4332	  4358	  4360	  4361	  4362	  4374	  4375	  4376	  4377	  4378
	  4379	  4380	  4381	  4382	  4383	  4384	  4385	  4386	  4387	  4388	  4389	  4390	  4391	  5536
AC12	    58#	   843	   845	  4181	  4219	  4303	  4304	  4305	  4306	  4307	  4308	  4309	  4310	  4311
	  4313	  4314	  4315	  4316	  4317	  4318	  4319	  4320	  4321	  4322	  4323	  4324	  4328	  4330
	  4331	  4333	  4352	  4356	  4357	  4365	  4366	  4367	  4368	  4369	  4370	  4371	  4372	  4373
	  4394	  5538	  5539
AC13	    59#	   844	   848
AC2	    73#
AC3	    74#
AC4	    75#
ACBLK0	  2628	  2651#
ACBLK1	  2622	  2650#
ACBLK2	  2616	  2649#
ACBLK3	  2610	  2648#
ACBLK4	  2604	  2647#
ACBLK5	  2598	  2646#
ACBLK6	  2592	  2645#
ACBLK7	  2586	  2644#
ARGBLK	  1359	  1365	  1366	  1372	  1408#	  1434	  1440	  1441	  1447
ARGLN	  1366	  1407#	  1408	  1441
AROV	   258#
AROVU	   322#
ATOM	   791	  5967	  5989#
B	    67#	  3874	  3875	  3880
B2PLSH	  4764#
BADHOM	  3235	  3239#
BC1FLG	  1057#	  1057	  1059	  1113	  1115	  1131	  1133	  2669	  2671	  2684	  2695	  2714	  3257	  3259
	  3262	  3302	  3304	  3312	  3314	  3358	  3360	  4125	  4166	  4168	  4463	  4465	  4489	  4491
	  4532	  4534	  5221	  5223
BC1L	   102#	  1349	  2685	  2717
BC1P	   101#	  2716
BC210	  1843	  2300#
BC210A	  2358#	  2419
BC210C	  2359	  2367#
BC210D	  2369#	  2416
BC210E	  2376#	  2380
BC210F	  2379#
BC210G	  2377	  2382#
BC210H	  2370	  2407	  2414#
BC210I	  2415#
BC210J	  2438#	  2446
BC210K	  2440	  2448#
BC2LP	  1889#	  1895
BCHKL	   114#	  1883	  1887	  1904	  2334
BCHKP	   113#	  2431                                                                                                     SEQ 0245
BCKL	   105#	  1352
BCKP	   104#
BCPREB	   126#	  2448	  2449	  2450	  2452	  2453
BIS	   262#
BITBYT	  7526#
BITPTR	  7525#
BLKSIZ	  3384#	  3493	  3496	  3499	  4762#
BOORG	  1511#	  2459	  4911
BOOTEV	  1568#	  1616	  1664	  1738	  1786	  1860	  1908	  2099	  2112	  2252	  2265	  2410	  2423	  4609
	  4635
BTADDR	  3165#	  3165	  3169	  3179	  3190	  3872	  4066	  4074	  4102
BTHLT0	  2463#	  2541
BTHLT1	  2464#	  2545
BTHLT2	  2465#	  2476
BTHLT3	  2466#
BTJFN	  1566#	  1585	  1607	  1705	  1729	  1827	  1851	  4567	  4600
BTLADR	  3875#	  3875	  3897	  4063	  4065	  4069	  4098
BTLPAG	  3878#	  3878	  4072	  4100
BTSTAR	  2461	  2468#
BTSTR1	  1675	  1676	  2141	  2142	  2458#
BTSTRT	  2461#
BTUBP0	  2477	  2519	  2566	  2659#
BTUBST	  2478	  2568	  2660#
BTVER	  2571	  2657#
BUFFER	  1368	  1386	  1443	  1461	  1565#
BUFSIZ	  1565#
BYTE	    82#
C	    68#	  3529	  3530	  3533	  3877	  3878
CCBLK	   763	  3454#	  5811	  5813	  5817
CCINT	  3454	  5816#
CCLBLK	  3750	  3764	  3766	  3812#
CCLDIR	  3753	  3758	  3761	  3771	  3814#
CF%NUD	  4659
CFAB	  5666	  7551#
CFALU	  5648	  7549#
CFC	  5716	  7557#
CFCALL	  5630	  7546#
CFCL	  5766	  7564#
CFCR	  5777	  7565#
CFDISP	  5697	  7554#
CFDV	  5745	  7562#
CFFE	  5727	  7559#
CFFM	  5733	  7560#
CFJ	  5635	  7547#
CFM	   623#	   831
CFMARK	  5782	  7566#
CFMC	  5739	  7561#
CFMCM1	   833	   838#
CFMCMD	   422	   830#
CFMP	  5754	  7563#
CFNBR	  5643	  7548#
CFRBM	  5677	  7552#
CFSC	  5722	  7558#                                                                                                    SEQ 0246
CFSD	  5659	  7550#
CFSKIP	  5706	  7555#
CFSPEC	  5687	  7553#
CFT	  5711	  7556#
CHKCNT	  3515#
CHNTAB	   662	  5834#
CHR	    77#
CHR1	    78#
CL.DLL	  2116	  2269	  2427	  2871	  3414#	  4057
CLKU	   320#
CM%DPP	  1039
CM%ESC	   590	   591	   595	   597
CM%FNC	   586	   621	   623	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074
	  1075	  1104	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936
	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
CM%HPP	  1039
CM%NOP	   795	   801	   831	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074
	  1075	  1108	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936
	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
CMDBUF	   785	   834	   838	  5963	  5964	  5988#
CMDCNT	  3466#
CMDE10	   698	   729#
CMDERR	   697#	   795	   801	   831	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062
	  1074	  1075	  1108	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741
	  2936	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
CMDFNC	   586#	   801
CMDMSG	   708	   714	   729	   732	   795	   801	   831	   860	   973	  1021	  1024	  1026	  1038	  1039
	  1052	  1061	  1062	  1074	  1075	  1108	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827
	  2673	  2726	  2741	  2936	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176
	  5185	  7527#
CMFILE	  5185	  5196	  7531#
CMJERR	   795	   801	   809#	   831	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062
	  1074	  1075	  1108	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741
	  2936	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
CNT	    80#
CO%NRJ	  4655
COMEND	  3529#
CONCIN	   645	  5811#
CONSW	   451#	  6065	  6067#	  6067	  6504	  6512	  6800	  7106	  7157	  7215
COPPAG	  1649	  1771	  1893	  1935#
CPBPNT	  1495#	  1714	  1836
CPOPJ	   466#
CPOPJ1	   464#	  1431	  2926	  2979	  2983	  2987	  2991	  3228	  3254	  3608	  3641	  3689	  3739	  3935
	  3948	  3963	  3975	  3986	  6441
CR%CAP	   983
CRAM	   119#	  1090	  1132	  2694	  3303	  3313	  3359	  4127	  4128	  4129	  4167	  4490	  4533	  5222
CRAMT6	  4170#	  4170	  4217	  5526
CREST1	  3882#	  4120
CREST2	  3906#	  3923
CREST3	  3908	  3917#
CRESTR	  3880	  3883	  4032#
CRLF	   223	   224	   520#
CRLF2	   229	   230	   522#                                                                                            SEQ 0247
CRMBC1	   124#	  1134	  2696	  3305	  3315	  3361	  4131	  4132	  4133	  4169	  4492	  4535	  5224
CRMFLD	  1142	  5625#
CRPOPJ	  5570	  5589#	  5613
CRY0	   259#
CRY1	   260#
CSB	   638	   782	   786	   787	   789	   790	   792	   795	   801	   820	   824	   831	   860	   973
	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074	  1075	  1108	  1117	  1118	  1148
	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936	  2940	  3261	  3272	  3778	  4459
	  4467	  4477	  4567	  4573	  4583	  5176	  5185	  5191	  5202	  5565	  5573	  5960#
CTADR	   784	   798	   802	  4124	  5904	  5907	  7530#
CTLC	  5865	  5874#
CTLO	  5868	  5912#
CTLROK	  3837	  3839	  3842	  3845#
CTLT	  5867	  5904#
CTLX	  5864	  5882#
CTLZ	  5866	  5893#
CTYPF	  3409#
CX	    62#	  5907	  5909
CYCL60	  6217#	  6217
CZADR	  5215	  5524	  5893	  5896	  7528#
CZSP	  5216	  5525	  7529#
D	    69#
D$ISTR	  6462	  7506#
DAT	  3195	  3198	  3207	  3213	  3214	  3375#	  3623	  3638	  3889	  3891	  3900	  3906	  3910
DATBUF	  3447	  3486#
DATDEV	  3401	  3460#	  3822	  3850
DATEND	  3487#
DATLST	  3447#
DBFLGS	  1015#	  1017	  1024
DBOOTL	   111#	  1761	  1765	  1782	  2181
DBP	   110#	  2273
DBUF	  2040	  2041	  2047	  2193	  2194	  2200	  2345	  2346	  2352	  4770#	  4781	  4782	  4788
DCK	   266#
DEBUGF	  1016	  1228	  1238	  1264	  1301	  1331	  3227	  5990#
DECVER	     4#	    10	    15	   581	  2657	  5148	  6003	  6033
DEP	   590	   591	   593	  1051#
DEPCMD	  1046#	  1049	  1052
DEPFLG	  1068	  5559	  7533#
DEVJFN	  7200	  7243#	  7243	  7273
DEVSTR	  1256	  3818#
DIR	  3378#	  4118
DIRBUF	  3445	  3489#
DIRDEV	   954	  2017	  2170	  2323	  2850	  3023	  3402	  3458#	  3821	  3823	  3845
DIRDIR	  2014	  2167	  2320	  2847	  3020	  3819#	  3819
DIRLST	  3445#
DOP%WR	  3224
DPBC1	  1047	  1057#
DPBL	    99#	  1346
DPBP	    98#
DPCRAM	  1048	  1058	  1059#
DPREBP	   122#	  2290	  2291	  2292	  2294	  2295
DPYA	  5296#	  5308
DPYALU	  5258#	  5271                                                                                                     SEQ 0248
DPYB	  5305#	  5318
DPYCAL	  5226#	  5229	  5238
DPYCHL	  5480#	  5492
DPYCHR	  5506#	  5518
DPYCLL	  5462#	  5474
DPYCLR	  5489#	  5500
DPYCRY	  5391#	  5403
DPYDBM	  5332#	  5347
DPYDBU	  5324#	  5335
DPYDES	  5286#	  5299
DPYDIS	  5355#	  5375
DPYDIV	  5435#	  5447
DPYFLD	  1069	  5214#
DPYFMW	  5417#	  5429
DPYGEL	  5471#	  5483
DPYGER	  5497#	  5509
DPYJ	  5235#	  5250
DPYLFE	  5409#	  5420
DPYLSC	  5400#	  5412
DPYLSR	  5268#	  5280
DPYMEM	  5426#	  5438
DPYMK	  5515#
DPYMP	  5444#	  5456	  5465
DPYMS	  5453#
DPYNBR	  5244#	  5261
DPYRAM	  5315#	  5327
DPYRSR	  5277#	  5289
DPYSKI	  5369#	  5385
DPYSPE	  5341#	  5361
DPYT	  5382#	  5394
DSKBF	  7538#
DSKEXT	  7542#
DSKLIN	  7540#
DSKNAM	  7541#
DSKTYP	   939	   959	  1392#	  1392	  1466#	  1466	  3835
DSKUPN	  3402#	  3929	  3969	  3980
E10ALC	  3403#	  3735
E10STS	  3404#	  3733
E20ALC	  3405#
E20STS	  3406#
ECHO	   596	  1037#
ECOFLG	   835	  1042	  3779	  5203	  5994#
EMDFNC	  1104#	  1108
END	  7514#
ENDBLK	  3490#
ENDDPY	  1096	  5214	  5524#	  5622
ENDLIT	  5957#
ENDSLD	  7500#
ENDZER	   635	  7569#
ENTBLK	  3403	  3404	  3496#	  3659	  3660	  3661	  3664	  3667	  3670	  3673	  3676	  3678	  3680	  3683
	  3686	  3687	  3707	  3708	  3709	  3712	  3714	  3718	  3720	  3722	  3724	  3726	  3728	  3731
	  3737	  4010	  4012
EOCF	   816#                                                                                                            SEQ 0249
EOFSW	  1201	  2825	  3031	  3364	  3512	  3536	  3574#	  3574	  4441
ERR%	   739#	   822	   869	   884	   922	  1064	  1081	  1083	  1086	  1123	  1175	  1198	  1269	  1278
	  1286	  1309	  1312	  1321	  1402	  1476	  1489	  1500	  1590	  1592	  1630	  1710	  1712	  1752
	  1832	  1834	  1874	  1941	  1995	  2025	  2033	  2044	  2069	  2078	  2094	  2148	  2178	  2186
	  2197	  2222	  2231	  2247	  2301	  2331	  2339	  2349	  2374	  2383	  2405	  2676	  2678	  2729
	  2746	  2753	  2758	  2779	  2808	  2809	  2813	  2817	  2864	  2869	  2928	  2942	  2948	  2960
	  3005	  3027	  3131	  3157	  3196	  3210	  3237	  3244	  3280	  3323	  3330	  3331	  3336	  3356
	  3531	  3534	  3549	  3585	  3624	  3657	  3705	  3743	  3767	  3772	  3789	  3826	  3831	  3843
	  3848	  3853	  3865	  3869	  3887	  3894	  3898	  3912	  3914	  3945	  3960	  3996	  4002	  4007
	  4013	  4020	  4055	  4080	  4091	  4096	  4111	  4116	  4163	  4256	  4409	  4487	  4506	  4529
	  4545	  4593	  4657	  4673	  4683	  4717	  4750	  4785	  4794	  4814	  4823	  4845	  4906	  5195
	  5199	  5572	  5584	  5794	  5798	  5808	  5942
ERR%10	   740	   751#
ERRPC	   456#
ERRTLS	   457#
ETER10	  2032	  2185	  2338	  2863	  3692#	  4054
EV	   579#	  7574
EXAM	   595	   598	  1107#
EXBC1	  1100	  1113#
EXCMDS	  1099#	  1102	  1105
EXCRAM	  1101	  1114	  1115#
EXCRM	  1125#
EXFORK	   987#	   987	   993
EXIOT	   264#
EXJFN	   982#	   982	   989
EXMADR	  1065	  1067	  1124	  1126	  1129	  5219	  7524#
FADER	  1449	  1483#
FADN	  1439#	  1452	  1456	  1458	  1463
FALIAS	  1421	  1434#
FAMS	  1448#
FB%BSZ	  4660
FB%NXF	  1277
FB%PGC	  1284
FEADR	  1512#
FEDIR	    87#	   873	  1295	  1323	  1324	  1325	  1337	  1340	  1343	  1346	  1349	  1352	  1628	  1638
	  1639	  1643	  1654	  1655	  1657	  1660	  1750	  1760	  1761	  1765	  1776	  1777	  1779	  1782
	  1872	  1882	  1883	  1887	  1898	  1899	  1901	  1904	  2028	  2120	  2181	  2273	  2334	  2431
	  2683	  2685	  2712	  2713	  2716	  2717	  2751	  2785	  2791	  2795	  2799	  2878	  2952	  3043
	  3050	  3062	  3069	  3136	  3149	  3201	  3903	  3904
FEF10	  2749	  2812#
FEFERR	  2766	  2806#
FEFJFN	  2741#	  2741	  2755	  2760	  2768	  2777	  2806
FEFNBR	  2730#	  2730	  2797	  2835	  2837	  2839	  2876	  2943	  2950	  3008	  3010	  3012
FEIBIG	  2920	  2925	  2928#
FEICHR	  2897	  2901	  2905	  2909	  2919#
FEIFMT	  2781	  2832	  2888#
FEILP	  2896#	  2914
FEILP1	  2902	  2906	  2910	  2916#
FEILP2	  2898	  2917#
FEIPNT	  2980	  2984	  2988	  2992	  2996#
FEITYP	  2972	  2978#	  3034
FEJFN	   928	  1251	  1259	  1272	  1288	  1294	  1567#	  1637	  1667	  1759	  1789	  1881	  1911	  2689
	  2707	  2784	  2962	  3155                                                                                     SEQ 0250
FEMAX	  1513#
FERSET	  1315#	  1315	  1354	  1591	  1711	  1833
FESETF	   868	   883	   921	  1314#	  1314	  1320	  1589	  1709	  1831	  2675	  2745	  2947	  3130
FETEL0	  3046#	  3063
FETEL1	  3047	  3061#
FETEL2	  3066	  3072#
FETELL	   856	  3041#
FILASC	  7234	  7236	  7240	  7260	  7262	  7504#
FIND	  1265	  1359#
FINDAX	  1470	  1472	  1474	  1479#
FINDER	  1374	  1412#
FINDN	  1364#	  1377	  1381	  1383	  1388
FINDX	  1396	  1398	  1400	  1405#
FIRZER	   632	   634	  7516#
FMT22	  1534#
FORKN	  1569#	  1605	  1608	  1614	  1620	  1645	  1684	  1727	  1730	  1736	  1742	  1767	  1806	  1849
	  1852	  1858	  1864	  1889	  1928	  1963	  4598	  4601	  4607	  4625	  4649	  4687
FOV	   261#
FOVU	   321#
FP	    61#	  5907	  5909
FRKERR	  5853	  5918#
FSL	    90#	   873	  1337	  1628	  1638	  1654	  1655	  1657	  1750	  1760	  1776	  1777	  1779	  1872
	  1882	  1898	  1899	  1901	  2751	  2785	  2791	  2795	  3069
FSP	    89#
FXU	   265#
GENPAG	   130#	  1965	  1978	  2769	  2775	  2819	  2820	  2821	  2823	  2892	  2919	  4689	  4695
GET10	  1200	  2824	  3030	  3363	  3512#	  3525	  4439	  4892
GET10Z	  3513	  3521#
GETBK1	  3995#
GETBK2	  2119	  2272	  2430	  2874	  4006#	  4062
GETBUF	  3484#	  3891	  4017	  4022	  4023
GJ%FOU	  4473	  4579
GJ%OLD	  1159	  1247	  1581	  1701	  1823	  2737	  3269	  4563	  5182	  5972
GJ%PHY	  1159
GJ%SHT	   977	  1159	  7239
GOARND	  3895	  4004	  4015#
GSBF	  7539#
GTFLD1	  5568	  5582#
GTJDEV	  1190	  1245	  1578	  1698	  1820	  2734	  3024	  3267	  3576	  3617	  3747	  3820	  4032	  4471
	  4519	  4560	  4577	  4740	  5180	  5974#
GTJDIR	  1191	  1242	  1579	  1699	  1821	  2735	  3021	  3268	  3599	  3632	  3760	  3818	  4041	  4472
	  4525	  4561	  4578	  4746	  5181	  5975#
GTJEXT	  1195	  1235	  1576	  1696	  1818	  2733	  3018	  3266	  3351	  3596	  3629	  3755	  4038	  4470
	  4523	  4558	  4576	  4744	  5179	  5977#
GTJFIL	  1193	  1232	  1573	  1693	  1815	  2732	  3015	  3264	  3593	  3626	  3752	  4035	  4468	  4521
	  4555	  4574	  4742	  5177	  5976#
GTJFLG	  1248	  1582	  1702	  1824	  2738	  3270	  4474	  4564	  4580	  5183	  5972#
GTJFNB	  5969	  5971#
H10LST	  3449#	  4093	  4113
HDQ	  3859	  3863#
HEAD10	  3397	  3398	  3494#	  3569	  3570	  3571	  3572
HEDBLK	  3399	  3400	  3497#	  3644	  3645	  3646	  3647	  3692	  3693	  3694	  3695
HELP	   601	  1156#                                                                                                    SEQ 0251
HELP10	  1158	  1189#
HELPEX	  1168	  1174#
HELPLP	  1167#	  1172
HLP10A	  1200#	  1207
HLP10X	  1204#	  1204	  1205
HLPFIL	  1160	  1179	  1184#
HMBK01	  3387#	  3867	  4078
HMBK10	  3391#	  4084
HOLD	  3438#
HOM	  3379#	  3932	  3940	  3947	  3955	  3962	  4086	  4093	  4106	  4113	  4119
HOMB10	  3449	  3464#	  4099	  4101	  4103
HOMBPC	  3441#	  4026
HOMBUF	   906	   910	   914	  1330	  3085	  3440	  3441	  3443	  3462#	  3871	  3874	  3877	  4070	  4073
	  4075
HOMCLP	  3440#	  4024
HOMLST	  3443#	  3947	  3962
HOMPAG	   132#	   890	   894	   898	  1308	  1311	  1328	  3083	  3108	  3166	  3170	  3180	  3230
HOMSET	  3185#
I.DEV	  3479#
I.EXT	  3481#
I.NAM1	  3480#
I.PPN	  3482#
I.STR	  3478#
IBF	  4135	  4406	  4411	  4430	  4433	  4444	  4446	  7537#
IC1TIM	  5789#	  5789	  5803
IDISK	   853	   921#
IDSK10	   925	   953#
IFEF10	   887	   905#
IFEFIL	   854	   883#
IFIXX3	   704
IFL0	   117#	  2799	  2952	  3043	  3050
IFP0	   116#	  2878
IFREE	   855	   866#
IFREE1	   867	   880#
IN10	  3516	  3524#
INCNT	  4141#	  4141	  4143	  4418
INDX	    81#
INFO	   852#	   857	   860
INFORM	   603	   859#
INIT	   621#	   795
INTAKE	   825	  3780	  5204	  7535#
INTCOR	   649	  5789#
INTCR1	  5790	  5806#
INUPTR	  6372	  6452	  6454	  6463#	  6463	  6476	  6503	  6793
IOX4	   813
IPAG	  1972	  1978	  1979	  2091	  2098	  2244	  2251	  2390	  2391	  2392	  2402	  2409	  2783	  2866
	  2888	  2889	  2890	  2893	  2963	  2970	  3201	  3203	  3207	  3903	  3906	  4247	  4422	  4432
	  4533	  4535	  4538	  4542	  4695	  4696	  4700	  4701	  4702	  4704	  4791	  4830	  4831	  4832
	  4842	  4849	  4866	  4867	  4868	  4870	  4871	  4886	  4903	  7572#
ITRCNT	   453#	  6332
JBFFRC	  3555	  3588#	  3588
JOB41	   280#	  6088
JOBAPR	   288#                                                                                                            SEQ 0252
JOBCNI	   289#
JOBDDT	   282#
JOBFF	   286#	  6058
JOBOPC	   291#
JOBREL	   281#
JOBREN	   287#	  6765
JOBSA	   285#	  6057
JOBSYM	   283#
JOBTPC	   290#
JOBUSY	   284#
JOBUUO	   279#	  6097	  6104	  6131	  6147	  6156	  6193	  6200
JOBVER	   292#	  6295	  6298
JSERR0	  1291	  1298	  1418	  1490	  1603	  1611	  1672	  1681	  1686	  1725	  1733	  1794	  1803	  1808
	  1847	  1855	  1916	  1925	  1930	  1968	  1975	  1984	  2772	  2788	  2966	  3152	  3309	  4251
	  4426	  4596	  4604	  4646	  4651	  4692	  4708
JSHLT0	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   811	   814	   931
	   980	   985	   991	   996	   999	  1002	  1262	  1276	  1283	  2692	  2710	  3241
K	  4775#
K%INIT	    30#	   647
KAIFLG	   446#	  6220	  6243	  6247	  6311
KLFLG	   447#	  6219	  6225	  6237	  6305
KPALIV	  1523#	  2390	  2391	  2480	  2579	  2639	  4700	  4701	  4830	  4831	  4933	  5057	  5081
KSCRMP	  4183	  4282#
KSSHF3	  4180#
KSSHF4	  4189	  4192#
KSXX	  4192	  4197#	  5545
KSXX1	  4203	  4206#
KSXX2	  4211	  4214#
L	  5957#
L...TY	  2931	  2933#
L.DBFL	  1015	  1017#
L.DEPC	  1046	  1049#
L.EXCM	  1099	  1102#
L.INFO	   852	   857#
L.MAIN	   588	   619#
L.OUTC	  4451	  4456#
L.SETC	  1010	  1013#
L.WRTC	  1210	  1220#
L.YESN	  1032	  1035#
LASTCA	  7534#
LEV1PC	  5826	  5875	  5887	  5898	  7518#
LEV2PC	  5827	  5919	  7519#
LEV3PC	  5828	  7520#
LEVTAB	   662	  5826#
LF1PC	  5830	  7521#
LF2PC	  5831	  7522#
LF3PC	  5832	  7523#
LFLVTB	  5830#
LFPDL	  7568#
LOGEXT	  5997#
LOGFLG	  5992#	  7214
LOGNAM	  5996#
LOOK10	  1997	  2003	  2006	  2009	  2011	  2023	  2150	  2156	  2159	  2162	  2164	  2176	  2303	  2309     SEQ 0253
	  2312	  2315	  2317	  2329	  2815	  3338	  3341	  3344	  3346	  3349	  3405	  3406	  3493#	  3594
	  3597	  3600	  3603	  3605	  3999	  4001	  4719	  4722	  4725	  4727
LOOP1	  3363#	  3367
LOOP2	  3365	  3369#
LP	    79#
LUUO	   272#	  6849
LUUO1	   482	   483
LUUO10	   482	   487
LUUO11	   482	   487
LUUO12	   482	   488
LUUO13	   482	   488
LUUO14	   482	   489
LUUO15	   482	   489
LUUO16	   482	   490
LUUO17	   482	   490
LUUO2	   482	   484
LUUO20	   482	   491
LUUO21	   482	   491
LUUO22	   482	   492
LUUO23	   482	   492
LUUO24	   482	   493
LUUO25	   482	   493
LUUO26	   482	   494
LUUO27	   482	   494
LUUO3	   482	   484
LUUO30	   482	   495
LUUO31	   482	   495
LUUO32	   482	   496
LUUO33	   482	   496
LUUO4	   482	   485
LUUO5	   482	   485
LUUO6	   482	   486
LUUO7	   482	   486
LUUOI	   273#
M	  2053	  2054	  2064	  2065	  2066	  2105	  2206	  2207	  2217	  2218	  2219	  2258	  2358	  2359
	  2369	  2370	  2371	  2416	  4774#	  4798	  4799	  4809	  4810	  4811	  4856
MAINCM	   587	   588#	   619
MBOOTL	   108#	  1639	  1643	  1660	  2028
MBOOTP	   107#	  2120
MC.DAT	  3345	  3347	  3503#	  4515
MC.TIM	  3342	  3502#	  4513
MC.VER	  3339	  3501#	  4511
MCL	    93#	  1340	  2683	  2713
MCNVER	     3#	    10	    15	   581	  2657	  5148	  6003	  6033
MCP	    92#	  2712
MCPE	  1531#	  2527
MONCTL	   449#	  6291	  6381	  6766	  7172
MONFLG	   448#
MONTEN	   450#
MONTYP	   556#	   590	   591	   595	   597	   640	   697	   739	   795	   801	   831	   860	   866	   886
	   924	   973	   974	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074	  1075	  1108
	  1117	  1118	  1148	  1149	  1157	  1223	  1230	  1240	  1251	  1255	  1327	  1329	  1585	  1598
	  1705	  1720	  1827	  1842	  2673	  2680	  2726	  2741	  2748	  2936	  2940	  2954	  3065	  3082     SEQ 0254
	  3084	  3134	  3145	  3250	  3252	  3261	  3272	  3274	  4136	  4243	  4416	  4459	  4467	  4477
	  4481	  4567	  4569	  4573	  4583	  4587	  5176	  5185	  5188	  5563	  6018	  6047	  6052	  6059
	  6061	  6227	  6266	  6300	  6302	  6345	  6383	  6407	  6448	  6478	  6480	  6500	  6502	  6755
	  6780	  7166	  7168	  7176	  7178	  7195	  7232	  7270
MPBL	    96#	  1343
MPBP	    95#
MPREBP	   121#	  2137	  2138	  2139	  2141	  2142
MPVU	   317#
MS	  1373#
MS%MNT	  1380	  1455
MS%OFL	  1382	  1457
MSDRIV	  1525#	  2486	  2536	  2577	  2637	  4929	  5053	  5077
MSDRSV	  2487	  2576	  2636	  2655#
MSKPAL	  2481	  2578	  2638	  2653#
MSRH	  1524#	  2473	  2575	  2635	  4924	  5051	  5075
MSRHSV	  2474	  2574	  2634	  2654#
MSSLAV	  1526#	  2392	  4702	  4832	  4931	  5055	  5079
MSTX18	  1417	  1488
MSTX27	  1376	  1415	  1451	  1486
MT.DAT	  3506#	  4726	  4728	  4736
MT.RF	  1538#	  4966
MT.SAD	  3507#	  4850	  4863
MT.SF	  1539#	  5067
MT.SR	  1540#	  5007
MT.TIM	  3505#	  4723	  4734
MT.VER	  3504#	  4720	  4732
MTAS	  5158#
MTBA	  4961	  5153#
MTBADR	  4953	  5017#
MTBLK0	  5125	  5141#
MTBLK1	  5119	  5140#
MTBLK2	  5113	  5139#
MTBLK3	  5107	  5138#
MTBLK4	  5101	  5137#
MTBLK5	  5095	  5136#
MTBLK6	  5089	  5135#
MTBLK7	  5083	  5134#
MTCC	  5159#
MTCOPP	  4629	  4676#
MTCS1	  4967	  5008	  5029	  5068	  5150	  5151#
MTCS2	  4987	  4990	  5031	  5155#
MTDB	  5160#
MTDRSV	  4930	  4989	  5052	  5076	  5145#
MTDRY	  1543#	  4982
MTDS	  4980	  5033	  5156#
MTDT	  5162#
MTER	  4973	  5035	  5157#
MTFAIL	  4971	  5000	  5020#
MTFC	  4996	  5005	  5154#
MTFCE	  1544#	  4974
MTHLT0	  4914#	  5017
MTHLT1	  4915#	  5020
MTHLT2	  4916#	  4927                                                                                                     SEQ 0255
MTHLT3	  4917#	  5014
MTJFN	  4583#	  4583	  4590	  4621	  4642	  4654	  4658	  4664	  4671
MTKPAL	  4934	  5056	  5080	  5143#
MTMR	  5161#
MTPAG	  4947	  5168#
MTPAGD	  4615	  4616	  4624	  4796	  5171#
MTPAGX	  4617	  4639	  4871	  5172#
MTPGLP	  4625#	  4631
MTPIP	  1542#	  4981
MTPNTR	  4937	  5150#
MTRDY	  4969	  4980#	  4983	  5010	  5070
MTRHSV	  4925	  4936	  5050	  5074	  5144#
MTRTRX	  4975	  5000#
MTSERR	  5014#	  5072
MTSLSV	  4932	  4992	  5054	  5078	  5146#
MTSN	  5163#
MTSRH	  4949	  4986#	  5002	  5065
MTSTAR	  4913	  4919#
MTSTR1	  4638	  4639	  4870	  4871	  4910#
MTSTRT	  4913#
MTTC	  4993	  5164#
MTTM	  1541#	  4970	  5071
MTUBP0	  4942	  4958	  5042	  5165#
MTUBST	  4944	  5044	  5166#
MTVER	  5047	  5148#
MTWC	  4964	  5152#
N	  4773#
NEXT	   650	   694	   784#	   806
NOHELP	  1162	  1165	  1178#
NOPNT	    44#	  6801	  7120
NOTYPE	  5912#	  5912	  7164
NXMU	   318#
O.DATE	  2010	  2012	  2163	  2165	  2316	  2318	  2858	  3474#	  3675	  3677	  3721	  3723	  4047	  4516
	  4737
O.DEV	  2018	  2171	  2324	  2851	  3469#	  3650	  3697	  4033	  4520	  4741
O.EXT	  2001	  2154	  2307	  2845	  3471#	  3666	  3713	  4039	  4524	  4745
O.NAM1	  1998	  2151	  2304	  2842	  3470#	  3663	  3711	  4036	  4522	  4743
O.PPN	  2015	  2168	  2321	  2848	  3473#	  3669	  3715	  4042	  4526	  4747
O.PRT	  2021	  2174	  2327	  2854	  3472#	  3672	  3719	  4045	  4517	  4738
O.STR	  3468#
O.TIME	  2007	  2160	  2313	  2857	  3475#	  3679	  3725	  4048	  4514	  4735
O.VER	  2004	  2157	  2310	  2856	  3476#	  3682	  3727	  4049	  4512	  4733
ODAT10	  3195	  3499#	  3627	  3630	  3633	  3636	  3638	  3885
OF%APP	  7244
OF%NWT	  1163
OF%RD	  1163	  1289	  2756	  3278	  5197
OF%WR	  1289	  4485	  4591
OMT10	  4570	  4716#
OMT10A	  4588	  4732#
OPEN10	  3492#	  3573	  3577	  3582	  3584
OPNBLK	  3495#	  3648	  3653	  3655	  3656	  3696	  3700	  3702	  3704
OPND10	  3498#	  3611	  3612	  3613	  3614	  3615	  3618	  3621	  3623
OPNDAT	  3611#	  3882                                                                                                     SEQ 0256
OPNHOM	  3864	  3928#
OPNTDM	  3566	  3568#	  3568	  3580	  3590
OPNTEN	  1197	  1994	  2147	  2300	  2812	  3026	  3335	  3568#	  4716
OPNWRT	  3644#	  4528	  4749
OPRCDP	  3979#	  3995	  4006
OPTIME	   507#
OPWCDP	  3968#
ORAM10	  4482	  4511#
ORAM11	  4537#	  4547
OUTBC1	  4452	  4463#
OUTCMD	  4451#	  4456	  4459
OUTJFN	  4477#	  4477	  4484	  4504
OUTLP	  4494#	  4502
OUTMT	  4454	  4554#
OUTRAM	  4453	  4455	  4464	  4465#
OUTX	   605	  4458#
P	    64#	   137	   138	   139	   140	   465	   699	   705	   744	   757	   795	   796	   801	   831
	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074	  1075	  1108	  1117
	  1118	  1120	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936	  2940	  3261
	  3272	  4436	  4447	  4459	  4467	  4477	  4567	  4573	  4583	  4949	  4969	  4984	  4998	  5002
	  5010	  5065	  5070	  5176	  5185	  5216	  5525	  5579	  5586	  5602	  5609	  5895	  5899	  5907
	  5909	  6069	  6101	  6116	  6280	  6338	  6422	  6509	  6552	  6627	  6716
P1	    83#	  1637	  1638	  1639	  1653	  1654	  1659	  1660	  1759	  1760	  1761	  1775	  1776	  1781
	  1782	  1881	  1882	  1883	  1897	  1898	  1903	  1904	  1971	  1988	  2473	  2474	  2475	  2477
	  2478	  2484	  2488	  2491	  2493	  2503	  2505	  2508	  2511	  2522	  2523	  2534	  2537	  2553
	  2555	  2557	  2559	  2561	  2563	  4621	  4622	  4667	  4705	  4712	  4946	  5000
P2	    84#	  1641	  1662	  1665	  1763	  1784	  1787	  1885	  1906	  1909	  1952	  1954	  1957	  1958
	  2050	  2051	  2087	  2089	  2110	  2113	  2203	  2204	  2240	  2242	  2263	  2266	  2355	  2356
	  2398	  2400	  2421	  2424	  4624	  4633	  4636	  4676	  4677	  4796	  4838	  4840	  4861	  4864
P2BLSH	  2067	  2220	  2372	  4763#	  4812
P2WLSH	  2058	  2211	  2363	  4765#	  4803
PA%PEX	  1624	  1648	  1746	  1770	  1868	  1892	  4628
PA%RD	  1624	  1648	  1746	  1770	  1868	  1892	  4628
PAG0FL	  1938#	  1938	  1944	  1948	  4681#	  4681	  4685	  4698
PAGELP	  1645#	  1651
PAGSIZ	  2103	  2256	  2414	  4761#	  4854
PARFLG	  4206	  4214	  5991#
PARSE	   796#	  5960
PARSET	   797	  5949#
PARU	   319#
PASCNT	   452#	  6331	  6334
PATCH	  7508#
PB.CRA	  4207	  4393#	  5542
PB.CRM	  4215	  4394#	  5543
PBCNT	  1642#	  1642	  1656	  1659	  1764	  1778	  1781	  1886	  1900	  1903	  1989
PDISF	   504#	  6741#	  6741	  6822#	  6822	  6825
PDLOVU	   316#
PG.EAT	  4760#
PG.LEB	  4759#
PGINGO	  6075#
PGMNAM	  6002	  6005#
PHYDEV	  3401#
PLIST	   542#	   542	   796	  6069                                                                                     SEQ 0257
PLISTE	   542	   544#
PLISTS	   543#
PM%CNT	  3306
PM%CPY	  2770	  3306
PM%PLD	  1296	  2770	  3306
PM%RD	  1296	  1670	  1792	  1914	  1966	  1973	  2770	  2964	  3306	  4690
PM%WR	  1296	  1670	  1792	  1914	  1973	  2786	  3306	  4644	  4706
PM.ACC	  4757#
PM.WRT	  4758#
PNTENB	   503#	  6748	  6798#	  6798	  7113
PNTEXT	  6035#	  7225
PNTFLG	   502#	  6745#	  6745	  6777	  6796	  6815
PNTINH	   505#	  6743#	  6743
PNTLPT	    45#	  6505	  6513	  7158
PNTNAM	  6034#	  7227
PNTSPC	   506#	   630	  6746#	  6746	  7010	  7024
PRIME	  3439#	  3889	  4015
PROMPT	   583#	  5962
PUSH10	   975	  1006#
PUSHCM	   607	   972#
PUSHPC	   999#	  5920
PUT10	  3541#
PUTBUF	  3542	  3547#
PUTNXT	  3544#	  3548
Q	  4772#
R10EOF	  1202	  2830	  3038	  3370	  3553#	  4244	  4876
RADHOM	  3868	  3939#
RADIX	   525#	  7075
RADLSC	   527#	  7071
RADLSP	   526#	  7090
RC	  3376#	  3524	  3529	  3553	  3554	  3584	  3591	  3605	  3983	  4001	  4012	  4015	  4017
RD%BRK	  6464
RD%TOP	  6464
RDABLK	  2499#	  2528	  2539
RDADON	  2500	  2583#
RDATA	  1529#	  2521
RDBADR	  2516	  2541#
RDBC1	   609	  3257#
RDBYTE	  4146	  4153	  4161	  4175	  4234	  4237	  4401	  4406#	  4412
RDEOL	  4145	  4401#	  4404
RDEX10	  4873	  4901#
RDFAIL	  2531	  2545#
RDFLAG	  1085	  2677	  3325	  3369	  4241	  5993#
RDMT	  4949#	  4978	  5012
RDMTDN	  4955	  5061#
RDRTRY	  2533#
RDUI10	  4417	  4439#
RDUIBF	  4440#	  4440	  4445
RDUINP	  4408	  4416#
RDULD	  3289	  3353	  4123#
RDULDT	  4123	  5935#
RDULIN	  4172#	  4178
RDULT6	  4164#	  4164	  5938                                                                                             SEQ 0258
RDY	  1530#	  2492	  2524
READ	   610	  3258	  3259#
READ.1	  4137	  4145#	  4150	  4194	  4236	  4239
READ.2	  4153#	  4159
READ.3	  4155	  4161#
READ.5	  4148	  4234#
READ10	  3275	  3335#
READF	  3299	  3328#
REDDIR	  2038	  2191	  2343	  4779	  4890#
REDEX2	  4798#	  4859
REDEX3	  4799	  4807#
REDEX4	  4809#	  4856
REDEX5	  4816#	  4820
REDEX6	  4819#
REDEX7	  4817	  4822#
REDEX8	  4810	  4847	  4854#
REDEX9	  4855#
REDEXE	  4752	  4778#
REDHOM	  1305	  3160	  3176	  3225#
REDPAG	  2080	  2233	  2385	  4825	  4886#
REEN	   580	   716	   727	   735	   737	   750	   764	   781#	  3795	  5886	  5889
REEN20	  6019	  6023#
REENTR	  6017#	  6764
RHCLR	  1536#	  2483	  2533	  4986
RIPST	  1528#	  2490
RM03F	  1394#	  1394	  1403	  1468#	  1468	  1477	  3087	  3093	  3095	  3110	  3116	  3118	  3833	  3841
RP.ABC	  3413#	  3732
RP.NFS	  3412#	  3732
RPBA	  1550#	  2511
RPCS1	  1548#	  2491	  2522	  2523	  2553
RPCS2	  1552#	  2484	  2488	  2534	  2537	  2555
RPDA	  1551#	  2503
RPDC	  1558#	  2505
RPDS	  1553#	  2493	  2557
RPER1	  1554#	  2559
RPER2	  1555#	  2561
RPER3	  1556#	  2563
RPFC	  1559#
RPOF	  1557#
RPPAG	  2496	  2662#
RPPAGD	  1594	  1595	  1641	  2050	  2125	  2665#
RPPAGX	  1596	  1676	  2142	  2666#
RPTC	  1560#
RPWC	  1549#	  2508
RSKP	  3236	  5560
RTTY	  5822#
RUNFLG	   454#
S%CMND	    30#	   795	   801	   831	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062
	  1074	  1075	  1108	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741
	  2936	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
S%ERR	    30#	   736
S%INIT	    30#	   646
S.ALO	  2030	  2183	  2336	  2861	  3734	  4052#	  4052                                                             SEQ 0259
S8080P	  2718	  3080#	  3141	  3192
SBINIT	   147	  6041#
SBOOTP	  1953	  3106#
SC	  1533#
SC%CTC	   657
SC%GTB	   657
SELBLK	  2074	  2227	  2379	  4819	  4882#
SELPAG	  2037#	  2037	  2068	  2071	  2190#	  2190	  2221	  2224	  2342#	  2342	  2373	  2376	  4778#	  4778
	  4813	  4816	  4897
SERIAL	   612	  1073#
SETCLR	  1010#	  1013	  1021
SETDEB	   592	  1020#
SHOMEP	  3163	  3190#
SIXASC	  7238	  7288#
SIXOUT	   843#
SIXSTR	  7294	  7299	  7306#
SM10	   574#	  6218	  6240	  6306
SMPBBL	  1506#	  1506	  1717	  1839
SMPBPG	  1503#	  1503	  1716	  1763	  1838	  1885	  2203	  2278	  2355	  2436
SMPEND	    33#	  1718	  1840
SMPREB	    32#	  1495	  1502	  1797	  1919	  2294	  2452
SNBR	  1075#	  1075	  1078
START	   579	   628#	  1152	  1292	  1299	  1419	  1491	  1612	  1673	  1682	  1687	  1734	  1795	  1804
	  1809	  1856	  1917	  1926	  1931	  1969	  1976	  1985	  2773	  2789	  2967	  3153	  3310	  4252
	  4427	  4605	  4647	  4652	  4693	  4709	  5878	  5931	  6025	  6348	  7369
START1	   641	   651#
STBUF	   927	   934	  1258	  1267	  1385	  1460	  3282	  3283	  3287	  7567#
STPNTR	    60#	  4185	  4186	  4197	  4200
STRCMP	  1387	  1425#	  1430	  1462
STRDES	  1270#	  1270	  3231
STTY	  5823#
SU.SOT	  3408#	  3954	  4105
SUBRTN	  6032#
SUBVER	  6033#
SV.DIR	  2042	  2195	  2347	  4767#	  4783
SV.END	  4768#
T$INT	   648	   766#
T1	    49#	   590	   591	   595	   597	   634	   635	   637	   638	   654	   661	   666	   670	   674
	   678	   682	   686	   700	   711	   714	   718	   721	   781	   782	   785	   786	   787	   788
	   789	   790	   791	   792	   795	   797	   798	   801	   809	   820	   822	   823	   824	   831
	   832	   860	   861	   863	   864	   869	   884	   922	   927	   939	   940	   942	   944	   946
	   959	   960	   962	   964	   973	   977	   982	   987	   988	   989	   993	  1021	  1022	  1024
	  1026	  1038	  1039	  1040	  1052	  1053	  1061	  1062	  1064	  1074	  1075	  1081	  1083	  1086
	  1108	  1109	  1117	  1118	  1123	  1148	  1159	  1169	  1171	  1175	  1198	  1223	  1224	  1227
	  1229	  1231	  1232	  1234	  1235	  1237	  1239	  1241	  1242	  1244	  1245	  1247	  1248	  1251
	  1258	  1267	  1269	  1272	  1278	  1286	  1288	  1294	  1304	  1309	  1312	  1321	  1328	  1330
	  1332	  1334	  1335	  1336	  1337	  1339	  1340	  1342	  1343	  1345	  1346	  1348	  1349	  1351
	  1352	  1365	  1366	  1368	  1369	  1371	  1379	  1380	  1382	  1390	  1391	  1392	  1395	  1397
	  1399	  1401	  1402	  1412	  1426	  1427	  1440	  1441	  1443	  1444	  1446	  1454	  1455	  1457
	  1464	  1465	  1466	  1469	  1471	  1473	  1475	  1476	  1483	  1489	  1500	  1572	  1573	  1575
	  1576	  1581	  1582	  1585	  1590	  1592	  1601	  1605	  1607	  1608	  1614	  1620	  1621	  1628
	  1629	  1630	  1645	  1646	  1664	  1665	  1667	  1668	  1678	  1684	  1692	  1693	  1695	  1696
	  1701	  1702	  1705	  1710	  1712	  1723	  1727	  1729	  1730	  1736	  1742	  1743	  1750	  1751     SEQ 0260
	  1752	  1767	  1768	  1786	  1787	  1789	  1790	  1800	  1806	  1814	  1815	  1817	  1818	  1823
	  1824	  1827	  1832	  1834	  1845	  1849	  1851	  1852	  1858	  1864	  1865	  1872	  1873	  1874
	  1889	  1890	  1908	  1909	  1911	  1912	  1922	  1928	  1935	  1939	  1941	  1946	  1951	  1956
	  1957	  1960	  1961	  1963	  1964	  1971	  1981	  1995	  1997	  1998	  2000	  2001	  2003	  2004
	  2006	  2007	  2009	  2010	  2011	  2012	  2014	  2015	  2017	  2018	  2020	  2021	  2023	  2024
	  2025	  2026	  2027	  2028	  2029	  2030	  2033	  2044	  2069	  2078	  2094	  2112	  2113	  2120
	  2121	  2131	  2148	  2150	  2151	  2153	  2154	  2156	  2157	  2159	  2160	  2162	  2163	  2164
	  2165	  2167	  2168	  2170	  2171	  2173	  2174	  2176	  2177	  2178	  2179	  2180	  2181	  2182
	  2183	  2186	  2197	  2222	  2231	  2247	  2265	  2266	  2273	  2274	  2284	  2301	  2303	  2304
	  2306	  2307	  2309	  2310	  2312	  2313	  2315	  2316	  2317	  2318	  2320	  2321	  2323	  2324
	  2326	  2327	  2329	  2330	  2331	  2332	  2333	  2334	  2335	  2336	  2339	  2349	  2374	  2383
	  2389	  2391	  2392	  2393	  2405	  2423	  2424	  2431	  2432	  2442	  2480	  2481	  2483	  2484
	  2486	  2487	  2488	  2490	  2491	  2533	  2534	  2536	  2537	  2673	  2676	  2678	  2689	  2707
	  2726	  2729	  2737	  2738	  2741	  2746	  2751	  2752	  2753	  2755	  2758	  2760	  2768	  2777
	  2779	  2783	  2791	  2792	  2793	  2794	  2795	  2797	  2798	  2799	  2802	  2806	  2808	  2809
	  2813	  2815	  2816	  2817	  2820	  2821	  2834	  2836	  2838	  2840	  2841	  2842	  2844	  2845
	  2847	  2848	  2850	  2851	  2853	  2854	  2860	  2861	  2864	  2869	  2875	  2889	  2890	  2928
	  2936	  2937	  2940	  2942	  2948	  2950	  2951	  2952	  2957	  2959	  2960	  2962	  3004	  3005
	  3007	  3009	  3011	  3013	  3014	  3015	  3017	  3018	  3020	  3021	  3023	  3024	  3027	  3080
	  3081	  3083	  3085	  3086	  3089	  3091	  3092	  3094	  3096	  3097	  3098	  3102	  3103	  3106
	  3107	  3108	  3109	  3112	  3114	  3115	  3117	  3119	  3120	  3121	  3124	  3125	  3131	  3148
	  3155	  3157	  3159	  3165	  3166	  3169	  3170	  3171	  3175	  3179	  3180	  3181	  3196	  3202
	  3203	  3204	  3205	  3210	  3233	  3236	  3237	  3239	  3244	  3251	  3253	  3261	  3263	  3264
	  3265	  3266	  3269	  3270	  3272	  3277	  3280	  3283	  3291	  3301	  3313	  3315	  3317	  3318
	  3321	  3323	  3328	  3330	  3331	  3336	  3338	  3339	  3341	  3342	  3344	  3345	  3346	  3347
	  3349	  3355	  3356	  3531	  3534	  3549	  3555	  3556	  3572	  3573	  3576	  3577	  3579	  3581
	  3582	  3585	  3587	  3588	  3593	  3594	  3596	  3597	  3599	  3600	  3602	  3603	  3614	  3615
	  3617	  3618	  3620	  3621	  3624	  3626	  3627	  3629	  3630	  3632	  3633	  3635	  3636	  3647
	  3648	  3650	  3651	  3652	  3653	  3654	  3655	  3657	  3660	  3661	  3663	  3664	  3666	  3667
	  3669	  3670	  3672	  3673	  3675	  3676	  3677	  3678	  3679	  3680	  3682	  3683	  3685	  3686
	  3695	  3696	  3697	  3698	  3699	  3700	  3701	  3702	  3705	  3708	  3709	  3711	  3712	  3713
	  3714	  3715	  3716	  3717	  3718	  3719	  3720	  3721	  3722	  3723	  3724	  3725	  3726	  3727
	  3728	  3730	  3731	  3732	  3733	  3734	  3735	  3743	  3747	  3748	  3749	  3750	  3752	  3753
	  3755	  3756	  3757	  3758	  3760	  3761	  3767	  3772	  3777	  3778	  3789	  3823	  3825	  3826
	  3828	  3831	  3834	  3843	  3845	  3847	  3848	  3850	  3852	  3853	  3865	  3869	  3871	  3872
	  3885	  3886	  3887	  3894	  3897	  3898	  3910	  3911	  3912	  3913	  3914	  3917	  3919	  3939
	  3941	  3942	  3944	  3945	  3954	  3956	  3957	  3959	  3960	  3968	  3972	  3979	  3983	  3996
	  3998	  3999	  4002	  4007	  4009	  4010	  4013	  4020	  4022	  4023	  4024	  4025	  4026	  4027
	  4032	  4033	  4035	  4036	  4038	  4039	  4041	  4042	  4044	  4045	  4051	  4052	  4055	  4063
	  4080	  4085	  4087	  4088	  4090	  4091	  4096	  4105	  4107	  4108	  4110	  4111	  4116	  4123
	  4124	  4139	  4147	  4149	  4154	  4156	  4158	  4162	  4163	  4176	  4187	  4199	  4201	  4206
	  4207	  4210	  4214	  4215	  4218	  4220	  4223	  4225	  4235	  4238	  4246	  4254	  4256	  4402
	  4409	  4411	  4412	  4421	  4459	  4460	  4467	  4468	  4469	  4470	  4473	  4474	  4477	  4484
	  4487	  4504	  4506	  4511	  4512	  4513	  4514	  4515	  4516	  4519	  4520	  4521	  4522	  4523
	  4524	  4525	  4526	  4529	  4537	  4538	  4539	  4540	  4545	  4554	  4555	  4557	  4558	  4563
	  4564	  4567	  4573	  4574	  4575	  4576	  4579	  4580	  4583	  4590	  4593	  4594	  4598	  4600
	  4601	  4607	  4625	  4626	  4635	  4636	  4641	  4649	  4654	  4655	  4657	  4658	  4659	  4664
	  4665	  4671	  4673	  4676	  4678	  4679	  4683	  4687	  4688	  4701	  4702	  4704	  4717	  4719
	  4720	  4722	  4723	  4725	  4726	  4727	  4728	  4732	  4733	  4734	  4735	  4736	  4737	  4740
	  4741	  4742	  4743	  4744	  4745	  4746	  4747	  4750	  4785	  4794	  4814	  4823	  4829	  4831
	  4832	  4833	  4845	  4863	  4864	  4906	  4937	  4938	  4940	  4960	  4961	  4963	  4964	  4966
	  4967	  4970	  4973	  4974	  4980	  4981	  4982	  4986	  4987	  4989	  4990	  4992	  4993	  4995
	  4996	  5004	  5005	  5007	  5008	  5067	  5068	  5071	  5176	  5177	  5178	  5179	  5182	  5183     SEQ 0261
	  5185	  5191	  5192	  5195	  5196	  5199	  5200	  5201	  5202	  5214	  5215	  5247	  5248	  5344
	  5345	  5358	  5359	  5372	  5373	  5528	  5530	  5531	  5533	  5535	  5541	  5542	  5543	  5565
	  5572	  5573	  5584	  5641	  5642	  5654	  5655	  5657	  5658	  5664	  5665	  5672	  5673	  5675
	  5676	  5685	  5686	  5695	  5696	  5704	  5705	  5752	  5753	  5761	  5762	  5764	  5765	  5772
	  5773	  5775	  5776	  5792	  5793	  5794	  5798	  5801	  5802	  5808	  5886	  5887	  5895	  5896
	  5897	  5898	  5899	  5907	  5909	  5918	  5919	  5920	  5921	  5923	  5939	  5942	  5949
T16	    63#
T2	    50#	   662	   687	   699	   703	   704	   705	   722	   795	   801	   803	   812	   813	   831
	   860	   928	   973	   978	   983	   994	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062
	  1063	  1065	  1074	  1075	  1078	  1079	  1080	  1082	  1092	  1093	  1094	  1108	  1117	  1118
	  1120	  1121	  1122	  1124	  1148	  1160	  1163	  1223	  1251	  1259	  1270	  1273	  1280	  1289
	  1295	  1372	  1376	  1385	  1414	  1415	  1417	  1425	  1447	  1451	  1460	  1485	  1486	  1488
	  1585	  1601	  1609	  1616	  1624	  1648	  1669	  1705	  1723	  1731	  1738	  1746	  1770	  1791
	  1827	  1845	  1853	  1860	  1868	  1892	  1913	  1965	  1972	  2492	  2493	  2673	  2690	  2698
	  2700	  2702	  2708	  2726	  2727	  2728	  2730	  2741	  2756	  2761	  2769	  2784	  2785	  2792
	  2801	  2802	  2880	  2881	  2896	  2899	  2903	  2907	  2911	  2913	  2916	  2936	  2940	  2941
	  2943	  2963	  3092	  3098	  3099	  3101	  3102	  3115	  3121	  3122	  3124	  3149	  3200	  3211
	  3224	  3225	  3242	  3243	  3261	  3272	  3278	  3284	  3292	  3303	  3305	  3316	  3319	  3797
	  3818	  3819	  3820	  3821	  3822	  3828	  3829	  3830	  3834	  3835	  3836	  3838	  3840	  3918
	  3919	  3940	  3941	  3955	  3956	  3969	  3980	  4086	  4087	  4106	  4107	  4140	  4188	  4200
	  4202	  4204	  4212	  4219	  4221	  4224	  4226	  4228	  4229	  4230	  4247	  4422	  4459	  4467
	  4477	  4485	  4494	  4496	  4498	  4531	  4547	  4567	  4573	  4583	  4591	  4594	  4602	  4609
	  4628	  4642	  4643	  4660	  4666	  4689	  4705	  5176	  5185	  5197	  5227	  5230	  5231	  5232
	  5236	  5239	  5240	  5241	  5245	  5246	  5248	  5251	  5252	  5253	  5254	  5255	  5259	  5262
	  5263	  5264	  5269	  5272	  5273	  5274	  5278	  5281	  5282	  5283	  5287	  5290	  5291	  5292
	  5297	  5300	  5301	  5302	  5306	  5309	  5310	  5311	  5316	  5319	  5320	  5321	  5325	  5328
	  5329	  5330	  5333	  5336	  5337	  5338	  5342	  5343	  5345	  5348	  5349	  5350	  5351	  5352
	  5356	  5357	  5359	  5362	  5363	  5364	  5365	  5366	  5370	  5371	  5373	  5376	  5377	  5378
	  5379	  5380	  5383	  5386	  5387	  5388	  5392	  5395	  5396	  5397	  5401	  5404	  5405	  5406
	  5410	  5413	  5414	  5415	  5418	  5421	  5422	  5423	  5427	  5430	  5431	  5432	  5436	  5439
	  5440	  5441	  5445	  5448	  5449	  5450	  5454	  5457	  5458	  5459	  5463	  5466	  5467	  5468
	  5472	  5475	  5476	  5477	  5481	  5484	  5485	  5486	  5490	  5493	  5494	  5495	  5498	  5501
	  5502	  5503	  5507	  5510	  5511	  5512	  5516	  5519	  5520	  5521	  5529	  5534	  5536	  5557
	  5561	  5567	  5569	  5583	  5585	  5596	  5608	  5907	  5909	  5938
T20ERR	  6468	  7246	  7253	  7275	  7280#
T3	    51#	   657	   723	   929	  1204	  1260	  1274	  1277	  1281	  1284	  1285	  1296	  1386	  1426
	  1461	  1618	  1625	  1629	  1670	  1679	  1740	  1747	  1751	  1792	  1801	  1862	  1869	  1873
	  1914	  1923	  1936	  1939	  1940	  1943	  1945	  1961	  1964	  1966	  1973	  1978	  1979	  1982
	  1987	  2496	  2499	  2502	  2513	  2514	  2530	  2542	  2546	  2548	  2551	  2583	  2683	  2685
	  2686	  2687	  2762	  2770	  2786	  2827	  2899	  2903	  2907	  2911	  2922	  2923	  2964	  2971
	  2978	  2982	  2986	  2990	  3150	  3201	  3202	  3205	  3230	  3285	  3293	  3306	  3366	  3518
	  3521	  3537	  3544	  3867	  3904	  3918	  3922	  3942	  3957	  3970	  3981	  4078	  4084	  4088
	  4108	  4141	  4189	  4201	  4248	  4423	  4440	  4533	  4535	  4537	  4540	  4644	  4661	  4667
	  4668	  4679	  4682	  4684	  4688	  4690	  4695	  4696	  4706	  4711	  4893	  4947	  4951	  4977
	  5021	  5024	  5027	  5061	  5062	  5574	  5907	  5909	  5940
T4	    52#	   803	   804	  1619	  1621	  1626	  1636	  1646	  1651	  1741	  1743	  1748	  1758	  1768
	  1773	  1863	  1865	  1870	  1880	  1890	  1895	  2066	  2067	  2068	  2071	  2219	  2220	  2221
	  2224	  2371	  2372	  2373	  2376	  2499	  2500	  2503	  2504	  2505	  2507	  2508	  2510	  2511
	  2513	  2515	  2518	  2519	  2521	  2522	  2523	  2524	  2527	  2762	  2764	  2765	  2894	  2925
	  3136	  3138	  3139	  3142	  3231	  3293	  3297	  3298	  3903	  3917	  3921	  4172	  4176	  4202
	  4619	  4626	  4631	  4811	  4812	  4813	  4816	  4951	  4952	  4955	  4957	  4958	  5907	  5909
T5	    53#	  1024	  1027	  2057	  2058	  2059	  2060	  2077	  2082	  2084	  2085	  2086	  2087	  2088
	  2096	  2101	  2103	  2121	  2131	  2133	  2210	  2211	  2212	  2213	  2230	  2235	  2237	  2238     SEQ 0262
	  2239	  2240	  2241	  2249	  2254	  2256	  2274	  2284	  2286	  2362	  2363	  2364	  2365	  2382
	  2387	  2395	  2396	  2397	  2398	  2399	  2407	  2412	  2414	  2432	  2442	  2444	  2497	  2531
	  2697	  2705	  2893	  2913	  2914	  2916	  3133	  3135	  3143	  3902	  3923	  3928	  3932	  4173
	  4178	  4203	  4211	  4493	  4502	  4802	  4803	  4804	  4805	  4822	  4827	  4835	  4836	  4837
	  4838	  4839	  4847	  4852	  4854	  5907	  5909
T6	    54#	  1022	  1027	  1067	  1088	  1089	  1090	  1092	  1094	  1129	  1130	  1132	  1134	  1135
	  1137	  1139	  1166	  1169	  1171	  1359	  1360	  1361	  1362	  1364	  1369	  1379	  1390	  1420
	  1434	  1435	  1436	  1437	  1439	  1444	  1454	  1464	  1952	  2041	  2043	  2046	  2047	  2048
	  2053	  2057	  2062	  2107	  2108	  2125	  2127	  2134	  2194	  2196	  2199	  2200	  2201	  2206
	  2210	  2215	  2260	  2261	  2278	  2280	  2287	  2346	  2348	  2351	  2352	  2353	  2358	  2362
	  2367	  2418	  2419	  2436	  2438	  2445	  2694	  2696	  2698	  2700	  2702	  2704	  2712	  2716
	  2876	  2877	  2878	  2881	  2892	  2919	  2922	  2970	  2971	  2973	  3043	  3046	  3049	  3061
	  3062	  3103	  3125	  3138	  3190	  3929	  4066	  4151	  4157	  4158	  4164	  4165	  4167	  4169
	  4170	  4186	  4187	  4200	  4201	  4217	  4221	  4226	  4230	  4490	  4492	  4494	  4496	  4498
	  4501	  4782	  4784	  4787	  4788	  4789	  4798	  4802	  4807	  4858	  4859	  5219	  5220	  5222
	  5224	  5227	  5230	  5236	  5239	  5245	  5247	  5251	  5253	  5259	  5262	  5269	  5272	  5278
	  5281	  5287	  5290	  5297	  5300	  5306	  5309	  5316	  5319	  5325	  5328	  5333	  5336	  5342
	  5344	  5348	  5350	  5356	  5358	  5362	  5364	  5370	  5372	  5376	  5378	  5383	  5386	  5392
	  5395	  5401	  5404	  5410	  5413	  5418	  5421	  5427	  5430	  5436	  5439	  5445	  5448	  5454
	  5457	  5463	  5466	  5472	  5475	  5481	  5484	  5490	  5493	  5498	  5501	  5507	  5510	  5516
	  5519	  5526	  5528	  5529	  5533	  5534	  5538	  5629	  5634	  5639	  5641	  5647	  5652	  5654
	  5657	  5662	  5664	  5670	  5672	  5675	  5683	  5685	  5693	  5695	  5702	  5704	  5710	  5715
	  5721	  5726	  5732	  5738	  5744	  5750	  5752	  5759	  5761	  5764	  5770	  5772	  5775	  5781
	  5907	  5909
T7	    55#	  1643	  1765	  1887	  1990	  2062	  2104	  2215	  2257	  2367	  2415	  2713	  2717	  2823
	  2827	  2828	  2875	  3044	  3054	  3055	  3080	  3106	  3139	  3140	  3191	  3359	  3361	  3366
	  3367	  3930	  4065	  4183	  4187	  4188	  4807	  4855
T8080P	  2883	  3086#	  4067
TABLE0	  6120	  6123#
TAKE	   614	  5175#
TBOOTP	  2132	  2285	  2443	  3109#
TESTPC	   455#
TF10LP	  3030#	  3035
TO10IC	  3397#	  3515
TO10IP	  3398#	  3518
TO10OC	  3399#	  3541
TO10OP	  3400#	  3544
TRE	  1532#	  2527
TRM03P	  3088	  3111	  3250#
TT%DAM	  6760
TT%OSP	  6789
TTNBRF	   550#	  5594	  6586	  6606
TTYFIL	  6749#	  6749
TYPEFI	  2932	  2939#
TYPF10	  2955	  3004#
UBAP0	  1520#	  4941
UBSTAT	  1521#	  4943
UBVBIT	  1563#	  2518	  4957
UCFILE	  3272	  3277	  3284	  3291	  3301	  3321	  3328	  4139	  4254	  4421	  4435	  7532#
ULDSTR	  4172	  4185	  7536#
UNV36X	  1562#	  2518
UPDFL1	  5564	  5592#	  5601	  5619
UPDFL2	  5595	  5605#                                                                                                    SEQ 0263
UPDFL3	  5593	  5612#
UPDFL4	  5607	  5617#
UPDFL5	  5615	  5621#
UPDFLD	  5228	  5237	  5249	  5260	  5270	  5279	  5288	  5298	  5307	  5317	  5326	  5334	  5346	  5360
	  5374	  5384	  5393	  5402	  5411	  5419	  5428	  5437	  5446	  5455	  5464	  5473	  5482	  5491
	  5499	  5508	  5517	  5557#
UPFLD2	  5573#	  5578
USER	   445#	  6043
USERF	   263#	  6045
USRCRF	   518#	  7127#	  7127	  7135
USRHDQ	  3859#
USRHPQ	  3855#
USRLFF	   517#	  7125#	  7125	  7140
UUODIS	   483#	  6110
UUOEXT	   467#
UUOSKP	   465#
VALUE	  5561#	  5561	  5585	  5608
W10EOF	  3560#	  4549	  4875
W2PLSH	  2086	  2239	  2397	  4766#	  4837
WB10	  1599	  1994#
WB10A	  2053#	  2108
WB10C	  2054	  2062#
WB10D	  2064#	  2105
WB10E	  2071#	  2075
WB10F	  2074#
WB10G	  2072	  2077#
WB10H	  2065	  2096	  2103#
WB10I	  2104#
WB10J	  2127#	  2135
WB10K	  2129	  2137#
WB10X	  2082	  2098#
WC	  2091	  2116	  2117	  2244	  2269	  2270	  2402	  2427	  2428	  2866	  2871	  2872	  3377#	  3547
	  3560	  3561	  3656	  3687	  3704	  3737	  3972	  4057	  4058	  4542	  4791	  4842	  4901	  4903
WDB10	  1721	  2147#
WDB10A	  2206#	  2261
WDB10C	  2207	  2215#
WDB10D	  2217#	  2258
WDB10E	  2224#	  2228
WDB10F	  2227#
WDB10G	  2225	  2230#
WDB10H	  2218	  2249	  2256#
WDB10I	  2257#
WDB10J	  2280#	  2288
WDB10K	  2282	  2290#
WDB10X	  2235	  2251#
WHELX1	  3243
WHOM10	  3954#	  4079
WINDOW	   128#	  1632	  1633	  1634	  1669	  1675	  1676	  1754	  1755	  1756	  1791	  1797	  1798	  1876
	  1877	  1878	  1913	  1919	  1920	  4611	  4612	  4613	  4638	  4639	  4641	  4770	  4890
WRITE	   617	  1222#
WRTBC1	  1211	  2669#
WRTBC2	  1212	  1814#
WRTBOO	  1213	  1572#                                                                                                    SEQ 0264
WRTC10	  2681	  2712#
WRTCMD	  1210#	  1220	  1223
WRTCRM	  1214	  2670	  2671#
WRTD10	  3146	  3195#
WRTD11	  3202#	  3211
WRTDB	  1215	  1692#
WRTDBL	  1767#	  1773
WRTDON	  1216	  3129#
WRTFEF	  1217	  2725#
WRTHOM	  3172	  3182	  3224#
WRTRSE	  1218	  1319#
WRTSET	  1219	  1227#
WRTSEX	  1302	  1314#	  3915	  3925
WTLOOP	  2698#	  2705
WTPTR	  2687#	  2687	  2690
XOFFLA	  6744#	  6744
YESNO	  1032#	  1035	  1039
ZZ..	  4282#	  4282	  4283	  4283#	  4284	  4284#	  4285	  4285#	  4286	  4286#	  4287	  4287#	  4288	  4288#
	  4289	  4289#	  4290	  4290#	  4291	  4291#	  4292	  4292#	  4293	  4293#	  4294	  4294#	  4295	  4295#
	  4296	  4296#	  4297	  4297#	  4298	  4298#	  4299	  4299#	  4300	  4300#	  4301	  4301#	  4302	  4302#
	  4303	  4303#	  4304	  4304#	  4305	  4305#	  4306	  4306#	  4308#	  4308	  4309	  4309#	  4310	  4310#
	  4311	  4311#	  4312	  4312#	  4315#	  4315	  4316	  4316#	  4317	  4317#	  4318	  4318#	  4319	  4319#
	  4320	  4320#	  4321	  4321#	  4322	  4322#	  4323#	  4323	  4324	  4324#	  4325	  4325#	  4326	  4326#
	  4327	  4327#	  4328	  4328#	  4334#	  4334	  4335	  4335#	  4336	  4336#	  4337	  4337#	  4338	  4338#
	  4339	  4339#	  4340	  4340#	  4341	  4341#	  4342	  4342#	  4343	  4343#	  4344	  4344#	  4345	  4345#
	  4346	  4346#	  4347	  4347#	  4348	  4348#	  4349	  4349#	  4350	  4350#	  4351	  4351#	  4352	  4352#
	  4353#	  4353	  4354	  4354#	  4355	  4355#	  4356#	  4356	  4357	  4357#	  4358	  4358#	  4360#	  4360
	  4361	  4361#	  4362	  4362#	  4374#	  4374	  4375	  4375#	  4376	  4376#	  4377	  4377#	  4378	  4378#
	  4379	  4379#	  4380	  4380#	  4381	  4381#	  4382	  4382#	  4383	  4383#	  4384	  4384#	  4385	  4385#
	  4386	  4386#	  4387	  4387#	  4388	  4388#	  4389	  4389#	  4390	  4390#	  4391	  4391#	  4392	  4392#
$$$TT0	   767	  6450#
$$$TT1	   769	  6501#
$$OUTE	   562#	  7366	  7367
$$PAC0	  6042	  6080#	  6080
$$SNX	  6236#	  6236	  6316	  6319
$$TOGG	   568#
$$TT0	   766	   772#
$$TT1	   768	   778#
$ACC0	   474#
$ASCP1	  7045#	  7056
$ASCP2	  7048#	  7052
$ASCPN	  6836	  6855	  7044#
$CARCT	  6499	  7107#	  7107	  7114	  7117	  7161
$CCL	  3742#	  5189
$CCLF	  3742	  3745	  7543#
$CCLI1	  3783	  3786	  3797#
$CCLIN	    29	  3782#
$CHN	  3380#	  3766	  3769	  3771	  3785	  3788
$CHRIN	   511#	  5597	  5605	  6496#	  6496	  6508	  6515
$CHRPN	  6863	  7033#
$CMNTF	  7544#
$CNVD	  6585#	  6585	  6656	  6665
$CNVX	  6597	  6654#                                                                                                    SEQ 0265
$CNVX1	  6618	  6663#
$CNVX2	  6666	  6675#
$CPINI	  6227#	  6249
$CPKAI	  6224	  6243#
$CPKL	  6221#
$CPUTP	  6075	  6217#
$CRLF	   513#	  6750#	  6750
$DCCMP	  7075#
$DCSPS	  7089#
$DECP1	  7081#	  7087	  7089
$DECPN	  6857	  7064#
$DECSP	  6859	  7062#
$DEVCH	   330#	  7320	  7326	  7330	  7331	  7334	  7346	  7354	  7355	  7359
$DPYNO	  5208	  5210#
$DRP10	  7271	  7354#
$DRPDV	  6168	  7216	  7268#
$DVOFF	   509#	   839	  6740#	  6740	  7186	  7247	  7268	  7277	  7333	  7360
$DVTTY	  7314#	  7314	  7337
$EG177	  6152	  6200#
$EG4	  6154	  6193#
$EGX	  6196	  6198	  6203	  6206	  6209	  6211#
$END	  6189	  6331#
$END2	  6333#
$END3	  6338#
$EOP	  6191	  6284	  6345#
$ERH0	  6258	  6260#	  6260	  6269	  6271
$ERHL4	  6265#
$ERHLT	  6190	  6256#
$FATAL	  6190	  6278#
$FFF	   515#	  6752
$HEAR	  6420	  6448#	  6473
$HEAR2	  6506	  6508#	  6514	  6517
$HEAR3	  6498	  6512#
$HEAR4	  6387	  6400	  6415	  6451	  6457	  6490#
$IBF	  3763	  3782	  3797	  3813#
$INT10	  7233	  7325#
$INT11	  7330#	  7350
$INT12	  7247#	  7338
$INT13	  7329	  7339#
$INT21	  7237#	  7264
$INT22	  7242	  7252#
$INTD3	  7231#	  7231	  7252	  7263
$INTDF	  6739#	  6739	  7339	  7345
$INTDV	  7187	  7225#
$LDSPS	  7078	  7086#
$LISTF	  7545#
$NEGF	  6584#	  6584	  6624	  6651
$NEGX	  6595	  6649#
$NOYES	  6176	  6527#
$OBUF	   533#	  7316	  7318	  7328	  7348
$OERR1	  7349	  7371#
$OERR2	  7332	  7375#
$ONETM	   458#	  6079	  6768                                                                                             SEQ 0266
$OPTLK	  6175	  6419#	  6536	  6544	  6592	  6696
$OUTER	  7363#	  7373	  7377
$OUTEX	   535#	  7226
$OUTNM	   534#	  7228	  7237	  7325	  7331
$PACA1	  6810	  6826	  6842#	  6842
$PACA2	  6811	  6827	  6843#	  6843
$PACA3	  6812	  6828	  6844#	  6844
$PACA4	  6813	  6829	  6845#	  6845
$PACA5	  6814	  6830	  6846#	  6846
$PACB0	  7099#	  7099	  7148
$PACC4	  7154#	  7154	  7156	  7165	  7170	  7190
$PACF1	  7229#	  7229	  7249
$PACF2	  7230#	  7230	  7248
$PGMIN	  6042#
$PGMN1	  6057#
$PNAME	  6002#	  6293
$PNM2	  6292	  6317	  6322#
$PNM3	  6308	  6310	  6313	  6316#
$PNT	  6848#	  6848	  7014#	  7014	  7018	  7023	  7042#	  7042	  7054	  7062	  7086
$PNTB1	  6825#
$PNTI1	  6865	  7001#	  7025
$PNTI2	  7005#	  7008	  7019
$PNTI3	  6861	  7021#
$PNTI4	  6808#	  7015	  7026	  7036	  7050	  7055	  7069
$PNTIA	  6784	  6794	  6802	  6842#
$PNTIB	  6799	  6821#
$PNTIC	  6853#
$PNTIF	  6150	  6777#
$PNTIN	  6077	  6739#
$PNTIT	  6148	  6796#
$PNTIX	  6756	  6764#
$PNTLN	  6854	  7042#
$PNTNM	  6168	  6291#	  6770
$PNTSV	  7009#	  7009	  7016
$PNTSX	  6166	  6875#
$PNTTY	  6778#	  6778	  6797	  6808	  6831	  7118	  7189
$PNTYC	  7100#	  7100
$POCS	  6182	  6957#
$POCS1	  6965	  6972#
$POCS2	  6977#	  6986
$POCS3	  6974	  6981#	  6995
$POCS4	  6986#	  6994
$POCS5	  6979	  6994#
$POCSF	  6182	  6953#
$POINT	  7044#	  7044	  7046	  7053
$PRNTX	  6804	  6815#	  6823
$PSIX	  6181	  6909#
$PSIX1	  6918#	  6934
$PSIX2	  6921#	  6933
$PSIX3	  6933#	  6939
$PSIX4	  6926	  6936#
$PSIX5	  6924	  6941#
$PSIXF	  6181	  6905#                                                                                                    SEQ 0267
$PTINH	  6742#	  6742	  6779	  7109	  7112
$PTSXF	  6166	  6888#
$PUT10	  7196	  7314#
$PUTCR	  7188	  7195#
$PUTER	  7202	  7207#
$PVER	  6003#
$RADIX	  7068	  7071#	  7079
$SJBFF	  3775#	  3775
$SUBUO	  6100	  6119#
$SVCSW	  6066#	  6066
$SVUPC	   477#	  6103
$SVUUO	   476#	  6105	  6106
$SWFLG	  6068#	  6068
$TABF	   514#	  6751
$TACB4	  6419#	  6419	  6425
$TACC1	  6530#	  6530	  6555
$TACC2	  6531#	  6531	  6553
$TACD1	  6578#	  6578	  6626	  6633
$TACD2	  6579#	  6579	  6622	  6632
$TACD3	  6580#	  6580	  6621	  6631
$TALT1	  6437	  6441#
$TALT2	  6435#
$TALTM	  6178	  6432#
$TISIX	  6179	  6691#
$TOUB1	  7111	  7116#
$TOUB2	  7119	  7123#
$TOUB3	  7125#
$TOUT	  7007	  7013	  7035	  7051	  7066	  7083	  7091	  7099#
$TOUT2	  7123	  7143	  7154#
$TOUT3	  7159	  7186#
$TOUT4	  7163	  7172#
$TOUT5	  7164#	  7173	  7181
$TOUT6	  7161#	  7191
$TOUTA	  7129	  7134	  7139	  7141	  7148#
$TOUTB	  7106#
$TPCK	  6603	  6640#
$TPCLR	  6180	  6475#	  6559
$TPCNV	  6177	  6572#
$TPCV1	  6573	  6575	  6578#
$TPDEC	  6177	  6574#
$TPERR	  6593	  6604	  6616	  6630#	  6650	  6655	  6668
$TPEX1	  6621#	  6673	  6682
$TPEXT	  6599	  6601	  6615#
$TPMUL	  6608	  6643#
$TPNBR	  6615	  6646#
$TPOCT	  6176	  6576#
$TSX1	  6691#	  6691	  6719
$TSX2	  6692#	  6692	  6720
$TSXB1	  6696#	  6714
$TSXB2	  6699	  6701	  6716#
$TSXB3	  6697	  6704	  6708	  6712	  6718#
$TSXB4	  6707	  6710#
$TTCHR	   510#	   772	   773	  6385	  6397	  6413	  6450	  6456	  6490                                             SEQ 0268
$TTLK	  6178	  6380#	  6432
$TTYIN	  6179	  6407#
$TWCNT	   508#	  6424
$TYPIN	  6078	  6372#
$TYPL1	  6606#
$TYPLP	  6592#	  6611	  6652	  6657
$TYPNB	   512#	  6583#	  6583	  6630
$UOERX	  6089	  6131#	  6167	  6169	  6170	  6171	  6172	  6173	  6180	  6184	  6185	  6186	  6187	  6188
	  6189	  6191
$UORTN	  6087	  6096#
$UOTAB	  6162	  6165#
$UPLER	  6091#	  6091
$USRF1	  7136	  7141#	  7144
$USRFC	  7128	  7133#
$USRFL	  7126	  7138#
$USRUO	  6101#
$UUO37	  6123	  6147#
$UUOER	   468#	   483	  6090
$UUOIN	  6076	  6087#
$VTF	   516#	  6753
$XUUO	  6111#	  6163
$YESNO	  6175	  6529#
$YN1	  6534#	  6560
$YN2	  6537	  6545	  6553#
$YN3	  6541	  6551	  6558#
$YN4	  6547	  6549	  6562#
..0001	   794#	   795
..0002	   800#	   801
..0003	   830#	   831
..0004	   859#	   860
..0005	   972#	   973
..0006	  1020#	  1021
..0007	  1023#	  1024
..0010	  1025#	  1026
..0011	  1037#	  1038
..0012	  1038#	  1039
..0013	  1051#	  1052
..0014	  1060#	  1061
..0015	  1061#	  1062
..0016	  1073#	  1074
..0017	  1074#	  1075
..0020	  1107#	  1108
..0021	  1116#	  1117
..0022	  1117#	  1118
..0023	  1147#	  1148
..0024	  1222#	  1223
..0025	  1250#	  1251
..0026	  1584#	  1585
..0027	  1704#	  1705
..0030	  1826#	  1827
..0031	  2672#	  2673
..0032	  2725#	  2726
..0033	  2740#	  2741                                                                                                     SEQ 0269
..0034	  2935#	  2936
..0035	  2939#	  2940
..0036	  3260#	  3261
..0037	  3271#	  3272
..0040	  4458#	  4459
..0041	  4466#	  4467
..0042	  4476#	  4477
..0043	  4566#	  4567
..0044	  4572#	  4573
..0045	  4582#	  4583
..0046	  5175#	  5176
..0047	  5184#	  5185
..TYPE	  2931#	  2933	  2936
..XX	   586#	   586	   621#	   621	   623#	   623	   860#	   860	   973#	   973	  1021#	  1021	  1024#	  1024
	  1026#	  1026	  1038#	  1038	  1039#	  1039	  1052#	  1052	  1061#	  1061	  1062#	  1062	  1074#	  1074
	  1075#	  1075	  1104#	  1104	  1117#	  1117	  1118#	  1118	  1148#	  1148	  1223#	  1223	  1251#	  1251
	  1585#	  1585	  1705#	  1705	  1827#	  1827	  2673#	  2673	  2726#	  2726	  2741#	  2741	  2936#	  2936
	  2940#	  2940	  3261#	  3261	  3272#	  3272	  4459#	  4459	  4467#	  4467	  4477#	  4477	  4567#	  4567
	  4573#	  4573	  4583#	  4583	  5176#	  5176	  5185#	  5185
.AC1	   652	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   742	   748
	   811	   931	   980	   985	   991	   996	   999	  1002	  1262	  1276	  1283	  2692	  2710	  3241
	  5884	  5929	  5936	  5944	  7210
.BFCTR	  3395#	  3397	  3399
.BFPTR	  3394#	  3398	  3400
.CMABC	   790
.CMABP	   792
.CMBFP	   786
.CMCFM	   623
.CMCNT	   789
.CMFIL	  1251	  1585	  1705	  1827	  2741	  3272	  4477	  4567	  4583	  5185
.CMINI	   621
.CMIOJ	   638	   782	   820	   824	   831	  3778	  5191	  5202	  5565	  5573
.CMKEY	   586	   860	  1021	  1024	  1039	  1052	  1104	  1223	  2936	  4459
.CMNOI	   973	  1026	  1038	  1061	  1074	  1117	  1148	  2673	  3261	  4467	  4573	  5176
.CMNUM	  1062	  1075	  1118	  2726	  2940
.CMPTR	   787
.DCUPN	  3396#	  3401	  3402
.DCUR3	   964	  3417#	  3840
.DCUR4	   960	  3415#	  3836
.DCUR6	   962	  3416#	  3838
.EXIT	   597	   599	  1147#
.FBBYV	  1280	  2761	  3292	  4140	  4659
.FBCTL	  1273
.FBSIZ	  4665
.FHSLF	   654	   661	   686	   700	   722	   809	  1295	  1669	  1791	  1913	  1965	  1972	  2769	  2783
	  2963	  3149	  3239	  3303	  3305	  4247	  4422	  4641	  4689	  4704	  7281
.IOBIN	  3410#	  3579
.IODMP	  3411#	  3581	  3620	  3654	  3701	  3928	  3968	  3979
.JB41	   298#
.JBAPR	   306#
.JBCNI	   307#
.JBDDT	   300#
.JBFF	   304#	  3556	  3587	  3774                                                                                     SEQ 0270
.JBOPC	   309#
.JBREL	   299#
.JBREN	   305#
.JBSA	   303#	  2098	  2251	  2409	  4849
.JBSYM	   301#
.JBTPC	   308#
.JBUSY	   302#
.JBUUO	   297#
.JBVER	   310#
.MSRCH	  1360	  1435
.MSRCT	  1361	  1436
.MSRLN	  1371	  1407	  1446
.MSRNU	  1371	  1446
.MSRP4	   940	  1395	  1469
.MSRP5	   942	  1397	  1471
.MSRP6	   944	  1399	  1473
.MSRSA	  1444
.MSRSN	  1369
.MSRST	  1364	  1365	  1379	  1390	  1439	  1440	  1454	  1464
.MSRUN	  1362	  1437
.NULIO	  3777	  5201
.PRIIN	   637	   781	   823	   832	  5192	  5961	  5973	  6390	  6477
.PRIOU	   637	   721	   781	   823	  1166	  3777	  5923	  5939	  5961	  5973	  6758	  6787	  7280
.RBALC	  3403	  3405	  3430#	  3885
.RBCNT	  3421#
.RBDEV	  3435#
.RBEST	  3429#
.RBEXT	  2009	  2162	  2315	  3344	  3424#	  3597	  3630	  3667	  3676	  3714	  3722	  4725
.RBMTA	  3434#
.RBNAM	  1997	  2150	  2303	  3423#	  3594	  3627	  3664	  3712
.RBNCA	  3433#
.RBPOS	  3431#
.RBPPN	  3422#	  3600	  3633	  3670	  3718
.RBPRV	  2006	  2011	  2159	  2164	  2312	  2317	  3341	  3346	  3425#	  3673	  3678	  3680	  3720	  3724
	  3726	  4722	  4727
.RBSIZ	  2023	  2176	  2329	  2815	  3349	  3426#
.RBSPL	  3428#
.RBSTS	  3404	  3406	  3436#
.RBTF1	  3432#
.RBVER	  2003	  2156	  2309	  3338	  3427#	  3683	  3728	  4719
.TICCC	   670
.TICCO	   682
.TICCT	   678
.TICCX	   666
.TICCZ	   674
.TYPE	   615	  2935#

AIC	   688
ATI	   667	   671	   675	   679	   683                                                                             SEQ 0271
BIN	  1167	  5566	  5582
BKJFN	  5571
BOUT	  1170	  2699	  2701	  2703	  4495	  4497	  4499	  7201
CALL	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   811	   814	   931
	   980	   985	   991	   996	   999	  1002	  1262	  1276	  1283	  1291	  1298	  1418	  1490	  1603
	  1611	  1672	  1681	  1686	  1725	  1733	  1794	  1803	  1808	  1847	  1855	  1916	  1925	  1930
	  1968	  1975	  1984	  2692	  2710	  2772	  2788	  2966	  3152	  3241	  3309	  4251	  4426	  4596
	  4604	  4646	  4651	  4692	  4708
CFIBF	  5925	  6481
CFORK	   984	  1602	  1724	  1846	  4595
CHFDB	  4662	  4669
CLOSF	   821	  1174	  2778	  2807	  3156	  3322	  3329	  4255	  4505	  4656	  5194	  7274
CLRBFI	   762	  6479
CMABR	   346#	   590	   591	   595	   597
CMD	   358#	   794	   800	   830	   859	   972	  1020	  1023	  1025	  1037	  1038	  1051	  1060	  1061
	  1073	  1074	  1107	  1116	  1117	  1147	  1222	  1250	  1584	  1704	  1826	  2672	  2725	  2740
	  2935	  2939	  3260	  3271	  4458	  4466	  4476	  4566	  4572	  4582	  5175	  5184
CMDNOP	   382#
CMTAB	   342#	   592	   593	   596	   598	   599	   601	   603	   605	   607	   609	   610	   612	   614
	   615	   617	   853	   854	   855	   856	  1011	  1012	  1016	  1033	  1034	  1047	  1048	  1100
	  1101	  1211	  1212	  1213	  1214	  1215	  1216	  1217	  1218	  1219	  2932	  4452	  4453	  4454
	  4455
COMND	   795	   801	   831	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074
	  1075	  1108	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936
	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
CONFIR	   422#	   862	   973	  1026	  1041	  1066	  1076	  1119	  1148	  1156	  1253	  1319	  1587	  1707
	  1829	  2673	  2743	  2945	  3129	  3273	  4479	  4585	  5186
CORE	  5793
CRMBIT	  4259#	  4282	  4283	  4284	  4285	  4286	  4287	  4288	  4289	  4290	  4291	  4292	  4293	  4294
	  4295	  4296	  4297	  4298	  4299	  4300	  4301	  4302	  4303	  4304	  4305	  4306	  4307	  4308
	  4309	  4310	  4311	  4313	  4314	  4315	  4316	  4317	  4318	  4319	  4320	  4321	  4322	  4323
	  4324	  4325	  4326	  4327	  4328	  4329	  4330	  4331	  4332	  4333	  4334	  4335	  4336	  4337
	  4338	  4339	  4340	  4341	  4342	  4343	  4344	  4345	  4346	  4347	  4348	  4349	  4350	  4351
	  4352	  4353	  4354	  4355	  4356	  4357	  4358	  4359	  4360	  4361	  4362	  4363	  4365	  4366
	  4367	  4368	  4369	  4370	  4371	  4372	  4373	  4374	  4375	  4376	  4377	  4378	  4379	  4380
	  4381	  4382	  4383	  4384	  4385	  4386	  4387	  4388	  4389	  4390	  4391	  4393	  4394
CRMRNG	  4273#	  4282	  4294	  4303	  4308	  4315	  4319	  4323	  4325	  4334	  4337	  4340	  4343	  4346
	  4349	  4353	  4356	  4360	  4374	  4380
DEBRK	  5876	  5888	  5894	  5900	  5905	  5909	  5913	  5922
DEVCHR	  7335
DISK.	  3860
DOBE	  5924
DPYNOF	  5208#	  5233	  5242	  5256	  5265	  5275	  5284	  5293	  5303	  5312	  5322	  5331	  5339	  5353
	  5367	  5381	  5389	  5398	  5407	  5416	  5424	  5433	  5442	  5451	  5460	  5469	  5478	  5487
	  5496	  5504	  5513	  5522
DROPDV	   222#	  6017	  7160
DSKCHR	  3825	  3847	  3852
DSKOP	  3234
ECMTAB	   589#	   619	   853#	   857	  1011#	  1013	  1016#	  1017	  1033#	  1035	  1047#	  1049	  1100#	  1102
	  1211#	  1220	  2932#	  2933	  4452#	  4456
EIR	   691
ENDUUO	   250#
EOPUUO	   251#                                                                                                            SEQ 0272
EPCAP	   658
ERCAL	  1374	  1449
ERJMP	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   725	   726	   795
	   801	   811	   831	   860	   931	   973	   980	   985	   991	   996	   999	  1002	  1021	  1024
	  1026	  1038	  1039	  1052	  1061	  1062	  1074	  1075	  1108	  1117	  1118	  1148	  1168	  1223
	  1251	  1262	  1276	  1283	  1298	  1585	  1603	  1611	  1672	  1681	  1686	  1705	  1725	  1733
	  1794	  1803	  1808	  1827	  1847	  1855	  1916	  1925	  1930	  1968	  1975	  1984	  2673	  2692
	  2710	  2726	  2741	  2772	  2788	  2936	  2940	  2966	  3152	  3235	  3241	  3261	  3272	  3309
	  4251	  4426	  4459	  4467	  4477	  4567	  4573	  4583	  4596	  4604	  4646	  4651	  4692	  4708
	  5176	  5185	  7202	  7242
ERMSG	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   811	   931	   980
	   985	   991	   996	   999	  1002	  1262	  1276	  1283	  2692	  2710	  3241
ERR	   403#	   822	   869	   884	   922	  1064	  1081	  1083	  1086	  1123	  1175	  1198	  1269	  1278
	  1286	  1309	  1312	  1321	  1402	  1476	  1489	  1500	  1590	  1592	  1630	  1710	  1712	  1752
	  1832	  1834	  1874	  1941	  1995	  2025	  2033	  2044	  2069	  2078	  2094	  2148	  2178	  2186
	  2197	  2222	  2231	  2247	  2301	  2331	  2339	  2349	  2374	  2383	  2405	  2676	  2678	  2729
	  2746	  2753	  2758	  2779	  2808	  2809	  2813	  2817	  2864	  2869	  2928	  2942	  2948	  2960
	  3005	  3027	  3131	  3157	  3196	  3210	  3237	  3244	  3280	  3323	  3330	  3331	  3336	  3356
	  3531	  3534	  3549	  3585	  3624	  3657	  3705	  3743	  3767	  3772	  3789	  3826	  3831	  3843
	  3848	  3853	  3865	  3869	  3887	  3894	  3898	  3912	  3914	  3945	  3960	  3996	  4002	  4007
	  4013	  4020	  4055	  4080	  4091	  4096	  4111	  4116	  4163	  4256	  4409	  4487	  4506	  4529
	  4545	  4593	  4657	  4673	  4683	  4717	  4750	  4785	  4794	  4814	  4823	  4845	  4906	  5195
	  5199	  5572	  5584	  5794	  5798	  5808	  5942
ERRHLT	   154#
ERSTR	   724	  7283
ESOUT	   741
EXIT	  1150	  5820	  7368
FATAL	   153#	  6140
FLD	   586	   621	   623	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074
	  1075	  1104	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936
	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
FLDDB.	   586	   621	   623	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074
	  1075	  1104	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936
	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
GET	   990	  1610	  1732	  1854	  4603
GETER	   701	   810	  1413	  1484	  3240
GETIT	   140#	   863	  1042	  1420	  1945	  1946	  1956	  1987	  2088	  2241	  2393	  2399	  3099	  3122
	  4711	  4833	  4839	  5921	  6115	  6130	  6133	  6136	  6211	  6258	  6265	  6393	  6394	  6398
	  6399	  6414	  6470	  6471	  6472	  6482	  6791	  6792	  6803	  6821	  6847	  6882	  6895	  6941
	  6942	  6943	  6944	  6945	  6987	  6988	  6989	  6990	  6991	  7180	  7203	  7204	  7217	  7218
	  7276	  7301	  7302	  7303
GETTAB	  6049	  6234
GEVEC	  1615	  1737	  1859	  4608
GO	   137#	   422	   645	   646	   647	   648	   649	   736	   766	   768	   795	   801	   804	   822
	   831	   860	   869	   884	   922	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062
	  1064	  1069	  1074	  1075	  1081	  1083	  1086	  1108	  1117	  1118	  1123	  1142	  1148	  1175
	  1197	  1198	  1200	  1223	  1251	  1265	  1269	  1278	  1286	  1305	  1309	  1312	  1321	  1387
	  1402	  1462	  1476	  1489	  1500	  1585	  1590	  1592	  1630	  1649	  1705	  1710	  1712	  1714
	  1752	  1771	  1827	  1832	  1834	  1836	  1874	  1893	  1941	  1953	  1994	  1995	  2025	  2032
	  2033	  2038	  2044	  2069	  2074	  2078	  2080	  2094	  2119	  2132	  2147	  2148	  2178	  2185
	  2186	  2191	  2197	  2222	  2227	  2231	  2233	  2247	  2272	  2285	  2300	  2301	  2331	  2338
	  2339	  2343	  2349	  2374	  2379	  2383	  2385	  2405	  2430	  2443	  2673	  2676	  2678	  2718
	  2726	  2729	  2741	  2746	  2753	  2758	  2779	  2781	  2808	  2809	  2812	  2813	  2817	  2824     SEQ 0273
	  2830	  2832	  2863	  2864	  2869	  2874	  2883	  2897	  2901	  2905	  2909	  2928	  2936	  2940
	  2942	  2948	  2960	  2972	  2980	  2984	  2988	  2992	  3005	  3026	  3027	  3030	  3034	  3088
	  3111	  3131	  3141	  3157	  3160	  3163	  3172	  3176	  3182	  3192	  3196	  3210	  3237	  3244
	  3261	  3272	  3280	  3323	  3330	  3331	  3335	  3336	  3356	  3363	  3531	  3534	  3549	  3585
	  3624	  3657	  3705	  3743	  3767	  3772	  3789	  3826	  3831	  3843	  3848	  3853	  3864	  3865
	  3868	  3869	  3882	  3887	  3894	  3895	  3898	  3912	  3914	  3945	  3960	  3995	  3996	  4002
	  4006	  4007	  4013	  4020	  4054	  4055	  4062	  4067	  4079	  4080	  4091	  4096	  4111	  4116
	  4145	  4146	  4153	  4161	  4163	  4175	  4192	  4234	  4237	  4256	  4401	  4408	  4409	  4439
	  4459	  4467	  4477	  4487	  4506	  4528	  4529	  4545	  4549	  4567	  4570	  4573	  4583	  4593
	  4629	  4657	  4673	  4683	  4716	  4717	  4749	  4750	  4779	  4785	  4794	  4814	  4819	  4823
	  4825	  4845	  4873	  4875	  4876	  4892	  4906	  5176	  5185	  5195	  5199	  5208	  5228	  5237
	  5249	  5260	  5270	  5279	  5288	  5298	  5307	  5317	  5326	  5334	  5346	  5360	  5374	  5384
	  5393	  5402	  5411	  5419	  5428	  5437	  5446	  5455	  5464	  5473	  5482	  5491	  5499	  5508
	  5517	  5545	  5572	  5584	  5794	  5798	  5808	  5907	  5942	  6075	  6076	  6077	  6078	  6087
	  6415	  6420	  6432	  6536	  6544	  6559	  6592	  6696	  7068	  7079	  7187	  7188	  7216	  7238
	  7294	  7299
GTFDB	  1275	  1282	  2763	  3295	  4142
GTJFN	   979	  1161	  7241
HALTF	  1151	  1604	  1726	  1848	  4597	  5877	  6024	  6270	  6347	  7284	  7285	  7286
HPQ	  3856
INCHRS	  6385
INCHRW	   772	   778	  6409	  6501
INCHWL	  6450
JFNS	   930	  1261	  3286
JSERR	  1291	  1298	  1418	  1490	  1603	  1611	  1672	  1681	  1686	  1725	  1733	  1794	  1803	  1808
	  1847	  1855	  1916	  1925	  1930	  1968	  1975	  1984	  2772	  2788	  2966	  3152	  3309	  4251
	  4426	  4596	  4604	  4646	  4651	  4692	  4708
JSHLT	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   811	   931	   980
	   985	   991	   996	   999	  1002	  1262	  1276	  1283	  2692	  2710	  3241
KFORK	  1001	  1685	  1807	  1929	  4650
MOVSLJ	   414#
MOVST	   418#
MSTR	  1373	  1448
NAME	     7#	    10
NIN	  5575
NOISE	   379#	   972	  1025	  1037	  1060	  1073	  1116	  1147	  2672	  3260	  4466	  4572	  5175
NOUT	  5941
OP$$AC	   424#	  5906	  5908
OPENF	  1164	  1290	  2757	  3279	  4486	  4592	  5198	  7245
OUTCHR	  7167	  7177
OUTSTR	   590	   591	   595	   597	   643	   731	   732	   733	   754	   755	   756	   760	  7340	  7356
	  7363	  7371	  7375
PBELL	   231#
PBIN	  6396	  6412
PBOUT	  7169	  7179
PCRL	   223#	  6139	  6322	  6507	  6938
PCRL2	   229#
PCRL2F	   230#	  5217
PCRLF	   224#	   876	   877	   901	   902	   917	   918	   949	   950	   967	   968	  1143	  1181	  2969
	  2974	  3029	  3037	  3057	  3072	  3073	  5589	  5621	  5785	  6263	  6283	  6337	  6558	  6936
PFORCE	   233#
PGMINT	   147#	   628
PJRST	   141#                                                                                                            SEQ 0274
PMAP	  1297	  1671	  1680	  1793	  1802	  1915	  1924	  1967	  1974	  1983	  2771	  2787	  2965	  3151
	  3308	  4250	  4425	  4645	  4691	  4707
PMSG	   235#	   871	  6132	  6294	  6301	  6303	  6307	  6309	  6312	  6314	  6318
PMSGF	   238#	   880	   889	   893	   897	   905	   909	   913	   933	   941	   943	   945	   947	   953
	   961	   963	   965	  1006	  1178	  3041	  3068	  5226	  5235	  5244	  5258	  5267	  5268	  5277
	  5286	  5295	  5296	  5305	  5314	  5315	  5324	  5332	  5341	  5355	  5369	  5382	  5391	  5400
	  5409	  5417	  5426	  5435	  5444	  5453	  5461	  5462	  5471	  5480	  5489	  5497	  5506	  5515
	  6257	  6279	  6333	  6534
PNT1	   189#
PNT11	   205#
PNT11F	   206#
PNT1F	   190#	  5631	  5649	  5712	  5717	  5723	  5728	  5734	  5740	  5746	  5755	  5767	  5778	  5783
PNT2	   191#
PNT2F	   192#	  5688	  5698	  5707
PNT3	   193#
PNT3F	   194#	  5660	  5678
PNT4	   195#
PNT4F	   196#	  5636	  5667
PNT5	   197#
PNT5F	   198#
PNT6	   199#
PNT6F	   200#	  1127	  5644	  6262	  6282
PNT7	   201#
PNT7F	   202#
PNT8	   203#
PNT8F	   204#	  1136
PNTA	   175#	  1206
PNTADF	   208#
PNTADR	   207#
PNTAF	   176#
PNTAL	   177#	   840	  6210
PNTALF	   178#	   819	   836	   935	  1180	  3794	  6208
PNTCHF	   188#	   847	  2998	  3000	  6195	  6893	  6930	  6967	  6982
PNTCHR	   187#	   775	   779	  6197	  6516	  6880	  6932	  6969	  6984
PNTCI	   185#	  6297
PNTCIF	   186#	  1128	  6336
PNTDCF	   216#	   874	  3070	  6335
PNTDEC	   215#	  6320
PNTDS	   217#
PNTDSF	   218#
PNTHW	   211#	  6134	  6138
PNTHWF	   212#	   891	   895	   899	   907	   911	   915
PNTMSF	   182#	  1125	  3185	  3245	  5210	  5576	  5599	  5617	  5625
PNTMSG	   181#	  6293
PNTNM	   219#	  6256	  6278
PNTOCF	   214#	   746	   759	  3052	  5558
PNTOCS	   213#	  6296	  6299
PNTOCT	   209#
PNTOTF	   210#	  1138	  1140
PNTSIX	   220#
PNTSXF	   221#	   955
POS	   586	   621	   623	   860	   973	  1021	  1024	  1026	  1038	  1039	  1052	  1061	  1062	  1074
	  1075	  1104	  1117	  1118	  1148	  1223	  1251	  1585	  1705	  1827	  2673	  2726	  2741	  2936     SEQ 0275
	  2940	  3261	  3272	  4459	  4467	  4477	  4567	  4573	  4583	  5176	  5185
PSIXL	   179#	  6205
PSIXLF	   180#	  6202
PSIXM	   183#	   871	  6132	  6294	  6301	  6303	  6307	  6309	  6312	  6314	  6318
PSIXMF	   184#	   880	   889	   893	   897	   905	   909	   913	   933	   941	   943	   945	   947	   953
	   961	   963	   965	  1006	  1178	  3041	  3068	  5226	  5235	  5244	  5258	  5267	  5268	  5277
	  5286	  5295	  5296	  5305	  5314	  5315	  5324	  5332	  5341	  5355	  5369	  5382	  5391	  5400
	  5409	  5417	  5426	  5435	  5444	  5453	  5461	  5462	  5471	  5480	  5489	  5497	  5506	  5515
	  6257	  6279	  6333	  6535
PSOUT	   590	   591	   595	   597	   653	   656	   659	   664	   668	   672	   676	   680	   684	   689
	   692	   702	   713	   715	   720	   743	   749	   811	   931	   980	   985	   991	   996	   999
	  1002	  1262	  1276	  1283	  2692	  2710	  3241	  5885	  5930	  5937	  5945	  5952	  7213	  7259
PSP	   225#	  6135
PSPACE	   227#	  5632	  5637	  5645	  5650	  5661	  5668	  5679	  5680	  5681	  5689	  5690	  5691	  5699
	  5700	  5701	  5708	  5713	  5718	  5719	  5724	  5725	  5729	  5730	  5735	  5736	  5741	  5742
	  5747	  5748	  5756	  5757	  5768	  5779
PSPF	   226#
PTAB	   228#	   937	   957	  3059	  5562
PUT	   139#	   861	  1040	  1935	  1936	  1951	  1960	  2084	  2237	  2389	  2395	  3091	  3114	  4678
	  4829	  4835	  5918	  6096	  6108	  6131	  6155	  6259	  6388	  6389	  6411	  6459	  6460	  6461
	  6475	  6785	  6786	  6875	  6888	  6905	  6909	  6911	  6912	  6913	  6914	  6953	  6957	  6959
	  6960	  6961	  6962	  7174	  7197	  7198	  7272	  7288	  7289	  7290
RDIO	  1516#	  2523	  2553	  2555	  2557	  2559	  2561	  2563	  2566	  2568	  4973	  4980	  5029	  5031
	  5033	  5035	  5042	  5044
RDTTY	  6467
RESET	  6023	  6062
RESTAC	   436#	  5908
RET	   706	   837	  1144	  3161	  3173	  3177	  3183	  3188	  3248	  5212	  5786
RETSKP	  5560
RFMOD	  6759	  6788
RLJFN	  4672
RPACS	  1623	  1647	  1745	  1769	  1867	  1891	  4627
RPCAP	   655
RTN	   138#	   467	   770	   776	   780	   826	   841	   849	   878	   881	   903	   919	   951	   969
	  1004	  1007	  1028	  1043	  1070	  1176	  1182	  1306	  1316	  1356	  1405	  1416	  1428	  1479
	  1487	  1507	  1689	  1811	  1933	  1949	  1991	  2144	  2297	  2455	  2720	  2804	  2885	  2917
	  2924	  2976	  2994	  3001	  3074	  3104	  3126	  3167	  3193	  3215	  3326	  3332	  3519	  3522
	  3538	  3545	  3558	  3563	  3606	  3639	  3688	  3738	  3781	  3810	  3933	  3950	  3965	  3973
	  3984	  4028	  4232	  4258	  4403	  4414	  4419	  4437	  4442	  4448	  4508	  4551	  4675	  4713
	  4730	  4878	  4899	  4907	  5205	  5547	  5580	  5587	  5590	  5603	  5610	  5804	  5809	  5814
	  5946	  5953	  6092	  6117	  6212	  6238	  6241	  6323	  6339	  6373	  6382	  6386	  6395	  6417
	  6426	  6433	  6443	  6483	  6510	  6556	  6628	  6634	  6721	  6767	  6769	  6816	  6883	  6896
	  6946	  6992	  7084	  7205	  7219	  7250	  7269	  7278	  7304	  7311	  7319	  7361
S	    38#	    40	    42	   133	   135	   143	   145	   149	   151	   156	   158	   171	   173	   246
	   248	   254	   256	   268	   270	   275	   277	   293	   295	   312	   314	   324	   328	   441
	   443	   460	   462	   470	   472	   478	   480	   498	   500	   529	   531	   538	   540	   546
	   548	   552	   554	   558	   560	   564	   566	   570	   572	  6028	  6030	  6037	  6039	  6053
	  6055	  6071	  6073	  6083	  6085	  6125	  6127	  6143	  6145	  6215	  6253	  6275	  6289	  6329
	  6343	  6352	  6368	  6371	  6375	  6378	  6401	  6405	  6428	  6430	  6444	  6446	  6484	  6488
	  6520	  6525	  6567	  6570	  6590	  6613	  6638	  6661	  6686	  6689	  6724	  6732	  6734	  6737
	  6772	  6775	  6806	  6819	  6837	  6840	  6867	  6870	  6873	  6886	  6897	  6903	  6947	  6951
	  6996	  6999	  7028	  7031	  7038	  7040	  7057	  7060	  7095	  7097	  7102	  7104	  7131	  7147
	  7150	  7152	  7184	  7193	  7220	  7223	  7266                                                             SEQ 0276
SAVEAC	   432#	  5906
SCMTAB	   334#	   588	   852	  1010	  1015	  1032	  1046	  1099	  1210	  2931	  4451
SETUWP	  5797	  5807
SFMOD	  6762	  6790
SFPTR	  2691	  2709
SFRKV	   995
SIBE	  6391
SIR	   663
SIXBTZ	   244#
STDEV	  1268
SUSET.	  3944	  3959	  4090	  4110
SYSGT	  6230
TION	  1517#	  2493
TMSG	   651	   656	   659	   664	   668	   672	   676	   680	   684	   689	   692	   702	   742	   747
	   811	   931	   980	   985	   991	   996	   999	  1002	  1262	  1276	  1283	  2692	  2710	  3241
	  5882	  5926	  5935	  5943	  7207
TTALTM	   167#
TTICHR	   160#
TTICLR	   170#
TTICNV	   165#
TTIDEC	   164#
TTINO	   162#
TTIOCT	   163#	  5592
TTIYES	   161#
TTLOOK	   166#
TTSIXB	   168#
TTYINP	   169#
WARN	   408#
WFORK	   998
WRIO	  1518#	  2484	  2488	  2491	  2503	  2505	  2508	  2511	  2519	  2522	  2534	  2537	  4958	  4961
	  4964	  4967	  4987	  4990	  4993	  4996	  5005	  5008	  5068
WRUBR	  1515#	  2586	  2592	  2598	  2604	  2610	  2616	  2622	  2628	  5083	  5089	  5095	  5101	  5107
	  5113	  5119	  5125
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 1
SMPREB	MAC	27-Oct-78 11:53	                                                                                           SEQ 0277

     1					;MAINDEC-10-SMPREB
     2
     3			000000		MCNVER=0
     4			000002		DECVER=2
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2^
    13
    14					;*JOHN R. KIRCHOFF
    15
    16						NOSYM
    17
    18					INTERN	SMPREB		;LET EXTERNAL PROGRAM KNOW WHERE THIS IS
    19	000000'				SMPREB:			;INTERNAL REFERENCE ADDRESS
    20					INTERN	SMPEND		;INTERNAL REFERENCE END ADDRESS
    21
    22	001000				PHASE	1000		;THE PRE-BOOT IS REALLY AT LOC 1000
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 2
SMPREB	MAC	27-Oct-78 11:53		PARAMETERS                                                                         SEQ 0278

    23					SUBTTL	PARAMETERS
    24
    25					; ********************************************************************
    26
    27					; THIS PROGRAM IS THE PRE-BOOT FOR THE DIAGNOSTICS DISK LOADER AND
    28					; FOR BOOTCHECK II.  THE PROGRAM PERFORMS A BASIC VERIFICATION OF THE
    29					; KS-10 CPU BEFORE TRYING TO LOAD THE PRIMARY LOADER OR BOOTCHECK II
    30					; CODE.
    31
    32					; THIS WILL ALSO GIVE A VERY PRESCRIBED SEQUENCE OF OPERATIONS TO BE
    33					; DEBUGGED IF THIS CODE DOES NOT RUN TO COMPLETION.
    34
    35					;DEFINITIONS FOR SM10
    36
    37			001000		BOORG=1000	;START OF HARDWARE BOOT
    38
    39		701140	000000		OPDEF	WRUBR	[701B8+3B12]	;WRITE USER BASE REGISTER
    40		712000	000000		OPDEF	RDIO	[712B8]		;READ I/O
    41		713000	000000		OPDEF	WRIO	[713B8]		;WRITE I/O
    42
    43			763000		UBAP0=	763000	;ADDRESS OF UNIBUS MAP
    44			763100		UBSTAT=	763100	;ADDRESS OF UNIBUS STATUS
    45
    46			000031		KPALIVE=31	;KEEP-ALIVE & STATUS WORD
    47			000036		MSRH=	36	;RH-11 BASE ADDRESS
    48			000037		MSDRIVE=37	;DRIVE NUMBER
    49			000040		MSSLAVE=40	;SLAVE & FORMAT
    50
    51			000021		RIPST=21	;READ IN PRESET
    52			000071		RDATA=71	;READ DATA
    53			000200		RDY=200		;READY
    54			020000		MCPE=20000	;MASS I/O CONTROL BUS PARITY ERROR
    55			040000		TRE=40000	;TRANSFER ERROR
    56			100000		SC=100000	;SPECIAL CONDITION
    57			010000		FMT22=10000	;FORMAT 22 (FORMAT BIT)
    58
    59			000040		RHCLR=	40	;CONTROLLER CLEAR
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 3
SMPREB	MAC	27-Oct-78 11:53		PARAMETERS                                                                         SEQ 0279

    60
    61					;REGISTER DEFINITIONS
    62
    63			000000		RPCS1=	00	;CONTROL AND STATUS 1
    64			000002		RPWC=	02	;WORD COUNT REGISTER
    65			000004		RPBA=	04	;UNIBUS ADDRESS REGISTER
    66			000006		RPDA=	06	;DESIRED SECTOR/TRACK ADDRESS REGISTER
    67			000010		RPCS2=	10	;CONTROL AND STATUS 2
    68			000012		RPDS=	12	;DRIVE STATUS
    69			000014		RPER1=	14	;ERROR 1
    70			000040		RPER2=	40	;ERROR 2
    71			000042		RPER3=	42	;ERROR 3
    72			000032		RPOF=	32	;OFFSET REGISTER
    73			000034		RPDC=	34	;DESIRED CYLINDER REGISTER
    74			000006		RPFC=	6	;MAGTAPE FRAME COUNTER
    75			000032		RPTC=	32	;MAGTAPE TAPE CONTROL
    76
    77			100000		UNV36X=100000	;UNIBUS 36 BIT TRANSFER BIT
    78			040000		UBVBIT==40000	;UNIBUS VALID BIT
    79
    80					;PRE-BOOT AC DEFINITIONS
    81
    82			000001		T1=1		;TEMPS
    83			000002		T2=2
    84			000003		T3=3
    85			000004		T4=4
    86			000005		T5=5
    87
    88			000006		P1=6
    89
    90			000001		PBMADR=1
    91			000002		PBLIM=2
    92			000003		PBBITS=3
    93			000004		PBERR=4
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 4
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0280

    94					SUBTTL	PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK
    95
    96	001000	254 00 0 00 001007 	PBSTRT:!JRST	PBSTAR
    97
    98	001001	254 04 0 00 001001 	PBHLT0:!HALT	.		;TRIED TO OVERLOAD PRE-BOOT
    99	001002	254 04 0 00 001002 	PBHLT1:!HALT	.		;DISK RETRY FAILURE
   100	001003	254 04 0 00 001003 	PBHLT2:!HALT	.		;NO RH-11 BASE ADDRESS
   101	001004	254 04 0 00 001004 	PBHLT3:!HALT	.		;RESERVED
   102
   103	001005	123456	001662		PBPAGP:!123456,,PBPAG		;CODE,,POINTER TO DISK ADR & MEM ADR POINTERS
   104	001006	000000	000000		BC2RES:	0			;BC2 RESTART ADDRESS, 0 FOR DISK
   105
   106					;VERIFY ACCUMULATOR AC0
   107
   108	001007	402 00 0 00 000000 	PBSTAR:!SETZM	0		;SET AC 0 TO ALL ZEROS
   109	001010	332 00 0 00 000000 		SKIPE			;SHOULD CAUSE A SKIP
   110	001011	254 04 0 00 001011 		HALT	.		;ERROR, DIDN'T SKIP
   111	001012	336 00 0 00 000000 		SKIPN			;THIS SHOULD NOT SKIP
   112	001013	334 00 0 00 000000 		SKIPA			;WHICH COMES HERE AND THEN SKIPS
   113	001014	254 04 0 00 001014 		HALT	.		;ERROR, EITHER SKIPN OR SKIPA FAILED
   114	001015	312 00 0 00 001626 		CAME	0,PBZERO
   115	001016	254 04 0 00 001016 		HALT	.		;ERROR, DOES NOT COMPARE
   116
   117	001017	476 00 0 00 000000 		SETOM	0		;SET AC 0 TO ALL ONES
   118	001020	336 00 0 00 000000 		SKIPN			;SHOULD CAUSE A SKIP
   119	001021	254 04 0 00 001021 		HALT	.		;ERROR, DIDN'T SKIP
   120	001022	332 00 0 00 000000 		SKIPE			;THIS SHOULD NOT SKIP
   121	001023	326 00 0 00 001025 		JUMPN	0,.+2		;BUT THIS JUMP SHOULD JUMP
   122	001024	254 04 0 00 001024 		HALT	.		;ERROR, EITHER SKIPE OR JUMPN FAILED
   123	001025	327 00 0 00 001027 		JUMPG	0,.+2		;THIS SHOULD NOT JUMP
   124	001026	321 00 0 00 001030 		JUMPL	0,.+2		;THIS ONE SHOULD JUMP
   125	001027	254 04 0 00 001027 		HALT	.		;ERROR, EITHER JUMPG OR JUMPL FAILED
   126	001030	312 00 0 00 001627 		CAME	0,PBMONE
   127	001031	254 04 0 00 001031 		HALT	.		;ERROR, DOES NOT COMPARE
   128
   129	001032	462 00 0 00 000000 		SETCMM	0		;COMPLEMENT AC0
   130	001033	322 00 0 00 001035 		JUMPE	0,.+2		;THIS JUMP SHOULD JUMP
   131	001034	254 04 0 00 001034 		HALT	.		;ERROR, DATA WRONG OR JUMP DIDN'T JUMP
   132	001035	312 00 0 00 001626 		CAME	0,PBZERO
   133	001036	254 04 0 00 001036 		HALT	.		;ERROR, DOES NOT COMPARE
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 5
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0281

   134
   135					;VERIFY BASIC CPU OPERATION
   136
   137	001037	400 00 0 00 000000 		SETZ	0,		;CLEAR AC0
   138	001040	271 00 0 00 000001 		ADDI	0,1		;ADD ONE
   139	001041	302 00 0 00 000001 		CAIE	0,1		;DID IT ADD CORRECTLY ?
   140	001042	254 04 0 00 001042 		HALT	.		;ERROR, CPU CAN'T ADD
   141	001043	306 00 0 00 000001 		CAIN	0,1		;THIS COMPARE SHOULDN'T SKIP
   142	001044	326 00 0 00 001046 		JUMPN	0,.+2		;BUT THIS JUMP SHOULD
   143	001045	254 04 0 00 001045 		HALT	.		;ERROR, EITHER CAIN OR JUMPN FAILED
   144	001046	321 00 0 00 001050 		JUMPL	0,.+2		;THIS SHOULD NOT JUMP
   145	001047	327 00 0 00 001051 		JUMPG	0,.+2		;THIS ONE SHOULD JUMP
   146	001050	254 04 0 00 001050 		HALT	.		;ERROR, EITHER JUMPL OR JUMPG FAILED
   147
   148	001051	271 00 0 00 000001 		ADDI	0,1		;ADD ONE AGAIN
   149	001052	302 00 0 00 000002 		CAIE	0,2		;SHOULD NOW BE TWO
   150	001053	254 04 0 00 001053 		HALT	.		;ERROR, CPU CAN'T ADD
   151
   152	001054	275 00 0 00 000002 		SUBI	0,2		;SUBTRACT TWO
   153	001055	302 00 0 00 000000 		CAIE	0,0		;SHOULD NOW BE ZERO AGAIN
   154	001056	254 04 0 00 001056 		HALT	.		;ERROR, CPU CAN'T SUBTRACT EITHER
   155
   156	001057	350 00 0 00 000000 		AOS	0		;ADD ONE A DIFFERENT WAY
   157	001060	302 00 0 00 000001 		CAIE	0,1		;THIS SHOULD GIVE A ONE
   158	001061	254 04 0 00 001061 		HALT	.		;ERROR, CPU STILL CAN'T ADD
   159
   160	001062	207 00 0 00 000000 		MOVSS	0,0		;SWAP AC0
   161	001063	312 00 0 00 001630 		CAME	0,PBLONE	;DID IT SWAP CORRECTLY ?
   162	001064	254 04 0 00 001064 		HALT	.		;NO, ERROR
   163
   164	001065	211 00 0 00 002000 		MOVNI	0,2000		;GENERATE A NEGATIVE NUMBER (BOOT WORD COUNT)
   165	001066	312 00 0 00 001631 		CAME	0,PBNEG		;SHOULD GIVE A MINUS 2000
   166	001067	254 04 0 00 001067 		HALT	.		;DIDN'T, ERROR
   167
   168	001070	400 00 0 00 000000 		SETZ	0,		;ZERO AC0
   169	001071	435 00 0 00 140000 		IORI	0,140000	;OR IN SAME BITS AS UBVBIT AND UNV36X
   170	001072	312 00 0 00 001632 		CAME	0,PBIOR		;ARE THE CORRECT BIT SET ?
   171	001073	254 04 0 00 001073 		HALT	.		;NO, ERROR
   172
   173	001074	201 00 0 00 000002 		MOVEI	0,2		;START WITH A TWO
   174	001075	363 00 0 00 001077 		SOJLE	0,.+2		;SUBTRACT ONE BUT SHOULD NOT JUMP
   175	001076	334 00 0 00 000000 		SKIPA			;WHICH SHOULD COME HERE AND SKIP
   176	001077	254 04 0 00 001077 		HALT	.		;ERROR, SOJLE MUST HAVE JUMPED
   177	001100	302 00 0 00 000001 		CAIE	0,1		;DID SUBTRACT WORK ?
   178	001101	254 04 0 00 001101 		HALT	.		;NO, ERROR
   179	001102	363 00 0 00 001104 		SOJLE	0,.+2		;DO IT AGAIN, THIS SHOULD JUMP
   180	001103	254 04 0 00 001103 		HALT	.		;DIDN'T, ERROR
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 6
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0282

   181
   182					;VERIFY BASIC ADDITION
   183
   184	001104	400 00 0 00 000000 		SETZ	0,		;CLEAR AC 0
   185	001105	270 00 0 00 001633 		ADD	0,PBONES	;ADD A SET OF OCTAL ONES
   186	001106	312 00 0 00 001633 		CAME	0,PBONES	;DID IT ADD CORRECTLY ?
   187	001107	254 04 0 00 001107 		HALT	.		;ERROR, CPU CAN'T ADD
   188
   189	001110	270 00 0 00 001633 		ADD	0,PBONES	;ADD A SET OF OCTAL ONES AGAIN
   190	001111	312 00 0 00 001634 		CAME	0,PBTWOS	;SHOULD GIVE A SET OF OCTAL TWOS
   191	001112	254 04 0 00 001112 		HALT	.		;ERROR
   192
   193	001113	270 00 0 00 001633 		ADD	0,PBONES	;ADD AGAIN
   194	001114	312 00 0 00 001635 		CAME	0,PBTHRE	;SHOULD GIVE A SET OF OCTAL THREES
   195	001115	254 04 0 00 001115 		HALT	.		;ERROR
   196
   197	001116	270 00 0 00 001633 		ADD	0,PBONES	;ADD AGAIN
   198	001117	312 00 0 00 001636 		CAME	0,PBFOUR	;SHOULD GIVE A SET OF OCTAL FOURS
   199	001120	254 04 0 00 001120 		HALT	.		;ERROR
   200
   201	001121	270 00 0 00 001633 		ADD	0,PBONES	;ADD AGAIN
   202	001122	312 00 0 00 001637 		CAME	0,PBFIVE	;SHOULD GIVE A SET OF OCTAL FIVES
   203	001123	254 04 0 00 001123 		HALT	.		;ERROR
   204
   205	001124	270 00 0 00 001633 		ADD	0,PBONES	;ADD AGAIN
   206	001125	312 00 0 00 001640 		CAME	0,PBSIX		;SHOULD GIVE A SET OF OCTAL SIXES
   207	001126	254 04 0 00 001126 		HALT	.		;ERROR
   208
   209	001127	270 00 0 00 001633 		ADD	0,PBONES	;ADD AGAIN
   210	001130	312 00 0 00 001627 		CAME	0,PBMONE	;SHOULD GIVE A SET OF OCTAL SEVENS
   211	001131	254 04 0 00 001131 		HALT	.		;ERROR
   212
   213	001132	271 00 0 00 000001 		ADDI	0,1		;ADD JUST A ONE
   214	001133	322 00 0 00 001135 		JUMPE	0,.+2		;COMPARE IT A DIFFERENT WAY
   215	001134	254 04 0 00 001134 		HALT	.		;DIDN'T GIVE A FULL WORD OF ZEROS
   216
   217					;VERIFY AOBJN ADDITION AND JUMP TRANSFER
   218
   219	001135	253 00 0 00 001137 		AOBJN	0,.+2		;ADD 1 TO BOTH HALVES OF THE WORD
   220	001136	312 00 0 00 001641 		CAME	0,PB11		;GIVE THE RIGHT ANSWER AND NO JUMP ?
   221	001137	254 04 0 00 001137 		HALT	.		;NO, ERROR
   222
   223	001140	474 00 0 00 000000 		SETO	0,		;PRESET AC 0 TO -1
   224	001141	253 00 0 00 001143 		AOBJN	0,.+2		;GIVE THE RIGHT ANSWER AND NO JUMP ?
   225	001142	312 00 0 00 001626 		CAME	0,PBZERO
   226	001143	254 04 0 00 001143 		HALT	.		;NO, ERROR
   227
   228	001144	200 00 0 00 001640 		MOVE	0,PBSIX		;VERIFY THAT AOBJN DOES JUMP
   229	001145	253 00 0 00 001147 		AOBJN	0,.+2
   230	001146	254 04 0 00 001146 		HALT	.		;ERROR, DIDN'T DO THE JUMP
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 7
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0283

   231
   232					;VERIFY ACCUMULATOR ADDRESSING
   233
   234	001147	201 00 0 00 000000 		MOVEI	0,0		;LOAD EACH AC WITH ITS OWN ADDRESS
   235	001150	201 01 0 00 000001 		MOVEI	1,1
   236	001151	201 02 0 00 000002 		MOVEI	2,2
   237	001152	201 03 0 00 000003 		MOVEI	3,3
   238	001153	201 04 0 00 000004 		MOVEI	4,4
   239	001154	201 05 0 00 000005 		MOVEI	5,5
   240	001155	201 06 0 00 000006 		MOVEI	6,6
   241	001156	201 07 0 00 000007 		MOVEI	7,7
   242	001157	201 10 0 00 000010 		MOVEI	10,10
   243	001160	201 11 0 00 000011 		MOVEI	11,11
   244	001161	201 12 0 00 000012 		MOVEI	12,12
   245	001162	201 13 0 00 000013 		MOVEI	13,13
   246	001163	201 14 0 00 000014 		MOVEI	14,14
   247	001164	201 15 0 00 000015 		MOVEI	15,15
   248	001165	201 16 0 00 000016 		MOVEI	16,16
   249	001166	201 17 0 00 000017 		MOVEI	17,17
   250
   251	001167	302 17 0 00 000017 		CAIE	17,17		;VERIFY THAT EACH AC ADDRESSES CORRECTLY
   252	001170	254 04 0 00 001170 		HALT	.		;ERROR
   253	001171	302 16 0 00 000016 		CAIE	16,16
   254	001172	254 04 0 00 001172 		HALT	.
   255	001173	302 15 0 00 000015 		CAIE	15,15
   256	001174	254 04 0 00 001174 		HALT	.
   257	001175	302 14 0 00 000014 		CAIE	14,14
   258	001176	254 04 0 00 001176 		HALT	.
   259	001177	302 13 0 00 000013 		CAIE	13,13
   260	001200	254 04 0 00 001200 		HALT	.
   261	001201	302 12 0 00 000012 		CAIE	12,12
   262	001202	254 04 0 00 001202 		HALT	.
   263	001203	302 11 0 00 000011 		CAIE	11,11
   264	001204	254 04 0 00 001204 		HALT	.
   265	001205	302 10 0 00 000010 		CAIE	10,10
   266	001206	254 04 0 00 001206 		HALT	.
   267	001207	302 07 0 00 000007 		CAIE	7,7
   268	001210	254 04 0 00 001210 		HALT	.
   269	001211	302 06 0 00 000006 		CAIE	6,6
   270	001212	254 04 0 00 001212 		HALT	.
   271	001213	302 05 0 00 000005 		CAIE	5,5
   272	001214	254 04 0 00 001214 		HALT	.
   273	001215	302 04 0 00 000004 		CAIE	4,4
   274	001216	254 04 0 00 001216 		HALT	.
   275	001217	302 03 0 00 000003 		CAIE	3,3
   276	001220	254 04 0 00 001220 		HALT	.
   277	001221	302 02 0 00 000002 		CAIE	2,2
   278	001222	254 04 0 00 001222 		HALT	.
   279	001223	302 01 0 00 000001 		CAIE	1,1
   280	001224	254 04 0 00 001224 		HALT	.
   281	001225	302 00 0 00 000000 		CAIE	0,0
   282	001226	254 04 0 00 001226 		HALT	.
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 8
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0284

   283
   284					;VERIFY ACCUMULATOR INDEXING
   285
   286	001227	312 01 0 01 000000 		CAME	1,(1)		;SHOULD COMPARE AC1 AGAINST CONTENTS OF AC1
   287	001230	254 04 0 00 001230 		HALT	.		;ERROR
   288	001231	312 02 0 02 000000 		CAME	2,(2)
   289	001232	254 04 0 00 001232 		HALT	.
   290	001233	312 03 0 03 000000 		CAME	3,(3)
   291	001234	254 04 0 00 001234 		HALT	.
   292	001235	312 04 0 04 000000 		CAME	4,(4)
   293	001236	254 04 0 00 001236 		HALT	.
   294	001237	312 05 0 05 000000 		CAME	5,(5)
   295	001240	254 04 0 00 001240 		HALT	.
   296	001241	312 06 0 06 000000 		CAME	6,(6)
   297	001242	254 04 0 00 001242 		HALT	.
   298	001243	312 07 0 07 000000 		CAME	7,(7)
   299	001244	254 04 0 00 001244 		HALT	.
   300	001245	312 10 0 10 000000 		CAME	10,(10)
   301	001246	254 04 0 00 001246 		HALT	.
   302	001247	312 11 0 11 000000 		CAME	11,(11)
   303	001250	254 04 0 00 001250 		HALT	.
   304	001251	312 12 0 12 000000 		CAME	12,(12)
   305	001252	254 04 0 00 001252 		HALT	.
   306	001253	312 13 0 13 000000 		CAME	13,(13)
   307	001254	254 04 0 00 001254 		HALT	.
   308	001255	312 14 0 14 000000 		CAME	14,(14)
   309	001256	254 04 0 00 001256 		HALT	.
   310	001257	312 15 0 15 000000 		CAME	15,(15)
   311	001260	254 04 0 00 001260 		HALT	.
   312	001261	312 16 0 16 000000 		CAME	16,(16)
   313	001262	254 04 0 00 001262 		HALT	.
   314	001263	312 17 0 17 000000 		CAME	17,(17)
   315	001264	254 04 0 00 001264 		HALT	.
   316
   317					;VERIFY INDIRECT ADDRESSING
   318
   319	001265	200 00 1 00 000017 		MOVE	0,@17		;FETCH THE CONTENTS OF AC17
   320	001266	302 00 0 00 000017 		CAIE	0,17		;SHOULD BE 17
   321	001267	254 04 0 00 001267 		HALT	.		;WASN'T, ERROR
   322
   323					;VERIFY INDIRECT AND INDEXING
   324
   325	001270	200 00 1 03 000004 		MOVE	0,@4(3)		;SHOULD FETCH THE CONTENTS OF AC7
   326	001271	302 00 0 00 000007 		CAIE	0,7		;CONTENTS OF 4 PLUS CONTENTS OF 3
   327	001272	254 04 0 00 001272 		HALT	.		;DIDN'T, ERROR
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 9
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0285

   328
   329					;VERIFY ACCUMULATOR AC17
   330
   331	001273	402 00 0 00 000017 		SETZM	17		;SET ZEROS TO AC17
   332	001274	312 17 0 00 001626 		CAME	17,PBZERO	;IS IT CORRECT ?
   333	001275	254 04 0 00 001275 		HALT	.		;NO, COULD BE ABOUT ANYTHING
   334
   335	001276	476 00 0 00 000017 		SETOM	17		;SET ONES TO AC17
   336	001277	312 17 0 00 001627 		CAME	17,PBMONE	;IS IT CORRECT ?
   337	001300	254 04 0 00 001300 		HALT	.		;NO, COULD BE ABOUT ANYTHING
   338
   339					;VERIFY ACCUMULATOR DATA STORAGE
   340
   341	001301	205 17 0 00 777761 		MOVSI	17,-17
   342	001302	312 17 0 00 001642 		CAME	17,PB17		;DID MOVE SWAPPED IMMEDIATE WORK ?
   343	001303	254 04 0 00 001303 		HALT	.		;NO, ERROR
   344
   345	001304	476 00 0 17 000000 		SETOM	(17)		;SET ONES TO AC'S 0 TO 16
   346	001305	253 17 0 00 001304 		AOBJN	17,.-1
   347
   348	001306	205 17 0 00 777761 		MOVSI	17,-17
   349	001307	462 00 0 17 000000 		SETCMM	(17)		;COMPLEMENT AC, SHOULD THEN BE ZERO
   350	001310	332 00 0 17 000000 		SKIPE	(17)
   351	001311	254 04 0 00 001311 		HALT	.		;WASN'T, STILL COULD BE ABOUT ANYTHING
   352	001312	253 17 0 00 001307 		AOBJN	17,.-3
   353	001313	402 00 0 00 000017 		SETZM	17
   354
   355					;VERIFY SUBROUTINE CALLING
   356
   357	001314	254 02 1 00 001315 		JRSTF	@.+1		;CLEAR PROCESSOR FLAGS
   358	001315	000000	001316				0,,.+1
   359	001316	264 00 0 00 001321 		JSR	.+3		;TRANSFER TO SUBROUTINE
   360	001317	254 04 0 00 001317 	PBJSR:!	HALT	.		;DIDN'T TRANSFER
   361
   362	001320	254 00 0 00 001327 		JRST	.+7		;CONTINUE AFTER SUBROUTINE FROM HERE
   363
   364	001321	000000	000000			0			;SAVED PC STORAGE
   365	001322	200 00 0 00 001321 		MOVE	0,.-1		;GET SAVED PC
   366	001323	312 00 0 00 001643 		CAME	0,PBSPC		;DID CORRECT PC GET STORED ?
   367	001324	254 04 0 00 001324 		HALT	.		;NO, ERROR
   368	001325	350 00 0 00 001321 		AOS	PBJSR+2		;PLUS ONE TO PC TO SKIP HALT
   369	001326	254 02 1 00 001321 		JRSTF	@PBJSR+2	;NOW CONTINUE BACK IN MAINLINE
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 10
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0286

   370
   371					;VERIFY BIT TESTS USED IN PRE-BOOT
   372
   373	001327	201 00 0 00 000200 		MOVEI	0,200		;SAME BIT AS DISK READY
   374	001330	606 00 0 00 000200 		TRNN	0,200		;SHOULD SKIP
   375	001331	254 04 0 00 001331 		HALT	.		;ERROR, DIDN'T
   376	001332	602 00 0 00 000200 		TRNE	0,200		;SHOULD NOT SKIP
   377	001333	324 00 0 00 001335 		JUMPA	.+2		;WHICH COMES HERE AND JUMPA SHOULD JUMP
   378	001334	254 04 0 00 001334 		HALT	.		;EITHER TRNE OR JUMPA FAILED
   379	001335	302 00 0 00 000200 		CAIE	0,200		;DO IMMEDIATE MODE COMPARE
   380	001336	254 04 0 00 001336 		HALT	.		;ERROR, DOES NOT COMPARE
   381
   382	001337	201 00 0 00 040000 		MOVEI	0,40000		;SAME BIT AS TRE ERROR
   383	001340	606 00 0 00 040000 		TRNN	0,40000		;SHOULD SKIP
   384	001341	254 04 0 00 001341 		HALT	.		;ERROR, DIDN'T
   385	001342	602 00 0 00 040000 		TRNE	0,40000		;SHOULD NOT SKIP
   386	001343	324 00 0 00 001345 		JUMPA	.+2		;WHICH COMES HERE AND JUMPA SHOULD JUMP
   387	001344	254 04 0 00 001344 		HALT	.		;EITHER TRNE OR JUMPA FAILED
   388	001345	302 00 0 00 040000 		CAIE	0,40000		;DO IMMEDIATE MODE COMPARE
   389	001346	254 04 0 00 001346 		HALT	.		;ERROR, DOES NOT COMPARE
   390
   391					;SAVE BOOT DISK PARAMETERS
   392
   393	001347	200 00 0 00 000036 		MOVE	0,MSRH		;GET DISK ADDRESS
   394	001350	202 00 0 00 001655 		MOVEM	0,PBRHSV
   395	001351	336 00 0 00 000000 		SKIPN	0
   396	001352	254 00 0 00 001003 		JRST	PBHLT2		;NO RH-11 BASE ADDRESS ?
   397	001353	502 00 0 00 001660 		HLLM	0,PBUBP0	;SETUP UBA MAP POINTER
   398	001354	502 00 0 00 001661 		HLLM	0,PBUBST	;SETUP UBA STATUS POINTER
   399
   400	001355	200 00 0 00 000031 		MOVE	0,KPALIVE
   401	001356	202 00 0 00 001654 		MOVEM	0,PBKPAL	;SAVE KEEP-ALIVE WORD
   402
   403	001357	200 00 0 00 000037 		MOVE	0,MSDRIVE
   404	001360	202 00 0 00 001656 		MOVEM	0,PBDRSV	;SAVE DRIVE SELECTION
   405
   406					;VERIFY XOR INSTRUCTION
   407
   408	001361	400 00 0 00 000000 		SETZ	0,		;XOR 0 WITH 0
   409	001362	430 00 0 00 000000 		XOR	0,0
   410	001363	302 00 0 00 000000 		CAIE	0,0		;SHOULD GIVE ALL ZEROS
   411	001364	254 04 0 00 001364 		HALT	.		;DIDN'T, ERROR
   412
   413	001365	474 00 0 00 000000 		SETO	0,		;XOR -1 WITH -1
   414	001366	430 00 0 00 000000 		XOR	0,0
   415	001367	302 00 0 00 000000 		CAIE	0,0		;SHOULD GIVE ALL ZEROS
   416	001370	254 04 0 00 001370 		HALT	.		;DIDN'T, ERROR
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 11
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0287

   417
   418	001371	474 01 0 00 000000 		SETO	1,		;ALL ONES TO AC1
   419	001372	430 00 0 00 000001 		XOR	0,1		;XOR 0 AND -1
   420	001373	312 00 0 00 001627 		CAME	0,PBMONE	;SHOULD GIVE ALL ONES
   421	001374	254 04 0 00 001374 		HALT	.		;DIDN'T, ERROR
   422
   423	001375	400 01 0 00 000000 		SETZ	1,		;ALL ZEROS TO AC1
   424	001376	430 00 0 00 000001 		XOR	0,1		;XOR -1 AND 0
   425	001377	312 00 0 00 001627 		CAME	0,PBMONE	;SHOULD GIVE ALL ONES
   426	001400	254 04 0 00 001400 		HALT	.		;DIDN'T, ERROR
   427
   428					;VERIFY MEMORY FROM 20 TO 777
   429
   430	001401	201 01 0 00 000020 		MOVEI	PBMADR,20	;TEST MEMORY 20 TO 777 FOR ONES
   431	001402	201 02 0 00 000777 		MOVEI	PBLIM,777
   432	001403	476 00 0 00 000003 		SETOM	PBBITS
   433	001404	264 00 0 00 001430 		JSR	PBTST1		;DO MEMORY TEST
   434
   435	001405	201 01 0 00 000020 		MOVEI	PBMADR,20	;TEST MEMORY 20 TO 777 FOR ADDRESS
   436	001406	201 02 0 00 000777 		MOVEI	PBLIM,777
   437	001407	264 00 0 00 001441 		JSR	PBTST2		;DO MEMORY TEST
   438
   439	001410	201 01 0 00 000020 		MOVEI	PBMADR,20	;TEST MEMORY 20 TO 777 FOR ZEROS
   440	001411	201 02 0 00 000777 		MOVEI	PBLIM,777
   441	001412	402 00 0 00 000003 		SETZM	PBBITS
   442	001413	264 00 0 00 001430 		JSR	PBTST1		;DO MEMORY TEST
   443
   444					;VERIFY MEMORY FROM 2000 TO END OF 32K
   445
   446	001414	201 01 0 00 002000 		MOVEI	PBMADR,2000	;TEST MEMORY 2000 TO 77777 FOR ONES
   447	001415	201 02 0 00 077777 		MOVEI	PBLIM,77777
   448	001416	476 00 0 00 000003 		SETOM	PBBITS
   449	001417	264 00 0 00 001430 		JSR	PBTST1		;DO MEMORY TEST
   450
   451	001420	201 01 0 00 002000 		MOVEI	PBMADR,2000	;TEST MEMORY 2000 TO 77777 FOR ADDRESS
   452	001421	201 02 0 00 077777 		MOVEI	PBLIM,77777
   453	001422	264 00 0 00 001441 		JSR	PBTST2		;DO MEMORY TEST
   454
   455	001423	201 01 0 00 002000 		MOVEI	PBMADR,2000	;TEST MEMORY 2000 TO 77777 FOR ZEROS
   456	001424	201 02 0 00 077777 		MOVEI	PBLIM,77777
   457	001425	402 00 0 00 000003 		SETZM	PBBITS
   458	001426	264 00 0 00 001430 		JSR	PBTST1		;DO MEMORY TEST
   459
   460	001427	254 00 0 00 001452 		JRST	PBSTA1		;NOW GO LOAD FROM DISK
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 12
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0288

   461
   462					;MEMORY DATA SUBROUTINE
   463
   464	001430	000000	000000		PBTST1:!	0
   465	001431	202 03 0 01 000000 		MOVEM	PBBITS,(PBMADR)	;MOVE DATA TO MEMORY
   466	001432	200 04 0 01 000000 		MOVE	PBERR,(PBMADR)	;READ DATA BACK FROM MEMORY
   467	001433	430 04 0 00 000003 		XOR	PBERR,PBBITS	;XOR DATA, WILL BE ZERO IF NO ERROR
   468	001434	322 04 0 00 001436 		JUMPE	PBERR,.+2
   469	001435	254 04 0 00 001435 		HALT	.		;MEMORY DATA ERROR
   470	001436	305 01 0 02 000000 		CAIGE	PBMADR,(PBLIM)	;COMPLETED MEMORY SECTION ?
   471	001437	344 01 0 00 001431 		AOJA	PBMADR,PBTST1+1	;NO, CONTINUE TO NEXT ADDRESS
   472	001440	254 02 1 00 001430 		JRSTF	@PBTST1		;YES, RETURN TO MAIN LINE
   473
   474					;MEMORY ADDRESS SUBROUTINE
   475
   476	001441	000000	000000		PBTST2:!	0
   477	001442	200 03 0 00 000001 		MOVE	PBBITS,PBMADR	;SETUP ADDRESS AS TEST DATA
   478	001443	202 03 0 01 000000 		MOVEM	PBBITS,(PBMADR)	;MOVE DATA TO MEMORY
   479	001444	200 04 0 01 000000 		MOVE	PBERR,(PBMADR)	;READ DATA BACK FROM MEMORY
   480	001445	312 03 0 00 000004 		CAME	PBBITS,PBERR	;DATA WILL BE THE SAME IF NO ERROR
   481	001446	254 04 0 00 001446 		HALT	.		;MEMORY DATA ERROR
   482	001447	305 01 0 02 000000 		CAIGE	PBMADR,(PBLIM)	;COMPLETED MEMORY SECTION ?
   483	001450	344 01 0 00 001442 		AOJA	PBMADR,PBTST2+1	;NO, CONTINUE TO NEXT ADDRESS
   484	001451	254 02 1 00 001441 		JRSTF	@PBTST2		;YES, RETURN TO MAIN LINE
   485
   486					;NOW GO LOAD LOAD FROM THE DISK
   487
   488	001452	200 06 0 00 001655 	PBSTA1:!MOVE	P1,PBRHSV
   489
   490	001453	201 01 0 00 000040 		MOVEI	T1,RHCLR
   491	001454	713 01 0 06 000010 		WRIO	T1,RPCS2(P1)	;CLEAR CONTROLLER
   492
   493	001455	200 01 0 00 001656 		MOVE	T1,PBDRSV
   494	001456	713 01 0 06 000010 		WRIO	T1,RPCS2(P1)	;SELECT DRIVE
   495
   496	001457	201 01 0 00 000021 		MOVEI	T1,RIPST	;DO READIN PRESET
   497	001460	713 01 0 06 000000 		WRIO	T1,RPCS1(P1)	;WRITE REGISTER
   498	001461	712 02 0 06 000012 		RDIO	T2,RPDS(P1)	;CHECK READY?
   499	001462	606 02 0 00 000200 		TRNN	T2,RDY		;WAIT FOR READY
   500	001463	254 00 0 00 001461 		JRST	.-2		;NO -- CONTINUE WAIT
   501
   502	001464	201 03 0 00 001662 		MOVEI	T3,PBPAG	;FIND THE OFFSET STUFF
   503	001465	201 05 0 00 000012 		MOVEI	T5,^D10		;SET RETRY COUNT
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 13
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0289

   504
   505					;READ BOOT PAGES FROM THE DISK INTO MEMORY
   506
   507	001466	200 04 0 03 000000 	PBREAD:!MOVE	T4,0(T3)	;FIND THE DISK ADDRESS
   508	001467	321 04 0 00 001566 		JUMPL	T4,PBDONE	;QUIT IF ALL DONE WITH PAGES
   509
   510	001470	350 00 0 00 000003 		AOS	T3		;POINT TO BLOCK ENTRIES
   511	001471	713 04 0 06 000006 		WRIO	T4,RPDA(P1)	;SET DISK ADDRESS
   512	001472	207 00 0 00 000004 		MOVSS	T4		;FIND CYL ADDRESS
   513	001473	713 04 0 06 000034 		WRIO	T4,RPDC(P1)	;SET CYL ADDRESS
   514
   515	001474	211 04 0 00 002000 		MOVNI	T4,2000		;READ A PAGE (WORD COUNT)
   516	001475	713 04 0 06 000002 		WRIO	T4,RPWC(P1)	;SET WORD COUNT
   517
   518	001476	400 04 0 00 000000 		SETZ	T4,		;CLEAR CURRENT ADDRESS REGISTER
   519	001477	713 04 0 06 000004 		WRIO	T4,RPBA(P1)	;SET UNIBUS ADDRESS TO 0
   520
   521	001500	200 04 0 03 000000 		MOVE	T4,0(T3)	;FIND THE CORE ADDRESS
   522	001501	350 00 0 00 000003 		AOS	T3		;POINT TO NEXT ENTRY
   523	001502	306 04 0 00 000001 		CAIN	T4,1		;CAN'T OVERLOAD PRE-BOOT
   524	001503	254 00 0 00 001524 		JRST	PBBADR		;PAGE 1 REQUESTED TO BE LOADED ?
   525
   526	001504	435 04 0 00 140000 		IORI	T4,UBVBIT!UNV36X
   527	001505	713 04 1 00 001660 		WRIO	T4,@PBUBP0	;SET UP UNIBUS ADAPTOR PAGE 0
   528
   529	001506	201 04 0 00 000071 		MOVEI	T4,RDATA	;SET GO
   530	001507	713 04 0 06 000000 		WRIO	T4,RPCS1(P1)	;WAIT FOR GO
   531	001510	712 04 0 06 000000 		RDIO	T4,RPCS1(P1)
   532	001511	606 04 0 00 000200 		TRNN	T4,RDY
   533	001512	254 00 0 00 001510 		JRST	.-2		;HO HUM WAIT
   534
   535	001513	606 04 0 00 060000 		TRNN	T4,TRE!MCPE	;CHECK ERROR CONDITION SUMMARY
   536	001514	254 00 0 00 001466 		JRST	PBREAD		;DO NEXT PAGE
   537
   538	001515	275 03 0 00 000002 		SUBI	T3,2		;BACKUP TO SAME ENTRY
   539	001516	363 05 0 00 001527 		SOJLE	T5,PBFAIL	;TRY AGAIN TILL RETRY RUNS OUT
   540
   541					;DISK ERROR RETRY
   542
   543	001517	201 01 0 00 000040 	PBRTRY:!MOVEI	T1,RHCLR	;ERROR, CLEAR & TRY AGAIN
   544	001520	713 01 0 06 000010 		WRIO	T1,RPCS2(P1)	;CLEAR CONTROLLER
   545
   546	001521	200 01 0 00 001656 		MOVE	T1,PBDRSV
   547	001522	713 01 0 06 000010 		WRIO	T1,RPCS2(P1)	;SELECT DRIVE
   548
   549	001523	254 00 0 00 001466 		JRST	PBREAD		;TRY AGAIN
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 14
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0290

   550
   551					;PRE-BOOT ERROR, TRIED TO OVERLOAD PAGE 1
   552
   553	001524	201 17 0 00 001001 	PBBADR:!MOVEI	17,PBHLT0	;SET HALT ADDRESS
   554	001525	275 03 0 00 000002 		SUBI	T3,2		;POINT TO FAILING ENTRY
   555	001526	254 00 0 00 001530 		JRST	.+2
   556
   557					;PRE-BOOT ERROR, DISK TRANSFER ERROR AND EXCEEDED RETRY LIMIT
   558
   559	001527	201 17 0 00 001002 	PBFAIL:!MOVEI	17,PBHLT1	;SET HALT ADDRESS
   560	001530	200 00 0 03 000000 		MOVE	(T3)
   561	001531	202 00 0 00 000100 		MOVEM	100		;SAVE 8080 DISK ADDRESS
   562	001532	200 00 0 03 000001 		MOVE	1(T3)
   563	001533	202 00 0 00 000101 		MOVEM	101		;SAVE MEMORY PAGE ADDRESS
   564
   565	001534	202 03 0 00 000102 		MOVEM	T3,102		;SAVE SELECTION PICKUP POINTER
   566
   567	001535	712 00 0 06 000000 		RDIO	RPCS1(P1)
   568	001536	202 00 0 00 000103 		MOVEM	103		;SAVE CONTROL AND STATUS 1
   569	001537	712 00 0 06 000010 		RDIO	RPCS2(P1)
   570	001540	202 00 0 00 000104 		MOVEM	104		;SAVE CONTROL AND STATUS 2
   571	001541	712 00 0 06 000012 		RDIO	RPDS(P1)
   572	001542	202 00 0 00 000105 		MOVEM	105		;SAVE DRIVE STATUS
   573	001543	712 00 0 06 000014 		RDIO	RPER1(P1)
   574	001544	202 00 0 00 000106 		MOVEM	106		;SAVE ERROR 1
   575	001545	712 00 0 06 000040 		RDIO	RPER2(P1)
   576	001546	202 00 0 00 000107 		MOVEM	107		;SAVE ERROR 2
   577	001547	712 00 0 06 000042 		RDIO	RPER3(P1)
   578	001550	202 00 0 00 000110 		MOVEM	110		;SAVE ERROR 3
   579
   580	001551	712 00 1 00 001660 		RDIO	@PBUBP0
   581	001552	202 00 0 00 000111 		MOVEM	111		;SAVE UBA PAGING RAM LOC 0
   582	001553	712 00 1 00 001661 		RDIO	@PBUBST
   583	001554	202 00 0 00 000112 		MOVEM	112		;SAVE UBA STATUS REG
   584
   585	001555	200 00 0 00 001657 		MOVE	PBVER
   586	001556	202 00 0 00 000113 		MOVEM	113		;SAVE PRE-BOOT VERSION
   587
   588	001557	200 00 0 00 001655 		MOVE	PBRHSV
   589	001560	202 00 0 00 000036 		MOVEM	MSRH		;REINSTALL RH-11 BASE ADDRESS
   590	001561	200 00 0 00 001656 		MOVE	PBDRSV
   591	001562	202 00 0 00 000037 		MOVEM	MSDRIVE		;REINSTALL DRIVE NUMBER
   592	001563	200 00 0 00 001654 		MOVE	PBKPAL
   593	001564	202 00 0 00 000031 		MOVEM	KPALIVE		;REINSTALL KEEP-ALIVE
   594
   595	001565	254 00 1 00 000017 		JRST	@17		;HALT AT APPROPRIATE HALT
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 15
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0291

   596
   597					;CLEAR ALL ACCUMULATOR BLOCKS
   598
   599	001566	200 00 0 03 000001 	PBDONE:!MOVE	1(T3)		;GET START ADDRESS
   600	001567	202 00 0 00 000020 		MOVEM	20		;SAVE
   601
   602	001570	701 03 0 00 001644 		WRUBR	PBACB7
   603	001571	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 7
   604
   605	001572	701 03 0 00 001645 		WRUBR	PBACB6
   606	001573	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 6
   607
   608	001574	701 03 0 00 001646 		WRUBR	PBACB5
   609	001575	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 5
   610
   611	001576	701 03 0 00 001647 		WRUBR	PBACB4
   612	001577	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 4
   613
   614	001600	701 03 0 00 001650 		WRUBR	PBACB3
   615	001601	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 3
   616
   617	001602	701 03 0 00 001651 		WRUBR	PBACB2
   618	001603	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 2
   619
   620	001604	701 03 0 00 001652 		WRUBR	PBACB1
   621	001605	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 1
   622
   623	001606	701 03 0 00 001653 		WRUBR	PBACB0
   624	001607	264 00 0 00 001620 		JSR	PBWRAC		;CLEAR AC BLOCK 0
   625
   626					;REINSTALL 8080 PARAMETERS
   627
   628	001610	200 00 0 00 001655 		MOVE	PBRHSV
   629	001611	202 00 0 00 000036 		MOVEM	MSRH		;REINSTALL RH-11 BASE ADDRESS
   630	001612	200 00 0 00 001656 		MOVE	PBDRSV
   631	001613	202 00 0 00 000037 		MOVEM	MSDRIVE		;REINSTALL DRIVE NUMBER
   632	001614	200 00 0 00 001654 		MOVE	PBKPAL
   633	001615	202 00 0 00 000031 		MOVEM	KPALIVE		;REINSTALL KEEP-ALIVE
   634
   635					;NOW START CODE JUST READ IN
   636
   637	001616	400 00 0 00 000000 		SETZ
   638	001617	254 00 1 00 000020 		JRST	@20		;NOW START BOOT
   639
   640					;AC BLOCK CLEAR SUBROUTINE
   641
   642	001620	000000	000000		PBWRAC:!0
   643	001621	205 17 0 00 777761 		MOVSI	17,-17
   644	001622	402 00 0 17 000000 		SETZM	(17)		;ZERO AC'S
   645	001623	253 17 0 00 001622 		AOBJN	17,.-1
   646	001624	402 00 0 00 000017 		SETZM	17
   647	001625	254 02 1 00 001620 		JRSTF	@PBWRAC
SMPREB	DECSYSTEM 2020 DIAGNOSTICS PRE-BOOT PROGRAM, VER 0,2	MACRO %53(1020) 10:57 19-Feb-79 Page 16
SMPREB	MAC	27-Oct-78 11:53		PRE-BOOT PROGRAM TO BE WRITTEN ON THE DISK                                         SEQ 0292

   648
   649					;PRE-BOOT PARAMETERS AND STORAGE
   650
   651	001626	000000	000000		PBZERO:!0			;CONSTANT ZERO TEST WORD
   652	001627	777777	777777		PBMONE:!-1			;CONSTANT ONE TEST WORD
   653	001630	000001	000000		PBLONE:!1,,0			;CONSTANT LEFT HALF ONE
   654	001631	777777	776000		PBNEG:!	-2000			;CONSTANT MINUS 2000
   655	001632	000000	140000		PBIOR:!	0,,140000		;CONSTANT FOR IORI CHECK
   656	001633	111111	111111		PBONES:!111111,,111111		;CONSTANT ONES TEST WORD
   657	001634	222222	222222		PBTWOS:!222222,,222222		;CONSTANT TWOS TEST WORD
   658	001635	333333	333333		PBTHRE:!333333,,333333		;CONSTANT THREES TEST WORD
   659	001636	444444	444444		PBFOUR:!444444,,444444		;CONSTANT FOURS TEST WORD
   660	001637	555555	555555		PBFIVE:!555555,,555555		;CONSTANT FIVES TEST WORD
   661	001640	666666	666666		PBSIX:!	666666,,666666		;CONSTANT SIXES TEST WORD
   662	001641	000001	000001		PB11:!	1,,1			;CONSTANT ONE IN EACH HALF
   663	001642	777761	000000		PB17:!	-17,,0			;CONSTANT AC'S AOBJN POINTER
   664	001643	000000	001317		PBSPC:!	0,,PBJSR		;CONSTANT FOR SUBROUTINE TEST PC
   665
   666	001644	407000	000000		PBACB7:!	1B0!7B8		;WRUBR ARGUMENTS
   667	001645	406000	000000		PBACB6:!	1B0!6B8
   668	001646	405000	000000		PBACB5:!	1B0!5B8
   669	001647	404000	000000		PBACB4:!	1B0!4B8
   670	001650	403000	000000		PBACB3:!	1B0!3B8
   671	001651	402000	000000		PBACB2:!	1B0!2B8
   672	001652	401000	000000		PBACB1:!	1B0!1B8
   673	001653	400000	000000		PBACB0:!	1B0!0B8
   674
   675	001654	000000	000000		PBKPAL:!	0		;KEEP-ALIVE & STATUS WORD
   676	001655	000000	000000		PBRHSV:!	0		;RH-11 BASE ADDRESS
   677	001656	000000	000000		PBDRSV:!	0		;DRIVE NUMBER
   678
   679	001657	000000	000002		PBVER:!	MCNVER,,DECVER		;PRE-BOOT VERSION
   680
   681	001660	000001	763000		PBUBP0:!	1,,763000	;ADDRESS OF FIRST WINDOW
   682	001661	000001	763100		PBUBST:!	1,,763100	;ADDRESS OF UBA STATUS
   683
   684	001662				SMPBPG:
   685	001662	000000	000000		PBPAG:!		0		;DISK ADDRESS AND MEMORY ADDRESS POINTERS
   686	001663				PBPAGX:!	BLOCK	114	;STORAGE BLOCK
   687	000777'					DEPHASE
   688	000777'	000000	000000		SMPEND:	0			;ENDING REFERENCE ADDRESS
   689						END

NO ERRORS DETECTED

PROGRAM BREAK IS 001000
CPU TIME USED 00:02.255

18P CORE USED

BC2RES	   104#
BOORG	    37#                                                                                                            SEQ 0293
DECVER	     4#	    10	   679
FMT22	    57#
KPALIV	    46#	   400	   593	   633
MCNVER	     3#	    10	   679
MCPE	    54#	   535
MSDRIV	    48#	   403	   591	   631
MSRH	    47#	   393	   589	   629
MSSLAV	    49#
P1	    88#	   488	   491	   494	   497	   498	   511	   513	   516	   519	   530	   531	   544	   547
	   567	   569	   571	   573	   575	   577
PB11	   220	   662#
PB17	   342	   663#
PBACB0	   623	   673#
PBACB1	   620	   672#
PBACB2	   617	   671#
PBACB3	   614	   670#
PBACB4	   611	   669#
PBACB5	   608	   668#
PBACB6	   605	   667#
PBACB7	   602	   666#
PBBADR	   524	   553#
PBBITS	    92#	   432	   441	   448	   457	   465	   467	   477	   478	   480
PBDONE	   508	   599#
PBDRSV	   404	   493	   546	   590	   630	   677#
PBERR	    93#	   466	   467	   468	   479	   480
PBFAIL	   539	   559#
PBFIVE	   202	   660#
PBFOUR	   198	   659#
PBHLT0	    98#	   553
PBHLT1	    99#	   559
PBHLT2	   100#	   396
PBHLT3	   101#
PBIOR	   170	   655#
PBJSR	   360#	   368	   369	   664
PBKPAL	   401	   592	   632	   675#
PBLIM	    91#	   431	   436	   440	   447	   452	   456	   470	   482
PBLONE	   161	   653#
PBMADR	    90#	   430	   435	   439	   446	   451	   455	   465	   466	   470	   471	   477	   478	   479
	   482	   483
PBMONE	   126	   210	   336	   420	   425	   652#
PBNEG	   165	   654#
PBONES	   185	   186	   189	   193	   197	   201	   205	   209	   656#
PBPAG	   103	   502	   685#
PBPAGP	   103#
PBPAGX	   686#
PBREAD	   507#	   536	   549
PBRHSV	   394	   488	   588	   628	   676#
PBRTRY	   543#
PBSIX	   206	   228	   661#
PBSPC	   366	   664#
PBSTA1	   460	   488#
PBSTAR	    96	   108#
PBSTRT	    96#                                                                                                            SEQ 0294
PBTHRE	   194	   658#
PBTST1	   433	   442	   449	   458	   464#	   471	   472
PBTST2	   437	   453	   476#	   483	   484
PBTWOS	   190	   657#
PBUBP0	   397	   527	   580	   681#
PBUBST	   398	   582	   682#
PBVER	   585	   679#
PBWRAC	   603	   606	   609	   612	   615	   618	   621	   624	   642#	   647
PBZERO	   114	   132	   225	   332	   651#
RDATA	    52#	   529
RDY	    53#	   499	   532
RHCLR	    59#	   490	   543
RIPST	    51#	   496
RPBA	    65#	   519
RPCS1	    63#	   497	   530	   531	   567
RPCS2	    67#	   491	   494	   544	   547	   569
RPDA	    66#	   511
RPDC	    73#	   513
RPDS	    68#	   498	   571
RPER1	    69#	   573
RPER2	    70#	   575
RPER3	    71#	   577
RPFC	    74#
RPOF	    72#
RPTC	    75#
RPWC	    64#	   516
SC	    56#
SMPBPG	   684#
SMPEND	    20	   688#
SMPREB	    18	    19#
T1	    82#	   490	   491	   493	   494	   496	   497	   543	   544	   546	   547
T2	    83#	   498	   499
T3	    84#	   502	   507	   510	   521	   522	   538	   554	   560	   562	   565	   599
T4	    85#	   507	   508	   511	   512	   513	   515	   516	   518	   519	   521	   523	   526	   527
	   529	   530	   531	   532	   535
T5	    86#	   503	   539
TRE	    55#	   535
UBAP0	    43#
UBSTAT	    44#
UBVBIT	    78#	   526
UNV36X	    77#	   526

NAME	     7#	    10
RDIO	    40#	   498	   531	   567	   569	   571	   573	   575	   577	   580	   582                             SEQ 0295
WRIO	    41#	   491	   494	   497	   511	   513	   516	   519	   527	   530	   544	   547
WRUBR	    39#	   602	   605	   608	   611	   614	   617	   620	   623
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 1
GSCN	MAC	22-May-78 10:53		KEYBOARD INTERFACE                                                                 SEQ 0296

     1					TITLE GSCN  --  Command Scanner Interface for DIAGNOSTICS
     2
     3							SEARCH	GLXMAC		;OPEN SYMBOLS NEEDED
     4							SEARCH	MACTEN
     5							SEARCH	UUOSYM
     6
     7						SALL
     8					;This module emulates the command scanning and text input routines found
     9					;	in the TOPS-20 operating system. (Somewhat)
    10
    11					;SPECIAL DIAGNOSTIC DEFINITIONS, OVERRIDE GLXMAC
    12
    13			000100		.PRIIN=100
    14			000101		.PRIOU=101
    15
    16			000002		.FDSTR=2	;STRUCTURE
    17			000003		.FDPPN=3	;PPN
    18			000004		.FDNAM=4	;NAME
    19			000005		.FDEXT=5	;EXT
    20
    21		100000	000000		GJ%OLD=1B2
    22
    23		260740	000000		OPDEF	GO	[PUSHJ	P,]
    24		263740	000000		OPDEF	RTN	[POPJ	P,]
    25		261740	000000		OPDEF	PUT	[PUSH	P,]
    26		262740	000000		OPDEF	GETIT	[POP	P,]
    27
    28					EXTERN	$CCLIN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 2
GSCN	MAC	22-May-78 10:53		Table of Contents                                                                  SEQ 0297

    29					SUBTTL Table of Contents
    30
    31					;               TABLE OF CONTENTS FOR GLXSCN
    32					;
    33					;
    34					;                        SECTION                                   PAGE
    35					;    1. Table of Contents.........................................   2
    36					;    2. Local Definitions.........................................   3
    37					;    3. Module Storage............................................   4
    38					;    4. S%INIT  --  Initialization of the Scanning Module.........   5
    39					;    5. S%RCOC  --  Read Character  Output Control table..........   6
    40					;    6. S%WCOC  --  Write Character  Output Control table.........   6
    41					;    7. S%STYP  --  Set terminal type.............................   7
    42					;    8. S%TXTI  --  Handle Terminal Input.........................   8
    43					;    9. TXTL  --  Loop for inputting text.........................   9
    44					;   10. Utilities for text handling...............................  10
    45					;   11. SPCHK  --  Check for special characters...................  15
    46					;   12. CCU  --  Handle ^U (Rubout entire line)...................  16
    47					;   13. CCR  --  Handle ^R (Re-type the line).....................  17
    48					;   14. CCDEL  --  Handle Rubout (Delete one character)...........  18
    49					;   15. CCW  --  Handle ^W (Delete back to punctuation character).  19
    50					;   16. BEGBUF  --  Handle rubouts to beginning of buffer.........  19
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 3
GSCN	MAC	22-May-78 10:53		Revision History                                                                   SEQ 0298

    51					SUBTTL	Revision History
    52
    53
    54					COMMENT \
    55
    56					Edit	SPR/QAR/GCO	Reason
    57					----	-----------	-------------------------------------------
    58
    59					0001			Create GLXSCN module
    60					0002			Fix a number of interrupt race problems and
    61								start adding ESCape sequence code
    62					0003			Add support for parsing of a string; fix bug in
    63								.CMINI which caused prompts not at left margin
    64					0004			TOTALLY HACKED UP FOR DIAGNOSTICS
    65
    66					\  ;END OF REVISION HISTORY
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 4
GSCN	MAC	22-May-78 10:53		Revision History                                                                   SEQ 0299

    67					; Entry Points found in this module
    68
    69						ENTRY	S%INIT			;INIT THE COMMAND SCANNER MODULE
    70						ENTRY	S%CMND			;SCAN A COMMAND
    71						ENTRY	S%SCMP			;COMPARE TWO STRINGS
    72						ENTRY	S%TBLK			;LOOK UP A STRING IN A TABLE
    73						ENTRY	S%ERR			;TYPE OUT SCANNER'S LAST ERROR
    74
    75					;SPECIAL DIAGNOSTICS MACROS
    76
    77					DEFINE	$$DATA(NAM,SIZ<1>)<
    78					NAM:	BLOCK	SIZ
    79					>
    80
    81					DEFINE	$$GDATA(NAM,SIZ<1>)<
    82					NAM:	BLOCK	SIZ
    83					>
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 5
GSCN	MAC	22-May-78 10:53		Local Definitions                                                                  SEQ 0300

    84					SUBTTL Local Definitions
    85
    86					; Special Accumulator definitions
    87
    88			000016			C==16				;GLOBAL CHARACTER REGISTER
    89			000013			P5==P4+1			;S%CMND NEEDS LOTS OF ACS
    90			000014			F==14				;FLAG AC
    91			000015			Q1==15				;
    92			000016			Q2==16				;DON'T DEFINE Q3 OR Q4
    93
    94					; Special characters
    95
    96			000134			.CHBSL=="\"			;BACKSLASH
    97
    98					; Control character former
    99
   100						DEFINE $C(A)<"A"-100>		;JUST ASCII MINUS LEAD BIT
   101
   102					; Bad parse return macro
   103
   104						DEFINE NOPARS(CODE,TEXT)<
   105						  MOVE	T1,[XWD	CODE,[ASCIZ /TEXT/]]
   106						  JRST  XCOMNE > ;END OF NOPARS DEFINITION
   107
   108					; Special bit testing macros
   109
   110						DEFINE JXN(AC,FLD,ADDR)<
   111						  TXNN	AC,FLD
   112						  SKIPA
   113						  JRST  ADDR > ;END OF JXN DEFINITION
   114
   115						DEFINE JXE(AC,FLD,ADDR)<
   116						  TXNE	AC,FLD
   117						  SKIPA
   118						  JRST	ADDR > ;END OF JXE DEFINITION
   119
   120						DEFINE	JXO(AC,FLD,ADDR)<
   121						  TXC	AC,FLD
   122						  TXCN	AC,FLD
   123						  JRST	ADDR > ;END OF JXO DEFINITION
   124
   125						DEFINE	RETSKP<JRST	[AOS 0(P)
   126								         POPJ P,] >
   127
   128					; Bit table - 36. Words long with word N containing 1B<N>
   129	
   130			000000			XX==0
   131	000000'				BITS:	XLIST
   132						LIST
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 6
GSCN	MAC	22-May-78 10:53		Module Storage                                                                     SEQ 0301

   133					SUBTTL	Module Storage
   134
   135
   136	000044'					$$DATA	RD,.RDSIZ		;INTERNAL ARGUMENT BLOCK
   137
   138	000055'					$$DATA	PCALL			;PUSHDOWN LIST SAVE FOR COMND
   139	000056'					$$DATA	ATBPTR			;ATOM BUFFER POINTER (END)
   140	000057'					$$DATA	ATBSIZ			;ATOM BUFFER SIZE
   141	000060'					$$DATA	STKFEN			;FENCE FOR STACK RESTORATION
   142	000061'					$$DATA	FNARG			;FUNCTION ARGUMENT
   143	000062'					$$DATA	CMCCM,2			;SAVED CC CODES
   144	000064'					$$DATA	CMRBRK			;POINTER TO BREAK SET TABLE
   145	000065'					$$DATA	CMCSF			;SAVED FLAGS
   146	000066'					$$DATA	CMCSAC,7		;SAVED ACS DURING S%TXTI FROM S%CMND
   147	000075'					$$DATA	CMCSC			;
   148	000076'					$$DATA	CMCBLF			;
   149	000077'					$$DATA	TBA			;TABLE ARGUMENTS
   150	000100'					$$DATA	STRG			;TEMP STRING POINTER
   151	000101'					$$DATA	REMSTR			;"REMEMBER"ED STRING
   152	000102'					$$DATA	XXXPTR			;RE-USABLE STRING POINTER STORAGE
   153	000103'					$$DATA	CRBLK,CR.SIZ		;RETURNED BLOCK OF ANSWERS
   154	000106'					$$DATA	TABDON			;END OF TAB FOR "?"
   155	000107'					$$DATA	TABSIZ			;SIZE OF TAB LARGER THAN LARGEST KEYWORD
   156	000110'					$$DATA	LSTERR			;ERROR CODE RETURNED FROM NOPARS
   157	000111'					$$DATA	BIGSIZ			;LENGTH OF LONGEST KEYWORD
   158	000112'					$$DATA	KEYSIZ			;NOMINAL KEYWORD LENGTH
   159	000113'					$$DATA	PWIDTH			;TERMINAL'S WIDTH
   160	000114'					$$DATA	CURPOS			;LINE POSITION OF CURSOR
   161	000115'					$$DATA	Q3SAVE			;NO Q3 EXISTS
   162	000116'					$$DATA	IFOB			;INDIRECT FILESPEC FOB
   163	000117'					$$DATA	IIFN			;IFN OF INDIRECT FILE
   164	000120'					$$DATA	TI,.RDSIZ		;S%TXTI ARGUMENT BLOCK
   165	000131'					$$DATA	TRMUDX			;CONTROLLING TERMINAL'S UDX
   166	000132'					$$DATA	NODSIX			;SIXBIT NODE-ID
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 7
GSCN	MAC	22-May-78 10:53		S%INIT  --  Initialize the GLXSCN Module                                           SEQ 0302

   167					SUBTTL	S%INIT  --  Initialize the GLXSCN Module
   168
   169					IFN FTUUOS,<
   170	000133'	205 01 0 00 646471 	S%INIT:	MOVSI	S1,'TTY'		;LOAD TTY NAME
   171	000134'	047 01 0 00 000127 		IONDX.	S1,			;GET THE I/O INDEX
   172	000135'	255 00 0 00 000000 		  JFCL				;IGNORE THE ERROR
   173	000136'	202 01 0 00 000131'		MOVEM	S1,TRMUDX		;AND STORE THE UDX
   174	000137'	254 00 0 00 003747'		$RETT				;AND RETURN
   175					>  ;END IFN FTUUOS
   176
   177					IFN FTJSYS,<
   178					S%INIT:	$RETT				;RETURN
   179					>  ;END IFN FTJSYS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 8
GSCN	MAC	22-May-78 10:53		S%ERR - ERROR TYPEOUT ROUTINE                                                      SEQ 0303

   180					SUBTTL S%ERR - ERROR TYPEOUT ROUTINE
   181
   182						IFN	FTUUOS,<;!!!BEGINNING OF TOPS10 ROUTINE
   183	000140'	550 01 0 00 000110'	S%ERR:	HRRZ	S1,LSTERR		;GET ADDRESS OF ERROR
   184	000141'	322 01 0 00 004026'		JUMPE	S1,[POPJ P,0]		;RETURN IF NONE
   185						OUTSTR	[ASCIZ/
   186	000142'	051 03 0 00 004027'	?/]
   187	000143'	051 03 1 00 000001 		OUTSTR	@S1
   188						OUTSTR	[ASCIZ /
   189	000144'	051 03 0 00 004030'	/]
   190	000145'	263 17 0 00 000000 		POPJ	P,0
   191					>; !!!END OF TOPS10 ROUTINE
   192
   193						IFN	FTJSYS,<;!!!BEGINNING OF TOPS20 ROUTINE
   194					S%ERR:	MOVX	S1,.PRIOU		;TO PRIMARY OUTPUT
   195						MOVE	S2,[.FHSLF,,-1]		;OUR LAST ERROR
   196						ERSTR				;TYPE OUT THE ERROR STRING
   197						HALTF				;UNDEFINED ERROR NUMBER
   198						HALTF				;BAD DESTINATION DESIGNATOR
   199						POPJ	P,0
   200					>;!!!END OF TOPS20 ROUTINE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 9
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0304

   201					SUBTTL S%CMND  --  Scan a command
   202
   203					;The S%CMND routine provides a command scanner interface similar to the
   204					;	TOPS-20 COMND JSYS.	
   205
   206					;CALL IS:	S1/ Pointer to Command State Block
   207					;		S2/ Pointer to list of Function Descriptor Blocks
   208					;		    See GLXMAC or MONSYM for a description of these
   209
   210					;TRUE RETURN:	ALWAYS, 
   211					;		S1/ Length of Command Reply block
   212					;		S2/ Address of the Command Reply block
   213
   214
   215
   216					;LOCAL FLAGS (RH OF F)
   217
   218			400000		CMQUES==1B18			;? TYPED
   219			200000		CMSWF==1B19			;BEG OF SWITCH SEEN
   220			100000		CMUSRF==1B20			;USER NAME REQUIRED
   221			040000		CMDEFF==1B21			;DEFAULT FIELD GIVEN
   222			020000		CMCFF==1B22			;^F RECOGNIZED FIELD
   223			010000		CMQUE2==1B23			;IN SECOND OR SUBSEQUENT HELP POSSIBILITY
   224			004000		CMBOL==1B24			;FIELD IS AT BEG OF LINE
   225			002000		CMTF1==1B25			;INTERNAL TEMP FLAG
   226			001000		CMINDF==1B26			;DOING GTJFN ON INDIRECT FILE
   227
   228					;FLAGS IN FUNCTION DISPATCH TABLE
   229
   230		400000	000000		CMNOD==1B0			;NO DEFAULT POSSIBLE
   231
   232			000050		NOIBCH=="("			;NOISE WORD BEG CHARACTER
   233			000051		NOIECH==")"			;NOISE WORD END CHARACTER
   234			000057		CMSWCH=="/"			;SWITCH CHARACTER
   235			000072		CMSWTM==":"			;SWITCH TERMINATOR
   236			000077		CMHLPC=="?"			;HELP CHARACTER
   237			000041		CMCOM1=="!"			;COMMENT CHARACTER
   238			000073		CMCOM2==";"			;FULL LINE COMMENT CHARACTER
   239			000043		CMDEFC=="#"			;DEFAULT FIELD CHARACTER
   240			000006		CMFREC=="F"-100			;FIELD RECOGNITION CHARACTER
   241			000100		CMINDC=="@"			;INDIRECT FILE CHARACTER
   242			000010		CMRDOC=="H"-100			;REDO COMMAND CHARACTER
   243			000042		CMQTCH==""""			;CHARACTER FOR QUOTED STRINGS
   244			000055		CMCONC=="-"			;LINE CONTINUATION CHARACTER
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 10
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0305

   245
   246					;NOPARSE ERROR CODES
   247			000001		NPXNSW==1
   248			000002		NPXNOM==2
   249			000003		NPXNUL==3
   250			000004		NPXINW==4
   251			000005		NPXNC==5
   252			000006		NPXICN==6
   253			000007		NPXIDT==7
   254			000010		NPXNQS==10
   255			000011		NPXAMB==11
   256			000012		NPXNMT==12
   257			000013		NPXCMA==13
   258			000014		NPXNNC==14	;TOO MANY CHARACTERS IN NODE NAME
   259			000015		NPXNNI==15	;ILLEGAL CHARACTER IN NODE NAME
   260			000016		NPXNSN==16	;NO SUCH NODE
   261
   262
   263						IFN	FTJSYS,< ;BEGINNING OF COMND JSYS CALL
   264					S%CMND:	COMND
   265						ERJMP	.RETF
   266						MOVEM	S1,CRBLK+CR.FLG
   267						MOVEM	S2,CRBLK+CR.RES
   268						MOVEM	T1,CRBLK+CR.FNB
   269						MOVEI	S1,CR.SIZ
   270						MOVEI	S2,CRBLK
   271						$RETT
   272					>;END OF COMND JSYS CALL
   273
   274					;DIAGNOSTICS COMND JSYS EQUIVELANT
   275
   276	000146'	260 17 0 00 000161'	S%CMND:	PUSHJ	P,.S%CMND
   277	000147'	200 01 0 00 000103'		MOVE	1,CRBLK+CR.FLG
   278	000150'	200 02 0 00 000104'		MOVE	2,CRBLK+CR.RES
   279	000151'	200 03 0 00 000105'		MOVE	3,CRBLK+CR.FNB
   280	000152'	263 17 0 00 000000 		POPJ	P,
   281
   282	000153'	260 17 0 00 000000*	F%IBYT:	GO	$CCLIN		;GET CHAR FROM TAKE FILE
   283	000154'	254 00 0 00 003747'		$RETT
   284
   285	000155'	260 17 0 00 003773'	F%IOPN:	$STOP(FSO,F%IOPN ERROR)
   286	000157'	260 17 0 00 003773'	F%REL:	$STOP(FSR,F%REL ERROR)
   287
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 11
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0306

   288						IFN	FTUUOS,<;BEGINNING OF TOPS-10 COMND CALL ROUTINE
   289					;!!!!!NOTE WELL - THIS CONDITIONAL RUNS TO THE END OF COMND ROUTINE
   290
   291	000161'	552 17 0 00 000055'	.S%CMND:HRRZM	P,PCALL		;SAVE STACK POINTER
   292	000162'	260 17 0 00 003647'		PUSHJ	P,.SAVE4	;SAVE P REGS
   293	000163'	260 17 0 00 003703'		SAVE	P5		;P5 WON'T BE SAVED BY THAT
   294	000164'	260 17 0 00 003665'		PUSHJ	P,.SAVET	;AND T REGS
   295	000165'	260 17 0 00 003723'		SAVE	Q1		;AND Q REGS
   296	000166'	260 17 0 00 003733'		SAVE	Q2
   297	000167'	260 17 0 00 003713'		SAVE	F		;AND F REGISTER
   298	000170'	260 17 0 00 000176'		PUSHJ	P,XCOMND	;DO THE WORK
   299	000171'	550 06 0 10 000000 		HRRZ T4,.CMFLG(P2) 	;GET REPARSE DISPATCH ADDRESS IF ANY
   300	000172'	322 06 0 00 000175'		JUMPE	T4,COMN1
   301	000173'	603 14 0 00 040000 		TXNE	F,CM%RPT	;REPARSE NEEDED?
   302	000174'	542 06 1 00 000055'		HRRM	T4,@PCALL	;YES, EFFECT TRANSFER
   303	000175'	263 17 0 00 000000 	COMN1:	POPJ	P,0		;NO RETURN
   304
   305	000176'	202 01 0 00 000010 	XCOMND::MOVEM	S1,P2		;SAVE BLOCK PTR
   306	000177'	202 02 0 00 000007 		MOVEM	S2,P1		;SAVE FN BLOCK PTR
   307	000200'	504 07 0 00 000007 		HRL	P1,P1		;SAVE COPY OF ORIGINAL
   308	000201'	202 17 0 00 000060'		MOVEM	P,STKFEN	;SAVE CURRENT STACK AS FENCE
   309						MOVEI	T1,[.CMRTY	;LIST OF BYTE POINTERS TO CHECK
   310							    .CMBFP
   311							    .CMPTR
   312							    .CMABP
   313	000202'	201 03 0 00 004043'			    0]		;MARK OF END OF LIST
   314	000203'	260 17 0 00 001240'		PUSHJ	P,CHKABP	;CHECK ALL BYTE PTRS
   315	000204'	200 11 0 10 000005 		MOVE	P3,.CMCNT(P2)	;SETUP ACTIVE VARIABLES
   316	000205'	200 12 0 10 000004 		MOVE	P4,.CMPTR(P2)
   317	000206'	200 13 0 10 000006 		MOVE	P5,.CMINC(P2)
   318	000207'	510 14 0 10 000000 		HLLZ	F,.CMFLG(P2) 	;GET 'GIVEN' FLAGS
   319	000210'	621 14 0 00 010000 		TXZ	F,CM%PFE
   320	000211'	623 14 0 00 400000 		TXZE	F,CM%ESC	;PREVIOUS FIELD HAD ESC?
   321	000212'	661 14 0 00 010000 		TXO	F,CM%PFE	;YES
   322	000213'	260 17 0 00 002674'		PUSHJ	P,K%RCOC		;GET COC MODES
   323	000214'	124 01 0 00 000062'		DMOVEM	S1,CMCCM	;SAVE THEM
   324	000215'	621 01 0 00 000060 		TXZ	S1,3B<CMFREC*2+1> ;NO ECHO ^F 
   325	000216'	621 01 0 00 000003 		TXZ	S1,3B<CMRDOC*2+1> ;OR ^H
   326	000217'	660 01 0 00 140000 		TXO	S1,3B<.CHLFD*2+1> ;PROPER HANDLING OF NL
   327	000220'	620 02 0 00 600000 		TXZ	S2,3B<.CHESC*2+1-^D36> ;SET ESC TO NO ECHO
   328	000221'	260 17 0 00 002676'		PUSHJ	P,K%WCOC	;AND WRITE THEM BACK
   329						; ..
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 12
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0307

   330
   331						; ..
   332	000222'	200 17 0 00 000060'	XCOMN0:	MOVE	P,STKFEN	;NORMALIZE STACK IN CASE ABORTED ROUTINES
   333	000223'	630 14 0 00 004050'		TXZ	F,CM%ESC+CM%NOP+CM%EOC+CM%RPT+CM%SWT+CMBOL+CMCFF+CMDEFF+CMINDF ;INIT FLAGS
   334	000224'	316 12 0 10 000003 		CAMN	P4,.CMBFP(P2)	;AT BEG OF LINE?
   335	000225'	660 14 0 00 004000 		TXO	F,CMBOL		;YES
   336	000226'	135 03 0 00 004051'	XCOM1:	LOAD	T1,.CMFNP(P1),CM%FFL ;GET FUNCTION FLAGS
   337	000227'	137 03 0 00 004052'		STORE	T1,F,CM%FFL	;KEEP WITH OTHER FLAGS
   338	000230'	554 15 0 00 000007 		HLRZ	Q1,P1		;GET CM%DPP FLAG FROM FIRST BLOCK ONLY
   339	000231'	430 14 0 15 000000 		XOR	F,.CMFNP(Q1)
   340	000232'	621 14 0 00 000002 		TXZ	F,CM%DPP
   341	000233'	430 14 0 15 000000 		XOR	F,.CMFNP(Q1)
   342	000234'	200 03 0 07 000001 		MOVE	T1,.CMDAT(P1)	;GET FUNCTION DATA IF ANY
   343	000235'	202 03 0 00 000061'		MOVEM	T1,FNARG	;KEEP LOCALLY
   344	000236'	135 03 0 00 004053'		LOAD	T1,.CMFNP(P1),CM%FNC ;GET FUNCTION CODE
   345	000237'	301 03 0 00 000000 		CAIL	T1,0		;VALIDATE FN CODE
   346	000240'	301 03 0 00 000027 		CAIL	T1,MAXCFN
   347	000241'	260 17 0 00 003773'		$STOP(BFC,Bad function code)
   348	000243'	200 03 0 03 000324'		MOVE	T1,CFNTAB(T1)	;GET TABLE ENTRY FOR IT
   349	000244'	607 03 0 00 400000 		JXN	T1,CMNOD,XCOM3	;DISPATCH NOW IF NO DEFAULT POSSIBLE
   350	000245'	334 00 0 00 000000 
   351	000246'	254 00 0 00 000267'
   352	000247'	260 17 0 00 000742'		PUSHJ	P,INILCH	;SKIP SPACES AND INIT ATOM BUFFER
   353	000250'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;GET INITIAL INPUT
   354	000251'	306 03 0 00 000055 		CAIN	T1,CMCONC	;POSSIBLE LINE CONTINUATION?
   355						JRST	[PUSHJ	P,CMCIN		;YES, SEE IF NL FOLLOWS
   356							CAIE	T1,.CHLFD
   357							PUSHJ	P,CMRSET	;NO, RESET FIELD
   358							PUSHJ	P,CMCIN		;RE-READ FIRST CHAR
   359	000252'	254 00 0 00 004062'			JRST	.+1]		;CONTINUE
   360	000253'	306 03 0 00 000073 		CAIN	T1,CMCOM2	;COMMENT?
   361	000254'	254 00 0 00 000307'		JRST	CMCMT2		;YES
   362	000255'	306 03 0 00 000041 		CAIN	T1,CMCOM1
   363	000256'	254 00 0 00 000310'		JRST	CMCMT1		;YES
   364	000257'	306 03 0 00 000100 		CAIN	T1,CMINDC	;INDIRECT INDICATOR?
   365						JRST	[TXNN	F,CM%XIF	;YES, INDIRECT FILES ALLOWED?
   366							JRST	CMIND		;YES, DO IT
   367	000260'	254 00 0 00 004067'			JRST	.+1]		;NO, KEEP CHARACTER AS ORDINARY INPUT
   368	000261'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;EOL BEGINS FIELD?
   369						JRST	[PUSHJ	P,CMDIP		;YES, PUT IT BACK
   370						        LOAD	T1,.CMFNP(P1),CM%FNC ;GET FUNCTION CODE
   371							CAIN	T1,.CMCFM	;CONFIRM?
   372							JRST	XCOM3		;YES, DO IT
   373							TXNE	F,CM%DPP	;HAVE DEFAULT?
   374							JRST	XCOM5		;YES, USE IT
   375							TXNN	F,CMBOL		;AT BGN OF BFR?
   376							JRST	XCOM3		;NO, TRY NULL FIELD
   377							PUSHJ	P,CMRSET
   378							SETZ	P5,0		;YES, EMPTY LINE.  IGNORE
   379							PUSHJ	P,CMRTY1	;REDO PROMPT
   380	000262'	254 00 0 00 004072'			JRST	XCOMN0]		;TRY AGAIN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 13
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0308

   381	000263'	302 03 0 00 000033 		CAIE	T1,.CHESC	;ESC AT BEG OF FIELD?
   382	000264'	306 03 0 00 000006 		CAIN	T1,CMFREC
   383	000265'	254 00 0 00 000271'		JRST	XCOM4		;^F AT BEG OF FIELD
   384					   ;	CAIN	T1,CMDEFC	;OR DEFAULT REQUEST?
   385					   ;	JRST	XCOM4		;YES
   386	000266'	260 17 0 00 001116'	XCOM2:	PUSHJ	P,CMDIP		;PUT CHAR BACK
   387	000267'	135 03 0 00 004053'	XCOM3:	LOAD	T1,.CMFNP(P1),CM%FNC	;GET FUNCTION CODE
   388	000270'	254 00 1 03 000324'		JRST	@CFNTAB(T1)	;DO IT
   389
   390					;ESC OR ^F AT BEG OF FIELD
   391
   392	000271'	607 14 0 00 000002 	XCOM4:	TXNN	F,CM%DPP	;YES, HAVE DEFAULT STRING?
   393	000272'	254 00 0 00 000266'		JRST	XCOM2		;NO
   394	000273'	260 17 0 00 001110'		PUSHJ	P,CMDCH		;FLUSH RECOG CHAR
   395	000274'	554 15 0 00 000007 	XCOM5:	HLRZ	Q1,P1		;GET PTR TO FIRST FLD BLOCK
   396	000275'	200 03 0 15 000003 		MOVE	T1,.CMDEF(Q1)	;GET DEFAULT STRING PTR
   397	000276'	260 17 0 00 001252'		PUSHJ	P,CHKBP		;CHECK POINTER
   398	000277'	202 03 0 00 000015 		MOVEM	T1,Q1
   399	000300'	660 14 0 00 040000 		TXO	F,CMDEFF	;NOTE FIELD ALREADY IN ATOM BFR
   400	000301'	134 03 0 00 000015 	XCOM6:	ILDB	T1,Q1
   401						JUMPE	T1,[PUSHJ P,CHKLCH	;CHECK FOR NULL DEFAULT STRING
   402							CAIG	T1,0
   403							$STOP(BDS,Bad Default String) ;NULL STRING ILLEGAL
   404							PUSHJ	P,TIELCH	;END OF STRING, TIE OFF ATOM BUFFER
   405							TXNE	F,CMCFF		;^F RECOG?
   406							JRST	XCOMRF		;YES, GO GET MORE INPUT
   407							JXE	F,CM%ESC,XCOM3	;GO DIRECT TO FUNCTION IF NO RECOG
   408							MOVEI	T1,.CHESC
   409							PUSHJ	P,CMDIBQ	;YES, APPEND ESC TO BUFFER
   410							PUSHJ	P,CMRSET	;RESET LINE VARIABLES
   411	000302'	322 03 0 00 004114'			JRST	XCOMN0]		;TREAT AS ORDINARY INPUT
   412	000303'	260 17 0 00 000747'		PUSHJ	P,STOLCH	;STOR CHAR IN ATOM BUFFER
   413	000304'	603 14 0 00 400000 		TXNE	F,CM%ESC	;RECOGNIZING?
   414	000305'	260 17 0 00 001130'		PUSHJ	P,CMDIB		;YES, CHAR TO MAIN BUFFER ALSO
   415	000306'	254 00 0 00 000301'		JRST	XCOM6
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 14
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0309

   416
   417					;COMMENT
   418
   419	000307'	474 03 0 00 000000 	CMCMT2:	SETO	T1,		;SAY NO TERMINATOR OTHER THAN EOL
   420	000310'	202 03 0 00 000016 	CMCMT1:	MOVEM	T1,Q2		;REMEMBER MATCHING TERMINATOR
   421	000311'	260 17 0 00 000765'	CMCOM:	PUSHJ	P,CMCIN		;GET NEXT CHAR
   422	000312'	306 03 0 00 000055 		CAIN	T1,CMCONC	;POSSIBLE LINE CONTINUATION?
   423						JRST	[PUSHJ	P,CMCIN		;YES, CHECK FOR NL FOLLOWING
   424							CAIN	T1,.CHLFD
   425							JRST	CMCOM		;YES, STAY IN COMMENT
   426	000313'	254 00 0 00 004132'			JRST	.+1]		;NO, EXAMINE CHARACTER
   427	000314'	302 03 0 00 000006 		CAIE	T1,CMFREC	;RECOG REQUEST?
   428	000315'	306 03 0 00 000033 		CAIN	T1,.CHESC
   429						JRST	[PUSHJ	P,CMAMB		;YES, DING
   430	000316'	254 00 0 00 004136'			JRST	CMCOM]		;KEEP GOING
   431	000317'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;END OF LINE?
   432						JRST	[PUSHJ	P,CMDIP		;YES, PUT IT BACK
   433	000320'	254 00 0 00 004140'			JRST	XCOM1]		;DO WHATEVER
   434	000321'	316 03 0 00 000016 		CAMN	T1,Q2		;MATCHING TERMINATOR?
   435	000322'	254 00 0 00 000226'		JRST	XCOM1		;YES, END OF COMMENT
   436	000323'	254 00 0 00 000311'		JRST	CMCOM		;NO, KEEP LOOKING
   437
   438					;TABLE OF COMND FUNCTIONS
   439
   440	000000				CFNTAB:	PHASE 0
   441	000000	000000	001345'		.CMKEY::!XCMKEY			;KEYWORD
   442	000001	000000	001665'		.CMNUM::!XCMNUM			;INTEGER
   443	000002	400000	001607'		.CMNOI::!XCMNOI+CMNOD		;NOISE WORD
   444	000003	000000	001331'		.CMSWI::!XCMSWI			;SWITCH
   445	000004	000000	002064'		.CMIFI::!XCMIFI			;INPUT FILE
   446	000005	000000	002064'		.CMOFI::!XCMOFI			;OUTPUT FILE
   447	000006	000000	002064'		.CMFIL::!XCMFIL			;GENERAL FILESPEC
   448	000007	000000	002051'		.CMFLD::!XCMFLD			;ARBITRARY FIELD
   449	000010	000000	001643'		.CMCFM::!XCMCFM			;CONFIRM
   450	000011	000000	002361'		.CMDIR::!XCMDIR			;DIRECTORY NAME
   451	000012	000000	002361'		.CMUSR::!XCMUSR			;USER NAME
   452	000013	000000	002435'		.CMCMA::!XCMCMA			;COMMA
   453	000014	400000	001260'		.CMINI::!XCMINI+CMNOD		;INITIALIZE COMMAND
   454	000015	000000	001662'		.CMFLT::!XCMFLT			;FLOATING POINT NUMBER
   455	000016	000000	001777'		.CMDEV::!XCMDEV			;DEVICE NAME
   456	000017	000000	001602'		.CMTXT::!XCMTXT			;TEXT
   457	000020	000000	001774'		.CMTAD::!XCMTAD			;TIME AND DATE
   458	000021	000000	002033'		.CMQST::!XCMQST			;QUOTED STRING
   459	000022	400000	002041'		.CMUQS::!XCMUQS+CMNOD		;UNQUOTED STRING
   460	000023	000000	002340'		.CMTOK::!XCMTOK			;TOKEN
   461	000024	000000	001664'		.CMNUX::!XCMNUX			;NUMBER DELIMITED BY NON-DIGIT
   462	000025	000000	002055'		.CMACT::!XCMACT			;ACCOUNT
   463	000026	000000	002060'		.CMNOD::!XCMNOD		;NODE NAME
   464	000353'					DEPHASE
   465			000027		MAXCFN==.-CFNTAB
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 15
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0310

   466
   467					;HERE TO GET MORE INPUT AND RETRY FIELD
   468
   469	000353'	260 17 0 00 000357'	XCOMRF:	PUSHJ	P,CMRSET	;RESET VARIABLES TO BEGINNING OF FIELD
   470	000354'	260 17 0 00 000777'		PUSHJ	P,CMCIN1	;GET MORE INPUT
   471	000355'	544 07 0 00 000007 		HLR	P1,P1		;RESET ALTERNATIVE LIST
   472	000356'	254 00 0 00 000222'		JRST	XCOMN0
   473
   474					;RESET VARIABLES TO BEGINNING OF CURRENT FIELD
   475
   476	000357'	274 13 0 00 000011 	CMRSET:	SUB	P5,P3		;RESET VARIABLES TO BGN OF FIELD
   477	000360'	270 13 0 10 000005 		ADD	P5,.CMCNT(P2)	;KEEP ALL CURRENT INPUT
   478	000361'	200 11 0 10 000005 		MOVE	P3,.CMCNT(P2)
   479	000362'	200 12 0 10 000004 		MOVE	P4,.CMPTR(P2)
   480	000363'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 16
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0311

   481
   482					;STANDARD EXITS
   483
   484					;RETURN BECAUSE ENTIRE COMMAND DELETED
   485
   486	000364'	661 14 0 00 040000 	XCOMXL:	TXO	F,CM%RPT	;NOTE REPEAT PARSE NEEDED
   487	000365'	200 03 0 00 000012 		MOVE	T1,P4		;BACK POINTER TO BEG OF BUFFER
   488	000366'	200 04 0 10 000003 		MOVE	T2,.CMBFP(P2)
   489	000367'	202 04 0 00 000012 		MOVEM	T2,P4
   490	000370'	260 17 0 00 001077'		PUSHJ	P,SUBBP		;SEE HOW MANY CHARS DELETED
   491	000371'	272 03 0 00 000011 		ADDM	T1,P3		;UPDATE SPACE COUNT
   492	000372'	400 13 0 00 000000 		SETZ	P5,		;NOTE NO INPUT
   493	000373'	260 17 0 00 000470'		PUSHJ	P,CMRTY1	;RETYPE PROMPT
   494	000374'	254 00 0 00 000410'		JRST	XCOMXI		;EXIT
   495
   496					;RETURN AND REPEAT PARSE BECAUSE USER DELETED BACK INTO ALREADY
   497					;PARSED TEXT
   498
   499	000375'	661 14 0 00 040000 	XCOMRP:	TXO	F,CM%RPT	;REQUEST REPEAT
   500	000376'	200 03 0 00 000012 		MOVE	T1,P4		;COMPUTE NUMBER CHARS IN BUFFER
   501	000377'	200 04 0 10 000003 		MOVE	T2,.CMBFP(P2)
   502	000400'	202 04 0 00 000012 		MOVEM	T2,P4		;RESET PTR TO TOP OF BUFFER
   503	000401'	260 17 0 00 001077'		PUSHJ	P,SUBBP		;COMPUTE PTR-TOP
   504	000402'	202 03 0 00 000013 		MOVEM	T1,P5		;SET AS NUMBER CHARS FOLLOWING PTR
   505	000403'	272 03 0 00 000011 		ADDM	T1,P3		;RESET COUNT TO TOP OF BUFFER
   506	000404'	322 03 0 00 000364'		JUMPE	T1,XCOMXL	;JUMP IF LINE NOW EMPTY
   507	000405'	254 00 0 00 000417'		JRST	XCOMX1		;OTHERWISE UPDATE VARIABLES AND EXIT
   508
   509					;GOOD RETURN
   510
   511	000406'	603 14 0 00 400000 	XCOMXR:	TXNE	F,CM%ESC	;RECOG CHARACTER TERMINATED?
   512	000407'	260 17 0 00 001110'		PUSHJ	P,CMDCH		;YES, FLUSH IT
   513	000410'	627 14 0 00 400000 	XCOMXI:	TXZN	F,CM%ESC	;FIELD TERMINATED WITH RECOG?
   514	000411'	254 00 0 00 000417'		JRST	XCOMX1		;NO
   515	000412'	602 14 0 00 020000 		TXNE	F,CMCFF		;^F RECOG?
   516	000413'	254 00 0 00 000353'		JRST	XCOMRF		;YES, GET MORE INPUT BEFORE RETURNING
   517	000414'	661 14 0 00 400000 		TXO	F,CM%ESC	;SET FLAG
   518	000415'	201 03 0 00 000040 		MOVEI	T1," "		;TERMINATE TYPESCRIPT WITH SPACE
   519	000416'	260 17 0 00 001130'		PUSHJ	P,CMDIB
   520	000417'	202 11 0 10 000005 	XCOMX1:	MOVEM	P3,.CMCNT(P2)	;UPDATE VARIABLES
   521	000420'	202 12 0 10 000004 		MOVEM	P4,.CMPTR(P2)
   522	000421'	202 13 0 10 000006 		MOVEM	P5,.CMINC(P2)
   523	000422'	200 17 0 00 000060'	XCOMX2:	MOVE	P,STKFEN	;RESET STACK
   524	000423'	120 01 0 00 000062'		DMOVE	S1,CMCCM	;GET SAVED CC MODES
   525	000424'	260 17 0 00 002676'		PUSHJ	P,K%WCOC	;RESTORE THEM
   526	000425'	202 07 0 00 000105'		MOVEM	P1,CRBLK+CR.FNB	;RETURN PTR TO FUNCTION BLOCK USED
   527	000426'	621 14 0 00 000777 		TXZ	F,CM%FFL	;FLUSH FUNCTION FLAGS
   528	000427'	502 14 0 10 000000 		HLLM	 F,.CMFLG(P2)	;RETURN FLAGS
   529	000430'	202 10 0 00 000103'		MOVEM	P2,CRBLK+CR.FLG	;STORE BLK ADDRESS
   530	000431'	502 14 0 00 000103'		HLLM	F,CRBLK+CR.FLG	;AND THE FLAGS
   531	000432'	201 01 0 00 000003 		MOVEI	S1,CR.SIZ	;LOAD SIZE OF RETURNED BLOCK
   532	000433'	201 02 0 00 000103'		MOVEI	S2,CRBLK	;AND ITS LOCATION
   533	000434'	254 00 0 00 003747'		$RETT			;AND TAKE A GOOD RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 17
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0312

   534
   535					;FAILURE RETURNS - FAILED TO PARSE
   536
   537	000435'	202 03 0 00 000110'	XCOMNE:	MOVEM	T1,LSTERR	;SAVE ERROR CODE
   538	000436'	606 14 0 00 400000 	XCOMNP:	JXN	F,CMQUES,CMRTYP	;IF IN HELP, DON'T RETURN NOW
   539	000437'	334 00 0 00 000000 
   540	000440'	254 00 0 00 000450'
   541	000441'	260 17 0 00 000357'		PUSHJ	P,CMRSET	;RESET FIELD VARIABLES
   542	000442'	202 13 0 10 000006 		MOVEM	P5,.CMINC(P2)	;FIX USER BLOCK
   543	000443'	550 03 0 07 000000 		LOAD	T1,.CMFNP(P1),CM%LST	;GET PTR TO NEXT FN BLOCK
   544	000444'	542 03 0 00 000007 		HRRM	T1,P1		;SAVE IT
   545	000445'	326 03 0 00 000222'		JUMPN	T1,XCOMN0	;DISPATCH IF THERE IS ANOTHER FUNCTION
   546	000446'	661 14 0 00 200000 		TXO	F,CM%NOP	;NO OTHER POSSIBILITIES, SAY NO PARSE
   547	000447'	254 00 0 00 000422'		JRST	XCOMX2
   548
   549					;HERE AFTER EACH HELP OUTPUT
   550
   551	000450'	260 17 0 00 000357'	CMRTYP:	PUSHJ	P,CMRSET	;RESET FIELD VARIABLES
   552	000451'	550 03 0 07 000000 		LOAD	T1,.CMFNP(P1),CM%LST ;GET NEXT FUNCTION IN LIST
   553	000452'	542 03 0 00 000007 		HRRM	T1,P1
   554	000453'	660 14 0 00 410000 		TXO	F,CMQUES+CMQUE2	;NOTE IN SECOND HELP POSSIBILITY
   555	000454'	326 03 0 00 000222'		JUMPN	T1,XCOMN0	;DO SUBSEQUENT HELPS
   556	000455'	201 03 0 00 000012 		MOVEI	T1,.CHLFD	;START NEW LINE
   557	000456'	260 17 0 00 001173'		PUSHJ	P,CMCOUT
   558	000457'	544 07 0 00 000007 		HLR	P1,P1		;END OF LIST, REINIT IT
   559	000460'	370 00 0 00 000013 		SOS P5			;FLUSH QMARK FROM INPUT
   560	000461'	620 14 0 00 410000 		TXZ	F,CMQUES+CMQUE2	;NOTE NOT IN HELP
   561	000462'	260 17 0 00 000470'		PUSHJ	P,CMRTY1	;RETYPE LINE
   562	000463'	254 00 0 00 000222'		JRST	XCOMN0		;RESTART PARSE OF CURRENT FIELD
   563
   564	000464'	661 14 0 00 200000 	XCOMEO:	TXO	F,CM%NOP	;SET NO PARSE
   565	000465'	201 02 0 00 000103'		MOVEI	S2,CRBLK
   566	000466'	200 17 0 00 000060'		MOVE	P,STKFEN	;FIXUP STACK
   567	000467'	254 00 0 00 003746'		$RETF
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 18
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0313

   568
   569					;RETYPE LINE INCLUDING ADVANCE INPUT IF ANY
   570
   571	000470'				CMRTY1:;**	HRRZ	T1,.CMIOJ(P2) ;GET OUT JFN
   572					;**	RFPOS
   573					;**	HRRZ	T2,T2
   574					;**	JUMPE	T2,CMRTY2	;JUMP IF AT LEFT MARGIN
   575	000470'	561 03 0 00 004030'		HRROI	T1,[BYTE (7) .CHCRT,.CHLFD] ;NOT AT MARGIN, GIVE CRLF
   576	000471'	260 17 0 00 001175'		PUSHJ	P,CMSOUT		;
   577	000472'	332 15 0 10 000002 	CMRTY2:	SKIPE	Q1,.CMRTY(P2)	;GET ^R PTR IF ANY
   578	000473'	316 15 0 10 000003 	CMRTY3:	CAMN	Q1,.CMBFP(P2)	;UP TO TOP OF BFR?
   579	000474'	254 00 0 00 000477'		JRST	CMRTY4		;DONE WITH ^R PTR
   580	000475'	134 03 0 00 000015 		ILDB	T1,Q1		;TYPE ^R BFR
   581						JUMPN	T1,[PUSHJ P,CMCOUT
   582	000476'	326 03 0 00 004142'			    JRST CMRTY3]
   583	000477'	200 15 0 10 000003 	CMRTY4:	MOVE	Q1,.CMBFP(P2)	;GET MAIN BFR PTR
   584	000500'	316 15 0 00 000012 	CMRTY5:	CAMN	Q1,P4		;UP TO CURRENT PTR?
   585	000501'	254 00 0 00 000505'		JRST	CMRTY6		;YES, GO DO ADVANCE INPUT
   586	000502'	134 03 0 00 000015 		ILDB	T1,Q1		;TYPE OUT COMMAND BFR
   587	000503'	260 17 0 00 001173'		PUSHJ	P,CMCOUT
   588	000504'	254 00 0 00 000500'		JRST	CMRTY5
   589
   590	000505'	200 16 0 00 000013 	CMRTY6:	MOVE	Q2,P5		;GET INPUT COUNT
   591					CMRTY7:	SOJL	Q2,[SETZ T1,0		;ALL INPUT PRINTED, TIE OFF
   592							    IDPB T1,Q1		;BUFFER
   593	000506'	361 16 0 00 004144'			    POPJ P,0]
   594	000507'	134 03 0 00 000015 		ILDB	T1,Q1
   595	000510'	260 17 0 00 001173'		PUSHJ	P,CMCOUT
   596	000511'	254 00 0 00 000506'		JRST	CMRTY7
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 19
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0314

   597					;INDIRECT FILE HANDLING
   598
   599	000512'	640 14 0 00 010000 	CMIND:	JXO	F,CMQUE2,XCOMNP	;NO SECOND HELP POSSIBILITIES
   600	000513'	646 14 0 00 010000 
   601	000514'	254 00 0 00 000436'
   602	000515'	260 17 0 00 002062'		PUSHJ	P,CMATFI	;GET A JFN ON THE INDIRECT FILE
   603	000516'	254 00 0 00 000562'		 JRST CMINDE		;FAILED
   604	000517'	260 17 0 00 001646'		PUSHJ	P,CMCFM0	;DO A CONFIRM
   605						 JRST	[HRROI T1,[ASCIZ /
   606					?Indirect file not confirmed.
   607					/]
   608							PUSHJ	P,CMSOUT
   609							TXO	F,CM%NOP
   610	000520'	254 00 0 00 004156'			JRST	XCOMX2]
   611	000521'	550 01 0 10 000011 		LOAD	S1,.CMGJB(P2),CM%GJB ;GET ADDR OF FD
   612	000522'	336 02 0 01 000002 		SKIPN	S2,.FDSTR(S1)	;IF DEVICE HAS NOT BEEN SPECIFIED,
   613	000523'	205 02 0 00 446353 		MOVSI	S2,'DSK'	;DEFAULT TO DISK
   614	000524'	202 02 0 01 000002 		MOVEM	S2,.FDSTR(S1)	;
   615	000525'	336 02 0 01 000005 		SKIPN	S2,.FDEXT(S1)	;AND DEFAULT THE EXTENSION
   616	000526'	205 02 0 00 435544 		MOVSI	S2,'CMD'	;TO ".CMD"
   617	000527'	202 02 0 01 000005 		MOVEM	S2,.FDEXT(S1)	;
   618	000530'	202 01 0 00 000116'		STORE	S1,IFOB+FOB.FD	;STORE IT
   619	000531'	201 01 0 00 000207 		MOVX	S1,FB.LSN!<INSVL.(7,FB.BSZ)> ;IGNORE LINE NUMBERS
   620	000532'	202 01 0 00 000117'		STORE	S1,IFOB+FOB.CW	;STORE
   621	000533'	201 01 0 00 000002 		MOVEI	S1,2		;SHORT FOB
   622	000534'	201 02 0 00 000116'		MOVEI	S2,IFOB		;AND ITS ADDRESS
   623	000535'	260 17 0 00 000155'		PUSHJ	P,F%IOPN	;OPEN FOR INPUT
   624	000536'	322 00 0 00 000562'		JUMPF	CMINDE		;IF FAILS,TELL WHY
   625	000537'	202 01 0 00 000117'		MOVEM	S1,IIFN		;STORE IFN
   626	000540'	260 17 0 00 000357'		PUSHJ	P,CMRSET	;FLUSH INDIRECT FILESPEC FROM BUFFER
   627	000541'	200 01 0 00 000117'	CMIND1:	MOVE	S1,IIFN		;GET IFN
   628	000542'	260 17 0 00 000153'		PUSHJ	P,F%IBYT	;GET A BYTE
   629	000543'	322 00 0 00 000555'		JUMPF	CMIND2		;IF FAILS FIND OUT WHY
   630	000544'	302 02 0 00 000010 		CAIE	S2,CMRDOC	;IGNORE ^H
   631	000545'	306 02 0 00 000015 		CAIN	S2,.CHCRT	;IGNORE CR
   632	000546'	254 00 0 00 000541'		JRST	CMIND1
   633	000547'	302 02 0 00 000012 		CAIE	S2,.CHLFD	;CONVERT EOL TO SPACE
   634	000550'	306 02 0 00 000033 		CAIN	S2,.CHESC	;DITTO ESC (BUT THERE SHOULDN'T BE ANY)
   635	000551'	201 02 0 00 000040 		MOVEI	S2," "
   636	000552'	200 03 0 00 000002 		MOVE	T1,S2		;COPY CHARACTER
   637	000553'	260 17 0 00 001131'		PUSHJ	P,CMDIBQ	;PUT CHAR IN BUFFER WITHOUT TYPEOUT
   638	000554'	254 00 0 00 000541'		JRST	CMIND1
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 20
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0315

   639	000555'	200 01 0 00 000117'	CMIND2:	MOVE	S1,IIFN		;CLOSE OFF THE FILE NOW
   640	000556'	260 17 0 00 000157'		PUSHJ	P,F%REL		;
   641	000557'	201 03 0 00 000012 		MOVEI	T1,.CHLFD	;TIE OFF LINE
   642	000560'	260 17 0 00 001131'		PUSHJ	P,CMDIBQ
   643	000561'	254 00 0 00 000375'		JRST	XCOMRP		;REPARSE LINE AS NOW CONSTITUTED
   644
   645	000562'	260 17 0 00 002655'	CMINDE:	PUSHJ	P,I%IOFF		;TURN OFF INTERRUPTS
   646	000563'	037 01 0 00 000000 		PCRLF
   647	000564'	201 00 0 00 004162'		MOVEI	[ASCIZ/?PROBLEM WITH INDIRECT FILE:/]
   648	000565'	037 17 0 00 000001 		PNTALF
   649	000566'	260 17 0 00 002654'		PUSHJ	P,I%ION			;THEN TURN THEM BACK ON
   650	000567'	661 14 0 00 200000 		TXO	F,CM%NOP	;RETURN FAILURE, NO CHECK ALTERNATIVES
   651	000570'	254 00 0 00 000422'		JRST	XCOMX2
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 21
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0316

   652
   653					;****************************************
   654					;COMND - LOCAL SUBROUTINES
   655					;****************************************
   656
   657					;READ NEXT FIELD ATOM
   658					;ASSUMES ATOM BUFFER ALREADY SETUP
   659
   660	000571'	201 03 0 00 000573'	CMRATM:	MOVEI	T1,FLDBRK	;USE STANDARD FIELD BREAK SET
   661	000572'	254 00 0 00 000615'		PJRST	CMRFLD		;PARSE THE FIELD
   662
   663	000573'	777777	777760		FLDBRK:	777777,,777760		;ALL CONTROL CHARS
   664	000574'	777754	001760			777754,,001760		;ALL EXCEPT - , NUMBERS
   665	000575'	400000	000760			400000,,000760		;ALL EXCEPT UC ALPHABETICS
   666	000576'	400000	000760			400000,,000760		;ALL EXCEPT LC ALPHABETICS
   667
   668					;READ FILESPEC FIELD - FILESPEC PUNCTUATION CHARACTERS
   669					;ARE LEGAL ( :, <, >, ., ;)
   670
   671	000577'	201 03 0 00 000601'	CMRFIL:	MOVEI	T1,FILBRK	;USE FILE BREAK SET
   672	000600'	254 00 0 00 000645'		PJRST	CFRFLD
   673
   674	000601'	777777	777760		FILBRK:	777777,,777760		;ALL CC
   675	000602'	747504	000520			747504,,000520		;PUNCT, NUMBERS
   676	000603'	400000	000260			400000,,000260		;UC, BRACKETS
   677	000604'	400000	000760			400000,,000760		;LC
   678
   679					;USERNAME BREAK SET. BREAKS ON EVERYTHING EXCEPT DOT AND ALPHABETICS.
   680
   681	000605'	777777	777760		USRBRK:	-1,,777760		;BREAK ON CONTROLS
   682	000606'	777744	001760			777744,,001760		;DON'T BREAK ON "-", ".", DIGITS
   683	000607'	400000	000760			400000,,760		;DON'T BREAK ON UPPERCASE LETTERS
   684	000610'	400000	000760			400000,,760		;OR LOWERCASE LETTERS
   685
   686					;READ TO END OF LINE
   687
   688	000611'	000200	000000		EOLBRK:	1B<.CHLFD>		;END OF LINE ONLY
   689	000612'	000000	000000			EXP	0,0,0		;THREE WORDS OF 0'S
   690	000613'	000000	000000
   691	000614'	000000	000000
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 22
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0317

   692
   693					;GENERAL FIELD PARSE ROUTINE - TAKES BREAK SET MASK
   694					; T1/ ADDRESS OF 4-WORD BREAK SET MASK
   695					;	PUSHJ	P,CMRFLD
   696					; RETURNS +1, FIELD COPIED TO ATOM BUFFER, TERMINATOR BACKED UP
   697
   698	000615'	202 03 0 00 000064'	CMRFLD:	MOVEM	T1,CMRBRK	;SAVE BREAK TABLE ADDRESS
   699	000616'	602 14 0 00 040000 		TXNE	F,CMDEFF	;DEFAULT GIVEN?
   700	000617'	254 00 0 00 000644'		JRST	CMRATT		;YES, ALREADY IN BUFFER
   701	000620'	260 17 0 00 000765'	CMRAT1:	PUSHJ	P,CMCIN		;GET A CHAR
   702	000621'	302 03 0 00 000006 	CMRAT2:	CAIE	T1,CMFREC	;^F RECOGNITION?
   703	000622'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
   704						JRST	[PUSHJ	P,CHKLCH	;YES, RETURN IF ANYTHING NOW
   705							JUMPG	T1,CMRATT	;IN ATOM BFR
   706							PUSHJ	P,CMAMB		;NOTHING THERE, DING
   707	000623'	254 00 0 00 004170'			JRST	CMRAT1]		;KEEP TRYING
   708	000624'	302 03 0 00 000040 		CAIE	T1," "		;SPACE OR TAB?
   709	000625'	306 03 0 00 000011 		CAIN	T1,.CHTAB
   710						JRST	[PUSHJ	P,CHKLCH	;YES, RETURN IF ANYTHING
   711							JUMPG	T1,CMRATT	;IN ATOM BFR
   712	000626'	254 00 0 00 004174'			JRST	CMRAT1]		;OTHERWISE IGNORE
   713	000627'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;OR EOL?
   714	000630'	254 00 0 00 000643'		JRST	CMRATR		;YES
   715	000631'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP REQUEST?
   716						JRST	[TXO	F,CMQUES	;YES, FLAG
   717	000632'	254 00 0 00 004177'			JRST	CMRATT]
   718	000633'	200 04 0 00 000003 		move	T2,t1		;get copy of char
   719	000634'	231 04 0 00 000040 		IDIVI	T2,40		;COMPUTE INDEX TO BIT MASK
   720	000635'	200 05 0 05 000000'		MOVE	T3,BITS(t3)
   721	000636'	270 04 0 00 000064'		ADD	T2,CMRBRK
   722	000637'	612 05 0 04 000000 		TDNE	T3,0(t2)	;BREAK CHARACTER?
   723	000640'	254 00 0 00 000643'		JRST	CMRATR		;YES
   724	000641'	260 17 0 00 000747'	CMRAT3:	PUSHJ	P,STOLCH	;BUILD KEYWORD STRING
   725	000642'	254 00 0 00 000620'		JRST	CMRAT1
   726
   727	000643'	260 17 0 00 001116'	CMRATR:	PUSHJ	P,CMDIP		;PUT CHARACTER BACK IN BUFFER
   728	000644'	254 00 0 00 000757'	CMRATT:	PJRST	TIELCH		;TIE OFF ATOM BUFFER AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 23
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0318

   729
   730					;FILE SPEC FIELD PARSE ROUTINE - TAKES BREAK SET MASK
   731					; T1/ ADDRESS OF 4-WORD BREAK SET MASK
   732					;	PUSHJ	P,CFRFLD
   733					; RETURNS +1, FIELD COPIED TO ATOM BUFFER, TERMINATOR BACKED UP
   734
   735	000645'	202 03 0 00 000064'	CFRFLD:	MOVEM	T1,CMRBRK	;SAVE BREAK TABLE ADDRESS
   736	000646'	602 14 0 00 040000 		TXNE	F,CMDEFF	;DEFAULT GIVEN?
   737	000647'	254 00 0 00 000674'		JRST	CFRATT		;YES, ALREADY IN BUFFER
   738	000650'	260 17 0 00 000765'	CFRAT1:	PUSHJ	P,CMCIN		;GET A CHAR
   739	000651'	302 03 0 00 000006 	CFRAT2:	CAIE	T1,CMFREC	;^F RECOGNITION?
   740	000652'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
   741	000653'	254 00 0 00 000674'		JRST	CFRATT		;YES
   742	000654'	302 03 0 00 000040 		CAIE	T1," "		;SPACE OR TAB?
   743	000655'	306 03 0 00 000011 		CAIN	T1,.CHTAB
   744						JRST	[PUSHJ	P,CHKLCH	;YES, RETURN IF ANYTHING
   745							JUMPG	T1,CFRATT	;IN ATOM BFR
   746	000656'	254 00 0 00 004201'			JRST	CFRAT1]		;OTHERWISE IGNORE
   747	000657'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;OR EOL?
   748	000660'	254 00 0 00 000673'		JRST	CFRATR		;YES
   749	000661'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP REQUEST?
   750						JRST	[TXO	F,CMQUES	;YES, FLAG
   751	000662'	254 00 0 00 004204'			JRST	CFRATT]
   752	000663'	200 04 0 00 000003 		move	T2,t1		;get copy of char
   753	000664'	231 04 0 00 000040 		IDIVI	T2,40		;COMPUTE INDEX TO BIT MASK
   754	000665'	200 05 0 05 000000'		MOVE	T3,BITS(t3)
   755	000666'	270 04 0 00 000064'		ADD	T2,CMRBRK
   756	000667'	612 05 0 04 000000 		TDNE	T3,0(t2)	;BREAK CHARACTER?
   757	000670'	254 00 0 00 000673'		JRST	CFRATR		;YES
   758	000671'	260 17 0 00 000747'	CFRAT3:	PUSHJ	P,STOLCH	;BUILD KEYWORD STRING
   759	000672'	254 00 0 00 000650'		JRST	CFRAT1
   760
   761	000673'	260 17 0 00 001116'	CFRATR:	PUSHJ	P,CMDIP		;PUT CHARACTER BACK IN BUFFER
   762	000674'	254 00 0 00 000757'	CFRATT:	PJRST	TIELCH		;TIE OFF ATOM BUFFER AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 24
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0319

   763
   764					;ATOM READ FOR SPECIAL FIELDS - DOES NOT ALLOW RECOGNITION
   765					;READ FIELD TO CR
   766
   767	000675'	624 14 0 00 002000 	CMRSTR:	TXZA	F,CMTF1		;FLAG NO TERMINATE ON SPACE
   768						; ..			;CONTINUE IN CMRSPC
   769
   770					;READ FIELD TO SPACE OR CR
   771
   772	000676'	660 14 0 00 002000 	CMRSPC:	TXO	F,CMTF1		;FLAG TERMINATE ON SPACE
   773	000677'	602 14 0 00 040000 		TXNE	F,CMDEFF	;HAVE FIELD ALREADY?
   774	000700'	263 17 0 00 000000 		POPJ	P,0		;YES
   775	000701'	260 17 0 00 000765'	CMRSP1:	PUSHJ	P,CMCIN		;GET CHAR
   776	000702'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP?
   777						JRST	[TXO	F,CMQUES	;YES
   778	000703'	254 00 0 00 004206'			POPJ	P,0]
   779	000704'	302 03 0 00 000033 		CAIE	T1,.CHESC	;RECOG REQUEST?
   780	000705'	306 03 0 00 000006 		CAIN	T1,CMFREC
   781						JRST	[PUSHJ	P,CMAMB		;DING
   782	000706'	254 00 0 00 004210'			JRST	CMRSP1]		;CONTINUE
   783	000707'	302 03 0 00 000011 		CAIE	T1,.CHTAB
   784	000710'	306 03 0 00 000040 		CAIN	T1," "		;END OF FIELD?
   785						JRST	[JXE	F,CMTF1,.+1	;CONTINUE IF NOT TERMINATING ON BLANK
   786							PUSHJ	P,CHKLCH	;SEE IF ANY NON-BLANK SEEN
   787							JUMPE	T1,CMRSP1	;JUMP IF LEADING BLANK
   788	000711'	254 00 0 00 004212'			JRST	CMRATT]		;TERMINATING BLANK
   789	000712'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;END OF LINE?
   790	000713'	254 00 0 00 000643'		JRST	CMRATR		;YES
   791	000714'	260 17 0 00 000747'		PUSHJ	P,STOLCH	;NO, CHAR TO ATOM BUFFER
   792	000715'	254 00 0 00 000701'		JRST	CMRSP1		;CONTINUE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 25
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0320

   793					;READ QUOTED STRING INTO ATOM BUFFER
   794					;STRING DELIMITED BY ", "" MEANS LITERAL "
   795
   796	000716'	602 14 0 00 040000 	CMRQST:	TXNE	F,CMDEFF	;HAVE DEFAULT?
   797	000717'	254 00 0 00 004220'		RETSKP			;YES
   798	000720'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;GET FIRST CHAR
   799	000721'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;FIRST CHAR IS HELP?
   800						JRST	[TXO	F,CMQUES	;YES
   801	000722'	254 00 0 00 004222'			RETSKP]
   802	000723'	302 03 0 00 000042 		CAIE	T1,CMQTCH	;START OF STRING?
   803	000724'	263 17 0 00 000000 		POPJ	P,0		;NO, FAIL
   804	000725'	260 17 0 00 000765'	CMRQS1:	PUSHJ	P,CMCIN		;READ NEXT CHAR
   805	000726'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;LINE ENDED UNEXPECTEDLY?
   806	000727'	254 00 0 00 004224'		JRST	[PJRST	CMDIP]	;YES, PUT LF BACK AND RETURN FAIL
   807	000730'	302 03 0 00 000042 		CAIE	T1,CMQTCH	;ANOTHER QUOTE?
   808	000731'	254 00 0 00 000740'		JRST	CMRQS2		;NO, GO STORE CHARACTER
   809	000732'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;YES, PEEK AT ONE AFTER
   810	000733'	306 03 0 00 000042 		CAIN	T1,CMQTCH	;PAIR OF QUOTES?
   811	000734'	254 00 0 00 000740'		JRST	CMRQS2		;YES, STORE ONE
   812	000735'	260 17 0 00 001116'		PUSHJ	P,CMDIP		;NO, PUT BACK NEXT CHAR
   813	000736'	260 17 0 00 000757'		PUSHJ	P,TIELCH	;TIE OFF ATOM BUFFER
   814	000737'	254 00 0 00 004220'		RETSKP			;GOOD
   815
   816	000740'	260 17 0 00 000747'	CMRQS2:	PUSHJ	P,STOLCH	;STOR CHAR IN ATOM BUFFER
   817	000741'	254 00 0 00 000725'		JRST	CMRQS1		;KEEP LOOKING
   818
   819					;INIT ATOM BUFFER
   820
   821	000742'	200 03 0 10 000007 	INILCH:	MOVE	T1,.CMABP(P2)	;GET PTR
   822	000743'	202 03 0 00 000056'		MOVEM	T1,ATBPTR
   823	000744'	200 03 0 10 000010 		MOVE	T1,.CMABC(P2)	;GET SIZE
   824	000745'	202 03 0 00 000057'		MOVEM	T1,ATBSIZ
   825	000746'	254 00 0 00 001072'		PJRST	CMSKSP		;FLUSH INITIAL SPACES
   826
   827					;STORE CHARACTER IN ATOM BUFFER
   828
   829	000747'	375 00 0 00 000057'	STOLCH:	SOSGE	ATBSIZ		;ROOM?
   830	000750'	260 17 0 00 003773'		$STOP(ABS,Atom buffer too small) ;NO
   831	000752'	136 03 0 00 000056'		IDPB	T1,ATBPTR
   832	000753'	263 17 0 00 000000 		POPJ	P,0
   833
   834					;CHECK NUMBER OF CHARACTERS IN ATOM BUFFER
   835
   836	000754'	200 03 0 10 000010 	CHKLCH:	MOVE	T1,.CMABC(P2)	;GET ORIG COUNT
   837	000755'	274 03 0 00 000057'		SUB	T1,ATBSIZ	;COMPUTE DIFFERENCE
   838	000756'	263 17 0 00 000000 		POPJ	P,0
   839
   840					;TIE OFF ATOM BUFFER
   841
   842	000757'	337 00 0 00 000057'	TIELCH:	SKIPG	ATBSIZ		;ROOM FOR NULL?
   843	000760'	260 17 0 00 000750'		PUSHJ	P,S..ABS	;NO, LOSE
   844	000761'	400 03 0 00 000000 		SETZ	T1,0
   845	000762'	200 05 0 00 000056'		MOVE	T3,ATBPTR	;GET POINTER
   846	000763'	136 03 0 00 000005 		IDPB	T1,T3		;DEPOSIT WITHOUT CHANGING PTR
   847	000764'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 26
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0321

   848
   849					;GET NEXT INPUT CHARACTER FOR PROCESSING
   850					;APPEND TEXT TO BUFFER IF NECESSARY WITH INTERNAL TEXTI
   851					;	PUSHJ	P,CMCIN
   852					; RETURNS +1 ALWAYS, T1/ CHARACTER
   853
   854					CMCIN:	SOJL	P5,[SETZ P5,0		;MAKE INPUT EXACTLY EMPTY
   855							PUSHJ	P,CMCIN1	;NONE LEFT, GO GET MORE
   856	000765'	361 13 0 00 004234'			JRST	CMCIN]
   857	000766'	134 03 0 00 000012 		ILDB	T1,P4		;GET NEXT ONE
   858	000767'	370 00 0 00 000011 		SOS	P3		;UPDATE FREE COUNT
   859	000770'	306 03 0 00 000006 		CAIN	T1,CMFREC	;^F?
   860						JRST	[TXO F,CM%ESC+CMCFF	;YES
   861	000771'	254 00 0 00 004240'			 POPJ	P,0]
   862	000772'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
   863						JRST	[TXO F,CM%ESC		;YES
   864	000773'	254 00 0 00 004242'			 POPJ	P,0]
   865	000774'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;END OF LINE?
   866	000775'	661 14 0 00 100000 		TXO	F,CM%EOC	;YES, MEANS END OF COMMAND
   867	000776'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 27
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0322

   868
   869	000777'	202 14 0 00 000065'	CMCIN1:	MOVEM	F,CMCSF		;SAVE F
   870	001000'	402 00 0 00 000076'		SETZM CMCBLF		;INIT ACCUMULATED FLAGS
   871	001001'	200 03 0 00 004244'		MOVE	T1,[XWD P1,CMCSAC] ;PREPARE FOR BLT
   872	001002'	251 03 0 00 000071'		BLT	T1,CMCSAC+3	;SAVE P1-P4
   873	001003'	205 03 0 00 565000 		MOVX	T1,RD%BRK+RD%PUN+RD%BEL+RD%CRF+RD%JFN+RD%BBG ;SETUP FLAGS
   874	001004'	603 14 0 00 000020 		TXNE	F,CM%NJF	;WERE JFN'S PASSED?
   875	001005'	621 03 0 00 004000 		TXZ	T1,RD%JFN	;NO, PASS THAT FACT
   876	001006'	603 14 0 00 004000 		TXNE	F,CM%RAI	;RAISE INPUT REQUESTED?
   877	001007'	661 03 0 00 000200 		TXO	T1,RD%RAI	;YES, PASS IT
   878	001010'	202 03 0 00 000121'		MOVEM	T1,TI+.RDFLG	;STORE FLAGS FOR TEXTI
   879	001011'	201 03 0 00 000010 		MOVX	T1,.RDBKL	;GET NUMBER OF WORDS TO PASS
   880	001012'	202 03 0 00 000120'		MOVEM	T1,TI+.RDCWB	;AND STORE IT
   881	001013'	200 03 0 10 000002 		MOVE	T1,.CMRTY(P2)	;SETUP ^R BUFFER
   882	001014'	202 03 0 00 000126'		MOVEM	T1,TI+.RDRTY	;FOR TXTI
   883	001015'	200 03 0 10 000003 		MOVE	T1,.CMBFP(P2)	;SETUP TOP OF BUFFER
   884	001016'	202 03 0 00 000125'		MOVEM	T1,TI+.RDBFP	;
   885	001017'	402 00 0 00 000127'		SETZM	TI+.RDBRK	;NO SPECIAL BREAK MASK
   886	001020'	202 12 0 00 000130'		MOVEM	P4,TI+.RDBKL	;STORE CURRENT PTR FOR BACK UP LIMIT
   887	001021'	202 11 0 00 000075'		MOVEM	P3,CMCSC	;SAVE CURRENT COUNT
   888	001022'	274 11 0 00 000013 		SUB	P3,P5		;ADJUST COUNT FOR ADVANCE INPUT
   889	001023'	202 11 0 00 000124'		MOVEM	P3,TI+.RDDBC	;AND STORE FOR THE TEXT INPUT
   890	001024'	332 00 0 00 000013 		SKIPE	P5		;PUSH POINTER PAST CURRENT INPUT
   891	001025'	133 00 0 00 000012 		IBP	P4		;
   892	001026'	367 13 0 00 001025'		SOJG	P5,.-1		;
   893	001027'	202 12 0 00 000123'		MOVEM	P4,TI+.RDDBP	;STORE FOR INPUT
   894	001030'	200 01 0 10 000001 		MOVE	S1,.CMIOJ(P2)	;GET THE JFNS
   895	001031'	202 01 0 00 000122'		MOVEM	S1,TI+.RDIOJ	;STORE FOR TEXTI
   896	001032'	337 00 0 00 000011 	CMCIN2:	SKIPG	P3		;ROOM IN BUFFER FOR MORE INPUT?
   897	001033'	260 17 0 00 003773'		$STOP(TMT,Too much text) 	;NO
   898	001035'	201 01 0 00 000120'		MOVEI	S1,TI		;GET LOCATION OF TEXTI BLOCK
   899	001036'	260 17 0 00 003001'		PUSHJ	P,K%TXTI	;DO INTERNAL TEXTI
   900						JUMPF	[MOVEI	S1,EREOF$
   901	001037'	322 00 0 00 004252'			JRST	XCOMEO]
   902	001040'	434 14 0 00 000121'		IOR	F,TI+.RDFLG	;GET FLAGS
   903	001041'	603 14 0 00 000020 		TXNE	F,RD%BFE	;BUFFER EMPTY?
   904	001042'	254 00 0 00 001067'		JRST	CMCIN4		;YES
   905	001043'	437 14 0 00 000076'		IORB	F,CMCBLF	;ACCUMULATE FLAGS (RD%BLR)
   906	001044'	135 03 0 00 000123'		LDB	T1,TI+.RDDBP		;GET LAST CHAR
   907	001045'	200 12 0 00 000123'		MOVE	P4,TI+.RDDBP	;REMEMBER POINTER
   908	001046'	200 11 0 00 000124'		MOVE	P3,TI+.RDDBC	;AND COUNT
   909	001047'	302 03 0 00 000012 		CAIE	T1,.CHLFD	;AN ACTION CHAR?
   910	001050'	306 03 0 00 000033 		CAIN	T1,.CHESC
   911	001051'	254 00 0 00 001056'		JRST	CMCIN3		;YES
   912	001052'	302 03 0 00 000077 		CAIE	T1,CMHLPC
   913	001053'	306 03 0 00 000006 		CAIN	T1,CMFREC	;^F?
   914	001054'	254 00 0 00 001056'		JRST	CMCIN3		;YES
   915	001055'	254 00 0 00 001032'		JRST	CMCIN2		;NO, GET MORE INPUT
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 28
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0323

   916
   917	001056'	603 14 0 00 000010 	CMCIN3:	TXNE	F,RD%BLR	;BACKUP LIMIT REACHED?
   918	001057'	254 00 0 00 001067'		JRST	CMCIN4		;YES, CLEANUP AND REPARSE
   919	001060'	200 13 0 00 000075'		MOVE	P5,CMCSC	;RECOVER PREVIOUS COUNT
   920	001061'	274 13 0 00 000011 		SUB	P5,P3		;COMPUTE CHARACTERS JUST APPENDED
   921	001062'	205 03 0 00 000066'		MOVSI	T1,CMCSAC	;RESTORE ACS P1-P4, F
   922	001063'	541 03 0 00 000007 		HRRI	T1,P1
   923	001064'	251 03 0 00 000012 		BLT	T1,P4
   924	001065'	200 14 0 00 000065'		MOVE	F,CMCSF
   925	001066'	263 17 0 00 000000 		POPJ	P,0
   926
   927					;HERE ON RETURN FROM TEXTI WHICH REACHED BACKUP LIMIT OR WHICH RETURNED
   928					;BECAUSE BUFFER EMPTY.  MUST REPARSE LINE.  RESTORE ACS, BUT LEAVE
   929					;MAIN POINTER AS RETURNED BY TEXTI.
   930
   931	001067'	120 07 0 00 000066'	CMCIN4:	DMOVE	P1,CMCSAC	;RESTORE P1&P2
   932	001070'	200 14 0 00 000065'		MOVE	F,CMCSF		;RESTORE F
   933	001071'	254 00 0 00 000375'		JRST	XCOMRP		;RETURN REPEAT PARSE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 29
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0324

   934
   935					;SKIP LEADING TABS OR SPACES
   936
   937	001072'	260 17 0 00 000765'	CMSKSP:	PUSHJ	P,CMCIN		;GET A CHAR
   938	001073'	302 03 0 00 000040 		CAIE	T1," "		;SPACE OR TAB?
   939	001074'	306 03 0 00 000011 		CAIN	T1,.CHTAB
   940	001075'	254 00 0 00 001072'		JRST	CMSKSP		;YES, KEEP LOOKING
   941	001076'	254 00 0 00 001116'		PJRST	CMDIP		;NO, PUT IT BACK
   942
   943					;LOCAL ROUTINE - SUBTRACT ASCII BYTE PTRS
   944					;	T1, T2/ ASCII BYTE PTRS
   945					;	PUSHJ	P,SUBBP
   946					; RETURNS +1 ALWAYS,
   947					; T1/ T1-T2
   948
   949	001077'	550 05 0 00 000003 	SUBBP:	HRRZ	T3,T1		;COMPUTE 5*(A1-A2)+(P2-P1)/7
   950	001100'	275 05 0 04 000000 		SUBI	T3,0(T2)
   951	001101'	221 05 0 00 000005 		IMULI	T3,5		;COMPUTE NUMBER CHARS IN THOSE WORDS
   952	001102'	135 03 0 00 004254'		LDB	T1,[POINT 6,T1,5]
   953	001103'	135 04 0 00 004255'		LDB	T2,[POINT 6,T2,5]
   954	001104'	276 04 0 00 000003 		SUBM	T2,T1
   955	001105'	231 03 0 00 000007 		IDIVI	T1,7
   956	001106'	270 03 0 00 000005 		ADD	T1,T3
   957	001107'	263 17 0 00 000000 		POPJ	P,0
   958
   959					;LOCAL ROUTINE - DELETE LAST CHAR INPUT
   960
   961	001110'	200 03 0 00 000012 	CMDCH:	MOVE	T1,P4
   962	001111'	260 17 0 00 001136'		PUSHJ	P,DBP		;DECREMENT BYTE PTR
   963	001112'	202 03 0 00 000012 		MOVEM	T1,P4
   964	001113'	350 00 0 00 000011 		AOS	P3		;ADJUST SPACE COUNT
   965	001114'	400 13 0 00 000000 		SETZ	P5,0		;CAN'T BE ANY WAITING INPUT
   966	001115'	263 17 0 00 000000 		POPJ	P,0
   967
   968					;LOCAL ROUTINE - DECREMENT INPUT POINTER
   969
   970	001116'	135 03 0 00 000012 	CMDIP:	LDB	T1,P4		;CHECK THE CHARACTER
   971	001117'	302 03 0 00 000006 		CAIE	T1,CMFREC	;A RECOG REQUEST CHAR?
   972	001120'	306 03 0 00 000033 		CAIN	T1,.CHESC
   973	001121'	630 14 0 00 004237'		TXZ	F,CM%ESC+CMCFF	;YES, RESET FLAGS
   974	001122'	200 03 0 00 000012 		MOVE	T1,P4		;GET POINTER
   975	001123'	260 17 0 00 001136'		PUSHJ	P,DBP		;DECREMENT IT
   976	001124'	202 03 0 00 000012 		MOVEM	T1,P4		;PUT IT BACK
   977	001125'	350 00 0 00 000013 		AOS	P5		;ADJUST COUNTS
   978	001126'	350 00 0 00 000011 		AOS	P3
   979	001127'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 30
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0325

   980
   981					;LOCAL ROUTINE - DEPOSIT INTO INPUT BUFFER
   982
   983	001130'	260 17 0 00 001173'	CMDIB:	PUSHJ	P,CMCOUT	;TYPE THE CHAR
   984	001131'	400 13 0 00 000000 	CMDIBQ:	SETZ	P5,0		;CLEAR ADVANCE COUNT
   985	001132'	375 00 0 00 000011 		SOSGE	P3		;ROOM?
   986	001133'	260 17 0 00 000750'		PUSHJ	P,S..ABS	;NO
   987	001134'	136 03 0 00 000012 		IDPB	T1,P4		;APPEND BYTE TO USER'S BUFFER
   988	001135'	263 17 0 00 000000 		POPJ	P,0
   989
   990					;LOCAL ROUTINE - DECREMENT BYTE POINTER
   991
   992	001136'	370 00 0 00 000003 	DBP:	SOS	T1		;BACK OFF ONE WORD
   993	001137'	133 00 0 00 000003 		IBP	T1		;AND THEN GO FORWARD 4 TIMES
   994	001140'	133 00 0 00 000003 		IBP	T1
   995	001141'	133 00 0 00 000003 		IBP	T1
   996	001142'	133 00 0 00 000003 		IBP	T1
   997	001143'	254 00 0 00 003747'		$RETT			;THEN RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 31
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0326

   998
   999					;APPEND CHARACTER TO INPUT BUFFER
  1000					; T1/ CHARACTER
  1001
  1002	001144'	202 03 0 00 000006 	CMAPC:	MOVEM	T1,T4		;SAVE CHAR
  1003	001145'	200 04 0 00 000013 		MOVE	T2,P5		;ADVANCE COUNT
  1004	001146'	133 04 0 00 000012 		ADJBP	T2,P4		;COMPUTE POINTER TO END OF INPUT
  1005	001147'	136 06 0 00 000004 		IDPB	T4,T2		;APPEND THE CHAR
  1006	001150'	350 00 0 00 000013 		AOS	P5		;UPDATE ADVANCE COUNT
  1007	001151'	263 17 0 00 000000 		POPJ	P,0
  1008
  1009					;DO CALLER-SUPPLIED HELP TEXT IF ANY
  1010
  1011	001152'				DOHLP:	HRROI	T1,[ASCIZ /
  1012	001152'	561 03 0 00 004256'	  or/]
  1013	001153'	602 14 0 00 010000 		TXNE	F,CMQUE2	;IN ALTERNATE HELP POSSIBILITIES?
  1014	001154'	260 17 0 00 001175'		PUSHJ	P,CMSOUT	;YES, NOT ALTERNATIVE
  1015	001155'	607 14 0 00 000004 		TXNN	F,CM%HPP	;HAVE HELP POINTER?
  1016	001156'	263 17 0 00 000000 		POPJ	P,0		;NO
  1017	001157'	201 03 0 00 000040 		MOVEI	T1," "
  1018	001160'	260 17 0 00 001173'		PUSHJ	P,CMCOUT	;SPACE BEFORE USER TEXT
  1019	001161'	550 03 0 00 000007 		HRRZ	T1,P1		;LOAD ADDRESS
  1020	001162'	200 03 0 03 000002 		MOVE	T1,.CMHLP(T1)	;YES, GET IT
  1021	001163'	260 17 0 00 001175'		PUSHJ	P,CMUSOU	;YES, TYPE IT
  1022	001164'	263 17 0 00 000000 		POPJ	P,0
  1023
  1024					;HANDLE AMBIGUOUS TYPEIN
  1025
  1026	001165'	627 14 0 00 400000 	CMAMB:	TXZN	F,CM%ESC	;ESC SEEN?
  1027	001166'	254 00 0 00 004270'		JRST	[NOPARS (NPXAMB,UNRECOGNIZED CONTROL CHARACTER)] ;NO, SAME AS UNREC
  1028	001167'	260 17 0 00 001110'		PUSHJ	P,CMDCH		;FLUSH RECOG CHAR FROM BUFFER
  1029	001170'	201 03 0 00 000007 		MOVEI	T1,.CHBEL	;INDICATE AMBIGUOUS
  1030	001171'	260 17 0 00 001173'		PUSHJ	P,CMCOUT
  1031	001172'	254 00 0 00 000353'		JRST	XCOMRF		;GET MORE INPUT AND RESTART
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 32
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0327

  1032					;OUTPUT CHARACTER TO SPECIFIED DESTINATION
  1033					; T1/ CHAR
  1034					;	PUSHJ	P,CMCOUT
  1035					; RETURNS +1 ALWAYS
  1036
  1037	001173'	051 01 0 00 000003 	CMCOUT:	OUTCHR	T1			;OUTPUT THE CHARACTER
  1038	001174'	263 17 0 00 000000 		POPJ	P,0
  1039
  1040					;OUTPUT STRING FROM CURRENT CONTEXT
  1041					; T1/ STRING PTR
  1042					;	PUSHJ	P,CMSOUT
  1043					; RETURN +1 ALWAYS
  1044
  1045	001175'				CMUSOU:
  1046	001175'	554 01 0 00 000003 	CMSOUT:	HLRZ	S1,T1			;GET LH OF POINTER TO S1
  1047	001176'	306 01 0 00 777777 		CAIN	S1,-1			;IS IT A -1?
  1048	001177'	201 01 0 00 440700 		MOVEI	S1,(POINT 7,0)		;YES, MAKE IT POINT 7,
  1049	001200'	306 01 0 00 440700 		CAIN	S1,(POINT 7,0)		;IS IT A WORD-ALIGNED POINTER?
  1050	001201'	254 00 0 00 001207'		JRST	CMSO.2			;YES, DO AN OUTSTR FOR EFFICIENCY
  1051	001202'	504 03 0 00 000001 		HRL	T1,S1			;NO, COMPLETE THE BYTE POINTER
  1052	001203'	134 01 0 00 000003 	CMSO.1:	ILDB	S1,T1			;GET A CHARACTER
  1053	001204'	322 01 0 00 003750'		JUMPE	S1,.POPJ		;TERMINATE ON NULL
  1054	001205'	051 01 0 00 000001 		OUTCHR	S1			;OUTPUT THE CHARACTER
  1055	001206'	254 00 0 00 001203'		JRST	CMSO.1			;AND LOOP FOR MORE
  1056
  1057	001207'	051 03 0 03 000000 	CMSO.2:	OUTSTR	0(T1)			;TYPE OUT THE STRING
  1058	001210'	263 17 0 00 000000 		POPJ	P,			;AND RETURN
  1059
  1060					;OUTPUT CHARACTER TO SPECIFIED DESTINATION
  1061					; T1/ CHAR
  1062					;	PUSHJ	P,XMCOUT
  1063					; RETURNS +1 ALWAYS
  1064
  1065	001211'	051 01 0 00 000003 	XMCOUT:	OUTCHR	T1
  1066	001212'	306 03 0 00 000011 		CAIN	T1,^D9
  1067	001213'	254 00 0 00 001230'		JRST	XMCS.1
  1068	001214'	254 00 0 00 001236'		JRST	XMCS.2
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 33
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0328

  1069
  1070					;OUTPUT STRING FROM CURRENT CONTEXT
  1071					; T1/ STRING PTR
  1072					;	PUSHJ	P,XMSOUT
  1073					; RETURN +1 ALWAYS
  1074
  1075	001215'	554 01 0 00 000003 	XMSOUT:	HLRZ	S1,T1			;GET LH OF POINTER TO S1
  1076	001216'	306 01 0 00 777777 		CAIN	S1,-1			;IS IT A -1?
  1077	001217'	505 03 0 00 440700 		HRLI	T1,(POINT 7,0)		;YES, MAKE POINT 7
  1078	001220'	134 01 0 00 000003 	XMSO.1:	ILDB	S1,T1			;GET A CHARACTER
  1079	001221'	322 01 0 00 003750'		JUMPE	S1,.POPJ		;TERMINATE ON NULL
  1080	001222'	260 17 0 00 001225'		PUSHJ	P,XMCSPC		;GO OUTPUT THE CHARACTER
  1081	001223'	254 00 0 00 001220'		JRST	XMSO.1			;AND LOOP FOR MORE
  1082	001224'	263 17 0 00 000000 		POPJ	P,0
  1083
  1084	001225'	051 01 0 00 000001 	XMCSPC:	OUTCHR	S1			;OUTPUT A CHARACTER
  1085	001226'	302 01 0 00 000011 		CAIE	S1,^D9
  1086	001227'	254 00 0 00 001236'		JRST	XMCS.2
  1087	001230'	200 01 0 00 000114'	XMCS.1:	MOVE	S1,CURPOS
  1088	001231'	271 01 0 00 000010 		ADDI	S1,8
  1089	001232'	231 01 0 00 000010 		IDIVI	S1,8
  1090	001233'	221 01 0 00 000010 		IMULI	S1,8
  1091	001234'	202 01 0 00 000114'		MOVEM	S1,CURPOS
  1092	001235'	334 00 0 00 000000 		SKIPA
  1093	001236'	350 00 0 00 000114'	XMCS.2:	AOS	CURPOS		;MAINTAIN POSITION
  1094	001237'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 34
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0329

  1095
  1096					;CHECK ALL BYTE PTRS
  1097					; T1/ PTR TO LIST OF ADDRESSES, TERMINATED BY 0
  1098
  1099	001240'	260 17 0 00 003723'	CHKABP:	SAVE	Q1		;SAVE ACS
  1100	001241'	260 17 0 00 003733'		SAVE	Q2		;THAT WE USE
  1101	001242'	202 03 0 00 000015 		MOVEM	T1,Q1		;SAVE LIST PTR
  1102	001243'	200 16 0 15 000000 	CHKAB1:	MOVE	Q2,0(Q1)	;GET NEXT ADDRESS
  1103	001244'	322 16 0 00 003747'		JUMPE	Q2,.RETT		;DONE ON 0
  1104	001245'	271 16 0 10 000000 		ADDI	Q2,0(P2)	;MAKE PTR TO BLOCK
  1105	001246'	200 03 0 16 000000 		MOVE	T1,0(Q2)	;GET BYTE PTR
  1106	001247'	260 17 0 00 001252'		PUSHJ	P,CHKBP		;CHECK AND NORMALIZE
  1107	001250'	202 03 0 16 000000 		MOVEM	T1,0(Q2)	;PUT IT BACK
  1108	001251'	344 15 0 00 001243'		AOJA	Q1,CHKAB1	;DO NEXT
  1109
  1110					;CHECK A BYTE PTR
  1111					; T1/ BYTE PTR - IF LH IS -1, PTR IS FIXED
  1112
  1113	001252'	554 04 0 00 000003 	CHKBP:	HLRZ	T2,T1
  1114	001253'	306 04 0 00 777777 		CAIN	T2,-1
  1115	001254'	505 03 0 00 440700 		HRLI	T1,(POINT 7)
  1116	001255'	135 04 0 00 004272'		LDB	T2,[POINT 6,T1,11] ;GET BYTE SIZE
  1117	001256'	133 00 0 00 000003 		IBP	T1		;INCREMENT AND DECREMENT TO NORMALIZE
  1118	001257'	254 00 0 00 001136'		PJRST	DBP
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 35
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0330

  1119
  1120					;************************
  1121					;FUNCTIONS
  1122					;************************
  1123
  1124					;INITIALIZE LINE AND CHECK FOR REDO REQUEST
  1125
  1126	001260'	550 03 0 10 000001 	XCMINI:	HRRZ	T1,.CMIOJ(P2)	;DOING OUTPUT TO TERMINAL?
  1127	001261'	302 03 0 00 000101 		CAXE	T1,.PRIOU	;..
  1128	001262'	254 00 0 00 001313'		JRST	CMINI4		;NO, SKIP REPAIR
  1129	001263'	201 03 0 00 004030'		MOVEI	T1,[BYTE (7).CHCRT,.CHLFD] ;GET TO LEFT MARGIN
  1130	001264'	260 17 0 00 001175'		PUSHJ	P,CMSOUT
  1131	001265'	332 15 0 10 000002 	CMINI1:	SKIPE Q1,.CMRTY(P2)	;DO PROMPT IF ANY
  1132	001266'	316 15 0 10 000003 	CMINI2:	CAMN Q1,.CMBFP(P2)	;STOP AT TOP OF BUFFER
  1133	001267'	254 00 0 00 001272'		JRST	CMINI3
  1134	001270'	134 03 0 00 000015 		ILDB T1,Q1
  1135						JUMPN	T1,[PUSHJ P,CMCOUT
  1136	001271'	326 03 0 00 004273'			    JRST CMINI2]
  1137	001272'	316 12 0 10 000003 	CMINI3:	CAMN	P4,.CMBFP(P2)	;BUFFER EMPTY?
  1138	001273'	254 00 0 00 001313'		JRST	CMINI4		;YES, NO REDO POSSIBLE
  1139	001274'	135 03 0 00 000012 		LDB	T1,P4		;CHECK LAST CHAR
  1140	001275'	306 03 0 00 000012 		CAIN	T1,.CHLFD	;END OF LINE?
  1141	001276'	254 00 0 00 001313'		JRST	CMINI4		;YES, LAST COMMAND OK, NO REDO
  1142	001277'	051 00 0 00 000003 		INCHRW	T1		;GET FIRST CHARACTER
  1143	001300'	306 03 0 00 000010 		CAIN	T1,CMRDOC	;IS IT REDO?
  1144	001301'	254 00 0 00 001322'		JRST	CMINI5		;YES
  1145	001302'	200 04 0 00 000131'		MOVE	T2,TRMUDX	;GET TERMINAL'S UDX
  1146	001303'	200 06 0 00 000003 		MOVE	T4,T1		;COPY CHARACTER
  1147	001304'	242 06 0 00 000035 		LSH	T4,^D36-7	;AND POSITION IT
  1148	001305'	201 03 0 00 000021 		MOVX	T1,.TOTYP	;RE-INSERT INTO INPUT BUFFER
  1149	001306'	201 05 0 00 000006 		MOVEI	T3,T4		;POINT TO STRING
  1150	001307'	200 01 0 00 004275'		MOVE	S1,[XWD 3,T1]	;POINT TO ARGUMENT BLOCK
  1151	001310'	047 01 0 00 000116 		TRMOP.	S1,		;AND DO IT
  1152	001311'	260 17 0 00 003773'		$STOP(TRI,TRMOP RE-INSERT FAILURE)
  1153	001313'	200 03 0 00 000012 	CMINI4:	MOVE	T1,P4		;RESET LINE VARIABLES
  1154	001314'	200 04 0 10 000003 		MOVE	T2,.CMBFP(P2)
  1155	001315'	202 04 0 00 000012 		MOVEM	T2,P4
  1156	001316'	260 17 0 00 001077'		PUSHJ	P,SUBBP		;COMPUTE CHARACTERS IN LINE
  1157	001317'	272 03 0 00 000011 		ADDM	T1,P3		;UPDATE SPACE COUNT
  1158	001320'	400 13 0 00 000000 		SETZ	P5,0		;RESET ADVANCE COUNT
  1159	001321'	254 00 0 00 000410'		JRST	XCOMXI		;RETURN GOOD
  1160
  1161	001322'	200 11 0 10 000005 	CMINI5:	MOVE	P3,.CMCNT(P2)	;RESET VARIABLES TO CURR FIELD
  1162	001323'	200 12 0 10 000004 		MOVE	P4,.CMPTR(P2)
  1163	001324'	400 13 0 00 000000 		SETZ	P5,0		;NO INPUT
  1164	001325'	201 03 0 00 004030'		MOVEI	T1,[BYTE (7).CHCRT,.CHLFD] ;START NEW LINE
  1165	001326'	260 17 0 00 001175'		PUSHJ	P,CMSOUT	;
  1166	001327'	260 17 0 00 000470'		PUSHJ	P,CMRTY1	;RETYPE
  1167	001330'	254 00 0 00 000375'		JRST	XCOMRP		;RETURN TO REPARSE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 36
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0331

  1168
  1169					;SWITCH - LIKE KEYWORD BUT PRECEEDED BY SLASH
  1170
  1171	001331'	660 14 0 00 200000 	XCMSWI:	TXO	F,CMSWF		;NOTE DOING SWITCH
  1172	001332'	602 14 0 00 040000 		TXNE	F,CMDEFF	;DEFAULT GIVEN?
  1173	001333'	254 00 0 00 001346'		JRST	CMKEY0		;YES, SLASH ALREADY ASSUMED
  1174	001334'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;GET FIRST CHAR
  1175	001335'	302 03 0 00 000006 		CAIE	T1,CMFREC	;^F
  1176	001336'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
  1177						JRST	[PUSHJ	P,CMAMB		;YES, INDICATE AMBIGUOUS
  1178	001337'	254 00 0 00 004305'			 JRST	XCMSWI]		;TRY AGAIN
  1179	001340'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP?
  1180						JRST	[SETZ	T1,0
  1181							 MOVE	T2,ATBPTR
  1182							 IDPB	T1,T2
  1183							 MOVE	T1,FNARG	;GET TABLE PTR
  1184							 MOVEI	T1,1(T1)	;POINT TO FIRST TABLE ENTRY
  1185	001341'	254 00 0 00 004307'			 JRST	CMQ2]		;TYPE OPTIONS
  1186	001342'	302 03 0 00 000057 		CAIE	T1,CMSWCH	;THE SWITCH CHARACTER?
  1187						JRST	[PUSHJ	P,CMDIP		;NO, PUT IT BACK
  1188	001343'	254 00 0 00 004325'			 NOPARS	(NPXNSW,UNRECOGNIZABLE SWITCH CONSTRUCTION)] 	;RETURN NO PARSE
  1189	001344'	254 00 0 00 001346'		JRST	CMKEY0		;CONTINUE LIKE KEYWORD
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 37
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0332

  1190					;KEYWORD LOOKUP FUNCTION
  1191
  1192	001345'	620 14 0 00 200000 	XCMKEY:	TXZ	F,CMSWF		;NOT SWITCH
  1193	001346'				CMKEY0:
  1194	001346'	260 17 0 00 000571'	KEYW1:	PUSHJ	P,CMRATM	;READ THE FIELD INTO LOCAL BUFFER
  1195	001347'	200 03 0 00 000061'		MOVE	T1,FNARG	;GET TABLE HEADER ADDRESS
  1196	001350'	200 04 0 10 000007 		MOVE	T2,.CMABP(P2)	;POINT TO KEYWORD BUFFER
  1197	001351'	260 17 0 00 002523'		PUSHJ	P,XTLOOK	;LOOKUP
  1198	001352'	602 14 0 00 400000 		TXNE	F,CMQUES	;HAD "?"
  1199	001353'	254 00 0 00 001431'		JRST	CMQ1		;YES, GO TYPE ALTERNATIVES
  1200	001354'	607 04 0 00 400000 		JXN	T2,TL%NOM,[NOPARS (NPXNOM,NO KEYWORD MATCH)] ;NO MATCH
  1201	001355'	334 00 0 00 000000 
  1202	001356'	254 00 0 00 004335'
  1203						JXN	T2,TL%AMB,[PUSHJ P,CMAMB ;AMBIGUOUS, DING OR FAIL
  1204	001357'	607 04 0 00 200000 				   JRST	 KEYW1]	;GET MORE INPUT
  1205	001360'	334 00 0 00 000000 
  1206	001361'	254 00 0 00 004337'
  1207	001362'	202 03 0 00 000004 		MOVEM	T1,T2		;SAVE TABLE INDEX
  1208	001363'	202 03 0 00 000104'		MOVEM	T1,CRBLK+CR.RES	;AS RESULT
  1209	001364'	603 14 0 00 400000 		JXE	F,CM%ESC,KEYW4	;DONE IF NO REC WANTED
  1210	001365'	334 00 0 00 000000 
  1211	001366'	254 00 0 00 001412'
  1212	001367'	202 05 0 00 000015 		MOVEM	T3,Q1		;SAVE PTR TO REMAINDER OF STRING
  1213	001370'	260 17 0 00 001110'		PUSHJ	P,CMDCH		;FLUSH RECOG CHARACTER
  1214	001371'	134 03 0 00 000015 	KEYW2:	ILDB	T1,Q1		;TYPE REMAINDER OF KEYWORD
  1215	001372'	322 03 0 00 001377'		JUMPE	T1,KEYW3	;DONE
  1216	001373'	260 17 0 00 001130'		PUSHJ	P,CMDIB		;APPEND COMPLETION TO BUFFER
  1217	001374'	306 03 0 00 000072 		CAIN	T1,CMSWTM	;A SWITCH TERMINATOR?
  1218						JRST	[TXZ	F,CM%ESC	;YES, OVERRIDES ESC
  1219							 TXO	F,CM%SWT	;NOTE SWITCH TERMINAOTR
  1220							 TXNN	F,CMSWF		;IN SWITCH?
  1221							 PUSHJ	P,CMDIP		;NO, PUT TERMINATOR BACK
  1222	001375'	254 00 0 00 004341'			 JRST	XCOMXI]		;DONE
  1223	001376'	254 00 0 00 001371'		JRST	KEYW2
  1224
  1225	001377'	602 14 0 00 200000 	KEYW3:	JXE	F,CMSWF,XCOMXI	;DONE IF NOT SWITCH
  1226	001400'	334 00 0 00 000000 
  1227	001401'	254 00 0 00 000410'
  1228	001402'	200 15 0 00 000061'		MOVE	Q1,FNARG	;CHECK FUNCTION FLAGS
  1229	001403'	603 15 0 00 400000 		JXE	Q1,CM%VRQ,XCOMXI ;DONE IF NO VALUE REQUIRED
  1230	001404'	334 00 0 00 000000 
  1231	001405'	254 00 0 00 000410'
  1232	001406'	201 03 0 00 000072 		MOVEI	T1,CMSWTM	;INCLUDE COLON IN RECOGNITION
  1233	001407'	260 17 0 00 001130'		PUSHJ	P,CMDIB
  1234	001410'	661 14 0 00 020000 		TXO	F,CM%SWT	;NOTE SWITCH TERMINATOR
  1235	001411'	254 00 0 00 000417'		JRST	XCOMX1		;INHIBIT ADDITIONAL SPACE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 38
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0333

  1236
  1237	001412'	260 17 0 00 000754'	KEYW4:	PUSHJ	P,CHKLCH	;SEE IF ATOM NON-NULL
  1238	001413'	322 03 0 00 004353'		JUMPE	T1,[NOPARS (NPXNUL,KEYWORD EXPECTED)] ;FAIL IF NULL
  1239	001414'	602 14 0 00 200000 		JXE	F,CMSWF,XCOMXI	;DONE IF NOT SWITCH
  1240	001415'	334 00 0 00 000000 
  1241	001416'	254 00 0 00 000410'
  1242	001417'	260 17 0 00 001072'		PUSHJ	P,CMSKSP	;SKIP SPACES
  1243	001420'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;GET NON-BLANK CHAR
  1244	001421'	306 03 0 00 000072 		CAIN	T1,CMSWTM	;SWITCH TERMINATOR?
  1245						JRST	[TXO	F,CM%SWT	;YES, NOTE
  1246	001422'	254 00 0 00 004355'			 JRST	XCOMXI]		;DONE
  1247	001423'	260 17 0 00 001116'		PUSHJ	P,CMDIP		;NO, PUT IT BACK
  1248	001424'	200 15 0 00 000061'		MOVE	Q1,FNARG
  1249	001425'	607 15 0 00 400000 		JXN	Q1,CM%VRQ,XCOMNP ;FAIL IF VALUE WAS REQUIRED
  1250	001426'	334 00 0 00 000000 
  1251	001427'	254 00 0 00 000436'
  1252	001430'	254 00 0 00 000410'		JRST	XCOMXI		;OTHERWISE OK
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 39
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0334

  1253
  1254					;"?" TYPED, FIRST PARTIAL MATCH FOUND.  TYPE ALL PARTIAL MATCHES
  1255
  1256					CMQ1:	JXN	T2,TL%NOM,[
  1257							JXN	F,CMQUE2,CMRTYP ;DO NOTHING IF NOT FIRST ALTERNATIVE
  1258							HRROI	T1,[ASCIZ / keyword (no defined keywords match this input)/]
  1259							PUSHJ	P,CMSOUT	;TYPE MESSAGE
  1260	001431'	607 04 0 00 400000 			JRST	CMRTYP]		;RETYPE LINE AND CONTINUE
  1261	001432'	334 00 0 00 000000 
  1262	001433'	254 00 0 00 004371'
  1263	001434'	202 03 0 00 000016 	CMQ2:	MOVEM	T1,Q2		;SAVE TABLE INDEX
  1264	001435'	260 17 0 00 001152'		PUSHJ	P,DOHLP		;DO USER HELP IF ANY
  1265	001436'	603 14 0 00 000001 		TXNE	F,CM%SDH	;DEFAULT HELP SUPPRESSED?
  1266	001437'	254 00 0 00 000450'		JRST	CMRTYP		;YES, DONE
  1267	001440'	200 03 0 00 000061'		MOVE	T1,FNARG	;GET TABLE PTR
  1268	001441'	554 15 0 03 000000 		HLRZ	Q1,0(T1)	;GET TABLE SIZE
  1269	001442'	271 15 0 03 000001 		ADDI	Q1,1(T1)	;COMPUTE TABLE END ADDRESS FOR BELOW
  1270						HRROI	T1,[ASCIZ / one of the following:
  1271	001443'	561 03 0 00 004377'	/]
  1272	001444'	260 17 0 00 001175'		PUSHJ	P,CMSOUT
  1273	001445'	402 00 0 00 000114'		SETZM	CURPOS		;CLEAR CURRENT POSITION
  1274	001446'	360 16 0 00 000000 		SOJ	Q2,0		;GETS INCREMENTED BEFORE EACH APPLICATION
  1275	001447'	202 16 0 00 000115'		MOVEM	Q2,Q3SAVE	;SAVE SO IT CAN BE REINITIALIZED
  1276	001450'	402 00 0 00 000107'		SETZM	TABSIZ		;START WITH TAB SIZE OF 0
  1277	001451'	476 00 0 00 000113'		SETOM	PWIDTH		;MARK THAT WE DON'T KNOW WIDTH YET
  1278	001452'	260 17 0 00 001472'	CMTAB1:	PUSHJ	P,CMNXTE	;GET TO NEXT VALID KEYWORD IN TABLE
  1279	001453'	254 00 0 00 001460'		JRST	CMTAB2		;NO MORE IN TABLE
  1280	001454'	260 17 0 00 001572'		PUSHJ	P,CMGTLN	;CALCULATE LENGTH OF KEYWORD
  1281	001455'	311 03 0 00 000107'		CAML	T1,TABSIZ	;LONGEST SEEN SO FAR?
  1282	001456'	202 03 0 00 000107'		MOVEM	T1,TABSIZ	;YES, REMEMBER IT
  1283	001457'	254 00 0 00 001452'		JRST	CMTAB1		;LOOK AT REST
  1284	001460'	200 03 0 00 000107'	CMTAB2:	MOVE	T1,TABSIZ
  1285	001461'	202 03 0 00 000111'		MOVEM	T1,BIGSIZ	;REMEMBER LENGTH OF LONGEST KEYWORD
  1286	001462'	201 03 0 00 000004 		MOVEI	T1,3+1		;3 SPACES AFTER CRLF AND LEAVE AT LEAST
  1287									;ONE SPACE BETWEEN ITEMS
  1288	001463'	272 03 0 00 000107'		ADDM	T1,TABSIZ
  1289	001464'	200 16 0 00 000115'		MOVE	Q2,Q3SAVE	;RESTART TABLE POINTER FOR ACTUAL LISTING
  1290	001465'	260 17 0 00 001472'	CMQ3:	PUSHJ	P,CMNXTE	;GET TO NEXT KEYWORD
  1291	001466'	254 00 0 00 000450'		JRST	CMRTYP		;NO MORE, REPEAT COMMAND SO FAR AND CONTINUE
  1292	001467'	260 17 0 00 001514'		PUSHJ	P,KEYTAB	;JUSTIFY "TYPEBALL" FOR KEYWORD TYPEOUT
  1293	001470'	260 17 0 00 001215'		PUSHJ	P,XMSOUT	;TYPE IT
  1294	001471'	254 00 0 00 001465'		JRST	CMQ3		;TRY NEXT
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 40
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0335

  1295					;ROUTINE WHICH TAKES POINTER TO TABLE IN Q2, POINTER TO END OF TABLE
  1296					;IN Q1, AND RETURNS POINTER TO KEYWORD NAME IN T1. SKIPS UNLESS TABLE
  1297					;IS EXHAUSTED. ONLY CONSIDERS PRINTABLE KEYWORDS, AND UPDATES Q2.
  1298
  1299	001472'	350 00 0 00 000016 	CMNXTE:	AOS	Q2		;LOOK AT NEXT TABLE ENTRY
  1300	001473'	311 16 0 00 000015 		CAML	Q2,Q1		;BEYOND END OF TABLE?
  1301	001474'	263 17 0 00 000000 		POPJ	P,0		;YES, FINISHED LIST
  1302	001475'	554 04 0 16 000000 		HLRZ	T2,0(Q2)	;GET STRING PTR FOR IT
  1303	001476'	260 17 0 00 002455'		PUSHJ	P,CHKTBS	;GET FLAGS FROM STRING
  1304	001477'	606 03 0 00 000003 		JXN	T1,CM%INV+CM%NOR,CMNXTE ;SKIP ENTRY IF INVISIBLE OR NOREC
  1305	001500'	334 00 0 00 000000 
  1306	001501'	254 00 0 00 001472'
  1307	001502'	200 03 0 10 000007 		MOVE	T1,.CMABP(P2)	;PTR TO PARTIAL KEYWORD
  1308	001503'	260 17 0 00 002476'		PUSHJ	P,USTCMP	;COMPARE
  1309	001504'	322 03 0 00 001510'		JUMPE	T1,CMNXT1	;OK IF EXACT MATCH
  1310	001505'	603 03 0 00 200000 		JXE	T1,SC%SUB,.POPJ ;DONE IF NOT SUBSTRING
  1311	001506'	334 00 0 00 000000 
  1312	001507'	254 00 0 00 003750'
  1313
  1314	001510'	554 04 0 16 000000 	CMNXT1:	HLRZ	T2,0(Q2)	;GET PTR TO STRING FOR THIS ENTRY
  1315	001511'	260 17 0 00 002455'		PUSHJ	P,CHKTBS
  1316	001512'	200 03 0 00 000004 		MOVE	T1,T2
  1317	001513'	254 00 0 00 004220'		RETSKP
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 41
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0336

  1318					;ROUTINE TO CALL BEFORE TYPING KEYWORD IN RESPONSE TO "?". GIVE
  1319					;IT USER'S BYTE POINTER IN T1. IT DECIDES WHETHER KEYWORD WILL FIT
  1320					;ON THIS LINE, AND STARTS NEW LINE IF NOT. IT THEN OUTPUTS A TAB,
  1321					;FOLLOWED BY SWITCH DELIMITER (IF KEYWORD IS A SWITCH).
  1322
  1323	001514'	260 17 0 00 003665'	KEYTAB:	PUSHJ	P,.SAVET	;DON'T CLOBBER USER'S BYTE POINTER
  1324	001515'	260 17 0 00 001572'		PUSHJ	P,CMGTLN	;COMPUTE LENGTH OF KEYWORD
  1325	001516'	202 03 0 00 000112'		MOVEM	T1,KEYSIZ	;REMEMBER LENGTH
  1326	001517'	550 03 0 10 000001 		HRRZ	T1,.CMIOJ(P2)	;GET OUTPUT CHANNEL
  1327	001520'	331 00 0 00 000113'		SKIPL	PWIDTH		;DO WE ALREADY KNOW HOW WIDE PAPER IS?
  1328	001521'	254 00 0 00 001533'		JRST	KEY2		;YES, SO DON'T DO SYSTEM CALL
  1329	001522'	201 04 0 00 000110 		MOVEI	T2,^D72		;START DEFAULT
  1330	001523'	202 04 0 00 000113'		MOVEM	T2,PWIDTH
  1331	001524'	200 06 0 00 000131'		MOVE	T4,TRMUDX	;GET OUR UDX
  1332	001525'	201 05 0 00 001012 		MOVX	T3,.TOWID	;FUNCTION FOR CARRIAGE POSITION
  1333	001526'	200 04 0 00 004404'		MOVE	T2,[XWD 2,T3]
  1334	001527'	047 04 0 00 000116 		TRMOP.	T2,0
  1335					;	$STOP(TWF,TRMOP WIDTH FAILURE)
  1336	001530'	201 04 0 00 000110 		MOVEI	T2,^D72		;IF ERROR, MAKE WIDTH 72
  1337	001531'	202 04 0 00 000113'	KEY1:	MOVEM	T2,PWIDTH	;SAVE WIDTH, SO NO JSYS CALL NEXT TIME
  1338	001532'	254 00 0 00 001545'		JRST	KEY4		;FIRST TIME THROUGHM, ASSUME NO TAB NEEDED
  1339	001533'	200 04 0 00 000114'	KEY2:	MOVE	T2,CURPOS		;GET OUR CURRENT POSITION
  1340						PUSHJ	P,[ CMTAB: ADD	T2,TABSIZ  ;FIGURE OUT MAXIMUM PLACE TAB CAN MOVE US TO
  1341								   IDIV	T2,TABSIZ  ;SCALE DOWN TO REALLY WHERE
  1342								   IMUL	T2,TABSIZ  ;TAB WILL BRING US TO
  1343	001534'	260 17 0 00 004405'				   POPJ	P,0]
  1344	001535'	270 04 0 00 000111'		ADD	T2,BIGSIZ	;MAKE SURE WE HAVE ROOM FOR ANOTHER COLUMN
  1345						HRROI	T1,[ASCIZ /
  1346	001536'	561 03 0 00 004030'	/]
  1347	001537'	317 04 0 00 000113'		CAMG	T2,PWIDTH	;ROOM FOR ANOTHER KEYWORD ON THIS LINE?
  1348	001540'	254 00 0 00 001544'		JRST	KEY3		;YES, SO DON'T START NEW LINE
  1349	001541'	260 17 0 00 001215'		PUSHJ	P,XMSOUT	;GET TO NEXT LINE
  1350	001542'	402 00 0 00 000114'		SETZM	CURPOS		;CLEAR CURRENT POSITON
  1351	001543'	304 00 0 00 000000 		CAIA			;NO TAB NECESSARY AT BEGINNING OF LINE
  1352	001544'	260 17 0 00 001551'	KEY3:	PUSHJ	P,TYPTAB	;TYPE A TAB
  1353	001545'	201 03 0 00 000057 	KEY4:	MOVX	T1,CMSWCH
  1354	001546'	602 14 0 00 200000 		TXNE	F,CMSWF		;IN SWITCH FIELD?
  1355	001547'	260 17 0 00 001211'		PUSHJ	P,XMCOUT	;YES, TYPE SWITCH INDICATOR
  1356	001550'	263 17 0 00 000000 		POPJ	P,0		;READY TO TYPE KEYWORD ALL ON SAME LINE NOW
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 42
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0337

  1357					;ROUTINE TO TYPE TAB OF SIZE TABSIZ. IT ASSUMES HARDWARE TABS ARE OF
  1358					;SIZE 8 AND TRIES TO TYPE AS MANY REAL TABS AS IT CAN, AND THEN SPACES
  1359					;OVER REST OF THE WAY.
  1360
  1361	001551'	200 04 0 00 000114'	TYPTAB:	MOVE	T2,CURPOS	;SEE WHERE WE'RE STARTING ON LINE
  1362	001552'	260 17 0 00 004405'		PUSHJ	P,CMTAB		;SEE WHERE WE WANT TO GET TO
  1363	001553'	202 04 0 00 000106'		MOVEM	T2,TABDON	;REMEMBER WHERE WE WANT TO GET TO
  1364	001554'	200 03 0 00 000114'	TYPTB1:	MOVE	T1,CURPOS	;GET WHERE WE ARE
  1365	001555'	271 03 0 00 000010 		ADDI	T1,8		;HARDWARE TAB MIGHT GO THIS FAR
  1366	001556'	620 03 0 00 000007 		TRZ	T1,7		;BUT MAYBE NOT QUITE
  1367	001557'	313 03 0 00 000106'		CAMLE	T1,TABDON	;WILL HARDWARE TAB GO TOO FAR?
  1368	001560'	254 00 0 00 001564'		JRST	TYPTB2		;YES
  1369	001561'	201 03 0 00 000011 		MOVEI	T1,.CHTAB
  1370	001562'	260 17 0 00 001211'		PUSHJ	P,XMCOUT	;AND TYPE IT
  1371	001563'	254 00 0 00 001554'		JRST	TYPTB1		;LOOP FOR AS MANY HARDWARE TABS AS WE CAN GET AWAY WITH
  1372	001564'	200 03 0 00 000114'	TYPTB2:	MOVE	T1,CURPOS
  1373	001565'	311 03 0 00 000106'		CAML	T1,TABDON	;ARE WE THERE YET?
  1374	001566'	263 17 0 00 000000 		POPJ	P,0		;YES, SO TAB IS TYPED
  1375	001567'	201 03 0 00 000040 		MOVEI	T1," "		;NO, SO SPACE OVER
  1376	001570'	260 17 0 00 001211'		PUSHJ	P,XMCOUT
  1377	001571'	254 00 0 00 001564'		JRST	TYPTB2		;AND LOOP FOR REST OF SPACES
  1378
  1379					;ROUTINE TAKING POINTER TO KEYWORD IN T1. RETURNS KEYWORD LENGTH IN
  1380					;T1. GIVES EXTRA 1 FOR SWITCH, ASSUMING A SLASH WILL PREFIX ITS
  1381					;PRINTOUT.
  1382
  1383	001572'	201 06 0 00 000000 	CMGTLN:	MOVEI	T4,0		;COUNT OF NUMBER OF CHARACTERS NEEDED FOR THIS KEYWORD
  1384	001573'	134 04 0 00 000003 	CMGT.1:	ILDB	T2,T1		;PICK UP NEXT CHARACTER FROM KEYWORD
  1385	001574'	302 04 0 00 000000 		CAIE	T2,0		;ASSUME KEYWORD ENDS ON NULL
  1386	001575'	344 06 0 00 001573'		AOJA	T4,CMGT.1	;NOT OVER YET, ACCUMULATE ITS LENGTH
  1387	001576'	602 14 0 00 200000 		TXNE	F,CMSWF		;IS THIS A SWITCH?
  1388	001577'	340 06 0 00 000000 		AOJ	T4,0		;YES, DELIMITER TAKES UP ANOTHER SPACE
  1389	001600'	200 03 0 00 000006 		MOVE	T1,T4		;RETURN LENGTH IN T1
  1390	001601'	263 17 0 00 000000 		POPJ	P,0
  1391
  1392					;ARBITRARY TEXT TO ACTION CHARACTER
  1393
  1394	001602'	260 17 0 00 000675'	XCMTXT:	PUSHJ	P,CMRSTR	;READ STRING
  1395						JXN	F,CMQUES,[PUSHJ P,DOHLP ;DO USER HELP
  1396							HRROI	T1,[ASCIZ / text string/]
  1397							TXNN	F,CM%SDH
  1398							PUSHJ	P,CMSOUT	;TYPE HELP UNLESS SUPPRESSED
  1399	001603'	606 14 0 00 400000 			JRST	CMRTYP]		;NO DEFAULT MESSAGE
  1400	001604'	334 00 0 00 000000 
  1401	001605'	254 00 0 00 004414'
  1402	001606'	254 00 0 00 000410'		JRST	XCOMXI		;DONE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 43
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0338

  1403
  1404					;NOISE WORD FUNCTION
  1405
  1406	001607'	200 03 0 00 000061'	XCMNOI:	MOVE	T1,FNARG	;GET STRING PTR
  1407	001610'	260 17 0 00 001252'		PUSHJ	P,CHKBP		;CHECK AND NORMALIZE
  1408	001611'	202 03 0 00 000102'		MOVEM	T1,XXXPTR
  1409	001612'	607 14 0 00 010000 		TXNN	F,CM%PFE	;PREVIOUS FIELD ENDED WITH ESC?
  1410	001613'	254 00 0 00 001624'		JRST	CMNOI3		;NO
  1411	001614'	661 14 0 00 400000 	CMNOI1:	TXO	F,CM%ESC	;YES, MEANS THIS ONE DID TOO
  1412	001615'	201 03 0 00 000050 		MOVEI	T1,NOIBCH	;TYPE NOISE BEG CHAR
  1413	001616'	260 17 0 00 001130'		PUSHJ	P,CMDIB		; AND PUT IT IN BUFFER
  1414	001617'	134 03 0 00 000102'	CMNOI2:	ILDB	T1,XXXPTR		;GET NEXT NOISE CHAR
  1415						JUMPN	T1,[PUSHJ P,CMDIB	;PUT IT IN BUFFER IF NOT END OF STRING
  1416	001620'	326 03 0 00 004421'			JRST	CMNOI2]
  1417	001621'	201 03 0 00 000051 		MOVEI	T1,NOIECH	;END OF STRING, TYPE END CHAR
  1418	001622'	260 17 0 00 001130'		PUSHJ	P,CMDIB
  1419	001623'	254 00 0 00 000410'		JRST	XCOMXI		;EXIT
  1420
  1421					;PREVIOUS FIELD NOT TERMINATED WITH ESC - PASS NOISE WORD IF TYPED
  1422
  1423	001624'	260 17 0 00 001072'	CMNOI3:	PUSHJ	P,CMSKSP	;BYPASS SPACES
  1424	001625'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;GET FIRST CHAR
  1425	001626'	302 03 0 00 000050 		CAIE	T1,NOIBCH	;NOISE BEG CHAR?
  1426						JRST	[PUSHJ	P,CMDIP		;NO, NOT A NOISE WORD, PUT IT BACK
  1427	001627'	254 00 0 00 004344'			 JRST	XCOMXI]		;RETURN OK
  1428	001630'	260 17 0 00 000765'	CMNOI4:	PUSHJ	P,CMCIN		;GET NEXT NOISE CHAR
  1429	001631'	302 03 0 00 000006 		CAIE	T1,CMFREC	;^F?
  1430	001632'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
  1431						JRST	[PUSHJ	P,CMDCH		;YES, FLUSH IT
  1432	001633'	254 00 0 00 004423'			JRST	CMNOI2]		;COMPLETE NOISE WORD FOR USER
  1433	001634'	134 04 0 00 000102'		ILDB	T2,XXXPTR		;COMPARE WITH GIVEN STRING
  1434	001635'	316 03 0 00 000004 		CAMN	T1,T2
  1435	001636'	254 00 0 00 001630'		JRST	CMNOI4		;STILL SAME AS EXPECTED
  1436	001637'	306 03 0 00 000051 		CAIN	T1,NOIECH	;NOT SAME, STRING ENDED TOGETHER?
  1437	001640'	322 04 0 00 000410'		JUMPE	T2,XCOMXI	;YES, EXIT OK
  1438	001641'	200 03 0 00 004430'		NOPARS	(NPXINW,BAD NOISE WORD)	;NO, PROBABLY BAD NOISE WORD
  1439	001642'	254 00 0 00 000435'
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 44
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0339

  1440
  1441					;CONFIRM
  1442
  1443	001643'	260 17 0 00 001646'	XCMCFM:	PUSHJ	P,CMCFM0	;DO THE WORK
  1444	001644'	254 00 0 00 004437'		 JRST	[NOPARS (NPXNC,CONFIRMATION REQUIRED)]	;FAILED
  1445	001645'	254 00 0 00 000410'		JRST	XCOMXI		;OK
  1446
  1447	001646'	260 17 0 00 000765'	CMCFM0:	PUSHJ	P,CMCIN		;GET CHAR
  1448	001647'	302 03 0 00 000011 		CAIE	T1,.CHTAB	;BLANK?
  1449	001650'	306 03 0 00 000040 		CAIN	T1," "
  1450	001651'	254 00 0 00 001646'		JRST	CMCFM0		;YES, IGNORE
  1451	001652'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP?
  1452						JRST	[PUSHJ	P,DOHLP
  1453						HRROI	T1,[ASCIZ / confirm with carriage return/]
  1454							 TXNN	F,CM%SDH
  1455							 PUSHJ	P,CMSOUT	;GIVE HELP MESSAGE
  1456	001653'	254 00 0 00 004447'			 JRST	CMRTYP]		;RETYPE AND TRY AGAIN
  1457	001654'	302 03 0 00 000006 		CAIE	T1,CMFREC	;^F?
  1458	001655'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
  1459						JRST	[PUSHJ	P,CMAMB		;YES, DING
  1460	001656'	254 00 0 00 004454'			 JRST	CMCFM0]		;TRY AGAIN
  1461	001657'	302 03 0 00 000012 		CAIE	T1,.CHLFD	;NL (NEW LINE, I.E. LINEFEED)
  1462	001660'	263 17 0 00 000000 		POPJ	P,0		;NO, FAIL
  1463	001661'	254 00 0 00 004220'		RETSKP			;YES
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 45
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0340

  1464
  1465					;FLOATING POINT NUMBER
  1466
  1467	001662'	260 17 0 00 003773'	XCMFLT:	$STOP(SFP,Scanning floating point not implemented)
  1468					REPEAT 0,<
  1469						MOVEI	T1,FLTBRK	;USE SPECIAL BREAK SET
  1470						PUSHJ	P,CMRFLD	;READ FIELD
  1471						JXN	F,CMQUES,[PUSHJ P,DOHLP
  1472							HRROI	T1,[ASCIZ / number/]
  1473							TXNN	F,CM%SDH	;SUPPRESS DEFAULT?
  1474							PUSHJ	P,CMSOUT	;NO, DO IT
  1475							JRST	CMRTYP]
  1476						MOVE	T1,.CMABP(P2)	;NUMBER NOW IN ATOM BUFFER, GET PTR
  1477						MOVEM	T1,T1
  1478						IMCALL	.FLIN
  1479						 JRST	[MOVEM	T3,T2		;FAILED, RETURN ERROR CODE
  1480							 JRST	XCOMNP]
  1481						JRST	CMNUMR		;DO NUMBER CLEANUP AND RETURN
  1482					
  1483					;FLOATING POINT BREAK SET MASK, ALLOWS +, -, ., E, NUMBERS
  1484					
  1485					FLTBRK:	777777,,777760
  1486						777644,,001760
  1487						400000,,000760
  1488						400000,,000760
  1489					
  1490					 >;END OF REPEAT 0
  1491					;NUMBER
  1492
  1493	001664'	334 03 0 00 004470'	XCMNUX:	SKIPA	T1,[NUXBRK]	;USE SPECIAL BREAK SET
  1494	001665'	201 03 0 00 001704'	XCMNUM:	MOVEI	T1,NUMBRK	;USE REGULAR BREAK SET
  1495	001666'	260 17 0 00 000615'		PUSHJ	P,CMRFLD	;READ FIELD
  1496	001667'	602 14 0 00 400000 		TXNE	F,CMQUES	;SAW "?"
  1497	001670'	254 00 0 00 001741'		JRST	CMNUMH		;YES
  1498	001671'	200 03 0 10 000007 		MOVE	T1,.CMABP(P2)	;SETUP NIN
  1499	001672'	200 05 0 00 000061'		MOVE	T3,FNARG	;GET RADIX
  1500	001673'	260 17 0 00 001714'		PUSHJ	P,NUMIN		;PARSE THE NUMBER
  1501	001674'	254 00 0 00 001702'		JRST	CMNUM1		;NO PARSE
  1502	001675'	202 04 0 00 000104'	CMNUMR:	MOVEM	T2,CRBLK+CR.RES	;STORE RESULT
  1503	001676'	200 04 0 00 000056'		MOVE	T2,ATBPTR
  1504	001677'	133 00 0 00 000004 		IBP	T2		;BUMP PTR PAST TERMINATOR
  1505	001700'	316 03 0 00 000004 		CAMN	T1,T2		;NIN SAW WHOLE FIELD?
  1506						JRST	[MOVE	T2,CRBLK+CR.RES
  1507	001701'	254 00 0 00 004471'			JRST	XCOMXR] ; YES, RECOVER RESULT AND RETURN
  1508	001702'	200 03 0 00 004501'	CMNUM1:	NOPARS	(NPXICN,NUMERIC CHARACTER EXPECTED)	;INVALID CHARACTER IN NUMBER
  1509	001703'	254 00 0 00 000435'
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 46
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0341

  1510
  1511					;NUMBER BREAK SET, ALLOWS +, -, NUMBERS
  1512
  1513	001704'	777777	777760		NUMBRK:	777777,,777760
  1514	001705'	777654	001760			777654,,001760
  1515	001706'	400000	000760			400000,,000760
  1516	001707'	400000	000760			400000,,000760
  1517
  1518	001710'	777777	777760		NUXBRK:	777777,,777760
  1519	001711'	777654	001760			777654,,001760
  1520	001712'	777777	777760			777777,,777760
  1521	001713'	777777	777760			777777,,777760
  1522
  1523
  1524					;NUMERIC INPUT ROUTINE
  1525					;	T1/ BYTE POINTER TO STRING
  1526					;	T3/ BASE TO USE
  1527					;
  1528					;RETURNS T1 UPDATED,T2 THE RESULT
  1529
  1530	001714'	400 02 0 00 000000 	NUMIN:	SETZ	S2,0		;CLEAR MODIFIER
  1531	001715'	134 01 0 00 000003 		ILDB	S1,T1		;GET FIRST CHARACTER
  1532	001716'	306 01 0 00 000040 		CAIN	S1," "		;A BLANK?
  1533	001717'	254 00 0 00 001714'		JRST	NUMIN		;YES, IGNORE IT
  1534	001720'	306 01 0 00 000055 		CAIN	S1,"-"		;IS IT MINUS SIGN?
  1535	001721'	561 02 0 00 777777 		MOVX	S2,-1		;YES, REMEMBER IT
  1536	001722'	306 01 0 00 000053 		CAIN	S1,"+"		;IS IT PLUS SIGN?
  1537	001723'	201 02 0 00 000001 		MOVX	S2,+1		;YES, REMEMBER IT
  1538	001724'	332 00 0 00 000002 		SKIPE	S2		;IF WE HAD EITHER + OR -
  1539	001725'	134 01 0 00 000003 		ILDB	S1,T1		;GET NEXT BYTE
  1540	001726'	307 01 0 05 000057 		CAIG	S1,"0"-1(T3)	;TOO BIG
  1541	001727'	305 01 0 00 000060 		CAIGE	S1,"0"		;OR TOO SMALL?
  1542	001730'	263 17 0 00 000000 		POPJ	P,0		;YES, TAKE FAILURE RETURN
  1543	001731'	400 04 0 00 000000 		SETZ	T2,0		;CLEAR THE RESULT
  1544	001732'	221 04 0 05 000000 	NUMI.1:	IMULI	T2,0(T3)	;SHIFT OVER 1 DIGIT
  1545	001733'	271 04 0 01 777720 		ADDI	T2,-"0"(S1)	;AND ADD IN THIS ONE
  1546	001734'	134 01 0 00 000003 		ILDB	S1,T1		;GET NEXT CHAR
  1547	001735'	307 01 0 05 000057 		CAIG	S1,"0"-1(T3)	;IN RANGE?
  1548	001736'	305 01 0 00 000060 		CAIGE	S1,"0"
  1549						JRST	[SKIPE	S2
  1550							IMUL	T2,S2
  1551	001737'	254 00 0 00 004502'			RETSKP]
  1552	001740'	254 00 0 00 001732'		JRST	NUMI.1		;YES, REPEAT
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 47
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0342

  1553
  1554	001741'	260 17 0 00 001152'	CMNUMH:	PUSHJ	P,DOHLP		;DO USER SUPPLIED MESSAGE
  1555	001742'	607 14 0 00 000001 		JXN	F,CM%SDH,CMRTYP	;SUPPRESS DEFAULT HELP IF REQUESTED
  1556	001743'	334 00 0 00 000000 
  1557	001744'	254 00 0 00 000450'
  1558	001745'	550 04 0 00 000061'		HRRZ	T2,FNARG	;GET BASE
  1559	001746'	301 04 0 00 000002 		CAIL	T2,^D2		;LEGAL?
  1560	001747'	303 04 0 00 000012 		CAILE	T2,^D10
  1561	001750'	260 17 0 00 003773'		$STOP(IBN,Illegal base for number)
  1562	001752'	306 04 0 00 000012 		CAIN	T2,^D10		;DECIMAL?
  1563	001753'	254 00 0 00 001771'		JRST	CMNH10		;YES
  1564	001754'	306 04 0 00 000010 		CAIN	T2,^D8		;OCTAL?
  1565	001755'	254 00 0 00 001767'		JRST	CMNH8		;YES
  1566	001756'	561 03 0 00 004514'		HRROI	T1,[ASCIZ / a number in base /]
  1567	001757'	260 17 0 00 001175'		PUSHJ	P,CMSOUT	;ARBITRARY BASE
  1568	001760'	550 03 0 10 000001 		HRRZ	T1,.CMIOJ(P2)
  1569	001761'	550 04 0 00 000061'		HRRZ	T2,FNARG
  1570	001762'	201 05 0 00 000012 		MOVEI	T3,^D10
  1571	001763'	271 04 0 00 000060 		ADDI	T2,"0"		;CONVERT BASE TO ASCII
  1572	001764'	051 01 0 00 000004 		OUTCHR	T2			;OUTPUT THE BASE
  1573	001765'	275 04 0 00 000060 		SUBI	T2,"0"			;CONVERT IT BACK
  1574	001766'	254 00 0 00 000450'		JRST	CMRTYP		;RETYPE LINE AND CONTINUE
  1575
  1576	001767'	561 03 0 00 004520'	CMNH8:	HRROI	T1,[ASCIZ / octal number/]
  1577	001770'	254 00 0 00 001772'		JRST	CMNH
  1578
  1579	001771'	561 03 0 00 004523'	CMNH10:	HRROI	T1,[ASCIZ / decimal number/]
  1580	001772'	260 17 0 00 001175'	CMNH:	PUSHJ	P,CMSOUT
  1581	001773'	254 00 0 00 000450'		JRST	CMRTYP
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 48
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0343

  1582					;DATE AND/OR TIME
  1583					;FLAGS IN ARG SPECIFY WHICH
  1584
  1585	001774'	260 17 0 00 003773'	XCMTAD:	$STOP(SDT,Scanning date/time not implemented)
  1586
  1587					REPEAT 0,<
  1588						MOVE	Q1,FNARG	;GET ARG
  1589						PUSHJ	P,CMRSPC	;READ FIRST FIELD
  1590						JXN	F,CMQUES,CMTADH	;DO HELP IF REQUESTED
  1591						JXN	F,CMDEFF,CMTAD1	;JUMP IF NOW HAVE FIELD DEFAULT
  1592						TXC	Q1,CM%IDA+CM%ITM ;DATE AND TIME BOTH?
  1593						TXCN	Q1,CM%IDA+CM%ITM
  1594						JRST	[MOVEI	T1," "		;YES, PUT SPACE IN ATOM BUFFER
  1595							PUSHJ	P,STOLCH
  1596							PUSHJ	P,CMRSPC	;READ SECOND FIELD
  1597							JXN	F,CMQUES,CMTADH ;DO HELP
  1598							JRST	.+1]
  1599					CMTAD1:	MOVE	T1,.CMABP(P2)	;POINT TO ATOM BUFFER
  1600						MOVEM	T1,T1
  1601						MOVX	T2,1B0+1B6	;SETUP FLAGS FOR IDTNC
  1602						TXNE	Q1,CM%IDA	;DATE WANTED?
  1603						TXZ	T2,1B0		;YES
  1604						TXNE	Q1,CM%ITM	;TIME WANTED?
  1605						TXZ	T2,1B6		;YES
  1606					;**	IMCALL .IDTNC
  1607						 JRST	XCOMNP		;FAILED
  1608						TXNE	Q1,CM%NCI	;CONVERT TO INTERNAL FORMAT?
  1609						JRST	[MOVSI	T1,T2		;NO, STORE DATA IN USER BLOCK
  1610							HRR	T1,Q1
  1611							BLT	T1,2(Q1)
  1612							JRST	XCOMXR]
  1613						TXNN	Q1,CM%IDA	;HAVE DATE?
  1614						JRST	[SETO	T2,0		;NO, DEFAULT TO TODAY
  1615							SETZ	T4,0
  1616					;**		ODCNV			;GET TODAY
  1617					;**		UMOVEM	T3,T3
  1618							JRST	.+1]
  1619					;**	IMCALL	.IDCNV		;CONVERT TO INTERNAL
  1620						 JRST	XCOMNP		;FAILED
  1621						MOVEM	T2,CRBLK+CR.RES	;STORE RESULT
  1622						JRST	XCOMXR		;OK, TAD ALREADY IN T2
  1623					
  1624					;TIME/DATE HELP
  1625					
  1626					CMTADH:	PUSHJ	P,DOHLP		;DO USER TEXT
  1627						JXN	F,CM%SDH,CMRTYP	;CHECK SUPPRESS DEFAULT
  1628						LOAD	T1,Q1,<CM%IDA+CM%ITM> ;GET FLAGS
  1629						HRRO	T1,[[ASCIZ //]
  1630							    [ASCIZ / time/]
  1631							    [ASCIZ / date/]
  1632							    [ASCIZ / date and time/]](T1)
  1633						PUSHJ	P,CMSOUT	;PRINT APPROPRIATE MESSAGE
  1634					> ;END OF REPEAT 0
  1635	001776'	254 00 0 00 000450'		JRST	CMRTYP
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 49
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0344

  1636
  1637					;DEVICE
  1638
  1639	001777'	260 17 0 00 000571'	XCMDEV:	PUSHJ	P,CMRATM	;GET THE FIELD
  1640	002000'	606 14 0 00 400000 		JXN	F,CMQUES,CMDEVH	;HELP
  1641	002001'	334 00 0 00 000000 
  1642	002002'	254 00 0 00 002026'
  1643						JXN	F,CM%ESC,[PUSHJ P,CMAMB ;NO ESC ALLOWED
  1644	002003'	607 14 0 00 400000 				  JRST XCMDEV ]  ;ON DEVICE
  1645	002004'	334 00 0 00 000000 
  1646	002005'	254 00 0 00 004540'
  1647	002006'	260 17 0 00 000765'		PUSHJ	P,CMCIN		;CHECK TERMINATOR
  1648	002007'	302 03 0 00 000072 		CAIE	T1,":"		;DEVICE?
  1649	002010'	254 00 0 00 004551'		JRST	[NOPARS (NPXIDT,IMPROPER DEVICE SPECIFICATION)]	;NO, FAIL
  1650	002011'	200 03 0 10 000007 	CMDEV1:	MOVE	T1,.CMABP(P2)	;SETUP STDEV ARGS
  1651	002012'	202 03 0 00 000102'		MOVEM	T1,XXXPTR	;STORE POINTER
  1652	002013'	260 17 0 00 002277'		PUSHJ	P,FTOKEN	;GET TOKEN
  1653	002014'	322 03 0 00 000436'		JUMPE	T1,XCOMNP	;IF NULL SPEC
  1654	002015'	302 04 0 00 000072 		CAIE	T2,":"		; OR NOT TERMINATED WITH COLON
  1655	002016'	254 00 0 00 000436'		JRST	XCOMNP		; THEN FAILED TO PARSE
  1656	002017'	202 03 0 00 000104'		MOVEM	T1,CRBLK+CR.RES	;STORE RESULT
  1657	002020'	603 14 0 00 400000 		JXE	F,CM%ESC,XCOMXR	;SUCCESS, DONE IF NO ESC
  1658	002021'	334 00 0 00 000000 
  1659	002022'	254 00 0 00 000406'
  1660	002023'	201 03 0 00 000072 		MOVEI	T1,":"		;RECOG, APPEND TERMINATOR
  1661	002024'	260 17 0 00 001130'		PUSHJ	P,CMDIB
  1662	002025'	254 00 0 00 000410'		JRST	XCOMXI
  1663
  1664	002026'	260 17 0 00 001152'	CMDEVH:	PUSHJ	P,DOHLP		;DO USER HELP
  1665	002027'	561 03 0 00 004553'		HRROI	T1,[ASCIZ / device name/]
  1666	002030'	607 14 0 00 000001 		TXNN	F,CM%SDH	;SUPPRESS DEFAULT?
  1667	002031'	260 17 0 00 001175'		PUSHJ	P,CMSOUT	;NO, DO IT
  1668	002032'	254 00 0 00 000450'		JRST	CMRTYP
  1669
  1670
  1671
  1672
  1673					;QUOTED STRING
  1674
  1675	002033'	260 17 0 00 000716'	XCMQST:	PUSHJ	P,CMRQST	;READ THE STRING
  1676	002034'	254 00 0 00 004564'		 JRST	[NOPARS	(NPXNQS,QUOTED STRING EXPECTED)] ;FAILED
  1677						JXN	F,CMQUES,[PUSHJ P,DOHLP ;DO USER HELP
  1678							HRROI	T1,[ASCIZ / quoted string/]
  1679							TXNN	F,CM%SDH	;DEFAULT HELP?
  1680							PUSHJ	P,CMSOUT	;YES
  1681	002035'	606 14 0 00 400000 			JRST	CMRTYP]
  1682	002036'	334 00 0 00 000000 
  1683	002037'	254 00 0 00 004571'
  1684	002040'	254 00 0 00 000410'		JRST	XCOMXI
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 50
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0345

  1685
  1686					;UNQUOTED STRING - TAKES BIT MASK (4 WORDS * 32 BITS) TO SPECIFY BREAKS.
  1687
  1688	002041'				XCMUQS:
  1689	002041'	260 17 0 00 000765'	CMUQS1:	PUSHJ	P,CMCIN		;GET A CHAR
  1690	002042'	231 03 0 00 000040 		IDIVI	T1,^D32		;COMPUTE INDEX TO BIT ARRAY
  1691	002043'	200 04 0 04 000000'		MOVE	T2,BITS(T2)
  1692	002044'	270 03 0 00 000061'		ADD	T1,FNARG
  1693	002045'	616 04 0 03 000000 		TDNN	T2,0(T1)	;BIT ON?
  1694	002046'	254 00 0 00 002041'		JRST	CMUQS1		;NO, KEEP GOING
  1695	002047'	260 17 0 00 001116'		PUSHJ	P,CMDIP		;YES, PUT CHAR BACK
  1696	002050'	254 00 0 00 000410'		JRST	XCOMXI		;DONE
  1697
  1698					;ARBITRARY FIELD
  1699
  1700	002051'	260 17 0 00 000571'	XCMFLD:	PUSHJ	P,CMRATM
  1701	002052'	602 14 0 00 400000 	CMFLD1:	TXNE	F,CMQUES	;"?" SEEN?
  1702						JRST	[PUSHJ	P,DOHLP		;YES, DO USER MESSAGE
  1703	002053'	254 00 0 00 004576'			 JRST	CMRTYP]
  1704	002054'	254 00 0 00 000406'		JRST	XCOMXR		;LEAVE FIELD IN ATOM BUFFER
  1705
  1706					;ACCOUNT
  1707	002055'	201 03 0 00 000605'	XCMACT:	MOVEI	T1,USRBRK	;SAME BREAK SET AS USER NAME FIELD
  1708	002056'	260 17 0 00 000615'		PUSHJ	P,CMRFLD	;READ FIELD
  1709	002057'	254 00 0 00 002052'		JRST	CMFLD1		;FINISH LIKE ARBITRARY FIELD
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 51
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0346

  1710					;NODE NAME
  1711
  1712	002060'	260 17 0 00 003773'	XCMNOD:	$STOP(NOD,SCANNING NODE NOT IMPLEMENTED)
  1713
  1714						REPEAT	0,<
  1715						PUSHJ	P,CMRATM	;GET AN ATOM
  1716						JXN	F,CMQUES,[PUSHJ	P,DOHLP	;TYPE OUT USER'S HELP
  1717								  HRROI	T1,[ASCIZ / Node Name/] ;SET UP DEFAULT HELP
  1718								  TXNN	F,CM%SDH	;DOES USER NOT WANT IT
  1719								  PUSHJ	P,CMSOUT	;NO,TYPE IT
  1720								  JRST	CMRTYP]		;AND RETYPE COMMAND
  1721						MOVE	T1,.CMABP(P2)	;POINT AT THE ATOM BUFFER
  1722						MOVEI	T3,^D8		;TRY AS AN OCTAL NUMBER
  1723						PUSHJ	P,NUMIN		;READ IT
  1724						  JRST	XNOD1		;LOST, TRY AS A SIXBIT NAME
  1725						MOVEM	T2,CRBLK+CR.RES	;SAVE AS RESULT
  1726						MOVE	T2,ATBPTR	;GET POINTER TO END OF ATOM BUFFER
  1727						IBP	T2		;POINT AT TERMINATOR
  1728						CAME	T1,T2		;OUR POINTER END THE SAME PLACE?
  1729						JRST	XNOD1		;NO, NOT A GOOD NUMBER
  1730						MOVE	T3,CRBLK+CR.RES	;NODE NUMER WE JUST PARSED
  1731						TXNE	F,CM%PO		;PARSE ONLY?
  1732						JRST	[CAILE	T3,77	;ILLEGAL NODE NUMBER?
  1733							JRST	XNOD1	;YES, TRY A NAME
  1734							JRST	XCOMXI]	;GOOD NODE NUMBER, RETURN
  1735						MOVE	T1,[XWD .NDRNN,T2] ;CHECK TO MAKE SURE THAT THIS NODE NUMBER EXISTS
  1736						MOVEI	T2,2		;2 ARGS
  1737						NODE.	T1,		;TRY IT FOR EXISTANCE
  1738						  SKIPA			;NOT A NODE NUMBER, TRY AS A NAME
  1739						JRST	XCOMXI		;A GOOD NODE NUMBER, RETURN
  1740					XNOD1:	MOVE	T1,.CMABP(P2)	;POINT AT THE ATOM BUFFER
  1741						MOVEI	T2,6		;GET MAX NUMBER OF CHARACTERS IN NAME
  1742						MOVE	T4,[POINT 6,NODSIX]; BP TO NODE STORAGE
  1743						SETZM	NODSIX		;START FRESH
  1744					XNOD2:	ILDB	T3,T1		;GET NEXT CHARACTER FROM ATOM BUFFER
  1745						CAIL	T3,"0"		;IS THE CHARACTER
  1746						CAILE	T3,"Z"		;NUMERIC OR UPPER CASE?
  1747						JRST	XNOD4		;ITS NOT
  1748						CAILE	T3,"9"		;...
  1749						CAIL	T3,"A"		;...
  1750						CAIA			;GOOD CHARACTER, JUST SAVE IT
  1751						JRST	XNOD4		;TRY FOR LOWER CASE ALPHA
  1752					XNOD3:	SUBI	T3,"a"-"A"	;SIXBITIZE
  1753						IDPB	T3,T4		;FILL OUT SIXBIT NODE NAME
  1754						SOJGE	T2,XNOD2	;HAVE WE SEEN ENOUGH CHARACTERS?
  1755						NOPARS	(NPXNNC,IMPROPER NODE NAME)	;TOO MANY CHARACTERS IN NODE NAME
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 52
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0347

  1756					
  1757					XNOD4:	CAIG	T3,"z"		;BIGGER THAN LOWER CASE Z?
  1758						CAIGE	T3,"a"		;OR LESS THAN LOWER CASE A?
  1759						JRST	XNOD5		;YES, GIVE ILLEGAL CHARACTER IN NODE NAME
  1760						SUBI	T3,"a"-"A"	;CONVERT CHARACTER TO UPPER CASE
  1761						JRST	XNOD3		;SAVE IT AN LOOK FOR MORE
  1762					XNOD5:	MOVE	T2,ATBPTR	;GET POINTER TO END OF ATOM BUFFER
  1763						IBP	T2		;POINT AT TERMINATOR
  1764						CAMN	T1,T2		;OUR POINTER END THE SAME PLACE?
  1765						JRST	XNOD6		;GO DO NODE UUO
  1766						NOPARS	(NPXNNI,NODE NAME EXPECTED)	;ILLEGAL CHARACTER IN NODE NAME
  1767					
  1768					XNOD6:	MOVEI	T2,2		;2 ARGS
  1769						MOVE	T3,NODSIX
  1770						MOVE	T1,[XWD .NDRNN,T2]
  1771						NODE.	T1,0
  1772						JRST	[NOPARS (NPXNSN,NO SUCH NODE)]
  1773						MOVEM	T1,CRBLK+CR.RES	;STORE NUMBER
  1774						JRST	XCOMXI		;AND RETURN
  1775					>
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 53
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0348

  1776					;INDIRECT FILESPEC (INTERNAL CALL)
  1777
  1778	002062'				CMATFI:
  1779	002062'	660 14 0 00 001000 		TXO	F,CMINDF	;NOTE GETTING INDIRECT FILE
  1780	002063'	254 00 0 00 002064'		JRST	XCMIFI		;AND HANDLE AS INPUT FILE
  1781
  1782	002064'				XCMOFI:
  1783	002064'				XCMIFI:
  1784
  1785	002064'	260 17 0 00 000577'	XCMFIL:	PUSHJ	P,CMRFIL	;GET FILE SPECIFICATION
  1786	002065'	606 14 0 00 400000 		JXN	F,CMQUES,CMFHLP	;IF THEY WANT HELP, GIVE IT TO THEM
  1787	002066'	334 00 0 00 000000 
  1788	002067'	254 00 0 00 002322'
  1789					;	JXN	F,CM%ESC,[ PUSHJ P,CMAMB ;NO RECOGNITION AVAILABLE
  1790					;			   JRST XCMFIL]
  1791	002070'	260 17 0 00 002101'		PUSHJ	P,FILIN		;GET FILE SPEC
  1792	002071'	254 00 0 00 000436'		  JRST	XCOMNP		;IF FAILS ITS A NO PARSE
  1793	002072'	200 04 0 00 000056'		MOVE	T2,ATBPTR	;GET POINTER TO ATOM BUFFER END
  1794	002073'	133 00 0 00 000004 		IBP	T2		;BUMP PAST TERMINATOR
  1795	002074'	312 04 0 00 000102'		CAME	T2,XXXPTR	;DOES IT MATCH?
  1796	002075'	254 00 0 00 000436'		JRST	XCOMNP		;NO, TERMINATED PREMATURELY
  1797	002076'	622 14 0 00 001000 		TXZE	F,CMINDF	;ARE WE DOING INDIRECT FILE?
  1798	002077'	254 00 0 00 004220'		RETSKP			;YES , RETURN FOR PROCESSING
  1799	002100'	254 00 0 00 000410'		JRST	XCOMXI		;OTHERWISE, DONE
  1800
  1801
  1802	002101'	402 00 0 00 004024'	FILIN:	SETZM	DEVSUP#
  1803	002102'	402 00 0 00 004025'		SETZM	PPNSUP#
  1804	002103'	260 17 0 00 003617'		PUSHJ	P,.SAVE1	;SAVE A REG
  1805	002104'	550 02 0 10 000011 		LOAD	S2,.CMGJB(P2),CM%GJB ;GET ADDR OF FD
  1806	002105'	202 02 0 00 000104'		MOVEM	S2,CRBLK+CR.RES	;SAVE IT FOR CALLER
  1807	002106'	200 07 0 00 000002 		MOVE	P1,S2		;AND REMEMBER IT
  1808	002107'	201 01 0 00 000012 		MOVX	S1,FDXSIZ	;NOW ZERO IT OUT
  1809	002110'	542 01 0 02 000000 		STORE	S1,.FDLEN(S2),FD.LEN ;STORE LENGTH INTO FD
  1810	002111'	200 03 0 10 000007 		MOVE	T1,.CMABP(P2)	;GET ATOM BUFFER POINTER
  1811	002112'	202 03 0 00 000102'		MOVEM	T1,XXXPTR	;STORE IT
  1812	002113'	260 17 0 00 002277'		PUSHJ	P,FTOKEN	;GET FIRST FILE TOKEN
  1813	002114'	302 04 0 00 000032 		CAIE	T2,':'		;IS FIRST PART A DEVICE
  1814	002115'	254 00 0 00 002121'		JRST	FILI.1		;NO
  1815	002116'	202 03 0 07 000002 		MOVEM	T1,.FDSTR(P1)	;STORE STRUCTURE NAME
  1816	002117'	476 00 0 00 004024'		SETOM	DEVSUP
  1817	002120'	260 17 0 00 002277'		PUSHJ	P,FTOKEN	;YES, LOAD NEXT TOKEN
  1818	002121'	326 03 0 00 002137'	FILI.1:	JUMPN	T1,FILI.2	;IF WE HAVE SOMETHING, IT MUST BE FILENAM
  1819	002122'	302 04 0 00 000073 		CAIE	T2,'['		;IF NOT, EXPECT A PPN HERE
  1820	002123'	306 04 0 00 000074 		CAIN	T2,74		;
  1821	002124'	334 00 0 00 000000 		SKIPA			;IT IS A PPN
  1822	002125'	254 00 0 00 002137'		JRST	FILI.2		;CHECK FOR SUFFICIENT FILE-SPEC
  1823	002126'	200 03 0 00 000102'		MOVE	T1,XXXPTR	;GET POINTER TO PPN
  1824	002127'	260 17 0 00 001136'		PUSHJ	P,DBP		;DECREMENT POINTER
  1825	002130'	200 04 0 00 000003 		MOVE	T2,T1		;GET INTO PLACE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 54
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0349

  1826	002131'	260 17 0 00 002405'		PUSHJ	P,PPNIN		;GET PPN
  1827	002132'	263 17 0 00 000000 		  POPJ	P,		;PASS ON FAILURE
  1828	002133'	202 03 0 00 000102'		MOVEM	T1,XXXPTR	;STORE CORRECTED POINTER
  1829	002134'	202 04 0 07 000003 		STORE	T2,.FDPPN(P1)	;STORE THE PPN NOW
  1830	002135'	476 00 0 00 004025'		SETOM	PPNSUP
  1831	002136'	260 17 0 00 002277'		PUSHJ	P,FTOKEN	;AND GET NEXT PART
  1832	002137'	336 00 0 00 004024'	FILI.2:	SKIPN DEVSUP		;WAS DEVICE SUPPLIED ?
  1833	002140'	260 17 0 00 002237'		GO	DEVSP1		;NO, GET DEFAULT IF SUPPLIED
  1834	002141'	336 00 0 00 004025'		SKIPN	PPNSUP		;WAS PPN SUPPLIED ?
  1835	002142'	260 17 0 00 002256'		GO	PPNSP1		;NO, GET DEFAULT IF SUPPLIED
  1836	002143'	336 00 0 00 000003 		SKIPN	T1		;ANY FILE NAME ?
  1837	002144'	260 17 0 00 002176'		GO	NAMSP1		;NO, GET DEFAULT
  1838	002145'	202 03 0 07 000004 		STORE	T1,.FDNAM(P1)	;STORE NAME
  1839	002146'	302 04 0 00 000016 		CAIE	T2,'.'		;IS THERE AN EXTENSION?
  1840	002147'	254 00 0 00 002215'		JRST	EXTSUP		;NO, GET DEFAULT
  1841	002150'	260 17 0 00 002277'		PUSHJ	P,FTOKEN	;GET EXTENSION
  1842	002151'	336 00 0 00 000003 		SKIPN	T1		;ANY EXT ?
  1843	002152'	260 17 0 00 002223'		GO	EXTSP1		;NO, GET DEFAULT IF SUPPLIED
  1844	002153'	202 03 0 07 000005 		STORE	T1,.FDEXT(P1)	;AND STORE IT
  1845	002154'	302 04 0 00 000073 	FILI.3:	CAIE	T2,'['		;HAVE WE GOT A PPN?
  1846	002155'	306 04 0 00 000074 		CAIN	T2,74		;NOW
  1847	002156'	334 00 0 00 000000 		SKIPA			;YES, WE HAVE
  1848	002157'	254 00 0 00 002170'		JRST	FILI.4		;CHECK FOR SUFFICIENT FILE-SPEC
  1849	002160'	200 03 0 00 000102'		MOVE	T1,XXXPTR	;RELOAD THE POINTER
  1850	002161'	260 17 0 00 001136'		PUSHJ	P,DBP		;DECREMENT IT
  1851	002162'	200 04 0 00 000003 		MOVE	T2,T1		;AND THEN PARSE THE
  1852	002163'	260 17 0 00 002405'		PUSHJ	P,PPNIN		;PPN
  1853	002164'	263 17 0 00 000000 		  POPJ	P,		;RETURN A FAILURE
  1854	002165'	202 03 0 00 000102'		MOVEM	T1,XXXPTR	;STORE CORRECTED POINTER
  1855	002166'	202 04 0 07 000003 		STORE	T2,.FDPPN(P1)	;STORE PPN IF OK
  1856	002167'	133 00 0 00 000102'		IBP	XXXPTR		;AND BUMP PAST IT
  1857	002170'	336 01 0 07 000002 	FILI.4:	SKIPN	S1,.FDSTR(P1)	;SEE IF USER SUPPLIED A DEFAULT DEVICE
  1858	002171'	205 01 0 00 446353 		MOVSI	S1,'DSK'	;NO, SUPPLY DEFAULT DEVICE
  1859	002172'	202 01 0 07 000002 		STORE	S1,.FDSTR(P1)	;STORE DEFAULT DEVICE
  1860	002173'	336 00 0 07 000004 		SKIPN	.FDNAM(P1)	;MAKE SURE THERE IS A NAME
  1861	002174'	263 17 0 00 000000 		POPJ	P,		;NO NAME, BAD FILE SPEC
  1862	002175'	254 00 0 00 004220'		RETSKP			;TAKE GOOD RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 55
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0350

  1863					;PROCESS FILE PARAMETER DEFAULTS
  1864
  1865	002176'	550 00 0 07 000004 	NAMSP1:	HRRZ	.FDNAM(P1)	;GET DEFAULT POINTER
  1866	002177'	336 00 0 00 000000 		SKIPN			;ANY SUPPLIED ?
  1867	002200'	260 17 0 00 003773'		$STOP(NNS,NO DEFAULT NAME SUPPLIED)
  1868	002202'	603 14 0 00 400000 		TLNE	F,(CM%ESC)	;ESCAPE TERMINATE FIELD ?
  1869	002203'	037 17 0 00 000001 		PNTALF			;PRINT IT
  1870
  1871	002204'	261 17 0 00 000004 		PUT	T2
  1872	002205'	261 17 0 00 000102'		PUT	XXXPTR
  1873	002206'	550 00 0 07 000004 		HRRZ	.FDNAM(P1)
  1874	002207'	505 00 0 00 440700 		HRLI	440700		;MAKE BYTE POINTER
  1875	002210'	202 00 0 00 000102'		MOVEM	XXXPTR
  1876
  1877	002211'	260 17 0 00 002277'		GO	FTOKEN		;PROCESS FILE NAME
  1878
  1879	002212'	262 17 0 00 000102'		GETIT	XXXPTR
  1880	002213'	262 17 0 00 000004 		GETIT	T2
  1881	002214'	263 17 0 00 000000 		RTN
  1882
  1883	002215'	336 00 0 07 000005 	EXTSUP:	SKIPN .FDEXT(P1)	;ANY DEFAULT EXT ?
  1884	002216'	254 00 0 00 002154'		JRST	FILI.3
  1885	002217'	603 14 0 00 400000 		TLNE	F,(CM%ESC)	;ESCAPE TERMINATE FIELD ?
  1886	002220'	037 01 0 00 000056 		PNTCIF	"."
  1887	002221'	260 17 0 00 002223'		GO	EXTSP1		;PROCESS DEFAULT
  1888	002222'	254 00 0 00 002153'		JRST	FILI.3-1
  1889
  1890	002223'	550 00 0 07 000005 	EXTSP1:	HRRZ	.FDEXT(P1)	;GET DEFAULT POINTER
  1891	002224'	603 14 0 00 400000 		TLNE	F,(CM%ESC)	;ESCAPE TERMINATE FIELD ?
  1892	002225'	037 17 0 00 000001 		PNTALF			;PRINT IT
  1893
  1894	002226'	261 17 0 00 000004 		PUT	T2
  1895	002227'	261 17 0 00 000102'		PUT	XXXPTR
  1896	002230'	550 00 0 07 000005 		HRRZ	.FDEXT(P1)
  1897	002231'	505 00 0 00 440700 		HRLI	440700		;MAKE BYTE POINTER
  1898	002232'	202 00 0 00 000102'		MOVEM	XXXPTR
  1899
  1900	002233'	260 17 0 00 002277'		GO	FTOKEN		;PROCESS FILE EXT
  1901
  1902	002234'	262 17 0 00 000102'		GETIT	XXXPTR
  1903	002235'	262 17 0 00 000004 		GETIT	T2
  1904	002236'	263 17 0 00 000000 		RTN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 56
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0351

  1905
  1906	002237'	336 00 0 07 000002 	DEVSP1:	SKIPN	.FDSTR(P1)	;ANY DEFAULT SUPPLIED ?
  1907	002240'	263 17 0 00 000000 		RTN			;NO
  1908
  1909	002241'	261 17 0 00 000004 		PUT	T2
  1910	002242'	261 17 0 00 000102'		PUT	XXXPTR
  1911
  1912	002243'	550 00 0 07 000002 		HRRZ	.FDSTR(P1)
  1913	002244'	603 14 0 00 400000 		TLNE	F,(CM%ESC)	;ESCAPE TERMINATE FIELD ?
  1914	002245'	037 17 0 00 000001 		PNTALF			;PRINT IT
  1915
  1916	002246'	550 00 0 07 000002 		HRRZ	.FDSTR(P1)
  1917	002247'	505 00 0 00 440700 		HRLI	440700
  1918	002250'	202 00 0 00 000102'		MOVEM	XXXPTR
  1919	002251'	260 17 0 00 002277'		GO	FTOKEN		;PROCESS DEFAULT
  1920	002252'	202 03 0 07 000002 		STORE	T1,.FDSTR(P1)
  1921
  1922	002253'	262 17 0 00 000102'		GETIT	XXXPTR
  1923	002254'	262 17 0 00 000004 		GETIT	T2
  1924	002255'	263 17 0 00 000000 		RTN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 57
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0352

  1925
  1926	002256'	336 00 0 07 000003 	PPNSP1:	SKIPN	.FDPPN(P1)	;ANY DEFAULT SUPPLIED ?
  1927	002257'	263 17 0 00 000000 		RTN			;NO
  1928
  1929	002260'	261 17 0 00 000003 		PUT	T1
  1930	002261'	261 17 0 00 000004 		PUT	T2
  1931
  1932	002262'	550 00 0 07 000003 		HRRZ	.FDPPN(P1)
  1933	002263'	603 14 0 00 400000 		TLNE	F,(CM%ESC)	;ESCAPE TERMINATE FIELD ?
  1934	002264'	037 17 0 00 000001 		PNTALF			;PRINT IT
  1935
  1936	002265'	550 00 0 07 000003 		HRRZ	.FDPPN(P1)
  1937	002266'	505 00 0 00 440700 		HRLI	440700
  1938	002267'	202 00 0 00 000004 		MOVEM	 T2
  1939
  1940	002270'	260 17 0 00 002405'		GO	PPNIN		;PROCESS PPN
  1941	002271'	260 17 0 00 003773'		$STOP(DPP,DEFAULT PPN ERROR)
  1942
  1943	002273'	202 04 0 07 000003 		STORE	T2,.FDPPN(P1)
  1944
  1945	002274'	262 17 0 00 000004 		GETIT	T2
  1946	002275'	262 17 0 00 000003 		GETIT	T1
  1947	002276'	263 17 0 00 000000 		RTN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 58
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0353

  1948
  1949	002277'	402 00 0 00 000003 	FTOKEN:	SETZM	T1		;CLEAR RESULT
  1950	002300'	200 05 0 00 004625'		MOVE	T3,[POINT 6,T1]	;AND POINT TO STORAGE AREA
  1951	
  1952	002301'	134 04 0 00 000102'	FTOK.1:	ILDB	T2,XXXPTR	;GET A BYTE
  1953	002302'	260 17 0 00 002315'		PUSHJ	P,C7TO6		;CONVERT TO SIXBIT
  1954	002303'	307 04 0 00 000072 		CAIG	T2,'Z'		;IS IT IN RANGE?
  1955	002304'	305 04 0 00 000020 		CAIGE	T2,'0'		;
  1956	002305'	263 17 0 00 000000 		POPJ	P,0		;NO
  1957	002306'	303 04 0 00 000031 		CAILE	T2,'9'		;
  1958	002307'	301 04 0 00 000041 		CAIL	T2,'A'		;
  1959	002310'	334 00 0 00 000000 		SKIPA
  1960	002311'	263 17 0 00 000000 		POPJ	P,0
  1961	002312'	603 05 0 00 770000 		TXNE	T3,<INSVL.(77,BP.POS)> ;IS THERE ROOM?
  1962	002313'	136 04 0 00 000005 		IDPB	T2,T3		;YES,STORE IT
  1963	002314'	254 00 0 00 002301'		JRST	FTOK.1		;TRY ANOTHER
  1964
  1965	002315'	301 04 0 00 000141 	C7TO6:	CAIL	T2,"a"		;IS IT LC?
  1966	002316'	275 04 0 00 000040 		SUBI	T2,40		;YES
  1967	002317'	275 04 0 00 000040 		SUBI	T2," "		;CONVERT TO SIXBIT
  1968	002320'	405 04 0 00 000077 		ANDI	T2,77		;MASK IT AND
  1969	002321'	263 17 0 00 000000 		POPJ	P,		;RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 59
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0354

  1970
  1971					;FILESPEC HELP
  1972
  1973					CMFHLP:	JXO	F,CMINDF,[HRROI	T1,[ASCIZ / filespec of indirect file/]
  1974	002322'	640 14 0 00 001000 			JRST	CMFH1]	;SPECIAL HELP IF INDIRECT FILESPEC
  1975	002323'	646 14 0 00 001000 
  1976	002324'	254 00 0 00 004634'
  1977	002325'	260 17 0 00 001152'		PUSHJ	P,DOHLP		;DO USER MESSAGE
  1978	002326'	607 14 0 00 000001 		JXN	F,CM%SDH,CMRTYP	;SUPPRESS DEFAULT HELP IF REQUESTED
  1979	002327'	334 00 0 00 000000 
  1980	002330'	254 00 0 00 000450'
  1981					;	LOAD	T2,.CMFNP(P1),CM%FNC	;GET FUNCTION CODE
  1982					;	CAXE	T2,.CMIFI		;INPUT FILE?
  1983	002331'	550 04 0 10 000011 		LOAD	T2,.CMGJB(P2),CM%GJB ;GET ADDR OF FD
  1984	002332'	200 04 0 04 000000 		MOVE	T2,(T2)
  1985	002333'	607 04 0 00 100000 		TLNN	T2,(GJ%OLD)
  1986	002334'	334 03 0 00 004642'		SKIPA	T1,[-1,,[ASCIZ / output filespec/]] ;NO, OUTPUT
  1987	002335'	561 03 0 00 004643'		HRROI	T1,[ASCIZ \ input filespec\]	;YES,INPUT
  1988	002336'	260 17 0 00 001175'	CMFH1:	PUSHJ	P,CMSOUT
  1989	002337'	254 00 0 00 000450'		JRST	CMRTYP
  1990
  1991					;TOKEN - ARBITRARY SYMBOL AS SPECIFIED BY FN DATA
  1992
  1993	002340'	200 15 0 00 000061'	XCMTOK:	MOVE	Q1,FNARG	;GET STRING ADDRESS
  1994	002341'	134 16 0 00 000015 	CMTOK1:	ILDB	Q2,Q1		;GET NEXT CHAR IN STRING
  1995						JUMPE	Q2,[PUSHJ P,TIELCH	;SUCCESS IF END OF STRING
  1996	002342'	322 16 0 00 004647'			JRST	XCOMXI]
  1997	002343'	260 17 0 00 000765'	CMTOK2:	PUSHJ	P,CMCIN		;GET NEXT CHAR OF INPUT
  1998	002344'	316 03 0 00 000016 		CAMN	T1,Q2		;MATCH?
  1999						JRST	[PUSHJ	P,STOLCH	;YES, APPEND TO ATOM BUFFER
  2000	002345'	254 00 0 00 004651'			JRST	CMTOK1]		;CONTINUE
  2001	002346'	302 03 0 00 000006 		CAIE	T1,CMFREC	;RECOG REQUEST?
  2002	002347'	306 03 0 00 000033 		CAIN	T1,.CHESC
  2003						JRST	[PUSHJ	P,CMAMB		;YES, CAN'T
  2004	002350'	254 00 0 00 004653'			JRST	CMTOK2]
  2005	002351'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP REQUEST?
  2006						JRST	[PUSHJ	P,DOHLP		;YES
  2007							JXN	F,CM%SDH,CMRTYP
  2008							MOVEI	T1,""""		;TYPE "token"
  2009							PUSHJ	P,CMCOUT
  2010							MOVE	T1,FNARG
  2011							PUSHJ	P,CMUSOU
  2012							MOVEI	T1,""""
  2013							PUSHJ	P,CMCOUT
  2014	002352'	254 00 0 00 004655'			JRST	CMRTYP]
  2015	002353'	200 03 0 00 004674'		NOPARS	(NPXNMT,INVALID TOKEN FOUND)	;NO MATCH OF TOKEN
  2016	002354'	254 00 0 00 000435'
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 60
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0355

  2017					; PPN (EITHER DIRECTORY OR USER NAME FUNCTION)
  2018
  2019
  2020	002355'	777777	777760		PPNBRK:	777777,,777760
  2021	002356'	777734	007537			777734,,007537
  2022	002357'	777777	777277			777777,,777277
  2023	002360'	777777	777760			777777,,777760
  2024
  2025	002361'				XCMDIR:
  2026	002361'				XCMUSR:				;EQUIVALENT
  2027	002361'	201 03 0 00 002355'		MOVEI	T1,PPNBRK	;GET PROPER BREAK SET
  2028	002362'	260 17 0 00 000615'		PUSHJ	P,CMRFLD	;GET FIELD
  2029	002363'	602 14 0 00 400000 		TXNE	F,CMQUES	;HELP?
  2030	002364'	254 00 0 00 002376'		JRST	CMDIRH		;YES
  2031	002365'	603 14 0 00 400000 		TXNE	F,CM%ESC	;RECOGNITION WANTED?
  2032						JRST	[ PUSHJ P,CMAMB ;YES, ALWAYS AMBIGOUS
  2033	002366'	254 00 0 00 004675'			  JRST XCMUSR ]
  2034	002367'	200 04 0 10 000007 		MOVE	T2,.CMABP(P2)	;PTR TO TYPEIN
  2035	002370'	260 17 0 00 002405'		PUSHJ	P,PPNIN		;PARSE PPN
  2036	002371'	254 00 0 00 000436'		  JRST	XCOMNP		;ILLEGAL SYNTAX
  2037	002372'	202 04 0 00 000104'		MOVEM	T2,CRBLK+CR.RES		;STORE RESULT
  2038	002373'	312 03 0 00 000056'		CAME	T1,ATBPTR	;CHECK THAT WE SAW WHOLE FIELD
  2039	002374'	254 00 0 00 000436'		JRST	XCOMNP		;IF NOT, PARSE FAILURE
  2040	002375'	254 00 0 00 000410'		JRST	XCOMXI		;DONE NOW
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 61
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0356

  2041
  2042					;DIRECTORY/USER HELP
  2043
  2044	002376'	260 17 0 00 001152'	CMDIRH:	PUSHJ	P,DOHLP		;DO USER HELP
  2045	002377'	607 14 0 00 000001 		JXN	F,CM%SDH,CMRTYP	;SUPPRESS DEFAULT HELP IF REQUESTED TO
  2046	002400'	334 00 0 00 000000 
  2047	002401'	254 00 0 00 000450'
  2048	002402'	561 03 0 00 004677'		HRROI	T1,[ASCIZ / Project-Programmer number/]
  2049	002403'	260 17 0 00 001175'		PUSHJ	P,CMSOUT
  2050	002404'	254 00 0 00 000450'		JRST	CMRTYP		;RETYPE AND CONTINUE
  2051
  2052
  2053	002405'	260 17 0 00 003617'	PPNIN:	PUSHJ	P,.SAVE1	;SAVE A REG
  2054	002406'	134 01 0 00 000004 		ILDB	S1,T2		;GET FIRST BYTE
  2055	002407'	306 01 0 00 000040 		CAIN	S1," "		;SKIP LEADING BLANKS
  2056	002410'	254 00 0 00 002405'		JRST	PPNIN		;
  2057	002411'	302 01 0 00 000074 		CAIE	S1,74		;BETTER BE A BRACKET OF SOME
  2058	002412'	306 01 0 00 000133 		CAIN	S1,"["		;KIND
  2059	002413'	334 00 0 00 000000 		SKIPA			;IT IS
  2060	002414'	263 17 0 00 000000 		POPJ	P,		;IT IS NOT, FAIL NOW
  2061	002415'	200 03 0 00 000004 		MOVE	T1,T2		;COPY BP
  2062	002416'	201 05 0 00 000010 		MOVEI	T3,^D8		;AND MAKE IT OCTAL
  2063	002417'	260 17 0 00 001714'		PUSHJ	P,NUMIN		;PARSE PROJECT NUMBER
  2064	002420'	263 17 0 00 000000 		  POPJ	P,		;IF IT FAILS, GIVE UP NOW
  2065	002421'	135 01 0 00 000003 		LDB	S1,T1		;GET TERMINATOR BYTE
  2066	002422'	302 01 0 00 000054 		CAIE	S1,","		;BETTER BE A COMMA
  2067	002423'	263 17 0 00 000000 		POPJ	P,		;NOT, GIVE UP NOW
  2068	002424'	514 07 0 00 000004 		HRLZ	P1,T2		;REMEMBER PROJECT NR.
  2069	002425'	260 17 0 00 001714'		PUSHJ	P,NUMIN		;GET 2ND HALF (PROGRAMMER NR.)
  2070	002426'	263 17 0 00 000000 		  POPJ	P,		;PASS ON FAILURE
  2071	002427'	500 04 0 00 000007 		HLL	T2,P1		;ASSEMBLE PPN
  2072	002430'	135 01 0 00 000003 		LDB	S1,T1		;GET TERMINATOR
  2073	002431'	302 01 0 00 000135 		CAIE	S1,"]"		;AND CHECK IT
  2074	002432'	306 01 0 00 000076 		CAIN	S1,76		;FOR BRACKET
  2075	002433'	254 00 0 00 004220'		RETSKP			;ALL IS OK
  2076	002434'	263 17 0 00 000000 		POPJ	P,		;OR FAIL
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 62
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0357

  2077
  2078					;COMMA, ARBITRARY CHARACTER
  2079
  2080	002435'	201 03 0 00 000054 	XCMCMA:	MOVEI	T1,","		;SETUP COMMA AS CHARACTER TO FIND
  2081	002436'	202 03 0 00 000061'		MOVEM	T1,FNARG
  2082	002437'	260 17 0 00 000765'	CMCHR:	PUSHJ	P,CMCIN		;GET A CHAR
  2083	002440'	302 03 0 00 000011 		CAIE	T1,.CHTAB	;BLANK?
  2084	002441'	306 03 0 00 000040 		CAIN	T1," "
  2085	002442'	254 00 0 00 002437'		JRST	CMCHR		;YES, IGNORE
  2086	002443'	550 04 0 00 000061'		HRRZ	T2,FNARG	;GET SPECIFIED CHAR
  2087	002444'	316 03 0 00 000004 		CAMN	T1,T2		;THE RIGHT ONE?
  2088	002445'	254 00 0 00 000410'		JRST	XCOMXI		;YES, WIN
  2089	002446'	302 03 0 00 000006 		CAIE	T1,CMFREC	;^F?
  2090	002447'	306 03 0 00 000033 		CAIN	T1,.CHESC	;ESC?
  2091						JRST	[PUSHJ	P,CMAMB		;YES, DING
  2092	002450'	254 00 0 00 004705'			JRST	CMCHR]		;TRY AGAIN
  2093	002451'	306 03 0 00 000077 		CAIN	T1,CMHLPC	;HELP?
  2094						JRST	[PUSHJ	P,DOHLP
  2095							JXN	F,CM%SDH,CMRTYP ;JUMP IF SUPPRESSING HELP
  2096							MOVEI	T1,""""		;TYPE "char"
  2097							PUSHJ	P,CMCOUT
  2098							HRRZ	T1,FNARG
  2099							PUSHJ	P,CMCOUT
  2100							MOVEI	T1,""""
  2101							PUSHJ	P,CMCOUT
  2102	002452'	254 00 0 00 004707'			JRST	CMRTYP]
  2103	002453'	200 03 0 00 004726'		NOPARS	(NPXCMA,COMMA WAS EXPECTED)	;FAIL
  2104	002454'	254 00 0 00 000435'
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 63
GSCN	MAC	22-May-78 10:53		S%CMND  --  Scan a command                                                         SEQ 0358

  2105
  2106					;LOCAL ROUTINE TO SETUP BYTE PTR TO TABLE STRING AND GET FLAGS
  2107					; T2/ ADDRESS OF STRING
  2108					;	PUSHJ	P,CHKTBS
  2109					; T1/ FLAGS
  2110					; T2/ BYTE POINTER TO STRING
  2111
  2112	002455'	505 04 0 00 440700 	CHKTBS:	HRLI	T2,(POINT 7)	;SETUP P AND S FIELDS
  2113	002456'	332 03 0 04 000000 		SKIPE	T1,0(T2)	;CHECK FIRST WORD OF STRING
  2114	002457'	603 03 0 00 774000 		TXNE	T1,177B6	;FIRST CHAR 0 AND WORD NOT ALL-0?
  2115	002460'	634 03 0 00 000003 		TDZA	T1,T1		;NO, MAKE FLAGS ALL 0
  2116	002461'	350 00 0 00 000004 		AOS	T2		;YES, HAVE FLAGS, ADJUST BYTE PTR
  2117	002462'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 64
GSCN	MAC	22-May-78 10:53		S%SCMP  --  String Comparison Routine                                              SEQ 0359

  2118					SUBTTL S%SCMP  --  String Comparison Routine
  2119
  2120					;CALL IS:	 S1/ TEST STRING POINTER
  2121					;		 S2/ BASE STRING POINTER
  2122					;TRUE RETURN:	  S1/ COMPARE CODE:
  2123					;	1B0 (SC%LSS) - TEST STRING LESS THAN BASE STRING
  2124					;	1B1 (SC%SUB) - TEST STRING SUBSET OF BASE STRING
  2125					;	1B2 (SC%GTR) - TEST STRING GREATER THAN BASE STRING
  2126					;	N.O.T.A. MEANS EXACT MATCH
  2127					;		S2/ UPDATED BASE STRING POINTER, USEFUL IN CASE TEST STRING
  2128					;	WAS SUBSET
  2129
  2130	002463'	260 17 0 00 003665'	S%SCMP:	PUSHJ	P,.SAVET		;SAVE T REGS
  2131	002464'	120 03 0 00 000001 		DMOVE	T1,S1			;COPY ARGUMENTS
  2132	002465'	554 05 0 00 000003 		HLRZ	T3,T1
  2133	002466'	306 05 0 00 777777 		CAIN	T3,-1
  2134	002467'	505 03 0 00 440700 		HRLI	T1,(POINT 7)
  2135	002470'	554 05 0 00 000004 		HLRZ	T3,T2
  2136	002471'	306 05 0 00 777777 		CAIN	T3,-1
  2137	002472'	505 04 0 00 440700 		HRLI	T2,(POINT 7)
  2138	002473'	260 17 0 00 002476'		PUSHJ	P,USTCMP	;DO THE WORK
  2139	002474'	120 01 0 00 000003 		DMOVE	S1,T1			;PUT THE ARGUMENTS BACK
  2140	002475'	254 00 0 00 003747'		$RETT
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 65
GSCN	MAC	22-May-78 10:53		S%SCMP  --  String Comparison Routine                                              SEQ 0360

  2141					;STRING COMPARE ROUTINE - REFERENCES PREVIOUS CONTEXT.
  2142					; T1/ TEST STRING POINTER
  2143					; T2/ BASE STRING POINTER
  2144					;	PUSHJ	P,USTCMP
  2145					;RETURN AS FOR .STCMP
  2146
  2147	002476'	134 05 0 00 000003 	USTCMP::ILDB	T3,T1		;GET NEXT BYTE FROM EACH STRING
  2148	002477'	301 05 0 00 000141 		CAIL	T3,"A"+40	;LC LETTER?
  2149						JRST	[CAIG	T3,"Z"+40
  2150							SUBI	T3,40		;YES, CONVERT TO UC
  2151	002500'	254 00 0 00 004727'			JRST	.+1]
  2152	002501'	134 06 0 00 000004 		ILDB	T4,T2
  2153	002502'	301 06 0 00 000141 		CAIL	T4,"A"+40	;LC LETTER?
  2154						JRST	[CAIG	T4,"Z"+40
  2155							SUBI	T4,40		;YES, CONVERT TO UC
  2156	002503'	254 00 0 00 004732'			JRST	.+1]
  2157	002504'	312 05 0 00 000006 		CAME	T3,T4		;STILL EQUAL?
  2158	002505'	254 00 0 00 002511'		JRST	STRC2		;NO, GO SEE WHY
  2159	002506'	326 05 0 00 002476'		JUMPN	T3,USTCMP	;KEEP GOING IF NOT END OF STRING
  2160	002507'	400 03 0 00 000000 		SETZ	T1,		;STRINGS ENDED TOGETHER, EXACT MATCH.
  2161	002510'	263 17 0 00 000000 		POPJ	P,0		;RETURN 0
  2162
  2163	002511'				STRC2:	JUMPE	T3,[MOVX T1,SC%SUB 	;TEST STRING ENDED, IS A SUBSET
  2164							ADD	T2,[7B5] 	;DECREMENT BASE POINTER ONE BYTE
  2165	002511'	322 05 0 00 004736'			POPJ	P,0]
  2166	002512'	317 05 0 00 000006 		CAMG	T3,T4		;STRINGS UNEQUAL
  2167	002513'	334 03 0 00 004741'		SKIPA	T1,[SC%LSS]	;TEST STRING LESS
  2168	002514'	205 03 0 00 100000 		MOVX	T1,SC%GTR	;TEST STRING GREATER
  2169	002515'	263 17 0 00 000000 		POPJ	P,0
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 66
GSCN	MAC	22-May-78 10:53		S%TBLK  --  Table lookup routine                                                   SEQ 0361

  2170					SUBTTL S%TBLK  --  Table lookup routine
  2171
  2172
  2173					;CALL IS:	S1/ ADDRESS OF TABLE HEADER WORD
  2174					;		S2/ STRING POINTER TO STRING TO BE FOUND
  2175					;
  2176					;TRUE RETURN:	 S1/ ADDRESS OF ENTRY WHICH MATCHED OR WHERE ENTRY WOULD BE
  2177					;		IF IT WERE IN TABLE
  2178					;		  S2/ RECOGNITION CODE:
  2179					;	1B0 (TL%NOM) - NO MATCH
  2180					;	1B1 (TL%AMB) - AMBIGUOUS
  2181					;	1B2 (TL%ABR) - UNIQUE ABBREVIATION
  2182					;	1B3 (TL%EXM) - EXACT MATCH
  2183
  2184	002516'	260 17 0 00 003665'	S%TBLK:	PUSHJ	P,.SAVET		;SAVE SOME REGISTERS
  2185	002517'	120 03 0 00 000001 		DMOVE	T1,S1			;COPY INPUT ARGUMENTS
  2186	002520'	260 17 0 00 002525'		PUSHJ	P,XTLOK0		;DO THE WORK
  2187	002521'	120 01 0 00 000003 		DMOVE	S1,T1			;RE-COPY ARGUMENTS
  2188	002522'	254 00 0 00 003747'		$RETT				;AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 67
GSCN	MAC	22-May-78 10:53		S%TBLK  --  Table lookup routine                                                   SEQ 0362

  2189					;WORKER ROUTINE - MAY BE CALLED INTERNALLY.
  2190					; RETURNS +1 SUCCESS, ACS AS ABOVE
  2191
  2192					;INTERNAL AC USAGE:
  2193					; T1/ TEST STRING FROM CALL
  2194					; T2/ STRING FROM TABLE
  2195					; T3/ CLOBBERED BY USTCMP
  2196					; T4/ " "
  2197					; P1/ CURRENT TABLE INDEX
  2198					; P2/ ADDRESS OF TABLE INDEXED BY P1 - USED FOR INDIRECTION
  2199					; P3/ INDEX INCREMENT FOR LOG SEARCH
  2200					; P4/ SIZE OF TABLE
  2201
  2202	002523'	260 17 0 00 003647'	XTLOOK::	PUSHJ	P,.SAVE4	;PRESERVE ACS
  2203	002524'	260 17 0 00 003703'		SAVE	P5
  2204	002525'	554 05 0 00 000004 	XTLOK0:	HLRZ	T3,T2		;CHECK STRING POINTER
  2205	002526'	302 05 0 00 777777 		CAIE	T3,-1		;LH 0 OR -1?
  2206	002527'	306 05 0 00 000000 		CAIN	T3,0
  2207	002530'	505 04 0 00 440700 		HRLI	T2,(POINT 7)	;YES, FILL IN
  2208	002531'	202 04 0 00 000100'		MOVEM	T2,STRG
  2209	002532'	201 10 0 03 000001 		MOVEI	P2,1(T1)	;CONSTRUCT ADDRESS OF FIRST ENTRY
  2210	002533'	505 10 0 00 000007 		HRLI	P2,P1		;MAKE IT INDEXED BY P1
  2211	002534'	554 12 0 03 000000 		HLRZ	P4,0(T1)	;GET PRESENT SIZE
  2212	002535'	200 11 0 00 000012 		MOVE	P3,P4		;INITIAL INCREMENT IS SIZE
  2213	002536'	200 07 0 00 000012 		MOVE	P1,P4		;SET INITIAL INDEX TO SIZE/2
  2214	002537'	240 07 0 00 777777 		ASH	P1,-1
  2215	002540'	322 12 0 00 002556'		JUMPE	P4,TABLKX	;IF TABLE EMPTY THEN NO MATCH
  2216	002541'	554 04 1 00 000010 	TABLK0:	HLRZ	T2,@P2		;GET STRING ADR FROM TABLE
  2217	002542'	260 17 0 00 002455'		PUSHJ	P,CHKTBS	;CONSTRUCT POINTER
  2218	002543'	200 03 0 00 000100'		MOVE	T1,STRG		;GET TEST STRING
  2219	002544'	260 17 0 00 002476'		PUSHJ	P,USTCMP	;COMPARE
  2220	002545'	326 03 0 00 002561'		JUMPN	T1,TABLK1	;JUMP IF NOT EXACTLY EQUAL
  2221	002546'	554 04 1 00 000010 	TABLKF:	HLRZ	T2,@P2		;GET STRING ADDRESS
  2222	002547'	260 17 0 00 002455'		PUSHJ	P,CHKTBS	;GET FLAGS
  2223	002550'	606 03 0 00 000002 		JXN	T1,CM%NOR,TABLKM ;MAKE IT AMBIG IF NOREC ENTRY
  2224	002551'	334 00 0 00 000000 
  2225	002552'	254 00 0 00 002555'
  2226	002553'	205 04 0 00 040000 		MOVX	T2,TL%EXM	;EXACTLY EQUAL, RETURN CODE
  2227	002554'	254 00 0 00 002557'		JRST	TABLKA
  2228
  2229	002555'	334 04 0 00 004742'	TABLKM:	SKIPA	T2,[TL%AMB]	;AMBIGUOUS RETURN
  2230	002556'	205 04 0 00 400000 	TABLKX:	MOVX	T2,TL%NOM	;NO MATCH RETURN
  2231	002557'	201 03 1 00 000010 	TABLKA:	MOVEI	T1,@P2		;RETURN ADR WHERE ENTRY IS OR SHOULD BE
  2232	002560'	263 17 0 00 000000 		POPJ	P,
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 68
GSCN	MAC	22-May-78 10:53		S%TBLK  --  Table lookup routine                                                   SEQ 0363

  2233
  2234					;STRING MAY BE UNEQUAL OR A SUBSET, SEE WHICH
  2235
  2236	002561'	603 03 0 00 200000 	TABLK1:	JXE	T1,SC%SUB,TABLKN ;UNEQUAL, GO SETUP NEXT PROBE
  2237	002562'	334 00 0 00 000000 
  2238	002563'	254 00 0 00 002623'
  2239	002564'	202 04 0 00 000101'	TABLK3:	MOVEM	T2,REMSTR	;SUBSTRING, SAVE REMAINDER
  2240	002565'	322 07 0 00 002600'		JUMPE	P1,TABLK2	;JUMP IF THIS FIRST ENTRY IN TABLE
  2241	002566'	201 03 1 00 000010 		MOVEI	T1,@P2		;CHECK NEXT HIGHER ENTRY IN TABLE
  2242	002567'	554 04 0 03 777777 		HLRZ	T2,-1(T1)	;GET ITS STRING ADDRESS
  2243	002570'	260 17 0 00 002455'		PUSHJ	P,CHKTBS	;BUILD BYTE PTR
  2244	002571'	200 03 0 00 000100'		MOVE	T1,STRG		;GET TEST STRING
  2245	002572'	260 17 0 00 002476'		PUSHJ	P,USTCMP	;TEST PREVIOUS ENTRY
  2246	002573'	322 03 0 00 004743'		JUMPE	T1,[SOJA P1,TABLKF] ;EXACTLY EQUAL, DONE. FIX INDEX.
  2247	002574'	607 03 0 00 100000 		JXN	T1,SC%GTR,TABLK2 ;IF LESS THEN HAVE FOUND HIGHEST SUBSTR
  2248	002575'	334 00 0 00 000000 
  2249	002576'	254 00 0 00 002600'
  2250	002577'	364 07 0 00 002564'		SOJA	P1,TABLK3	;STILL A SUBSTR, CHECK HIGHER
  2251
  2252					;NOW POINT AT HIGHEST ENTRY WHICH IS A SUBSTR.  IF THERE IS AN EXACT
  2253					;MATCH, IT IS BEFORE ALL SUBSETS AND HAS ALREADY BEEN FOUND
  2254
  2255	002600'	201 03 1 00 000010 	TABLK2:	MOVEI	T1,@P2		;CHECK NEXT ENTRY FOR AMBIGUOUS
  2256	002601'	301 07 0 12 777777 		CAIL	P1,-1(P4)	;NOW AT LAST ENTRY IN TABLE?
  2257	002602'	254 00 0 00 002613'		JRST	TBLK2A		;YES, THIS ENTRY IS DISTINCT
  2258	002603'	554 04 0 03 000001 		HLRZ	T2,1(T1)	;GET STRING ADR OF NEXT ENTRY
  2259	002604'	260 17 0 00 002455'		PUSHJ	P,CHKTBS	;BUILD BYTE PTR
  2260	002605'	200 03 0 00 000100'		MOVE	T1,STRG		;GET TEST STRING
  2261	002606'	260 17 0 00 002476'		PUSHJ	P,USTCMP	;COMPARE NEXT LOWER ENTRY
  2262	002607'	322 03 0 00 004752'		JUMPE	T1,[$STOP(BTF,Bad table format)] ;EXACT MATCH,TABLE IS BAD
  2263	002610'	607 03 0 00 200000 		JXN	T1,SC%SUB,TABLKM ;NEXT ENTRY NOT DISTINCT, DO AMBIG RETURN
  2264	002611'	334 00 0 00 000000 
  2265	002612'	254 00 0 00 002555'
  2266	002613'	554 04 1 00 000010 	TBLK2A:	HLRZ T2,@P2		;CHECK FLAGS FOR THIS ENTRY
  2267	002614'	260 17 0 00 002455'		PUSHJ	P,CHKTBS
  2268	002615'	606 03 0 00 000002 		JXN	T1,CM%NOR,TABLKM ;FAIL IF NOREC BIT SET
  2269	002616'	334 00 0 00 000000 
  2270	002617'	254 00 0 00 002555'
  2271	002620'	205 04 0 00 100000 		MOVX	T2,TL%ABR	;GIVE LEGAL ABBREVIATION RETURN
  2272	002621'	200 05 0 00 000101'		MOVE	T3,REMSTR	;RETURN PTR TO REMAINDER OF STRING
  2273	002622'	254 00 0 00 002557'		JRST	TABLKA
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 69
GSCN	MAC	22-May-78 10:53		S%TBLK  --  Table lookup routine                                                   SEQ 0364

  2274
  2275					;HERE WHEN PROBE NOT EQUAL
  2276
  2277	002623'	307 11 0 00 000001 	TABLKN:	CAIG	P3,1		;INCREMENT NOW 1?
  2278						JRST	[JXN	T1,SC%LSS,TABLKX ;YES, NO MATCH FOUND
  2279	002624'	254 00 0 00 004754'			AOJA	P1,TABLKX] 	;IF STRING GREATER, BUMP ADR FOR INSERT
  2280	002625'	350 00 0 00 000011 		AOS	P3		;NEXT INC = <INC+1>/2
  2281	002626'	240 11 0 00 777777 		ASH	P3,-1
  2282	002627'	603 03 0 00 100000 		TXNE	T1,SC%GTR	;IF LAST PROBE LOW, ADD INCREMENT
  2283	002630'	270 07 0 00 000011 		ADD	P1,P3
  2284	002631'	603 03 0 00 400000 		TXNE	T1,SC%LSS
  2285	002632'	274 07 0 00 000011 		SUB	P1,P3		;LAST PROBE HIGH, SUBTRACT INCR
  2286	002633'	301 07 0 12 000000 	TBLKN1:	CAIL	P1,0(P4)	;AFTER END OF TABLE?
  2287						JRST	[MOVX	T1,SC%LSS	;YES, FAKE PROBE TOO HIGH
  2288	002634'	254 00 0 00 004760'			JRST	TABLKN]
  2289	002635'	325 07 0 00 002541'		JUMPGE	P1,TABLK0	;IF STILL WITHIN TABLE RANGE, GO PROBE
  2290	002636'	205 03 0 00 100000 		MOVX	T1,SC%GTR	;BEFORE START OF TABLE, FAKE LOW PROBE
  2291	002637'	254 00 0 00 002623'		JRST	TABLKN
  2292
  2293	002640'				SCN%L:				;LABEL THE LITERAL POOL
  2294
  2295					>;;!!!!!NOTE WELL - THIS CONDITIONAL STARTED AT LABEL S%CMND
  2296
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 1
GKBD	MAC	22-May-78 10:54		KEYBOARD INTERFACE                                                                 SEQ 0365

  2297					SUBTTL	KEYBOARD INTERFACE
  2298
  2299					;This module provides a timesharing terminal interface for the
  2300					;DIAGNOSTIC library.  The interface itself attempts to emulate as
  2301					;far as possible the TEXTI JSYS implemented in the TOPS20 monitor.
  2302
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 2
GKBD	MAC	22-May-78 10:54		Table of Contents                                                                  SEQ 0366

  2303					SUBTTL Table of Contents
  2304
  2305					;               TABLE OF CONTENTS FOR GLXKBD
  2306					;
  2307					;
  2308					;                        SECTION                                   PAGE
  2309					;    1. Table of Contents.........................................   2
  2310					;    2. Revision History..........................................   3
  2311					;    3. Local Definitions.........................................   5
  2312					;    4. Module Storage............................................   6
  2313					;    5. K%INIT  --  Initialization of the Scanning Module.........   7
  2314					;    6. K%RCOC  --  Read Character Output Control Table...........   8
  2315					;    7. K%WCOC  --  Write Character  Output Control table.........   9
  2316					;    8. K%SUET  --  Set User Escape Table.........................  10
  2317					;    9. K%STYP  --  Set terminal type.............................  11
  2318					;   10. K%TXTI  --  Handle Terminal Input.........................  13
  2319					;   11. TXTL  --  Loop for inputting text.........................  14
  2320					;   12. TTYCHR  --  Here to receive 1 character from the TTY......  16
  2321					;   13. Utilities for text handling...............................  17
  2322					;   14. SPCHK  --  Check for special characters...................  22
  2323					;   15. CCU  --  Handle ^U (Rubout entire line)...................  23
  2324					;   16. CCR  --  Handle ^R (Re-type the line).....................  24
  2325					;   17. CCDEL  --  Handle Rubout (Delete one character)...........  25
  2326					;   18. CCW  --  Handle ^W (Delete back to punctuation character).  26
  2327					;   19. BEGBUF  --  Handle rubouts to beginning of buffer.........  27
  2328					;   20. TYPEBP  --  Type a string according to a byte-pointer.....  27
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 3
GKBD	MAC	22-May-78 10:54		Revision History                                                                   SEQ 0367

  2329					SUBTTL	Revision History
  2330
  2331
  2332					COMMENT \
  2333
  2334					Edit	GCO	Reason
  2335					----	---	-------------------------------------------
  2336
  2337					0001		Create GLXKBD module
  2338					0002		Fix a number of interrupt race problems and
  2339							start adding ESCape sequence code
  2340					0003	009	Implement a new TEXTI flag to causes 'nothing' to echo.
  2341					0004	010	Make K%STYP set some additional characteristic like LC..
  2342					0005		Allow the source word (.RDIOJ) contain a byte-pointer to
  2343							an ASCIZ string if RD%JFN is off in the flag word (this
  2344							is additional compatibility with the TEXTI JSYS).
  2345					006		TOTALLY HACKED UP FOR DIAGNOSTICS
  2346
  2347					\  ;END OF REVISION HISTORY
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 4
GKBD	MAC	22-May-78 10:54		Revision History                                                                   SEQ 0368

  2348					; Entry Points found in this module
  2349
  2350						ENTRY	K%INIT			;INITIALIZATION POINT
  2351						ENTRY	K%TXTI			;TEXT INPUT ROUTINE
  2352						ENTRY	K%RCOC			;READ COC TABLE
  2353						ENTRY	K%WCOC			;WRITE COC TABLE
  2354						ENTRY	K%STYP			;SET TERMINAL TYPE
  2355						ENTRY	K%SUET			;SETUP USER ESCAPE TABLE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 5
GKBD	MAC	22-May-78 10:54		Local Definitions                                                                  SEQ 0369

  2356					SUBTTL Local Definitions
  2357
  2358					; Special Accumulator definitions
  2359
  2360			000016			C==16				;GLOBAL CHARACTER REGISTER
  2361
  2362					; Special characters
  2363
  2364			000134			.CHBSL=="\"			;BACKSLASH
  2365
  2366					; Control character former
  2367
  2368						DEFINE $C(A)<"A"-100>		;JUST ASCII MINUS LEAD BIT
  2369
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 6
GKBD	MAC	22-May-78 10:54		Module Storage                                                                     SEQ 0370

  2370					SUBTTL	Module Storage
  2371
  2372
  2373	002640'					$$DATA	TTYFLG			;FLAGS FROM INITIALIZATION BLOCK
  2374					;	$$DATA	RD,.RDSIZ		;INTERNAL ARGUMENT BLOCK
  2375	002641'					$$DATA	COCTAB,2		;CHARACTER OUTPUT CONTROL TABLE
  2376	002643'					$$DATA	TRMPTR			;POINTER TO TERMINAL CONTROL
  2377	002644'					$$DATA	RUBFLG			;-1 WHEN LAST CHAR WAS RUBOUT
  2378	002645'					$$DATA	ARGLOC			;LOCATION OF CALLER'S ARGUMENT BLOCK
  2379	002646'					$$DATA	BCKFLG			;-1 WHEN BACKUP LIMIT HAS BEEN PASSED
  2380	002647'					$$DATA	UESCTB			;ADDRESS OF USER ESCAPE TABLE
  2381	002650'					$$DATA	CURESC			;CURRENT STATE OF ESCAPE SEQ PROCESSOR
  2382	002651'					$$DATA	TRMTYP			;TERMINAL TYPE
  2383					;	$$DATA	TRMUDX			;UDX FOR TERMINAL
  2384	002652'					$$DATA	BGLINE			;POINTER TO BEGINNING OF CURRENT LINE
  2385	002653'					$$DATA	BGBUFR			;MY POINTER TO BEGINNING OF BUFFER
  2386
  2387	002654'	263 17 0 00 000000 	I%ION:	POPJ	P,
  2388	002655'	263 17 0 00 000000 	I%IOFF:	POPJ	P,
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 7
GKBD	MAC	22-May-78 10:54		K%INIT  --  Initialization of the Scanning Module                                  SEQ 0371

  2389					SUBTTL	K%INIT  --  Initialization of the Scanning Module
  2390
  2391					;K%INIT is called during the intialization phase of the host program via the
  2392					;	I%INIT call.  If command scanning is desired, the controlling terminal
  2393					;	is taken over, etc...
  2394
  2395					;CALL IS:	S1/ Length of the Initialization Block
  2396					;		S2/ Address of the Initialization Block 
  2397					;
  2398					;TRUE RETURN:	No arguments are returned
  2399
  2400	002656'				K%INIT:
  2401					IFN FTJSYS,<
  2402						DMOVE	S1,[BYTE (2) 0,1,1,1,1,1,1,2,3,2,2,1,1,2,1,1,1,1
  2403							    BYTE (2) 0,0,0,0,0,0,1,1,1,3,2,2,2,2,0,0,0,0] ;LOAD COCTAB
  2404						PJRST	K%WCOC			;WRITE THE COC AND RETURN
  2405					>  ;END IFN FTJSYS
  2406
  2407					IFN FTUUOS,<
  2408					;	MOVEI	S1,16			;USE CHANNEL 16
  2409					;	IOR	S1,[OPEN [IO.LEM+IO.SUP+IO.TEC+.IOASC ;SET ALL THE FUNNY MODES
  2410					;		    SIXBIT /TTY/	;ON THE CONTROLLING TERMINAL
  2411					;		    XWD  0,0 ]]		;ALLOCATING NO BUFFERS
  2412					;	XCT	S1			;OPEN UP THE TERMINAL FOR SCANNING
  2413						OPEN	16,[IO.LEM+IO.SUP+IO.TEC+.IOASC
  2414							    SIXBIT/TTY/
  2415	002656'	050 16 0 00 004762'			    0]
  2416	002657'	260 17 0 00 003773'		  $STOP(COT,Cannot OPEN terminal)
  2417						DMOVE	S1,[BYTE (2) 0,1,1,1,1,1,1,2,3,2,2,1,1,2,1,1,1,1
  2418	002661'	120 01 0 00 004774'			    BYTE (2) 0,0,0,0,0,0,1,1,1,3,2,2,2,2,0,0,0,0] ;LOAD COCTAB
  2419	002662'	260 17 0 00 002676'		PUSHJ	P,K%WCOC		;WRITE THE TABLE
  2420	002663'	205 01 0 00 646471 		MOVSI	S1,'TTY'		;LOAD TTY NAME
  2421	002664'	047 01 0 00 000127 		IONDX.	S1,			;GET IO INDEX
  2422	002665'	255 00 0 00 000000 		  JFCL				;IGNORE ERROR
  2423	002666'	202 01 0 00 000131'		MOVEM	S1,TRMUDX		;STORE FOR VARIOUS TRMOPS
  2424	002667'	402 00 0 00 002647'		SETZM	UESCTB			;NO ESCAPE SEQUENCES
  2425	002670'	402 00 0 00 002650'		SETZM	CURESC			;CLEAR ESCAPE MACHINE
  2426	002671'	201 01 0 00 000000 		MOVX	S1,.TT33		;ASSUME THIS IS A 33
  2427	002672'	476 00 0 00 002640'		SETOM	TTYFLG			;SET TTY OPENED
  2428	002673'	254 00 0 00 002715'		PJRST	K%STYP			;SET TYPE AND RETURN
  2429					>  ;END IFN FTUUOS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 8
GKBD	MAC	22-May-78 10:54		K%RCOC  --  Read Character Output Control Table                                    SEQ 0372

  2430					SUBTTL K%RCOC  --  Read Character Output Control Table
  2431
  2432					;K%RCOC and K%WCOC are used to read/write the control character output
  2433					;	table.  For each character 0-37, there is a 2 bit field indicating
  2434					;	how this character should be echoed.  This two word table then
  2435					;	consists of bit pairs code as:
  2436					;	  00 - Do not echo at all
  2437					;	  01 - Indicate by ^X 
  2438					;	  10 - Send the actual ASCII code (I.E. 7 for ^G)
  2439					;	  11 - Simulate the character
  2440
  2441
  2442					;CALL IS:	No arguments
  2443					;
  2444					;TRUE RETURN:	S1/ First word of COC table
  2445					;		S2/ Second word of COC table
  2446
  2447					IFN FTUUOS,<
  2448	002674'	120 01 0 00 002641'	K%RCOC:	DMOVE	S1,COCTAB		;GET TABLE
  2449	002675'	254 00 0 00 003747'		$RETT				;AND RETURN
  2450					>  ;END IFN FTUUOS
  2451
  2452
  2453					IFN FTJSYS,<
  2454					K%RCOC:	PUSH	P,S2+1			;SAVE A 3RD AC
  2455						MOVX	S1,.PRIIN		;LOAD PRINCIPLE INPUT JFN
  2456						RFCOC				;READ THE COC TABLE
  2457						MOVE	S1,S2			;GET FIRST WORD INTO S1
  2458						MOVE	S2,S2+1			;GET SECOND WORD INTO S2
  2459						POP	P,S2+1			;RESTORE THE SAVED AC
  2460						$RETT				;AND RETURN
  2461					>  ;END IFN FTJSYS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 9
GKBD	MAC	22-May-78 10:54		K%WCOC  --  Write Character  Output Control table                                  SEQ 0373

  2462					SUBTTL K%WCOC  --  Write Character  Output Control table
  2463
  2464					;See explanation above
  2465
  2466					;CALL IS:	S1/ First word of COC table
  2467					;		S2/ Second word of COC table
  2468					;
  2469					;TRUE RETURN:	Always
  2470
  2471					IFN FTUUOS,<
  2472	002676'	124 01 0 00 002641'	K%WCOC:	DMOVEM	S1,COCTAB		;STORE THE TABLE
  2473	002677'	254 00 0 00 003747'		$RETT				;AND RETURN
  2474					>  ;END IFN FTUUOS
  2475
  2476					IFN FTJSYS,<
  2477					K%WCOC:	PUSH	P,S2+1			;SAVE A 3RD JSYS AC
  2478						MOVE	S2+1,S2			;PUT SECOND WORD IN T1
  2479						MOVE	S2,S1			;PUT FIRST WORD IN S2
  2480						MOVEI	S1,.PRIIN		;GET PRINCIPLE INPUT JFN
  2481						SFCOC				;SET COC TABLE
  2482						POP	P,S2+1			;RESTORE S2+1
  2483						$RETT				;AND RETURN
  2484					>  ;END IFN FTJSYS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 10
GKBD	MAC	22-May-78 10:54		K%SUET  --  Set User Escape Table                                                  SEQ 0374

  2485					SUBTTL	K%SUET  --  Set User Escape Table
  2486
  2487					;K%SUET is called to setup the address of the user escape table if the
  2488					;	program wants special action on ESCape sequences.
  2489					;
  2490					;Call:	S1/  address of User Escape Table
  2491					;	      or 0 to clear the UET entry
  2492					;
  2493					;T Ret:	always
  2494
  2495					IFN FTUUOS,<
  2496	002700'	202 01 0 00 002647'	K%SUET:	MOVEM	S1,UESCTB		;SAVE THE ESCAPE TABLE ADDRESS
  2497	002701'	402 00 0 00 002650'		SETZM	CURESC			;CLEAR CURRENT STATE
  2498	002702'	200 01 0 00 002651'		MOVE	S1,TRMTYP		;GET TERMINAL TYPE
  2499	002703'	302 01 0 00 000011 		CAXE	S1,.TTV50		;IS IT A VT50?
  2500	002704'	306 01 0 00 000015 		CAXN	S1,.TTV52		;OR A VT52?
  2501	002705'	334 00 0 00 000000 		SKIPA				;YES, SET IT UP
  2502	002706'	254 00 0 00 003747'		$RETT				;RETURN
  2503
  2504	002707'	051 01 0 00 004776'		OUTCHR	[.CHESC]		;OUTPUT AN ESCAPE
  2505	002710'	201 01 0 00 000075 		MOVEI	S1,"="			;THIS SETS THE MODE
  2506	002711'	336 00 0 00 002647'		SKIPN	UESCTB			;PROGRAM IS CLEARING IT
  2507	002712'	201 01 0 00 000076 		MOVEI	S1,76			;CLEAR IT
  2508	002713'	051 01 0 00 000001 		OUTCHR	S1			;PUT OUT THE CHARACTER
  2509	002714'	254 00 0 00 003747'		$RETT				;AND RETURN
  2510					>  ;END IFN FTUUOS
  2511
  2512					IFN FTJSYS,<
  2513					K%SUET:	HALT .				;NOT IMPLEMENT
  2514					>  ;END IFN FTJSYS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 11
GKBD	MAC	22-May-78 10:54		K%STYP  --  Set terminal type                                                      SEQ 0375

  2515					SUBTTL K%STYP  --  Set terminal type
  2516
  2517					;K%STYP is used to give the scanning module knowledge of the terminal type
  2518					;	in use as the command terminal.
  2519
  2520					;CALL IS:	S1/ Terminal type code (See GLXMAC)
  2521					;
  2522					;TRUE RETURN:	Terminal is a known type
  2523					;FALSE RETURN:	The terminal code does not appear in SCN's tables
  2524
  2525
  2526					IFN FTJSYS,<
  2527					K%STYP:	MOVE	S2,S1			;PUT TYPE IN S2
  2528						MOVX	S1,.PRIIN		;LOAD PRINCIPLE INPUT JFN
  2529						STTYP				;SET TERMINAL TYPE
  2530						ERJMP	.RETF			;LOSE IF JSYS DID
  2531						$RETT				;ELSE WIN.
  2532					>  ;END IFN FTJSYS
  2533
  2534					IFN FTUUOS,<
  2535	002715'	260 17 0 00 003647'	K%STYP:	PUSHJ	P,.SAVE4		;SAVE SOME PERM ACS
  2536	002716'	200 07 0 00 000001 		MOVE	P1,S1			;AND COPY INPUT ARGUMENT
  2537	002717'	205 01 0 00 777766 		MOVSI	S1,-TTTABL		;LENGTH OF TABLE
  2538
  2539	002720'	554 02 0 01 002741'	STYP.2:	HLRZ	S2,TTTAB(S1)		;GET A TERMINAL TYPE CODE
  2540	002721'	312 07 0 00 000002 		CAME	P1,S2			;A MATCH?
  2541	002722'	253 01 0 00 002720'		AOBJN	S1,STYP.2		;NO, TRY ALL THE ENTRIES
  2542	002723'	325 01 0 00 003746'		JUMPGE	S1,.RETF		;TAKE FAILURE IF NOT FOUND
  2543
  2544	002724'	200 02 0 01 002753'		MOVE	S2,TTSET(S1)		;GET ADDRESS OF SETUP ROUTINE
  2545	002725'	271 01 0 00 002741'		ADDI	S1,TTTAB		;ADD TABLE ADDRESS TO OFFSET
  2546	002726'	552 01 0 00 002643'		HRRZM	S1,TRMPTR		;STORE POINTER FOR LATER USE
  2547	002727'	202 07 0 00 002651'		MOVEM	P1,TRMTYP		;AND SAVE THE TERMINAL TYPE
  2548	002730'	607 02 0 00 777777 		TLNN	S2,-1			;IS THERE A WIDTH THERE?
  2549	002731'	254 00 0 02 000000 		PJRST	0(S2)			;NO, JUST SET TERMINAL SPECIFIC STUFF
  2550	002732'	200 01 0 00 004777'		MOVE	S1,[3,,P1]		;SETUP AN ARG BLOCK
  2551	002733'	201 07 0 00 002012 		MOVX	P1,.TOWID+.TOSET	;SET WIDTH FUNCTION
  2552	002734'	200 10 0 00 000131'		MOVE	P2,TRMUDX		;GET THE UDX
  2553	002735'	554 11 0 00 000002 		HLRZ	P3,S2			;GET THE WIDTH
  2554	002736'	047 01 0 00 000116 		TRMOP.	S1,			;SET THE WIDTH
  2555	002737'	255 00 0 00 000000 		  JFCL				;IGNORE THE ERROR
  2556	002740'	254 00 0 02 000000 		PJRST	0(S2)			;AND DO TERMINAL SPECIFIC STUFF
  2557
  2558
  2559					;TABLES ARE ON THE FOLLOWING PAGE
  2560					;
  2561					;STILL IN IFN FTUUOS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 12
GKBD	MAC	22-May-78 10:54		K%STYP  --  Set terminal type                                                      SEQ 0376

  2562					;FORMAT OF THE TTTAB TABLE IS:
  2563					;	XWD	TERMINAL-TYPE,ADDRESS-OF-CONTROL-TABLE
  2564					;
  2565					;EACH ENTRY IN THE CONTROL TABLE IS THE ADDRESS OF A PARTICULAR
  2566					;	CONTROL SEQUENCE FOR THE TERMINAL.
  2567					;
  2568					;THE SEQUENCES ARE:
  2569			000000			.TCEOL==0			;ERASE TO END-OF-LINE
  2570
  2571	002741'	000000	000000		TTTAB:	.TT33,,0			;MODEL 33 TTY
  2572	002742'	000001	000000			.TT35,,0			;MODEL 35 TTY
  2573	002743'	000002	000000			.TT37,,0			;MODEL 37 TTY
  2574	002744'	000003	000000			.TTEXE,,0			;EXECUPORT
  2575	002745'	000010	005001'			.TTV05,,[[BYTE (7)37,177,177,177]];VT05
  2576	002746'	000011	005003'			.TTV50,,[[BYTE (7).CHESC,"J"]]	;VT50
  2577	002747'	000012	000000			.TTL30,,0			;LA30
  2578	002750'	000014	000000			.TTL36,,0			;LA36
  2579	002751'	000015	005003'			.TTV52,,[[BYTE (7) .CHESC,"J"]]	;VT52
  2580	002752'	000015	005003'			.TTV52,,[[BYTE (7) .CHESC,"J"]]	;AND ONE FOR PATCHING
  2581			000012			  TTTABL==.-TTTAB
  2582
  2583
  2584					;FORMAT OF TABLE IS WIDTH,,ADR OF SETUP ROUTINE
  2585					;    IF WIDTH IS 0, IT ISN'T SET
  2586					;	***MUST BE PARALLEL TO TTTAB***
  2587
  2588	002753'	000110	003747'		TTSET:	XWD	^D72,.RETT		;MODEL 33 TTY
  2589	002754'	000110	003747'			XWD	^D72,.RETT		;MODEL 35 TTY
  2590	002755'	000110	003747'			XWD	^D72,.RETT		;MODEL 37 TTY
  2591	002756'	000110	003747'			XWD	^D72,.RETT		;EXECUPORT
  2592	002757'	000110	003747'			XWD	^D72,.RETT		;VT05
  2593	002760'	000120	002765'			XWD	^D80,SETVT5		;VT50
  2594	002761'	000110	003747'			XWD	^D72,.RETT		;LA30
  2595	002762'	000000	003747'			XWD	^D00,.RETT		;LA36
  2596	002763'	000120	002765'			XWD	^D80,SETVT5		;VT52
  2597	002764'	000120	002765'			XWD	^D80,SETVT5		;PATCH SPACE
  2598
  2599
  2600					;TERMINAL SETUP ROUTINES
  2601	002765'	051 01 0 00 004776'	SETVT5:	OUTCHR	[.CHESC]		;PUT OUT AN ESCAPE
  2602	002766'	201 01 0 00 000075 		MOVEI	S1,"="			;TO SET ALTERNATE MODE
  2603	002767'	336 00 0 00 002647'		SKIPN	UESCTB			;DID PROGRAM SET IT
  2604	002770'	201 01 0 00 000076 		MOVEI	S1,76			;NOPE.
  2605	002771'	051 01 0 00 000001 		OUTCHR	S1			;PUT IT OUT
  2606	002772'	200 01 0 00 004777'		MOVE	S1,[3,,P1]		;GET TRMOP ARG POINTER
  2607	002773'	201 07 0 00 002003 		MOVX	P1,.TOLCT+.TOSET	;SET TT LC
  2608	002774'	200 10 0 00 000131'		MOVE	P2,TRMUDX		;GET THE UDX
  2609	002775'	400 11 0 00 000000 		SETZ	P3,			;SET A FLAG?
  2610	002776'	047 01 0 00 000116 		TRMOP.	S1,			;DO THE TRMOP
  2611	002777'	255 00 0 00 000000 		  JFCL				;IGNORE ERROR
  2612	003000'	254 00 0 00 003747'		$RETT				;AND RETURN
  2613					>  ;END IFN FTUUOS
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 13
GKBD	MAC	22-May-78 10:54		K%TXTI  --  Handle Terminal Input                                                  SEQ 0377

  2614					SUBTTL K%TXTI  --  Handle Terminal Input
  2615
  2616					;This routine is used to do input from the controlling terminal.  It
  2617					;	acts much like the TOPS-20 JSYS TEXTI.
  2618
  2619					;CALL IS:	S1/ Address of a TEXTI format argument block
  2620					;
  2621					;TRUE RETURN:	Always, with an updated argument block
  2622
  2623					IFN FTJSYS,<
  2624					K%TXTI:	TEXTI				;DO THE TEXTI JSYS
  2625						ERJMP	.RETF			;LOSE IF HE DID
  2626						$RETT				;AND RETURN
  2627					>  ;END IFN FTJSYS
  2628
  2629					IFN FTUUOS,<
  2630	003001'	336 00 0 00 002640'	K%TXTI:	SKIPN	TTYFLG			;WAS TERMINAL EVER OPENED?
  2631	003002'	260 17 0 00 003773'		$STOP(TNO,Terminal never opened) ;APPARENTLY NOT
  2632	003004'	202 01 0 00 002645'		MOVEM	S1,ARGLOC		;REMEMBER ARGUMENT BLOCK LOCATION
  2633	003005'	260 17 0 00 003733'		SAVE	C			;SAVE CHARACTER AC
  2634	003006'	260 17 0 00 003665'		PUSHJ	P,.SAVET		;MAKE T REGS AVAILABLE FOR SCRATCH
  2635	003007'	201 01 0 00 000011 		MOVEI	S1,.RDSIZ		;GET SIZE OF BLOCK
  2636	003010'	201 02 0 00 000044'		MOVEI	S2,RD			;AND ITS LOCATION
  2637	003011'	260 17 0 00 003605'		PUSHJ	P,.ZCHNK		;AND NOW ZERO THE BLOCK OUT
  2638	003012'	504 02 0 00 002645'		HRL	S2,ARGLOC		;FORM A XFER POINTER
  2639	003013'	200 01 0 00 002645'		MOVE	S1,ARGLOC		;GET LOCATION OF BLOCK
  2640	003014'	200 01 0 01 000000 		MOVE	S1,.RDCWB(S1)		;LENGTH OF BLOCK TO MOVE
  2641	003015'	271 01 0 02 000000 		ADDI	S1,0(S2)		;NOW HAVE LAST WORD TO MOVE
  2642	003016'	251 02 0 01 000000 		BLT	S2,0(S1)		;MOVE USER BLOCK
  2643	003017'	260 17 0 00 003206'		PUSHJ	P,CONVBP		;CONVERT ALL BYTE POINTERS ETC..
  2644	003020'	402 00 0 00 002644'		SETZM	RUBFLG			;CLEAR RUBOUT IN PROGRESS FLAG
  2645	003021'	402 00 0 00 002646'		SETZM	BCKFLG			;CLEAR BACKUP LIMIT FLAG
  2646	003022'	254 00 0 00 003042'		JRST	TXTL			;YES, DON'T SLEEP
  2647
  2648
  2649									;CONTINUED ON NEXT PAGE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 14
GKBD	MAC	22-May-78 10:54		K%TXTI  --  Handle Terminal Input                                                  SEQ 0378

  2650									;CONTINUED FROM PREVIOUS PAGE
  2651
  2652					; HERE WHEN ALL IS DONE, S1 CONTAINS FLAGS TO STORE
  2653
  2654	003023'	332 00 0 00 002646'	FINTXT:	SKIPE	BCKFLG			;WAS BACKUP LIMIT REACHED?
  2655	003024'	661 01 0 00 000010 		IORX	S1,RD%BLR		;YES, TURN ON THE INDICATOR
  2656	003025'	436 01 0 00 000045'		IORM	S1,RD+.RDFLG		;STORE FLAGS
  2657	003026'	336 00 0 00 000050'		SKIPN	RD+.RDDBC		;ANY ROOM FOR A TERMINATING NULL?
  2658	003027'	254 00 0 00 003033'		JRST	FINT.1			;NO, SO CANNOT DEPOSIT NULL
  2659	003030'	400 01 0 00 000000 		SETZ	S1,			;GET A NULL
  2660	003031'	200 02 0 00 000047'		MOVE	S2,RD+.RDDBP		;GET THE BYTE POINTER
  2661	003032'	136 01 0 00 000002 		IDPB	S1,S2			;AND STORE IT
  2662	003033'	200 01 0 00 002645'	FINT.1:	MOVE	S1,ARGLOC		;GET LOCATION OF ARG BLOCK
  2663	003034'	200 02 0 01 000000 		MOVE	S2,.RDCWB(S1)		;AND SIZE OF IT-1
  2664	003035'	270 02 0 00 000001 		ADD	S2,S1			;GET LAST WORD TO MOVE
  2665	003036'	505 01 0 00 000044'		HRLI	S1,RD			;TRANSFER FROM OUR FULL ARG BLOCK
  2666	003037'	251 01 0 02 000000 		BLT	S1,0(S2)		;TO THE USER'S POSSIBLY PARTIAL
  2667	003040'	260 17 0 00 002654'		PUSHJ	P,I%ION			;RE-ENABLE INTERRUPTS JUST IN CASE
  2668	003041'	254 00 0 00 003747'		$RETT
  2669
  2670					;STILL IN IFN FTUUOS FOR A LONG TIME
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 15
GKBD	MAC	22-May-78 10:54		TXTL  --  Loop for inputting text                                                  SEQ 0379

  2671					SUBTTL TXTL  --  Loop for inputting text
  2672
  2673					;TXTL is a lower level routine which loops for each character, calling
  2674					;	all the worker routines.  It exits when the appropriate condition
  2675					;	 (ie, break or full) occurs.
  2676
  2677					;CALL IS:	No arguments
  2678					;
  2679					;TRUE RETURN:	Always
  2680
  2681
  2682	003042'	260 17 0 00 002654'	TXTL:	PUSHJ	P,I%ION			;TURN ON INTERRUPTS IF OFF
  2683	003043'	331 00 0 00 002646'		SKIPL	BCKFLG			;WAS BACKUP LIMIT REACHED?
  2684	003044'	337 01 0 00 000050'		SKIPG	S1,RD+.RDDBC		;ANY ROOM FOR ANOTHER CHARACTER?
  2685	003045'	254 00 0 00 003023'		JRST	FINTXT			;NO, RETURN WITH NO FLAGS SET
  2686	003046'	205 01 0 00 004000 		MOVX	S1,RD%JFN		;GET THE "JFN PRESENT" BIT
  2687	003047'	616 01 0 00 000045'		TDNN	S1,RD+.RDFLG		;SKIP IF SET
  2688						JRST	[ILDB C,RD+.RDFLG	;ELSE, GET A CHARACTER
  2689							 JUMPN C,TXTL.2		;AND CONTINUE IF NOT NULL
  2690							 MOVX S1,RD%BTM		;LOAD "BREAK TERMINATOR" FLAG
  2691	003050'	254 00 0 00 005013'			 JRST FINTXT]		;AND RETURN
  2692	003051'	554 01 0 00 000046'		HLRZ	S1,RD+.RDIOJ		;GET PRIMARY INPUT JFN
  2693	003052'	302 01 0 00 000100 		CAXE	S1,.PRIIN		;TERMINAL?
  2694	003053'	254 00 0 00 003110'		JRST	TXTL.4			;NO
  2695
  2696	003054'	332 00 0 00 002650'		SKIPE	CURESC			;ARE WE IN AN ESCAPE SEQUENCE?
  2697	003055'	254 00 0 00 003122'		JRST	TXTL.5			;YES, GET NEXT CHARACTER
  2698	003056'	260 17 0 00 003134'		PUSHJ	P,TTYCHR		;NO,GET A CHARACTER
  2699	003057'	306 16 0 00 000033 		CAIN	C,.CHESC		;IS IT AN ESCAPE?
  2700	003060'	336 01 0 00 002647'		SKIPN	S1,UESCTB		;YES, HAS USER SETUP A TABLE?
  2701	003061'	254 00 0 00 003073'		JRST	TXTL.2			;NO, CONTINUE ON
  2702	003062'	202 01 0 00 002650'		MOVEM	S1,CURESC		;SAVE AS CURRENT STATE
  2703
  2704	003063'	260 17 0 00 003134'	TXTL.1:	PUSHJ	P,TTYCHR		;GET THE NEXT CHARACTER
  2705	003064'	270 16 0 00 002650'		ADD	C,CURESC		;GET ADR OF TABLE ENTRY
  2706	003065'	200 01 0 16 000000 		MOVE	S1,0(C)			;AND GET THE WORD
  2707	003066'	202 01 0 00 002650'		MOVEM	S1,CURESC		;STORE AS CURRENT STATE
  2708						JUMPE	S1,[OUTCHR [.CHBEL]	;TYPE A BELL
  2709	003067'	322 01 0 00 005017'			    JRST TXTL]		;AND LOOP AROUND
  2710	003070'	607 01 0 00 777777 		TLNN	S1,-1			;IS IT 0,,ADR?
  2711	003071'	254 00 0 00 003063'		JRST	TXTL.1			;YES, LOOP
  2712	003072'	254 00 0 00 003042'		JRST	TXTL			;NO, A BP FINALLY
  2713
  2714
  2715									;TXTL IS CONTINUED ON THE FOLLOWING PAGE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 16
GKBD	MAC	22-May-78 10:54		TXTL  --  Loop for inputting text                                                  SEQ 0380

  2716									;CONTINUED FROM THE PREVIOUS PAGE
  2717
  2718	003073'	322 16 0 00 003042'	TXTL.2:	JUMPE	C,TXTL			;IGNORE NULLS
  2719
  2720	003074'	260 17 0 00 003171'		PUSHJ	P,CONVRT		;CONVERT LOWER TO UPPER, ETC.
  2721	003075'	260 17 0 00 003360'		PUSHJ	P,SPCHK			;SEE IF ITS A SPECIAL FUNCTION
  2722	003076'	321 00 0 01 000000 		JUMPT	0(S1)			;IF ITS SPECIAL, GO HANDLE IT
  2723
  2724	003077'	260 17 0 00 003146'		PUSHJ	P,STOC			;STORE THE CHARACTER
  2725	003100'	260 17 0 00 002654'		PUSHJ	P,I%ION			;OK, SAFE TO BE INTERRUPTED
  2726	003101'	356 00 0 00 002644'		AOSN	RUBFLG			;CLEAR RUBFLG, WAS IT UP?
  2727	003102'	051 01 0 00 005021'		OUTCHR	[.CHBSL]		;YES, CLOSE THE RUBOUT SET
  2728	003103'	260 17 0 00 003273'		PUSHJ	P,ECHO			;AND ECHO IT
  2729	003104'	260 17 0 00 003314'	TXTL.3:	PUSHJ	P,CBRK			;CHECK FOR A BREAK
  2730	003105'	322 00 0 00 003042'		JUMPF	TXTL			;IF NOT, GET NEXT CHARACTER
  2731	003106'	205 01 0 00 000040 		MOVX	S1,RD%BTM		;FLAG THAT BREAK ENDED INPUT
  2732	003107'	254 00 0 00 003023'		JRST	FINTXT			;AND RETURN
  2733
  2734	003110'	260 17 0 00 000153'	TXTL.4:	PUSHJ	P,F%IBYT		;GET NEXT CHARACTER FROM FILE
  2735						JUMPF	[CAXE	S1,EREOF$
  2736							JRST	TXTL.6
  2737	003111'	322 00 0 00 005022'			$RETF]
  2738	003112'	336 16 0 00 000002 		SKIPN	C,S2			;NULL?
  2739	003113'	254 00 0 00 003110'		JRST	TXTL.4			;YES
  2740	003114'	550 01 0 00 000046'		HRRZ	S1,RD+.RDIOJ
  2741	003115'	306 01 0 00 000101 		CAIN	S1,.PRIOU		;OUTPUT TO TERMINAL ?
  2742	003116'	260 17 0 00 003273'		PUSHJ	P,ECHO			;YES
  2743	003117'	260 17 0 00 003171'		PUSHJ	P,CONVRT		;CONVERT CASING
  2744	003120'	260 17 0 00 003146'		PUSHJ	P,STOC			;STORE
  2745	003121'	254 00 0 00 003104'		JRST	TXTL.3			;LOOP
  2746
  2747	003122'	134 16 0 00 002650'	TXTL.5:	ILDB	C,CURESC		;GET THE CHARACTER
  2748	003123'	336 00 0 00 000016 		SKIPN	C			;FINALLY HIT A NULL?
  2749	003124'	402 00 0 00 002650'		SETZM	CURESC			;YES, CLEAR THE POINTER
  2750	003125'	305 16 0 00 000200 		CAIGE	C,200			;SPECIAL CHARACTER?
  2751	003126'	254 00 0 00 003073'		JRST	TXTL.2			;NO, HANDLE NORMALLY
  2752	003127'	275 16 0 00 000200 		SUBI	C,200			;MAKE SOMETHING OF IT
  2753	003130'	051 01 0 00 000016 		OUTCHR	C			;OUTPUT IT
  2754	003131'	254 00 0 00 003122'		JRST	TXTL.5			;AND LOOP
  2755
  2756	003132'	260 17 0 00 003773'	TXTL.6:	$STOP(FSE,File System Error)
  2757
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 17
GKBD	MAC	22-May-78 10:54		TTYCHR  --  Here to receive 1 character from the TTY                               SEQ 0381

  2758					SUBTTL	TTYCHR  --  Here to receive 1 character from the TTY
  2759
  2760					;TTYCHR is written to be interruptable until a character is typed.
  2761					;	When a character is available, TTYCHR goes IOFF and returns
  2762					;	the character in C   WITH INTERRUPTS OFF so that input is not
  2763					;	lost.
  2764
  2765	003134'	051 13 0 00 000000 	TTYCHR:	SKPINC				;SKIP IF A CHARACTER IS THERE
  2766	003135'	334 00 0 00 000000 		SKIPA				;NONE THERE YET, SLEEP
  2767	003136'	254 00 0 00 003143'		JRST	TTYC.1			;READY!!
  2768	003137'	205 01 0 00 000010 		MOVX	S1,HB.RTC		;LOAD SOME HIBER BITS
  2769	003140'	047 01 0 00 000072 		HIBER	S1,			;SLEEP
  2770	003141'	255 00 0 00 000000 		  JFCL				;IGNORE IT
  2771	003142'	254 00 0 00 003134'		JRST	TTYCHR			;AND LOOP FOR A CHARACTER
  2772
  2773	003143'	260 17 0 00 002655'	TTYC.1:	PUSHJ	P,I%IOFF		;NEED NOT TO BE INTERRUPTED HERE
  2774	003144'	051 00 0 00 000016 		INCHRW	C			;ASK FOR A CHARACTER
  2775	003145'	254 00 0 00 003747'		$RETT				;AND RETURN """IOFF"""
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 18
GKBD	MAC	22-May-78 10:54		Utilities for text handling                                                        SEQ 0382

  2776					SUBTTL Utilities for text handling
  2777
  2778					; STOC - Store an input character
  2779
  2780	003146'	302 16 0 00 000015 	STOC:	CAIE	C,.CHCRT		;IS THIS A CARRIAGE-RETURN?
  2781	003147'	254 00 0 00 003152'		JRST	STOC.1			;NO
  2782	003150'	135 01 0 00 005033'		LOAD	S1,RD+.RDFLG,RD%CRF	;DO WE WANT TO SUPRESS IT?
  2783	003151'	326 01 0 00 003747'		JUMPN	S1,.RETT		;YES,GIVE UP NOW
  2784	003152'	136 16 0 00 000047'	STOC.1:	IDPB	C,RD+.RDDBP		;STORE FOR POINTER
  2785	003153'	370 00 0 00 000050'		SOS	RD+.RDDBC		;AND DECREMENT COUNT
  2786	003154'	254 00 0 00 003747'		$RETT				;THEN RETURN
  2787
  2788					; USTOC - Unstore a character
  2789
  2790	003155'	336 01 0 00 000054'	USTOC:	SKIPN	S1,RD+.RDBKL		;IS BACKUP LIMIT GIVEN?
  2791	003156'	254 00 0 00 003161'		JRST	USTO.1			;NO
  2792	003157'	316 01 0 00 000047'		CAMN	S1,RD+.RDDBP		;AND ARE WE AT THE LIMIT?
  2793	003160'	476 00 0 00 002646'		SETOM	BCKFLG			;REMEMBER THIS FOR LATER
  2794	003161'	370 01 0 00 000047'	USTO.1:	SOS	S1,RD+.RDDBP		;BACK OFF 5 BYTES
  2795	003162'	201 02 0 00 000004 		MOVEI	S2,4			;AND THEN GO FORWARD
  2796	003163'	133 00 0 00 000001 		IBP	S1			;BY INCREMENTING
  2797	003164'	367 02 0 00 003163'		SOJG	S2,.-1			;FOUR TIMES
  2798	003165'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;CONVERT IT
  2799	003166'	202 01 0 00 000047'		MOVEM	S1,RD+.RDDBP		;AND RE-STORE IT
  2800	003167'	350 00 0 00 000050'		AOS	RD+.RDDBC		;ONE MORE BYTE AVAILABLE
  2801	003170'	254 00 0 00 003747'		$RETT				;THEN RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 19
GKBD	MAC	22-May-78 10:54		Utilities for text handling                                                        SEQ 0383

  2802					; CONVRT - Do case conversion as necessary
  2803
  2804	003171'	135 01 0 00 005034'	CONVRT:	LOAD	S1,RD+.RDFLG,RD%RAI	;DOES CALLER WANT INPUT RAISED?
  2805	003172'	302 16 0 00 000010 		CAXE	C,$C(H)			;OR IS THIS ^H?
  2806	003173'	322 01 0 00 003747'		JUMPE	S1,.RETT		;IF NOT, RETURN NOW
  2807	003174'	301 16 0 00 000141 		CAIL	C,"a"			;IS IT IN RANGE OF LC A
  2808	003175'	303 16 0 00 000172 		CAILE	C,"z"			; TO LC Z?
  2809	003176'	334 00 0 00 000000 		SKIPA				;NO, DON'T CONVERT IT
  2810	003177'	275 16 0 00 000040 		SUBI	C,"a"-"A"		;ELSE DO THE CONVERSION
  2811	003200'	302 16 0 00 000010 		CAXE	C,$C(H)			;IF NOT ^H, THEN
  2812	003201'	254 00 0 00 003747'		$RETT				;RETURN
  2813	003202'	260 17 0 00 003264'		PUSHJ	P,GETCOC		;GET CONTROL CODE
  2814	003203'	306 01 0 00 000003 		CAXN	S1,3			;IS "SIMULATE" ON?
  2815	003204'	201 16 0 00 000177 		MOVEI	C,.CHDEL		;YES, CONVERT TO RUBOUT
  2816	003205'	254 00 0 00 003747'		$RETT				;THEN RETURN
  2817
  2818
  2819					;  CONVBP - Convert default byte pointers
  2820
  2821	003206'	336 01 0 00 000047'	CONVBP:	SKIPN	S1,RD+.RDDBP		;GET REQUIRED POINTER
  2822	003207'	260 17 0 00 003773'		$STOP(IBP,Illegal byte pointer in K%TXTI)
  2823	003211'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;CONVERT TO NORMAL
  2824	003212'	202 01 0 00 000047'		MOVEM	S1,RD+.RDDBP		;STORE IT BACK
  2825	003213'	336 01 0 00 000051'		SKIPN	S1,RD+.RDBFP		;GET INITIAL POINTER IF GIVEN
  2826	003214'	200 01 0 00 000047'		MOVE	S1,RD+.RDDBP		;IF NOT, SET TO DESTINATION
  2827	003215'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;CONVERT
  2828	003216'	202 01 0 00 002652'		MOVEM	S1,BGLINE		;STORE AS BEGINNING OF LINE
  2829	003217'	202 01 0 00 002653'		MOVEM	S1,BGBUFR		;STORE AS BEGINNING OF BUFFER
  2830	003220'	336 01 0 00 000054'		SKIPN	S1,RD+.RDBKL		;GET BACKUP LIMIT IF GIVEN
  2831	003221'	254 00 0 00 003224'		JRST	COBP.1			;NOT GIVEN, SKIP THIS
  2832	003222'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;CONVERT IT
  2833	003223'	202 01 0 00 000054'		MOVEM	S1,RD+.RDBKL		;AND STORE IT BACK
  2834	003224'	336 01 0 00 000052'	COBP.1:	SKIPN	S1,RD+.RDRTY		;IS RE-TYPE PROMPT GIVEN?
  2835	003225'	254 00 0 00 003747'		$RETT				;NO
  2836	003226'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;CONVERT IT
  2837	003227'	202 01 0 00 000052'		MOVEM	S1,RD+.RDRTY		;STORE IT BACK
  2838	003230'	205 01 0 00 004000 		MOVX	S1,RD%JFN		;GET THE "JFN PRESENT" BIT
  2839	003231'	612 01 0 00 000045'		TDNE	S1,RD+.RDFLG		;SKIP IF NOT SET
  2840	003232'	254 00 0 00 003747'		$RETT				;SET...NO BYTE-POINTER
  2841	003233'	336 01 0 00 000046'		SKIPN	S1,RD+.RDIOJ		;GET THE BYTE POINTER
  2842	003234'	260 17 0 00 003773'		$STOP(IIP,Illegal Input Pointer)
  2843	003236'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;CONVERT THE BYTE POINTER
  2844	003237'	202 01 0 00 000046'		MOVEM	S1,RD+.RDIOJ		;AND RE-STORE IT
  2845	003240'	254 00 0 00 003747'		$RETT				;RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 20
GKBD	MAC	22-May-78 10:54		Utilities for text handling                                                        SEQ 0384

  2846					; MAKBP - Un-default a byte pointer
  2847
  2848	003241'	641 01 0 00 777777 	MAKBP:	TLC	S1,-1			;COMPLEMENT LH (BYTE POINTER PART)
  2849	003242'	647 01 0 00 777777 		TLCN	S1,-1			;CHANGE BACK , TEST FOR -1
  2850	003243'	505 01 0 00 440700 		HRLI	S1,(POINT 7)		;IF DEFAULTED,CONVERT TO ASCII
  2851	003244'	135 02 0 00 005055'		LOAD	S2,S1,BP.POS		;GET POSITION (BITS TO RIGHT)
  2852	003245'	305 02 0 00 000007 		CAIGE	S2,7			;ENOUGH FOR ANOTHER BYTE?
  2853						JRST	[ MOVEI S2,^D36		;NO, MAKE IT ^D36 BITS TO
  2854							  STORE S2,S1,BP.POS	;THE RIGHT IN NEXT WORD
  2855	003246'	254 00 0 00 005056'			  AOJA	S1,.RETT]	;AND RETURN
  2856	003247'	254 00 0 00 003747'		$RETT				;THEN RETURN
  2857
  2858
  2859
  2860
  2861					; IMGSTR - Output a string as it was echoed
  2862
  2863	003250'	260 17 0 00 003733'	IMGSTR:	SAVE	C			;SAVE CHARACTER REGISTER
  2864	003251'	260 17 0 00 003617'		PUSHJ	P,.SAVE1		;SAVE P1
  2865	003252'	260 17 0 00 003241'		PUSHJ	P,MAKBP			;MAKE A BYTE POINTER
  2866	003253'	200 07 0 00 000001 		MOVE	P1,S1			;GET THE POINTER IN P1
  2867	003254'	134 16 0 00 000007 	IMGS.1:	ILDB	C,P1			;GET A CHARACTER
  2868	003255'	322 16 0 00 003750'		JUMPE	C,.POPJ			;RETURN ON NULL
  2869	003256'	260 17 0 00 003273'		PUSHJ	P,ECHO			;RE-ECHO IT
  2870	003257'	254 00 0 00 003254'		JRST	IMGS.1			;LOOP FOR MORE
  2871
  2872
  2873
  2874					; CLINE - Clear current video line
  2875
  2876	003260'	051 01 0 00 005061'	CLINE:	OUTCHR	[.CHCRT]		;OUTPUT A CARRAIGE RETURN
  2877	003261'	550 01 1 00 002643'		HRRZ	S1,@TRMPTR		;GET CONTROL CODE FOR ERASE
  2878	003262'	051 03 1 01 000000 		OUTSTR	@.TCEOL(S1)		;TO END OF LINE
  2879	003263'	254 00 0 00 003747'		$RETT				;AND RETURN
  2880
  2881
  2882					; GETCOC - Fetch COC for a given character
  2883
  2884	003264'	200 01 0 00 000016 	GETCOC:	MOVE	S1,C			;GET CHARACTER
  2885	003265'	231 01 0 00 000022 		IDIVI	S1,^D18			;2 BITS PER CHAR = 18 CHARS PER WORD
  2886	003266'	200 01 0 01 002641'		MOVE	S1,COCTAB(S1)		;GET RIGHT WORD OF COC
  2887	003267'	240 02 0 00 000001 		ASH	S2,1			;TWO BITS NEEDED FOR ONE CHARACTER
  2888	003270'	245 01 0 02 000002 		ROTC	S1,2(S2)		;POSITION COC AS BITS 34&5 OF S2
  2889	003271'	135 01 0 00 005062'		LDB	S1,[POINT 2,S2,35]	;GET INTO S1 FOR RETURN
  2890	003272'	254 00 0 00 003747'		$RETT				;AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 21
GKBD	MAC	22-May-78 10:54		Utilities for text handling                                                        SEQ 0385

  2891					; ECHO - HANDLE CHARACTER ECHOING
  2892
  2893	003273'	201 01 0 00 000001 	ECHO:	MOVX	S1,RD%NEC		;GET NO ECHO BIT
  2894	003274'	612 01 0 00 000045'		TDNE	S1,RD+.RDFLG		;TEST IT
  2895	003275'	254 00 0 00 003747'		$RETT				;RETURN IF SET
  2896	003276'	301 16 0 00 000040 		CAIL	C," "			;IS THIS A PRINTABLE CHARACTER?
  2897	003277'	254 00 0 00 003306'		JRST	ECHO.2			;YES, JUST OUTPUT IT
  2898	003300'	260 17 0 00 003264'		PUSHJ	P,GETCOC		;GET COC CODE FOR CHARACTER
  2899	003301'	254 00 1 01 005063'		JRST	@[EXP .RETT,ECHO.1,ECHO.2,ECHO.3](S1) ;DISPATCH FOR HANDLING
  2900
  2901					; SEND ^ (UP-ARROW) FOLLOWED BY PRINTABLE FORM OF CHARACTER
  2902
  2903	003302'	201 01 0 16 000100 	ECHO.1:	MOVEI	S1,100(C)		;GET PRINTABLE FORM OF CHARACTER
  2904	003303'	051 01 0 00 005067'		OUTCHR	["^"]			;PRINT UP-ARROW
  2905	003304'	051 01 0 00 000001 		OUTCHR	S1			;AND THE CHARACTER
  2906	003305'	254 00 0 00 003747'		$RETT				;AND RETURN
  2907
  2908					; SEND ACTUAL CODE FOR THIS CHARACTER (TRUE ECHO)
  2909
  2910	003306'	051 01 0 00 000016 	ECHO.2:	OUTCHR	C			;PRINT IT
  2911	003307'	254 00 0 00 003747'		$RETT				;AND RETURN
  2912
  2913					; SIMULATE ACTION FOR CHARACTER
  2914
  2915	003310'	302 16 0 00 000033 	ECHO.3:	CAXE	C,.CHESC		;ONLY KNOW HOW TO SIMULATE ESCAPE (33)
  2916	003311'	254 00 0 00 003306'		JRST	ECHO.2			;SO IF NOT THAT, SEND ACTUAL CODE
  2917	003312'	051 01 0 00 005070'		OUTCHR	["$"]			;SIMULATE ESC WITH "$" (DOLLAR SIGN)
  2918	003313'	254 00 0 00 003747'		$RETT				;AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 22
GKBD	MAC	22-May-78 10:54		Utilities for text handling                                                        SEQ 0386

  2919					; CBRK - Check to see if character is a break
  2920
  2921	003314'	336 00 0 00 000053'	CBRK:	SKIPN	RD+.RDBRK		;IS A USER SUPPLIED BREAK TABLE PRESENT?
  2922	003315'	254 00 0 00 003324'		JRST	CBRK.1			;NO, GO TO NEXT SECTION
  2923	003316'	200 01 0 00 000016 		MOVE	S1,C			;GET CODE FOR CHARACTER
  2924	003317'	231 01 0 00 000040 		IDIVI	S1,^D32			;32 CODES PER WORD
  2925	003320'	270 01 0 00 000053'		ADD	S1,RD+.RDBRK		;GET RIGHT WORD OF TABLE
  2926	003321'	200 01 0 01 000000 		MOVE	S1,0(S1)		;IE WORD 0-3
  2927	003322'	242 01 0 02 000000 		LSH	S1,0(S2)		;POSITION RIGHT BIT TO SIGN BIT
  2928	003323'	321 01 0 00 003747'		JUMPL	S1,.RETT		;TAKE THIS BREAK IF WANTED
  2929
  2930	003324'	205 01 0 00 777774 	CBRK.1:	MOVSI	S1,-BTBLL		;GET BREAK TABLE LENGTH
  2931
  2932	003325'	510 02 0 01 003341'	CBRK.2:	HLLZ	S2,BTBL(S1)		;GET ONLY FLAG PORTION
  2933	003326'	616 02 0 00 000045'		TDNN	S2,RD+.RDFLG		;IS THIS BREAK SET FLAG ON?
  2934	003327'	254 00 0 00 003337'		JRST	CBRK.4			;NO, SKIP THIS TEST
  2935	003330'	550 02 0 01 003341'		HRRZ	S2,BTBL(S1)		;NOW GET ADDRESS PORTION
  2936	003331'	505 02 0 00 440700 		HRLI	S2,(POINT 7)		;FORM A BYTE POINTER
  2937	
  2938	003332'	134 03 0 00 000002 	CBRK.3:	ILDB	T1,S2			;GET BYTE
  2939	003333'	322 03 0 00 003337'		JUMPE	T1,CBRK.4		;IF NULL, WE HAVE A NO MATCH
  2940	003334'	316 03 0 00 000016 		CAMN	T1,C			;DOES THIS MATCH A BREAK CHARACTER?
  2941	003335'	254 00 0 00 003747'		$RETT				;YES, TAKE TRUE RETURN
  2942	003336'	254 00 0 00 003332'		JRST	CBRK.3			;LOOP FOR ALL
  2943
  2944	003337'	253 01 0 00 003325'	CBRK.4:	AOBJN	S1,CBRK.2		;STEP THROUGH ENTIRE TABLE
  2945	003340'	254 00 0 00 003746'		$RETF				;FINALLY, ITS NOT A BREAK
  2946
  2947
  2948					; FORMAT OF TABLE IS:  FLGS,,[BYTE (7) CHR,CHR, WHICH ARE BREAK IF FLG IS SET]
  2949
  2950	003341'	400000	005071'		BTBL:	RD%BRK+[BYTE(7) $C(Z),.CHESC]	;^Z,$
  2951	003342'	200000	005072'			RD%TOP+[BYTE(7) $C(G),$C(L),$C(Z),.CHESC,.CHLFD,.CHCRT,0]
  2952	003343'	100000	003345'			RD%PUN+PUNTAB
  2953	003344'	040000	005074'			RD%BEL+[BYTE(7) .CHLFD,0]
  2954	
  2955			000004			BTBLL==.-BTBL
  2956
  2957
  2958	003345'				PUNTAB:					;TABLE OF PUNCTUATION CHARACTERS
  2959	003345'	040 041 042 043 044 0 		BYTE (7) 40,41,42,43,44,45,46,47,50,51,52,53,54,55,56,57,34,35,36,37
  2960	003346'	045 046 047 050 051 0 
  2961	003347'	052 053 054 055 056 0 
  2962	003350'	057 034 035 036 037 0 
  2963	003351'	072 073 074 075 076 0 		BYTE (7) 72,73,74,75,76,77,100,133,134,135,136,137,140,173,174
  2964	003352'	077 100 133 134 135 0 
  2965	003353'	136 137 140 173 174 0 
  2966	003354'	001 002 003 004 005 0 		BYTE(7) $C(A),$C(B),$C(C),$C(D),$C(E),$C(F),$C(H),$C(I),$C(K),$C(N)
  2967	003355'	006 010 011 013 016 0 
  2968	003356'	017 020 021 023 024 0 		BYTE(7) $C(O),$C(P),$C(Q),$C(S),$C(T),175,176,$C(X),$C(Y),0
  2969	003357'	175 176 030 031 000 0 
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 23
GKBD	MAC	22-May-78 10:54		SPCHK  --  Check for special characters                                            SEQ 0387

  2970					SUBTTL SPCHK  --  Check for special characters
  2971
  2972					;SPCHK is called to detect special formatting and edit characters as they
  2973					; come in.
  2974					;
  2975					;CALL IS:	C/ Character
  2976					;
  2977					;TRUE RETURN:	S1/ Address of routine to call
  2978					;FALSE RETURN:	Character was not special
  2979
  2980	003360'	205 01 0 00 777774 	SPCHK:	MOVSI	S1,-SCTBLL		;GET LENGTH OF TABLE
  2981
  2982	003361'	554 02 0 01 003372'	SPCH.1:	HLRZ	S2,SCTBL(S1)		;GET CHARACTER
  2983	003362'	312 02 0 00 000016 		CAME	S2,C			;A MATCH?
  2984	003363'	253 01 0 00 003361'		AOBJN	S1,SPCH.1		;LOOP LOOKING FOR MATCH
  2985	003364'	325 01 0 00 003746'		JUMPGE	S1,.RETF		;IF NO MATCH, RETURN FALSE
  2986
  2987	003365'	550 01 0 01 003372'		HRRZ	S1,SCTBL(S1)		;GET PROCESSOR ADDRESS
  2988	003366'	135 02 0 00 005075'		LOAD	S2,RD+.RDFLG,RD%SUI	;GET ^U SUPRESS BIT
  2989	003367'	306 01 0 00 000025 		CAIN	S1,$C(U)		;IF NOT CONTROL-U,
  2990	003370'	326 02 0 00 003746'		PJUMPN	S2,.RETF		;IF A SUPPRESS ^U, RETURN FALSE
  2991	003371'	254 00 0 00 003747'		$RETT				;RETURN TRUE
  2992
  2993
  2994	003372'	000177	003441'		SCTBL:	.CHDEL,,CCDEL			;DELETE (177)
  2995	003373'	000025	003376'			$C(U),,CCU			;^U
  2996	003374'	000022	003421'			$C(R),,CCR			;^R
  2997	003375'	000027	003470'			$C(W),,CCW			;^W
  2998
  2999			000004			  SCTBLL==.-SCTBL
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 24
GKBD	MAC	22-May-78 10:54		CCU  --  Handle ^U (Rubout entire line)                                            SEQ 0388

  3000					SUBTTL  CCU  --  Handle ^U (Rubout entire line)
  3001
  3002					;HERE TO PROCESS ^U (RESTART INPUT)
  3003
  3004	003376'	402 00 0 00 002644'	CCU:	SETZM	RUBFLG			;CLEAR RUBOUT FLAG
  3005	003377'	200 01 0 00 002652'		MOVE	S1,BGLINE		;GET BEGINNING POINTER
  3006	003400'	316 01 0 00 000047'		CAMN	S1,RD+.RDDBP		;DOES CURRENT MATCH FIRST?
  3007	003401'	254 00 0 00 003404'		JRST	CCU.1			;YES, SO WE ARE AT FRONT
  3008	003402'	260 17 0 00 003155'		PUSHJ	P,USTOC			;UNSTORE 1 CHARACTER
  3009	003403'	254 00 0 00 003376'		JRST	CCU			;TRY AGAIN
  3010
  3011	003404'	550 01 1 00 002643'	CCU.1:	HRRZ	S1,@TRMPTR		;GET CONTROL CODE PART
  3012	003405'	326 01 0 00 003410'		JUMPN	S1,CCU.2		;IF VIDEO, HANDLE IT THAT WAY
  3013
  3014						OUTSTR	[ASCIZ/
  3015	003406'	051 03 0 00 004030'	/]					;GIVE A NEW LINE
  3016	003407'	254 00 0 00 003411'		JRST	CCU.3			;AND CONTINUE
  3017
  3018	003410'	260 17 0 00 003260'	CCU.2:	PUSHJ	P,CLINE			;CLEAR THE LINE
  3019
  3020	003411'	261 17 0 00 000003 	CCU.3:	PUSH	P,T1			;SAVE T1
  3021	003412'	332 03 0 00 000052'		SKIPE	T1,RD+.RDRTY		;IF A PROMPT WAS GIVEN,
  3022	003413'	260 17 0 00 003516'		PUSHJ	P,TYPEBP		;RESEND THE PROMPT
  3023	003414'	262 17 0 00 000003 		POP	P,T1			;RESTORE T1
  3024	003415'	135 01 0 00 005076'		LOAD	S1,RD+.RDFLG,RD%RND	;DOES USER WANT RETURN ON EMPTY?
  3025	003416'	322 01 0 00 003042'		JUMPE	S1,TXTL			;NO, GO FOR MORE INPUT
  3026	003417'	205 01 0 00 000020 		MOVX	S1,RD%BFE		;INDICATE BUFFER EMPTY
  3027	003420'	254 00 0 00 003023'		JRST	FINTXT			;AND FINISH UP
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 25
GKBD	MAC	22-May-78 10:54		CCR  --  Handle ^R (Re-type the line)                                              SEQ 0389

  3028					SUBTTL CCR  --  Handle ^R (Re-type the line)
  3029
  3030
  3031	003421'	402 00 0 00 002644'	CCR:	SETZM	RUBFLG			;CLEAR RUBOUT FLAG
  3032	003422'	550 01 1 00 002643'		HRRZ	S1,@TRMPTR		;GET TERMINAL POINTER
  3033	003423'	322 01 0 00 003426'		JUMPE	S1,CCR.1		;IF NULL, ITS HARD COPY
  3034	003424'	260 17 0 00 003260'		PUSHJ	P,CLINE			;CLEAR THE LINE
  3035	003425'	334 00 0 00 000000 		SKIPA				;AND DON'T GO TO NEXT ONE
  3036	003426'				CCR.1:	OUTSTR	[ASCIZ/
  3037	003426'	051 03 0 00 004030'	/]					;GET TO NEXT LINE
  3038	003427'	261 17 0 00 000003 		PUSH	P,T1			;SAVE T1
  3039	003430'	332 03 0 00 000052'		SKIPE	T1,RD+.RDRTY		;IS RE-PROMPT GIVEN?
  3040	003431'	260 17 0 00 003516'		PUSHJ	P,TYPEBP		;YES, OUTPUT IT
  3041	003432'	200 01 0 00 000047'		MOVE	S1,RD+.RDDBP		;GET CURRENT BYTE POINTER
  3042	003433'	201 02 0 00 000000 		MOVEI	S2,0			;AND A NULL TO DEPOSIT
  3043	003434'	136 02 0 00 000001 		IDPB	S2,S1			;STORE AS ASCIZ TERMINATOR
  3044	003435'	200 01 0 00 002652'		MOVE	S1,BGLINE		;GET POINTER TO LINE
  3045	003436'	260 17 0 00 003250'		PUSHJ	P,IMGSTR		;OUTPUT AN STRING AS ECHOED
  3046	003437'	262 17 0 00 000003 		POP	P,T1			;RESTORE T1
  3047	003440'	254 00 0 00 003042'		JRST	TXTL			;WHEN DONE, GET NEXT CHARACTER
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 26
GKBD	MAC	22-May-78 10:54		CCDEL  --  Handle Rubout (Delete one character)                                    SEQ 0390

  3048					SUBTTL CCDEL  --  Handle Rubout (Delete one character)
  3049
  3050
  3051	003441'	200 01 0 00 000047'	CCDEL:	MOVE	S1,RD+.RDDBP		;GET CURRENT POINTER
  3052	003442'	316 01 0 00 002653'		CAMN	S1,BGBUFR		;ARE WE BACK UP TO BEGINNING?
  3053	003443'	254 00 0 00 003512'		JRST	BEGBUF			;YES, AT BEGINNING OF BUFFER
  3054
  3055	003444'	260 17 0 00 003155'		PUSHJ	P,USTOC			;UN-STORE A CHARACTER
  3056	003445'	200 01 0 00 000047'		MOVE	S1,RD+.RDDBP		;GET CORRECTED POINTER
  3057	003446'	134 16 0 00 000001 		ILDB	C,S1			;THEN GET DELETED CHARACTER
  3058
  3059	003447'	550 01 1 00 002643'		HRRZ	S1,@TRMPTR		;GET POINTER TO CONTROL CODE
  3060	003450'	326 01 0 00 003456'		JUMPN	S1,CCDL.1		;IF THERE IS CODE,DO IT
  3061
  3062	003451'	331 00 0 00 002644'		SKIPL	RUBFLG			;WAS PREVIOUS CHAR A RUBOUT?
  3063	003452'	051 01 0 00 005021'		OUTCHR	[.CHBSL]		;START RUBOUT SET WITH BACKSLASH
  3064	003453'	476 00 0 00 002644'		SETOM	RUBFLG			;AND SET FLAG TO REMEMBER IT
  3065	003454'	260 17 0 00 003273'		PUSHJ	P,ECHO			;ECHO THE CHARACTER
  3066	003455'	254 00 0 00 003042'		JRST	TXTL			;THEN RETURN FOR NEXT CHARACTER
  3067
  3068	003456'	305 16 0 00 000040 	CCDL.1:	CAIGE	C," "			;WAS DELETED CHARACTER PRINTING?
  3069	003457'	254 00 0 00 003462'		JRST	CCDL.2			;NO, NEED FURTHER ANALYSIS
  3070	003460'	051 03 0 00 005077'		OUTSTR	[BYTE (7)10,40,10]	;OUTPUT BACKSPACE,SPACE,BACKSPACE
  3071	003461'	254 00 0 00 003042'		JRST	TXTL			;THEN CONTINUE
  3072
  3073	003462'	260 17 0 00 003264'	CCDL.2:	PUSHJ	P,GETCOC		;GET COC FOR THIS CHARACTER
  3074	003463'	322 01 0 00 003042'		JUMPE	S1,TXTL			;IF CODE 0 , NOTHING THERE AT ALL
  3075	003464'	302 01 0 00 000001 		CAXE	S1,1			;IF ITS A ONE, JUST RUBOUT 2 CHARACTERS
  3076	003465'	254 00 0 00 003421'		JRST	CCR			;ELSE FORCE A RETYPE OF THE LINE
  3077	003466'	051 03 0 00 005100'		OUTSTR	[BYTE (7)10,10,40,40,10,10]	;OUTPUT BACK,BACK,SPACE,SPACE,BACK,BACK
  3078	003467'	254 00 0 00 003042'		JRST	TXTL			;THEN GET NEXT INPUT
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 27
GKBD	MAC	22-May-78 10:54		CCW  --  Handle ^W (Delete back to punctuation character)                          SEQ 0391

  3079					SUBTTL CCW  --  Handle ^W (Delete back to punctuation character)
  3080
  3081
  3082	003470'	402 00 0 00 002644'	CCW:	SETZM	RUBFLG			;CLEAR RUBOUT FLAG
  3083	003471'	200 01 0 00 000047'		MOVE	S1,RD+.RDDBP		;GET BYTE POINTER
  3084	003472'	316 01 0 00 002652'		CAMN	S1,BGLINE		;IF AT THE BEGINNING, GO HANDLE IT
  3085	003473'	254 00 0 00 003512'		JRST	BEGBUF			;BY RINGING OR RETURNING
  3086
  3087	003474'	260 17 0 00 003155'	CCW.1:	PUSHJ	P,USTOC			;UN-STORE ONE CHARACTER
  3088	003475'	200 01 0 00 000047'		MOVE	S1,RD+.RDDBP		;GET CORRECTED POINTER
  3089	003476'	316 01 0 00 002652'		CAMN	S1,BGLINE		;ARE WE AT BEGINNING NOW?
  3090	003477'	254 00 0 00 003511'		JRST	CCW.3			;YES, THATS A PUNCTUATION ALL RIGHT
  3091	003500'	275 01 0 00 000001 		SUBI	S1,1			;GET CHAR PRECEDING THIS ONE
  3092	003501'	201 02 0 00 000005 		MOVEI	S2,5			;BY BACKING OFF AND INCREMENTING
  3093	003502'	134 16 0 00 000001 		ILDB	C,S1			;THE RIGHT NUMBER OF TIMES
  3094	003503'	367 02 0 00 003502'		SOJG	S2,.-1			;
  3095	003504'	200 01 0 00 005102'		MOVE	S1,[POINT 7,PUNTAB]	;POINT TO PUNCTUATION TABLE
  3096
  3097	003505'	134 02 0 00 000001 	CCW.2:	ILDB	S2,S1			;GET A PUNCTUATION CHARACTER
  3098	003506'	322 02 0 00 003474'		JUMPE	S2,CCW.1		;IF AT END, DELETE ANOTHER CHARACTER
  3099	003507'	312 02 0 00 000016 		CAME	S2,C			;IS NEXT CHAR A PUNCTUATION CHAR?
  3100	003510'	254 00 0 00 003505'		JRST	CCW.2			;NO, TRY NEXT IN LIST
  3101
  3102	003511'	254 00 0 00 003421'	CCW.3:	JRST	CCR			;HAVE DELETED FAR ENOUGH, RETYPE LINE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 28
GKBD	MAC	22-May-78 10:54		BEGBUF  --  Handle rubouts to beginning of buffer                                  SEQ 0392

  3103					SUBTTL BEGBUF  --  Handle rubouts to beginning of buffer
  3104
  3105					;Here to handle deletion of characters till beginning of buffer.
  3106					;	Either ring bell and wait, or return to caller.
  3107
  3108	003512'	135 01 0 00 005076'	BEGBUF:	LOAD	S1,RD+.RDFLG,RD%RND	;GET FLAG FOR RETURN HERE
  3109						JUMPN	S1,[ MOVX S1,RD%BFE	;FLAG IS LIT, RETURN BUFFER EMPTRY NOW
  3110	003513'	326 01 0 00 005103'			     JRST FINTXT ]	;TO CALLER
  3111	003514'	051 01 0 00 004046'		OUTCHR	[.CHBEL]		;SEND "BELL" AND
  3112	003515'	254 00 0 00 003042'		JRST	TXTL			;THEN RETURN FOR NEXT CHARACTER
  3113
  3114
  3115
  3116					SUBTTL	TYPEBP  --  Type a string according to a byte-pointer
  3117
  3118					;Call with a byte-pointer in T1
  3119
  3120	003516'	554 01 0 00 000003 	TYPEBP:	HLRZ	S1,T1			;GET LEFT HALF OF POINTER
  3121	003517'	306 01 0 00 777777 		CAIN	S1,-1			;IS IT -1
  3122	003520'	201 01 0 00 440700 		MOVEI	S1,(POINT 7,0)		;YES, MAKE IT STANDARD
  3123	003521'	306 01 0 00 440700 		CAIN	S1,(POINT 7,0)		;WORD ALIGNED?
  3124	003522'	254 00 0 00 003527'		JRST	TYPE.2			;YES, DO AN OUTSTR
  3125
  3126	003523'	134 01 0 00 000003 	TYPE.1:	ILDB	S1,T1			;GET A CHARACTER
  3127	003524'	322 01 0 00 003747'		JUMPE	S1,.RETT		;DONE ON A NULL
  3128	003525'	051 01 0 00 000001 		OUTCHR	S1			;TYPE IT
  3129	003526'	254 00 0 00 003523'		JRST	TYPE.1			;AND LOOP
  3130
  3131	003527'	051 03 0 03 000000 	TYPE.2:	OUTSTR	0(T1)			;TYPE THE STRING
  3132	003530'	254 00 0 00 003747'		$RETT				;AND RETURN
  3133
  3134					>  ;END IFN FTUUOS FROM K%TXTI
  3135
  3136	003531'				KBD%L:			;LABEL THE LITERAL POOL
  3137
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 1
GCOM	MAC	22-May-78 10:54		GLXCOM  --  Common module for Sub-Systems Components                               SEQ 0393

  3138					SUBTTL	GLXCOM  --  Common module for Sub-Systems Components
  3139
  3140					;	Entry points found in GLXCOM
  3141
  3142					ENTRY	.INIT	;Initialize the common module
  3143					ENTRY	.ZPAGA	;Zero a page given its address in S1
  3144					ENTRY	.ZPAGN	;Zero a page given its page number in S1
  3145					ENTRY	.ZCHNK	;Zero an arbitrary area of memory
  3146
  3147					ENTRY	.SAVE1	;Co-routine to save P1
  3148					ENTRY	.SAVE2	;Co-routine to save P1,P2
  3149					ENTRY	.SAVE3	;Co-routine to save P1,P2,P3
  3150					ENTRY	.SAVE4	;Co-routine to save P1,P2,P3,P4
  3151					ENTRY	.SAVET	;Co-routine to save T1,T2,T3,T4
  3152					ENTRY	.SV13	;Co-routine to save 13 (use SAVE Macro)
  3153					ENTRY	.SV14	;Co-routine to save 14 (use SAVE Macro)
  3154					ENTRY	.SV15	;Co-routine to save 15 (use SAVE Macro)
  3155					ENTRY	.SV16	;Co-routine to save 16 (use SAVE Macro)
  3156
  3157					ENTRY	.RETT	;Set TF= TRUE and return
  3158					ENTRY	.RETF	;Set TF= FALSE and return
  3159					ENTRY	.RETE	;Set TF= FALSE, set S1=GLXLIB error code and return
  3160
  3161					ENTRY	.AOS, .SOS , .ZERO ;Support for INCR, DECR AND ZERO
  3162
  3163					ENTRY	.POPJ
  3164
  3165					ENTRY	.STOP	;GLXLIB Central STOP CODE processor
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 2
GCOM	MAC	22-May-78 10:54		Table of contents                                                                  SEQ 0394

  3166					SUBTTL Table of contents
  3167
  3168					;               TABLE OF CONTENTS FOR GLXCOM
  3169					;
  3170					;
  3171					;                        SECTION                                   PAGE
  3172					;    1. Table of contents.........................................   2
  3173					;    2. Revision History..........................................   3
  3174					;    3. Global Storage............................................   4
  3175					;    4. .INIT  - Initialize the common code.......................   5
  3176					;    5. .ZPAGA - .ZPAGN - .ZCHNK  --  Zero out memory.............   6
  3177					;    6. .SAVEx Routines -- Save permanent ACS.....................   7
  3178					;    7. .SAVET -- Routine to save the temporary ACS...............   8
  3179					;    8. .SVxx  --  Routines for saving random ACS.................   9
  3180					;    9. .POPJ, .RETE,.RETT & .RETF -- Common return routines......  10
  3181					;   10. .AOS, .SOS and .ZERO - Support for INCR,DECR, ZERO........  11
  3182					;   11. STOP CODE Processor.......................................  12
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 3
GCOM	MAC	22-May-78 10:54		Revision History                                                                   SEQ 0395

  3183					SUBTTL Revision History
  3184
  3185					COMMENT \
  3186
  3187					Edit	SPR/QAR		Explanation
  3188					----	-------		-----------------------------------------------
  3189					0001			First model
  3190					0002			Create from SBSCOM
  3191					0003			Convert to new OTS format
  3192					0004			TOTALLY HACKED UP FOR DIAGNOSTICS
  3193
  3194
  3195					End of Revision History
  3196					\
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 4
GCOM	MAC	22-May-78 10:54		Global Storage                                                                     SEQ 0396

  3197					SUBTTL Global Storage
  3198
  3199
  3200					; GLOBAL CRASH INFORMATION
  3201
  3202	003531'					$$GDATA	.SPC			;PC OF STOP
  3203	003532'					$$GDATA	.SCODE			;SIXBIT CODE OF STOP CODE
  3204	003533'					$$GDATA	.SERR			;LAST OPERATING SYSTEM ERROR (TOPS-20)
  3205	003534'					$$GDATA	.SACS,20		;ACS AT TIME OF STOP 
  3206	003554'					$$GDATA	.SPTBL			;BASE OF PAGE TABLE
  3207	003555'					$$GDATA	.SPRGM			;NAME OF PROGRAM
  3208	003556'					$$GDATA	.SPVER			;VERSION OF PROGRAM
  3209	003557'					$$GDATA	.SPLIB			;VERSION OF THE OTS
  3210
  3211	003560'					$$GDATA	.LGERR			;LAST GALAXY ERROR PROCESSED VIA .RETE
  3212	003561'					$$GDATA	.LGEPC			;PC (USUALLY) OF LAST $RETE
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 5
GCOM	MAC	22-May-78 10:54		.INIT  - Initialize the common code                                                SEQ 0397

  3213					SUBTTL .INIT  - Initialize the common code
  3214
  3215					;This code is set up for the stop code processor.
  3216					;	Information is copied to the crash block from parameters
  3217					;	not known at load time.
  3218
  3219					;CALL IS:	S1/ Length of the IB (Initialization Block)
  3220					;		S2/ Address of the IB
  3221
  3222	003562'	200 01 0 02 000000 	.INIT:	MOVE	S1,IB.PRG(S2)		;GET PROGRAM NAME
  3223	003563'	202 01 0 00 003555'		MOVEM	S1,.SPRGM		;STORE FOR LATER
  3224	003564'	200 01 0 02 000005 		MOVE	S1,IB.VER(S2)		;GET PROGRAM VERSION
  3225	003565'	202 01 0 00 003556'		MOVEM	S1,.SPVER		;SAVE IT
  3226					;	MOVEI	S1,PAGTBL##		;GET ADDRESS OF PAGE TABLE
  3227					;	MOVEM	S1,.SPTBL		;STORE FOR LATER
  3228	003566'	200 01 0 00 005105'		MOVX	S1,GLXVRS		;GET LIBRARY VERSION NUMBER
  3229	003567'	202 01 0 00 003557'		MOVEM	S1,.SPLIB		;SAVE IT AWAY
  3230	003570'	201 01 0 00 000005 		MOVX	S1,%%.GLX		;GET GLXLIB MAJOR CHANGE NUMBER
  3231	003571'	312 01 0 02 000004 		CAME	S1,IB.PID(S2)		;DO WE MATCH CALLING PROGRAM?
  3232	003572'	260 17 0 00 003773'		$STOP(WVG,Wrong version of GLXLIB) ;APPARENTLY NOT
  3233	003574'	254 00 0 00 003747'		$RETT				;RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 6
GCOM	MAC	22-May-78 10:54		.ZPAGA - .ZPAGN - .ZCHNK  --  Zero out memory                                      SEQ 0398

  3234					SUBTTL	.ZPAGA - .ZPAGN - .ZCHNK  --  Zero out memory
  3235
  3236					;ROUTINES TO COMPLETELY ZERO A PAGE OF MEMORY.  .ZPAGA IS
  3237					;	CALLED WITH THE ADDRESS OF THE FIRST WORD OF THE PAGE
  3238					;	IN S1 AND .ZPAGN IS CALLED WITH THE PAGE NUMBER IN S1.
  3239					;	.ZCHNK IS USED TO ZERO A CHUNK OF MEMORY
  3240					;	  SIZE IN S1 AND LOCATION S2
  3241					;	ALL ACS ARE PRESERVED
  3242
  3243	003575'	261 17 0 00 000001 	.ZPAGN:	PUSH	P,S1			;SAVE PAGE NUMBER
  3244	003576'	242 01 0 00 000011 		PG2ADR	S1			;CONVERT PAGE NUMBER TO ADR
  3245	003577'	334 00 0 00 000000 		SKIPA				;DON'T SAVE S1 TWICE
  3246
  3247	003600'	261 17 0 00 000001 	.ZPAGA:	PUSH	P,S1			;SAVE S1
  3248	003601'	261 17 0 00 000002 		PUSH	P,S2			;AND S2
  3249	003602'	200 02 0 00 000001 		MOVE	S2,S1			;GET ADDRESS INTO S2
  3250	003603'	201 01 0 00 001000 		MOVX	S1,PAGSIZ		;AND ONE PAGE SIZE INTO S1
  3251	003604'	254 00 0 00 003607'		PJRST	ZCHN.1			;JOIN COMMON CODE
  3252
  3253	003605'	261 17 0 00 000001 	.ZCHNK:	PUSH	P,S1			;SAVE CALLER'S SIZE
  3254	003606'	261 17 0 00 000002 		PUSH	P,S2			;AND ADDRESS
  3255	003607'	271 01 0 02 000000 	ZCHN.1:	ADDI	S1,0(S2)		;COMPUTE END ADDRESS
  3256	003610'	402 00 0 02 000000 		ZERO	0(S2)			;CLEAR FIRST WORD
  3257	003611'	507 00 0 00 000002 		HRLS	S2			;GET ADDR,,ADDR OF CHUNK
  3258	003612'	350 00 0 00 000002 		AOS	S2			;AND NOW ADDR,,ADDR+1
  3259	003613'	251 02 0 01 777777 		BLT	S2,-1(S1)		;NOW CLEAR THE CHUNK
  3260	003614'	262 17 0 00 000002 		POP	P,S2			;RESTORE CALLER'S CHUNK ADDR
  3261	003615'	262 17 0 00 000001 		POP	P,S1			;AND HIS SIZE
  3262	003616'	254 00 0 00 003747'		$RETT				;AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 7
GCOM	MAC	22-May-78 10:54		.SAVEx Routines -- Save permanent ACS                                              SEQ 0399

  3263					SUBTTL .SAVEx Routines -- Save permanent ACS
  3264
  3265					;THESE ROUTINES ACT AS CO-ROUTINES WITH THE ROUTINES WHICH CALL THEM,
  3266					;	THEREFORE NO CORRESPONDING "RESTORE" ROUTINES ARE NEEDED. WHEN
  3267					;	THE CALLING ROUTINE RETURNS TO ITS CALLER, IT ACTUALLY RETURNS
  3268					;	VIA THE RESTORE ROUTINES AUTOMATICALLY.
  3269
  3270	003617'	250 07 0 17 000000 	.SAVE1:	EXCH	P1,(P)		;SAVE P1 GET CALLERS ADDRESS
  3271	003620'	261 17 0 00 003623'		PUSH	P,.+3		;SAVE RETURN ADDRESS FOR CALLER
  3272	003621'	505 07 0 17 777777 		HRLI	P1,-1(P)	;MAKE IT LOOK LIKE RESULT OF JSA
  3273	003622'	267 07 0 07 000000 		JRA	P1,(P1)		;CALL THE CALLER
  3274	003623'	304 00 0 00 003623'		  CAIA	.		;NON-SKIP RETURN
  3275	003624'	350 00 0 17 777777 		AOS	-1(P)		;SKIP RETURN
  3276	003625'	254 00 0 00 003663'		JRST	RES1		;RESTORE P1
  3277
  3278	003626'	250 07 0 17 000000 	.SAVE2:	EXCH	P1,(P)		;SAVE P1 GET CALLERS ADDRESS
  3279	003627'	261 17 0 00 000010 		PUSH	P,P2		;SAVE P2
  3280	003630'	261 17 0 00 003633'		PUSH	P,.+3		;SAVE RETURN ADDRESS
  3281	003631'	505 07 0 17 777776 		HRLI	P1,-2(P)	;SETUP FOR THE JRA
  3282	003632'	267 07 0 07 000000 		JRA	P1,(P1)		;CALL THE CALLER
  3283	003633'	304 00 0 00 003633'		  CAIA	.		;NON-SKIP RETURN
  3284	003634'	350 00 0 17 777776 		AOS	-2(P)		;SKIP RETURN
  3285	003635'	254 00 0 00 003662'		JRST	RES2		;RESTORE P2,P1
  3286
  3287	003636'	250 07 0 17 000000 	.SAVE3:	EXCH	P1,(P)		;SAVE P1 GET RETURN ADDRESS
  3288	003637'	261 17 0 00 000010 		PUSH	P,P2		;SAVE P2
  3289	003640'	261 17 0 00 000011 		PUSH	P,P3		;SAVE P3
  3290	003641'	261 17 0 00 003644'		PUSH	P,.+3		;SAVE RETURN ADDRESS
  3291	003642'	505 07 0 17 777775 		HRLI	P1,-3(P)	;SETUP FOR JRA
  3292	003643'	267 07 0 07 000000 		JRA	P1,(P1)		;AND CALL THE CALLER
  3293	003644'	304 00 0 00 003644'		  CAIA	.		;NON-SKIP
  3294	003645'	350 00 0 17 777775 		AOS	-3(P)		;SKIP RETURN
  3295	003646'	254 00 0 00 003661'		JRST	RES3		;AND RESTORE P3,P2,P1
  3296
  3297	003647'	250 07 0 17 000000 	.SAVE4:	EXCH	P1,(P)		;SAVE P1 GET RETURN ADDRESS
  3298	003650'	261 17 0 00 000010 		PUSH	P,P2		;SAVE P2
  3299	003651'	261 17 0 00 000011 		PUSH	P,P3		;SAVE P3
  3300	003652'	261 17 0 00 000012 		PUSH	P,P4		;SAVE P4
  3301	003653'	261 17 0 00 003656'		PUSH	P,.+3		;SAVE RETURN ADDRESS
  3302	003654'	505 07 0 17 777774 		HRLI	P1,-4(P)	;SETUP FOR RETURN
  3303	003655'	267 07 0 07 000000 		JRA	P1,(P1)		;AND RETURN
  3304	003656'	304 00 0 00 003656'		  CAIA	.		;NON-SKIP RETURN
  3305	003657'	350 00 0 17 777774 		AOS	-4(P)		;SKIP RETURN
  3306	003660'	262 17 0 00 000012 	RES4:	POP	P,P4		;RESTORE P4
  3307	003661'	262 17 0 00 000011 	RES3:	POP	P,P3		;RESTORE P3
  3308	003662'	262 17 0 00 000010 	RES2:	POP	P,P2		;RESTORE P2
  3309	003663'	262 17 0 00 000007 	RES1:	POP	P,P1		;RESTORE P1
  3310	003664'	263 17 0 00 000000 		POPJ	P,		;AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 8
GCOM	MAC	22-May-78 10:54		.SAVET -- Routine to save the temporary ACS                                        SEQ 0400

  3311					SUBTTL .SAVET -- Routine to save the temporary ACS
  3312
  3313	003665'	250 03 0 17 000000 	.SAVET:	EXCH	T1,(P)		;SAVE T1 AND GET RETURN ADDRESS
  3314	003666'	261 17 0 00 000004 		PUSH	P,T2		;SAVE T2
  3315	003667'	261 17 0 00 000005 		PUSH	P,T3		;SAVE T3
  3316	003670'	261 17 0 00 000006 		PUSH	P,T4		;SAVE T4
  3317	003671'	261 17 0 00 003674'		PUSH	P,.+3		;SAVE RETURN ADDRESS
  3318	003672'	505 03 0 17 777774 		HRLI	T1,-4(P)	;SETUP FOR JRA
  3319	003673'	267 03 0 03 000000 		JRA	T1,(T1)		;AND CALL THE CALLER
  3320	003674'	304 00 0 00 003674'		  CAIA	.		;RETURN HERE ON NON-SKIP
  3321	003675'	350 00 0 17 777774 		AOS	-4(P)		;RETURN HERE ON SKIP
  3322	003676'	262 17 0 00 000006 		POP	P,T4		;RESTORE T4
  3323	003677'	262 17 0 00 000005 		POP	P,T3		;RESTORE T3
  3324	003700'	262 17 0 00 000004 		POP	P,T2		;RESTORE T2
  3325	003701'	262 17 0 00 000003 		POP	P,T1		;RESTORE T1
  3326	003702'	263 17 0 00 000000 		POPJ	P,		;RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 9
GCOM	MAC	22-May-78 10:54		.SVxx  --  Routines for saving random ACS                                          SEQ 0401

  3327					SUBTTL .SVxx  --  Routines for saving random ACS
  3328
  3329
  3330					; THESE ROUTINES ARE CALLED BY THE SAVE MACRO FOR ABSOLUTE AC'S
  3331					;	13,14,15, & 16. THE MACRO FIGURES OUT WHICH ONE
  3332
  3333	003703'	250 13 0 17 000000 	.SV13:	EXCH	13,(P)		;SAVE 13 GET CALLERS ADDRESS
  3334	003704'	261 17 0 00 003707'		PUSH	P,.+3		;SAVE RETURN ADDRESS FOR CALLER
  3335	003705'	505 13 0 17 777777 		HRLI	13,-1(P)	;MAKE IT LOOK LIKE RESULT OF JSA
  3336	003706'	267 13 0 13 000000 		JRA	13,(13)		;CALL THE CALLER
  3337	003707'	304 00 0 00 003707'		  CAIA	.		;NON-SKIP RETURN
  3338	003710'	350 00 0 17 777777 		AOS	-1(P)		;SKIP RETURN
  3339	003711'	262 17 0 00 000013 		POP	P,13		;RESTORE 13
  3340	003712'	263 17 0 00 000000 		POPJ	P,		;AND RETURN
  3341
  3342	003713'	250 14 0 17 000000 	.SV14:	EXCH	14,(P)		;SAVE 14 GET CALLERS ADDRESS
  3343	003714'	261 17 0 00 003717'		PUSH	P,.+3		;SAVE RETURN ADDRESS FOR CALLER
  3344	003715'	505 14 0 17 777777 		HRLI	14,-1(P)	;MAKE IT LOOK LIKE RESULT OF JSA
  3345	003716'	267 14 0 14 000000 		JRA	14,(14)		;CALL THE CALLER
  3346	003717'	304 00 0 00 003717'		  CAIA	.		;NON-SKIP RETURN
  3347	003720'	350 00 0 17 777777 		AOS	-1(P)		;SKIP RETURN
  3348	003721'	262 17 0 00 000014 		POP	P,14		;RESTORE 14
  3349	003722'	263 17 0 00 000000 		POPJ	P,		;AND RETURN
  3350
  3351	003723'	250 15 0 17 000000 	.SV15:	EXCH	15,(P)		;SAVE 15 GET CALLERS ADDRESS
  3352	003724'	261 17 0 00 003727'		PUSH	P,.+3		;SAVE RETURN ADDRESS FOR CALLER
  3353	003725'	505 15 0 17 777777 		HRLI	15,-1(P)	;MAKE IT LOOK LIKE RESULT OF JSA
  3354	003726'	267 15 0 15 000000 		JRA	15,(15)		;CALL THE CALLER
  3355	003727'	304 00 0 00 003727'		  CAIA	.		;NON-SKIP RETURN
  3356	003730'	350 00 0 17 777777 		AOS	-1(P)		;SKIP RETURN
  3357	003731'	262 17 0 00 000015 		POP	P,15		;RESTORE 15
  3358	003732'	263 17 0 00 000000 		POPJ	P,		;AND RETURN
  3359
  3360	003733'	250 16 0 17 000000 	.SV16:	EXCH	16,(P)		;SAVE 16 GET CALLERS ADDRESS
  3361	003734'	261 17 0 00 003737'		PUSH	P,.+3		;SAVE RETURN ADDRESS FOR CALLER
  3362	003735'	505 16 0 17 777777 		HRLI	16,-1(P)	;MAKE IT LOOK LIKE RESULT OF JSA
  3363	003736'	267 16 0 16 000000 		JRA	16,(16)		;CALL THE CALLER
  3364	003737'	304 00 0 00 003737'		  CAIA	.		;NON-SKIP RETURN
  3365	003740'	350 00 0 17 777777 		AOS	-1(P)		;SKIP RETURN
  3366	003741'	262 17 0 00 000016 		POP	P,16		;RESTORE 16
  3367	003742'	263 17 0 00 000000 		POPJ	P,		;AND RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 10
GCOM	MAC	22-May-78 10:54		.POPJ, .RETE,.RETT & .RETF -- Common return routines                               SEQ 0402

  3368					SUBTTL .POPJ, .RETE,.RETT & .RETF -- Common return routines
  3369
  3370
  3371					; $RETE calls .RETE to set up the last GALAXY error and location
  3372					; then set TF = FALSE and return.
  3373
  3374	003743'	552 00 0 00 003561'	.RETE:	HRRZM	TF,.LGEPC	;CALLED VIA JSP TF, SO SET UP PC OF LAST ERROR
  3375	003744'	550 01 1 00 003561'		HRRZ	S1,@.LGEPC	;NOW FETCH ERROR CODE
  3376	003745'	202 01 0 00 003560'		MOVEM	S1,.LGERR	;AND REMEMBER IT
  3377									;FALL INTO .RETF
  3378
  3379					; .RETT AND .RETF are called via the $RETT and $RETF macros and can also
  3380					; be called directly.  They both set the value of TF, one to TRUE and the other
  3381					; to FALSE.  After doing this, they return via a POPJ P,
  3382
  3383					;The .POPJ  routine can be jumped
  3384					; to get a return, without changing the value in the TF register
  3385
  3386	003746'	634 00 0 00 000000 	.RETF:	TDZA	TF,TF		;CLEAR VALUE MEANS FALSE
  3387	003747'	474 00 0 00 000000 	.RETT:	SETO	TF,		;ALL ONES MEANS TRUE
  3388	003750'	263 17 0 00 000000 	.POPJ:	POPJ	P,		;RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 11
GCOM	MAC	22-May-78 10:54		.AOS, .SOS and .ZERO - Support for INCR,DECR, ZERO                                 SEQ 0403

  3389					SUBTTL .AOS, .SOS and .ZERO - Support for INCR,DECR, ZERO
  3390
  3391					; These routines are never used directly, but are available for the
  3392					; INCR, DECR and ZERO macros to use when the field is neither a fullword
  3393					; or either half word.
  3394
  3395	003751'	261 17 0 00 000000 	.AOS:	PUSH	P,TF			;SAVE REGISTER WE WILL USE
  3396	003752'	550 00 0 17 777777 		HRRZ	TF,-1(P)		;GET LOCATION OF JUMP [POINTR()]
  3397	003753'	261 17 1 00 000000 		PUSH	P,@TF			;STORE IN ON THE STACK
  3398	003754'	135 00 1 17 000000 		LDB	TF,@0(P)		;GET THE BYTE TO BE INCREASED
  3399	003755'	344 00 0 00 003767'		AOJA	TF,ZERO.1		;INCREASE IT AND RETURN
  3400
  3401	003756'	261 17 0 00 000000 	.SOS:	PUSH	P,TF			;SAVE TF
  3402	003757'	550 00 0 17 777777 		HRRZ	TF,-1(P)		;PICK UP LOCATION OF CALL
  3403	003760'	261 17 1 00 000000 		PUSH	P,@TF			;SAVE ADDR OF POINTER ON STACK
  3404	003761'	135 00 1 17 000000 		LDB	TF,@0(P)		;GET THE BYTE
  3405	003762'	364 00 0 00 003767'		SOJA	TF,ZERO.1		;DECREASE BY ONE AND RETURN
  3406
  3407
  3408	003763'	261 17 0 00 000000 	.ZERO:	PUSH	P,TF			;SAVE TF
  3409	003764'	550 00 0 17 777777 		HRRZ	TF,-1(P)		;GET ADDR OF CALL
  3410	003765'	261 17 1 00 000000 		PUSH	P,@TF			;SAVE ADDR OF POINTER ON THE STACK
  3411	003766'	400 00 0 00 000000 		SETZ	TF,			;GET A ZERO BYTE
  3412	003767'	137 00 1 17 000000 	ZERO.1:	DPB	TF,@0(P)		;STORE IT BACK
  3413	003770'	262 17 0 00 000000 		POP	P,TF			;CLEAR POINTER OF STACK
  3414	003771'	262 17 0 00 000000 		POP	P,TF			;RESTORE TF
  3415	003772'	263 17 0 00 000000 		POPJ	P,			;THEN RETURN
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 12
GCOM	MAC	22-May-78 10:54		STOP CODE Processor                                                                SEQ 0404

  3416					SUBTTL STOP CODE Processor
  3417
  3418					; This routine handles the call caused by the 	$STOP Macro
  3419
  3420	003773'	202 00 0 00 003534'	.STOP:	MOVEM	0,.SACS			;STORE FIRST AC
  3421	003774'	200 00 0 00 005115'		MOVE	0,[XWD 1,.SACS+1]	;SET FOR THE REST
  3422	003775'	251 00 0 00 003553'		BLT	0,.SACS+17		;STORE THEM ALL
  3423	003776'	200 03 0 17 000000 		MOVE	T1,0(P)			;GET LOCATION CALLED FROM
  3424	003777'	200 04 1 03 000000 		MOVE	T2,@0(T1)		;THEN GET POINTER WORD TO CODE
  3425	004000'	512 04 0 00 003532'		HLLZM	T2,.SCODE		;STORE SIXBIT CODE
  3426	004001'	201 05 1 03 000000 		MOVEI	T3,@0(T1)		;GET LOCATION THAT XWD FETCHED FROM
  3427	004002'	271 05 0 00 000001 		ADDI	T3,1			;THEN INCREMENT TO MODULE NAME
  3428	004003'	201 03 0 03 777777 		MOVEI	T1,-1(T1)		;GET ACTUAL LOCATION OF 'PUSHJ P,.STOP'
  3429	004004'	202 03 0 00 003531'		MOVEM	T1,.SPC			;REMEMBER IT
  3430
  3431		037740	000001			OPDEF	PNTALF	[37B8!17B12!1]
  3432		037040	000002			OPDEF	PNTSXF	[37B8!1B12!2]
  3433		037300	000001			OPDEF	PNT6F	[37B8!6B12!1]
  3434		037040	004023'			OPDEF	PCRLF	[37B8!1B12!CRLF]
  3435		037040	000000			OPDEF	PNTCIF	[37B8!1B12!0]
  3436
  3437						MOVEI	[ASCIZ/
  3438	004005'	201 00 0 00 005116'	?STOP CODE - /]
  3439	004006'	037 17 0 00 000001 		PNTALF
  3440	004007'	554 00 0 00 000004 		HLRZ	0,T2
  3441	004010'	037 01 0 00 000002 		PNTSXF
  3442						MOVEI	[ASCIZ/
  3443	004011'	201 00 0 00 005122'	  REASON: /]
  3444	004012'	037 17 0 00 000001 		PNTALF
  3445	004013'	550 00 0 00 000004 		HRRZ	0,T2
  3446	004014'	037 17 0 00 000001 		PNTALF
  3447						MOVEI	[ASCIZ/
  3448	004015'	201 00 0 00 005125'	  ERROR PC = /]
  3449	004016'	037 17 0 00 000001 		PNTALF
  3450	004017'	200 00 0 00 003531'		MOVE	.SPC
  3451	004020'	037 06 0 00 000001 		PNT6F
  3452	004021'	037 01 0 00 004023'		PCRLF
  3453	004022'	047 00 0 00 000012 		EXIT
  3454	004023'				CRLF:	ASCIZ/
  3455	004023'	015 012 000 000 000 	/
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 13
GCOM	MAC	22-May-78 10:54		STOP CODE Processor                                                                SEQ 0405

  3456	
  3457						REPEAT	0,<
  3458						SETOM	TXTLVL##		;MAKE SURE TEXT WON'T STOP US
  3459						$TEXT(T%TTY,<?Stop code - ^W/T2,LHMASK/ - in module ^W/0(T3)/ on ^H9/[-1]/ at ^C/[-
  3460					1]/>)
  3461						$TEXT(T%TTY,<  Reason: ^T/0(T2)/>)
  3462						$TEXT(T%TTY,<  Program is ^W/.SPRGM/ Version ^V/.SPVER/ using GLXLIB Version ^V/.SP
  3463					LIB/>)
  3464						$TEXT(T%TTY,<  Last  GLXLIB error: ^O/.LGERR,RHMASK/ (^E/.LGERR/)>)
  3465					IFN FTJSYS,<
  3466						MOVX	S1,.FHSLF		;FOR SELF,
  3467						GETER				;LOOK UP MOST RECENT ERROR
  3468						 ERJMP	.+1			;IGNORE ANY ERRORS
  3469						MOVEM	S2,.SERR		;SAVE THE ERROR
  3470						$TEXT(T%TTY,<  Last TOPS-20 error: ^O/.SERR,RHMASK/ (^A>)
  3471						MOVX	S1,.PRIOU		;TO PRIMARY OUTPUT
  3472						HRLI	S2,.FHSLF		;SET FOR SELF
  3473						SETZ	T1,			;INFINITE BYTES
  3474						ERSTR				;PRINT ERROR STRING
  3475						  JFCL				;
  3476						  JFCL				;TWO POSSIBLE ERROR RETURNS
  3477						$TEXT(T%TTY,<) >)
  3478					>
  3479						HRRZ	P1,DDTADR		;GET DDT'S ADDRESS
  3480						JUMPE	P1,STOP.1		;IF NOT THERE, TYPE OUT ACS AND EXIT
  3481						PUSH	P,P1			;SAVE IT ON THE STACK
  3482						$TEXT(T%TTY,<^M^J  Entering DDT	(Crash block starts at loc ^O/[.SPC]/)>)
  3483						MOVSI	16,.SACS		;RESTORE THE ACS
  3484						BLT	16,16			;TO THE USER
  3485						POPJ	P,			;GO ENTER DDT
  3486					
  3487					STOP.1:	$TEXT(T%TTY,<^M^JContents of the ACs  (Crash block starts at location ^O/[.SPC]/)^M
  3488					^J>)
  3489						MOVEI	S1,0			;START WITH AC 0
  3490					STOP.2:$TEXT(T%TTY,< ^O2/S1//^O15/.SACS(S1)/^O15/.SACS+1(S1)/^O15/.SACS+2(S1)/^O15/.SACS+3(
  3491					S1)/>)
  3492						ADDI	S1,4			;STEP TO NEXT FOUR
  3493						CAIE	S1,20			;LOOP FOR ALL ACS
  3494						JRST	STOP.2			;
  3495						$TEXT(T%TTY,<^M^JLast 9 Stack Locations:^M^J>)
  3496						$TEXT(T%TTY,< -1(P)/^O15/-1(P)/   -2(P)/^O15/-2(P)/   -3(P)/^O15/-3(P)/>)
  3497						$TEXT(T%TTY,< -4(P)/^O15/-4(P)/   -5(P)/^O15/-5(P)/   -6(P)/^O15/-6(P)/>)
  3498						$TEXT(T%TTY,< -7(P)/^O15/-7(P)/   -8(P)/^O15/-8(P)/   -9(P)/^O15/-9(P)/>)
  3499						PJRST	I%EXIT			;EXIT FROM THE PROGRAM
  3500					>
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page 14
GCOM	MAC	22-May-78 10:54		STOP CODE Processor                                                                SEQ 0406

  3501	004024'				COM%L:
  3502						END

NO ERRORS DETECTED

PROGRAM BREAK IS 005131
CPU TIME USED 00:31.191

52P CORE USED
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page S-1
GCOM	MAC	22-May-78 10:54		SYMBOL TABLE                                                                       SEQ 0407

ARGLOC		002645'		CM%NOP	200000	000000	sin	CMINI1		001265'		CMSWF		200000	spd	
ATBPTR		000056'		CM%NOR		000002	sin	CMINI2		001266'		CMSWTM		000072	spd	
ATBSIZ		000057'		CM%PFE	010000	000000	sin	CMINI3		001272'		CMTAB		004405'		
BCKFLG		002646'		CM%RAI	004000	000000	sin	CMINI4		001313'		CMTAB1		001452'		
BEGBUF		003512'		CM%RPT	040000	000000	sin	CMINI5		001322'		CMTAB2		001460'		
BGBUFR		002653'		CM%SDH	000001	000000	sin	CMKEY0		001346'		CMTF1		002000	spd	
BGLINE		002652'		CM%SWT	020000	000000	sin	CMNH		001772'		CMTOK1		002341'		
BIGSIZ		000111'		CM%VRQ	400000	000000	sin	CMNH10		001771'		CMTOK2		002343'		
BITS		000000'		CM%XIF	002000	000000	sin	CMNH8		001767'		CMUQS1		002041'		
BP.POS	770000	000000	spd	CMAMB		001165'		CMNOD	400000	000000	spd	CMUSOU		001175'		
BTBL		003341'		CMAPC		001144'		CMNOI1		001614'		CMUSRF		100000	spd	
BTBLL		000004	spd	CMATFI		002062'		CMNOI2		001617'		COBP.1		003224'		
C		000016	spd	CMBOL		004000	spd	CMNOI3		001624'		COCTAB		002641'		
C7TO6		002315'		CMCBLF		000076'		CMNOI4		001630'		COM%L		004024'		
CBRK		003314'		CMCCM		000062'		CMNUM1		001702'		COMN1		000175'		
CBRK.1		003324'		CMCFF		020000	spd	CMNUMH		001741'		CONVBP		003206'		
CBRK.2		003325'		CMCFM0		001646'		CMNUMR		001675'		CONVRT		003171'		
CBRK.3		003332'		CMCHR		002437'		CMNXT1		001510'		CR.FLG		000000	spd	
CBRK.4		003337'		CMCIN		000765'		CMNXTE		001472'		CR.FNB		000002	spd	
CCDEL		003441'		CMCIN1		000777'		CMQ1		001431'		CR.RES		000001	spd	
CCDL.1		003456'		CMCIN2		001032'		CMQ2		001434'		CR.SIZ		000003	spd	
CCDL.2		003462'		CMCIN3		001056'		CMQ3		001465'		CRBLK		000103'		
CCR		003421'		CMCIN4		001067'		CMQTCH		000042	spd	CRLF		004023'		
CCR.1		003426'		CMCMT1		000310'		CMQUE2		010000	spd	CURESC		002650'		
CCU		003376'		CMCMT2		000307'		CMQUES		400000	spd	CURPOS		000114'		
CCU.1		003404'		CMCOM		000311'		CMRAT1		000620'		DBP		001136'		
CCU.2		003410'		CMCOM1		000041	spd	CMRAT2		000621'		DEVSP1		002237'		
CCU.3		003411'		CMCOM2		000073	spd	CMRAT3		000641'		DEVSUP		004024'		
CCW		003470'		CMCONC		000055	spd	CMRATM		000571'		DOHLP		001152'		
CCW.1		003474'		CMCOUT		001173'		CMRATR		000643'		ECHO		003273'		
CCW.2		003505'		CMCSAC		000066'		CMRATT		000644'		ECHO.1		003302'		
CCW.3		003511'		CMCSC		000075'		CMRBRK		000064'		ECHO.2		003306'		
CFNTAB		000324'		CMCSF		000065'		CMRDOC		000010	spd	ECHO.3		003310'		
CFRAT1		000650'		CMDCH		001110'		CMRFIL		000577'		EOLBRK		000611'		
CFRAT2		000651'		CMDEFC		000043	spd	CMRFLD		000615'		EREOF$		000001	spd	
CFRAT3		000671'		CMDEFF		040000	spd	CMRQS1		000725'		EXIT	047000	000012		
CFRATR		000673'		CMDEV1		002011'		CMRQS2		000740'		EXTSP1		002223'		
CFRATT		000674'		CMDEVH		002026'		CMRQST		000716'		EXTSUP		002215'		
CFRFLD		000645'		CMDIB		001130'		CMRSET		000357'		F		000014	spd	
CHKAB1		001243'		CMDIBQ		001131'		CMRSP1		000701'		F%IBYT		000153'		
CHKABP		001240'		CMDIP		001116'		CMRSPC		000676'		F%IOPN		000155'		
CHKBP		001252'		CMDIRH		002376'		CMRSTR		000675'		F%REL		000157'		
CHKLCH		000754'		CMFH1		002336'		CMRTY1		000470'		FB.BSZ		000077	spd	
CHKTBS		002455'		CMFHLP		002322'		CMRTY2		000472'		FB.LSN		000200	spd	
CLINE		003260'		CMFLD1		002052'		CMRTY3		000473'		FD.LEN		777777	spd	
CM%DPP	000002	000000	sin	CMFREC		000006	spd	CMRTY4		000477'		FDXSIZ		000012	spd	
CM%EOC	100000	000000	sin	CMGT.1		001573'		CMRTY5		000500'		FILBRK		000601'		
CM%ESC	400000	000000	sin	CMGTLN		001572'		CMRTY6		000505'		FILI.1		002121'		
CM%FFL	000777	000000	sin	CMHLPC		000077	spd	CMRTY7		000506'		FILI.2		002137'		
CM%FNC	777000	000000	sin	CMIND		000512'		CMRTYP		000450'		FILI.3		002154'		
CM%GJB		777777	sin	CMIND1		000541'		CMSKSP		001072'		FILI.4		002170'		
CM%HPP	000004	000000	sin	CMIND2		000555'		CMSO.1		001203'		FILIN		002101'		
CM%INV		000001	sin	CMINDC		000100	spd	CMSO.2		001207'		FINT.1		003033'		
CM%LST		777777	sin	CMINDE		000562'		CMSOUT		001175'		FINTXT		003023'		
CM%NJF	000020	000000	sin	CMINDF		001000	spd	CMSWCH		000057	spd	FLDBRK		000573'		
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page S-2
GCOM	MAC	22-May-78 10:54		SYMBOL TABLE                                                                       SEQ 0408

FNARG		000061'		NPXAMB		000011	spd	RD%NEC		000001	spd	STRG		000100'		
FOB.CW		000001	spd	NPXCMA		000013	spd	RD%PUN	100000	000000	spd	STYP.2		002720'		
FOB.FD		000000	spd	NPXICN		000006	spd	RD%RAI	000200	000000	spd	SUBBP		001077'		
FTJSYS		000000	sin	NPXIDT		000007	spd	RD%RND	010000	000000	spd	T1		000003	spd	
FTOK.1		002301'		NPXINW		000004	spd	RD%SUI	000100	000000	spd	T2		000004	spd	
FTOKEN		002277'		NPXNC		000005	spd	RD%TOP	200000	000000	spd	T3		000005	spd	
FTUUOS	777777	777777	sin	NPXNMT		000012	spd	REMSTR		000101'		T4		000006	spd	
GETCOC		003264'		NPXNNC		000014	spd	RES1		003663'		TABDON		000106'		
GETIT	262740	000000		NPXNNI		000015	spd	RES2		003662'		TABLK0		002541'		
GJ%OLD	100000	000000		NPXNOM		000002	spd	RES3		003661'		TABLK1		002561'		
GLXVRS	000100	000027	spd	NPXNQS		000010	spd	RES4		003660'		TABLK2		002600'		
GO	260740	000000		NPXNSN		000016	spd	RTN	263740	000000		TABLK3		002564'		
HB.RTC	000010	000000	spd	NPXNSW		000001	spd	RUBFLG		002644'		TABLKA		002557'		
HIBER	047000	000072		NPXNUL		000003	spd	S%CMND		000146'	ent	TABLKF		002546'		
I%IOFF		002655'		NUMBRK		001704'		S%ERR		000140'	ent	TABLKM		002555'		
I%ION		002654'		NUMI.1		001732'		S%INIT		000133'	ent	TABLKN		002623'		
IB.PID		000004	spd	NUMIN		001714'		S%SCMP		002463'	ent	TABLKX		002556'		
IB.PRG		000000	spd	NUXBRK		001710'		S%TBLK		002516'	ent	TABSIZ		000107'		
IB.VER		000005	spd	OPEN	050000	000000		S..ABS		000750'	int	TBA		000077'		
IFOB		000116'		OUTCHR	051040	000000		S..BDS		004116'	int	TBLK2A		002613'		
IIFN		000117'		OUTSTR	051140	000000		S..BFC		000241'	int	TBLKN1		002633'		
IMGS.1		003254'		P		000017	spd	S..BTF		004752'	int	TF		000000	spd	
IMGSTR		003250'		P1		000007	spd	S..COT		002657'	int	TI		000120'		
INCHRW	051000	000000		P2		000010	spd	S..DPP		002271'	int	TIELCH		000757'		
INILCH		000742'		P3		000011	spd	S..FSE		003132'	int	TL%ABR	100000	000000	spd	
IO.LEM		000100	spd	P4		000012	spd	S..FSO		000155'	int	TL%AMB	200000	000000	spd	
IO.SUP		000200	spd	P5		000013	spd	S..FSR		000157'	int	TL%EXM	040000	000000	spd	
IO.TEC		000400	spd	PAGSIZ		001000	spd	S..IBN		001750'	int	TL%NOM	400000	000000	spd	
IONDX.	047000	000127		PCALL		000055'		S..IBP		003207'	int	TRMOP.	047000	000116		
JUMPF	322000	000000		PCRLF	037040	004023'		S..IIP		003234'	int	TRMPTR		002643'		
JUMPT	321000	000000		PJRST	254000	000000	spd	S..NNS		002200'	int	TRMTYP		002651'		
K%INIT		002656'	ent	PJUMPN	326000	000000	spd	S..NOD		002060'	int	TRMUDX		000131'		
K%RCOC		002674'	ent	PNT6F	037300	000001		S..SDT		001774'	int	TTSET		002753'		
K%STYP		002715'	ent	PNTALF	037740	000001		S..SFP		001662'	int	TTTAB		002741'		
K%SUET		002700'	ent	PNTCIF	037040	000000		S..TMT		001033'	int	TTTABL		000012	spd	
K%TXTI		003001'	ent	PNTSXF	037040	000002		S..TNO		003002'	int	TTYC.1		003143'		
K%WCOC		002676'	ent	PPNBRK		002355'		S..TRI		001311'	int	TTYCHR		003134'		
KBD%L		003531'		PPNIN		002405'		S..WVG		003572'	int	TTYFLG		002640'		
KEY1		001531'		PPNSP1		002256'		S1		000001	spd	TXTL		003042'		
KEY2		001533'		PPNSUP		004025'		S2		000002	spd	TXTL.1		003063'		
KEY3		001544'		PUNTAB		003345'		SC%GTR	100000	000000	spd	TXTL.2		003073'		
KEY4		001545'		PUT	261740	000000		SC%LSS	400000	000000	spd	TXTL.3		003104'		
KEYSIZ		000112'		PWIDTH		000113'		SC%SUB	200000	000000	spd	TXTL.4		003110'		
KEYTAB		001514'		Q1		000015	spd	SCN%L		002640'		TXTL.5		003122'		
KEYW1		001346'		Q2		000016	spd	SCTBL		003372'		TXTL.6		003132'		
KEYW2		001371'		Q3SAVE		000115'		SCTBLL		000004	spd	TYPE.1		003523'		
KEYW3		001377'		RD		000044'		SETVT5		002765'		TYPE.2		003527'		
KEYW4		001412'		RD%BBG	001000	000000	spd	SKPINC	051540	000000		TYPEBP		003516'		
LSTERR		000110'		RD%BEL	040000	000000	spd	SPCH.1		003361'		TYPTAB		001551'		
MAKBP		003241'		RD%BFE	000020	000000	spd	SPCHK		003360'		TYPTB1		001554'		
MAXCFN		000027	spd	RD%BLR	000010	000000	spd	STKFEN		000060'		TYPTB2		001564'		
NAMSP1		002176'		RD%BRK	400000	000000	spd	STOC		003146'		UESCTB		002647'		
NODSIX		000132'		RD%BTM	000040	000000	spd	STOC.1		003152'		USRBRK		000605'		
NOIBCH		000050	spd	RD%CRF	020000	000000	spd	STOLCH		000747'		USTCMP		002476'	int	
NOIECH		000051	spd	RD%JFN	004000	000000	spd	STRC2		002511'		USTO.1		003161'		
GSCN  --  Command Scanner Interface for DIAGNOSTICS	MACRO %53(1020) 10:54 19-Feb-79 Page S-3
GCOM	MAC	22-May-78 10:54		SYMBOL TABLE                                                                       SEQ 0409

USTOC		003155'		%%.GLX		000005	spd	.LGERR		003560'		
XCMACT		002055'		..T		000000	spd	.POPJ		003750'	ent	
XCMCFM		001643'		.AOS		003751'	ent	.PRIIN		000100		
XCMCMA		002435'		.CHBEL		000007	spd	.PRIOU		000101		
XCMDEV		001777'		.CHBSL		000134	spd	.RDBFP		000005	spd	
XCMDIR		002361'		.CHCRT		000015	spd	.RDBKL		000010	spd	
XCMFIL		002064'		.CHDEL		000177	spd	.RDBRK		000007	spd	
XCMFLD		002051'		.CHESC		000033	spd	.RDCWB		000000	spd	
XCMFLT		001662'		.CHLFD		000012	spd	.RDDBC		000004	spd	
XCMIFI		002064'		.CHTAB		000011	spd	.RDDBP		000003	spd	
XCMINI		001260'		.CMABC		000010	sin	.RDFLG		000001	spd	
XCMKEY		001345'		.CMABP		000007	sin	.RDIOJ		000002	spd	
XCMNOD		002060'		.CMACT		000025	sin	.RDRTY		000006	spd	
XCMNOI		001607'		.CMBFP		000003	sin	.RDSIZ		000011	spd	
XCMNUM		001665'		.CMCFM		000010	spd	.RETE		003743'	ent	
XCMNUX		001664'		.CMCMA		000013	sin	.RETF		003746'	ent	
XCMOFI		002064'		.CMCNT		000005	sin	.RETT		003747'	ent	
XCMQST		002033'		.CMDAT		000001	sin	.S%CMN		000161'		
XCMSWI		001331'		.CMDEF		000003	sin	.SACS		003534'		
XCMTAD		001774'		.CMDEV		000016	sin	.SAVE1		003617'	ent	
XCMTOK		002340'		.CMDIR		000011	sin	.SAVE2		003626'	ent	
XCMTXT		001602'		.CMFIL		000006	sin	.SAVE3		003636'	ent	
XCMUQS		002041'		.CMFLD		000007	sin	.SAVE4		003647'	ent	
XCMUSR		002361'		.CMFLG		000000	sin	.SAVET		003665'	ent	
XCOM1		000226'		.CMFLT		000015	sin	.SCODE		003532'		
XCOM2		000266'		.CMFNP		000000	sin	.SERR		003533'		
XCOM3		000267'		.CMGJB		000011	sin	.SOS		003756'	ent	
XCOM4		000271'		.CMHLP		000002	sin	.SPC		003531'		
XCOM5		000274'		.CMIFI		000004	sin	.SPLIB		003557'		
XCOM6		000301'		.CMINC		000006	sin	.SPRGM		003555'		
XCOMEO		000464'		.CMINI		000014	sin	.SPTBL		003554'		
XCOMN0		000222'		.CMIOJ		000001	sin	.SPVER		003556'		
XCOMND		000176'	int	.CMKEY		000000	sin	.STOP		003773'	ent	
XCOMNE		000435'		.CMNOD		000026	sin	.SV13		003703'	ent	
XCOMNP		000436'		.CMNOI		000002	sin	.SV14		003713'	ent	
XCOMRF		000353'		.CMNUM		000001	sin	.SV15		003723'	ent	
XCOMRP		000375'		.CMNUX		000024	sin	.SV16		003733'	ent	
XCOMX1		000417'		.CMOFI		000005	sin	.TCEOL		000000	spd	
XCOMX2		000422'		.CMPTR		000004	sin	.TOLCT		001003	spd	
XCOMXI		000410'		.CMQST		000021	sin	.TOSET		001000	spd	
XCOMXL		000364'		.CMRTY		000002	sin	.TOTYP		000021	spd	
XCOMXR		000406'		.CMSWI		000003	sin	.TOWID		001012	spd	
XMCOUT		001211'		.CMTAD		000020	sin	.TT33		000000	spd	
XMCS.1		001230'		.CMTOK		000023	sin	.TT35		000001	spd	
XMCS.2		001236'		.CMTXT		000017	sin	.TT37		000002	spd	
XMCSPC		001225'		.CMUQS		000022	sin	.TTEXE		000003	spd	
XMSO.1		001220'		.CMUSR		000012	sin	.TTL30		000012	spd	
XMSOUT		001215'		.FDEXT		000005		.TTL36		000014	spd	
XTLOK0		002525'		.FDLEN		000000	spd	.TTV05		000010	spd	
XTLOOK		002523'	int	.FDNAM		000004		.TTV50		000011	spd	
XX		000044	spd	.FDPPN		000003		.TTV52		000015	spd	
XXXPTR		000102'		.FDSTR		000002		.ZCHNK		003605'	ent	
ZCHN.1		003607'		.INIT		003562'	ent	.ZERO		003763'	ent	
ZERO.1		003767'		.IOASC		000000	spd	.ZPAGA		003600'	ent	
$CCLIN		000153'	ext	.LGEPC		003561'		.ZPAGN		003575'	ent	

ARGLOC	  2378#	  2632	  2638	  2639	  2662
ATBPTR	   139#	   822	   831	   845	  1181	  1503	  1793	  2038                                                     SEQ 0410
ATBSIZ	   140#	   824	   829	   837	   842
BCKFLG	  2379#	  2645	  2654	  2683	  2793
BEGBUF	  3053	  3085	  3108#
BGBUFR	  2385#	  2829	  3052
BGLINE	  2384#	  2828	  3005	  3044	  3084	  3089
BIGSIZ	   157#	  1285	  1344
BITS	   131#	   720	   754	  1691
BP.POS	  1961	  2851	  2854
BTBL	  2932	  2935	  2950#	  2955
BTBLL	  2930	  2955#
C	    88#	  2360#	  2633	  2688	  2689	  2699	  2705	  2706	  2718	  2738	  2747	  2748	  2750	  2752
	  2753	  2774	  2780	  2784	  2805	  2807	  2808	  2810	  2811	  2815	  2863	  2867	  2868	  2884
	  2896	  2903	  2910	  2915	  2923	  2940	  2983	  3057	  3068	  3093	  3099
C7TO6	  1953	  1965#
CBRK	  2729	  2921#
CBRK.1	  2922	  2930#
CBRK.2	  2932#	  2944
CBRK.3	  2938#	  2942
CBRK.4	  2934	  2939	  2944#
CCDEL	  2994	  3051#
CCDL.1	  3060	  3068#
CCDL.2	  3069	  3073#
CCR	  2996	  3031#	  3076	  3102
CCR.1	  3033	  3036#
CCU	  2995	  3004#	  3009
CCU.1	  3007	  3011#
CCU.2	  3012	  3018#
CCU.3	  3016	  3020#
CCW	  2997	  3082#
CCW.1	  3087#	  3098
CCW.2	  3097#	  3100
CCW.3	  3090	  3102#
CFNTAB	   348	   388	   440#	   465
CFRAT1	   738#	   746	   759
CFRAT2	   739#
CFRAT3	   758#
CFRATR	   748	   757	   761#
CFRATT	   737	   741	   745	   751	   762#
CFRFLD	   672	   735#
CHKAB1	  1102#	  1108
CHKABP	   314	  1099#
CHKBP	   397	  1106	  1113#	  1407
CHKLCH	   401	   704	   710	   744	   786	   836#	  1237
CHKTBS	  1303	  1315	  2112#	  2217	  2222	  2243	  2259	  2267
CLINE	  2876#	  3018	  3034
CM%DPP	   340	   373	   392
CM%EOC	   333	   866
CM%ESC	   320	   333	   407	   413	   511	   513	   517	   860	   863	   973	  1026	  1209	  1218	  1411
	  1644	  1657	  1868	  1885	  1891	  1913	  1933	  2031
CM%FFL	   336	   337	   527
CM%FNC	   344	   370	   387
CM%GJB	   611	   612	  1805	  1806	  1983	  1984
CM%HPP	  1015                                                                                                             SEQ 0411
CM%INV	  1304
CM%LST	   543	   544	   552	   553
CM%NJF	   874
CM%NOP	   333	   546	   564	   609	   650
CM%NOR	  1304	  2223	  2268
CM%PFE	   319	   321	  1409
CM%RAI	   876
CM%RPT	   301	   333	   486	   499
CM%SDH	  1265	  1401	  1454	  1555	  1666	  1683	  1978	  2007	  2045	  2095
CM%SWT	   333	  1219	  1234	  1245
CM%VRQ	  1229	  1249
CM%XIF	   365
CMAMB	   429	   706	   781	  1026#	  1177	  1206	  1459	  1646	  2003	  2032	  2091
CMAPC	  1002#
CMATFI	   602	  1778#
CMBOL	   224#	   333	   335	   375
CMCBLF	   148#	   870	   905
CMCCM	   143#	   323	   524
CMCFF	   222#	   333	   405	   515	   860	   973
CMCFM0	   604	  1443	  1447#	  1450	  1460
CMCHR	  2082#	  2085	  2092
CMCIN	   353	   355	   358	   421	   423	   701	   738	   775	   798	   804	   809	   854#	   856	   937
	  1174	  1243	  1424	  1428	  1447	  1647	  1689	  1997	  2082
CMCIN1	   470	   855	   869#
CMCIN2	   896#	   915
CMCIN3	   911	   914	   917#
CMCIN4	   904	   918	   931#
CMCMT1	   363	   420#
CMCMT2	   361	   419#
CMCOM	   421#	   425	   430	   436
CMCOM1	   237#	   362
CMCOM2	   238#	   360
CMCONC	   244#	   354	   422
CMCOUT	   557	   581	   587	   595	   983	  1018	  1030	  1037#	  1135	  2009	  2013	  2097	  2099	  2101
CMCSAC	   146#	   871	   872	   921	   931
CMCSC	   147#	   887	   919
CMCSF	   145#	   869	   924	   932
CMDCH	   394	   512	   961#	  1028	  1213	  1431
CMDEFC	   239#
CMDEFF	   221#	   333	   399	   699	   736	   773	   796	  1172
CMDEV1	  1650#
CMDEVH	  1642	  1664#
CMDIB	   414	   519	   983#	  1216	  1233	  1413	  1415	  1418	  1661
CMDIBQ	   409	   637	   642	   984#
CMDIP	   369	   386	   432	   727	   761	   806	   812	   941	   970#	  1187	  1221	  1247	  1426	  1695
CMDIRH	  2030	  2044#
CMFH1	  1976	  1988#
CMFHLP	  1788	  1973#
CMFLD1	  1701#	  1709
CMFREC	   240#	   324	   382	   427	   702	   739	   780	   859	   913	   971	  1175	  1429	  1457	  2001
	  2089
CMGT.1	  1384#	  1386
CMGTLN	  1280	  1324	  1383#                                                                                            SEQ 0412
CMHLPC	   236#	   715	   749	   776	   799	   912	  1179	  1451	  2005	  2093
CMIND	   366	   599#
CMIND1	   627#	   632	   638
CMIND2	   629	   639#
CMINDC	   241#	   364
CMINDE	   603	   624	   645#
CMINDF	   226#	   333	  1779	  1797	  1974	  1975
CMINI1	  1131#
CMINI2	  1132#	  1136
CMINI3	  1133	  1137#
CMINI4	  1128	  1138	  1141	  1153#
CMINI5	  1144	  1161#
CMKEY0	  1173	  1189	  1193#
CMNH	  1577	  1580#
CMNH10	  1563	  1579#
CMNH8	  1565	  1576#
CMNOD	   230#	   349	   443	   453	   459
CMNOI1	  1411#
CMNOI2	  1414#	  1416	  1432
CMNOI3	  1410	  1423#
CMNOI4	  1428#	  1435
CMNUM1	  1501	  1508#
CMNUMH	  1497	  1554#
CMNUMR	  1502#
CMNXT1	  1309	  1314#
CMNXTE	  1278	  1290	  1299#	  1306
CMQ1	  1199	  1256#
CMQ2	  1185	  1263#
CMQ3	  1290#	  1294
CMQTCH	   243#	   802	   807	   810
CMQUE2	   223#	   554	   560	   599	   600	  1013	  1262
CMQUES	   218#	   538	   554	   560	   716	   750	   777	   800	  1198	  1399	  1496	  1640	  1681	  1701
	  1786	  2029
CMRAT1	   701#	   707	   712	   725
CMRAT2	   702#
CMRAT3	   724#
CMRATM	   660#	  1194	  1639	  1700
CMRATR	   714	   723	   727#	   790
CMRATT	   700	   705	   711	   717	   728#	   788
CMRBRK	   144#	   698	   721	   735	   755
CMRDOC	   242#	   325	   630	  1143
CMRFIL	   671#	  1785
CMRFLD	   661	   698#	  1495	  1708	  2028
CMRQS1	   804#	   817
CMRQS2	   808	   811	   816#
CMRQST	   796#	  1675
CMRSET	   357	   377	   410	   469	   476#	   541	   551	   626
CMRSP1	   775#	   782	   787	   792
CMRSPC	   772#
CMRSTR	   767#	  1394
CMRTY1	   379	   493	   561	   571#	  1166
CMRTY2	   577#
CMRTY3	   578#	   582                                                                                                     SEQ 0413
CMRTY4	   579	   583#
CMRTY5	   584#	   588
CMRTY6	   585	   590#
CMRTY7	   591#	   596
CMRTYP	   540	   551#	  1262	  1266	  1291	  1401	  1456	  1557	  1574	  1581	  1635	  1668	  1683	  1703
	  1980	  1989	  2007	  2014	  2047	  2050	  2095	  2102
CMSKSP	   825	   937#	   940	  1242	  1423
CMSO.1	  1052#	  1055
CMSO.2	  1050	  1057#
CMSOUT	   576	   608	  1014	  1046#	  1130	  1165	  1262	  1272	  1401	  1455	  1567	  1580	  1667	  1683
	  1988	  2049
CMSWCH	   234#	  1186	  1353
CMSWF	   219#	  1171	  1192	  1220	  1225	  1239	  1354	  1387
CMSWTM	   235#	  1217	  1232	  1244
CMTAB	  1340#	  1343	  1362
CMTAB1	  1278#	  1283
CMTAB2	  1279	  1284#
CMTF1	   225#	   767	   772	   785
CMTOK1	  1994#	  2000
CMTOK2	  1997#	  2004
CMUQS1	  1689#	  1694
CMUSOU	  1021	  1045#	  2011
CMUSRF	   220#
COBP.1	  2831	  2834#
COCTAB	  2375#	  2448	  2472	  2886
COM%L	  3501#
COMN1	   300	   303#
CONVBP	  2643	  2821#
CONVRT	  2720	  2743	  2804#
CR.FLG	   277	   529	   530
CR.FNB	   279	   526
CR.RES	   278	  1208	  1502	  1506	  1656	  1806	  2037
CR.SIZ	   153	   531
CRBLK	   153#	   277	   278	   279	   526	   529	   530	   532	   565	  1208	  1502	  1506	  1656	  1806
	  2037
CRLF	  3434	  3454#
CURESC	  2381#	  2425	  2497	  2696	  2702	  2705	  2707	  2747	  2749
CURPOS	   160#	  1087	  1091	  1093	  1273	  1339	  1350	  1361	  1364	  1372
DBP	   962	   975	   992#	  1118	  1824	  1850
DEVSP1	  1833	  1906#
DEVSUP	  1802#	  1802	  1816	  1832
DOHLP	  1011#	  1264	  1401	  1452	  1554	  1664	  1683	  1702	  1977	  2006	  2044	  2094
ECHO	  2728	  2742	  2869	  2893#	  3065
ECHO.1	  2899	  2903#
ECHO.2	  2897	  2899	  2910#	  2916
ECHO.3	  2899	  2915#
EOLBRK	   688#
EREOF$	   900	  2735
EXTSP1	  1843	  1887	  1890#
EXTSUP	  1840	  1883#
F	    90#	   297	   301	   318	   319	   320	   321	   333	   335	   337	   339	   340	   341	   365
	   373	   375	   392	   399	   405	   407	   413	   486	   499	   511	   513	   515	   517	   527
	   528	   530	   538	   546	   554	   560	   564	   599	   600	   609	   650	   699	   716	   736     SEQ 0414
	   750	   767	   772	   773	   777	   785	   796	   800	   860	   863	   866	   869	   874	   876
	   902	   903	   905	   917	   924	   932	   973	  1013	  1015	  1026	  1171	  1172	  1192	  1198
	  1209	  1218	  1219	  1220	  1225	  1234	  1239	  1245	  1262	  1265	  1354	  1387	  1399	  1401
	  1409	  1411	  1454	  1496	  1555	  1640	  1644	  1657	  1666	  1681	  1683	  1701	  1779	  1786
	  1797	  1868	  1885	  1891	  1913	  1933	  1974	  1975	  1978	  2007	  2029	  2031	  2045	  2095
F%IBYT	   282#	   628	  2734
F%IOPN	   285#	   623
F%REL	   286#	   640
FB.BSZ	   619
FB.LSN	   619
FD.LEN	  1809	  1810
FDXSIZ	  1808
FILBRK	   671	   674#
FILI.1	  1814	  1818#
FILI.2	  1818	  1822	  1832#
FILI.3	  1845#	  1884	  1888
FILI.4	  1848	  1857#
FILIN	  1791	  1802#
FINT.1	  2658	  2662#
FINTXT	  2654#	  2685	  2691	  2732	  3027	  3110
FLDBRK	   660	   663#
FNARG	   142#	   343	  1183	  1195	  1228	  1248	  1267	  1406	  1499	  1558	  1569	  1692	  1993	  2010
	  2081	  2086	  2098
FOB.CW	   620
FOB.FD	   618
FTJSYS	   177	   193	   263	  2401	  2453	  2476	  2512	  2526	  2623
FTOK.1	  1952#	  1963
FTOKEN	  1652	  1812	  1817	  1831	  1841	  1877	  1900	  1919	  1949#
FTUUOS	   169	   182	   288	  2407	  2447	  2471	  2495	  2534	  2629
GETCOC	  2813	  2884#	  2898	  3073
GJ%OLD	    21#	  1985
GLXVRS	  3228
HB.RTC	  2768
I%IOFF	   645	  2388#	  2773
I%ION	   649	  2387#	  2667	  2682	  2725
IB.PID	  3231
IB.PRG	  3222
IB.VER	  3224
IFOB	   162#	   618	   620	   622
IIFN	   163#	   625	   627	   639
IMGS.1	  2867#	  2870
IMGSTR	  2863#	  3045
INILCH	   352	   821#
IO.LEM	  2413
IO.SUP	  2413
IO.TEC	  2413
K%INIT	  2350	  2400#
K%RCOC	   322	  2352	  2448#
K%STYP	  2354	  2428	  2535#
K%SUET	  2355	  2496#
K%TXTI	   899	  2351	  2630#
K%WCOC	   328	   525	  2353	  2419	  2472#
KBD%L	  3136#                                                                                                            SEQ 0415
KEY1	  1337#
KEY2	  1328	  1339#
KEY3	  1348	  1352#
KEY4	  1338	  1353#
KEYSIZ	   158#	  1325
KEYTAB	  1292	  1323#
KEYW1	  1194#	  1206
KEYW2	  1214#	  1223
KEYW3	  1215	  1225#
KEYW4	  1211	  1237#
LSTERR	   156#	   183	   537
MAKBP	  2798	  2823	  2827	  2832	  2836	  2843	  2848#	  2865
MAXCFN	   346	   465#
NAMSP1	  1837	  1865#
NODSIX	   166#
NOIBCH	   232#	  1412	  1425
NOIECH	   233#	  1417	  1436
NPXAMB	   255#	  1027
NPXCMA	   257#	  2103
NPXICN	   252#	  1508
NPXIDT	   253#	  1649
NPXINW	   250#	  1438
NPXNC	   251#	  1444
NPXNMT	   256#	  2015
NPXNNC	   258#
NPXNNI	   259#
NPXNOM	   248#	  1202
NPXNQS	   254#	  1676
NPXNSN	   260#
NPXNSW	   247#	  1188
NPXNUL	   249#	  1238
NUMBRK	  1494	  1513#
NUMI.1	  1544#	  1552
NUMIN	  1500	  1530#	  1533	  2063	  2069
NUXBRK	  1493	  1518#
P	    23	    24	    25	    26	   184	   190	   276	   280	   285	   286	   291	   292	   293	   294
	   295	   296	   297	   298	   303	   308	   314	   322	   328	   332	   347	   352	   353	   355
	   357	   358	   369	   377	   379	   386	   394	   397	   401	   403	   404	   409	   410	   412
	   414	   421	   423	   429	   432	   469	   470	   480	   490	   493	   503	   512	   519	   523
	   525	   541	   551	   557	   561	   566	   576	   581	   587	   593	   595	   602	   604	   608
	   623	   626	   628	   637	   640	   642	   645	   649	   701	   704	   706	   710	   724	   727
	   738	   744	   758	   761	   774	   775	   778	   781	   786	   791	   797	   798	   801	   803
	   804	   809	   812	   813	   814	   816	   830	   832	   838	   843	   847	   855	   861	   864
	   867	   897	   899	   925	   937	   957	   962	   966	   975	   979	   983	   986	   988	  1007
	  1014	  1016	  1018	  1021	  1022	  1028	  1030	  1038	  1058	  1080	  1082	  1094	  1099	  1100
	  1106	  1130	  1135	  1152	  1156	  1165	  1166	  1174	  1177	  1187	  1194	  1197	  1206	  1213
	  1216	  1221	  1233	  1237	  1242	  1243	  1247	  1262	  1264	  1272	  1278	  1280	  1290	  1292
	  1293	  1301	  1303	  1308	  1315	  1317	  1323	  1324	  1340	  1343	  1349	  1352	  1355	  1356
	  1362	  1370	  1374	  1376	  1390	  1394	  1401	  1407	  1413	  1415	  1418	  1423	  1424	  1426
	  1428	  1431	  1443	  1447	  1452	  1455	  1459	  1462	  1463	  1467	  1495	  1500	  1542	  1551
	  1554	  1561	  1567	  1580	  1585	  1639	  1646	  1647	  1652	  1661	  1664	  1667	  1675	  1683
	  1689	  1695	  1700	  1702	  1708	  1712	  1785	  1791	  1798	  1804	  1812	  1817	  1824	  1826
	  1827	  1831	  1841	  1850	  1852	  1853	  1861	  1862	  1867	  1941	  1953	  1956	  1960	  1969     SEQ 0416
	  1977	  1988	  1995	  1997	  1999	  2003	  2006	  2009	  2011	  2013	  2028	  2032	  2035	  2044
	  2049	  2053	  2060	  2063	  2064	  2067	  2069	  2070	  2075	  2076	  2082	  2091	  2094	  2097
	  2099	  2101	  2117	  2130	  2138	  2161	  2165	  2169	  2184	  2186	  2202	  2203	  2217	  2219
	  2222	  2232	  2243	  2245	  2259	  2261	  2262	  2267	  2387	  2388	  2416	  2419	  2535	  2631
	  2633	  2634	  2637	  2643	  2667	  2682	  2698	  2704	  2720	  2721	  2724	  2725	  2728	  2729
	  2734	  2742	  2743	  2744	  2756	  2773	  2798	  2813	  2822	  2823	  2827	  2832	  2836	  2842
	  2843	  2863	  2864	  2865	  2869	  2898	  3008	  3018	  3020	  3022	  3023	  3034	  3038	  3040
	  3045	  3046	  3055	  3065	  3073	  3087	  3232	  3243	  3247	  3248	  3253	  3254	  3260	  3261
	  3270	  3271	  3272	  3275	  3278	  3279	  3280	  3281	  3284	  3287	  3288	  3289	  3290	  3291
	  3294	  3297	  3298	  3299	  3300	  3301	  3302	  3305	  3306	  3307	  3308	  3309	  3310	  3313
	  3314	  3315	  3316	  3317	  3318	  3321	  3322	  3323	  3324	  3325	  3326	  3333	  3334	  3335
	  3338	  3339	  3340	  3342	  3343	  3344	  3347	  3348	  3349	  3351	  3352	  3353	  3356	  3357
	  3358	  3360	  3361	  3362	  3365	  3366	  3367	  3388	  3395	  3396	  3397	  3398	  3401	  3402
	  3403	  3404	  3408	  3409	  3410	  3412	  3413	  3414	  3415	  3423
P1	   306	   307	   336	   338	   342	   344	   370	   387	   395	   471	   526	   543	   544	   552
	   553	   558	   871	   922	   931	  1019	  1807	  1815	  1829	  1838	  1844	  1855	  1857	  1859
	  1860	  1865	  1873	  1883	  1890	  1896	  1906	  1912	  1916	  1920	  1926	  1932	  1936	  1943
	  2068	  2071	  2210	  2213	  2214	  2240	  2246	  2250	  2256	  2279	  2283	  2285	  2286	  2289
	  2536	  2540	  2547	  2550	  2551	  2606	  2607	  2866	  2867	  3270	  3272	  3273	  3278	  3281
	  3282	  3287	  3291	  3292	  3297	  3302	  3303	  3309
P2	   299	   305	   315	   316	   317	   318	   334	   477	   478	   479	   488	   501	   520	   521
	   522	   528	   529	   542	   577	   578	   583	   611	   821	   823	   836	   881	   883	   894
	  1104	  1126	  1131	  1132	  1137	  1154	  1161	  1162	  1196	  1307	  1326	  1498	  1568	  1650
	  1805	  1810	  1983	  2034	  2209	  2210	  2216	  2221	  2231	  2241	  2255	  2266	  2552	  2608
	  3279	  3288	  3298	  3308
P3	   315	   476	   478	   491	   505	   520	   858	   887	   888	   889	   896	   908	   920	   964
	   978	   985	  1157	  1161	  2212	  2277	  2280	  2281	  2283	  2285	  2553	  2609	  3289	  3299
	  3307
P4	    89	   316	   334	   479	   487	   489	   500	   502	   521	   584	   857	   886	   891	   893
	   907	   923	   961	   963	   970	   974	   976	   987	  1004	  1137	  1139	  1153	  1155	  1162
	  2211	  2212	  2213	  2215	  2256	  2286	  3300	  3306
P5	    89#	   293	   317	   378	   476	   477	   492	   504	   522	   542	   559	   590	   854	   888
	   890	   892	   919	   920	   965	   977	   984	  1003	  1006	  1158	  1163	  2203
PAGSIZ	  3250
PCALL	   138#	   291	   302
PPNBRK	  2020#	  2027
PPNIN	  1826	  1852	  1940	  2035	  2053#	  2056
PPNSP1	  1835	  1926#
PPNSUP	  1803#	  1803	  1830	  1834
PUNTAB	  2952	  2958#	  3095
PWIDTH	   159#	  1277	  1327	  1330	  1337	  1347
Q1	    91#	   295	   338	   339	   341	   395	   396	   398	   400	   577	   578	   580	   583	   584
	   586	   592	   594	  1099	  1101	  1102	  1108	  1131	  1132	  1134	  1212	  1214	  1228	  1229
	  1248	  1249	  1268	  1269	  1300	  1993	  1994
Q2	    92#	   296	   420	   434	   590	   591	  1100	  1102	  1103	  1104	  1105	  1107	  1263	  1274
	  1275	  1289	  1299	  1300	  1302	  1314	  1994	  1995	  1998
Q3SAVE	   161#	  1275	  1289
RD	   136#	  2636	  2656	  2657	  2660	  2665	  2684	  2687	  2688	  2692	  2740	  2782	  2784	  2785
	  2790	  2792	  2794	  2799	  2800	  2804	  2821	  2824	  2825	  2826	  2830	  2833	  2834	  2837
	  2839	  2841	  2844	  2894	  2921	  2925	  2933	  2988	  3006	  3021	  3024	  3039	  3041	  3051
	  3056	  3083	  3088	  3108
RD%BBG	   873
RD%BEL	   873	  2953                                                                                                     SEQ 0417
RD%BFE	   903	  3026	  3109
RD%BLR	   917	  2655
RD%BRK	   873	  2950
RD%BTM	  2690	  2731
RD%CRF	   873	  2782
RD%JFN	   873	   875	  2686	  2838
RD%NEC	  2893
RD%PUN	   873	  2952
RD%RAI	   877	  2804
RD%RND	  3024	  3108
RD%SUI	  2988
RD%TOP	  2951
REMSTR	   151#	  2239	  2272
RES1	  3276	  3309#
RES2	  3285	  3308#
RES3	  3295	  3307#
RES4	  3306#
RUBFLG	  2377#	  2644	  2726	  3004	  3031	  3062	  3064	  3082
S%CMND	    70	   276#
S%ERR	    73	   183#
S%INIT	    69	   170#
S%SCMP	    71	  2130#
S%TBLK	    72	  2184#
S..ABS	   830#	   843	   986
S..BDS	   403#	   411
S..BFC	   347#
S..BTF	  2262#	  2262
S..COT	  2416#
S..DPP	  1941#
S..FSE	  2756#
S..FSO	   285#
S..FSR	   286#
S..IBN	  1561#
S..IBP	  2822#
S..IIP	  2842#
S..NNS	  1867#
S..NOD	  1712#
S..SDT	  1585#
S..SFP	  1467#
S..TMT	   897#
S..TNO	  2631#
S..TRI	  1152#
S..WVG	  3232#
S1	   170	   171	   173	   183	   184	   187	   305	   323	   324	   325	   326	   524	   531	   611
	   612	   614	   615	   617	   618	   619	   620	   621	   625	   627	   639	   894	   895	   898
	   900	  1046	  1047	  1048	  1049	  1051	  1052	  1053	  1054	  1075	  1076	  1078	  1079	  1084
	  1085	  1087	  1088	  1089	  1090	  1091	  1150	  1151	  1531	  1532	  1534	  1536	  1539	  1540
	  1541	  1545	  1546	  1547	  1548	  1808	  1809	  1857	  1858	  1859	  2054	  2055	  2057	  2058
	  2065	  2066	  2072	  2073	  2074	  2131	  2139	  2185	  2187	  2417	  2420	  2421	  2423	  2426
	  2448	  2472	  2496	  2498	  2499	  2500	  2505	  2507	  2508	  2536	  2537	  2539	  2541	  2542
	  2544	  2545	  2546	  2550	  2554	  2602	  2604	  2605	  2606	  2610	  2632	  2635	  2639	  2640
	  2641	  2642	  2655	  2656	  2659	  2661	  2662	  2663	  2664	  2665	  2666	  2684	  2686	  2687
	  2690	  2692	  2693	  2700	  2702	  2706	  2707	  2708	  2710	  2722	  2731	  2735	  2740	  2741     SEQ 0418
	  2768	  2769	  2782	  2783	  2790	  2792	  2794	  2796	  2799	  2804	  2806	  2814	  2821	  2824
	  2825	  2826	  2828	  2829	  2830	  2833	  2834	  2837	  2838	  2839	  2841	  2844	  2848	  2849
	  2850	  2851	  2854	  2855	  2866	  2877	  2878	  2884	  2885	  2886	  2888	  2889	  2893	  2894
	  2899	  2903	  2905	  2923	  2924	  2925	  2926	  2927	  2928	  2930	  2932	  2935	  2944	  2980
	  2982	  2984	  2985	  2987	  2989	  3005	  3006	  3011	  3012	  3024	  3025	  3026	  3032	  3033
	  3041	  3043	  3044	  3051	  3052	  3056	  3057	  3059	  3060	  3074	  3075	  3083	  3084	  3088
	  3089	  3091	  3093	  3095	  3097	  3108	  3109	  3120	  3121	  3122	  3123	  3126	  3127	  3128
	  3222	  3223	  3224	  3225	  3228	  3229	  3230	  3231	  3243	  3244	  3247	  3249	  3250	  3253
	  3255	  3259	  3261	  3375	  3376
S2	   306	   327	   532	   565	   612	   613	   614	   615	   616	   617	   622	   630	   631	   633
	   634	   635	   636	  1530	  1535	  1537	  1538	  1549	  1550	  1805	  1806	  1807	  1809	  2539
	  2540	  2544	  2548	  2549	  2553	  2556	  2636	  2638	  2641	  2642	  2660	  2661	  2663	  2664
	  2666	  2738	  2795	  2797	  2851	  2852	  2853	  2854	  2887	  2888	  2889	  2927	  2932	  2933
	  2935	  2936	  2938	  2982	  2983	  2988	  2990	  3042	  3043	  3092	  3094	  3097	  3098	  3099
	  3222	  3224	  3231	  3248	  3249	  3254	  3255	  3256	  3257	  3258	  3259	  3260
SC%GTR	  2168	  2247	  2282	  2290
SC%LSS	  2167	  2278	  2284	  2287
SC%SUB	  1310	  2163	  2236	  2263
SCN%L	  2293#
SCTBL	  2982	  2987	  2994#	  2999
SCTBLL	  2980	  2999#
SETVT5	  2593	  2596	  2597	  2601#
SPCH.1	  2982#	  2984
SPCHK	  2721	  2980#
STKFEN	   141#	   308	   332	   523	   566
STOC	  2724	  2744	  2780#
STOC.1	  2781	  2784#
STOLCH	   412	   724	   758	   791	   816	   829#	  1999
STRC2	  2158	  2163#
STRG	   150#	  2208	  2218	  2244	  2260
STYP.2	  2539#	  2541
SUBBP	   490	   503	   949#	  1156
T1	   309	   336	   337	   342	   343	   344	   345	   346	   348	   349	   354	   356	   360	   362
	   364	   368	   370	   371	   381	   382	   387	   388	   396	   398	   400	   401	   402	   408
	   419	   420	   422	   424	   427	   428	   431	   434	   487	   491	   500	   504	   505	   506
	   518	   537	   543	   544	   545	   552	   553	   555	   556	   575	   580	   581	   586	   591
	   592	   594	   605	   636	   641	   660	   671	   698	   702	   703	   705	   708	   709	   711
	   713	   715	   718	   735	   739	   740	   742	   743	   745	   747	   749	   752	   776	   779
	   780	   783	   784	   787	   789	   799	   802	   805	   807	   810	   821	   822	   823	   824
	   831	   836	   837	   844	   846	   857	   859	   862	   865	   871	   872	   873	   875	   877
	   878	   879	   880	   881	   882	   883	   884	   906	   909	   910	   912	   913	   921	   922
	   923	   938	   939	   949	   952	   954	   955	   956	   961	   963	   970	   971	   972	   974
	   976	   987	   992	   993	   994	   995	   996	  1002	  1011	  1017	  1019	  1020	  1027	  1029
	  1037	  1046	  1051	  1052	  1057	  1065	  1066	  1075	  1077	  1078	  1101	  1105	  1107	  1113
	  1115	  1116	  1117	  1126	  1127	  1129	  1134	  1135	  1139	  1140	  1142	  1143	  1146	  1148
	  1150	  1153	  1157	  1164	  1175	  1176	  1179	  1180	  1182	  1183	  1184	  1186	  1188	  1195
	  1202	  1207	  1208	  1214	  1215	  1217	  1232	  1238	  1244	  1262	  1263	  1267	  1268	  1269
	  1270	  1281	  1282	  1284	  1285	  1286	  1288	  1304	  1307	  1309	  1310	  1316	  1325	  1326
	  1345	  1353	  1364	  1365	  1366	  1367	  1369	  1372	  1373	  1375	  1384	  1389	  1401	  1406
	  1408	  1412	  1414	  1415	  1417	  1425	  1429	  1430	  1434	  1436	  1438	  1444	  1448	  1449
	  1451	  1453	  1457	  1458	  1461	  1493	  1494	  1498	  1505	  1508	  1531	  1539	  1546	  1566
	  1568	  1576	  1579	  1648	  1649	  1650	  1651	  1653	  1656	  1660	  1665	  1676	  1683	  1690
	  1692	  1693	  1707	  1810	  1811	  1815	  1818	  1823	  1825	  1828	  1836	  1838	  1842	  1844     SEQ 0419
	  1849	  1851	  1854	  1920	  1929	  1946	  1949	  1950	  1976	  1986	  1987	  1998	  2001	  2002
	  2005	  2008	  2010	  2012	  2015	  2027	  2038	  2048	  2061	  2065	  2072	  2080	  2081	  2083
	  2084	  2087	  2089	  2090	  2093	  2096	  2098	  2100	  2103	  2113	  2114	  2115	  2131	  2132
	  2134	  2139	  2147	  2160	  2163	  2167	  2168	  2185	  2187	  2209	  2211	  2218	  2220	  2223
	  2231	  2236	  2241	  2242	  2244	  2246	  2247	  2255	  2258	  2260	  2262	  2263	  2268	  2278
	  2282	  2284	  2287	  2290	  2938	  2939	  2940	  3020	  3021	  3023	  3038	  3039	  3046	  3120
	  3126	  3131	  3313	  3318	  3319	  3325	  3423	  3424	  3426	  3428	  3429
T2	   488	   489	   501	   502	   718	   719	   721	   722	   752	   753	   755	   756	   950	   953
	   954	  1003	  1004	  1005	  1113	  1114	  1116	  1145	  1154	  1155	  1181	  1182	  1196	  1200
	  1204	  1207	  1260	  1302	  1314	  1316	  1329	  1330	  1333	  1334	  1336	  1337	  1339	  1340
	  1341	  1342	  1344	  1347	  1361	  1363	  1384	  1385	  1433	  1434	  1437	  1502	  1503	  1504
	  1505	  1506	  1543	  1544	  1545	  1550	  1558	  1559	  1560	  1562	  1564	  1569	  1571	  1572
	  1573	  1654	  1691	  1693	  1793	  1794	  1795	  1813	  1819	  1820	  1825	  1829	  1839	  1845
	  1846	  1851	  1855	  1871	  1880	  1894	  1903	  1909	  1923	  1930	  1938	  1943	  1945	  1952
	  1954	  1955	  1957	  1958	  1962	  1965	  1966	  1967	  1968	  1983	  1984	  1985	  2034	  2037
	  2054	  2061	  2068	  2071	  2086	  2087	  2112	  2113	  2116	  2135	  2137	  2152	  2164	  2204
	  2207	  2208	  2216	  2221	  2226	  2229	  2230	  2239	  2242	  2258	  2266	  2271	  3314	  3324
	  3424	  3425	  3440	  3445
T3	   720	   722	   754	   756	   845	   846	   949	   950	   951	   956	  1149	  1212	  1332	  1333
	  1499	  1540	  1544	  1547	  1570	  1950	  1961	  1962	  2062	  2132	  2133	  2135	  2136	  2147
	  2148	  2149	  2150	  2157	  2159	  2163	  2166	  2204	  2205	  2206	  2272	  3315	  3323	  3426
	  3427
T4	   299	   300	   302	  1002	  1005	  1146	  1147	  1149	  1331	  1383	  1386	  1388	  1389	  2152
	  2153	  2154	  2155	  2157	  2166	  3316	  3322
TABDON	   154#	  1363	  1367	  1373
TABLK0	  2216#	  2289
TABLK1	  2220	  2236#
TABLK2	  2240	  2249	  2255#
TABLK3	  2239#	  2250
TABLKA	  2227	  2231#	  2273
TABLKF	  2221#	  2246
TABLKM	  2225	  2229#	  2265	  2270
TABLKN	  2238	  2277#	  2288	  2291
TABLKX	  2215	  2230#	  2278	  2279
TABSIZ	   155#	  1276	  1281	  1282	  1284	  1288	  1340	  1341	  1342
TBA	   149#
TBLK2A	  2257	  2266#
TBLKN1	  2286#
TEMP%%	   334	   365#	   365	   373#	   373	   375#	   375	   405#	   405	   407#	   407	   609#	   609	   716#
	   716	   750#	   750	   777#	   777	   785#	   785	   800#	   800	   860#	   860	   863#	   863	   974
	  1218#	  1218	  1219#	  1219	  1220#	  1220	  1245#	  1245	  1262#	  1262	  1401#	  1401	  1454#	  1454
	  1683#	  1683	  2007#	  2007	  2095#	  2095	  2278#	  2278
TEST%%	  2163#	  2163	  2287#	  2287	  2690#	  2690	  3109#	  3109	  3229
TF	  3374	  3386	  3387	  3395	  3396	  3397	  3398	  3399	  3401	  3402	  3403	  3404	  3405	  3408
	  3409	  3410	  3411	  3412	  3413	  3414
TI	   164#	   878	   880	   882	   884	   885	   886	   889	   893	   895	   898	   902	   906	   907
	   908
TIELCH	   404	   728	   762	   813	   842#	  1995
TL%ABR	  2271
TL%AMB	  1204	  2229
TL%EXM	  2226
TL%NOM	  1200	  1260	  2230
TRMPTR	  2376#	  2546	  2877	  3011	  3032	  3059                                                                     SEQ 0420
TRMTYP	  2382#	  2498	  2547
TRMUDX	   165#	   173	  1145	  1331	  2423	  2552	  2608
TTSET	  2544	  2588#
TTTAB	  2539	  2545	  2571#	  2581
TTTABL	  2537	  2581#
TTYC.1	  2767	  2773#
TTYCHR	  2698	  2704	  2765#	  2771
TTYFLG	  2373#	  2427	  2630
TXTL	  2646	  2682#	  2709	  2712	  2718	  2730	  3025	  3047	  3066	  3071	  3074	  3078	  3112
TXTL.1	  2704#	  2711
TXTL.2	  2689	  2701	  2718#	  2751
TXTL.3	  2729#	  2745
TXTL.4	  2694	  2734#	  2739
TXTL.5	  2697	  2747#	  2754
TXTL.6	  2736	  2756#
TYPE.1	  3126#	  3129
TYPE.2	  3124	  3131#
TYPEBP	  3022	  3040	  3120#
TYPTAB	  1352	  1361#
TYPTB1	  1364#	  1371
TYPTB2	  1368	  1372#	  1377
UESCTB	  2380#	  2424	  2496	  2506	  2603	  2700
USRBRK	   681#	  1707
USTCMP	  1308	  2138	  2147#	  2159	  2219	  2245	  2261
USTO.1	  2791	  2794#
USTOC	  2790#	  3008	  3055	  3087
XCMACT	   462	  1707#
XCMCFM	   449	  1443#
XCMCMA	   452	  2080#
XCMDEV	   455	  1639#	  1646
XCMDIR	   450	  2025#
XCMFIL	   447	  1785#
XCMFLD	   448	  1700#
XCMFLT	   454	  1467#
XCMIFI	   445	  1780	  1783#
XCMINI	   453	  1126#
XCMKEY	   441	  1192#
XCMNOD	   463	  1712#
XCMNOI	   443	  1406#
XCMNUM	   442	  1494#
XCMNUX	   461	  1493#
XCMOFI	   446	  1782#
XCMQST	   458	  1675#
XCMSWI	   444	  1171#	  1178
XCMTAD	   457	  1585#
XCMTOK	   460	  1993#
XCMTXT	   456	  1394#
XCMUQS	   459	  1688#
XCMUSR	   451	  2026#	  2033
XCOM1	   336#	   433	   435
XCOM2	   386#	   393
XCOM3	   351	   372	   376	   387#	   407
XCOM4	   383	   392#                                                                                                    SEQ 0421
XCOM5	   374	   395#
XCOM6	   400#	   415
XCOMEO	   564#	   901
XCOMN0	   332#	   380	   411	   472	   545	   555	   562
XCOMND	   298	   305#
XCOMNE	   537#	  1027	  1188	  1202	  1238	  1439	  1444	  1509	  1649	  1676	  2016	  2104
XCOMNP	   538#	   601	  1251	  1653	  1655	  1792	  1796	  2036	  2039
XCOMRF	   406	   469#	   516	  1031
XCOMRP	   499#	   643	   933	  1167
XCOMX1	   507	   514	   520#	  1235
XCOMX2	   523#	   547	   610	   651
XCOMXI	   494	   513#	  1159	  1222	  1227	  1231	  1241	  1246	  1252	  1402	  1419	  1427	  1437	  1445
	  1662	  1684	  1696	  1799	  1996	  2040	  2088
XCOMXL	   486#	   506
XCOMXR	   511#	  1507	  1659	  1704
XMCOUT	  1065#	  1355	  1370	  1376
XMCS.1	  1067	  1087#
XMCS.2	  1068	  1086	  1093#
XMCSPC	  1080	  1084#
XMSO.1	  1078#	  1081
XMSOUT	  1075#	  1293	  1349
XTLOK0	  2186	  2204#
XTLOOK	  1197	  2202#
XX	   130#	   132	   132#
XXXPTR	   152#	  1408	  1414	  1433	  1651	  1795	  1811	  1823	  1828	  1849	  1854	  1856	  1872	  1875
	  1879	  1895	  1898	  1902	  1910	  1918	  1922	  1952
ZCHN.1	  3251	  3255#
ZERO.1	  3399	  3405	  3412#
$CCLIN	    28#	   282
%%.GLX	  3230
%%.MOD	   286	   287	   348	   403	   831	   898	  1153	  1468	  1562	  1586	  1713	  1868	  1942	  2262
	  2417	  2632	  2757	  2823	  2843	  3233
..T	   336#	   336	   337#	   337	   344#	   344	   370#	   370	   387#	   387	   543#	   544	   552#	   553
	   611#	   612	  1805#	  1806	  1809#	  1810	  1983#	  1984	  2782#	  2782	  2804#	  2804	  2851#	  2851
	  2854#	  2854	  2988#	  2988	  3024#	  3024	  3108#	  3108
.AOS	  3161	  3395#
.CHBEL	  1029	  2708	  3111
.CHBSL	    96#	  2364#	  2727	  3063
.CHCRT	   575	   631	  1129	  1164	  2780	  2876	  2951
.CHDEL	  2815	  2994
.CHESC	   327	   381	   408	   428	   634	   703	   740	   779	   862	   910	   972	  1176	  1430	  1458
	  2002	  2090	  2504	  2576	  2579	  2580	  2601	  2699	  2915	  2950	  2951
.CHLFD	   326	   356	   368	   424	   431	   556	   575	   633	   641	   688	   713	   747	   789	   805
	   865	   909	  1129	  1140	  1164	  1461	  2951	  2953
.CHTAB	   709	   743	   783	   939	  1369	  1448	  2083
.CMABC	   823	   836
.CMABP	   312	   821	  1196	  1307	  1498	  1650	  1810	  2034
.CMACT	   462#
.CMBFP	   310	   334	   488	   501	   578	   583	   883	  1132	  1137	  1154
.CMCFM	   371	   449#
.CMCMA	   452#
.CMCNT	   315	   477	   478	   520	  1161
.CMDAT	   342                                                                                                             SEQ 0422
.CMDEF	   396
.CMDEV	   455#
.CMDIR	   450#
.CMFIL	   447#
.CMFLD	   448#
.CMFLG	   299	   318	   528
.CMFLT	   454#
.CMFNP	   336	   339	   341	   344	   370	   387	   543	   552
.CMGJB	   611	  1805	  1983
.CMHLP	  1020
.CMIFI	   445#
.CMINC	   317	   522	   542
.CMINI	   453#
.CMIOJ	   894	  1126	  1326	  1568
.CMKEY	   441#
.CMNOD	   463#
.CMNOI	   443#
.CMNUM	   442#
.CMNUX	   461#
.CMOFI	   446#
.CMPTR	   311	   316	   479	   521	  1162
.CMQST	   458#
.CMRTY	   309	   577	   881	  1131
.CMSWI	   444#
.CMTAD	   457#
.CMTOK	   460#
.CMTXT	   456#
.CMUQS	   459#
.CMUSR	   451#
.FDEXT	    19#	   615	   617	  1844	  1883	  1890	  1896
.FDLEN	  1809
.FDNAM	    18#	  1838	  1860	  1865	  1873
.FDPPN	    17#	  1829	  1855	  1926	  1932	  1936	  1943
.FDSTR	    16#	   612	   614	  1815	  1857	  1859	  1906	  1912	  1916	  1920
.INIT	  3142	  3222#
.IOASC	  2413
.LGEPC	  3212#	  3374	  3375
.LGERR	  3211#	  3376
.POPJ	  1053	  1079	  1312	  2868	  3163	  3388#
.PRIIN	    13#	  2693
.PRIOU	    14#	  1127	  2741
.RDBFP	   884	  2825
.RDBKL	   879	   886	  2790	  2830	  2833
.RDBRK	   885	  2921	  2925
.RDCWB	   880	  2640	  2663
.RDDBC	   889	   908	  2657	  2684	  2785	  2800
.RDDBP	   893	   906	   907	  2660	  2784	  2792	  2794	  2799	  2821	  2824	  2826	  3006	  3041	  3051
	  3056	  3083	  3088
.RDFLG	   878	   902	  2656	  2687	  2688	  2782	  2804	  2839	  2894	  2933	  2988	  3024	  3108
.RDIOJ	   895	  2692	  2740	  2841	  2844
.RDRTY	   882	  2834	  2837	  3021	  3039
.RDSIZ	   136	   164	  2635
.RETE	  3159	  3374#                                                                                                    SEQ 0423
.RETF	   567	  2542	  2737	  2945	  2985	  2990	  3158	  3386#
.RETT	   174	   283	   533	   997	  1103	  2140	  2188	  2449	  2473	  2502	  2509	  2588	  2589	  2590
	  2591	  2592	  2594	  2595	  2612	  2668	  2775	  2783	  2786	  2801	  2806	  2812	  2816	  2835
	  2840	  2845	  2855	  2856	  2879	  2890	  2895	  2899	  2906	  2911	  2918	  2928	  2941	  2991
	  3127	  3132	  3157	  3233	  3262	  3387#
.S%CMN	   276	   291#
.SACS	  3205#	  3420	  3421	  3422
.SAVE1	  1804	  2053	  2864	  3147	  3270#
.SAVE2	  3148	  3278#
.SAVE3	  3149	  3287#
.SAVE4	   292	  2202	  2535	  3150	  3297#
.SAVET	   294	  1323	  2130	  2184	  2634	  3151	  3313#
.SCODE	  3203#	  3425
.SERR	  3204#
.SOS	  3161	  3401#
.SPC	  3202#	  3429	  3450
.SPLIB	  3209#	  3229
.SPRGM	  3207#	  3223
.SPTBL	  3206#
.SPVER	  3208#	  3225
.STOP	   285	   286	   347	   403	   830	   897	  1152	  1467	  1561	  1585	  1712	  1867	  1941	  2262
	  2416	  2631	  2756	  2822	  2842	  3165	  3232	  3420#
.SV13	   293	  2203	  3152	  3333#
.SV14	   297	  3153	  3342#
.SV15	   295	  1099	  3154	  3351#
.SV16	   296	  1100	  2633	  2863	  3155	  3360#
.TCEOL	  2569#	  2878
.TOLCT	  2607
.TOSET	  2551	  2607
.TOTYP	  1148
.TOWID	  1332	  2551
.TT33	  2426	  2571
.TT35	  2572
.TT37	  2573
.TTEXE	  2574
.TTL30	  2577
.TTL36	  2578
.TTV05	  2575
.TTV50	  2499	  2576
.TTV52	  2500	  2579	  2580
.ZCHNK	  2637	  3145	  3253#
.ZERO	  3161	  3408#
.ZPAGA	  3143	  3247#
.ZPAGN	  3144	  3243#

CAXE	  1127	  2499	  2693	  2735	  2805	  2811	  2915	  3075
CAXN	  2500	  2814                                                                                                     SEQ 0424
EXIT	  3453
GETIT	    26#	  1879	  1880	  1902	  1903	  1922	  1923	  1945	  1946
GO	    23#	   282	  1833	  1835	  1837	  1843	  1877	  1887	  1900	  1919	  1940
HIBER	  2769
INCHRW	  1142	  2774
INSVL.	   619	  1961
IONDX.	   171	  2421
IORX	  2655
JUMPF	   624	   629	   900	  2730	  2735
JUMPT	  2722
JXE	   115#	   407	   785	  1209	  1225	  1229	  1239	  1310	  1657	  2236
JXN	   110#	   349	   538	  1200	  1203	  1249	  1256	  1262	  1304	  1395	  1555	  1640	  1643	  1677
	  1786	  1978	  2007	  2045	  2095	  2223	  2247	  2263	  2268	  2278
JXO	   120#	   599	  1973
LOAD	   336	   344	   370	   387	   543	   552	   611	  1805	  1983	  2782	  2804	  2851	  2988	  3024
	  3108
MOVX	   619	   873	   879	  1148	  1332	  1353	  1535	  1537	  1808	  2163	  2168	  2226	  2230	  2271
	  2287	  2290	  2426	  2551	  2607	  2686	  2690	  2731	  2768	  2838	  2893	  3026	  3109	  3228
	  3230	  3250
NOPARS	   104#	  1027	  1188	  1202	  1238	  1438	  1444	  1508	  1649	  1676	  2015	  2103
OP%%CA	  1127	  2499	  2500	  2693	  2735	  2805	  2811	  2814	  2915	  3075
OP%%TX	   365	   373	   375	   405	   407	   609	   716	   750	   777	   785	   800	   860	   863	  1218
	  1219	  1220	  1245	  1262	  1401	  1454	  1683	  2007	  2095	  2278
OPEN	  2413
OUTCHR	  1037	  1054	  1065	  1084	  1572	  2504	  2508	  2601	  2605	  2708	  2727	  2753	  2876	  2904
	  2905	  2910	  2917	  3063	  3111	  3128
OUTSTR	   185	   187	   188	  1057	  2878	  3014	  3036	  3070	  3077	  3131
PCRLF	   646	  3434#	  3452
PG2ADR	  3244
PJRST	   661	   672	   728	   762	   806	   825	   941	  1118	  2428	  2549	  2556	  3251
PJUMPN	  2990
PNT6F	  3433#	  3451
PNTALF	   648	  1869	  1892	  1914	  1934	  3431#	  3439	  3444	  3446	  3449
PNTCIF	  1886	  3435#
PNTSXF	  3432#	  3441
POINTR	   336	   337	   344	   370	   387	  2782	  2804	  2851	  2854	  2988	  3024	  3108
POS	   336	   337	   344	   370	   387	   619	  1961	  2782	  2804	  2851	  2854	  2988	  3024	  3108
PUT	    25#	  1871	  1872	  1894	  1895	  1909	  1910	  1929	  1930
RETSKP	   125#	   797	   801	   814	  1317	  1463	  1551	  1798	  1862	  2075
RTN	    24#	  1881	  1904	  1907	  1924	  1927	  1947
SAVE	   293	   295	   296	   297	  1099	  1100	  2203	  2633	  2863
SKPINC	  2765
STORE	   337	   618	   620	  1809	  1829	  1838	  1844	  1855	  1859	  1920	  1943	  2854
TRMOP.	  1151	  1334	  2554	  2610
TXC	   599	  1974
TXCN	   600	  1975
TXNE	   301	   373	   405	   407	   413	   511	   515	   699	   736	   773	   785	   796	   874	   876
	   903	   917	  1013	  1172	  1198	  1209	  1225	  1229	  1239	  1265	  1310	  1354	  1387	  1496
	  1657	  1701	  1961	  2029	  2031	  2114	  2236	  2282	  2284
TXNN	   349	   365	   375	   392	   538	  1015	  1200	  1204	  1220	  1249	  1260	  1262	  1304	  1399
	  1401	  1409	  1454	  1555	  1640	  1644	  1666	  1681	  1683	  1786	  1978	  2007	  2045	  2095
	  2223	  2247	  2263	  2268	  2278
TXO	   321	   326	   335	   399	   486	   499	   517	   546	   554	   564	   609	   650	   716	   750     SEQ 0425
	   772	   777	   800	   860	   863	   866	   877	  1171	  1219	  1234	  1245	  1411	  1779	  2655
TXZ	   319	   324	   325	   327	   333	   340	   527	   560	   875	   973	  1192	  1218
TXZA	   767
TXZE	   320	  1797
TXZN	   513	  1026
WID	   336	   337	   344	   370	   387	  2782	  2804	  2851	  2854	  2988	  3024	  3108
ZERO	  3256
$$DATA	    77#	   136	   138	   139	   140	   141	   142	   143	   144	   145	   146	   147	   148	   149
	   150	   151	   152	   153	   154	   155	   156	   157	   158	   159	   160	   161	   162	   163
	   164	   165	   166	  2373	  2375	  2376	  2377	  2378	  2379	  2380	  2381	  2382	  2384	  2385
$$GDAT	    81#	  3202	  3203	  3204	  3205	  3206	  3207	  3208	  3209	  3211	  3212
$C	   100#	  2368#	  2805	  2811	  2950	  2951	  2966	  2968	  2989	  2995	  2996	  2997
$RETF	   567	  2737	  2945
$RETT	   174	   283	   533	   997	  2140	  2188	  2449	  2473	  2502	  2509	  2612	  2668	  2775	  2786
	  2801	  2812	  2816	  2835	  2840	  2845	  2856	  2879	  2890	  2895	  2906	  2911	  2918	  2941
	  2991	  3132	  3233	  3262
$STOP	   285	   286	   347	   403	   830	   897	  1152	  1467	  1561	  1585	  1712	  1867	  1941	  2262
	  2416	  2631	  2756	  2822	  2842	  3232
.LDST.	   336	   337	   344	   370	   387	   543	   552	   611	   618	   620	  1805	  1809	  1829	  1838
	  1844	  1855	  1859	  1920	  1943	  1983	  2782	  2804	  2851	  2854	  2988	  3024	  3108
.SAVE.	   293	   295	   296	   297	  1099	  1100	  2203	  2633	  2863