Google
 

Trailing-Edge - PDP-10 Archives - bb-m403a-bk - parser.lst
There are 2 other files named parser.lst in the archive. Click here to see a list.
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44
TABLE OF CONTENTS

    35- 1467	DATAB  -- COMMAND PARSER IMPURE DATA BASE 7709.20
    36- 1605	.SSTTB -- SYNCHRONOUS SYSTEM TRAP VECTOR TABLE 7709.20
    37- 1656	DATAB  -- DTE-20 OPERATION BUFFERS 7709.20
    38- 1675	DATAB  -- INPUT / OUTPUT BUFFERS 7709.20
    39- 1691	DATAB  -- ASCII MESSAGES AND .RAD50 TABLES 7709.20
    40- 1731	.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14
    47- 2051	.CESCK -- SUBROUTINE TO CHECK FOR CLOCK ERROR STOP 7607.15
    48- 2107	.CKARG -- CHECK FOR ALPHANUMERIC ARGUMENT 7709.21
    49- 2146	.CKCOL -- CHECK FOR A EQUAL 7709.21
    50- 2181	.CKCTC -- CHECK FOR CONTROL-C TYPED 7601.28
    51- 2211	.CKEOC -- CHECK END OF COMMAND 7602.16
    52- 2249	.CKEOS -- CHECK END OF SYMBOL 7709.21
    53- 2277	.CKOBJ -- CHECK FOR A TRAILING OBJECT 7709.21
    54- 2304	.CKRUN -- SUBROUTINE TO CHECK IF THE KL IS RUNNING 7601.12
    55- 2355	.CKSYM -- FIND THE FIRST CHARACTER IN A SYMBOL 7709.21
    56- 2384	.EBPCK -- SUBROUTINE TO CHECK EBUS PARITY ERROR 7512.03
    57- 2448	.PARER -- ERROR DECODE AND PRINT ROUTINE 7609.24
    59- 2528	.PARER -- SPECIAL ERROR ROUTINES 7609.24
    64- 2672	.PTDIE -- RECURSIVE TRAP HANDLER 7609.24
    65- 2709	.PTTRP -- "TRAP" INSTRUCTION TRAP HANDLER 7609.24
    68- 2829	.PTOAT -- TRAP AT 4 TRAP HANDLER 7601.15
    69- 2922	FILE INTERFACE DATA
    70- 3020	.FNDIR -- ROUTINE TO FIND DIRECTORY FILE ID
    71- 3083	.LOKUP -- ROUTINE TO LOOK UP A FILE TO GET ITS FID
    72- 3147	.ENTER -- ROUTINE TO ENTER A FILE
    73- 3197	.OPEN -- ROUTINE TO OPEN A FILE
    74- 3252	.EXTND -- ROUTINE TO EXTEND A FILE
    75- 3301	.CLOSE -- ROUTINE TO CLOSE A FILE
    76- 3365	.SETFN -- ROUTINE TO SET A FILE NAME IN A FILE NAME BLOCK
    77- 3404	.READR -- ROUTINE TO READ A RECORD
    78- 3460	.READW -- READ A WORD FROM A FILE
    79- 3497	.READB -- READ A BYTE FROM A FILE
    80- 3530	.READ -- ROUTINE TO READ A BLOCK
    81- 3578	.WRITR -- ROUTINE TO WRITE A RECORD
    82- 3634	.WRITW -- WRITE A WORD TO A FILE
    83- 3670	.WRITB -- WRITE A BYTE TO A FILE
    84- 3701	.WRITZ -- WRITE OUT CURRENT BLOCK
    85- 3742	.WRITE -- ROUTINE TO WRITE A BLOCK
    88- 3823	.BURST -- MBOX CLOCK BURST SUBROUTINE 7601.02
    89- 3863	.CLDFB -- DTE-20 OPERATION BUFFER CLEAR SUBROUTINE 7508.26
    90- 3902	.CLRFF -- CLEAR KL RUN FLOP SUBROUTINE 7609.10
    92- 3959	.DTERW -- DTE-20 REGISTER READ / WRITE SUBROUTINES 7608.05
    96- 4099	.EBCLK -- SUBROUTINE TO SIMULATE AN EBOX CLOCK 7512.01
    98- 4163	.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24
   103- 4351	.EXCTF -- FAST INTERNAL EXECUTE 7602.17
   105- 4441	.FREAD -- DIAGNOSTIC FUNCTION READ SUBROUTINE 7609.15
   107- 4518	.FWRIT -- DIAGNOSTIC FUNCTION WRITE SUBROUTINE 7609.15
   109- 4615	.FXCT  -- DIAGNOSTIC FUNCTION EXECUTE SUBROUTINE 7609.15
   112- 4717	.KLCON -- KL CONTINUE SUBROUTINE 7710.11
   114- 4782	.KLHLT -- SUBROUTINE TO STOP THE KL IN THE HALT LOOP 7601.09
   116- 4872	.KLST  -- SUBROUTINE TO START THE KL 7512.08
   117- 4917	.KLSTP -- SUBROUTINE TO GET THE KL INTO THE HALT LOOP 7512.19
   118- 4966	.KLRST -- SUBROUTINE TO RESTART THE KL 7512.22
   120- 5025	.KLXCT -- KL INSTRUCTION EXECUTE SUBROUTINE 7509.10
   121- 5064	.LDBRG -- MBOX BURST COUNT LOAD SUBROUTINE 7601.02
   123- 5110	.LDCPC -- KL CLOCK AND PARITY LOAD SUBROUTINES 7509.30
   125- 5191	.LDCRA -- LOAD CRAM ADDRESS SUBROUTINE 7511.19
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44
TABLE OF CONTENTS

   127- 5245	.MRCLR -- KL MASTER RESET SUBROUTINE 7607.15
   129- 5316	.RDCPP -- SUBOUTINE TO READ THE KL CLOCK AND PARITY ENABLES 7510.09
   132- 5446	.RDCRD -- SUBROUTINE TO READ THE KL CRAM DISP FIELD 7511.22
   133- 5479	.RDCRM -- KL CONTROL RAM READ SUBROUTINE 7511.19
   135- 5572	.RDCRO -- SUBROUTINE TO READ THE KL CRAM OUTPUT 7511.05
   136- 5605	.RDFMA -- SUBROUTINE TO READ THE KL FM ADDRESS 7511.14
   137- 5653	.RDFMO -- SUBROUTINE TO READ KL FAST MEMORY OUTPUT 7708.30
   138- 5686	.RDFMP -- READ FM PARITY ERROR BIT
   139- 5719	.RDIPE -- READ KL INTERNAL PARITY ERROR FLAGS 7511.13
   140- 5770	.RESET -- KL RESET SUBROUTINES 7511.18
   142- 5843	.RESTD -- DTE-20 RESET SUBROUTINE 7607.20
   143- 5886	.RESTI -- RESET KL AND ENABLE NORMAL CLOCK AND PARITY 7607.19
   144- 5932	.RESTP -- RESET KL AND SAVE CURRENT CLOCK AND PARITY 7511.19
   146- 5982	.RSTKL -- SUBROUTINE TO RESTART THE KL 7611.17
   147- 6012	.STCLK -- START KL CLOCK SUBROUTINE 7607.15
   148- 6043	.STPKL -- SUBROUTINE TO STOP THE KL 7602.25
   149- 6073	.STPXC -- STOP KL CLOCK SUBROUTINE 7601.09
   150- 6107	.STRUN -- SET KL RUN FLOP SUBROUTINE 7601.09
   151- 6139	.STUCD -- START KL MICROCODE SUBROUTINE 7511.22
   153- 6210	.SYNXC -- SYNCH EBOX CLOCK SUBROUTINE 7509.03
   154- 6241	.WRTAR -- SUBROUTINE TO WRITE THE KL AR REGISTER 7511.05
   155- 6287	.WRCRM -- WRITE CONTROL RAM SUBROUTINE 7511.03
   156- 6409	.NULLC -- THE NULL COMMAND 7602.10
   158- 6451	.DOCMD -- DECODE A SINGLE COMMAND 7602.03
   160- 6525	.EXITP -- THE COMMAND PARSER EXIT POINT 7605.17
   161- 6578	.START -- COMMAND PARSER MAIN LOOP 7602.02
   162- 6604	.RGSAV -- R1 - R5 SAVE AND RESTORE SUBROUTINE 7509.16
   164- 6673	.TSCAN -- ROUTINE TO SCAN A SYMBOL TABLE 7703.25
   168- 6790	.SSCAN -- ROUTINE TO SCAN A SYMBOL 7601.14
   172- 6883	.REPTC -- THE "REPEAT" COMMAND 7703.25
   174- 6973	.CMDTB -- THE MAIN COMMAND TABLE 7703.25
   175- 7050	.DPETB -- THE DEPOSIT EXTENSION TABLE 7602.23
   176- 7065	.DPOTB -- THE DEPOSIT COMMAND TABLE 7602.23
   177- 7086	.EXETB -- THE EXAMINE EXTENSION TABLE 7602.16
   178- 7101	.EXMTB -- THE EXAMINE COMMAND TABLE 7703.25
   179- 7169	.KLMTB -- THE KLINIK MODE TABLE 7702.16
   180- 7187	.MONTB -- THE MONTH TABLE 7702.16
   181- 7218	.NSETB -- NORMAL ERROR CODE TABLE 7710.11
   182- 7318	.RESTB -- THE RESET COMMAND TABLE 7602.18
   183- 7339	.SCCTB -- THE "SET / CLEAR CLOCK" COMMAND TABLE 7603.12
   184- 7366	.SCMTB -- THE "SET / CLEAR MEMORY" COMMAND TABLE 7603.18
   185- 7375	.SCCOT -- THE "SET CONSOLE" COMMAND TABLE 7602.12
   186- 7388	.SCOTT -- THE "SET OUTPUT" COMMAND TABLE
   187- 7399	.SCPTB -- THE SET / CLEAR "PARITY-STOP" TABLE 7603.10
   188- 7418	.SETTB -- THE SET / CLEAR COMMAND TABLE 7703.25
   189- 7461	.SPETB -- SPECIAL ERROR CODE TABLE 7702.16
   190- 7480	.STRTB -- THE START COMMAND TABLE 7602.26
   191- 7489	.WHATB -- THE WHAT COMMAND TABLE 7703.25
   194- 7569	.SHIFT -- 16 BIT BY 16 BIT SHIFT OPERATIONS 7603.30
   195- 7610	.TPDIV -- 48 BIT INTEGER DIVIDE SUBROUTINE 7601.19
   198- 7706	.TPCLR -- SUBROUTINE TO CLEAR A 48 BIT NUMBER 7601.19
   199- 7758	.TPCMP -- SUBROUTINE TO COMPARE TWO 48 BIT NUMBERS 7610.19
   200- 7798	.TPTST -- TEST A 48 BIT NUMBER FOR ZERO 7601.19
   201- 7834	.TPADD -- SUBROUTINE TO ADD TWO 48 BIT NUMBERS 7601.15
   202- 7868	.TPINC -- SUBROUTINE TO INCREMENT A 48 BIT NUMBER 7601.19
   203- 7905	.TPSUB -- SUBROUTINE TO SUBTRACT TWO 48 BIT NUMBERS 7601.15
   204- 7945	.TPMUL -- 48 BIT INTEGER MULTPLY SUBROUTINE 7601.19
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44
TABLE OF CONTENTS

   207- 8023	.TPSHI -- SHIFT A 48 BIT NUMBER BY A 16 BIT NUMBER 7601.19
   208- 8073	.TPSHL -- SHIFT A 48 BIT NUMBER BY A 48 BIT NUMBER 7601.19
   211- 8171	.TRACK -- DIAGNOSTIC FUNCTION TRACK SUBROUTINE 7512.09
   213- 8254	.DTTRK -- SUBROUTINE TO TRACK DTE-20 OPERATIONS 7512.11
   216- 8343	.EDTRK -- EXAMINE / DEPOSIT TRACK SUBROUTINE 7512.09
   220- 8482	.GTCMD -- SUBROUTINE TO GET A COMMAND LINE 7601.22
   221- 8525	.GTLIN -- SUBROUTINE TO INPUT A LINE FROM THE CONSOLE 7601.22
   223- 8655	.ELNCK -- TEST FOR A LEGAL PDP-11 NUMBER 7611.01
   224- 8697	.GTELN -- SUBROUTINE TO GET A PDP-11 NUMBER 7602.05
   225- 8728	.GTKLA -- SUBROUTINE TO GET A 22 BIT KL ADDRESS 7602.05
   226- 8761	.GTNUM -- SUBROUTINE TO EVALUATE A NUMERIC EXPRESSION 7608.09
   228- 8846	.GTOPC -- KL I/O OPCODE DECODER FOR ".GTNUM"
   229- 8949	.GTEXP -- EXPRESSION EVALUATOR FOR ".GTNUM" 7603.03
   231- 9009	.GTTRM -- TERM EVALUATOR FOR ".GTNUM" 7603.03
   233- 9077	.GTFCT -- FACTOR EVALUATOR FOR ".GTNUM" 7603.03
   236- 9198	.GTNBR -- NUMBER EVALUATOR FOR ".GTNUM" 7603.03
   240- 9301	.TYAST -- SPECIAL CHARACTER OUTPUT SUBROUTINES 7601.23
   242- 9365	.TYACE -- TYPE AC ADDR AND CONTENTS
   243- 9438	.TYELA -- SUBROUTINE TO TYPE A PDP-11 ADDRESS 7601.23
   244- 9482	.TYP3D -- SUBROUTINE TO TYPE A THREE DIGIT NUMBER 7601.23
   245- 9528	.TYKLA -- SUBROUTINE TO TYPE A KL ADDRESS 7608.02
   246- 9570	.TYKLN -- SUBROUTINE TO TYPE A KL NUMBER 7608.02
   247- 9617	.TYNCM -- COMMON ENTRY POINT FOR ".TYNUM" 7601.23
   249- 9690	.TYNUM -- GENERAL SUBROUTINE TO TYPE A FORMATTED NUMBER 7601.23
   251- 9771	.TYLIN -- SUBROUTINE TO OUTPUT AN .ASCIZ MESSAGE AND A <CRLF> 7601.23
   252- 9818	.TFCHR -- SUBROUTINE TO FORCE A CHARACTER TO THE CONSOLE DEVICE 7601.23
   253- 9847	.TYCHR -- CONSOLE DEVICE OUTPUT SUBROUTINE 7601.23
   255- 9902	.TYOUT -- CONSOLE OUTPUT SUBROUTINE 7601.23
   257- 9972	.TYR50 -- TYPE A .RAD50 SYMBOL 7602.18
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 1


      1					.IIF NDF	FTLCMN,.NLIST
      2					.TITLE	DEFINE -- LOCAL DEFINITION MODULE 7709.20
      3
      4						.IDENT	"006270"
      5
      6					;
      7					;                             COPYRIGHT (C) 1979 BY
      8					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
      9					;
     10					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
     11					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
     12					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
     13					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
     14					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
     15					;
     16					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
     17					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
     18					;       CORPORATION.
     19					;
     20					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
     21					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
     22					;
     23					;		MODULE: LOCAL DEFINITIONS
     24					;
     25					;		VERSION: 06-27
     26					;
     27					;		AUTHOR: R. BELANGER
     28					;
     29					;		DATE: 7905.10
     30					;
     31					;	THIS MODULE CONTAINS:
     32					;
     33					;	1) LOCAL MACRO DEFINITIONS
     34					;	2) LOCAL ASSEMBLY SWITCHES
     35					;	3) LOCAL DEFINITIONS
     36					;	4) LOCAL EQUATED SYMBOLS
     37					;
     38					;	MODIFICATIONS:
     39					;
     40					;	NO.	DATE		PROGRAMMER	REASON
     41					;	---	----		----------	------
     42					;	001	11-DEC-77	A. PECKHAM	DELETE LOCAL DEFINITIONS
     43					;						OF PROTOCOL CHANGE AND
     44					;						CONTROL-C EVENT FLAGS
     45					;	002	16-FEB-77	R. BELANGER	REMOVE KLINIK CONDITIONALS
     46					;
     47					; SET VERSION OF THE PARSER HERE
     48					;
     49		000006 			PAR$$V	=	6		; VERSION 6
     50		000027 			PAR$$E	=	27		; EDIT 27
     51					;
     52					; THIS IS BEING EXPERIMENTED
     53					;
     54		000126 			PAR$$K	=	'V		; KEY FOR RELEASE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 2
DEFINE -- COMMAND PARSER ASSEMBLY SWITCHES 7709.20

     56					.SBTTL	DEFINE -- COMMAND PARSER ASSEMBLY SWITCHES 7709.20
     57
     58		000000 			FT1145=0			; ASSEMBLE FOR PDP-11/45 IF .NE. 0
     59		000001 			FT1140=1			; ASSEMBLE FOR PDP-11/40 IF .NE. 0
     60		000000 			FT1135=0			; ASSEMBLE FOR PDP-11/35 IF .NE. 0
     61		000000 			FT1120=0			; ASSEMBLE FOR PDP-11/20 IF .NE. 0
     62		000000 			FT1115=0			; ASSEMBLE FOR PDP-11/15 IF .NE. 0
     63		000000 			FT1110=0			; ASSEMBLE FOR PDP-11/10 IF .NE. 0
     64		000000 			FT1105=0			; ASSEMBLE FOR PDP-11/05 IF .NE. 0
     65		000000 			FTBYTE=0			; ASSEMBLE BYTE SUPPORT IF .NE 0
     66		000000 			FTCRAM=0			; ASSEMBLE CRAM FEATURES IF .NE. 0
     67		000001 			FTDEBUG=1			; ASSEMBLE DEBUG FEATURES IF .NE. 0
     68		000000 			FTDISP=0			; ASSEMBLE DISPATCH TABLE IF .NE 0
     69		000000 			FTDRAM=0			; ASSEMBLE DRAM FEATURES IF .NE. 0
     70		000000 			FTHELP=0			; ASSEMBLE HELP FEATURE IF .NE. 0
     71		000000 			FTKLER=0			; ASSEMBLE "KLERR" SUPPORT IF .NE. 0
     72		000000 			FTLCVT=0			; ASSEMBLE LOWER CASE SUPPORT IF .NE. 0
     73		000001 			FTLIST=1			; ASSEMBLE LPT SUPPORT IF .NE. 0
     74		000001 			FTTRAK=1			; ASSEMBLE TRACK FEATURE IF .NE. 0
     75		000001 			FTTRP4=1			; ASSEMBLE TRAP AT 4 CODE IF .NE. 0
     76		000130 			FTUCVR=130			; MICROCODE FEATURE SWITCH
     77		000001 			FTKLE=1				; KLERR SNAPSHOT SUPPORT FLAG
     78					;DEB880=0			; DEFINED IF DEBUGGING ON RSX-11M SYS880
     79
     80					.IF NE FT1145
     81						FT1140=1
     82					.ENDC		; FT1145
     83
     84					.IF NE FT1140
     85		000001 				FT1135=1
     86					.ENDC		; FT1140
     87
     88					.IF NE FT1135
     89		000001 				FT1120=1
     90					.ENDC		; FT1135
     91
     92					.IF NE FT1120
     93		000001 				FT1115=1
     94					.ENDC		; FT1135
     95
     96					.IF NE FT1115
     97		000001 				FT1110=1
     98					.ENDC		; FT1115
     99
    100					.IF NE FT1110
    101		000001 				FT1105=1
    102					.ENDC		; FT1110
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 3
DEFINE -- COMMAND PARSER MACRO CALLS 7709.20

    104					.SBTTL	DEFINE -- COMMAND PARSER MACRO CALLS 7709.20
    105
    106						.LIST	MEB, SYM
    107						.NLIST	CND
    108						.ENABL	AMA
    109
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 4
DEFINE -- LOCAL MACRO DEFINITIONS 7709.20

    114					.SBTTL	DEFINE -- LOCAL MACRO DEFINITIONS 7709.20
    115
    116					; SUBROUTINE CALL MACROS
    117
    118					.MACRO	CALL	REG,DEST
    119					.NTYPE	$$,REG
    120					.IF EQ	$$&70
    121						 JSR	REG,DEST
    122					.IFF
    123						 JSR	PC,REG
    124					.ENDC		; IF EQ
    125					.ENDM	CALL
    126
    127					.MACRO	CALLR	DEST
    128						 JMP	DEST
    129					.ENDM	CALLR
    130
    131					; STACK OPERATION MACROS
    132
    133					.MACRO	POP	ARG
    134					.IRP	A,<ARG>
    135						 MOV	(SP)+,A
    136					.ENDR
    137					.ENDM	POP
    138
    139					.MACRO	PUSH	ARG
    140					.IRP	A,<ARG>
    141						 MOV	A,-(SP)
    142					.ENDR
    143					.ENDM	PUSH
    144
    145					; SUBROUTINE RETURN MACRO
    146
    147					.MACRO	RETURN	REG
    148					.IF NB	<REG>
    149						 RTS	REG
    150					.IFF
    151						 RTS	PC
    152					.ENDC		; IF NB
    153					.ENDM	RETURN
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 5
DEFINE -- LOCAL MACRO DEFINITIONS 7709.20

    155					; DEFINE THE ERROR TRAP MACRO FOR ".PTTRP"
    156
    157					.MACRO	ERROR$	CODE
    158						 PUSH	#^R'CODE
    159						 TRAP	TC.ERR
    160					.ENDM	ERROR$
    161
    162					; DEFINE THE FATAL TRAP MACRO FOR ".PTTRP"
    163
    164					.MACRO	FATAL$	CODE
    165					FA$'CODE=.
    166						 PUSH	#^R'CODE
    167						 TRAP	TC.RST
    168					.ENDM	FATAL$
    169
    170					; DEFINE THE CONTINUE TRAP MACRO FOR ".PTTRP"
    171
    172					.MACRO	ERCON$	CODE
    173					EC$'CODE=.
    174						 PUSH	#^R'CODE
    175						 TRAP	TC.CON
    176						 TST	(SP)+
    177					.ENDM	ERCON$
    178
    179					; DEFINE THE COMMAND TABLE MACRO
    180
    181					.MACRO	COMND$	COMMAND,LGLBTS,DISPAT,NAM
    182					.PSECT	MESSAG
    183					.IF	NDF,NAM'MSG
    184					$$$'NAM=0
    185					NAM'MSG:: .ASCIZ	%COMMAND%
    186					.ENDC
    187					.IF	DF,$$PASS2
    188					$$$'NAM=$$$'NAM+1
    189					.IF	EQ,$$$'NAM-1
    190					NAM'MSG:: .ASCIZ	%COMMAND%
    191					.ENDC
    192					.ENDC
    193					.PSECT	DATA
    194						 .WORD	NAM'MSG		; POINTER TO "COMMAND" SYMBOL
    195						 .WORD	LGLBTS		; LEGAL BITS
    196						 .WORD	DISPAT		; ROUTINE TO CALL OR DATA
    197					.ENDM	COMND$
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 6
DEFINE -- LOCAL MACRO DEFINITIONS 7709.20

    199					; DEFINE THE NORMAL ERROR CODE MACRO
    200
    201					.MACRO	NSERR$	COD,STRING
    202					.PSECT	ERRMSG
    203					COD'ERM:	 .ASCIZ	%COD - STRING%
    204					.PSECT	DATA
    205						 .RAD50	/COD/		; "COD" IN .RAD50
    206						 .WORD	COD'ERM		; POINTER TO MESSAGE
    207					.ENDM	NSERR$
    208
    209					; DEFINE THE SPECIAL ERROR CODE MACRO
    210
    211					.MACRO	SPERR$	COD,STRING
    212					.PSECT	ERRMSG
    213					COD'ERM:
    214						 .ASCIZ	%COD - STRING%
    215					.PSECT	DATA
    216						 .RAD50	/COD/		; "COD" IN .RAD50
    217						 .WORD	.SE'COD		; DISPATCH TO HANDLER
    218						 .WORD	COD'ERM		; POINTER TO MESSAGE
    219					.ENDM	SPERR$
    220
    221					; DEFINE AN "EXCHANGE" MACRO
    222
    223					.MACRO	EXCH$	ARG1,ARG2
    224						 MOV	ARG1,-(SP)
    225						 MOV	ARG2,ARG1
    226						 MOV	(SP)+,ARG2
    227					.ENDM	EXCH$
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 7
DEFINE -- SPECIAL KL MACROS AND DEFINITIONS 7709.20

    229					.SBTTL	DEFINE -- SPECIAL KL MACROS AND DEFINITIONS 7709.20
    230
    231					; DEFINE KL I/O OPCODES
    232
    233		000000 			BLKI=0			; BLOCK IN
    234		000001 			DATAI=1			; DATA IN
    235		000002 			BLKO=2			; BLOCK OUT
    236		000003 			DATAO=3			; DATA OUT
    237		000004 			CONO=4			; CONDITIONS OUT
    238		000005 			CONI=5			; CONDITIONS IN
    239		000006 			CONSZ=6			;      "     "  SKIP IF ZERO
    240		000007 			CONSO=7			;      "     "   "   "  ONES
    241
    242					; DEFINE KL INTERNAL I/O DEVICES
    243
    244		000000 			APR=0			; ARITHMETIC PROCESSOR (ALU)
    245		000004 			PI=4			; PRIORITY INTERRUPT SYSTEM
    246		000010 			PAG=10			; PAGING SYSTEM
    247		000014 			CCA=14			; CACHE CONTROL
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 8
DEFINE -- SPECIAL KL MACROS AND DEFINITIONS 7709.20

    249					; DEFINE KL INSTRUCTION MACRO
    250
    251					.MACRO	IKL$	OP,DAC,DI,DAD,DXR
    252						ADH=0
    253						ADL=0
    254						.IF NB,DAD
    255							.IRPC AD1,DAD
    256								.IIF GE,<ADL-10000>,ADH=ADL/10000
    257							ADL=10*<ADL&7777>+AD1
    258							.ENDR
    259						.ENDC		; .IF NB
    260						.IIF B,DAC,AC=0
    261						.IIF NB,DAC,AC=DAC
    262						.IIF B,DI,I=0
    263						.IIF NB,DI,I=DI
    264						.IIF B,DXR,XR=0
    265						.IIF NB,DXR,XR=DXR
    266						$$A=<ADL&377>
    267						$$B=<<ADL/400>!<ADH*200&377>>
    268						$$C=<AC&1*200+<I*100+<XR*4>>+<ADH/2>>
    269						$$D=<OP&37*10+<AC/2>>
    270						$$E=<OP/40>
    271						$$F=0
    272						 .BYTE	$$A,$$B
    273						 .BYTE	$$C,$$D
    274						 .BYTE	$$E,$$F
    275					.ENDM	IKL$
    276
    277					; DEFINE KL I/O INSTRUCTION MACRO
    278
    279					.MACRO	IOKL$	OP,DDV,DI,DAD,DXR
    280						.IIF B,DI,I=0
    281						.IIF NB,DI,I=DI
    282						.IIF B,DXR,XR=0
    283						.IIF NB,DXR,XR=DXR
    284						ADH = 0
    285						ADL = 0
    286						.IRPC AD1,DAD
    287							.IIF GE,<ADL-10000>, ADH=ADL/10000
    288							ADL=10*<ADL&7777>+AD1
    289						.ENDR
    290						$$A=<ADL&377>
    291						$$B=<<ADL/400>!<ADH*200&377>>
    292						$$C=<OP&1*200+<I*100+<XR*4>>+<ADH/2>>
    293						$$D=<DDV&374+<OP/2>>
    294						$$E=<DDV/400+16>
    295						$$F=0
    296						 .BYTE	$$A,$$B
    297						 .BYTE	$$C,$$D
    298						 .BYTE	$$E,$$F
    299					.ENDM	IOKL$
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 9
DEFINE -- LOCAL DEFINITIONS 7709.20

    301					.SBTTL	DEFINE -- LOCAL DEFINITIONS 7709.20
    302
    303					; LOCAL DEFINITIONS
    304
    305		000001 			BIT00=000001			; DEFINE LOW BITS FOR SYMMETRY
    306		000002 			BIT01=000002
    307		000004 			BIT02=000004
    308		000010 			BIT03=000010
    309		000020 			BIT04=000020
    310		000040 			BIT05=000040
    311		000100 			BIT06=000100
    312		000200 			BIT07=000200
    313		000400 			BIT08=000400
    314		001000 			BIT09=001000
    315		002000 			BIT10=002000
    316		004000 			BIT11=004000
    317		010000 			BIT12=010000
    318		020000 			BIT13=020000
    319		040000 			BIT14=040000
    320		100000 			BIT15=100000
    321
    322					; DEFINE EXAMINE DEPOSIT MODE BYTES
    323
    324		000000 			ED.EPT=0*40			; EXEC PROCESS TABLE (RELATIVE)
    325		000040 			ED.EXV=1*40			; EXEC VIRTUAL SPACE
    326		000100 			ED.UPT=2*40			; USER PROCESS TABLE (RELATIVE)
    327		000140 			ED.USV=3*40			; USER VIRTUAL SPACE
    328		000200 			ED.PHY=4*40			; PHYSICAL ADDRESSES
    329
    330					; DEFINE BITS IN ".PEWRD"
    331
    332		000001 			PE.CES=1			; CLOCK ERROR STOP
    333		000002 			PE.DRM=2			; DRAM PARITY ERROR
    334		000004 			PE.CRM=4			; CRAM PARITY ERROR
    335		000010 			PE.FMP=10			; FAST MEMORY PARITY ERROR
    336		000020 			PE.FSS=20			; FIELD SERVICE STOP
    337		000037 			PE.ALL=PE.CES!PE.DRM!PE.CRM!PE.FMP!PE.FSS
    338
    339					; DEFINE BITS IN ".APRWD"
    340
    341		000001 			AP.PWF=1			; APR POWER FAIL
    342		000002 			AP.SAP=2			; APR SBUS ADDRESS PARITY ERROR
    343		000004 			AP.CDP=4			; APR CACHE DIRECTORY PARITY ERROR
    344		000010 			AP.MPE=10			; APR MB (MEMORY) PARITY ERROR
    345		000020 			AP.IPF=20			; APR I/O PAGE FAIL ERROR
    346		000040 			AP.NXM=40			; APR NON-EX-MEM ERROR
    347		000100 			AP.SBE=100			; APR SBUS ERROR
    348		000177 			AP.ALL=AP.PWF!AP.SAP!AP.CDP!AP.MPE!AP.IPF!AP.NXM!AP.SBE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 10
DEFINE -- LOCAL DEFINITIONS 7709.20

    350					; DEFINE OFFSETS INTO DTE-20 DIAG REGISTERS
    351
    352		000000 			.DIAG1=0			; DTE-20 DIAG1 WORD
    353		000002 			.DIAG2=2			; DTE-20 DIAG2 WORD
    354		000004 			.DTSTW=4			; DTE-20 STATUS WORD
    355		000006 			.DIAG3=6			; DTE-20 DIAG3 WORD
    356
    357					; DEFINE DTE-20 DIAG1 BITS
    358
    359		100000 			D1.DS0=BIT15			; DIAGNOSTIC SELECT CODE 00 [WRITE]
    360		040000 			D1.DS1=BIT14			;     "        "     "   01    "
    361		020000 			D1.DS2=BIT13			;     "	       "     "   02    "
    362		010000 			D1.DS3=BIT12			;     "	       "     "   03    "
    363		004000 			D1.DS4=BIT11			;     "	       "     "   04    "
    364		002000 			D1.DS5=BIT10			;     "        "     "   05    "
    365		001000 			D1.DS6=BIT09			;     "        "     "   06    "
    366		004000 			D1.CES=BIT11			; KL CLOCK ERROR STOP [READ]
    367		002000 			D1.RUN=BIT10			; KL RUN FLAG [READ]
    368		001000 			D1.HLP=BIT09			; KL IS IN HALT LOOP [READ]
    369		000400 			D1.DEX=BIT08			; DTE-20 IS IN DEPOSIT / EXAMINE STATE [READ]
    370		000200 			D1.T10=BIT07			; DTE-20 IS IN TO KL STATE [READ]
    371		000200 			D1.LBK=BIT07			; PUT DTE-20 IN LOOPBACK MODE [WRITE]
    372		000100 			D1.T11=BIT06			; DTE-20 IS IN TO 11 STATE [READ]
    373		000040 			D1.DDT=BIT05			; SET DTE-20 DIAGNOSTIC MODE [WRITE]
    374									; DTE-20 IS IN DIAGNOSTIC MODE [READ]
    375		000020 			D1.V04=BIT04			; VECTOR INTERRUPT ADDRESS BIT 04 [READ]
    376		000020 			D1.PLS=BIT04			; GENERATE A CLOCK CYCLE IF D1.DDT SET [WRITE]
    377		000010 			D1.DFM=BIT03			; CHANGE EX / DEP TO DIAG FUNCTIONS IF PRIVILEGED [WRITE]
    378		000004 			D1.XFR=BIT02			; SEND DATA TO KL IF = 1 [READ]
    379									; RECEIVE DATA FROM KL IF = 0 [READ]
    380
    381					; BIT 01 IS UNUSED [MBZ]
    382
    383		000001 			D1.DCS=BIT00			; DIAG COMMAND IN PROGRESS [READ]
    384									; SET DIAGNOSTIC COMMAND START IF = 1 [WRITE]
    385									; CLEAR DIAGNOSTIC COMMAND START IF = 0 [WRITE]
    386		000442 			D1.MBZ=D1.DEX!D1.DDT!BIT01	; MUST BE ZERO ON WRITE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 11
DEFINE -- LOCAL DEFINITIONS 7709.20

    388					; DEFINE DTE-20 DIAG2 BITS
    389
    390		100000 			D2.RA0=BIT15			; RFM ADDRESS BIT 0 [READ]
    391		040000 			D2.RA1=BIT14			; RFM ADDRESS BIT 1 [READ]
    392		040000 			D2.EBD=BIT14			; SET EBUS DONE IF = 1 [WRITE]
    393									; CLEAR EBUS DONE IF = 0 [WRITE]
    394		020000 			D2.RA2=BIT13			; RFM ADDRESS BIT 2 [READ]
    395
    396					; BITS 11 THRU 7 ARE UNUSED [MBZ]
    397
    398		000100 			D2.RST=BIT06			; RESET THE DTE-20 IF = 1 [WRITE]
    399
    400					; BIT 5 IS UNUSED [MBZ]
    401
    402		000020 			D2.MS8=BIT04			; MINOR STATE COUNTER BIT 8 [WRITE]
    403		000010 			D2.MS4=BIT03			;   "	  "	 "     "  4    "
    404		000004 			D2.MS2=BIT02			;   "	  "	 "     "  2    "
    405		000002 			D2.MS1=BIT01			;   "     "	 "     "  1    "
    406
    407					; BIT 0 IS UNUSED [MBZ]
    408
    409		177641 			D2.MBZ=BIT15!BIT14!BIT13!BIT12!BIT11!BIT10!BIT09!BIT08!BIT07!BIT05!BIT00
    410
    411					; DEFINE DTE-20 DIAG3 BITS
    412
    413		100000 			D3.SSL=BIT15			; SWAP SELECT LEFT [READ]
    414		040000 			D3.PAR=BIT14			; PARITY FLOP [READ]
    415
    416					; BITS 13 THRU 08 ARE UNIBUS PARITY ERROR INFO [READ]
    417
    418					; BITS 07 AND 06 ARE UNUSED [MBZ]
    419
    420		000040 			D3.SCD=BIT05			; SHIFT DATA IN 13-08 FOR NEXT READ [WRITE]
    421		000020 			D3.UPE=BIT04			; DATO UNIBUS PARITY ERROR (DUPE) [READ]
    422		000020 			D3.CDD=BIT04			; CLEAR DUPE AND DURE FLAGS
    423		000010 			D3.WEP=BIT03			; WRITE EVEN UNIBUS PARITY FLOP [READ]
    424									; WRITE EVEN UNIBUS PARITY IF = 1 [WRITE]
    425									; WRITE ODD (GOOD) UNIBUS PARITY IF = 0 [WRITE]
    426		000004 			D3.URE=BIT02			; DATO UNIBUS RECEIVE ERROR FLAG (DURE) [READ]
    427		000002 			D3.NPE=BIT01			; NPR UNIBUS PARITY ERROR FLAG (NUPE) [READ]
    428									; CLEAR NUPE [WRITE]
    429		000001 			D3.TXB=BIT00			; SET TO KL BYTE TRANSFER MODE [WRITE]
    430
    431		177704 			D3.MBZ=BIT15!BIT14!BIT13!BIT12!BIT11!BIT10!BIT09!BIT08!BIT07!BIT06!BIT02
    432
    433		000001 			D3.RST=D3.TXB			; DIAG WORD 3 RESET BIT
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 12
DEFINE -- LOCAL DEFINITIONS 7709.20

    435					; DEFINE DTE-20 STATUS BITS
    436
    437		100000 			ST.TXD=BIT15			; TO KL TRANSFER DONE FLAG [READ]
    438									; SET TO KL TRANSFER DONE [WRITE]
    439		040000 			ST.CTD=BIT14			; CLEAR TO KL TRANSFER DONE FLAG [WRITE]
    440		020000 			ST.TXE=BIT13			; TO KL ERROR DONE FLAG [READ]
    441									; SET TO KL ERROR DONE FLAG [WRITE]
    442		010000 			ST.RIZ=BIT12			; DTE-20 RAM LOCATION IS ZEROES [READ]
    443		010000 			ST.CTE=BIT12			; CLEAR TO KL ERROR DONE FLAG [WRITE]
    444		004000 			ST.EDB=BIT11			; 11 DOORBELL FLAG [READ]
    445									; SET THE 11 DOORBELL FLAG [WRITE]
    446		002000 			ST.DW1=BIT10			; YES, THIS BIT IS HERE
    447		001000 			ST.MPE=BIT09			; 11 MEMORY PARITY ERROR DURING TO KL XFER [READ]
    448									; CLEAR ST.MPE [WRITE]
    449		000400 			ST.XDB=BIT08			; KL DOORBELL FLAG [READ]
    450									; RING THE KL DOORBELL [WRITE]
    451		000200 			ST.TED=BIT07			; TO 11 TRANSFER DONE FLAG [READ]
    452									; SET ST.TED [WRITE]
    453		000100 			ST.EBS=BIT06			; E BUFFER SELECT [READ]
    454		000100 			ST.CED=BIT06			; CLEAR ST.TED [WRITE]
    455		000040 			ST.NST=BIT05			; TO 11 XFER STOPPED BECAUSE STOP BIT WAS SET [READ]
    456		000040 			ST.IEN=BIT05			; ENABLE DTE-20 TO GENERATE BR REQUESTS IF = 1
    457		000020 			ST.EPE=BIT04			; EBUS PARITY ERROR FLAG [READ]
    458									; CLEAR EBUS PARITY ERROR FLAG IF = 1 [WRITE]
    459		000010 			ST.MOD=BIT03			; DTE-20 IS PRIVILEGED IF = 0 [READ]
    460									;    "	 "  RESTRICTED "  " 1   "
    461		000010 			ST.IDS=BIT03			; DISABLE DTE-20 BR REQUESTS [WRITE]
    462		000004 			ST.DXD=BIT02			; DEPOSIT / EXAMINE DONE FLAG [READ]
    463		000004 			ST.SEP=BIT02			; SET EBUS PARITY ERROR IF = 1 [WRITE]
    464		000002 			ST.TER=BIT01			; TO 11 BYTE XFER ERROR FLAG [READ]
    465		000002 			ST.STE=BIT01			; SET ST.TER IF = 1 [WRITE]
    466		000001 			ST.ION=BIT00			; 11 CAN GENERATE BR REQUESTS [READ]
    467		000001 			ST.CLE=BIT00			; CLEAR ST.TER IF = 1 [WRITE]
    468
    469		011121 			ST.RST=ST.CTE!ST.MPE!ST.CED!ST.EPE!ST.CLE
    470
    471		000000 			ST.MBZ=0			; BIT MASK FOR WRITE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 13
DEFINE -- LOCAL DEFINITIONS 7709.20

    473					; DEFINE FLAG BITS IN ".KLFLG"
    474
    475		100000 			KF.CLK=BIT15			; KL CLOCK IS RUNNING IF .NE. 0
    476		040000 			KF.RUN=BIT14			; KL RUN FLOP IS ON IF .NE. 0
    477		020000 			KF.MRS=BIT13			; KL MASTER RESET FLOP IS ON IF .NE. 0
    478		010000 			KF.SIM=BIT12			; KL IS IN SINGLE INSTRUCTION MODE IF .NE. 0
    479		004000 			KF.SMC=BIT11			; KL IS IN SINGLE PULSE MBOX MODE IF .NE. 0
    480		002000 			KF.SPM=BIT10			;  "   "  "    "      "   EBOX	"   "   "   "
    481		001000 			KF.BRM=BIT09			; KL IS IN BURST MODE IF .NE. 0
    482		000400 			KF.KLO=BIT08			; KL IS IN KL INSTRUCTION MODE IF .NE. 0
    483		000200 			KF.CON=BIT07			; KL IS CONTINUABLE IF .NE. 0
    484		000100 			KF.CES=BIT06			; KL IS IN CLOCK ERROR STOP STATE IF .NE. 0
    485		000200 			KF.DEF=KF.CON			; DEFAULT FLAGS (SEE ".INKLF")
    486
    487					; DEFINE BITS IN ".TRKWD"
    488
    490		000001 			TR.FXC=BIT00			; TRACK FUNCTION EXECUTES IF .NE. 0
    491		000002 			TR.FRD=BIT01			; TRACK FUNCTION READS IF .NE. 0
    492		000004 			TR.FWR=BIT02			; TRACK FUNCTION EXECUTES IF .NE. 0
    493		000010 			TR.EXM=BIT03			; TRACK MEMORY EXAMINES IF .NE. 0
    494		000020 			TR.DEP=BIT04			; TRACK MEMORY DEPOSITS IF .NE. 0
    495		000040 			TR.DTE=BIT05			; TRACK DTE-20 OPERATIONS IF .NE. 0
    496		000077 			TR.ALL=TR.FXC!TR.FRD!TR.FWR!TR.EXM!TR.DEP!TR.DTE
    498
    499					; DEFINE KL PC FLAGS (FROM "C.MAC" V. 1, EDIT 24 7511.25)
    500
    501		010000 			PC.OVF=BIT12			; KL OVERFLOW FLAG (BIT 00)
    502		004000 			PC.CY0=BIT11			; KL CARRY 0 FLAG (BIT 01)
    503		002000 			PC.CY1=BIT10			; KL CARRY 1 FLAG (BIT 02)
    504		001000 			PC.FOV=BIT09			; KL FLOATING OVERFLOW FLAG (BIT 03)
    505		000400 			PC.BIS=BIT08			; KL BYTE INCREMENT SUPPRESSION FLAG (BIT 04)
    506		000200 			PC.USR=BIT07			; KL USER MODE FLAG (BIT 05)
    507		000100 			PC.UIO=BIT06			; KL USER IOT MODE FLAG (BIT 06)
    508		000040 			PC.LIP=BIT05			; KL LAST INSTRUCTION PUBLIC FLAG (BIT 07)
    509		000020 			PC.AFI=BIT04			; KL ADDRESS FAILURE INHIBIT FLAG (BIT 08)
    510		000010 			PC.AT1=BIT03			; KL APR TRAP 1 FLAG (BIT 09)
    511		000004 			PC.AT0=BIT02			; KL APR TRAP 0 FLAG (BIT 10)
    512		000002 			PC.FUF=BIT01			; KL FLOATING UNDERFLOW FLAG (BIT 11)
    513		000001 			PC.NDV=BIT00			; KL NO DIVIDE FLAG (BIT 12)
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 14
DEFINE -- LOCAL DEFINITIONS 7709.20

    515					; DEFINE DIAGNOSTIC FUNCTION EXECUTE CODES
    516
    517		000000 			FX.000=0
    518		000000 				FX.CSP=FX.000		; STOP THE KL CLOCK
    519		000002 			FX.001=1*2
    520		000002 				FX.CST=FX.001		; START THE KL CLOCK
    521		000004 			FX.002=2*2
    522		000004 				FX.MBC=FX.002		; PULSE THE MBOX CLOCK
    523		000006 			FX.003=3*2
    524		000006 				FX.EBC=FX.003		; PULSE THE EBOX CLOCK
    525		000010 			FX.004=4*2
    526		000010 				FX.SYC=FX.004		; SYNCH THE EBOX CLOCK LOW
    527		000012 			FX.005=5*2
    528		000012 				FX.BMC=FX.005		; BURST THE MBOX CLOCK
    529		000014 			FX.006=6*2
    530		000014 				FX.CMR=FX.006		; CLEAR MASTER RESET STATE
    531		000016 			FX.007=7*2
    532		000016 				FX.SMR=FX.007		; SET MASTER RESET STATE
    533
    534		000020 			FX.010=10*2
    535		000020 				FX.CRF=FX.010		; CLEAR THE KL RUN FLOP
    536		000022 			FX.011=11*2
    537		000022 				FX.SRF=FX.011		; SET THE KL RUN FLOP
    538		000024 			FX.012=12*2
    539		000024 				FX.CON=FX.012		; SET THE KL CONTINUE FLOP
    540		000026 			FX.013=13*2
    541		000030 			FX.014=14*2
    542		000030 				FX.UIR=FX.014		; UNLATCH THE IR
    543		000032 			FX.015=15*2
    544		000032 				FX.UDR=FX.015		; UNLATCH THE DRAM REGISTER
    545		000034 			FX.016=16*2
    546		000036 			FX.017=17*2
    547
    548		000040 			FX.020=20*2
    549		000042 			FX.021=21*2
    550		000044 			FX.022=22*2
    551		000046 			FX.023=23*2
    552		000050 			FX.024=24*2
    553		000052 			FX.025=25*2
    554		000054 			FX.026=26*2
    555		000056 			FX.027=27*2
    556
    557		000060 			FX.030=30*2
    558		000062 			FX.031=31*2
    559		000064 			FX.032=32*2
    560		000066 			FX.033=33*2
    561		000070 			FX.034=34*2
    562		000072 			FX.035=35*2
    563		000074 			FX.036=36*2
    564		000076 			FX.037=37*2
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 15
DEFINE -- LOCAL DEFINITIONS 7709.20

    566					; DEFINE DIAGNOSTIC FUNCTION WRITE CODES
    567
    568		000100 			FW.040=40*2
    569		000102 			FW.041=41*2
    570		000104 			FW.042=42*2
    571		000104 				FW.LBR=FW.042		; LOAD BURST COUNTER RIGHT 4 BITS
    572		000106 			FW.043=43*2
    573		000106 				FW.LBL=FW.043		; LOAD BURST COUNTER LEFT 4 BITS
    574		000110 			FW.044=44*2
    575		000110 				FW.CSR=FW.044		; LOAD THE KL CLOCK SOURCE AND RATE
    576
    577					; CLOCK SOURCE AND RATE CODES, EBUS 32-33 AND 34-35, RESPECTIVELY,
    578					; IN LOW BYTE OF CLOCK CONTROL WORD (".CLKWD").
    579
    580		000000 				CS.NRM=0&14		; KL NORMAL CLOCK SOURCE (EBUS 32-33)
    581		000004 				CS.CS1=4&14		; KL CLOCK SOURCE 1
    582		000010 				CS.CS2=10&14		; KL CLOCK SOURCE 2
    583		000004 				CS.FST=4&14		; KL FAST CLOCK SOURCE
    584		000004 				CS.MGN=CS.FST		; KL MARGIN CLOCK SOURCE
    585		000010 				CS.EXT=10&14		; KL EXTERNAL CLOCK SOURCE
    586		000014 				CS.UDF=14&14		; UNDEFINED (DEFAULT TO FAST)
    587		000014 				CS.ALL=CS.CS1!CS.CS2	; CLOCK SOURCE BIT MASK
    588
    589		000000 				CR.NRM=0&3		; KL NORMAL CLOCK SOURCE (EBUS 34-35)
    590		000001 				CR.CR1=1&3		; KL CLOCK RATE 1
    591		000002 				CR.CR2=2&3		; KL CLOCK RATE 2
    592		000000 				CR.FUL=0&3		; KL CLOCK FULL SPEED
    593		000001 				CR.HLF=1&3		;  "	 "   HALF   "
    594		000002 				CR.QTR=2&3		;  "	 "   QRTR   "
    595		000003 				CR.SLO=3&3		;  "	 "   SLOW   "
    596		000003 				CR.ALL=CR.CR1!CR.CR2	; CLOCK RATE BIT MASK
    597
    598		000112 			FW.045=45*2
    599		000112 				FW.CDR=FW.045		; LOAD THE KL CLOCK DISTRIBUTION REGISTER
    600
    601					; CLOCK DISTRIBUTION DISABLE CODES, EBUS 33-35 TO THE KL, ALSO IN
    602					; THE HIGH BYTE OF THE CLOCK CONTROL WORD (".CLKWD").
    603
    604		002000 				CD.CRC=<4&7>*400	; DISABLE CONTROL RAM CLOCKS
    605		001000 				CD.DPC=<2&7>*400	; DISABLE DATA PATHS CLOCKS
    606		000400 				CD.CLC=<1&7>*400	; DISABLE CONTROL LOGIC CLOCKS
    607		000000 				CD.NRM=<0&7>*400	; NORMAL CLOCK ENABLES
    608		003400 				CD.ALL=<7&7>*400	; CLOCK DISABLE BIT MASK
    609
    610		000000 			CC.NRM=0			; NORMAL CLOCK CONTROL WORD
    611		003417 			CC.ALL=CS.ALL!CR.ALL!CD.ALL	; CLOCK CONTROL BIT MASK
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 16
DEFINE -- LOCAL DEFINITIONS 7709.20

    613		000114 			FW.046=46*2
    614		000114 				FW.IPE=FW.046		; LOAD INTERNAL PARITY ENABLES
    615
    616					; INTERNAL KL PARITY ENABLE CODES, EBUS 32 - 35 TO THE KL,
    617					; ALSO IN LOW BYTE OF THE PARITY STOP CONTROL WORD (".PSCWD").
    618
    619		000010 				IP.FMP=10&17		; FAST MEMORY PARITY STOP ENABLE
    620		000004 				IP.CRP=4&17		; CRAM PARITY STOP ENABLE
    621		000002 				IP.DRP=2&17		; DRAM PARITY STOP ENABLE
    622		000001 				IP.FSS=1&17		; FIELD SERVICE STOP ENABLE
    623		000016 				IP.NRM=IP.FMP!IP.CRP!IP.DRP
    624		000017 				IP.ALL=IP.NRM!IP.FSS
    625
    626		000116 			FW.047=47*2
    627		000116 				FW.APE=FW.047		; LOAD AR/ARX PARITY ENABLES (ET AL.)
    628
    629					; INTERNAL KL PARITY STOP CODES, EBUS 32 - 35 TO KL, "AP.EIP" MUST
    630					; BE SET TO ALLOW "IP.XXX" CONDITIONS TO STOP THE KL CLOCK
    631					; MAINTAINED IN HIGH BYTE OF THE PARITY STOP CONTROL WORD (".PSCWD").
    632
    633		001000 				AP.ARP=<2&17>*400	; ALLOW AR/ARX PARITY TO CAUSE A
    634									; PAGE FAIL TRAP IN THE KL
    635		000400 				AP.EIP=<1&17>*400	; ENABLE INTERNAL PARITY ENABLES TO
    636									; STOP THE KL CLOCK
    637		001400 				AP.NRM=AP.EIP!AP.ARP	; NORMAL PARITY STOP ENABLES
    638
    639		001416 			PS.NRM=AP.NRM!IP.NRM		; NORMAL PARITY STOP CONTROL WORD
    640
    641		000120 			FW.050=50*2
    642		000122 			FW.051=51*2
    643		000122 				FW.CA1=FW.051		; LOAD LOW CRAM ADDRESS
    644		000124 			FW.052=52*2
    645		000124 				FW.CA2=FW.052		; LOAD HIGH CRAM ADDRESS
    646		000126 			FW.053=53*2
    647		000126 				FW.CRD=FW.053		; LOAD CRAM DISPATCH
    648		000130 			FW.054=54*2
    649		000130 				FW.CR4=FW.054		; LOAD CRAM BITS 60 THRU 78
    650		000132 			FW.055=55*2
    651		000132 				FW.CR3=FW.055		; LOAD CRAM BITS 40 THRU 59
    652		000134 			FW.056=56*2
    653		000134 				FW.CR2=FW.056		; LOAD CRAM BITS 20 THRU 39
    654		000136 			FW.057=57*2
    655		000136 				FW.CR1=FW.057		; LOAD CRAM BITS 00 THRU 19
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 17
DEFINE -- LOCAL DEFINITIONS 7709.20

    657		000140 			FW.060=60*2
    658		000140 				FW.DR1=FW.060		; LOAD DRAM A AND B EVEN
    659		000142 			FW.061=61*2
    660		000142 				FW.DR2=FW.061		; LOAD DRAM A AND B ODD
    661		000144 			FW.062=62*2
    662		000144 				FW.DR3=FW.062		; LOAD DRAM J COMMON
    663		000146 			FW.063=63*2
    664		000146 				FW.DJE=FW.063		; LOAD DRAM J EVEN
    665		000150 			FW.064=64*2
    666		000150 				FW.DJO=FW.064		; LOAD DRAM J ODD
    667		000152 			FW.065=65*2
    668		000152 				FW.IOJ=FW.065		; DISABLE SPECIAL DECODE OF I/O AND JRST
    669		000154 			FW.066=66*2
    670		000154 				FW.IAC=FW.066		; DISABLE IR AC OUTPUTS
    671		000156 			FW.067=67*2
    672		000156 				FW.KLO=FW.067		; ENABLE KL OPCODES AND ACS
    673
    674		000160 			FW.070=70*2
    675		000160 				FW.CHN=FW.070		; CHANNEL CONTROL FUNCTIONS
    676		000162 			FW.071=71*2
    677		000162 				FW.MBX=FW.071		; MBOX CONTROL FUNCTIONS
    678		000164 			FW.072=72*2
    679		000166 			FW.073=73*2
    680		000170 			FW.074=74*2
    681		000172 			FW.075=75*2
    682		000174 			FW.076=76*2
    683		000174 				FW.EBL=FW.076		; EBUS REGISTER LOAD FUNCTION
    684		000174 				FW.SBR=FW.076		; SBUS RESET FUNCTION
    685		000176 			FW.077=77*2
    686		000176 				FW.LAR=FW.077		; LOAD AR REGISTER
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 18
DEFINE -- LOCAL DEFINITIONS 7709.20

    688					; DEFINE DIAGNOSTIC FUNCTION READ CODES
    689
    690		000200 			FR.100=100*2
    691		000200 				FR.PI0=FR.100		; PI BOARD READ 0
    692		000202 			FR.101=101*2
    693		000202 				FR.PI1=FR.101		; PI BOARD READ 1
    694		000204 			FR.102=102*2
    695		000206 			FR.103=103*2
    696		000210 			FR.104=104*2
    697		000212 			FR.105=105*2
    698		000214 			FR.106=106*2
    699		000216 			FR.107=107*2
    700
    701		000220 			FR.110=110*2
    702		000220 				FR.APR=FR.110		; APR STATUS
    703		000222 			FR.111=111*2
    704		000224 			FR.112=112*2
    705		000226 			FR.113=113*2
    706		000230 			FR.114=114*2
    707		000232 			FR.115=115*2
    708		000234 			FR.116=116*2
    709		000236 			FR.117=117*2
    710
    711		000240 			FR.120=120*2
    712		000240 				FR.RAR=FR.120		; ARITHMETIC REGISTER [AR 00 - 35]
    713		000242 			FR.121=121*2
    714		000242 				FR.RBR=FR.121		; BUFFER REGISTER [BR 00 - 35]
    715		000244 			FR.122=122*2
    716		000244 				FR.RMQ=FR.122		; MQ REGISTER [MQ 00 - 35]
    717		000246 			FR.123=123*2
    718		000246 				FR.RFM=FR.123		; FM REGISTER [FM 00 - 35]
    719		000250 			FR.124=124*2
    720		000250 				FR.BRX=FR.124		; BR EXTENSION REGISTER [BRX 00 - 35]
    721		000252 			FR.125=125*2
    722		000252 				FR.ARX=FR.125		; AR EXTENSION REGISTER [ARX 00 - 35]
    723		000254 			FR.126=126*2
    724		000254 				FR.ADX=FR.126		; AD EXTENSION REGISTER [ADX 00 - 35]
    725		000256 			FR.127=127*2
    726		000256 				FR.RAD=FR.127		; ADDER REGISTER [AD 00 - 35]
    727
    728		000260 			FR.130=130*2
    729		000260 				FR.SC2=FR.130		; SHIFT COUNT REGISTER 2
    730		000260 				FR.DA1=FR.130		; DRAM ADDR 1
    731		000262 			FR.131=131*2
    732		000262 				FR.SC1=FR.131		; SHIFT COUNT REGISTER 1
    733		000262 				FR.DA2=FR.131		; DRAM ADDR 2
    734		000264 			FR.132=132*2
    735		000264 				FR.FE2=FR.132		; FLOATING EXPONENT REGISTER 2
    736		000266 			FR.133=133*2
    737		000266 				FR.FE1=FR.133		; FLOATING EXPONENT REGISTER 1
    738		000270 			FR.134=134*2
    739		000272 			FR.135=135*2
    740		000274 			FR.136=136*2
    741		000276 			FR.137=137*2
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 19
DEFINE -- LOCAL DEFINITIONS 7709.20

    743		000300 			FR.140=140*2
    744		000302 			FR.141=141*2
    745		000302 				FR.CRD=FR.141		; READ CRAM DISP FIELD
    746		000304 			FR.142=142*2
    747		000304 				FR.SR2=FR.142		; CRAM SBR RET 2
    748		000306 			FR.143=143*2
    749		000306 				FR.SR1=FR.143		; CRAM SBR RET 1
    750		000310 			FR.144=144*2
    751		000310 				FR.CA2=FR.144		; READ CRAM ADDRESS LOW
    752		000310 				FR.CR4=FR.CA2		; CRAM DATA 60 - 78
    753		000312 			FR.145=145*2
    754		000312 				FR.CA1=FR.145		; READ CRAM ADDRESS HIGH
    755		000312 				FR.CR3=FR.CA1		; CRAM DATA 40 - 59
    756		000314 			FR.146=146*2
    757		000314 				FR.CR2=FR.146		; CRAM DATA 20 - 39
    758		000314 				FR.CL2=FR.CR2		; CRAM LOC 05 - 10
    759		000316 			FR.147=147*2
    760		000316 				FR.CR1=FR.147		; CRAM DATA 00 - 19
    761		000316 				FR.CL1=FR.CR1		; CRAM LOC 00 - 04
    762
    763		000320 			FR.150=150*2
    764		000320 				FR.VM0=FR.150		; VMA REGISTER 0
    765		000322 			FR.151=151*2
    766		000322 				FR.VM1=FR.151		; VMA REGISTER 1
    767		000324 			FR.152=152*2
    768		000324 				FR.VM2=FR.152		; VMA REGISTER 2
    769		000326 			FR.153=153*2
    770		000326 				FR.VM3=FR.153		; VMA REGISTER 3
    771		000330 			FR.154=154*2
    772		000330 				FR.VM4=FR.154		; VMA REGISTER 4
    773		000332 			FR.155=155*2
    774		000332 				FR.VM5=FR.155		; VMA REGISTER 5
    775		000334 			FR.156=156*2
    776		000334 				FR.VM6=FR.156		; VMA REGISTER 6
    777		000336 			FR.157=157*2
    778		000336 				FR.VM7=FR.157		; VMA REGISTER 7
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 20
DEFINE -- LOCAL DEFINITIONS 7709.20

    780		000340 			FR.160=160*2
    781		000342 			FR.161=161*2
    782		000344 			FR.162=162*2
    783		000346 			FR.163=163*2
    784		000350 			FR.164=164*2
    785		000352 			FR.165=165*2
    786		000354 			FR.166=166*2
    787		000356 			FR.167=167*2
    788		000356 				FR.EBS=FR.167		; [EBUS REG 00 THRU 35]
    789
    790		000360 			FR.170=170*2
    791		000362 			FR.171=171*2
    792		000364 			FR.172=172*2
    793		000366 			FR.173=173*2
    794		000370 			FR.174=174*2
    795		000372 			FR.175=175*2
    796		000374 			FR.176=176*2
    797		000376 			FR.177=177*2
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 21
DEFINE -- LOCAL DEFINITIONS 7709.20

    799					; DEFINE EVENT FLAG CODES
    800
    801		000001 			E.FHTO=^D1			; KL HALT TIMEOUT EVENT FLAG
    802		000002 			E.FCID=^D2			; CONSOLE DEVICE INPUT DONE EVENT FLAG
    803		000003 			E.FCOD=^D3			; CONSOLE DEVICE OUTPUT DONE EVENT FLAG
    804		000004 			E.FKLN=^D4			; KLINIK EVENT LOG DONE FLAG
    805		000005 			E.FLOD=^D5			; LIST DEVICE OUTPUT DONE FLAG
    806		000006 			E.FFIL=^D6				; FILE I/O DONE FLAG
    807
    808					; DEFINE LOCAL OFFSETS FOR "QIOW$" DPBS
    809
    810		000014 			Q.IOPL=14			; **TEMPORARY**
    811		000014 			Q.IBUF=Q.IOPL			; INPUT BUFFER ADDRESS
    812		000014 			Q.OBUF=Q.IOPL			; OUTPUT BUFFER ADDRESS
    813		000016 			Q.BYCT=Q.IOPL+2		; BUFFER BYTE COUNT (INPUT AND OUTPUT)
    814		000020 			Q.OVFC=Q.IOPL+4		; OUTPUT CARRIAGE CONTROL CHARACTER
    815
    816					; DEFINE THE LOGICAL UNIT NUMBERS
    817
    818		000001 			CIDLUN=1			; CONSOLE INPUT DEVICE LUN
    819		000002 			CODLUN=2			; CONSOLE OUTPUT DEVICE LUN
    820		000003 			LSTLUN=3			; LIST DEVICE LUN
    821		000004 			LOGLUN=4			; LOG DEVICE LUN
    822		000005 			INDLUN=5			; INDIRECT COMMAND FILE LUN
    823
    824					; DEFINE THE VERTICAL FORMAT CODES FOR "QIOW$"
    825
    826		000000 			VF.INT=000			; <NULL> INTERNAL FORMAT CONTROL
    827		000040 			VF.SSP=040			; <SPACE> SINGLE SPACE ALL LINES
    828		000060 			VF.DSP=060			; "0" DOUBLE SPACE ALL LINES
    829		000061 			VF.FFD=061			; "1" FORM FEED BEFORE OUTPUT
    830		000053 			VF.OVR=053			; "+" OVER PRINT THE LINE
    831		000044 			VF.PRM=044			; "$" PRINT LINE AS A PROMPT
    832
    833					; DEFINE SOME SPECIAL CHARACTERS
    834
    835		000054 			.COMMA=54			; COMMA
    836		000040 			.SPACE=40			; SPACE
    837		000033 			.ATLMD=33			; ALT-MODE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 22
DEFINE -- LOCAL DEFINITIONS 7709.20

    839					; DEFINE THE BITS IN THE CHARACTER PROPERTY TABLE ".CHTAB" (Q.V.)
    840
    841		000000 			CH.NUL=0			; CHARACTER IS NULL
    842		000001 			CH.ALP=BIT00			; CHARACTER IS ALPHABETIC
    843		000002 			CH.NUM=BIT01			; CHARACTER IS NUMERIC
    844		000004 			CH.EOL=BIT02			; CHARACTER MAY END A LINE
    845		000010 			CH.EOC=BIT03			; CHARACTER MAY END A COMMAND
    846		000020 			CH.EOS=BIT04			; CHARACTER MAY END A SYMBOL
    847		000040 			CH.PFX=BIT05			; CHARACTER MAY PREFIX A SYMBOL
    848		000100 			CH.AOP=BIT06			; CHARACTER IS AN ARITHMETIC OPERATOR
    849		000200 			CH.ILL=BIT07			; CHARACTER IS ILLEGAL
    850		000034 			CH.END=CH.EOL!CH.EOC!CH.EOS	; CHARACTER IS AN END CHARACTER
    851		000003 			CH.ANM=CH.ALP!CH.NUM		; CHARACTER IS ALPHANUMERIC
    852
    853					; DEFINE THE LEGAL BITS IN THE COMMAND TABLES (Q.V.)
    854
    855		000000 			LG.NUL=0			; NULL
    856		000001 			LG.OPR=BIT00			; COMMAND IS LEGAL IN OPERATOR MODE
    857		000002 			LG.PRG=BIT01			; COMMAND IS LEGAL IN PROGRAMMER MODE
    858		000004 			LG.MNT=BIT02			; COMMAND IS LEGAL IN MAINTENANACE MODE
    859		000010 			LG.ARG=BIT03			; COMMAND MAY ACCEPT ARGUMENTS
    860		000020 			LG.MAR=BIT04			; COMMAND MAY ACCEPT MULTIPLE ARGUMENTS
    861		000040 			LG.MOD=BIT05			; COMMAND MAY ACCEPT MODIFIERS
    862		000100 			LG.RNG=BIT06			; COMMAND MAY ACCEPT RANGE ARGUMENTS
    863		000200 			LG.STR=BIT07			; COMMAND MAY ACCEPT STRING ARGUMENTS
    864		000400 			LG.RPT=BIT08			; COMMAND MAY BE REPEATED
    865		000003 			LG.PRM=LG.OPR!LG.PRG		; INSURE COMMAND IS LEGAL IN BOTH MODES
    866		000007 			LG.ALL=LG.PRM!LG.MNT		; INSURE COMMAND IS LEGAL IN ALL MODES
    867
    868					; DEFINE THE TRAP STATUS CODES
    869
    870		000002 			TC.CTC=2			; CONTROL-C TRAP, ABORT, RESTART, AND RETURN
    871		000001 			TC.RST=1			; ABORT PROCESS AND RESTART THE KL
    872		000000 			TC.ERR=0			; ABORT PROCESS AND RETURN TO PARSER
    873		000377 			TC.CON=377			; REPORT ERROR AND ATTEMPT RECOVERY
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 23
DEFINE -- LOCAL DEFINITIONS 7709.20

    875					; DEFINE KL OPCODES
    876
    877		000270 			ADD=270			; ADD
    878		000273 			ADDB=273		; ADD TO BOTH
    879		000271 			ADDI=271		; ADD IMMEDIATE
    880		000272 			ADDM=272		; ADD TO MEMORY
    881					;
    882		000404 			AND=404			; AND
    883		000407 			ANDB=407		; AND TO BOTH
    884		000410 			ANDCA=410		; AND COMPLEMENT OF AC
    885		000413 			ANDCAB=413		; AND COMPLEMENT OF AC TO BOTH
    886		000411 			ANDCAI=411		; AND COMPLEMENT OF AC IMMEDIATE
    887		000412 			ANDCAM=412		; AND COMPLEMENT OF AC TO MEMORY
    888		000440 			ANDCB=440		; AND COMPLEMENT OF BOTH
    889		000443 			ANDCBB=443		; AND COMPLEMENT OF BOTH TO BOTH
    890		000441 			ANDCBI=441		; AND COMPLEMENT OF BOTH IMMEDIATE
    891		000442 			ANDCBM=442		; AND COMPLEMENT OF BOTH TO MEMORY
    892		000420 			ANDCM=420		; AND COMPLEMENT OF MEMORY
    893		000423 			ANDCMB=423		; AND COMPLEMENT OF MEMORY TO BOTH
    894		000421 			ANDCMI=421		; AND COMPLEMENT OF MEMORY IMMEDIATE
    895		000422 			ANDCMM=422		; AND COMPLEMENT OF MEMORY TO MEMORY
    896		000405 			ANDI=405		; AND IMMEDIATE
    897		000406 			ANDM=406		; AND TO MEMORY
    898					;
    899		000253 			AOBJN=253		; ADD 1 TO BOTH HALVES, JUMP IF NEGATIVE
    900		000252 			AOBJP=252		; ADD 1 TO BOTH HALVES, JUMP IF POSITIVE
    901					;
    902		000340 			AOJ=340			; ADD 1 AND (DON'T) JUMP
    903		000344 			AOJA=344		; ADD 1 AND JUMP ALWAYS
    904		000342 			AOJE=342		; ADD 1 AND JUMP IF .EQ. 0
    905		000347 			AOJG=347		; ADD 1 AND JUMP IF .GT. 0
    906		000345 			AOJGE=345		; ADD 1 AND JUMP IF .GE. 0
    907		000341 			AOJL=341		; ADD 1 AND JUMP IF .LT. 0
    908		000343 			AOJLE=343		; ADD 1 AND JUMP IF .LE. 0
    909		000346 			AOJN=346		; ADD 1 AND JUMP IF .NE. 0
    910					;
    911		000350 			AOS=350			; ADD 1 AND (DON'T) SKIP
    912		000354 			AOSA=354		; ADD 1 AND SKIP ALWAYS
    913		000352 			AOSE=352		; ADD 1 AND SKIP IF .EQ. 0
    914		000357 			AOSG=357		; ADD 1 AND SKIP IF .GT. 0
    915		000355 			AOSGE=355		; ADD 1 AND SKIP IF .GT. 0
    916		000351 			AOSL=351		; ADD 1 AND SKIP IF .LT. 0
    917		000353 			AOSLE=353		; ADD 1 AND SKIP IF .LE. 0
    918		000356 			AOSN=356		; ADD 1 AND SKIP IF .NE. 0
    919					;
    920		000240 			ASH=240			; ARITHMETIC SHIFT
    921		000244 			ASHC=244		; ARITHMETIC SHIFT COMBINED
    922					;
    923		000251 			BLT=251			; BLOCK TRANSFER
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 24
DEFINE -- LOCAL DEFINITIONS 7709.20

    925		000300 			CAI=300			; COMPARE AC IMMEDIATE, DON'T SKIP
    926		000304 			CAIA=304		; COMPARE AC IMMEDIATE, SKIP ALWAYS
    927		000302 			CAIE=302		; COMPARE AC IMMEDIATE, SKIP IF .EQ.
    928		000307 			CAIG=307		; COMPARE AC IMMEDIATE, SKIP IF .GT.
    929		000305 			CAIGE=305		; COMPARE AC IMMDEIATE, SKIP IF .GE.
    930		000301 			CAIL=301		; COMAPRE AC IMMEDIATE, SKIP IF .LT.
    931		000303 			CAILE=303		; COMPARE AC IMMEDIATE, SKIP IF .LE.
    932		000306 			CAIN=306		; COMPARE AC IMMEDIATE, SKIP IF .NE.
    933					;
    934		000040 			CALL=040		; "CALL" UUO
    935		000047 			CALLI=047		; "CALLI" UUO
    936					;
    937		000310 			CAM=310			; COMPARE AC TO MEMORY, DON'T SKIP
    938		000314 			CAMA=314		; COMPARE AC TO MEMORY, ALWAYS SKIP
    939		000312 			CAME=312		; COMPARE AC TO MEMORY, SKIP IF .EQ.
    940		000317 			CAMG=317		; COMPARE AC TO MEMORY, SKIP IF .GT.
    941		000315 			CAMGE=315		; COMPARE AC TO MEMORY, SKIP IF .GE.
    942		000311 			CAML=311		; COMPARE AC TO MEMORY, SKIP IF .LT.
    943		000313 			CAMLE=313		; COMPARE AC TO MEMORY, SKIP IF .LE.
    944		000316 			CAMN=316		; COMPARE AC TO MEMORY, SKIP IF .NE.
    945					;
    946		000400 			CLEAR=400		; CLEAR AC
    947		000403 			CLEARB=403		; CLEAR BOTH
    948		000401 			CLEARI=401		; CLEAR IMMEDIATE
    949		000402 			CLEARM=402		; CLEAR MEMORY
    950					;
    951		000070 			CLOSE=070		; "CLOSE" UUO
    952					;
    953		000110 			DFAD=110		; DOUBLE FLOATING ADD
    954		000113 			DFDV=113		; DOUBLE FLOATING DIVIDE
    955		000112 			DFMP=112		; DOUBLE FLOATING MULTIPLY
    956		000131 			DFN=131			; DOUBLE FLOATING NEGATE
    957		000111 			DFSB=111		; DOUBLE FLOATING SUBTRACT
    958					;
    959		000234 			DIV=234			; DIVIDE
    960		000237 			DIVB=237		; DIVIDE BOTH
    961		000235 			DIVI=235		; DIVIDE IMMEDIATE
    962		000236 			DIVM=236		; DIVIDE MEMORY
    963					;
    964		000120 			DMOVE=120		; DOUBLE MOVE
    965		000124 			DMOVEM=124		; DOUBLE MOVE TO MEMORY
    966		000121 			DMOVN=121		; DOUBLE MOVE NEGATED
    967		000125 			DMOVNM=125		; DOUBLE MOVE NEGATED TO MEMORY
    968					;
    969		000137 			DPB=137			; DEPOSIT BYTE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 25
DEFINE -- LOCAL DEFINITIONS 7709.20

    971		000077 			ENTER=077		; "ENTER" UUO
    972					;
    973		000444 			EQV=444			; EQUIVALENCE TO AC
    974		000447 			EQVB=447		; EQUIVALENCE TO BOTH
    975		000445 			EQVI=445		; EQUIVALENCE IMMEDIATE
    976		000446 			EQVM=446		; EQUIVALENCE TO MEMORY
    977					;
    978		000250 			EXCH=250		; EXCHANGE
    979		000123 			EXTEND=123		; EXTEND
    980					;
    981		000140 			FAD=140			; FLOATING ADD
    982		000143 			FADB=143		; FLOATING ADD BOTH
    983		000141 			FADL=141		; FLOATING ADD LONG
    984		000142 			FADM=142		; FLOATING ADD MEMORY
    985					;
    986		000144 			FADR=144		; FLOATING ADD, ROUNDED
    987		000147 			FADRB=147		; FLOATING ADD, ROUNDED TO BOTH
    988		000145 			FADRI=145		; FLOATING ADD, ROUNDED IMMEDIATE
    989		000146 			FADRM=146		; FLOATING ADD, ROUNDED TO MEMORY
    990					;
    991		000170 			FDV=170			; FLOATING DIVIDE
    992		000173 			FDVB=173		; FLOATING DIVIDE TO BOTH
    993		000171 			FDVL=171		; FLOATING DIVIDE LONG
    994		000172 			FDVM=172		; FLOATING DIVIDE TO MEMORY
    995					;
    996		000174 			FDVR=174		; FLOATING DIVIDE, ROUNDED
    997		000177 			FDVRB=177		; FLOATING DIVIDE, ROUNDED TO BOTH
    998		000175 			FDVRI=175		; FLOATING DIVIDE, ROUNDED IMMMEDIATE
    999		000176 			FDVRM=176		; FLOATING DIVIDE, ROUNDED TO MEMORY
   1000					;
   1001		000122 			FIX=122			; FIX
   1002		000126 			FIXR=126		; FIX AND ROUND
   1003					;
   1004		000127 			FLTR=127		; FLOAT AND ROUND
   1005					;
   1006		000160 			FMP=160			; FLOATING MULTIPLY
   1007		000163 			FMPB=163		; FLOATING MULTIPLY TO BOTH
   1008		000161 			FMPL=161		; FLOATING MULTIPLY LONG
   1009		000162 			FMPM=162		; FLOATING MULTIPLY TO MEMORY
   1010					;
   1011		000164 			FMPR=164		; FLOATING MUTIPLY ROUNDED
   1012		000167 			FMPRB=167		; FLOATING MULTIPLY ROUNDED, TO BOTH
   1013		000165 			FMPRI=165		; FLOATING MULTIPLY ROUNDED, IMMEDIATE
   1014		000166 			FMPRM=166		; FLOATING MULTIPLY ROUNDED, TO MEMORY
   1015					;
   1016		000150 			FSB=150			; FLOATING SUBTRACT
   1017		000153 			FSBB=153		; FLOATING SUBTRACT TO BOTH
   1018		000151 			FSBL=151		; FLOATING SUBTRACT LONG
   1019		000152 			FSBM=152		; FLOATING SUBTRACT TO MEMORY
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 26
DEFINE -- LOCAL DEFINITIONS 7709.20

   1021		000154 			FSBR=154		; FLOATING SUBTRACT ROUNDED
   1022		000157 			FSBRB=157		; FLOATING SUBTRACT ROUNDED, TO BOTH
   1023		000155 			FSBRI=155		; FLOATING SUBTRACT ROUNDED, IMMEDIATE
   1024		000156 			FSBRM=156		; FLOATING SUBTRACT ROUNDED, TO MEMORY
   1025					;
   1026		000132 			FSC=132			; FLOATING SCALE
   1027					;
   1028		000062 			GETSTS=062		; "GETSTS" UUO
   1029					;
   1030		000500 			HLL=500			; HALFWORD LEFT TO LEFT
   1031		000530 			HLLE=530		;    "      "   "   "	EXTEND
   1032		000531 			HLLEI=531		;    "      "   "   "     "    IMMEDIATE
   1033		000532 			HLLEM=532		;    "      "   "   "     "    TO MEMORY
   1034		000533 			HLLES=533		;    "      "   "   "     "    TO SELF
   1035					;
   1036		000501 			HLLI=501		; HALFWORD LEFT TO LEFT IMMEDIATE
   1037		000502 			HLLM=502		;    "      "   "   "   TO MEMORY
   1038					;
   1039		000520 			HLLO=520		;    "      "   "   "   ONES
   1040		000521 			HLLOI=521		;    "      "   "   "    "   IMMEDIATE
   1041		000522 			HLLOM=522		;    "	    "	"   "	 "   MEMORY
   1042		000523 			HLLOS=523		;    "	    "	"   "	 "   SELF
   1043					;
   1044		000503 			HLLS=503		; HALFWORD LEFT TO LEFT SELF
   1045					;
   1046		000510 			HLLZ=510		; HALFWORD LEFT TO LEFT ZERO, ET AL.
   1047		000511 			HLLZI=511
   1048		000512 			HLLZM=512
   1049		000513 			HLLZS=513
   1050					;
   1051		000544 			HLR=544			; HALFWORD LEFT TO RIGHT
   1052					;
   1053		000574 			HLRE=574		; HALFWORD LEFT TO RIGHT EXTEND, ET AL.
   1054		000575 			HLREI=575
   1055		000576 			HLREM=576
   1056		000577 			HLRES=577
   1057					;
   1058		000564 			HLRO=564		; HALFWORD LEFT TO RIGHT ONES, ET AL.
   1059		000565 			HLROI=565
   1060		000566 			HLROM=566
   1061		000567 			HLROS=567
   1062					;
   1063		000547 			HLRS=547		; HALFWORD LEFT TO RIGHT SELF
   1064					;
   1065		000554 			HLRZ=554		; HALFWORD LEFT TO RIGHT ZEROS, ET AL.
   1066		000555 			HLRZI=555
   1067		000556 			HLRZM=556
   1068		000557 			HLRZS=557
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 27
DEFINE -- LOCAL DEFINITIONS 7709.20

   1070		000504 			HRL=504			; HALFWORD RIGHT TO LEFT
   1071					;
   1072		000534 			HRLE=534		; HALFWORD RIGHT TO LEFT EXTEND, ET AL.
   1073		000535 			HRLEI=535
   1074		000536 			HRLEM=536
   1075		000537 			HRLES=537
   1076					;
   1077		000505 			HRLI=505		; HALFWORD RIGHT TO LEFT IMMEDIATE
   1078		000506 			HRLM=506		;    "	     "	 "   "	 MEMORY
   1079					;
   1080		000564 			HRLO=564		; HALFWORD RIGHT TO LEFT ONES, ET AL.
   1081		000565 			HRLOI=565
   1082		000566 			HRLOM=566
   1083		000567 			HRLOS=567
   1084					;
   1085		000507 			HRLS=507		; HALFWORD RIGHT TO LEFT SELF
   1086					;
   1087		000514 			HRLZ=514		; HALFWORD RIGHT TO LEFT ZERO, ET AL.
   1088		000515 			HRLZI=515
   1089		000516 			HRLZM=516
   1090		000517 			HRLZS=517
   1091					;
   1092		000540 			HRR=540			; HALFWORD RIGHT TO RIGHT
   1093					;
   1094		000570 			HRRE=570		; HALFWORD RIGHT TO RIGHT EXTEND, ET AL.
   1095		000571 			HRREI=571
   1096		000572 			HRREM=572
   1097		000573 			HRRES=573
   1098					;
   1099		000541 			HRRI=541		; HALFWORD RIGHT TO RIGHT IMMEDIATE
   1100		000542 			HRRM=542		;    "	     "	 "    "	  MEMORY
   1101					;
   1102		000560 			HRRO=560		; HALFWORD RIGHT TO RIGHT ONES, ET AL.
   1103		000561 			HRROI=561
   1104		000562 			HRROM=562
   1105		000563 			HRROS=563
   1106					;
   1107		000543 			HRRS=543
   1108					;
   1109		000550 			HRRZ=550		; HALFWORD RIGHT TO RIGHT ZERO, ET AL.
   1110		000551 			HRRZI=551
   1111		000552 			HRRZM=552
   1112		000553 			HRRZS=553
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 28
DEFINE -- LOCAL DEFINITIONS 7709.20

   1114		000133 			IBP=133			; INCREMENT BYTE POINTER
   1115					;
   1116		000230 			IDIV=230		; INTEGER DIVIDE
   1117		000233 			IDIVB=233		;    "	    "	 BOTH
   1118		000231 			IDIVI=231		;    "	    "	 IMMEDIATE
   1119		000232 			IDIVM=232		;    "	    "	 MEMORY
   1120					;
   1121		000136 			IDPB=136		; INCREMENT AND DEPOSIT BYTE
   1122					;
   1123		000134 			ILDB=134		; DECREMENT AND LOAD BYTE
   1124					;
   1125		000220 			IMUL=220		; INTEGER MULTIPLY
   1126		000223 			IMULB=223		;    "	     "	   BOTH
   1127		000221 			IMULI=221		;    "	     "	   IMMEDIATE
   1128		000222 			IMULM=222		;    "	     "     MEMORY
   1129					;
   1130		000056 			IN=056			; "IN" UUO
   1131		000064 			INBUF=064		; "INBUF" UUO
   1132		000041 			INIT=041		; "INIT" UUO
   1133		000066 			INPUT=066		; "INPUT" UUO
   1134					;
   1135		000434 			IOR=434			; INCLUSIVE OR, ET AL.
   1136		000437 			IORB=437
   1137		000435 			IORI=435
   1138		000436 			IORM=436
   1139					;
   1140		000255 			JFCL=255		; JUMP ON FLAGS AND CLEAR
   1141					;
   1142		000243 			JFFO=243		; JUMP IF FOUND FIRST 1
   1143					;
   1144		000267 			JRA=267			; JUMP AND RESTORE AC
   1145					;
   1146		000254 			JRST=254		; JUMP AND RESTORE (PC FLAGS)
   1147					;
   1148		000266 			JSA=266			; JUMP AND SAVE AC
   1149					;
   1150		000265 			JSP=265			; JUMP AND SAVE PC
   1151					;
   1152		000264 			JSR=264			; JUMP TO SUBROUTINE
   1153					;
   1154		000104 			JSYS=104		; JSYS CALL
   1155					;
   1156		000320 			JUMP=320		; JUMP (NEVER)
   1157		000324 			JUMPA=324		; JUMP ALWAYS
   1158		000322 			JUMPE=322		; JUMP IF AC .EQ. 0
   1159		000327 			JUMPG=327		; JUMP IF AC .GT. 0
   1160		000325 			JUMPGE=325		; JUMP IF AC .GE. 0
   1161		000321 			JUMPL=321		; JUMP IF AC .LT. 0
   1162		000323 			JUMPLE=323		; JUMP IF AC .LE. 0
   1163		000326 			JUMPN=326		; JUMP IF AC .NE. 0
   1164					;
   1165		000700 			KLIOT=700		; KL I/O INSTRUCTION BASE
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 29
DEFINE -- LOCAL DEFINITIONS 7709.20

   1167		000135 			LDB=135			; LOAD BYTE
   1168					;
   1169		000076 			LOOKUP=076		; "LOOKUP" UUO
   1170					;
   1171		000242 			LSH=242			; LOGICAL SHIFT
   1172		000246 			LSHC=246		; LOGICAL SHIFT COMBINED
   1173					;
   1174		000257 			MAP=257			; MAP PAGED ADDRESS
   1175					;
   1176		000200 			MOVE=200		; MOVE
   1177		000201 			MOVEI=201		; MOVE IMMEDIATE
   1178		000202 			MOVEM=202		; MOVE TO MEMORY
   1179		000203 			MOVES=203		; MOVE TO SELF
   1180					;
   1181		000214 			MOVM=214		; MOVE MAGNITUDE, ET AL.
   1182		000215 			MOVMI=215
   1183		000216 			MOVMM=216
   1184		000217 			MOVMS=217
   1185					;
   1186		000210 			MOVN=210		; MOVE NEGATED, ET AL.
   1187		000211 			MOVNI=211
   1188		000212 			MOVNM=212
   1189		000213 			MOVNS=213
   1190					;
   1191		000204 			MOVS=204		; MOVE SWAPPED, ET AL.
   1192		000205 			MOVSI=205
   1193		000206 			MOVSM=206
   1194		000207 			MOVSS=207
   1195					;
   1196		000224 			MUL=224			; MULTIPLY
   1197		000227 			MULB=227		; MULTIPLY BOTH
   1198		000225 			MULI=225		; MULTIPLY IMMEDIATE
   1199		000226 			MULM=226		; MULTIPLY MEMORY
   1200					;
   1201		000050 			OPEN=050		; "OPEN" UUO
   1202					;
   1203		000434 			OR=IOR			; (INCLUSIVE) OR, ET AL.
   1204		000437 			ORB=IORB
   1205					;
   1206		000454 			ORCA=454		; OR WITH COMPLEMENT OF AC
   1207		000457 			ORCAB=457		; "   "	      "	     "	"  BOTH
   1208		000455 			ORCAI=455		; "   "	      "	     "	"  IMMEDIATE
   1209		000456 			ORCAM=456		; "   "       "	     "	"  MEMORY
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 30
DEFINE -- LOCAL DEFINITIONS 7709.20

   1211		000470 			ORCB=470		; OR WITH COMPLEMENT OF BOTH, ET AL.
   1212		000473 			ORCBB=473
   1213		000471 			ORCBI=471
   1214		000472 			ORCBM=472
   1215					;
   1216		000464 			ORCM=464		; OR WITH COMPLEMENT OF MEMORY, ET AL.
   1217		000467 			ORCMB=467
   1218		000465 			ORCMI=465
   1219		000466 			ORCMM=466
   1220					;
   1221		000435 			ORI=IORI		; (INCLUSIVE) OR, ET AL.
   1222		000436 			ORM=IORM
   1223					;
   1224		000057 			OUT=057			; "OUT" UUO
   1225		000065 			OUTBUF=065		; "OUTBUF" UUO
   1226		000067 			OUTPUT=067		; "OUTPUT" UUO
   1227					;
   1228		000262 			POP=262			; POP
   1229		000263 			POPJ=263		; POP (RETURN) AND JUMP
   1230					;
   1231		000261 			PUSH=261		; PUSH
   1232		000260 			PUSHJ=260		; PUSH (RETURN) AND JUMP
   1233					;
   1234		000071 			RELEAS=071		; "RELEAS(E)" UUO
   1235		000055 			RENAME=055		; "RENAME" UUO
   1236					;
   1237		000241 			ROT=241			; ROTATE
   1238		000245 			ROTC=245		; ROTATE COMBINED
   1239					;
   1240		000424 			SETA=424		; SET TO AC
   1241		000427 			SETAB=427		;  "  "	 "  BOTH
   1242		000425 			SETAI=425		;  "  "	 "  IMMEDIATE
   1243		000426 			SETAM=426		;  "  "  "  MEMORY
   1244					;
   1245		000450 			SETCA=450		; SET TO COMPLEMENT OF AC, ET AL.
   1246		000453 			SETCAB=453
   1247		000451 			SETCAI=451
   1248		000452 			SETCAM=452
   1249					;
   1250		000460 			SETCM=460		; SET TO COMLEMENT OF MEMORY, ET AL.
   1251		000463 			SETCMB=463
   1252		000461 			SETCMI=461
   1253		000462 			SETCMM=462
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 31
DEFINE -- LOCAL DEFINITIONS 7709.20

   1255		000414 			SETM=414		; SET TO MEMORY, ET AL
   1256		000417 			SETMB=417
   1257		000415 			SETMI=415
   1258		000416 			SETMM=416
   1259					;
   1260		000474 			SETO=474		; SET TO ONES, ET AL.
   1261		000477 			SETOB=477
   1262		000475 			SETOI=475
   1263		000476 			SETOM=476
   1264					;
   1265		000060 			SETSTS=060		; "SETSTS" UUO
   1266					;
   1267		000400 			SETZ=400		; SET TO ZEROS, ET AL
   1268		000403 			SETZB=403
   1269		000401 			SETZI=401
   1270		000402 			SETZM=402
   1271					;
   1272		000330 			SKIP=330		; SKIP (NEVER)
   1273		000334 			SKIPA=334		; SKIP ALWAYS
   1274		000332 			SKIPE=332		; SKIP IF MEMORY .EQ. 0
   1275		000337 			SKIPG=337		; SKIP IF MEMORY .GT. 0
   1276		000335 			SKIPGE=335		; SKIP IF MEMORY .GE. 0
   1277		000331 			SKIPL=331		; SKIP IF MEMORY .LT. 0
   1278		000333 			SKIPLE=333		; SKIP OF MEMORY .LE. 0
   1279		000336 			SKIPN=336		; SKIP IF MEMORY .NE. 0
   1280					;
   1281		000360 			SOJ=360			; SUBTRACT 1 AND NEVER JUMP
   1282		000364 			SOJA=364		; SUBTRACT 1 (FROM AC) AND ALWAYS JUMP
   1283		000362 			SOJE=362		; SUBTRACT 1 AND JUMP IF AC .EQ. 0
   1284		000367 			SOJG=367		; SUBTRACT 1 AND JUMP IF AC .GT. 0
   1285		000365 			SOJGE=365		; SUBTRACT 1 AND JUMP IF AC .GE. 0
   1286		000361 			SOJL=361		; SUBTRACT 1 AND JUMP IF AC .LT. 0
   1287		000363 			SOJLE=363		; SUBTRACT 1 AND JUMP IF AC .LE. 0
   1288		000366 			SOJN=366		; SUBTRACT 1 AND JUMP IF AC .NE. 0
   1289					;
   1290		000370 			SOS=370			; SUBTRACT 1 (FROM MEMORY) AND NEVER SKIP
   1291		000374 			SOSA=374		; SUBTRACT 1 AND ALWAYS SKIP
   1292		000372 			SOSE=372		; SUBTRACT 1 AND SKIP IF .EQ. 0
   1293		000377 			SOSG=377		; SUBTRACT 1 AND SKIP IF .GT. 0
   1294		000375 			SOSGE=375		; SUBTRACT 1 AND SKIP IF .GE. 0
   1295		000371 			SOSL=371		; SUBTRACT 1 AND SKIP IF .LT. 0
   1296		000373 			SOSLE=373		; SUBTRACT 1 AND SKIP IF .LE. 0
   1297		000376 			SOSN=376		; SUBTRACT 1 AND SKIP IF .NE. 0
   1298					;
   1299		000061 			STATO=061		; "STATO" UUO
   1300		000062 			STATUS=062		; "STATUS" UUO
   1301		000063 			STATZ=063		; "STATZ" UUO
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 32
DEFINE -- LOCAL DEFINITIONS 7709.20

   1303		000274 			SUB=274			; SUBTRACT
   1304		000277 			SUBB=277		; SUBTRACT BOTH
   1305		000275 			SUBI=275		; SUBTRACT IMMEDIATE
   1306		000276 			SUBM=276		; SUBTRACT MEMORY
   1307					;
   1308		000106 			SXCT=106		; SECTION EXECUTE
   1309					;
   1310		000650 			TDC=650			; TEST DIRECT COMPLEMENT NEVER SKIP
   1311		000654 			TDCA=654		;  "	 "	  "	 SKIP ALWAYS
   1312		000652 			TDCE=652		;  "	 "	  "	  "   ON ZERO
   1313		000656 			TDCN=656		;  "     "	  "	  "   ON NON-ZERO
   1314					;
   1315		000610 			TDN=610			; TEST DIRECT NO MODIFICATION, ET AL.
   1316		000614 			TDNA=614
   1317		000612 			TDNE=612
   1318		000616 			TDNN=616
   1319					;
   1320		000670 			TDO=670			; TEST DIRECT ONES, ET AL.
   1321		000674 			TDOA=674
   1322		000672 			TDOE=672
   1323		000676 			TDON=676
   1324					;
   1325		000630 			TDZ=630			; TEST DIRECT ZEROS, ET AL.
   1326		000634 			TDZA=634
   1327		000632 			TDZE=632
   1328		000636 			TDZN=636
   1329					;
   1330		000641 			TLC=641			; TEST LEFT COMPLEMENT, ET AL.
   1331		000645 			TLCA=645
   1332		000643 			TLCE=643
   1333		000647 			TLCN=647
   1334					;
   1335		000601 			TLN=601			; TEST LEFT NO MODIFICATION, ET AL.
   1336		000605 			TLNA=605
   1337		000603 			TLNE=603
   1338		000607 			TLNN=607
   1339					;
   1340		000661 			TLO=661			; TEST LEFT ONES, ET AL.
   1341		000665 			TLOA=665
   1342		000663 			TLOE=663
   1343		000667 			TLON=667
   1344					;
   1345		000621 			TLZ=621			; TEST LEFT ZEROS, ET AL.
   1346		000625 			TLZA=625
   1347		000623 			TLZE=623
   1348		000627 			TLZN=627
   1349					;
   1350		000640 			TRC=640			; TEST RIGHT COMPLEMENT, ET AL.
   1351		000644 			TRCA=644
   1352		000642 			TRCE=642
   1353		000646 			TRCN=646
DEFINE -- LOCAL DEFINITION MODU	MACRO M1113  10-NOV-81 17:44  PAGE 33
DEFINE -- LOCAL DEFINITIONS 7709.20

   1355		000600 			TRN=600			; TEST RIGHT NO MODIFICATION, ET AL.
   1356		000604 			TRNA=604
   1357		000602 			TRNE=602
   1358		000606 			TRNN=606
   1359					;
   1360		000660 			TRO=660			; TEST RIGHT ONES, ET AL.
   1361		000664 			TROA=664
   1362		000662 			TROE=662
   1363		000666 			TRON=666
   1364					;
   1365		000620 			TRZ=620			; TEST RIGHT ZEROS, ET AL.
   1366		000624 			TRZA=624
   1367		000622 			TRZE=622
   1368		000626 			TRZN=626
   1369					;
   1370		000651 			TSC=651			; TEST SWAPPED COMLEMENT, ET AL.
   1371		000655 			TSCA=655
   1372		000653 			TSCE=653
   1373		000657 			TSCN=657
   1374					;
   1375		000611 			TSN=611			; TEST SWAPPED NO MODIFICATION, ET AL.
   1376		000615 			TSNA=615
   1377		000613 			TSNE=613
   1378		000617 			TSNN=617
   1379					;
   1380		000671 			TSO=671			; TEST SWAPPED ONES, ET AL.
   1381		000675 			TSOA=675
   1382		000673 			TSOE=673
   1383		000677 			TSON=677
   1384					;
   1385		000631 			TSZ=631			; TEST SWAPPED ZEROS, ET AL.
   1386		000635 			TSZA=635
   1387		000633 			TSZE=633
   1388		000637 			TSZN=637
   1389					;
   1390		000051 			TTCALL=051		; "TTCALL" UUO
   1391					;
   1392		000073 			UGETF=073		; "UGETF" UUO
   1393					;
   1394		000100 			UJEN=100		; "UJEN" CALL
   1395					;
   1396		000074 			USETI=074		; "USETI" UUO
   1397		000075 			USETO=075		; "USETO" UUO
   1398					;
   1399		000256 			XCT=256			; EXECUTE
   1400					;
   1401		000430 			XOR=430			; EXCLUSIVE OR, ET AL.
   1402		000433 			XORB=433
   1403		000431 			XORI=431
   1404		000432 			XORM=432
   1405
   1406					.SBTTL	COPYRIGHT PAGE
   1407
   1409					.TITLE	DATAB  -- COMMAND PARSER DATA BASE 7709.20
   1410
   1411						.IDENT	"006130"
   1412
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 33-1
COPYRIGHT PAGE

   1413					;
   1414					;                             COPYRIGHT (C) 1975, 1979 BY
   1415					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   1416					;
   1417					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   1418					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   1419					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   1420					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   1421					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   1422					;
   1423					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   1424					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   1425					;       CORPORATION.
   1426					;
   1427					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   1428					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   1429					;
   1430					;		MODULE: COMMAND PARSER DATA BASE
   1431					;
   1432					;		VERSION: 06-13
   1433					;
   1434					;		AUTHOR: R. BELANGER
   1435					;
   1436					;		DATE: 7709.20
   1437					;
   1438					;	THIS MODULE CONTAINS:
   1439					;
   1440					;	1) THE IMPURE DATA BASE FOR THE COMMAND PARSER
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 34
COPYRIGHT PAGE

   1442						.MACRO	PARVR$ KEY,FRM,VER,EDT,NUM
   1443						.IF	B,NUM
   1444						.IF	NB,FRM
   1445						PARVR$	\KEY,\FRM,\VER,\EDT,0
   1446						.IFF
   1447						PARVR$	\KEY,200,\VER,\EDT,0
   1448						.ENDC
   1449						.MEXIT
   1450						.IFF
   1451						.IF	GE,VER-10
   1452						.IF	GE,EDT-10
   1453						.ASCIZ	<KEY><FRM>\'VER'-'EDT'\<200>
   1454						.IFF
   1455						.ASCIZ	<KEY><FRM>\'VER'-0'EDT'\<200>
   1456						.ENDC
   1457						.IFF
   1458						.IF	GE,EDT-10
   1459						.ASCIZ	<KEY><FRM>\0'VER'-'EDT'\<200>
   1460						.IFF
   1461						.ASCIZ	<KEY><FRM>\0'VER'-0'EDT'\<200>
   1462						.ENDC
   1463						.ENDC
   1464						.ENDC
   1465						.ENDM	PARVR$
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 35
DATAB  -- COMMAND PARSER IMPURE DATA BASE 7709.20

   1467					.SBTTL	DATAB  -- COMMAND PARSER IMPURE DATA BASE 7709.20
   1468
   1469					; COMMAND PARSER VARIABLES ARE MAINTAINED IN THIS AREA
   1470
   1471	000000					.PSECT	DATA
   1472
   1473	000000				.APRWD::
   1474	000000	000000 				.WORD	0		; KL APR ERROR STATUS WORD
   1475	000002				.CCMDN::
   1476	000002	000021'				.WORD	PARNAM		; POINTER TO CURRENT COMMAND NAME
   1477	000004				.CISTS::
   1478	000004	000000 	000000 			.WORD	0,0		; I/O STATUS BLOCK FOR CONSOLE INPUT
   1479	000010				.CLKWD::
   1480	000010	100000 				.WORD	BIT15		; KL CLOCK CONTROL WORD
   1481	000012				.COSTS::
   1482	000012	000000 	000000 			.WORD	0,0		; I/O STATUS BLOCK FOR CONSOLE OUTPUT
   1483	000016				.CRAMA::
   1484	000016	000000 				.WORD	0		; KL CRAM ADDRESSS
   1485	000020				.CRAMR::
   1486	000020	000000 	000000 	000000 		.WORD	0,0,0		; BLOCK FOR KL CRAM READ
   1487	000026	000000 	000000 	000000 		.WORD	0,0,0
   1488	000034	000000 	000000 	000000 		.WORD	0,0,0
   1489	000042				.CRAMW::
   1490	000042	000000 	000000 	000000 		.WORD	0,0,0		; BLOCK FOR CRAM WRITE
   1491	000050	000000 	000000 	000000 		.WORD	0,0,0
   1492	000056	000000 	000000 	000000 		.WORD	0,0,0
   1494	000064				.DBGSW::
   1495	000064	000000 				.WORD	0		; DEBUG SWITCH
   1497	000066				.DPBFR::
   1498	000066	000000 	000000 	000000 		.WORD	0,0,0		; KL DEPOSIT DATA BUFFER
   1499	000074				.DPBFX::
   1500	000074	000000 	000000 	000000 		.WORD	0,0,0		; KL AUXILLIARY DEPOSIT DATA BUFFER
   1509	000102				.EDELA::
   1510	000102	000000 				.WORD	0		; LAST PDP-11 EXAMINE / DEPOSIT ADDRESS
   1511	000104				.EDKLA::
   1512	000104	000000 	000000 	000000 		.WORD	0,0,0		; KL EXAMINE / DEPOSIT ADDRESS BUFFER
   1513	000112				.EDKLX::
   1514	000112	000000 	000000 	000000 		.WORD	0,0,0		; KL AUXILLIARY EXAM / DEPOS ADDRESS BUFFER
   1515	000120				.ELDDW::
   1516	000120	000000 				.WORD	0		; LAST PDP-11 DEPOSIT DATA
   1517	000122				.ELEDW::
   1518	000122	000000 				.WORD	0		; LAST PDP-11 EXAMINE DATA
   1519	000124				.EXBFR::
   1520	000124	000000 	000000 	000000 		.WORD	0,0,0		; KL EXAMINE DATA BUFFER
   1521	000132				.INCHC::
   1522	000132	000000 				.WORD	0		; INPUT CHARACTER COUNT
   1523	000134				.IRADX::
   1524	000134	000010 				.WORD	^D8		; INPUT RADIX
   1525	000136				.KLINC::
   1526	000136	000001 	000000 	000000 		.WORD	^D1,0,0		; KL EXAMINE DEPOSIT INCREMENT
   1527	000144				.KLEDF::			; [5.1006]KLE DEFAULT COMMAND FLAG
   1528	000144	000001 				.WORD	1
   1529	000146				.KLEPT::			; [5.1006]DEFAULT COMMAND TABLE POINTER
   1530	000146	000000 				.WORD	0
   1531	000150				.KLEVL::			; [5.1006]POINTER VALID FLAG
   1532	000150	   000 				.BYTE	0
   1533	000151				.KLSNP::			; [5.1006]SNAPSHOT COMMAND IN PROGRESS
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 35-1
DATAB  -- COMMAND PARSER IMPURE DATA BASE 7709.20

   1534	000151	   000 				.BYTE	0
   1535	000152				.PASS::				; [4.1.1049]FM SWEEP PASS FLAG
   1536	000152	000000 				.WORD	0
   1537	000154				.OUTLG::
   1538	000154	   000 				.BYTE	0		; [5.1000]LOG OUTPUT FLAG
   1539	000155				.OUTLP::
   1540	000155	   000 				.BYTE	0		; [5.1000]PRINT OUTPUT FLAG
   1541	000156				.OUTTY::
   1542	000156	   001 				.BYTE	1		; [5.1000]TYPE OUTPUT FLAG
   1543						.EVEN
   1544	000160				.LDSTS::
   1545	000160	000000 	000000 			.WORD	0,0		; I/O STATUS BLOCK FOR LIST DEVICE
   1546	000164				.LGLWD::
   1547	000164	000000 				.WORD	0		; LEGAL BITS OF CURRENT COMMAND
   1548	000166				.LDZFL::
   1549	000166	177777 				.WORD	-^D1		; PRINT LEADING ZEROES FLAG
   1550	000170				.MEMFL::
   1551	000170	000000 				.WORD	0		; EXAMINE DEPOSIT MEMORY OFFSET
   1552	000172				.NOTSW::
   1553	000172	000000 				.WORD	0		; "NOT" SWITCH
   1554	000174				.ORADX::
   1555	000174	000010 				.WORD	^D8		; OUTPUT RADIX
   1556	000176				.PEWRD::
   1557	000176	000000 				.WORD	0		; KL PARITY ERROR FLAGS
   1558	000200				.PITAB::
   1559	000200	000000 	000000 			.WORD	0,0		; EXAMINE PI DATA BLOCK
   1560	000204				.PSCWD::
   1561	000204	100000 				.WORD	BIT15		; KL PARITY STOP CONTROL WORD
   1562	000206				.RDXSV::
   1563	000206	000010 				.WORD	^D8		; SAVED RADIX
   1564	000210				.RELWD::
   1565	000210	000000'				.WORD	.APRWD		; RELOCATION VALUE
   1566	000212				.RPTCT::
   1567	000212	000000 	000000 	000000 		.WORD	0,0,0		; REPEAT COUNT
   1568	000220				.RPTPT::
   1569	000220	000000 				.WORD	0		; POINTER TO STACKED REPEAT COUNT
   1570	000222				.STRTV::
   1571	000222	010340'				.WORD	.START		; START VECTOR
   1572	000224				.SVESP::
   1573	000224	000000 				.WORD	0		; TO REINIT STACK POINTER
   1574	000226				.SVKLF::
   1575	000226	000000 				.WORD	0		; SAVED COPY OF ".KLFLG"
   1576	000230				.SWPIP::			; SWEEP IN PROGRESS FLAG
   1577	000230	000000 				.WORD	0
   1579	000232				.TRKWD::
   1580	000232	000000 				.WORD	0		; "TRACK" FLAGS
   1582	000234				.TRP4V::
   1583	000234	001352'				.WORD	.PTOAT		; TRAP AT 4 VECTOR
   1584	000236				.TRPEC::
   1585	000236	000000 				.WORD	0		; ERROR CODE RETURNED FROM TRAP
   1586	000240				.TRPIP::
   1587	000240	000002 				.WORD	^D2		; TRAP IN PROGRESS INTERLOCK
   1588	000242				.TRPPC::
   1589	000242	000000 				.WORD	0		; TRAP PC
   1590	000244				.TRPPS::
   1591	000244	000000 				.WORD	0		; TRAP PSW
   1592	000246				.TRPSB::
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 35-2
DATAB  -- COMMAND PARSER IMPURE DATA BASE 7709.20

   1593	000246	000000 				.WORD	0		; TRAP STATUS BYTE
   1594	000250				.TRPTV::
   1595	000250	000000 				.WORD	0		; TRAP TRAP VECTOR
   1596	000252				.TYOBC::
   1597	000252	000204 				.WORD	^D132		; CONSOLE OUTPUT BYTE COUNT
   1598	000254				.TYOBP::
   1599	000254	000544'				.WORD	.COBFR		; CONSOLE OUTPUT BYTE POINTER
   1600	000256				.VFYFL::
   1601	000256	000000 				.WORD	0		; DEPOSIT VERIFY FLAG
   1602	000260				DATABX::
   1603	000260	000137 	000000G			JMP	.INICP		; EXIT TO INIT
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 36
.SSTTB -- SYNCHRONOUS SYSTEM TRAP VECTOR TABLE 7709.20

   1605					.SBTTL	.SSTTB -- SYNCHRONOUS SYSTEM TRAP VECTOR TABLE 7709.20
   1606
   1607					; +
   1608					; .SSTTB -- SYNCHRONOUS SYSTEM TRAP VECTOR TABLE.
   1609					;
   1610					; THESE ARE THE ENTRY POINTS FOR ALL SYNCHRONOUS TRAPS IN THE KL FRONT
   1611					; END COMMAND PARSER. THE PARSER USES SYNCHRONOUS TRAPS, (SST'S),
   1612					; PRIMARILY TO HANDLE INTERNAL ERRORS VIA THE "TRAP" INSTRUCTION. SST'S
   1613					; MAY ALSO BE USED TO HANDLE ODD ADDRESS TRAPS, BREAKPOINTS, AND OTHER
   1614					; ERROR CONDITIONS, AS WELL AS THE PREVIOUSLY MENTIONED ERROR TRAPS.
   1615					;
   1616					; SYNCHRONOUS TRAPS ARE ENABLED BY THE "SVTK$" DIRECTIVE (Q.V.) AS
   1617					; ALLOWED BY THE ENTRIES IN ".SSTTB", THE SST VECTOR TABLE, BELOW.
   1618					; A NON-ZERO ENTRY IN ".SSTTB" INDICATES THAT CONTROL IS TO BE PASSED
   1619					; TO THE ADDRESS IN THAT ENTRY UPON OCCURANCE OF THE ASSOCIATED
   1620					; CONDITION. A ZERO ENTRY IN THE VECTOR TABLE INDICATES THAT THE
   1621					; SYSTEM IS TO HANDLE THE ASSOCIATED CONDITION.
   1622					;
   1623					; THE FORMAT OF THE SST VECTOR TABLE IS AS FOLLOWS:
   1624					;
   1625					;	!===============================================!
   1626					; 00	!	ODD ADDRESS TRAP HANDLER ADDRESS	!
   1627					;	!-----------------------------------------------!
   1628					; 02	!  MEMORY PROTECTION VIOLATION HANDLER ADDRESS	!
   1629					;	!-----------------------------------------------!
   1630					; 04	!	    T-BIT TRAP HANDLER ADDRESS		!
   1631					;	!-----------------------------------------------!
   1632					; 06	!	     IOT TRAP HANDLER ADDRESS		!
   1633					;	!-----------------------------------------------!
   1634					; 10	!   RESERVED INSTRUCTION TRAP HANDLER ADDRESS	!
   1635					;	!-----------------------------------------------!
   1636					; 12	!	ILLEGAL EMT TRAP HANDLER ADDRESS	!
   1637					;	!-----------------------------------------------!
   1638					; 14	!     TRAP INSTRUCTION TRAP HANDLER ADDRESS	!
   1639					;	!-----------------------------------------------!
   1640					; 16	!	FLOATING POINT TRAP HANDLER ADDRESS	!
   1641					;	!===============================================!
   1642					;-
   1643
   1644	000264				.SSTTB::
   1645	000264	000000 				.WORD	0		; ODD ADDRESS TRAP HANDLER
   1646	000266	000000 				.WORD	0		; MEMORY PROTECTION VIOLATION
   1647	000270	000000 				.WORD	0		; BREAKPOINT TRAP HANDLER
   1648	000272	000000 				.WORD	0		; "IOT" INSTRUCTION TRAP
   1649	000274	000000 				.WORD	0		; RESERVED INSTRUCTION TRAP
   1650	000276	000000 				.WORD	0		; NON-STANDARD EMT TRAP
   1651	000300	001124'				.WORD	.PTTRP		; "TRAP" INSTRUCTION TRAP
   1652	000302	000000 				.WORD	0		; FLOATING POINT TRAP
   1653		000010 			SSTLEN==.-.SSTTB/2		; LENGTH OF THIS TABLE
   1654		000302'			SSTTBE==.-2
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 37
DATAB  -- DTE-20 OPERATION BUFFERS 7709.20

   1656					.SBTTL	DATAB  -- DTE-20 OPERATION BUFFERS 7709.20
   1657
   1658	000304				.DFBLK::
   1659	000304				.DFWB::
   1660	000304	000000 	000000 	000000 		.WORD	0,0,0		; FUNCTION WRITE BUFFER
   1661	000312				.DFRB::
   1662	000312	000000 	000000 	000000 		.WORD	0,0,0		; FUNCTION READ BUFFER
   1663
   1664	000320				.DREG::
   1665	000320				.DTDI1::
   1666	000320	000000 				.WORD	0		; DTE-20 DIAG WORD 1 BUFFER
   1667	000322				.DTDI2::
   1668	000322	000000 				.WORD	0		; DTE-20 DIAG WORD 2 BUFFER
   1669	000324				.DTSTS::
   1670	000324	000000 				.WORD	0		; DTE-20 STATUS WORD BUFFER
   1671	000326				.DTDI3::
   1672	000326	000000 				.WORD	0		; DTE-20 DIAG WORD 3 BUFFER
   1673		000330'			DFBEND==.
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 38
DATAB  -- INPUT / OUTPUT BUFFERS 7709.20

   1675					.SBTTL	DATAB  -- INPUT / OUTPUT BUFFERS 7709.20
   1676
   1677					; THESE ARE THE I/O BUFFERS
   1678
   1679	000330				.CIBFR::
   1680	000330					.BLKW	^D70		; CONSOLE DEVICE INPUT BUFFER
   1681		000214 			.CIBFL==.-.CIBFR
   1682
   1683	000544				.COBFR::
   1684	000544					.BLKW	^D70		; CONSOLE DEVICE OUTPUT BUFFER
   1685		000204 			.COBFL==^D132
   1686
   1687	000760				.COMND::
   1688	000760					.BLKW	^D140		; COMMAND BUFFER
   1689		000430 			.CMNDL==.-.COMND
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 39
DATAB  -- ASCII MESSAGES AND .RAD50 TABLES 7709.20

   1691					.SBTTL	DATAB  -- ASCII MESSAGES AND .RAD50 TABLES 7709.20
   1692
   1693	001410				.R50TB::
   1694	001410	000022 				.WORD	<'0-36>-<50-50>
   1695	001412	   060 	   000 			.ASCIZ	%0%
   1696	001414	177766 				.WORD	<'%-35>-<'0-36>
   1697	001416	   045 	   000 			.ASCIZ	/%/
   1698	001420	000012 				.WORD	<'.-34>-<'%-35>
   1699	001422	   056 	   000 			.ASCIZ	%.%
   1700	001424	177767 				.WORD	<'$-33>-<'.-34>
   1701	001426	   044 	   000 			.ASCIZ	%$%
   1702	001430	000067 				.WORD	<'A-01>-<'$-33>
   1703	001432	   101 	   000 			.ASCIZ	%A%
   1704	001434	177740 				.WORD	<' -00>-<'A-01>
   1705	001436	000040 				.WORD	.SPACE
   1706
   1707	001440				.T50TB::
   1708	001440	003100 				.WORD	50*50
   1709	001442	000050 				.WORD	50
   1710	001444	000001 				.WORD	1
   1711	001446	000000 				.WORD	0
   1712
   1713	000000				.PSECT	MESSAG
   1714
   1715	000000				CPVMSG::
   1716	000000					PARVR$	PAR$$K,,PAR$$V,PAR$$E
	000000	   126 	   200 	   060 		.ASCIZ	<126><200>\06-27\<200>
	000003	   066 	   055 	   062
	000006	   067 	   200 	   000
   1717	000011				PARMSG::
   1718	000011	   120 	   101 	   122 		.ASCIZ	%PAR -- %
	000014	   040 	   055 	   055
	000017	   040 	   000
   1719	000021				PARNAM::
   1720	000021	   120 	   101 	   122 		.ASCIZ	%PARSER%
	000024	   123 	   105 	   122
	000027	   000
   1721	000030				PROMPT::
   1722	000030	   120 	   101 	   122 		.ASCIZ	%PAR%
	000033	   000
   1723	000034				KLEPRM::
   1724	000034	   113 	   114 	   105 		.ASCIZ	%KLE>%
	000037	   076 	   000
   1725	000041				ONMSG::
   1726	000041	   117 	   116 	   000 		.ASCIZ	%ON%
   1727	000044				OFFMSG::
   1728	000044	   117 	   106 	   106 		.ASCIZ	%OFF%
	000047	   000
   1729	000000				.PSECT
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 40
.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14

   1731					.SBTTL	.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14
   1732
   1733					;+
   1734					; .CHTAB -- THE CHARACTER PROPERTY TABLE
   1735					;
   1736					; THIS IS A TABLE OF ASCII CHARACTER PROPERTIES. THERE IS ONE ENTRY
   1737					; FOR EACH CHARACTER IN THE ASCII STANDARD CHARACTER SET. EACH ENTRY
   1738					; IS ONE BYTE LONG, AND CONTAINS BITS ASSOCIATED WITH THE GENERAL
   1739					; PROPETIES OF THE ASCII CHARACTER IT REPRESENTS. ".CHTAB" IS
   1740					; REFERENCED BY USING THE ASCII CHARACTER UNDER TEST AS AN OFFSET
   1741					; INTO THE TABLE. ONE ASCII CHARACTER MAY HAVE MULTIPLE CHARACTERISTICS.
   1742					; THE DEFINITIONS FOR THE CHARACTERISTIC BITS ARE IN "COMMON.MAC",
   1743					; (Q.V.), WHICH ARE:
   1744					;
   1745					;	"CH.ALP" -- (BIT00) -- CHARACTER IS ALPHABETIC,
   1746					;	"CH.NUM" -- (BIT01) -- CHARACTER IS NUMERIC,
   1747					;	"CH.EOL" -- (BIT02) -- CHARACTER MAY END A LINE,
   1748					;	"CH.EOC" -- (BIT03) -- CHARACTER MAY END A COMMAND,
   1749					;	"CH.EOS" -- (BIT04) -- CHARACTER MAY SUFFIX A SYMBOL,
   1750					;	"CH.PFX" -- (BIT05) -- CHARACTER MAY PREFIX A SYMBOL,
   1751					;	"CH.AOP" -- (BIT06) -- CHARACTER MAY PREFIX AN ARITHMETIC OPERATOR,
   1752					;	"CH.ILL" -- (BIT07) -- CHARACTER IS ILLEGAL.
   1753					;
   1754					; TABS, (ASCII 011), AND LOWER CASE ALPHABETICS ARE ILLEGAL CHARACTERS
   1755					; SINCE THE INPUT ROUTINES CONVERT THESE CHARACTERS TO SPACES AND
   1756					; UPPER CASE ALPHABETICS, RESPECTIVELY.
   1757					;-
   1758
   1759	001450					.PSECT	DATA
   1760
   1761	001450				.CHTAB::
   1762	001450	   034 				.BYTE	CH.EOL!CH.EOC!CH.EOS	; <NULL> (000)
   1763	001451	   200 				.BYTE	CH.ILL			; ^A (001)
   1764	001452	   200 				.BYTE	CH.ILL			; ^B (002)
   1765	001453	   200 				.BYTE	CH.ILL			; ^C (003)
   1766	001454	   200 				.BYTE	CH.ILL			; ^D (004)
   1767	001455	   200 				.BYTE	CH.ILL			; ^E (005)
   1768	001456	   200 				.BYTE	CH.ILL			; ^F (006)
   1769	001457	   200 				.BYTE	CH.ILL			; ^G <BELL> (007)
   1770	001460	   200 				.BYTE	CH.ILL			; ^H (010)
   1771	001461	   200 				.BYTE	CH.ILL			; ^I <HORIZONTAL-TAB> (011)
   1772	001462	   200 				.BYTE	CH.ILL			; ^J <NEW-LINE> (012)
   1773	001463	   200 				.BYTE	CH.ILL			; ^K <VERTICAL-TAB> (013)
   1774	001464	   200 				.BYTE	CH.ILL			; ^L <FORM-FEED> (014)
   1775	001465	   200 				.BYTE	CH.ILL			; ^M <CARRIAGE-RETURN> (015)
   1776	001466	   200 				.BYTE	CH.ILL			; ^N (016)
   1777	001467	   200 				.BYTE	CH.ILL			; ^O (017)
   1778	001470	   200 				.BYTE	CH.ILL			; ^P (020)
   1779	001471	   200 				.BYTE	CH.ILL			; ^Q (021)
   1780	001472	   200 				.BYTE	CH.ILL			; ^R (022)
   1781	001473	   200 				.BYTE	CH.ILL			; ^S (023)
   1782	001474	   200 				.BYTE	CH.ILL			; ^T (024)
   1783	001475	   200 				.BYTE	CH.ILL			; ^U (025)
   1784	001476	   200 				.BYTE	CH.ILL			; ^V (026)
   1785	001477	   200 				.BYTE	CH.ILL			; ^W (027)
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 41
.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14

   1787	001500	   200 				.BYTE	CH.ILL			; ^X (030)
   1788	001501	   200 				.BYTE	CH.ILL			; ^Y (031)
   1789	001502	   200 				.BYTE	CH.ILL			; ^Z (032)
   1790	001503	   200 				.BYTE	CH.ILL			; <ALT-MODE> (033)
   1791	001504	   200 				.BYTE	CH.ILL			; ^\ (034)
   1792	001505	   200 				.BYTE	CH.ILL			; ^] (035)
   1793	001506	   200 				.BYTE	CH.ILL			; ^^ (036)
   1794	001507	   200 				.BYTE	CH.ILL			; ^_ (037)
   1795	001510	   020 				.BYTE	CH.EOS			; <SPACE> (040)
   1796	001511	   200 				.BYTE	CH.ILL			; ! (041)
   1797	001512	   020 				.BYTE	CH.EOS			; " (042)
   1798	001513	   200 				.BYTE	CH.ILL			; # (043)
   1799	001514	   200 				.BYTE	CH.ILL			; $ (044)
   1800	001515	   200 				.BYTE	CH.ILL			; % (045)
   1801	001516	   200 				.BYTE	CH.ILL			; & (046)
   1802	001517	   020 				.BYTE	CH.EOS			; ' (047)
   1803	001520	   140 				.BYTE	CH.AOP!CH.PFX		; ( (050)
   1804	001521	   100 				.BYTE	CH.AOP			; ) (051)
   1805	001522	   120 				.BYTE	CH.AOP!CH.EOS		; * (052)
   1806	001523	   160 				.BYTE	CH.AOP!CH.EOS!CH.PFX	; + (053)
   1807	001524	   030 				.BYTE	CH.EOS!CH.EOC		; , (054)
   1808	001525	   160 				.BYTE	CH.AOP!CH.EOS!CH.PFX	; - (055)
   1809	001526	   200 				.BYTE	CH.ILL			; . (056)
   1810	001527	   120 				.BYTE	CH.AOP!CH.EOS		; / (057)
   1811						;
   1812	001530	   002 				.BYTE	CH.NUM			; 0 (060)
   1813	001531	   002 				.BYTE	CH.NUM			; 1 (061)
   1814	001532	   002 				.BYTE	CH.NUM			; 2 (062)
   1815	001533	   002 				.BYTE	CH.NUM			; 3 (063)
   1816	001534	   002 				.BYTE	CH.NUM			; 4 (064)
   1817	001535	   002 				.BYTE	CH.NUM			; 5 (065)
   1818	001536	   002 				.BYTE	CH.NUM			; 6 (066)
   1819	001537	   002 				.BYTE	CH.NUM			; 7 (067)
   1820	001540	   002 				.BYTE	CH.NUM			; 8 (070)
   1821	001541	   002 				.BYTE	CH.NUM			; 9 (071)
   1822						;
   1823	001542	   030 				.BYTE	CH.EOS!CH.EOC		; : (072)
   1824	001543	   030 				.BYTE	CH.EOS!CH.EOC		; ; (073)
   1825	001544	   200 				.BYTE	CH.ILL			; < (074)
   1826	001545	   020 				.BYTE	CH.EOS			; = (075)
   1827	001546	   020 				.BYTE	CH.EOS			; > (076)
   1828	001547	   041 				.BYTE	CH.PFX!CH.ALP		; ? (077)
   1829	001550	   200 				.BYTE	CH.ILL			; @ (100)
DATAB  -- COMMAND PARSER DATA B	MACRO M1113  10-NOV-81 17:44  PAGE 42
.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14

   1831	001551	   001 				.BYTE	CH.ALP			; A (101)
   1832	001552	   101 				.BYTE	CH.ALP!CH.AOP		; B (102)
   1833	001553	   101 				.BYTE	CH.ALP!CH.AOP		; C (103)
   1834	001554	   101 				.BYTE	CH.ALP!CH.AOP		; D (104)
   1835	001555	   001 				.BYTE	CH.ALP			; E (105)
   1836	001556	   001 				.BYTE	CH.ALP			; F (106)
   1837	001557	   001 				.BYTE	CH.ALP			; G (107)
   1838	001560	   001 				.BYTE	CH.ALP			; H (110)
   1839	001561	   001 				.BYTE	CH.ALP			; I (111)
   1840	001562	   001 				.BYTE	CH.ALP			; J (112)
   1841	001563	   001 				.BYTE	CH.ALP			; K (113)
   1842	001564	   001 				.BYTE	CH.ALP			; L (114)
   1843	001565	   001 				.BYTE	CH.ALP			; M (115)
   1844	001566	   001 				.BYTE	CH.ALP			; N (116)
   1845	001567	   101 				.BYTE	CH.ALP!CH.AOP		; O (117)
   1846	001570	   001 				.BYTE	CH.ALP			; P (120)
   1847	001571	   001 				.BYTE	CH.ALP			; Q (121)
   1848	001572	   001 				.BYTE	CH.ALP			; R (122)
   1849	001573	   001 				.BYTE	CH.ALP			; S (123)
   1850	001574	   001 				.BYTE	CH.ALP			; T (124)
   1851	001575	   001 				.BYTE	CH.ALP			; U (125)
   1852	001576	   001 				.BYTE	CH.ALP			; V (126)
   1853	001577	   001 				.BYTE	CH.ALP			; W (127)
   1854	001600	   001 				.BYTE	CH.ALP			; X (130)
   1855	001601	   001 				.BYTE	CH.ALP			; Y (131)
   1856	001602	   001 				.BYTE	CH.ALP			; Z (132)
   1857						;
   1858	001603	   200 				.BYTE	CH.ILL			; [ (133)
   1859	001604	   200 				.BYTE	CH.ILL			; \ (134)
   1860	001605	   200 				.BYTE	CH.ILL			; ] (135)
   1861	001606	   140 				.BYTE	CH.AOP!CH.PFX		; ^ (136)
   1862	001607	   120 				.BYTE	CH.AOP!CH.EOS		; _ (137)
   1863	001610	   200 				.BYTE	CH.ILL			; @ (140)
   1898					.EVEN
   1899	000000					.PSECT
DEB880 -- DEBUG PARSER DATA BAS	MACRO M1113  10-NOV-81 17:44  PAGE 44
.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14

   1902					.TITLE	DEB880 -- DEBUG PARSER DATA BASE
   1903
   1904						.IDENT	"006110"
   1905
   1906					;
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 46
.CHTAB -- THE CHARACTER PROPERTY TABLE 7601.14

   2005					.TITLE	CHECK -- GENERAL ARGUMENT CHECK MODULE 7709.21
   2006
   2007						.IDENT	"006020"
   2008
   2009					;
   2010					;                             COPYRIGHT (C) 1979 BY
   2011					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2012					;
   2013					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2014					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2015					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2016					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   2017					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2018					;
   2019					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2020					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2021					;       CORPORATION.
   2022					;
   2023					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2024					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2025					;
   2026					;		MODULE: ALPANUMERIC ARGUMENT CHECK
   2027					;
   2028					;		VERSION: 06-02
   2029					;
   2030					;		AUTHOR: R. BELANGER
   2031					;
   2032					;		DATE: 709.21
   2033					;
   2034					;	THIS MODULE CONTAINS:
   2035					;
   2036					;	1) ALPHANUMERIC ARGUMENT CHECK CODE
   2037					;	2) TRAILING COLON CHECK CODE
   2038					;	3) END OF COMMAND CHECK CODE
   2039					;	4) END OF SYMBOL CHECK CODE
   2040					;	5) TRAILING OBJECT CHECK CODE
   2041					;	6) TRAILING SYMBOL CHECK CODE
   2042					;
   2043					;	MODIFICATION:
   2044					;
   2045					;	NO.	DATE		PROGRAMMER	REASON
   2046					;	---	----		----------	------
   2047					;   TCO 5.1002	18-SEP-79	K. LEFEBVRE	ADD RETURN TO CES ON SWEEP
   2048
   2049						.MCALL	CLEF$S
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 47
.CESCK -- SUBROUTINE TO CHECK FOR CLOCK ERROR STOP 7607.15

   2051					.SBTTL	.CESCK -- SUBROUTINE TO CHECK FOR CLOCK ERROR STOP 7607.15
   2052
   2053					;+
   2054					; .CESCK -- SUBROUTINE TO CHECK FOR CLOCK ERROR STOP BY READING
   2055					;	    DTE-20 DIAG WORD 1.
   2056					;
   2057					; THIS SUBROUTINE CHECKS FOR THE KL CLOCK ERROR STOP ("D1.CES") FLAG
   2058					; IN THE DTE-20 DIAG1 REGISTER, AND WILL RETURN NORMALLY IF THE BIT IS OFF.
   2059					;
   2060					; SEQUENCE OF OPERATION:
   2061					;
   2062					;	(A) READ DTE-20 DIAG WORD 1,
   2063					;	(B) TEST THE CLOCK ERROR STOP FLAG FROM (A),
   2064					;	(C) IF THE FLAG IS CLEAR, EXIT, ELSE GO TO (D),
   2065					;	(D) RESET THE STATE OF ".KLFLG" AND ".SVKLF" (Q.V.),
   2066					;	(E) FORCE A CONTEXT SWITCH INTO SECONDARY PROTOCOL,
   2067					;	(F) RETURN A .RAD50 "CES" ERROR CODE VIA ERROR TRAP.
   2068					;
   2069					; INPUT ARGUMENTS:
   2070					;
   2071					;	NONE.
   2072					;
   2073					; OUTPUT ARGUMENTS:
   2074					;
   2075					;	R0 CONTAINS A COPY OF DTE-20 DIAG WORD 1.
   2076					;	CC-C IS SET IF CES AND SWEEP IN PROGRESS
   2077					;
   2078					; ERROR CODES RETURNED:
   2079					;
   2080					;	CES -- KL CLOCK ERROR STOP.
   2081					;	DSF -- DTE-20 STATUS FAILURE.
   2082					;-
   2083
   2084	000000				.CESCK::
   2088	000000					CALL	.DTDW1		; READ DIAG WORD 1
	000000	004737 	003530'			 JSR	PC,.DTDW1
   2089	000004	032700 	004000 			BIT	#D1.CES,R0	; IS CLOCK ERROR STOP LIT?
   2090	000010	001002 				BNE	CESCES		; YES -- GIVE "CES" ERROR
   2091	000012	000241 				CLC			; [5.1002]NO -- CLEAR CARRY
   2092	000014					RETURN			; JUST RETURN
	000014	000207 				 RTS	PC
   2093	000016				CESCES:
   2094	000016					CALL	..DTSP		; [5.1002]STOP ALL PROTOCOLS
	000016	004737 	000000G			 JSR	PC,..DTSP
   2095	000022	112737 	000001 	000000G		MOVB	#1,.NOERR	; AND DISABLE ERROR INTERRUPT
   2096	000030	005037 	000226'			CLR	.SVKLF		; DISALLOW RESTARTS
   2097	000034	042737 	140200 	000000G		BIC	#KF.CON!KF.RUN!KF.CLK,.KLFLG
   2098									; CLEAR THE CLOCK AND CONTINUEABLE FLAGS
   2099	000042	052737 	000100 	000000G		BIS	#KF.CES,.KLFLG	; FLAG THE CLOCK ERROR STOP
   2100	000050	005737 	000230'			TST	.SWPIP		; [5.1002]SWEEP IN PROGRESS?
   2101	000054	001402 				BEQ	10$		; [5.1002]NO -- TAKE ERROR TRAP
   2102	000056	000261 				SEC			; [5.1002]YES -- SET CARRY
   2103	000060					RETURN			; [5.1002]EXIT
	000060	000207 				 RTS	PC
   2104	000062				10$:	ERROR$	CES		; ERROR -- CLOCK ERROR STOP
	000062	012746 	011633 			 MOV	#^RCES,-(SP)
	000066	104400 				 TRAP	TC.ERR
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 47-1
.CESCK -- SUBROUTINE TO CHECK FOR CLOCK ERROR STOP 7607.15

   2105						;
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 48
.CKARG -- CHECK FOR ALPHANUMERIC ARGUMENT 7709.21

   2107					.SBTTL	.CKARG -- CHECK FOR ALPHANUMERIC ARGUMENT 7709.21
   2108
   2109					;+
   2110					; .CKARG -- CHECK FOR AN ALPHANUMERIC ARGUMENT
   2111					;
   2112					; THIS ROUTINE WILL CHECK THE FIRST CHARACTER OF THE NEXT SYMBOL
   2113					; IN THE INPUT STREAM TO SEE IF IT IS ALPHABETIC OR NUMERIC.
   2114					;
   2115					; INPUT ARGUMENTS:
   2116					;
   2117					;	R5 POINTS TO THE INPUT STREAM
   2118					;
   2119					; OUTPUT ARGUMENTS:
   2120					;
   2121					;	R5 POINTS TO THE FIRST CHARACTER IN THE SYMBOL
   2122					;	CC-N IS SET IF IT IS NUMERIC
   2123					;	CC-Z IS SET IF IT IS ALPHABETIC
   2124					;
   2125					; ERROR CODES RETURNED:
   2126					;
   2127					;	MRA -- MISSING REQUIRED ARGUMENT
   2128					;-
   2129
   2130	000070				.CKARG::
   2131	000070					CALL	.CKSYM		; GET OVER LEADING BLANKS
	000070	004737 	000374'			 JSR	PC,.CKSYM
   2132	000074	132764 	000001 	001450'		BITB	#CH.ALP,.CHTAB(R4)
   2133	000102	001403 				BEQ	10$		; SEE IF IT IS NUMERIC
   2134	000104	000250 				CLN			; CLEAR CC-N
   2135	000106	000264 				SEZ			; SET CC-Z TO SAY ALPHABETIC
   2136	000110	000406 				BR	20$		; AND EXIT
   2137						;
   2138	000112				10$:
   2139	000112	132764 	000042 	001450'		BITB	#CH.NUM!CH.PFX,.CHTAB(R4)
   2140	000120	001417 				BEQ	CKCMRA		; NOT NUMERIC -- GIVE ERROR
   2141	000122	000244 				CLZ			; CLEAR CC-Z
   2142	000124	000270 				SEN			; SET CC-N TO SAY NUMERIC
   2143	000126				20$:
   2144	000126					RETURN			; TO CALLER
	000126	000207 				 RTS	PC
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 49
.CKCOL -- CHECK FOR A EQUAL 7709.21

   2146					.SBTTL	.CKCOL -- CHECK FOR A EQUAL 7709.21
   2147
   2148					;+
   2149					; .CKCOL -- CHECK FOR A EQUAL
   2150					;
   2151					; THIS ROUTINE CHECKS FOR A EQUAL AFTER A SYMBOL
   2152					;
   2153					; INPUT ARGUMENTS:
   2154					;
   2155					;	R5 POINTS TO THE INPUT STREAM
   2156					;
   2157					; OUTPUT ARGUMENTS:
   2158					;
   2159					;	R5 POINTS TO THE FIRST CHARACTER AFTER THE EQUAL.
   2160					;
   2161					; ERROR CODES RETURNED:
   2162					;
   2163					;	ILS -- ILLEGAL SEPARATOR CHARACTER.
   2164					;	MRA -- MISSING REQUIRED ARGUMENT
   2165					;-
   2166
   2167	000130				.CKCOL::
   2168	000130	112504 				MOVB	(R5)+,R4	; GET THE CHARACTER
   2169	000132	132764 	000010 	001450'		BITB	#CH.EOC,.CHTAB(R4)
   2170	000140	001007 				BNE	CKCMRA		; MISSING ARGUMENT IF E-O-C
   2171	000142	122704 	000075 			CMPB	#'=,R4		; IS IT A EQUAL?
   2172	000146	001001 				BNE	CKCILS		; NO -- GIVE "ILS" ERROR
   2173	000150					RETURN			; YES -- JUST RETURN
	000150	000207 				 RTS	PC
   2174	000152				CKCILS:
   2175	000152					ERROR$	ILS		; ERROR -- ILLEGAL SEPARATOR CHARACTER
	000152	012746 	035063 			 MOV	#^RILS,-(SP)
	000156	104400 				 TRAP	TC.ERR
   2176						;
   2177	000160				CKCMRA:
   2178	000160					ERROR$	MRA		; ERROR -- MISSING REQUIRED ARGUMENT
	000160	012746 	052021 			 MOV	#^RMRA,-(SP)
	000164	104400 				 TRAP	TC.ERR
   2179						;
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 50
.CKCTC -- CHECK FOR CONTROL-C TYPED 7601.28

   2181					.SBTTL	.CKCTC -- CHECK FOR CONTROL-C TYPED 7601.28
   2182
   2183					;+
   2184					; .CKCTC -- CHECK FOR CONTROL-C TYPED
   2185					;
   2186					; THIS SUBROUTINE CHECKS THE CONTROL-C EVENT FLAG, "E.FCTC" AND WILL
   2187					; RETURN TO THE CALLING ROUTINE IF IT IS CLEAR OR TRAP IF IT IS SET.
   2188					;
   2189					; INPUT ARGUMENTS:
   2190					;
   2191					;	NONE.
   2192					;
   2193					; OUTPUT ARGUMENTS:
   2194					;
   2195					;	NONE
   2196					;
   2197					; ERROR CODES RETURNED:
   2198					;
   2199					;	NONE.
   2200					;-
   2201
   2202	000166				.CKCTC::
   2203	000166					CLEF$S	#E.FCTC		; CLEAR THE EVENT FLAG
	000166	012746 	000000G			MOV	#E.FCTC,-(SP)
	000172	012746 				MOV	(PC)+,-(SP)
	000174	   037 	   002 			.BYTE	31.,2
	000176	104375 				EMT	375
   2204	000200	022737 	000000G	000000G		CMP	#IS.SET,$DSW	; WAS IT SET?
   2205	000206	001401 				BEQ	10$		; YES -- TRAP OUT
   2206	000210					RETURN			; NO -- JUST RETURN
	000210	000207 				 RTS	PC
   2207	000212				10$:				; PC OF CALL WILL BE IN ".TRPEC"
   2208	000212	104402 				TRAP	TC.CTC		; .TRAP AND RESTART
   2209						;
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 51
.CKEOC -- CHECK END OF COMMAND 7602.16

   2211					.SBTTL	.CKEOC -- CHECK END OF COMMAND 7602.16
   2212
   2213					;+
   2214					; .CKEOC -- CHECK FOR END OF COMMAND
   2215					;
   2216					; THIS ROUTINE CHECKS FOR AN END OF COMMAND CHARACTER
   2217					;
   2218					; INPUT ARGUMENTS:
   2219					;
   2220					;	R5 POINTS TO THE INPUT STREAM
   2221					;
   2222					; OUTPUT ARGUMENTS:
   2223					;
   2224					;	R5 IS UNCHANGED
   2225					;
   2226					; ERROR CODES RETURNED:
   2227					;
   2228					;	EOC -- END OF COMMAND REQUIRED
   2229					;	ILS -- ILLEGAL SEPARATOR CHARACTER
   2230					;-
   2231
   2232	000214				.CKEOC::
   2233	000214	111504 				MOVB	(R5),R4		; GET THE CHARACTER
   2234	000216	132764 	000010 	001450'		BITB	#CH.EOC,.CHTAB(R4)
   2235	000224	001401 				BEQ	10$		; MAY BE ERROR IF NOT E-O-C
   2236	000226					RETURN			; TO CALLER
	000226	000207 				 RTS	PC
   2237	000230				10$:
   2238	000230					PUSH	R4		; SAVE THE CHARACTER
	000230	010446 				 MOV	R4,-(SP)
   2239	000232					CALL	.CKSYM		; .LOOK FOR A NON-BLANK CHARACTER
	000232	004737 	000374'			 JSR	PC,.CKSYM
   2240	000236	122704 	000077 			CMPB	#'?,R4		; .IS THIS AN INQUIRY?
   2241	000242	001402 				BEQ	CKEEOC		; .YES -- GIVE "EOC" ERROR
   2242	000244					POP	R4		; .NO -- GIVE "ILS" ERROR
	000244	012604 				 MOV	(SP)+,R4
   2243	000246	000741 				BR	CKCILS		; ERROR -- ILLEGAL SEPARATOR CHARACTER
   2244						;
   2245	000250				CKEEOC:
   2246	000250					ERROR$	EOC		; ERROR -- END OF COMMAND
	000250	012746 	020633 			 MOV	#^REOC,-(SP)
	000254	104400 				 TRAP	TC.ERR
   2247						;
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 52
.CKEOS -- CHECK END OF SYMBOL 7709.21

   2249					.SBTTL	.CKEOS -- CHECK END OF SYMBOL 7709.21
   2250
   2251					;+
   2252					; .CKEOS -- CHECK FOR A NON-BLANK END OF SYMBOL
   2253					;
   2254					; THIS ROUTINE CHECKS FOR A NON-BLANK END-OF-SYMBOL CHARACTER
   2255					;
   2256					; INPUT ARGUMENTS:
   2257					;
   2258					;	R5 POINTS TO THE END-OF-SYMBOL CHARACTER
   2259					;
   2260					; OUTPUT ARGUMENTS:
   2261					;
   2262					;	R5 IS UNCHANGED
   2263					;
   2264					; ERROR CODES RETURNED:
   2265					;
   2266					;	ILS -- ILLEGAL SEPARATOR CHRARACTER
   2267					;-
   2268
   2269	000256				.CKEOS::
   2270	000256	111504 				MOVB	(R5),R4		; GET THE CHARACTER INTO R4
   2271	000260	132764 	000020 	001450'		BITB	#CH.EOS,.CHTAB(R4)
   2272	000266	001731 				BEQ	CKCILS		; ILLEGAL IF NOT E-O-S
   2273	000270	122704 	000040 			CMPB	#.SPACE,R4	; IS IS A <SPACE>?
   2274	000274	001726 				BEQ	CKCILS		; YES -- COMPLAIN
   2275	000276					RETURN			; NO -- JUST RETURN
	000276	000207 				 RTS	PC
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 53
.CKOBJ -- CHECK FOR A TRAILING OBJECT 7709.21

   2277					.SBTTL	.CKOBJ -- CHECK FOR A TRAILING OBJECT 7709.21
   2278
   2279					;+
   2280					; .CKOBJ -- CHECK FOR A TRAILING OBJECT.
   2281					;
   2282					; THIS SUBROUTINE CHECKS TO SEE IF AN OBJECT SYMBOL FOLLOWS THE
   2283					; CURRENT SYMBOL.
   2284					;
   2285					; INPUT ARGUMENTS:
   2286					;
   2287					;	NONE.
   2288					;
   2289					; OUTPUT ARGUMENTS:
   2290					;
   2291					;	NONE.
   2292					;
   2293					; ERROR CODES RETURNED:
   2294					;
   2295					;	MRA -- MISSING REQUIRED ARGUMENT.
   2296					;-
   2297
   2298	000300				.CKOBJ::
   2299	000300					CALL	.CKSYM		; GET OVER LEADING BLANKS
	000300	004737 	000374'			 JSR	PC,.CKSYM
   2300	000304	132764 	000010 	001450'		BITB	#CH.EOC,.CHTAB(R4)
   2301	000312	001322 				BNE	CKCMRA		; ILLEGAL IF E-O-C
   2302	000314					RETURN			; NOT E-O-C -- RETURN
	000314	000207 				 RTS	PC
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 54
.CKRUN -- SUBROUTINE TO CHECK IF THE KL IS RUNNING 7601.12

   2304					.SBTTL	.CKRUN -- SUBROUTINE TO CHECK IF THE KL IS RUNNING 7601.12
   2305
   2306					;+
   2307					; .CKRUN -- SUBROUTINE TO CHECK IF THE KL IS RUNNING
   2308					; .CKRNP -- SPECIAL RUN CHECK FOR PROGRAMMER MODE
   2309					;
   2310					; THIS SUBROUTINE WILL CHECK IF THE KL IS RUNNING FROM ".KLFLG"
   2311					; OR IF THE FRONT END IS IN MAINTENANCE MODE.
   2312					;
   2313					; INPUT ARGUMENTS:
   2314					;
   2315					;	NONE.
   2316					;
   2317					; OUTPUT ARGUMENTS:
   2318					;
   2319					;	NONE.
   2320					;
   2321					; ERROR CODES RETURNED:
   2322					;
   2323					;	KLR -- KL IS RUNNING.
   2324					;-
   2325
   2326						.ENABL	LSB
   2327
   2328	000316				.CKRNP::
   2329	000316					PUSH	R0		; SAVE R0
	000316	010046 				 MOV	R0,-(SP)
   2330	000320	012700 	000002 			MOV	#LG.PRG,R0	; .SET PROGRAMMER ALLOWED
   2331	000324	000402 				BR	10$		; .AND CONTINUE TEST
   2332						;
   2333	000326				.CKRUN::
   2334	000326					PUSH	R0		; SAVE R0
	000326	010046 				 MOV	R0,-(SP)
   2335	000330	005000 				CLR	R0		; .CLEAR R0
   2336	000332				10$:
   2337	000332	052700 	000004 			BIS	#LG.MNT,R0	; .SET MAINTENANCE ALLOWED
   2338	000336					PUSH	.KLFLG		; .SAVE ".KLFLG"
	000336	013746 	000000G			 MOV	.KLFLG,-(SP)
   2339	000342	005116 				COM	(SP)		; ..INVERT ".KLFLG"
   2340	000344	032716 	140000 			BIT	#KF.RUN!KF.CLK,(SP)
   2341	000350	001003 				BNE	20$		; ..BRANCH IF THE KL IS NOT RUNNING
   2342	000352	030037 	000000G			BIT	R0,.FEMOD	; ..ARE WE IN ALLOWED MODE?
   2343	000356	001403 				BEQ	CKRKLR		; ..NO -- GIVE "KLR" ERROR
   2344	000360				20$:
   2345	000360	005726 				TST	(SP)+		; ..YES -- RESET THE STACK
   2346	000362					POP	R0		; .RESTORE R0
	000362	012600 				 MOV	(SP)+,R0
   2347	000364					RETURN			; TO CALLER
	000364	000207 				 RTS	PC
   2348
   2349						.DSABL	LSB
   2350
   2351	000366				CKRKLR:
   2352	000366					ERROR$	KLR		; ..ERROR -- KL IS RUNNING
	000366	012746 	043262 			 MOV	#^RKLR,-(SP)
	000372	104400 				 TRAP	TC.ERR
   2353						;
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 55
.CKSYM -- FIND THE FIRST CHARACTER IN A SYMBOL 7709.21

   2355					.SBTTL	.CKSYM -- FIND THE FIRST CHARACTER IN A SYMBOL 7709.21
   2356
   2357					;+
   2358					; .CKSYM -- SUBROUTINE TO FIND THE FIRST CHARACTER IN A SYMBOL.
   2359					;
   2360					; THIS SUBROUTINE WILL FIND THE FIRST NON-BLANK CHARACTER IN AN INPUT
   2361					; SYMBOL POINTED TO BY R5. THE SYMBOL IS THEN CHECKED TO SEE IF IT IS
   2362					; ALPAHBETIC, NUMERIC, OR A LEGAL PREFIX CHARACTER.
   2363					;
   2364					; INPUT ARGUMENTS:
   2365					;
   2366					;	R5 POINTS TO THE INPUT STREAM.
   2367					;
   2368					; OUTPUT ARGUMENTS:
   2369					;
   2370					;	R5 POINTS TO THE FIRST NON-BLANK CHARACTER.
   2371					;
   2372					; ERROR CODES RETURNED:
   2373					;
   2374					;	NONE.
   2375					;-
   2376
   2377	000374				.CKSYM::
   2378	000374	112504 				MOVB	(R5)+,R4	; GET THE CHARACTER
   2379	000376	122704 	000040 			CMPB	#.SPACE,R4	; IS IT A <SPACE>?
   2380	000402	001774 				BEQ	.CKSYM		; YES -- DO NEXT CHARACTER
   2381	000404	105745 				TSTB	-(R5)		; NO -- BACK THE POINTER UP
   2382	000406					RETURN			; TO CALLER
	000406	000207 				 RTS	PC
CHECK -- GENERAL ARGUMENT CHECK	MACRO M1113  10-NOV-81 17:44  PAGE 56
.EBPCK -- SUBROUTINE TO CHECK EBUS PARITY ERROR 7512.03

   2384					.SBTTL	.EBPCK -- SUBROUTINE TO CHECK EBUS PARITY ERROR 7512.03
   2385
   2386					;+
   2387					; .EBPCK -- SUBROUTINE TO CHECK FOR EBUS PARITY ERRORS
   2388					;
   2389					; THIS SUBROUTINE WILL CAUSE AN ERROR TRAP IF THE EBUS PARITY ERROR
   2390					; FLAG IS TRUE IN THE DTE-20 STATUS WORD.
   2391					;
   2392					; INPUT ARGUMENTS:
   2393					;
   2394					;	NONE.
   2395					;
   2396					; OUTPUT ARGUMENTS:
   2397					;
   2398					;	R0 CONTAINS A COPY OF THE DTE-20 STATUS WORD
   2399					;
   2400					; ERROR CODES RETURNED:
   2401					;
   2402					;	DSF -- DTE-20 STATUS FAILURE.
   2403					;	EPE -- EBUS PARITY ERROR.
   2404					;-
   2405
   2406	000410				.EBPCK::
   2407	000410					CALL	.DTSTA		; READ DTE-20 STATUS WORD
	000410	004737 	003546'			 JSR	PC,.DTSTA
   2408	000414	032700 	000020 			BIT	#ST.EPE,R0	; EBUS PARITY ERROR?
   2410	000420	001001 				BNE	EBPEPE		; YES -- GIVE "EPE" ERROR
   2412	000422					RETURN			; NO -- JUST RETURN
	000422	000207 				 RTS	PC
   2413	000424				EBPEPE:
   2414	000424					ERROR$	EPE		; ERROR -- EBUS PARITY ERROR
	000424	012746 	020705 			 MOV	#^REPE,-(SP)
	000430	104400 				 TRAP	TC.ERR
   2415						;
   2416					.TITLE	ERROR -- PARSER ERROR HANDLER MODULE 7609.24
   2417
   2418						.IDENT	"006020"
   2419					;
   2420					;                             COPYRIGHT (C) 1975, 1979 BY
   2421					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2422					;
   2423					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2424					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2425					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2426					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   2427					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2428					;
   2429					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2430					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2431					;       CORPORATION.
   2432					;
   2433					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2434					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2435					;
   2436					;		MODULE: ERROR HANDLER
   2437					;
   2438					;		VERSION: 06-02
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 56-1
.EBPCK -- SUBROUTINE TO CHECK EBUS PARITY ERROR 7512.03

   2439					;
   2440					;		AUTHOR: R. BELANGER
   2441					;
   2442					;		DATE: 7609.24
   2443					;
   2444					;	THIS MODULE CONTAINS:
   2445					;
   2446					;	1) ERROR DECODER
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 57
.PARER -- ERROR DECODE AND PRINT ROUTINE 7609.24

   2448					.SBTTL	.PARER -- ERROR DECODE AND PRINT ROUTINE 7609.24
   2449
   2450					;+
   2451					; .PARER -- ERROR DECODE AND PRINT ROUTINE.
   2452					;
   2453					; THIS ROUTINE WILL DECODE THE .RAD50 ERROR CODE PASSED TO IT IN R0
   2454					; AND PRINT AN APPROPRIATE ENGLISH ERROR MESSAGE. THIS ROUTINE IS
   2455					; CALLED FROM THE TRAP HANDLER, ".PTTRP".
   2456					;
   2457					; TWO ERROR CODE TABLES ARE SCANNED, ONE FOR SPECIAL ERRORS AND ONE FOR
   2458					; NORMAL ERRORS, UNTIL A MATCH IS FOUND. IF NO MATCH IS FOUND, ".PARER"
   2459					; WILL ISSUE A "UEC" ERROR CODE.
   2460					;
   2461					; THE SPECIAL ERROR CODES REQUIRE SPECIAL HANDLING BY SEPARATE ROUTINES,
   2462					; THIER ENTRIES LOOK LIKE THIS:
   2463					;
   2464					;	!===============================!
   2465					;	!	.RAD50 ERROR CODE	!
   2466					;	!-------------------------------!
   2467					;	!	DISPATCH ADDRESS	!
   2468					;	!-------------------------------!
   2469					;	!	MESSAGE POINTER		!
   2470					;	!===============================!
   2471					;
   2472					; THE NORMAL ERRORS SIMPLY REQUIRE THAT THE ERROR MESSAGE BE PRINTED
   2473					; AND THE ENTRIES IN THIER TABLE LOOK LIKE THIS:
   2474					;
   2475					;	!===============================!
   2476					;	!	.RAD50 ERROR CODE	!
   2477					;	!-------------------------------!
   2478					;	!	MESSAGE POINTER		!
   2479					;	!===============================!
   2480					;
   2481					; INPUT ARGUMENTS:
   2482					;
   2483					;	R0 HOLDS THE .RAD50 ERROR CODE
   2484					;
   2485					; OUTPUT ARGUMENTS:
   2486					;
   2487					;	NONE.
   2488					;
   2489					; ERROR MESSAGES RETURNED:
   2490					;
   2491					;	IF THE CONSOLE DEVICE CANNOT BE ATTACHED OR DEATCHED,
   2492					;	THE PARSER EXITS.
   2493					;
   2494					;	UEC -- UNMATCHED ERROR CODE.
   2495					;-
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 58
.PARER -- ERROR DECODE AND PRINT ROUTINE 7609.24

   2497	000432				.PARER::
   2498	000432					PUSH	<R0,R1,R2>	; SAVE CALLER'S REGISTERS
	000432	010046 				 MOV	R0,-(SP)
	000434	010146 				 MOV	R1,-(SP)
	000436	010246 				 MOV	R2,-(SP)
   2499	000440	012701 	006622'			MOV	#.SPETB,R1	; ...SPECIAL ERRORS GET CHECKED FIRST
   2500	000444				10$:
   2501	000444	012102 				MOV	(R1)+,R2	; ...ERROR CODE TO R2
   2502	000446	001405 				BEQ	30$		; ...END-OF-TABLE TRY OTHER ERROR CODES
   2503	000450	020002 				CMP	R0,R2		; ...DO THEY MATCH?
   2504	000452	001402 				BEQ	20$		; ...YES -- DISPATCH TO SPECIAL HANDLER
   2505	000454	022121 				CMP	(R1)+,(R1)+	; ...NO -- GET OVER DISPATCH
   2506	000456	000772 				BR	10$		; ...AND TRY THE NEXT ONE
   2507						;
   2508	000460				20$:
   2509	000460	000131 				JMP	@(R1)+		; ...AWAY TO SPECIAL ROUTINE
   2510						;
   2511	000462				30$:
   2512	000462	012701 	005444'			MOV	#.NSETB,R1	; ...TABLE POINTER TO R1
   2513	000466				40$:
   2514	000466	012102 				MOV	(R1)+,R2	; ...ERROR CODE TO R2
   2515	000470	001521 				BEQ	PARUEC		; ...END-OF-TABLE -- GIVE UEC ERROR
   2516	000472	020002 				CMP	R0,R2		; ...DO THEY MATCH?
   2517	000474	001402 				BEQ	50$		; ...YES -- PRINT THE MESSAGE
   2518	000476	005721 				TST	(R1)+		; ...NO -- GET OVER MESSAGE POINTER
   2519	000500	000772 				BR	40$		; ...AND TRY NEXT CODE
   2520						;
   2521	000502				50$:
   2522	000502					CALL	PARERC		; ...DO COMMON OUTPUT CODE
	000502	004737 	000662'			 JSR	PC,PARERC
   2523	000506				PARERX:
   2524	000506					POP	<R2,R1,R0>	; ...RESTORE THE REGISTERS
	000506	012602 				 MOV	(SP)+,R2
	000510	012601 				 MOV	(SP)+,R1
	000512	012600 				 MOV	(SP)+,R0
   2525	000514					CALLR	.TCRLF		; END THE LINE AND RETURN
	000514	000137 	015536'			 JMP	.TCRLF
   2526						;
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 59
.PARER -- SPECIAL ERROR ROUTINES 7609.24

   2528					.SBTTL	.PARER -- SPECIAL ERROR ROUTINES 7609.24
   2529
   2530						.ENABL	LSB
   2531
   2532	000520				.SEAMB::
   2533	000520				.SENSK::
   2534	000520					CALL	PARERC		; ...DO COMMON CODE
	000520	004737 	000662'			 JSR	PC,PARERC
   2535	000524				10$:
   2536	000524	112500 				MOVB	(R5)+,R0	; ...LOAD THE OFFENDING SYMBOL
   2537	000526	132760 	000034 	001450'		BITB	#CH.END,.CHTAB(R0)
   2538	000534	001017 				BNE	30$		; ...UNTIL THE END
   2539	000536					CALL	.TYCHR		; ...OUTPUT THE CHARACTER
	000536	004737 	015504'			 JSR	PC,.TYCHR
   2540	000542	000770 				BR	10$		; ...CONTINUE
   2541						;
   2542	000544				.SEILC::
   2543	000544				.SEILS::
   2544	000544				.SEIPC::
   2545	000544					CALL	PARERC		; ...DO COMMON CODE
	000544	004737 	000662'			 JSR	PC,PARERC
   2546	000550	110400 				MOVB	R4,R0		; ...GET THE CHARACTER
   2547	000552	122700 	000040 			CMPB	#.SPACE,R0	; ...IS IT A CONTROL CHARACTER?
   2548	000556	003404 				BLE	20$		; ...NO -- JUST PRINT IT
   2549	000560					CALL	.TYUPA		; ...YES -- TYPE AN <UPARROW>
	000560	004737 	014576'			 JSR	PC,.TYUPA
   2550	000564	052700 	000100 			BIS	#100,R0		; ...MAKE IT A PRINTING CHARACTER
   2551	000570				20$:
   2552	000570					CALL	.TYCHR		; ...PRINT THE CHARACTER
	000570	004737 	015504'			 JSR	PC,.TYCHR
   2553	000574				30$:
   2554	000574	112700 	000042 			MOVB	#'",R0		; ...END QUOTE
   2555	000600					CALL	.TYCHR		; ...PRINT THAT
	000600	004737 	015504'			 JSR	PC,.TYCHR
   2556	000604	000740 				BR	PARERX		; ...AND EXIT
   2557						;
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 60
.PARER -- SPECIAL ERROR ROUTINES 7609.24

   2559	000606				.SEFRF::
   2560	000606					PUSH	.KLDFR+2	; ...SAVE THE READ CODE
	000606	013746 	000340'			 MOV	.KLDFR+2,-(SP)
   2561	000612	000405 				BR	40$		; ....TO COMMON CODE
   2562						;
   2563	000614				.SEFWF::
   2564	000614					PUSH	.KLDFW+2	; ...SAVE THE WRITE CODE
	000614	013746 	000352'			 MOV	.KLDFW+2,-(SP)
   2565	000620	000402 				BR	40$		; ....TO COMMON CODE
   2566						;
   2567	000622				.SEFXF::
   2568	000622					PUSH	.KLDFX+2	; ...SAVE THE EXECUTE CODE
	000622	013746 	000364'			 MOV	.KLDFX+2,-(SP)
   2569	000626				40$:
   2570	000626					CALL	PARERC		; ....DO COMMON STUFF
	000626	004737 	000662'			 JSR	PC,PARERC
   2571	000632					POP	R0		; ....GET THE CODE
	000632	012600 				 MOV	(SP)+,R0
   2572	000634	000300 				SWAB	R0		; ...SWAP THE BYTES
   2573	000636	042700 	177400 			BIC	#^C377,R0	; ...CLEAR JUNK
   2574	000642	006200 				ASR	R0		; ...DIVIDE BY 2
   2575	000644					CALL	.TYP3D		; ...PRINT CODE
	000644	004737 	015016'			 JSR	PC,.TYP3D
   2576	000650	012700 	000050'			MOV	#FLDMSG,R0	; ...END MESSAGE
   2577	000654					CALL	.TYMSG		; ...PRINT IT
	000654	004737 	015446'			 JSR	PC,.TYMSG
   2578	000660	000712 				BR	PARERX		; ...AND EXIT
   2579						;
   2580
   2581	000050				.PSECT	MESSAG
   2582
   2583	000050				FLDMSG:
   2584	000050	   040 	   106 	   101 		.ASCIZ	% FAILED%
	000053	   111 	   114 	   105
	000056	   104 	   000
   2585	000662				.PSECT
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 61
.PARER -- SPECIAL ERROR ROUTINES 7609.24

   2587					; THIS IS THE COMMON ERROR CODE ROUTINE
   2588
   2589	000662				PARERC:
   2590	000662	012700 	000011'			MOV	#PARMSG,R0	; ...PREAMBLE
   2591	000666					CALL	.TYMSG		; ...PRINT IT
	000666	004737 	015446'			 JSR	PC,.TYMSG
   2592	000672	012700 	000133 			MOV	#'[,R0		; ...LEFT BRACKET
   2593	000676					CALL	.TYCHR		; ...PRINT IT
	000676	004737 	015504'			 JSR	PC,.TYCHR
   2594	000702	013700 	000002'			MOV	.CCMDN,R0	; ...CURRENT COMMAND NAME
   2595	000706					CALL	.TYMSG		; ...PRINT IT
	000706	004737 	015446'			 JSR	PC,.TYMSG
   2596	000712	012700 	000135 			MOV	#'],R0		; ...RIGHT BRACKET
   2597	000716					CALL	.TYCHR		; ...PRINT IT
	000716	004737 	015504'			 JSR	PC,.TYCHR
   2598	000722					CALL	.TYSPC		; ...<SPACE>
	000722	004737 	014566'			 JSR	PC,.TYSPC
   2599	000726	011100 				MOV	(R1),R0		; ...ERROR MESSAGE
   2600	000730					CALLR	.TYMSG		; ...PRINT IT AND RETURN
	000730	000137 	015446'			 JMP	.TYMSG
   2601						;
   2602	000734				PARUEC:
   2603	000734					PUSH	R0		; ...SAVE THE ERROR CODE
	000734	010046 				 MOV	R0,-(SP)
   2604	000736	012701 	001612'			MOV	#UECMSP,R1	; ...."UEC" MESSAGE POINTER TO R1
   2605	000742					CALL	PARERC		; ....DO COMMON CODE
	000742	004737 	000662'			 JSR	PC,PARERC
   2606	000746					POP	R0		; ....RESTORE THE ERROR CODE
	000746	012600 				 MOV	(SP)+,R0
   2607	000750					CALL	.TYR50		; ...PRINT IT
	000750	004737 	015756'			 JSR	PC,.TYR50
   2608	000754	000707 				BR	30$		; ...AND EXIT
   2609						;
   2610
   2611						.DSABL	LSB
   2612
   2613	001612				.PSECT	DATA
   2614
   2615	001612				UECMSP:
   2616	001612	000060'				.WORD	UECMSG
   2617
   2618	000060				.PSECT	MESSAG
   2619
   2620	000060				UECMSG:
   2621	000060	   125 	   116 	   115 		.ASCIZ	%UNMATCHED ERROR CODE "%
	000063	   101 	   124 	   103
	000066	   110 	   105 	   104
	000071	   040 	   105 	   122
	000074	   122 	   117 	   122
	000077	   040 	   103 	   117
	000102	   104 	   105 	   040
	000105	   042 	   000
   2622
   2623	000756				.PSECT
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 62
.PARER -- SPECIAL ERROR ROUTINES 7609.24

   2625	000756				.SECES::
   2626	000756					CALL	PARERC		; ...DO COMMON CODE
	000756	004737 	000662'			 JSR	PC,PARERC
   2627	000762					CALL	.RDIPE		; ...READ THE ERROR BITS
	000762	004737 	006670'			 JSR	PC,.RDIPE
   2628	000766					PUSH	R0		; ....SAVE THEM
	000766	010046 				 MOV	R0,-(SP)
   2629	000770	001420 				BEQ	30$		; ....BAD NEWS IF NONE THERE
   2630	000772	012701 	001614'			MOV	#SPCEST,R1	; ....TABLE POINTER TO R1
   2631	000776				10$:
   2632	000776	032716 	000001 			BIT	#BIT00,(SP)	; ....IS THE BIT ON
   2633	001002	001407 				BEQ	20$		; ....NO -- GO ON
   2634	001004	011100 				MOV	(R1),R0		; ....YES -- SAY SO
   2635	001006					CALL	.TYMSG		; ....PRINT IT
	001006	004737 	015446'			 JSR	PC,.TYMSG
   2636	001012					CALL	.TYCOM		; ....PRINT A COMMA
	001012	004737 	014536'			 JSR	PC,.TYCOM
   2637	001016					CALL	.TYSPC		; ....AND A SPACE
	001016	004737 	014566'			 JSR	PC,.TYSPC
   2638	001022				20$:
   2639	001022	005721 				TST	(R1)+		; ....ADVANCE THE POINTER
   2640	001024	006216 				ASR	(SP)		; ....SHIFT THE ERROR BITS
   2641	001026	001363 				BNE	10$		; ....AND KEEP GOING
   2642	001030	000404 				BR	40$		; ....FINISHED -- EXIT
   2643						;
   2644	001032				30$:
   2645	001032	012700 	000122'			MOV	#NEBMSG,R0	; ....NO ERROR BIT ARE SET
   2646	001036					CALL	.TYMSG		; ....SAY SO
	001036	004737 	015446'			 JSR	PC,.TYMSG
   2647	001042				40$:
   2648	001042	005726 				TST	(SP)+		; ....FLUSH THE STACK
   2649	001044	000620 				BR	PARERX		; ...AND EXIT
   2650						;
   2651
   2652	001614				.PSECT	DATA
   2653
   2654	001614				SPCEST:
   2655	001614	000107'				.WORD	ERSMSG
   2656	001616	001521'				.WORD	DRMMSG
   2657	001620	001376'				.WORD	CRMMSG
   2658	001622	001020'				.WORD	FMMSG
   2659	001624	001535'				.WORD	FSSMSG
   2660
   2661	001046				.PSECT
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 63
.PARER -- SPECIAL ERROR ROUTINES 7609.24

   2663	000107				.PSECT	MESSAG
   2664
   2665	000107				ERSMSG:
   2666	000107	   105 	   122 	   122 		.ASCIZ	%ERROR STOP%
	000112	   117 	   122 	   040
	000115	   123 	   124 	   117
	000120	   120 	   000
   2667	000122				NEBMSG:
   2668	000122	   116 	   117 	   040 		.ASCIZ	%NO ERROR STOP BITS SET%
	000125	   105 	   122 	   122
	000130	   117 	   122 	   040
	000133	   123 	   124 	   117
	000136	   120 	   040 	   102
	000141	   111 	   124 	   123
	000144	   040 	   123 	   105
	000147	   124 	   000
   2669
   2670	001046				.PSECT
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 64
.PTDIE -- RECURSIVE TRAP HANDLER 7609.24

   2672					.SBTTL	.PTDIE -- RECURSIVE TRAP HANDLER 7609.24
   2673
   2674					;+
   2675					; .PTDIE -- RECURSIVE TRAP HANDLER.
   2676					;
   2677					; THIS ROUTINE HANDLES RECURSIVE TRAPS, WHICH ARE FATAL ERRORS. THE
   2678					; OTHER TRAP HANDLERS IN "PARTRP" ENABLE THIS HANDLER BY PLACING ITS
   2679					; ENTRY POINT IN THE APPROPRIATE PLACE IN THE SST VECTOR TABLE.
   2680					; ".PTDIE" WILL PRINT A MESSAGE WITH THE PC OF THE RECURSIVE TRAP AND
   2681					; EXIT TO THE SYSTEM VIA AN "IOT" TRAP. THIS ROUTINE IS ENTERED WITH
   2682					; THE TRAP PC AND PSW ON THE STACK IN THE NORMAL MANNER.
   2683					;
   2684					; ERROR CODES RETURNED:
   2685					;
   2686					;	NONE.
   2687					;-
   2688
   2689
   2690	001046				.PTDIE::
   2691	001046	005337 	000240'			DEC	.TRPIP		; ..DECREMENT THE INTERLOCK
   2692	001052	001423 				BEQ	20$		; ..KILL NOW IF RECURSIVE
   2693	001054					PUSH	R0		; ..SAVE R0
	001054	010046 				 MOV	R0,-(SP)
   2694	001056	012700 	000264'			MOV	#.SSTTB,R0	; ...TABLE POINTER TO R0
   2695	001062				10$:
   2696	001062	005020 				CLR	(R0)+		; ...CLEAR THIS ENTRY
   2697	001064	020027 	000302'			CMP	R0,#SSTTBE	; ...ARE WE DONE?
   2698	001070	003774 				BLE	10$		; ...NO -- KEEP GOING
   2699	001072					CALL	.TCRLF		; ...START THE LINE
	001072	004737 	015536'			 JSR	PC,.TCRLF
   2700	001076	012700 	000151'			MOV	#PTRTEM,R0	; ...RECURSIVE ERROR MESSAGE
   2701	001102					CALL	.TYLIN		; ...PRINT IT
	001102	004737 	015432'			 JSR	PC,.TYLIN
   2702	001106	016600 	000002 			MOV	2(SP),R0	; ...GET THE TRAP PC
   2703	001112					CALL	.TYELN		; ...TYPE THAT
	001112	004737 	014752'			 JSR	PC,.TYELN
   2704	001116					CALL	.TCRLF		; ...END THE LINE
	001116	004737 	015536'			 JSR	PC,.TCRLF
   2705	001122				20$:
   2706	001122	000004 				IOT			; ...AND GO AWAY
   2707						;
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 65
.PTTRP -- "TRAP" INSTRUCTION TRAP HANDLER 7609.24

   2709					.SBTTL	.PTTRP -- "TRAP" INSTRUCTION TRAP HANDLER 7609.24
   2710
   2711					;+
   2712					; .PTTRP -- "TRAP" INSTRUCTION TRAP HANDLER.
   2713					;
   2714					; THIS ROUTINE HANDLES TRAPS FROM THE "TRAP" INSTRUCTION, WHICH IS USED
   2715					; BY THE RSX20F COMMAND PARSER TO HANDLE INTERNAL ERRORS. THE ACTION
   2716					; TAKEN BY THIS ROUTINE IS DICTATED BY THE TRAP STATUS BYTE, WHICH IS
   2717					; THE FIRST ITEM ON THE STACK UPON ENTRY. THERE ARE FOUR STATUS CODES
   2718					; WHICH ARE RETURNED IN THE TRAP STATUS BYTE:
   2719					;
   2720					; (A) "TC.CTC" -- CONTROL-C TRAP -- SAME EFFECT AS "TC.RST", EXCEPT THAT NO
   2721					;		  ERROR MESSAGE IS TYPED. THE VALUE OF "TC.CTC" IS +2.
   2722					;
   2723					; (B) "TC.RST" -- ABORT THE CURRENT PROCESS AND ATTEMPT TO RESTORE THE
   2724					;		  STATE OF THE KL. THE "ABORT$" MACRO (Q.V.) GENERATES
   2725					;		  THIS CODE. THE PREVIOUS STATE OF THE KL MAY BE
   2726					;		  RECOVERED FROM THESE ERRORS. THE VALUE OF "TC.RST" IS +1.
   2727					;
   2728					; (C) "TC.ERR" -- SIMPLY ABORT THE CURRENT PROCESS AND RETURN TO THE MAIN
   2729					;		  THE MAIN PARSER. THE "ERROR$" MACRO (Q.V.) GENERATES
   2730					;		  THIS CODE. THESE ERRORS DO NOT USUALLY AFFECT THE STATE
   2731					;		  OF THE KL. THE VALUE OF "TC.ERR" IS 0.
   2732					;
   2733					; (D) "TC.CON" -- SIMPLY REPORT THE ERROR AND CONTINUE THE PROCESS.
   2734					;		  THIS CODE IS GENERATED BY THE "ERCON$" MACRO (Q.V.)
   2735					;		  THESE ERRORS ALLOW ERROR SPECIFIC RECOVERY TO BE
   2736					;		  ATTEMPTED. THE VALUE OF "TC.CON" IS -1.
   2737					;
   2738					; THE DECISION TO RECOVER OR NOT IS MADE BASED ON THE TRAP STATUS BYTE,
   2739					; AFTER WHICH THE ERROR CODE IS PICKED UP, DECODED AND PRINTED BY ".PARER".
   2740					;
   2741					; UPON ENTRY TO THE TRAP INSTRUCTION TRAP HANDLER, THE STACK CONTAINS
   2742					; THE FOLLOWING INFORMATION:
   2743					;
   2744					;		!=======================================!
   2745					; 6(SP)==>	!	    TRAP ERROR CODE		!
   2746					;		!---------------------------------------!
   2747					; 4(SP)==>	!      TRAP PROCESSOR STATUS WORD	!
   2748					;		!---------------------------------------!
   2749					; 2(SP)==>	!	  TRAP PROGRAM COUNTER		!
   2750					;		!---------------------------------------!
   2751					; (SP)==>	!	  TRAP STATUS BYTE * 2		!
   2752					;		!=======================================!
   2753					;
   2754					; EXECUTION MAY BE RESUMED AFTER THE TRAP BY ISSUING AN "RTI" INSTRUCTION.
   2755					;
   2756					; ERROR CODES RETURNED:
   2757					;
   2758					;	RTH -- RECURSION IN TRAP HANDLER.
   2759					;	UEC -- UNMATCHED ERROR CODE.
   2760					;-
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 66
.PTTRP -- "TRAP" INSTRUCTION TRAP HANDLER 7609.24

   2762	001124				.PTTRP::
   2763	001124	005037 	000230'			CLR	.SWPIP		; [5.1002]CLEAR SWEEP IN PROGRESS FLAG
   2764	001130	005337 	000240'			DEC	.TRPIP		; ....DECREMENT THE TRAP IN PROGRESS FLAG
   2765	001134	002471 				BLT	30$		; ....SECOND RECURSION -- KILL TASK
   2766	001136	011637 	000246'			MOV	(SP),.TRPSB	; ....SAVE THE TRAP STATUS BYTE
   2767	001142	016637 	000002 	000242'		MOV	2(SP),.TRPPC	; ....SAVE THE TRAP PC
   2768	001150	016637 	000004 	000244'		MOV	4(SP),.TRPPS	; ....SAVE THE TRAP PSW
   2769	001156	016637 	000006 	000236'		MOV	6(SP),.TRPEC	; ....SAVE THE TRAP ERROR CODE
   2770	001164					CALL	R5,.REGSV	; ....SAVE TRAP REGISTERS
	001164	004537 	010302'			 JSR	R5,.REGSV
   2771	001170					PUSH	R0		; ....SAVE R0 TOO
	001170	010046 				 MOV	R0,-(SP)
   2772	001172	105737 	000246'			TSTB	.TRPSB		; .....TEST THE TRAP STATUS BYTE
   2773	001176	003405 				BLE	10$		; .....DON'T TRY TO RECOVER THE KL
   2774	001200	005737 	000226'			TST	.SVKLF		; .....DID WE SAVE THE PREVIOUS STATE?
   2775	001204	001402 				BEQ	10$		; .....NO -- FORGET RECOVERY
   2776	001206					CALL	.RSTKL		; .....RESTORE THE KL
	001206	004737 	007204'			 JSR	PC,.RSTKL
   2777	001212				10$:
   2778	001212	013737 	000206'	000134'		MOV	.RDXSV,.IRADX	; .....RESET THE INPUT RADIX
   2779	001220	013737 	000206'	000174'		MOV	.RDXSV,.ORADX	; .....AND OUTPUT RADIX
   2780	001226	122737 	000004 	000246'		CMPB	#TC.CTC*2,.TRPSB; .....WAS THIS A CONTROL-C TRAP?
   2781	001234	001425 				BEQ	20$		; .....YES -- JUST RESTART THE PARSER
   2782	001236	013700 	000250'			MOV	.TRPTV,R0	; .....NO -- IS THIS A NORMAL TRAP??
   2783	001242	001406 				BEQ	15$		; .....YES -- GO ON
   2784	001244	010006 				MOV	R0,SP		; .....NO -- RESET THE STACK
   2785	001246	005237 	000240'			INC	.TRPIP		; .....RESET TRAP IN PROGRESS FLAG
   2786	001252	005037 	000250'			CLR	.TRPTV		; .....RESET THE TRAP TRAP VECTOR
   2787	001256					CALLR	@(SP)+		; .....AND GO AWAY TO OTHER ROUTINE
	001256	000136 				 JMP	@(SP)+
   2788						;
   2789	001260				15$:
   2790	001260					CALL	.TCRLF		; .....GIVE A FREE <CRLF>
	001260	004737 	015536'			 JSR	PC,.TCRLF
   2791	001264	013700 	000236'			MOV	.TRPEC,R0	; .....GET THE ERROR CODE IN R0
   2792	001270					CALL	.PARER		; .....DECODE AND PRINT THE ERROR
	001270	004737 	000432'			 JSR	PC,.PARER
   2793	001274	005737 	000240'			TST	.TRPIP		; .....IS THIS A RECURSIVE TRAP?
   2794	001300	001407 				BEQ	30$		; .....YES -- GIVE UP
   2795	001302	105737 	000246'			TSTB	.TRPSB		; .....TEST THE TRAP STATUS BYTE
   2796	001306	002413 				BLT	40$		; .....RECOVER THE ERROR
   2797	001310				20$:
   2798	001310	005237 	000240'			INC	.TRPIP		; .....RESET TRAP IN PROGRESS FLAG
   2799	001314	000177 	000222'			JMP	@.STRTV		; .....RESTART THE PARSER
   2800						;
   2801
   2802					;	[CONTINUED ON THE FOLLOWING PAGE]
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 67
.PTTRP -- "TRAP" INSTRUCTION TRAP HANDLER 7609.24

   2804					;	[CONTINUED FROM THE PREVIOUS PAGE]
   2805
   2806	001320				30$:				; .....HERE ON RECURSIVE TRAP
   2807	001320	012700 	000221'			MOV	#PTRTHM,R0	; .....MESSAGE POINTER
   2808	001324					CALL	.TYLIN		; .....PRINT IT
	001324	004737 	015432'			 JSR	PC,.TYLIN
   2809	001330					CALL	.TCRLF		; .....END THE LINE
	001330	004737 	015536'			 JSR	PC,.TCRLF
   2810	001334	000004 				IOT			; .....AND GO "RIBIT"
   2811						;
   2812	001336				40$:				; .....HERE TO RECOVER THE ERROR
   2813	001336	005237 	000240'			INC	.TRPIP		; .....DECREMENT THE INTERLOCK
   2814	001342					POP	R0		; .....RESTORE R0
	001342	012600 				 MOV	(SP)+,R0
   2815	001344					CALL	@(SP)+		; ....AND THE OTHER REGISTERS
	001344	004736 				 JSR	PC,@(SP)+
   2816	001346	005726 				TST	(SP)+		; ....GET OVER THE TRAP STATUS BYTE
   2817	001350	000002 				RTI			; ...TO WHEREVER WE WERE CALLED FROM
   2818						;
   2819
   2820	000151				.PSECT	MESSAG
   2821
   2822	000151				PTRTEM:
   2823	000151	   120 	   101 	   122 		.ASCIZ	%PAR -- *FATAL* RECURSIVE TRAP FROM PC: %
	000154	   040 	   055 	   055
	000157	   040 	   052 	   106
	000162	   101 	   124 	   101
	000165	   114 	   052 	   040
	000170	   122 	   105 	   103
	000173	   125 	   122 	   123
	000176	   111 	   126 	   105
	000201	   040 	   124 	   122
	000204	   101 	   120 	   040
	000207	   106 	   122 	   117
	000212	   115 	   040 	   120
	000215	   103 	   072 	   040
	000220	   000
   2824	000221				PTRTHM:
   2825	000221	   120 	   101 	   122 		.ASCIZ	%PAR -- RTH - RECURSION IN TRAP HANDLER%
	000224	   040 	   055 	   055
	000227	   040 	   122 	   124
	000232	   110 	   040 	   055
	000235	   040 	   122 	   105
	000240	   103 	   125 	   122
	000243	   123 	   111 	   117
	000246	   116 	   040 	   111
	000251	   116 	   040 	   124
	000254	   122 	   101 	   120
	000257	   040 	   110 	   101
	000262	   116 	   104 	   114
	000265	   105 	   122 	   000
   2826
   2827	001352				.PSECT
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 68
.PTOAT -- TRAP AT 4 TRAP HANDLER 7601.15

   2829					.SBTTL	.PTOAT -- TRAP AT 4 TRAP HANDLER 7601.15
   2830
   2831					;+
   2832					; .PTOAT -- TRAP AT 4 TRAP HANDLER.
   2833					;
   2834					; THIS ROUTINE HANDLES TRAP AT 4 TRAPS FOR THE RSX20F COMMAND PARSER.
   2835					; AN ERROR MESSAGE WITH THE PC OF THE TRAP AT 4 TRAP IS PRINTED ON THE
   2836					; CONSOLE AND THE CURRENT OPERATION IS ABORTED. IF THE TRAP IS RECURSIVE,
   2837					; CONTROL IS PASSED TO ".PTDIE", AS THE TASK IS HOPELESSLY CONFUSED.
   2838					;
   2839					; UPON ENTRY TO THE TRAP AT 4 TRAP HANDLER, THE STACK CONTAINS
   2840					; THE FOLLOWING INFORMATION:
   2841					;
   2842					;		!=======================================!
   2843					; 2(SP)==>	!      TRAP PROCESSOR STATUS WORD	!
   2844					;		!---------------------------------------!
   2845					; (SP)==>	!	  TRAP PROGRAM COUNTER		!
   2846					;		!=======================================!
   2847					;
   2848					; ERROR CODES RETURNED:
   2849					;
   2850					;	NONE.
   2851					;-
   2852
   2853	001352				.PTOAT::
   2854	001352					POP	.TRPPC		; ..SAVE THE TRAP PC
	001352	012637 	000242'			 MOV	(SP)+,.TRPPC
   2855	001356					POP	.TRPPS		; .AND THE TRAP PSW
	001356	012637 	000244'			 MOV	(SP)+,.TRPPS
   2856	001362					CALL	R5,.REGSV	; SAVE THE REGISTERS FROM TRAP
	001362	004537 	010302'			 JSR	R5,.REGSV
   2857	001366					PUSH	R0		; AND R0
	001366	010046 				 MOV	R0,-(SP)
   2858	001370	012737 	001046'	000264'		MOV	#.PTDIE,.SSTTB	; .SET UP TO DIE ON RECURSION
   2859	001376					CALL	.TCRLF		; .GIVE A FREE <CRLF>
	001376	004737 	015536'			 JSR	PC,.TCRLF
   2860	001402	012700 	000270'			MOV	#PTOATM,R0	; .GET THE MESSAGE POINTER
   2861	001406					CALL	.TYMSG		; .TYPE IT
	001406	004737 	015446'			 JSR	PC,.TYMSG
   2862	001412	013700 	000102'			MOV	.EDELA,R0	; .ADDRESS TO R0
   2863	001416					CALL	.TYELN		; .TYPE THAT
	001416	004737 	014752'			 JSR	PC,.TYELN
   2864	001422					CALL	.TCRLF		; .AND A CRLF
	001422	004737 	015536'			 JSR	PC,.TCRLF
   2866	001426	005737 	000064'			TST	.DBGSW		; .IS THE DEBUG SWITCH SET?
   2867	001432	001403 				BEQ	10$		; .NO -- JUST RESTART
   2868	001434					POP	R0		; .RESTORE R0
	001434	012600 				 MOV	(SP)+,R0
   2869	001436					CALL	@(SP)+		; .AND THE REGISTERS
	001436	004736 				 JSR	PC,@(SP)+
   2870	001440	000000 				HALT			; SO WE CAN LOOK
   2871	001442				10$:
   2873	001442	005037 	000264'			CLR	.SSTTB		; RESET THE TRAP VECTOR
   2874	001446	000177 	000222'			JMP	@.STRTV		; .AND START OVER
   2875						;
   2876
   2877	000270				.PSECT	MESSAG
ERROR -- PARSER ERROR HANDLER M	MACRO M1113  10-NOV-81 17:44  PAGE 68-1
.PTOAT -- TRAP AT 4 TRAP HANDLER 7601.15

   2878
   2879	000270				PTOATM:
   2880	000270	   120 	   101 	   122 		.ASCIZ	%PAR -- ILLEGAL MEMORY REFERENCE TO: %
	000273	   040 	   055 	   055
	000276	   040 	   111 	   114
	000301	   114 	   105 	   107
	000304	   101 	   114 	   040
	000307	   115 	   105 	   115
	000312	   117 	   122 	   131
	000315	   040 	   122 	   105
	000320	   106 	   105 	   122
	000323	   105 	   116 	   103
	000326	   105 	   040 	   124
	000331	   117 	   072 	   040
	000334	   000
   2881
   2882	001452				.PSECT
   2883					.TITLE	FILIO -- FILE INTERFACE ROUTINES
   2884
   2885						.IDENT	"006150"
   2886
   2887					;                             COPYRIGHT (C) 1975, 1978, 1979 BY
   2888					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2889					;
   2890					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2891					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2892					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2893					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   2894					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2895					;
   2896					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2897					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2898					;       CORPORATION.
   2899					;
   2900					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2901					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2902					;
   2903					;		MODULE: PARSER FILE INTERFACE ROUTINES
   2904					;
   2905					;		VERSION: 06-15
   2906					;
   2907					;		AUTHOR: K. LEFEBVRE
   2908					;
   2909					;		DATE: 29-AUG-79
   2910					;
   2911					;	THIS MODULE CONTAINS:
   2912					;
   2913					;	1) FILE ACCESSING ROUTINES
   2914					;	2) FILE READ ROUTINES
   2915					;	3) FILE WRITE ROUTINES
   2916					;
   2917					;
   2918					;		THESE ROUTINES WERE ADDED FOR TCO 5.1000
   2919
   2920						.MCALL	DIR$,ALUN$,QIOW$,QIOW$S
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 69
FILE INTERFACE DATA

   2922					.SBTTL	FILE INTERFACE DATA
   2923
   2924	001626				.PSECT	DATA
   2925
   2927
   2928	001626				.INDFG::			; INDIRECT COMMAND FILE FLAG
   2929	001626	000000 				.WORD	0
   2930
   2932	001630				.FISTS::			; FILE I/O STATUS BLOCK
   2933	001630	000000 	000000 			.WORD	0,0
   2934
   2935		001000 			.BUFSZ==1000			; BUFFER SIZE
   2936
   2938
   2939	001634				.INFN::				; INDIRECT COMMAND FILE NAME
   2940	001634	000000 	000000 	000000 		.WORD	0,0,0			; FILE NAME
   2941	001642	012314 				.RAD50	/CMD/			; EXTENSION
   2942	001644	000000 				.WORD	0			; VERSION
   2943	001646	   005 	   005 			.BYTE	5,5			; OWNER
   2944	001650	054523 				.WORD	"SY			; DEVICE
   2945	001652	000000 				.WORD	0			; UNIT
   2946
   2947	001654				.INVBN::			; CURRENT VIRTUAL BLOCK NO.
   2948	001654	000000 	000000 			.WORD	0,0
   2949	001660				.INBBC::			; INPUT BUFFER BYTE COUNT
   2950	001660	000000 				.WORD	0
   2951	001662				.INPOS::			; INPUT BUFFER CURRENT POSITION
   2952	001662	000000 				.WORD	0
   2953	001664				.INBUF::			; INPUT BUFFER
   2954	001664					.BLKW	.BUFSZ/2
   2955
   2956	002664				.INFNB::			; INPUT FILE NAME BLOCK
   2957	002664	000000 	000000 	000000 		.WORD	0,0,0			; N.FID
   2958	002672	140123 	140123 	000000 		.RAD50	/005005   /		; N.FNAM
   2959	002700	015172 				.RAD50	/DIR/			; N.FTYP
   2960	002702	000000 				.WORD	0			; N.FVER
   2961	002704	000000 				.WORD	0			; N.STAT
   2962	002706	000000 				.WORD	0			; N.NEXT
   2963	002710	177777 	177777 			.WORD	-1,-1			; DIRECTORY FID
   2964	002714	   005 	   005 			.BYTE	5,5			; OWNER
   2965
   2966	002716				.INATT::			; FILE ATTRIBUTES
   2967	002716	   000 				.BYTE	0			; RECORD TYPE
   2968	002717	   000 				.BYTE	0			; RECORD ATTRIBUTES
   2969	002720	000000 				.WORD	0			; LARGEST RECORD SIZE
   2970	002722	000000 	000000 			.WORD	0,0			; HIGHEST ALLOCATED BLOCK
   2971	002726	000000 	000000 			.WORD	0,0			; HIGHEST USED BLOCK
   2972	002732	000000 				.WORD	0			; FIRST FREE BYTE
   2973
   2975
   2976	002734				.OTFN::				; LOG FILE NAME
   2977	002734	062072 	073632 	000000 		.RAD50	/PARSER   /		; FILE NAME
   2978	002742	046537 				.RAD50	/LOG/			; EXTENSION
   2979	002744	000000 				.WORD	0			; VERSION
   2980	002746	   005 	   005 			.BYTE	5,5			; OWNER
   2981	002750	054523 				.WORD	"SY			; DEVICE
   2982	002752	000000 				.WORD	0			; UNIT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 69-1
FILE INTERFACE DATA

   2983
   2984	002754				.OTVBN::			; CURRENT VIRTUAL BLOCK NO.
   2985	002754	000000 	000000 			.WORD	0,0
   2986	002760				.OTBBC::			; OUTPUT BUFFER BYTE COUNT
   2987	002760	000000 				.WORD	0
   2988	002762				.OTPOS::			; OUTPUT BUFFER CURRENT POSITION
   2989	002762	000000 				.WORD	0
   2990	002764				.OTBUF::			; OUTPUT BUFFER
   2991	002764					.BLKW	.BUFSZ/2
   2992
   2993	003764				.OTFNB::			; OUTPUT FILE NAME BLOCK
   2994	003764	000000 	000000 	000000 		.WORD	0,0,0			; N.FID
   2995	003772	140123 	140123 	000000 		.RAD50	/005005   /		; N.FNAM
   2996	004000	015172 				.RAD50	/DIR/			; N.FTYP
   2997	004002	000000 				.WORD	0			; N.FVER
   2998	004004	000000 				.WORD	0			; N.STAT
   2999	004006	000000 				.WORD	0			; N.NEXT
   3000	004010	177777 	177777 			.WORD	-1,-1			; DIRECTORY FID
   3001	004014	   005 	   005 			.BYTE	5,5			; OWNER
   3002
   3003	004016				.OTATT::			; FILE ATTRIBUTES
   3004	004016	   000 				.BYTE	0			; RECORD TYPE
   3005	004017	   000 				.BYTE	0			; RECORD ATTRIBUTES
   3006	004020	000000 				.WORD	0			; LARGEST RECORD SIZE
   3007	004022	000000 	000000 			.WORD	0,0			; HIGHEST ALLOCATED BLOCK
   3008	004026	000000 	000000 			.WORD	0,0			; HIGHEST USED BLOCK
   3009	004032	000000 				.WORD	0			; FIRST FREE BYTE
   3010
   3011	004034				.RECNT::			; CURRENT RECORD SIZE
   3012	004034	000000 				.WORD	0
   3013	004036				.RECPT::			; CURRENT RECORD POSITION POINTER
   3014	004036	004040'				.WORD	.RECRD
   3015	004040				.RECRD::
   3016	004040					.BLKB	80.		; CURRENT RECORD
   3017
   3018	001452				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 70
.FNDIR -- ROUTINE TO FIND DIRECTORY FILE ID

   3020					.SBTTL	.FNDIR -- ROUTINE TO FIND DIRECTORY FILE ID
   3021
   3022					;+
   3023					;
   3024					; .FNDIR -- ROUTINE TO FIND THE [5,5] DIRECTORY FILE ID
   3025					;
   3026					; THIS ROUTINE WILL FIND THE FILE ID FOR THE [5,5] DIRECTORY IF
   3027					; IT HAS NOT ALREADY BEEN FOUND. IT WILL ALSO ASSIGN A LUN TO THE
   3028					; SYSTEM DEVICE.
   3029					;
   3030					; INPUT ARGUMENTS:
   3031					;
   3032					;	R1=FILE NAME BLOCK
   3033					;	R2=LUN
   3034					;
   3035					; OUTPUT ARGUMENTS:
   3036					;
   3037					;	NONE
   3038					;
   3039					; ERROR CODES RETURNED:
   3040					;
   3041					;	CAL -- CAN'T ASSIGN LUN
   3042					;	DNF -- DIRECTORY FILE NOT FOUND
   3043					;-
   3044
   3045	001452				.FNDIR::
   3046	001452	026127 	000024 	177777 		CMP	24(R1),#-1	; DIRECTORY FID ALREADY FOUND?
   3047	001460	001032 				BNE	10$		; YES -- EXIT
   3048	001462	010237 	000002'			MOV	R2,FNDALU	; NO -- SET UP LUN
   3049	001466					DIR$	#FNDALN		; ASSIGN LUN
	001466	012746 	000000'			MOV	#FNDALN,-(SP)
	001472	104375 				EMT	375
   3050	001474	103425 				BCS	FNDCAL		; ERROR IF CC-C IS SET
   3051	001476	010237 	000014'			MOV	R2,FNDLUN	; SET LUN
   3052	001502	010137 	000036'			MOV	R1,FNDFNB	; SET FNB
   3053	001506					DIR$	#FNDFNA		; GET FID
	001506	012746 	000010'			MOV	#FNDFNA,-(SP)
	001512	104375 				EMT	375
   3054	001514	103420 				BCS	FNDDNF		; ERROR IF CC-C IS SET
   3055	001516	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED?
   3056	001522	002415 				BLT	FNDDNF		; NO -- ERROR
   3057	001524	016161 	000000 	000024 		MOV	0(R1),24(R1)	; SAVE DIRECTORY FID
   3058	001532	016161 	000002 	000026 		MOV	2(R1),26(R1)	; SAVE DIRECTORY FID
   3059	001540	016161 	000004 	000030 		MOV	4(R1),30(R1)	; SAVE DIRECTORY FID
   3060	001546				10$:	RETURN			; DONE
	001546	000207 				 RTS	PC
   3061						;
   3062	001550				FNDCAL:
   3063	001550					ERROR$	CAL		; ERROR -- CAN'T ASSIGN LUN
	001550	012746 	011364 			 MOV	#^RCAL,-(SP)
	001554	104400 				 TRAP	TC.ERR
   3064	001556				FNDDNF:
   3065	001556					ERROR$	DNF		; ERROR -- DIRECTORY FILE NOT FOUND
	001556	012746 	015466 			 MOV	#^RDNF,-(SP)
	001562	104400 				 TRAP	TC.ERR
   3066						;
   3067
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 70-1
.FNDIR -- ROUTINE TO FIND DIRECTORY FILE ID

   3068	000000				.PSECT	DPBS
   3069
   3070	000000				FNDALN:				; ASSIGN LUN DIRECTIVE
   3071	000000					ALUN$	0,SY,0
	000000	   007 	   004 			.BYTE	7,4
	000002	000000 				.WORD	0
	000004	   123 				.ASCII	/S/
	000005	   131 				.ASCII	/Y/
	000006	000000 				.WORD	0
   3072
   3073		000002'			FNDALU=FNDALN+A.LULU
   3074
   3075	000010				FNDFNA:				; FIND FID DIRECTIVE
   3076	000010					QIOW$	IO.FNA,,E.FFIL,,.FISTS,,<,,,,,0>
	000010	   003 	   014 			.BYTE	3,$$$ARG
	000012	000000G				.WORD	IO.FNA
	000014	000000 				.WORD
	000016	   006 	   000 			.BYTE	E.FFIL,
	000020	001630'				.WORD	.FISTS
	000022	000000 				.WORD
	000024	000000 				.WORD
	000026	000000 				.WORD
	000030	000000 				.WORD
	000032	000000 				.WORD
	000034	000000 				.WORD
	000036	000000 				.WORD	0
   3077
   3078		000014'			FNDLUN=FNDFNA+Q.IOLU
   3079		000036'			FNDFNB=FNDFNA+Q.IOPL+12
   3080
   3081	001564				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 71
.LOKUP -- ROUTINE TO LOOK UP A FILE TO GET ITS FID

   3083					.SBTTL	.LOKUP -- ROUTINE TO LOOK UP A FILE TO GET ITS FID
   3084
   3085					;+
   3086					; .LOKUP -- ROUTINE TO LOOK UP A FILE TO GET ITS FILE ID
   3087					;
   3088					; THIS ROUTINE WILL LOOK UP A FILE TO GET ITS FILE ID SO THAT ALL
   3089					; FUTURE OPERATIONS CAN BE DONE BY FILE ID. IF THE FILE IS NOT
   3090					; FOUND THEN THE CC-C BIT IS SET AND THE ROUTINE RETURNS.
   3091					;
   3092					; INPUT ARGUMENTS:
   3093					;
   3094					;	R0=FILE NAME
   3095					;	R1=FILE NAME BLOCK
   3096					;	R2=LUN
   3097					;
   3098					; OUTPUT ARGUMENTS:
   3099					;
   3100					;	CC-C IS SET IF FILE NOT FOUND
   3101					;
   3102					; ERROR CODES RETURNED:
   3103					;
   3104					;	CAL -- CAN'T ASSIGN LUN
   3105					;	DNF -- DIRECTORY FILE NOT FOUND
   3106					;	FLF -- FILE LOOKUP FAILURE
   3107					;-
   3108
   3109						.ENABL	LSB
   3110
   3111	001564				.REMOV::
   3112	001564	012737 	000000G	000042'		MOV	#IO.RNA,LOKIOF	; REMOVE FROM DIRECTORY
   3113	001572	000403 				BR	3$		; GO ON
   3114	001574				.LOKUP::
   3115	001574	012737 	000000G	000042'		MOV	#IO.FNA,LOKIOF	; FIND DIRECTORY
   3116	001602				3$:	CALL	.FNDIR		; FIND THE DIRECTORY FID
	001602	004737 	001452'			 JSR	PC,.FNDIR
   3117	001606					CALL	.SETFN		; SET THE FILE NAME IN THE FNB
	001606	004737 	002166'			 JSR	PC,.SETFN
   3118	001612	010237 	000044'			MOV	R2,LOKLUN	; SET LUN
   3119	001616	010137 	000066'			MOV	R1,LOKFNB	; SET FNB
   3120	001622					DIR$	#LOKFNA		; GET FID
	001622	012746 	000040'			MOV	#LOKFNA,-(SP)
	001626	104375 				EMT	375
   3121	001630	103412 				BCS	LOKFLF		; ERROR IF CC-C IS SET
   3122	001632	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED?
   3123	001636	002401 				BLT	10$		; NO -- SEE WHY
   3124	001640				5$:	RETURN			; YES -- RETURN
	001640	000207 				 RTS	PC
   3125	001642	122737 	000000G	001630'	10$:	CMPB	#IE.NSF,.FISTS	; NO SUCH FILE?
   3126	001650	001002 				BNE	LOKFLF		; NO -- ERROR
   3127	001652	000261 				SEC			; YES -- SET CC-C
   3128	001654					RETURN			; DONE
	001654	000207 				 RTS	PC
   3129
   3130						.DSABL	LSB
   3131						;
   3132	001656				LOKFLF:
   3133	001656					ERROR$	FLF		; ERROR -- FILE LOOKUP FAILURE
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 71-1
.LOKUP -- ROUTINE TO LOOK UP A FILE TO GET ITS FID

	001656	012746 	023546 			 MOV	#^RFLF,-(SP)
	001662	104400 				 TRAP	TC.ERR
   3134						;
   3135
   3136	000040				.PSECT	DPBS
   3137
   3138	000040				LOKFNA:				; GET FID DIRECTIVE
   3139	000040					QIOW$	0,,E.FFIL,,.FISTS,,<,,,,,0>
	000040	   003 	   014 			.BYTE	3,$$$ARG
	000042	000000 				.WORD	0
	000044	000000 				.WORD
	000046	   006 	   000 			.BYTE	E.FFIL,
	000050	001630'				.WORD	.FISTS
	000052	000000 				.WORD
	000054	000000 				.WORD
	000056	000000 				.WORD
	000060	000000 				.WORD
	000062	000000 				.WORD
	000064	000000 				.WORD
	000066	000000 				.WORD	0
   3140
   3141		000042'			LOKIOF=LOKFNA+Q.IOFN
   3142		000044'			LOKLUN=LOKFNA+Q.IOLU
   3143		000066'			LOKFNB=LOKFNA+Q.IOPL+12
   3144
   3145	001664				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 72
.ENTER -- ROUTINE TO ENTER A FILE

   3147					.SBTTL	.ENTER -- ROUTINE TO ENTER A FILE
   3148
   3149					;+
   3150					; .ENTER -- ROUTINE TO ENTER A FILE INTO A DIRECTORY
   3151					;
   3152					; THIS ROUTINE WILL CREATE A FILE OF A GIVEN NAME AND THEN ENTER IT
   3153					; INTO A DIRECTORY.
   3154					;
   3155					; INPUT ARGUMENTS:
   3156					;
   3157					;	NONE
   3158					;
   3159					; OUTPUT ARGUMENTS:
   3160					;
   3161					;	NONE
   3162					;
   3163					; ERROR CODES RETURNED:
   3164					;
   3165					;	FEN -- FILE ENTER FAILURE
   3166					;-
   3167
   3168	001664				.ENTER::
   3169	001664					DIR$	#ENTCRE		; CREATE THE FILE
	001664	012746 	000070'			MOV	#ENTCRE,-(SP)
	001670	104375 				EMT	375
   3170	001672	103416 				BCS	ENTFEN		; ERROR IF CC-C IS SET
   3171	001674	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED?
   3172	001700	002413 				BLT	ENTFEN		; NO -- ERROR
   3173	001702					DIR$	#ENTENA		; YES -- ENTER THE FILE IN A DIRECTORY
	001702	012746 	000114'			MOV	#ENTENA,-(SP)
	001706	104375 				EMT	375
   3174	001710	103404 				BCS	10$		; ERROR IF CC-C IS SET
   3175	001712	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED
   3176	001716	002401 				BLT	10$		; NO -- ERROR
   3177	001720					RETURN			; RETURN
	001720	000207 				 RTS	PC
   3178	001722				10$:	DIR$	#ENTDEL		; DELETE NEW FILE
	001722	012746 	000144'			MOV	#ENTDEL,-(SP)
	001726	104375 				EMT	375
   3179						;
   3180	001730				ENTFEN:
   3181	001730					ERROR$	FEN		; ERROR -- FILE ENTER FAILURE
	001730	012746 	023126 			 MOV	#^RFEN,-(SP)
	001734	104400 				 TRAP	TC.ERR
   3182						;
   3183
   3184	000070				.PSECT	DPBS
   3185
   3186	000070				ENTCRE:				; CREATE FILE DIRECTIVE
   3187	000070					QIOW$	IO.CRE,LOGLUN,E.FFIL,,.FISTS,,<.OTFNB,,BIT15,1>
	000070	   003 	   012 			.BYTE	3,$$$ARG
	000072	000000G				.WORD	IO.CRE
	000074	000004 				.WORD	LOGLUN
	000076	   006 	   000 			.BYTE	E.FFIL,
	000100	001630'				.WORD	.FISTS
	000102	000000 				.WORD
	000104	003764'				.WORD	.OTFNB
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 72-1
.ENTER -- ROUTINE TO ENTER A FILE

	000106	000000 				.WORD
	000110	100000 				.WORD	BIT15
	000112	000001 				.WORD	1
   3188
   3189	000114				ENTENA:				; ENTER FILE DIRECTIVE
   3190	000114					QIOW$	IO.ENA,LOGLUN,E.FFIL,,.FISTS,,<,,,,,.OTFNB>
	000114	   003 	   014 			.BYTE	3,$$$ARG
	000116	000000G				.WORD	IO.ENA
	000120	000004 				.WORD	LOGLUN
	000122	   006 	   000 			.BYTE	E.FFIL,
	000124	001630'				.WORD	.FISTS
	000126	000000 				.WORD
	000130	000000 				.WORD
	000132	000000 				.WORD
	000134	000000 				.WORD
	000136	000000 				.WORD
	000140	000000 				.WORD
	000142	003764'				.WORD	.OTFNB
   3191
   3192	000144				ENTDEL:				; DELETE FILE DIRECTIVE
   3193	000144					QIOW$	IO.DEL,LOGLUN,E.FFIL
	000144	   003 	   006 			.BYTE	3,$$$ARG
	000146	000000G				.WORD	IO.DEL
	000150	000004 				.WORD	LOGLUN
	000152	   006 	   000 			.BYTE	E.FFIL,
	000154	000000 				.WORD
	000156	000000 				.WORD
   3194
   3195	001736				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 73
.OPEN -- ROUTINE TO OPEN A FILE

   3197					.SBTTL	.OPEN -- ROUTINE TO OPEN A FILE
   3198
   3199					;+
   3200					; .OPEN -- ROUTINE TO OPEN A FILE WITH SOME ACCESS FUNCTION
   3201					;
   3202					; THIS ROUTINE WILL OPEN A FILE WITH SOME SPECIFIED ACCESS RIGHTS.
   3203					; IT WILL ALSO READ THE FILE ATTRIBUTES.
   3204					;
   3205					; INPUT ARGUMENTS:
   3206					;
   3207					;	R1=FILE NAME BLOCK (FIRST 2 WORDS ARE FILE ID)
   3208					;	R2=LUN
   3209					;	R4=ACCESS FUNCTION
   3210					;
   3211					; OUTPUT ARGUMENTS:
   3212					;
   3213					;	NONE
   3214					;
   3215					; ERROR CODES RETURNED:
   3216					;
   3217					;	FOF -- FILE OPEN FAILURE
   3218					;-
   3219
   3220	001736				.OPEN::
   3221	001736	010437 	000162'			MOV	R4,OPEFUN	; SET FUNCTION
   3222	001742	010237 	000164'			MOV	R2,OPELUN	; SET LUN
   3223	001746	010137 	000174'			MOV	R1,OPEFID	; SET FID
   3224	001752	010137 	000210'			MOV	R1,OPEATT	; SET FILE ATTRIBUTES
   3225	001756	062737 	000032 	000210'		ADD	#32,OPEATT	; POINT TO CORRECT ADDR
   3226	001764					DIR$	#OPEACC		; OPEN THE FILE WITH SOME ACCESS
	001764	012746 	000160'			MOV	#OPEACC,-(SP)
	001770	104375 				EMT	375
   3227	001772	103401 				BCS	OPEFOF		; ERROR IF CC-C IS SET
   3228	001774					RETURN
	001774	000207 				 RTS	PC
   3229						;
   3230	001776				OPEFOF:
   3231	001776					ERROR$	FOF		; ERROR -- FILE OPEN FAILURE
	001776	012746 	023736 			 MOV	#^RFOF,-(SP)
	002002	104400 				 TRAP	TC.ERR
   3232						;
   3233
   3234	000160				.PSECT	DPBS
   3235
   3236	000160				OPEACC:				; OPEN FILE DIRECTIVE
   3237	000160					QIOW$	0,0,E.FFIL,,.FISTS,,<0,OPERAT,,,BIT15>
	000160	   003 	   013 			.BYTE	3,$$$ARG
	000162	000000 				.WORD	0
	000164	000000 				.WORD	0
	000166	   006 	   000 			.BYTE	E.FFIL,
	000170	001630'				.WORD	.FISTS
	000172	000000 				.WORD
	000174	000000 				.WORD	0
	000176	000206'				.WORD	OPERAT
	000200	000000 				.WORD
	000202	000000 				.WORD
	000204	100000 				.WORD	BIT15
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 73-1
.OPEN -- ROUTINE TO OPEN A FILE

   3238
   3239		000162'			OPEFUN=OPEACC+Q.IOFN
   3240		000164'			OPELUN=OPEACC+Q.IOLU
   3241		000174'			OPEFID=OPEACC+Q.IOPL
   3242
   3243	000206				OPERAT:
   3244	000206	   374 	   016 			.BYTE	-4,16
   3245	000210	000000 				.WORD	0
   3246	000212	   000 	   000 			.BYTE	0,0
   3247
   3248		000210'			OPEATT=OPERAT+2
   3249
   3250	002004				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 74
.EXTND -- ROUTINE TO EXTEND A FILE

   3252					.SBTTL	.EXTND -- ROUTINE TO EXTEND A FILE
   3253
   3254					;+
   3255					; .EXTND -- ROUTINE TO EXTEND A FILE BY ONE BLOCK
   3256					;
   3257					; THIS ROUTINE WILL EXTEND A CURRENTLY OPEN FILE WITH EXTEND ACCESS
   3258					; BY ONE BLOCK.
   3259					;
   3260					; INPUT ARGUMENTS:
   3261					;
   3262					;	NONE
   3263					;
   3264					; OUTPUT ARGUMENTS:
   3265					;
   3266					;	NONE
   3267					;
   3268					; ERROR CODES RETURNED:
   3269					;
   3270					;	FEF -- FILE EXTEND FAILURE
   3271					;-
   3272
   3273	002004				.EXTND::
   3274	002004					DIR$	#EXTEXT		; EXTEND THE FILE
	002004	012746 	000214'			MOV	#EXTEXT,-(SP)
	002010	104375 				EMT	375
   3275	002012	103411 				BCS	EXTFEF		; ERROR IF CC-C IS SET
   3276	002014	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED?
   3277	002020	002406 				BLT	EXTFEF		; NO -- ERROR
   3278	002022	062737 	000001 	004024'		ADD	#1,.OTATT+6	; INCREASE BLOCKS ALLOCATED
   3279	002030	005537 	004022'			ADC	.OTATT+4	; PROPAGATE CARRY
   3280	002034					RETURN			; DONE
	002034	000207 				 RTS	PC
   3281						;
   3282	002036				EXTFEF:
   3283	002036	013737 	002762'	004032'		MOV	.OTPOS,.OTATT+14	; SET NEXT FREE BYTE
   3284	002044	162737 	002764'	004032'		SUB	#.OTBUF,.OTATT+14	; MAKE RELATIVE
   3285	002052	012701 	004016'			MOV	#.OTATT,R1		; SET ATTRIBUTE ADDR
   3286	002056	012702 	000004 			MOV	#LOGLUN,R2		; SET LUN
   3288	002062	105037 	000154'			CLRB	.OUTLG			; INDICATE FILE CLOSED
   3290	002066					CALL	.CLOSE			; CLOSE FILE
	002066	004737 	002114'			 JSR	PC,.CLOSE
   3291	002072					ERROR$	FEF		; ERROR -- FILE EXTEND FAILURE
	002072	012746 	023116 			 MOV	#^RFEF,-(SP)
	002076	104400 				 TRAP	TC.ERR
   3292						;
   3293
   3294	000214				.PSECT	DPBS
   3295
   3296	000214				EXTEXT:				; FILE EXTEND DIRECTIVE
   3297	000214					QIOW$	IO.EXT,LOGLUN,E.FFIL,,.FISTS,,<,,BIT15,1>
	000214	   003 	   012 			.BYTE	3,$$$ARG
	000216	000000G				.WORD	IO.EXT
	000220	000004 				.WORD	LOGLUN
	000222	   006 	   000 			.BYTE	E.FFIL,
	000224	001630'				.WORD	.FISTS
	000226	000000 				.WORD
	000230	000000 				.WORD
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 74-1
.EXTND -- ROUTINE TO EXTEND A FILE

	000232	000000 				.WORD
	000234	100000 				.WORD	BIT15
	000236	000001 				.WORD	1
   3298
   3299	002100				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 75
.CLOSE -- ROUTINE TO CLOSE A FILE

   3301					.SBTTL	.CLOSE -- ROUTINE TO CLOSE A FILE
   3302
   3303					;+
   3304					; .CLOSE -- ROUTINE TO CLOSE A SPECIFIED FILE
   3305					;
   3306					; THIS ROUTINE WILL CLOSE AND DEACCESS A SPECIFIED FILE.
   3307					; IT WILL ALSO WRITE OUT THE CURRENT ATTRIBUTES.
   3308					;
   3309					; INPUT ARGUMENTS:
   3310					;
   3311					;	R1=ATTRIBUTE BLOCK
   3312					;	R2=LUN
   3313					;
   3314					; OUTPUT ARGUMENTS:
   3315					;
   3316					;	NONE
   3317					;
   3318					; ERROR CODES RETURNED:
   3319					;
   3320					;	FCF -- FILE CLOSE FAILURE
   3321					;-
   3322
   3323						.ENABL	LSB
   3324
   3325	002100				.DELET::
   3326	002100	012737 	000000G	000242'		MOV	#IO.DEL,CLOIOF	; I/O FUNCTION FOR DELETE
   3327	002106	005037 	000256'			CLR	CLOATR		; NO ATTRIBUTES
   3328	002112	000406 				BR	5$		; DO IT
   3329	002114				.CLOSE::
   3330	002114	012737 	000000G	000242'		MOV	#IO.DAC,CLOIOF	; I/O FUNCTION FOR DEACCESS
   3331	002122	012737 	000260'	000256'		MOV	#CLOWAT,CLOATR	; WRITE ATTRIBUTES
   3332	002130	010237 	000244'		5$:	MOV	R2,CLOLUN	; SET LUN
   3333	002134	010137 	000262'			MOV	R1,CLOATT	; SET FILE ATTRIBUTES
   3334	002140					DIR$	#CLODAC		; CLOSE FILE
	002140	012746 	000240'			MOV	#CLODAC,-(SP)
	002144	104375 				EMT	375
   3335	002146	103404 				BCS	CLOFCF		; ERROR IF CC-C IS SET
   3336	002150	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED?
   3337	002154	002401 				BLT	CLOFCF		; NO -- ERROR
   3338	002156					RETURN			; YES -- DONE
	002156	000207 				 RTS	PC
   3339						;
   3340
   3341						.DSABL	LSB
   3342
   3343	002160				CLOFCF:
   3344	002160					ERROR$	FCF		; ERROR -- FILE CLOSE FAILURE
	002160	012746 	022776 			 MOV	#^RFCF,-(SP)
	002164	104400 				 TRAP	TC.ERR
   3345						;
   3346
   3347	000240				.PSECT	DPBS
   3348
   3349	000240				CLODAC:				; FILE CLOSE DIRECTIVE
   3350	000240					QIOW$	0,0,E.FFIL,,.FISTS,,<0,0>
	000240	   003 	   010 			.BYTE	3,$$$ARG
	000242	000000 				.WORD	0
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 75-1
.CLOSE -- ROUTINE TO CLOSE A FILE

	000244	000000 				.WORD	0
	000246	   006 	   000 			.BYTE	E.FFIL,
	000250	001630'				.WORD	.FISTS
	000252	000000 				.WORD
	000254	000000 				.WORD	0
	000256	000000 				.WORD	0
   3351
   3352		000242'			CLOIOF=CLODAC+Q.IOFN
   3353		000244'			CLOLUN=CLODAC+Q.IOLU
   3354		000256'			CLOATR=CLODAC+Q.IOPL+2
   3355
   3356	000260				CLOWAT:
   3357	000260	   004 	   016 			.BYTE	4,16
   3358	000262	000000 				.WORD	0
   3359	000264	   000 	   000 			.BYTE	0,0
   3360
   3361		000262'			CLOATT=CLOWAT+2
   3362
   3363	002166				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 76
.SETFN -- ROUTINE TO SET A FILE NAME IN A FILE NAME BLOCK

   3365					.SBTTL	.SETFN -- ROUTINE TO SET A FILE NAME IN A FILE NAME BLOCK
   3366
   3367					;+
   3368					; .SETFN -- ROUTINE TO SET A FILE NAME IN A FILE NAME BLOCK
   3369					;
   3370					; THIS ROUTINE WILL INITIALIZE A FILE NAME BLOCK WITH A FILE NAME,
   3371					; VERSION NUMBER, AND STATUS VALUES.
   3372					;
   3373					; INPUT ARGUMENTS:
   3374					;
   3375					;	R0=FILE NAME PTR
   3376					;	R1=FILE NAME BLOCK ADDR
   3377					;
   3378					; OUTPUT ARGUMENTS:
   3379					;
   3380					;	NONE
   3381					;
   3382					; ERROR CODES RETURNED:
   3383					;
   3384					;	NONE
   3385					;-
   3386
   3387	002166				.SETFN::
   3388	002166					PUSH	<R1,R0>		; SAVE R0,R1
	002166	010146 				 MOV	R1,-(SP)
	002170	010046 				 MOV	R0,-(SP)
   3389	002172	005021 				CLR	(R1)+		; CLEAR FID
   3390	002174	005021 				CLR	(R1)+		; CLEAR FID
   3391	002176	005021 				CLR	(R1)+		; CLEAR FID
   3392	002200	012021 				MOV	(R0)+,(R1)+	; FILE NAME
   3393	002202	012021 				MOV	(R0)+,(R1)+	; FILE NAME
   3394	002204	012021 				MOV	(R0)+,(R1)+	; FILE NAME
   3395	002206	012021 				MOV	(R0)+,(R1)+	; EXTENSION
   3396	002210	012021 				MOV	(R0)+,(R1)+	; VERSION
   3397	002212	005021 				CLR	(R1)+		; STATUS
   3398	002214	005011 				CLR	(R1)		; NEXT PTR
   3399	002216					POP	<R0,R1>		; RESTORE R0,R1
	002216	012600 				 MOV	(SP)+,R0
	002220	012601 				 MOV	(SP)+,R1
   3400	002222					RETURN			; DONE
	002222	000207 				 RTS	PC
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 77
.SETFN -- ROUTINE TO SET A FILE NAME IN A FILE NAME BLOCK

   3403
   3404					.SBTTL	.READR -- ROUTINE TO READ A RECORD
   3405
   3406					;+
   3407					; .READR -- ROUTINE TO READ A RECORD FROM THE INDIRECT COMMAND FILE.
   3408					;
   3409					; THIS ROUTINE WILL GET A RECORD (EQUIVILENT TO A TYPED COMMAND) FROM
   3410					; THE CURRENTLY OPEN INDIRECT COMMAND FILE. IT WILL INVISIBLY READ
   3411					; VIRTUAL BLOCKS INORDER TO BLOCK THE RECORDS. IF AN E-O-F IS
   3412					; ENCOUNTERED THE OPEN FILE IS CLOSED AND INPUT IS REDIRECTED TO CTY.
   3413					;
   3414					; INPUT ARGUMENTS:
   3415					;
   3416					;	R2=OUTPUT BUFFER
   3417					;	R3=STATUS BLOCK
   3418					;
   3419					; OUTPUT ARGUMENTS:
   3420					;	R2 POINTS TO END OF RECORD
   3421					;	2(R3) CONTAINS BYTE COUNT OF RECORD
   3422					;
   3423					; ERROR CODES RETURNED:
   3424					;
   3425					;	FRD -- FILE READ FAILURE
   3426					;-
   3427
   3428	002224				.READR::
   3429	002224					PUSH	<R0,R1>		; SAVE R1 AND R0
	002224	010046 				 MOV	R0,-(SP)
	002226	010146 				 MOV	R1,-(SP)
   3430	002230				10$:	CALL	.READW		; READ RECORD LENGTH FROM FILE
	002230	004737 	002330'			 JSR	PC,.READW
   3431	002234	103415 				BCS	30$		; EOF IF CC-C IS SET
   3432	002236	005700 				TST	R0		; SEE IF A NULL RECORD?
   3433	002240	001773 				BEQ	10$		; YES -- READ NEXT RECORD
   3434	002242	010001 				MOV	R0,R1		; NO -- SAVE BYTE COUNT
   3435	002244	010063 	000002 			MOV	R0,2(R3)	; SET RETURNED BYTE COUNT
   3436	002250				20$:	CALL	.READB		; READ CHARACTER
	002250	004737 	002406'			 JSR	PC,.READB
   3437	002254	103405 				BCS	30$		; EOF IF CC-C IS SET
   3438	002256	110022 				MOVB	R0,(R2)+	; SAVE CHARACTER
   3439	002260	077105 				SOB	R1,20$		; DONE?
   3440	002262				25$:	POP	<R1,R0>		; YES -- RESTORE R1 AND R0
	002262	012601 				 MOV	(SP)+,R1
	002264	012600 				 MOV	(SP)+,R0
   3441	002266					RETURN			; RETURN
	002266	000207 				 RTS	PC
   3442	002270	005037 	001626'		30$:	CLR	.INDFG		; REDIRECT INPUT TO CTY
   3443	002274	012701 	002664'			MOV	#.INFNB,R1	; INPUT FILE NAME BLOCK
   3444	002300	012702 	000005 			MOV	#INDLUN,R2	; FILE LUN
   3445	002304					CALL	.CLOSE		; CLOSE FILE AND DEACCESS
	002304	004737 	002114'			 JSR	PC,.CLOSE
   3446	002310	012700 	000335'			MOV	#EOFMSG,R0	; E-O-F MESSAGE PTR
   3447	002314					CALL	.TYMSG		; OUTPUT MESSAGE
	002314	004737 	015446'			 JSR	PC,.TYMSG
   3448	002320	005063 	000002 		40$:	CLR	2(R3)		; CLEAR BYTE COUNT
   3449	002324	000261 				SEC			; SET CC-C BIT
   3450	002326	000755 				BR	25$		; DONE
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 77-1
.READR -- ROUTINE TO READ A RECORD

   3451						;
   3452
   3453	000335				.PSECT	MESSAG
   3454
   3455	000335				EOFMSG:
   3456	000335	   040 	   074 	   105 		.ASCIZ	% <EOF> %
	000340	   117 	   106 	   076
	000343	   040 	   000
   3457
   3458	002330				.PSECT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 78
.READW -- READ A WORD FROM A FILE

   3460					.SBTTL	.READW -- READ A WORD FROM A FILE
   3461
   3462					;+
   3463					; .READW -- ROUTINE TO READ A WORD FROM A FILE
   3464					;
   3465					; THIS ROUTINE WILL READ A WORD FROM THE CURRENTLY OPEN INDIRECT
   3466					; COMMAND FILE. IF THE CURRENT BLOCK IS EMPTY IT WILL READ IN THE
   3467					; NEXT ONE. THE WORD READ MUST BE WORD ALIGNED. IF AN E-O-F IS
   3468					; ENCOUNTERED THE CC-C BIT IS SET AND THE ROUTINE RETURNS.
   3469					;
   3470					; INPUT ARGUMENTS:
   3471					;
   3472					;	NONE
   3473					;
   3474					; OUTPUT ARGUMENTS:
   3475					;
   3476					;	R0 CONTAINS WORD READ
   3477					;
   3478					; ERROR CODES RETURNED:
   3479					;
   3480					;	FRD -- FILE READ FAILURE
   3481					;-
   3482
   3483	002330				.READW::
   3484	002330	032737 	000001 	001662'		BIT	#1,.INPOS	; ARE WE ON A WORD BOUNDRY?
   3485	002336	001404 				BEQ	10$		; YES -- GO ON
   3486	002340	005237 	001662'			INC	.INPOS		; NO -- GET ON A WORD BOUNDRY
   3487	002344	005337 	001660'			DEC	.INBBC		; DECREMENT BYTE COUNT
   3488	002350	005737 	001660'		10$:	TST	.INBBC		; IS CURRENT BUFFER EMPTY?
   3489	002354	003003 				BGT	20$		; NO -- GO ON
   3490	002356					CALL	.READ		; YES -- READ NEXT BLOCK
	002356	004737 	002440'			 JSR	PC,.READ
   3491	002362	103410 				BCS	30$		; EOF IF CC-C IS SET
   3492	002364	017700 	001662'		20$:	MOV	@.INPOS,R0	; GET WORD INTO R0
   3493	002370	062737 	000002 	001662'		ADD	#2,.INPOS	; UPDATE BUFFER POSITION PTR
   3494	002376	162737 	000002 	001660'		SUB	#2,.INBBC	; UPDATE BUFFER BYTE COUNT
   3495	002404				30$:	RETURN			; DONE
	002404	000207 				 RTS	PC
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 79
.READB -- READ A BYTE FROM A FILE

   3497					.SBTTL	.READB -- READ A BYTE FROM A FILE
   3498
   3499					;+
   3500					; .READB -- ROUTINE TO READ A BYTE FROM A FILE
   3501					;
   3502					; THIS ROUTINE WILL READ A BYTE FROM THE CURRENTLY OPEN INDIRECT
   3503					; COMMAND FILE. IF THE CURRENT BLOCK IS EMPTY IT WILL READ IN THE
   3504					; NEXT ONE. IF AN E-O-F IS ENCOUNTERED THE CC-C BIT IS SET AND THE
   3505					; ROUTINE RETURNS.
   3506					;
   3507					; INPUT ARGUMENTS:
   3508					;
   3509					;	NONE
   3510					;
   3511					; OUTPUT ARGUMENTS:
   3512					;
   3513					;	R0 CONTAINS BYTE READ
   3514					;
   3515					; ERROR CODES RETURNED:
   3516					;
   3517					;	FRD -- FILE READ FAILURE
   3518					;-
   3519
   3520	002406				.READB::
   3521	002406	005737 	001660'			TST	.INBBC		; IS CURRENT BUFFER EMPTY?
   3522	002412	003003 				BGT	10$		; NO -- GO ON
   3523	002414					CALL	.READ		; YES -- READ NEXT BLOCK
	002414	004737 	002440'			 JSR	PC,.READ
   3524	002420	103406 				BCS	20$		; EOF IF CC-C IS SET
   3525	002422	117700 	001662'		10$:	MOVB	@.INPOS,R0	; GET WORD INTO R0
   3526	002426	005237 	001662'			INC	.INPOS		; UPDATE BUFFER POSITION PTR
   3527	002432	005337 	001660'			DEC	.INBBC		; UPDATE BUFFER BYTE COUNT
   3528	002436				20$:	RETURN			; DONE
	002436	000207 				 RTS	PC
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 80
.READ -- ROUTINE TO READ A BLOCK

   3530					.SBTTL	.READ -- ROUTINE TO READ A BLOCK
   3531
   3532					;+
   3533					; .READ -- ROUTINE TO READ A BLOCK FROM INDIRECT COMMAND FILE
   3534					;
   3535					; THIS ROUTINE WILL READ A BLOCK FROM THE CURRENTLY OPEN INDIRECT
   3536					; COMMAND FILE. THE BUFFER COUNTS AND POINTERS WILL THEN BE SET.
   3537					; IF AN E-O-F IS ENCOUNTERED THE CC-C BIT IS SET AND THE ROUTINE
   3538					; RETURNS.
   3539					;
   3540					; INPUT ARGUMENTS:
   3541					;
   3542					;	NONE
   3543					;
   3544					; OUTPUT ARGUMENTS:
   3545					;
   3546					;	NONE
   3547					;
   3548					; ERROR CODES RETURNED:
   3549					;
   3550					;	FRD -- FILE READ FAILURE
   3551					;-
   3552
   3553	002440				.READ::
   3554	002440	062737 	000001 	001656'		ADD	#1,.INVBN+2	; NEXT VIRTUAL BLOCK
   3555	002446	005537 	001654'			ADC	.INVBN		; PROPAGATE CARRY
   3556	002452	023737 	001656'	002730'		CMP	.INVBN+2,.INATT+12	; EOF?
   3557	002460	003041 				BGT	10$		; YES -- EXIT
   3558	002462					QIOW$S	#IO.RVB,#INDLUN,#E.FFIL,,#.FISTS,,<#.INBUF,#.BUFSZ,,.INVBN,.INVBN+2>
	002462	013746 	001656'			MOV	.INVBN+2,-(SP)
	002466	013746 	001654'			MOV	.INVBN,-(SP)
	002472	005046 				CLR	-(SP)
	002474	012746 	001000 			MOV	#.BUFSZ,-(SP)
	002500	012746 	001664'			MOV	#.INBUF,-(SP)
	002504	005046 				CLR	-(SP)
	002506	012746 	001630'			MOV	#.FISTS,-(SP)
	002512	005046 				CLR	-(SP)
	002514	112716 	000006 			MOVB	#E.FFIL,(SP)
	002520	012746 	000005 			MOV	#INDLUN,-(SP)
	002524	012746 	000000G			MOV	#IO.RVB,-(SP)
	002530	012746 				MOV	(PC)+,-(SP)
	002532	   003 	   013 			.BYTE	3,$$$T1
	002534	104375 				EMT	375
   3559	002536	103414 				BCS	REAFRD		; ERROR IF CC-C IS SET
   3560	002540	105737 	001630'			TSTB	.FISTS		; SEE IF WE REALLY SUCCEEDED?
   3561	002544	002411 				BLT	REAFRD		; NO -- CHECK ERROR
   3562	002546	012737 	001664'	001662'		MOV	#.INBUF,.INPOS	; YES -- SET BUFFER POSITION PTR
   3563	002554	013737 	001632'	001660'		MOV	.FISTS+2,.INBBC	; SET BUFFER BYTE COUNT
   3564	002562					RETURN			; DONE
	002562	000207 				 RTS	PC
   3565	002564	000261 			10$:	SEC			; YES -- SET CC-C
   3566	002566					RETURN			; DONE
	002566	000207 				 RTS	PC
   3567						;
   3568	002570				REAFRD:
   3569	002570	012701 	002716'			MOV	#.INATT,R1	; SET ATTRIBUTE ADDR
   3570	002574	012702 	000005 			MOV	#INDLUN,R2	; SET LUN
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 80-1
.READ -- ROUTINE TO READ A BLOCK

   3571	002600	005037 	001626'			CLR	.INDFG		; INDICATE FILE CLOSED
   3572	002604					CALL	.CLOSE		; CLOSE FILE
	002604	004737 	002114'			 JSR	PC,.CLOSE
   3573	002610				20$:	ERROR$	FRD		; ERROR -- FILE READ FAILURE
	002610	012746 	024124 			 MOV	#^RFRD,-(SP)
	002614	104400 				 TRAP	TC.ERR
   3574						;
   3575
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 81
.WRITR -- ROUTINE TO WRITE A RECORD

   3578					.SBTTL	.WRITR -- ROUTINE TO WRITE A RECORD
   3579
   3580					;+
   3581					; .WRITR -- ROUTINE TO WRITE A RECORD TO THE LOG FILE
   3582					;
   3583					; THIS ROUTINE WILL WRITE A RECORD TO THE FILE PARSER.LOG WHEN
   3584					; OUTPUT IS DIRECTED TO THE LOG FILE.
   3585					;
   3586					; INPUT ARGUMENTS:
   3587					;
   3588					;	R2=RECORD PTR
   3589					;	R1=BYTE COUNT
   3590					;
   3591					; OUTPUT ARGUMENTS:
   3592					;
   3593					;	NONE
   3594					;
   3595					; ERROR CODES RETURNED:
   3596					;
   3597					;	FEF -- FILE EXTEND FAILURE
   3598					;	FWT -- FILE WRITE FAILURE
   3599					;-
   3600
   3601	002616				.WRITR::
   3602	002616					PUSH	R0		; SAVE R0
	002616	010046 				 MOV	R0,-(SP)
   3603	002620	121227 	000012 		5$:	CMPB	(R2),#12	; CHARACTER A <LF>?
   3604	002624	001414 				BEQ	7$		; YES -- WRITE OUT RECORD
   3605	002626	121227 	000015 			CMPB	(R2),#15	; NO -- CHARACTER A <CR>?
   3606	002632	001444 				BEQ	40$		; YES -- PROCESS IT
   3607	002634	112277 	004036'			MOVB	(R2)+,@.RECPT	; NO -- WRITE CHAR TO RECORD
   3608	002640	005237 	004036'			INC	.RECPT		; UPDATE POINTER
   3609	002644	005237 	004034'			INC	.RECNT		; INCREMENT COUNT
   3610	002650	077115 				SOB	R1,5$		; DONE?
   3611	002652				6$:	POP	R0		; YES -- RESTORE R0
	002652	012600 				 MOV	(SP)+,R0
   3612	002654					RETURN			; EXIT
	002654	000207 				 RTS	PC
   3613	002656				7$:	PUSH	<R2,R1>		; SAVE R2,R1
	002656	010246 				 MOV	R2,-(SP)
	002660	010146 				 MOV	R1,-(SP)
   3614	002662	012702 	004040'			MOV	#.RECRD,R2	; R2 POINTS TO RECORD
   3615	002666	013701 	004034'			MOV	.RECNT,R1	; R1 HAS RECORD COUNT
   3616	002672	020137 	004020'			CMP	R1,.OTATT+2	; IS THIS THE BIGGEST RECORD?
   3617	002676	101402 				BLOS	10$		; NO -- GO ON
   3618	002700	010137 	004020'			MOV	R1,.OTATT+2	; YES -- SAVE IT
   3619	002704	010100 			10$:	MOV	R1,R0		; WRITE OUT RECORD BYTE COUNT
   3620	002706					CALL	.WRITW		; WRITE IT
	002706	004737 	002754'			 JSR	PC,.WRITW
   3621	002712	005701 				TST	R1		; IS THIS A NULL RECORD?
   3622	002714	001404 				BEQ	30$		; YES -- DONE
   3623	002716	112200 			20$:	MOVB	(R2)+,R0	; NO -- GET NEXT BYTE OF RECORD
   3624	002720					CALL	.WRITB		; WRITE IT
	002720	004737 	003030'			 JSR	PC,.WRITB
   3625	002724	077104 				SOB	R1,20$		; ALL BYTES WRITTEN?
   3626	002726				30$:	POP	<R1,R2>		; YES -- RESTORE R2,R1
	002726	012601 				 MOV	(SP)+,R1
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 81-1
.WRITR -- ROUTINE TO WRITE A RECORD

	002730	012602 				 MOV	(SP)+,R2
   3627	002732	012737 	004040'	004036'		MOV	#.RECRD,.RECPT	; RESET RECORD POINTER
   3628	002740	005037 	004034'			CLR	.RECNT		; CLEAR RECORD COUNT
   3629	002744	105722 			40$:	TSTB	(R2)+		; REMOVE NEW LINE CHARACTER
   3630	002746	005301 				DEC	R1		; REMOVE FROM COUNT
   3631	002750	001323 				BNE	5$		; NO -- GO ON
   3632	002752	000737 				BR	6$		; YES -- EXIT
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 82
.WRITW -- WRITE A WORD TO A FILE

   3634					.SBTTL	.WRITW -- WRITE A WORD TO A FILE
   3635
   3636					;+
   3637					; .WRITW -- ROUTINE TO WRITE A WORD TO A FILE
   3638					;
   3639					; THIS ROUTINE WILL WRITE A WORD TO A CURRENTLY OPEN FILE. IF THE
   3640					; CURRENT BLOCK IS FULL THEN THE BLOCK WILL BE WRITTEN TO DISK AND
   3641					; THE WORD WILL BE WRITTEN TO THE NEW BLOCK.
   3642					;
   3643					; INPUT ARGUMENTS:
   3644					;
   3645					;	R0=WORD TO WRITE
   3646					;
   3647					; OUTPUT ARGUMENTS:
   3648					;
   3649					;	NONE
   3650					;
   3651					; ERROR CODES RETURNED:
   3652					;
   3653					;	FEF -- FILE EXTEND FAILURE
   3654					;	FWT -- FILE WRITE FAILURE
   3655					;-
   3656
   3657	002754				.WRITW::
   3658	002754	032737 	000001 	002762'		BIT	#1,.OTPOS	; ARE WE ON A WORD BOUNDRY?
   3659	002762	001404 				BEQ	10$		; YES -- GO ON
   3660	002764	005237 	002762'			INC	.OTPOS		; NO -- POSITION TO WORD BOUNDRY
   3661	002770	005337 	002760'			DEC	.OTBBC		; DECREMENT FREE BYTE COUNT
   3662	002774	005737 	002760'		10$:	TST	.OTBBC		; BLOCK FULL?
   3663	003000	003002 				BGT	20$		; NO -- GO ON
   3664	003002					CALL	.WRITE		; YES -- WRITE OUT BLOCK
	003002	004737 	003160'			 JSR	PC,.WRITE
   3665	003006	010077 	002762'		20$:	MOV	R0,@.OTPOS	; WRITE WORD TO BUFFER
   3666	003012	062737 	000002 	002762'		ADD	#2,.OTPOS	; UPDATE BUFFER POINTER
   3667	003020	162737 	000002 	002760'		SUB	#2,.OTBBC	; UPDATE BYTE COUNT
   3668	003026					RETURN			; DONE
	003026	000207 				 RTS	PC
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 83
.WRITB -- WRITE A BYTE TO A FILE

   3670					.SBTTL	.WRITB -- WRITE A BYTE TO A FILE
   3671
   3672					;+
   3673					; .WRITB -- ROUTINE TO WRITE A BYTE TO A FILE
   3674					;
   3675					; THIS ROUTINE WILL WRITE A BYTE TO A BUFFER THAT WILL THEN BE WRITTEN
   3676					; TO DISK WHEN IT IS FULL.
   3677					;
   3678					; INPUT ARGUMENTS:
   3679					;
   3680					;	R0=BYTE TO WRITE
   3681					;
   3682					; OUTPUT ARGUMENTS:
   3683					;
   3684					;	NONE
   3685					;
   3686					; ERROR CODES RETURNED:
   3687					;
   3688					;	FEF -- FILE EXTEND FAILURE
   3689					;	FWT -- FILE WRITE FAILURE
   3690					;-
   3691
   3692	003030				.WRITB::
   3693	003030	005737 	002760'			TST	.OTBBC		; BUFFER FULL?
   3694	003034	003002 				BGT	10$		; NO -- GO ON
   3695	003036					CALL	.WRITE		; YES -- WRITE OUT BLOCK
	003036	004737 	003160'			 JSR	PC,.WRITE
   3696	003042	110077 	002762'		10$:	MOVB	R0,@.OTPOS	; WRITE BYE TO BUFFER
   3697	003046	005237 	002762'			INC	.OTPOS		; UPDATE POSITION
   3698	003052	005337 	002760'			DEC	.OTBBC		; UPDATE BYTE COUNT
   3699	003056					RETURN			; DONE
	003056	000207 				 RTS	PC
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 84
.WRITZ -- WRITE OUT CURRENT BLOCK

   3701					.SBTTL	.WRITZ -- WRITE OUT CURRENT BLOCK
   3702
   3703					;+
   3704					; .WRITZ -- ROUTINE TO WRITE OUT CURRENT BUFFER
   3705					;
   3706					; THIS ROUTINE WILL WRITE OUT THE CURRENT BUFFER TO THE DISK FILE.
   3707					; IF THE BUFFER IS NOT FULL THE THE EXCESS SPACE IS ZEROED.
   3708					;
   3709					; INPUT ARGUMENTS:
   3710					;
   3711					;	NONE
   3712					;
   3713					; OUTPUT ARGUMENTS:
   3714					;
   3715					;	NONE
   3716					;
   3717					; ERROR CODES RETURNED:
   3718					;
   3719					;	FEF -- FILE EXTEND FAILURE
   3720					;	FWT -- FILE WRITE FAILURE
   3721					;-
   3722
   3723	003060				.WRITZ::
   3724	003060	013737 	002762'	004032'		MOV	.OTPOS,.OTATT+14	; NEXT FREE BYTE
   3725	003066	162737 	002764'	004032'		SUB	#.OTBUF,.OTATT+14	; MAKE RELATIVE ADDR
   3726	003074	023727 	002760'	000002 		CMP	.OTBBC,#2	; MORE THAN 1 BYTE LEFT?
   3727	003102	002413 				BLT	10$		; NO -- JUST ZERO BUFFER
   3728	003104	013700 	002760'			MOV	.OTBBC,R0	; YES -- WRITE ZERO RECORD
   3729	003110	032737 	000001 	002762'		BIT	#1,.OTPOS	; ON WORD BOUNDRY?
   3730	003116	001401 				BEQ	5$		; YES -- GO ON
   3731	003120	005300 				DEC	R0		; NO -- DECREMENT COUNT
   3732	003122	162700 	000002 		5$:	SUB	#2,R0		; DISCOUNT RECORD COUNT FIELD
   3733	003126					CALL	.WRITW		; WRITE COUNT
	003126	004737 	002754'			 JSR	PC,.WRITW
   3734	003132	005737 	002760'		10$:	TST	.OTBBC		; BUFFER FULL?
   3735	003136	001405 				BEQ	20$		; YES -- DONE
   3736	003140	112700 	000000 			MOVB	#0,R0		; WRITE OUT ZEROS
   3737	003144				12$:	CALL	.WRITB		; NO -- FILL BUFFER
	003144	004737 	003030'			 JSR	PC,.WRITB
   3738	003150	000770 				BR	10$		; NEXT
   3739	003152				20$:	CALL	.WRITE		; WRITE OUT BUFFER
	003152	004737 	003160'			 JSR	PC,.WRITE
   3740	003156					RETURN			; DONE
	003156	000207 				 RTS	PC
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 85
.WRITE -- ROUTINE TO WRITE A BLOCK

   3742					.SBTTL	.WRITE -- ROUTINE TO WRITE A BLOCK
   3743
   3744					;+
   3745					; .WRITE -- ROUTINE TO WRITE A BLOCK TO A FILE
   3746					;
   3747					; THIS ROUTINE WILL WRITE A BLOCK TO A CURRENTLY OPEN FILE ON DISK.
   3748					; IF THE FILE SPACE IS FULL THE FILE WILL BE EXTENDED.
   3749					;
   3750					; INPUT ARGUMENTS:
   3751					;
   3752					;	NONE
   3753					;
   3754					; OUTPUT ARGUMENTS:
   3755					;
   3756					;	NONE
   3757					;
   3758					; ERROR CODES RETURNED:
   3759					;
   3760					;	FEF -- FILE EXTEND FAILURE
   3761					;	FWT -- FILE WRITE FAILURE
   3762					;-
   3763
   3764	003160				.WRITE::
   3765	003160	062737 	000001 	002756'		ADD	#1,.OTVBN+2	; NEXT VIRTUAL BLOCK
   3766	003166	005537 	002754'			ADC	.OTVBN		; PROPAGATE CARRY
   3767	003172				10$:	QIOW$S	#IO.WVB,#LOGLUN,#E.FFIL,,#.FISTS,,<#.OTBUF,#.BUFSZ,,.OTVBN,.OTVBN+2>
	003172	013746 	002756'			MOV	.OTVBN+2,-(SP)
	003176	013746 	002754'			MOV	.OTVBN,-(SP)
	003202	005046 				CLR	-(SP)
	003204	012746 	001000 			MOV	#.BUFSZ,-(SP)
	003210	012746 	002764'			MOV	#.OTBUF,-(SP)
	003214	005046 				CLR	-(SP)
	003216	012746 	001630'			MOV	#.FISTS,-(SP)
	003222	005046 				CLR	-(SP)
	003224	112716 	000006 			MOVB	#E.FFIL,(SP)
	003230	012746 	000004 			MOV	#LOGLUN,-(SP)
	003234	012746 	000000G			MOV	#IO.WVB,-(SP)
	003240	012746 				MOV	(PC)+,-(SP)
	003242	   003 	   013 			.BYTE	3,$$$T1
	003244	104375 				EMT	375
   3768	003246	103427 				BCS	WRIFWT		; ERROR IF CC-C IS SET
   3769	003250	105737 	001630'			TSTB	.FISTS		; DID WE REALLY SUCCEED?
   3770	003254	002415 				BLT	20$		; NO -- SEE WHY
   3771	003256	013737 	002756'	004030'		MOV	.OTVBN+2,.OTATT+12	; SET HIGHEST USED BLOCK
   3772	003264	013737 	002754'	004026'		MOV	.OTVBN,.OTATT+10	; SET HIGHEST USED BLOCK
   3773	003272	012737 	002764'	002762'		MOV	#.OTBUF,.OTPOS	; YES -- SET BUFFER POINTER
   3774	003300	012737 	001000 	002760'		MOV	#.BUFSZ,.OTBBC	; SET BYTE COUNT
   3775	003306					RETURN			; DONE
	003306	000207 				 RTS	PC
   3776	003310	122737 	000000G	001630'	20$:	CMPB	#IE.EOF,.FISTS	; E-O-F FOUND?
   3777	003316	001003 				BNE	WRIFWT		; NO -- ERROR
   3778	003320					CALL	.EXTND		; YES -- EXTEND FILE
	003320	004737 	002004'			 JSR	PC,.EXTND
   3779	003324	000722 				BR	10$		; TRY AGAIN
   3780						;
   3781	003326				WRIFWT:
   3782	003326					ERROR$	FWT		; ERROR -- FILE WRITE FAILURE
FILIO -- FILE INTERFACE ROUTINE	MACRO M1113  10-NOV-81 17:44  PAGE 85-1
.WRITE -- ROUTINE TO WRITE A BLOCK

	003326	012746 	024454 			 MOV	#^RFWT,-(SP)
	003332	104400 				 TRAP	TC.ERR
   3783						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 87
.WRITE -- ROUTINE TO WRITE A BLOCK

   3786					.TITLE	KL10F -- KL10 FUNCTION MODULE  7812.21
   3787
   3788						.IDENT	"006140"
   3789
   3790					;
   3791					;                             COPYRIGHT (C) 1975, 1979 BY
   3792					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3793					;
   3794					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3795					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3796					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3797					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3798					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3799					;
   3800					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3801					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3802					;       CORPORATION.
   3803					;
   3804					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3805					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3806					;
   3807					;		MODULE: KL10 FUNCTIONS
   3808					;
   3809					;		VERSION: 06-14
   3810					;
   3811					;		AUTHOR: R. BELANGER
   3812					;
   3813					;		DATE: 7812.21
   3814					;
   3815					;	THIS MODULE CONTAINS:
   3816					;
   3817					;	1) KL MBOX CLOCK BURST CODE
   3818
   3819						.MCALL	$DEF,DIR$,MRKT$,PREX$,PRDP$,KLDR$,KLDW$,KLDX$,WTSE$S
   3820
   3821	003334					$DEF
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 88
.BURST -- MBOX CLOCK BURST SUBROUTINE 7601.02

   3823					.SBTTL	.BURST -- MBOX CLOCK BURST SUBROUTINE 7601.02
   3824
   3825					;+
   3826					; .BRMBC -- SUBROUTINE TO STOP THE KL CLOCK AND BURST THE MBOX
   3827					;	    CLOCK AS IN ".BURST".
   3828					; .BURST -- SUBROUTINE TO BURST THE KL MBOX CLOCK
   3829					;	    A MAXIMUM OF 255 DECIMAL TICKS PER CALL.
   3830					;
   3831					; THIS SUBROUTINE LOADS THE KL BURST COUNT REGISTER
   3832					; AND RUNS THE MBOX CLOCK FROM THE BURST COUNT REGISTER. IT WILL
   3833					; FAIL IF A BURST COUNT .GT. 255 DECIMAL IS REQUESTED IN ONE CALL.
   3834					;
   3835					; INPUT ARGUMENTS:
   3836					;
   3837					;	R0 CONTAINS THE BURST COUNT
   3838					;
   3839					; OUTPUT ARGUMENTS:
   3840					;
   3841					;	NONE.
   3842					;
   3843					; ERROR CODES RETURNED:
   3844					;
   3845					;	BAE -- BURST ARGUMENT ERROR.
   3846					;	FWF -- FUNCTION WRITE FAILED.
   3847					;	FXF -- FUNCTION EXECUTE FAILED.
   3848					;-
   3849
   3850	003334				.BRMBC::
   3851	003334					CALL	.STPXC		; STOP THE KL CLOCK
	003334	004737 	007302'			 JSR	PC,.STPXC
   3852	003340				.BURST::
   3853	003340	022700 	000377 			CMP	#^D255,R0	; IS ARGUMENT .GT. 255 DECIMAL?
   3854	003344	103406 				BLO	BCCTER		; YES -- ERROR
   3855	003346					CALL	.LDBRG		; NO -- LOAD THE BURST COUNTER
	003346	004737 	005456'			 JSR	PC,.LDBRG
   3856	003352	012700 	000012 			MOV	#FX.BMC,R0	; SET UP TO BURST THE MBOX CLOCK
   3857	003356					CALLR	.FXCT		; DO IT
	003356	000137 	004566'			 JMP	.FXCT
   3858						;
   3859	003362				BCCTER:
   3860	003362					ERROR$	BAE		; ERROR -- ARGUMENT OUT OF RANGE
	003362	012746 	006255 			 MOV	#^RBAE,-(SP)
	003366	104400 				 TRAP	TC.ERR
   3861						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 89
.CLDFB -- DTE-20 OPERATION BUFFER CLEAR SUBROUTINE 7508.26

   3863					.SBTTL	.CLDFB -- DTE-20 OPERATION BUFFER CLEAR SUBROUTINE 7508.26
   3864
   3865					;+
   3866					; .CLDFB -- SUBROUTINE TO CLEAR THE DTE-20 TRANSFER BUFFERS
   3867					; .CLDFR -- SUBROUTINE TO CLEAR THE DTE-20 READ BUFFER
   3868					; .CLDFW -- SUBROUTINE TO CLEAR THE DTE-20 WRITE BUFFER
   3869					;
   3870					; THE SUBROUTINES CLEAR THE INDICATED BUFFERS
   3871					;
   3872					; INPUT ARGUMENTS:
   3873					;
   3874					;	NONE.
   3875					;
   3876					; OUTPUT ARGUMENTS:
   3877					;
   3878					;	NONE.
   3879					;
   3880					; ERROR CODES RETURNED:
   3881					;
   3882					;	NONE.
   3883					;-
   3884
   3885						.ENABL	LSB
   3886
   3887	003370				.CLDFB::
   3888	003370					CALL	.CLDFW		; CLEAR THE WRITE HALF OF THE BUFFER
	003370	004737 	003404'			 JSR	PC,.CLDFW
   3889	003374				.CLDFR::
   3890	003374					PUSH	R0		; SAVE R0
	003374	010046 				 MOV	R0,-(SP)
   3891	003376	012700 	000312'			MOV	#.DFRB,R0	; .CLEAR THE FUNCTION READ BUFFER
   3892	003402	000403 				BR	10$		; .
   3893						;
   3894	003404				.CLDFW::
   3895	003404					PUSH	R0		; SAVE R0
	003404	010046 				 MOV	R0,-(SP)
   3896	003406	012700 	000304'			MOV	#.DFWB,R0	; .CLEAR THE FUNCTION WRITE BUFFER
   3897	003412				10$:
   3898	003412					CALL	.TPCLR		; .CLEAR THE BUFFER
	003412	004737 	011356'			 JSR	PC,.TPCLR
   3899	003416	000414 				BR	20$		; .RESTORE R0 AND EXIT
   3900						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 90
.CLRFF -- CLEAR KL RUN FLOP SUBROUTINE 7609.10

   3902					.SBTTL	.CLRFF -- CLEAR KL RUN FLOP SUBROUTINE 7609.10
   3903
   3904					;+
   3905					; .CLRFF -- SUBROUTINE TO CLEAR THE KL RUN FLOP.
   3906					;
   3907					; THIS SUBROUTINE CLEARS THE KL RUN FLOP AND ISSUES A
   3908					; "MARK TIME" DIRECTIVE FOR THE CLOCK SHUTDOWN IN ".KLHLT".
   3909					;
   3910					; INPUT ARGUMENTS:
   3911					;
   3912					;	NONE.
   3913					;
   3914					; OUTPUT ARGUMENTS:
   3915					;
   3916					;	NONE
   3917					;
   3918					; ERROR CODES RETURNED:
   3919					;
   3920					;	FXF -- FUNCTION EXECUTE FAILED.
   3921					;-
   3922
   3923	003420				.CLRFF::
   3924	003420	000241 				CLC			; CLEAR CC-C
   3926	003422					DIR$	#.MTDPB		; REQUEST MARK TIME (FOR ".KLHLT")
	003422	012746 	000266'			MOV	#.MTDPB,-(SP)
	003426	104375 				EMT	375
   3928	003430					PUSH	R0		; SAVE R0
	003430	010046 				 MOV	R0,-(SP)
   3929	003432	112737 	000001 	000000G		MOVB	#1,.NOHLT	; TELL RSX20F NOT TO WORRY ABOUT THIS
   3930	003440	012700 	000020 			MOV	#FX.CRF,R0	; .SET UP TO CLEAR KL RUN FLOP
   3931	003444					CALL	.FXCT		; .DO IT
	003444	004737 	004566'			 JSR	PC,.FXCT
   3932	003450				20$:
   3933	003450					POP	R0		; .RESTORE R0
	003450	012600 				 MOV	(SP)+,R0
   3934	003452					RETURN			; TO CALLER
	003452	000207 				 RTS	PC
   3935
   3936						.DSABL	LSB
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 91
.CLRFF -- CLEAR KL RUN FLOP SUBROUTINE 7609.10

   3938					; DPB FOR MARK TIME DIRECTIVE
   3939
   3940					;	!===============================================!
   3941					; 00	!	DPB SIZE	!	  DIC		!
   3942					;	!-----------------------------------------------!
   3943					; 02	!		  EVENT FLAG			!
   3944					;	!-----------------------------------------------!
   3945					; 04	!	TIME INTERVAL IN CLOCK TICKS		!
   3946					;	!-----------------------------------------------!
   3947					; 06	!	RESCHEDULE INTERVAL IN CLOCK TICKS	!
   3948					;	!-----------------------------------------------!
   3949					; 10	!	     AST HANDLER ENTRY POINT		!
   3950					;	!===============================================!
   3951
   3952	000266				.PSECT	DPBS
   3953
   3954	000266				.MTDPB::
   3955	000266					MRKT$	E.FHTO,30.,0,0
	000266	   027 	   005 			.BYTE	23.,5
	000270	000001 				.WORD	E.FHTO
	000272	000036 				.WORD	30.
	000274	000000 				.WORD	0
	000276	000000 				.WORD	0
   3956
   3957	003454				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 92
.DTERW -- DTE-20 REGISTER READ / WRITE SUBROUTINES 7608.05

   3959					.SBTTL	.DTERW -- DTE-20 REGISTER READ / WRITE SUBROUTINES 7608.05
   3960
   3961					;+
   3962					; .DTDW1 -- SUBROUTINE TO READ DTE-20 DIAG WORD 1.
   3963					; .DTDW2 -- SUBROUTINE TO READ DTE-20 DIAG WORD 2.
   3964					; .DTSTA -- SUBROUTINE TO READ DTE-20 STATUS WORD.
   3965					; .DTDW3 -- SUBROUTINE TO READ DTE-20 DIAG WORD 3.
   3966					; .DWDW1 -- SUBROUTINE TO WRITE DTE-20 DIAG WORD 1.
   3967					; .DWDW2 -- SUBROUTINE TO WRITE DTE-20 DIAG WORD 2.
   3968					; .DWSTA -- SUBROUTINE TO WRITE DTE-20 STATUS WORD.
   3969					; .DWDW3 -- SUBROUTINE TO WRITE DTE-20 DIAG WORD 3.
   3970					;
   3971					; THESE SUBROUTINES READ OR WRITE THE CONTENT OF THE SPECIFIED
   3972					; DTE-20 REGISTER.
   3973					;
   3974					; THE CONTENT OF THE REGISTER TO BE WRITTEN IS PASSED IN R0.
   3975					; WHETHER A READ OR WRITE IS SPECIFIED, THE CONTENT OF THE REGISTER
   3976					; AFTER THE READ OR WRITE IS ALWAYS RETURNED IN R0 AND IN ".DREG".
   3977					;
   3978					; INPUT ARGUMENTS:
   3979					;
   3980					;	(READ) NONE.
   3981					;	(WRITE) R0 POINTS TO THE DATA TO BE WRITTEN.
   3982					;
   3983					; OUTPUT ARGUMENTS:
   3984					;
   3985					;	R0 CONTAINS THE DATA FROM THE REGISTER WHICH WAS
   3986					;	READ OR WRITTEN.
   3987					;
   3988					; ERROR CODES RETURNED:
   3989					;
   3990					;	DSF -- DTE-20 STATUS FAILURE.
   3991					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 93
.DTERW -- DTE-20 REGISTER READ / WRITE SUBROUTINES 7608.05

   3993						.ENABL	LSB
   3994
   3995	003454				.DWDW1::			; DIAG WORD 1 WRITE ENTRY
   3996	003454	105037 	000303'			CLRB	.REGRW+3	; SET DIAG1 OFFSET
   3997	003460	000413 				BR	10$		; DO COMMON WRITE CODE
   3998						;
   3999	003462				.DWDW2::			; DIAG WORD 2 WRITE ENTRY
   4000	003462	112737 	000002 	000303'		MOVB	#.DIAG2,.REGRW+3; DIAG2 OFFSET
   4001	003470	000407 				BR	10$		; DO COMMON WRITE CODE
   4002						;
   4003	003472				.DWSTA::			; STATUS WRITE ENTRY
   4004	003472	112737 	000004 	000303'		MOVB	#.DTSTW,.REGRW+3; OFFSET FOR STATUS
   4005	003500	000403 				BR	10$		; DO COMMON WRITE CODE
   4006						;
   4007	003502				.DWDW3::			; DIAG WORD 3 WRITE ENTRY
   4008	003502	112737 	000006 	000303'		MOVB	#.DIAG3,.REGRW+3; SET DIAG WORD 3 OFFSET
   4009	003510				10$:				; COMMON WRITE CODE
   4010	003510	010037 	000304'			MOV	R0,.REGRW+4	; SET THE DATA POINTER IN THE DPB
   4011	003514	113700 	000303'			MOVB	.REGRW+3,R0	; GET THE REGISTER OFFSET
   4012	003520	046077 	004160'	000304'		BIC	MBZTAB(R0),@.REGRW+4
   4013									; ZERO THE MBZ BITS
   4014	003526	000420 				BR	30$		; WRITE IT
   4015						;
   4016	003530				.DTDW1::			; DIAG WORD 1 READ ENTRY
   4017	003530	105037 	000303'			CLRB	.REGRW+3	; DIAG WORD 1 OFFSET IS 0
   4018	003534	000413 				BR	20$		; GO READ IT
   4019						;
   4020	003536				.DTDW2::			; DIAG WORD 2 READ ENTRY
   4021	003536	112737 	000002 	000303'		MOVB	#.DIAG2,.REGRW+3; DIAG WORD 2 OFFSET IS 2
   4022	003544	000407 				BR	20$		; GO READ IT
   4023						;
   4024	003546				.DTSTA::			; STATUS WORD READ ENTRY
   4025	003546	112737 	000004 	000303'		MOVB	#.DTSTW,.REGRW+3; SET THE OFFSET FOR THE STATUS WORD
   4026	003554	000403 				BR	20$		; GO READ THE DTE-20 STATUS REGISTER
   4027						;
   4028	003556				.DTDW3::			; DIAG WORD 3 READ ENTRY
   4029	003556	112737 	000006 	000303'		MOVB	#.DIAG3,.REGRW+3; SET THE OFFSET FOR DIAG WORD 3
   4030
   4031					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 94
.DTERW -- DTE-20 REGISTER READ / WRITE SUBROUTINES 7608.05

   4033					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4034
   4035	003564				20$:
   4036	003564	005037 	000304'			CLR	.REGRW+4	; THIS IS NOT A WRITE
   4037	003570				30$:				; DATA BUFFER ALREADY LOADED FOR WRITE
   4038	003570	005037 	000320'			CLR	.DREG		; CLEAR RETURNED DATA BUFFER
   4042	003574					DIR$	#.REGRW		; READ OR WRITE THE REGISTER
	003574	012746 	000300'			MOV	#.REGRW,-(SP)
	003600	104375 				EMT	375
   4044	003602	103411 				BCS	DTEDSF		; ERROR IF CC-C IS SET
   4045	003604	013700 	000320'			MOV	.DREG,R0	; PUT A COPY IN R0
   4047	003610	032737 	000040 	000232'		BIT	#TR.DTE,.TRKWD	; NO -- ARE WE TRACKING DTE-20 OPS?
   4048	003616	001402 				BEQ	40$		; NO -- JUST RETURN
   4049	003620					CALLR	.DTTRK		; YES -- TRACK IT AND RETURN
	003620	000137 	012316'			 JMP	.DTTRK
   4050						;
   4051	003624				40$:
   4053	003624					RETURN			; GO AWAY
	003624	000207 				 RTS	PC
   4054
   4055						.DSABL	LSB
   4056
   4057	003626				DTEDSF:
   4058	003626					ERROR$	DSF		; ERROR -- DTE-20 REGISTER READ OR WRITE FAILED
	003626	012746 	015776 			 MOV	#^RDSF,-(SP)
	003632	104400 				 TRAP	TC.ERR
   4059						;
   4060
   4061					; TABLE TO CLEAR MBZ BITS ON REGISTER WRITE
   4062
   4063	004160				.PSECT	DATA
   4064
   4065	004160				MBZTAB:
   4066	004160	000442 				.WORD	D1.MBZ
   4067	004162	177641 				.WORD	D2.MBZ
   4068	004164	000000 				.WORD	ST.MBZ
   4069	004166	177704 				.WORD	D3.MBZ
   4070
   4071	003634				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 95
.DTERW -- DTE-20 REGISTER READ / WRITE SUBROUTINES 7608.05

   4073					; DPB TO READ OR WRITE THE DTE-20 REGISTERS
   4074
   4075					;	!===============================================!
   4076					; 00	!	DPB SIZE	!	  DIC		!
   4077					;	!-----------------------------------------------!
   4078					; 02	!   REGISTER OFFSET	!    DIRECTIVE CODE	!
   4079					;	!-----------------------------------------------!
   4080					; 04	!	  POINTER TO DATA TO BE WRITTEN		!
   4081					;	!-----------------------------------------------!
   4082					; 06	!	DESTINATION ADDRESS FOR DATA READ	!
   4083					;	!-----------------------------------------------!
   4084					; 10	!		DTE-20 NUMBER			!
   4085					;	!===============================================!
   4086
   4087	000300				.PSECT	DPBS
   4088
   4089	000300				.REGRW::
   4090	000300	002411 				.WORD	2411
   4091	000302	   017 	   000 			.BYTE	17,0
   4092	000304	000000 				.WORD	0
   4093	000306	000320'				.WORD	.DREG
   4094	000310	000000 				.WORD	0
   4095		000310'			RGDTEN==.-2
   4096
   4097	003634				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 96
.EBCLK -- SUBROUTINE TO SIMULATE AN EBOX CLOCK 7512.01

   4099					.SBTTL	.EBCLK -- SUBROUTINE TO SIMULATE AN EBOX CLOCK 7512.01
   4100
   4101					;+
   4102					; .EBCLK -- SUBROUTINE TO SIMULATE AN EBOX CLOCK VIA MBOX CLOCKS
   4103					;
   4104					; THIS SUBROUTINE WILL SIMULATE AN EBOX CLOCK WITH MBOX CLOCKS.
   4105					; DOING THIS PREVENTS THE EBOX AND MBOX FROM BECOMING UNSYNCHRONIZED.
   4106					; THE EBOX CLOCK IS SYNCHED LOW ON EXIT.
   4107					;
   4108					; SEQUENCE OF OPERATION:
   4109					;
   4110					;	(A) AN MBOX CLOCK IS ISSUED (FX.002),
   4111					;	(B) THE STATE OF [CLK EBOX SRC H] IS TESTED:
   4112					;		(1) IF FALSE GO TO (A),
   4113					;		(2) IF TRUE GO TO (C),
   4114					;	(C) THE EBOX CLOCK IS SYNCHED LOW.
   4115					;
   4116					; INPUT ARGUMENTS:
   4117					;
   4118					;	NONE.
   4119					;
   4120					; OUTPUT ARGUMENTS:
   4121					;
   4122					;	NONE.
   4123					;
   4124					; ERROR CODES RETURNED:
   4125					;
   4126					;	CES -- CLOCK ERROR STOP.
   4127					;	DSF -- DTE-20 STATUS FAILURE.
   4128					;	ECT -- EBOX CLOCK TIMEOUT.
   4129					;	FRF -- FUNCTION READ FAILED.
   4130					;	FXF -- FUNCTION EXECUTE FAILED.
   4131					;
   4132					; NOTE:
   4133					;
   4134					;	THIS SUBROUTINE ASSUMES THAT THE KL CLOCK IS OFF.
   4135					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 97
.EBCLK -- SUBROUTINE TO SIMULATE AN EBOX CLOCK 7512.01

   4137	003634				.EBCLK::
   4138	003634					PUSH	<R2,R1,R0>	; SAVE CALLER'S REGISTERS
	003634	010246 				 MOV	R2,-(SP)
	003636	010146 				 MOV	R1,-(SP)
	003640	010046 				 MOV	R0,-(SP)
   4139	003642					CALL	.CESCK		; ...SEE IF CLOCK ERROR STOP IS UP
	003642	004737 	000000'			 JSR	PC,.CESCK
   4140	003646	012702 	000310 			MOV	#^D200,R2	; ...TIMEOUT COUNT TO R2
   4141	003652				10$:
   4142	003652	005001 				CLR	R1		; ...CLEAR R1
   4143	003654	012700 	000004 			MOV	#FX.MBC,R0	; ...DO ONE MBOX CLOCK
   4144	003660					CALL	.FXCT		; ...DO IT
	003660	004737 	004566'			 JSR	PC,.FXCT
   4145	003664	012700 	000210 			MOV	#FR.104,R0	; ...READ STATE OF [CLK EBX SRC H]
   4146	003670					CALL	.FREAD		; ...DO IT
	003670	004737 	004362'			 JSR	PC,.FREAD
   4147	003674	032710 	000004 			BIT	#BIT02,(R0)	; ...IS IT THERE?
   4151	003700	001001 				BNE	20$		; ...YES -- SYNCH THE CLOCK AND EXIT
   4152	003702	077215 				SOB	R2,10$		; ...NO -- LOOP TILL COUNT EXHAUSTED
   4153	003704				20$:
   4154	003704	005702 				TST	R2		; ...WHAT'S IN R2?
   4155	003706	003405 				BLE	EBCECT		; ...TIMED OUT IF .LE. 0
   4156	003710					POP	<R0,R1,R2>	; ...RESTORE CALLER'S REGISTERS
	003710	012600 				 MOV	(SP)+,R0
	003712	012601 				 MOV	(SP)+,R1
	003714	012602 				 MOV	(SP)+,R2
   4157	003716					CALLR	.SYNXC		; FORCE SYNCH THE CLOCK AND EXIT
	003716	000137 	007454'			 JMP	.SYNXC
   4158						;
   4159	003722				EBCECT:
   4160	003722					ERROR$	ECT		; ERROR -- EBOX CLOCK TIME OUT
	003722	012746 	017714 			 MOV	#^RECT,-(SP)
	003726	104400 				 TRAP	TC.ERR
   4161						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 98
.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24

   4163					.SBTTL	.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24
   4164
   4165					;+
   4166					; .EXKLM -- SUBROUTINE TO EXAMINE KL MEMORY.
   4167					; .DPKLM -- SUBROUTINE TO DEPOSIT KL MEMORY.
   4168					;
   4169					; THIS SUBROUTINE EXAMINES OR DEPOSITS ONE LOCATION OF KL MEMORY.
   4170					;
   4171					; INPUT ARGUMENTS:
   4172					;
   4173					; R0 MUST CONTAIN ONE OF THE FOLLOWING ADDRESS SPACE CODES:
   4174					;
   4175					;	(A) ED.EPT (000) EXEC PROCESS TABLE (RELATIVE),
   4176					;	(B) ED.EXV (040) EXEC VIRTUAL ADDRESS SPACE,
   4177					;	(C) ED.UPT (100) USER PROCESS TABLE (RELATIVE),
   4178					;	(D) ED.USV (140) USER VIRTUAL ADDRESS SPACE,
   4179					;	(E) ED.PHY (200) PHYSICAL ADDRESS SPACE.
   4180					;
   4181					; R1 MUST CONTAIN A POINTER TO A TWO WORD POINTER BLOCK OF THE FORM:
   4182					;
   4183					;		!===================================!
   4184					;	00	!      POINTER TO KL ADDRESS	    !
   4185					;		!-----------------------------------!
   4186					;	02	!       POINTER TO KL DATA	    !
   4187					;		!===================================!
   4188					;
   4189					; THE KL ADDRESS POINTER MUST POINT TO A TWO WORD BLOCK OF THE FORM:
   4190					;
   4191					;		!===================================!
   4192					;	00	!	  KL ADDRESS 20 - 35	    !
   4193					;		!-----------------------------------!
   4194					;	02	!	  KL ADDRESS 19 - 14	    !
   4195					;		!===================================!
   4196					;
   4197					; THE KL DATA POINTER POINTS TO A TRIPLET IN DEXWORD FORMAT.
   4198					;
   4199					; OUTPUT ARGUMENTS:
   4200					;
   4201					;	SAME AS INPUT ARGUMENTS.
   4202					;
   4203					; ERROR CODES RETURNED:
   4204					;
   4205					;	ESD -- EBOX STOPPED - DEPOSIT.
   4206					;	ESE -- EBOX STOPPED - EXAMINE.
   4207					;	EMF -- EXAMINE KL MEMORY FAILED.
   4208					;	DMF -- DEPOSIT KL MEMORY FAILED.
   4209					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 99
.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24

   4211						.ENABL	LSB
   4212
   4213	003730				.EXKLM::
   4214	003730					PUSH	<R2,R3>		; SAVE R2 AND R3 ON THE STACK
	003730	010246 				 MOV	R2,-(SP)
	003732	010346 				 MOV	R3,-(SP)
   4215	003734	012702 	004170'			MOV	#.ETAB,R2	; ..POINTER TO EXAMINE TABLE
   4216	003740					CALL	.EXDPM		; ..GO DO EXAMINE
	003740	004737 	004020'			 JSR	PC,.EXDPM
   4223	003744	032737 	000010 	000232'		BIT	#TR.EXM,.TRKWD	; ..ARE WE TRACKING EXAMINES?
   4224	003752	001417 				BEQ	10$		; ..NO -- GO ON
   4225	003754					CALL	.EXTRK		; ..YES -- TRACK IT
	003754	004737 	012426'			 JSR	PC,.EXTRK
   4227	003760	000414 				BR	10$		; ..AND GO AWAY
   4228						;
   4229	003762				.DPKLM::
   4230	003762					PUSH	<R2,R3>		; SAVE R2 AND R3 ON THE STACK
	003762	010246 				 MOV	R2,-(SP)
	003764	010346 				 MOV	R3,-(SP)
   4231	003766	012702 	004200'			MOV	#.DTAB,R2	; ..POINTER TO DEPOSIT TABLE
   4232	003772					CALL	.EXDPM		; ..DO THE DEPOSIT
	003772	004737 	004020'			 JSR	PC,.EXDPM
   4239	003776	032737 	000020 	000232'		BIT	#TR.DEP,.TRKWD	; ..ARE WE TRACKING DEPOSITS?
   4240	004004	001402 				BEQ	10$		; ..NO -- GO ON
   4241	004006					CALL	.DPTRK		; ..YES -- TRACK THE DEPOSIT
	004006	004737 	012440'			 JSR	PC,.DPTRK
   4243	004012				10$:
   4244	004012					POP	<R3,R2>		; ..RESTORE R2 AND R3
	004012	012603 				 MOV	(SP)+,R3
	004014	012602 				 MOV	(SP)+,R2
   4245	004016					RETURN			; RETURN TO CALLER
	004016	000207 				 RTS	PC
   4246
   4247						.DSABL	LSB
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 100
.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24

   4249					; THIS IS THE COMMON DEPOSIT / EXAMINE CODE
   4250
   4251	004020				.EXDPM::
   4252	004020	000241 				CLC			; CLEAR CC-C
   4253	004022	012203 				MOV	(R2)+,R3	; GET THE DPB POINTER INTO R3
   4254	004024	110023 				MOVB	R0,(R3)+	; PUT THE MODE INTO THE DPB
   4255	004026	011123 				MOV	(R1),(R3)+	; PUT THE POINTER TO THE KL ADDRESS IN THE DPB
   4256	004030	016113 	000002 			MOV	2(R1),(R3)	; AND DESTINATION POINTER TOO
   4257	004034	011303 				MOV	(R3),R3		; GET ADDRESS OF CALLER'S DATA BLOCK
   4258	004036	042763 	177760 	000004 		BIC	#177760,4(R3)	; CLEAR EXTRANEOUS BITS
   4262	004044					DIR$	(R2)+		; DO THE EXAMINE OR DEPOSIT
	004044	012246 				MOV	(R2)+,-(SP)
	004046	104375 				EMT	375
   4264	004050	103401 				BCS	10$		; ERROR IF CC-C IS SET
   4265	004052					RETURN			; TO CALLER
	004052	000207 				 RTS	PC
   4266	004054				10$:
   4267	004054	022737 	000000G	000000G		CMP	#IE.EBX,$DSW	; IS THE EBOX STOPPED?
   4268	004062	001401 				BEQ	20$		; YES -- EBOX IS STOPPED
   4269	004064	005722 				TST	(R2)+		; NO -- OTHER ERROR
   4270	004066				20$:
   4271	004066					CALL	.CESCK		; SEE IF CLOCK ERROR STOP IS UP
	004066	004737 	000000'			 JSR	PC,.CESCK
   4272	004072	103001 				BCC	25$		; [5.1002]CES SWEEP RETURN?
   4273	004074					RETURN			; [5.1002]YES -- EXIT
	004074	000207 				 RTS	PC
   4274	004076				25$:	CALL	.RESTD		; RESET THE DTE-20 SINCE IT MAY BE CONFUSED
	004076	004737 	007066'			 JSR	PC,.RESTD
   4275	004102	000132 				JMP	@(R2)+		; GIVE THE EXAMINE ERROR TRAP
   4276						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 101
.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24

   4278					; TABLES FOR EXAMINE / DEPOSIT KL MEMORY
   4279
   4280	004170				.PSECT	DATA
   4281
   4282	004170				.ETAB:
   4283	004170	000327'				.WORD	.EXDPB+3	; POINTER FOR EXAMINE MODE IN DPB
   4284	004172	000324'				.WORD	.EXDPB		; EXAMINE DPB POINTER
   4285	004174	004120'				.WORD	EXDESE		; EBOX STOPPED - EXAMINE
   4286	004176	004142'				.WORD	EXDEMF		; EXAMINE KL FAILED
   4287
   4288	004200				.DTAB:
   4289	004200	000315'				.WORD	.DPDPB+3	; POINTER FOR DEPOSIT MODE IN DPB
   4290	004202	000312'				.WORD	.DPDPB		; DEPOSIT DPB POINTER
   4291	004204	004104'				.WORD	EXDESD		; EBOX STOPPED - DEPOSIT
   4292	004206	004134'				.WORD	EXDDMF		; DEPOSIT KL FAILED
   4293
   4294	004104				.PSECT
   4295
   4296	004104				EXDESD:
   4297	004104	042737 	100000 	000000G		BIC	#KF.CLK,.KLFLG	; FLAG THE EBOX STOP
   4298	004112					ERROR$	ESD		; ERROR -- EBOX STOPPED - DEPOSIT
	004112	012746 	021074 			 MOV	#^RESD,-(SP)
	004116	104400 				 TRAP	TC.ERR
   4299						;
   4300	004120				EXDESE:
   4301	004120	042737 	100000 	000000G		BIC	#KF.CLK,.KLFLG	; FLAG THE EBOX STOP
   4302	004126					ERROR$	ESE		; ERROR -- EBOX STOPPED - EXAMINE
	004126	012746 	021075 			 MOV	#^RESE,-(SP)
	004132	104400 				 TRAP	TC.ERR
   4303						;
   4304	004134				EXDDMF:
   4305	004134					ERROR$	DMF		; ERROR -- DEPOSIT MEMORY FAILED
	004134	012746 	015416 			 MOV	#^RDMF,-(SP)
	004140	104400 				 TRAP	TC.ERR
   4306						;
   4307	004142				EXDEMF:
   4308	004142					ERROR$	EMF		; ERROR -- EXAMINE MEMORY FAILED
	004142	012746 	020516 			 MOV	#^REMF,-(SP)
	004146	104400 				 TRAP	TC.ERR
   4309						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 102
.EXDPM -- KL MEMORY EXAMINE / DEPOSIT SUBROUTINE 7702.24

   4311					; DPB FOR PRIVILEGED DEPOSIT
   4312
   4313					;	!===============================================!
   4314					; 00	!	DPB SIZE	!	  DIC		!
   4315					;	!-----------------------------------------------!
   4316					; 02	!    DEPOSIT TYPE	!    DIRECTIVE CODE	!
   4317					;	!-----------------------------------------------!
   4318					; 04	!	  KL DEPOSIT ADDRESS POINTER		!
   4319					;	!-----------------------------------------------!
   4320					; 06	!	   KL DEPOSIT DATA POINTER		!
   4321					;	!-----------------------------------------------!
   4322					; 10	!		DTE-20 NUMBER			!
   4323					;	!===============================================!
   4324
   4325	000312				.PSECT	DPBS
   4326
   4327	000312				.DPDPB::
   4328	000312					PRDP$	0,.EDKLA,.DPBFR,ED.PHY
	000312	   011 	   005 			.BYTE	DR.DTE,5
	000314	   016 	   200 			.BYTE	DF.PDP,ED.PHY
	000316	000104'				.WORD	.EDKLA
	000320	000066'				.WORD	.DPBFR
	000322	000000 				.WORD	0
   4329		000322'			DPDTEN==.-2
   4330
   4331					; DPB FOR PRIVILEGED EXAMINE
   4332
   4333					;	!===============================================!
   4334					; 00	!	DPB SIZE	!	  DIC		!
   4335					;	!-----------------------------------------------!
   4336					; 02	!    EXAMINE TYPE	!    DIRECTIVE CODE	!
   4337					;	!-----------------------------------------------!
   4338					; 04	!	    KL ADDRESS WORD POINTER		!
   4339					;	!-----------------------------------------------!
   4340					; 06	!	     DATA DESTINATION POINTER		!
   4341					;	!-----------------------------------------------!
   4342					; 10	!		DTE-20 NUMBER			!
   4343					;	!===============================================!
   4344
   4345	000324				.EXDPB::
   4346	000324					PREX$	0,.EDKLA,.EXBFR,ED.PHY
	000324	   011 	   005 			.BYTE	DR.DTE,5
	000326	   015 	   200 			.BYTE	DF.PEX,ED.PHY
	000330	000104'				.WORD	.EDKLA
	000332	000124'				.WORD	.EXBFR
	000334	000000 				.WORD	0
   4347		000334'			EXDTEN==.-2
   4348
   4349	004150				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 103
.EXCTF -- FAST INTERNAL EXECUTE 7602.17

   4351					.SBTTL	.EXCTF -- FAST INTERNAL EXECUTE 7602.17
   4352
   4353					;+
   4354					; .EXCTF -- FST INTERNAL EXECUTE.
   4355					;
   4356					; THIS SUBROUTINE WILL EXECUTE A KL INSTRUCTION WITHOUT
   4357					; CLOCKING THE KL OUT THE HALT LOOP; THE KL IS SIMPLY
   4358					; CONTINUED
   4359					;
   4360					; INPUT ARGUMENTS:
   4361					;
   4362					;	NONE.
   4363					;
   4364					; OUTPUT ARGUMENTS:
   4365					;
   4366					;	NONE.
   4367					;
   4368					; ERROR CODES RETURNED:
   4369					;
   4370					;	NONE
   4371					;-
   4372
   4373	004150				.EXCTF::
   4374	004150					PUSH	.KLFLG		; SAVE ".KLFLG"
	004150	013746 	000000G			 MOV	.KLFLG,-(SP)
   4375	004154	005116 				COM	(SP)		; .INVERT IT
   4376	004156	032716 	140000 			BIT	#KF.CLK!KF.RUN,(SP)
   4377	004162	001013 				BNE	10$		; .NOT REALLY RUNNING -- DO OTHER XCT
   4378	004164	005116 				COM	(SP)		; .RESET SAVED ".KLFLG"
   4379	004166					PUSH	R0		; .SAVE R0
	004166	010046 				 MOV	R0,-(SP)
   4380	004170					CALL	.STPKL		; ..STOP THE KL
	004170	004737 	007256'			 JSR	PC,.STPKL
   4381	004174					POP	R1		; ..INSTRUCTION POINTER TO R1
	004174	012601 				 MOV	(SP)+,R1
   4382	004176					CALL	.KLXCT		; .EXECUTE THE INSTRUCTION
	004176	004737 	005426'			 JSR	PC,.KLXCT
   4383	004202					POP	.SVKLF		; .SET UP ".SVKLF"
	004202	012637 	000226'			 MOV	(SP)+,.SVKLF
   4384	004206					CALLR	.RSTKL		; RESTART THE KL
	004206	000137 	007204'			 JMP	.RSTKL
   4385						;
   4386	004212				10$:
   4387	004212	005726 				TST	(SP)+		; .FLUSH THE STACK
   4388	004214	022020 				CMP	(R0)+,(R0)+	; ADVANCE THE POINTER
   4389	004216					PUSH	<(R0),-(R0),-(R0)>
	004216	011046 				 MOV	(R0),-(SP)
	004220	014046 				 MOV	-(R0),-(SP)
	004222	014046 				 MOV	-(R0),-(SP)
   4390	004224	010600 				MOV	SP,R0		; ...POINT TO STACKED INSTRUCTION
   4391
   4392					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 104
.EXCTF -- FAST INTERNAL EXECUTE 7602.17

   4394					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4395
   4396	004226				.EXECT::
   4397	004226	010001 				MOV	R0,R1		; ...POINTER TO R1
   4398	004230					PUSH	.KLFLG		; ...SAVE ".KLFLG"
	004230	013746 	000000G			 MOV	.KLFLG,-(SP)
   4399	004234					CALL	.KLXCT		; ....START THE EXECUTE
	004234	004737 	005426'			 JSR	PC,.KLXCT
   4400	004240				10$:
   4401	004240					CALL	.EBCLK		; ....GIVE ONE EBOX CLOCK
	004240	004737 	003634'			 JSR	PC,.EBCLK
   4402	004244					CALL	.DTDW1		; ....READ DTE-20 DIAG WORD 1
	004244	004737 	003530'			 JSR	PC,.DTDW1
   4403	004250	032700 	001000 			BIT	#D1.HLP,R0	; ....IS THE HALT LOOP UP?
   4405	004254	001371 				BNE	10$		; ....YES -- WAIT TILL IT ISN'T
   4407	004256					CALL	.STCLK		; ....OUT OF HALT LOOP -- START THE CLOCK
	004256	004737 	007232'			 JSR	PC,.STCLK
   4408	004262	012701 	005000 			MOV	#5000,R1	; ....WAIT COUNT TO R1
   4409	004266				20$:
   4410	004266					CALL	.DTDW1		; ....READ DTE-20 DIAG WORD 1
	004266	004737 	003530'			 JSR	PC,.DTDW1
   4411	004272	032700 	001000 			BIT	#D1.HLP,R0	; ....LOOK FOR THE HALT LOOP AGAIN
   4415	004276	001002 				BNE	30$		; ....IN THE HALT LOOP -- FINISH UP
   4416	004300	077106 				SOB	R1,20$		; ....NOT YET -- TRY AGAIN
   4417	004302	000424 				BR	EXECTO		; ....EXECUTE TIMED OUT
   4418						;
   4419	004304				30$:
   4420	004304	005116 				COM	(SP)		; ....INVERT OLD ".KLFLG"
   4421	004306	032716 	140000 			BIT	#KF.CLK!KF.RUN,(SP) ; ....WAS THE KL RUNNING??
   4422	004312	001003 				BNE	40$		; ....NO -- GO ON
   4423	004314					CALL	.KLCON		; ....YES -- CONTINUE THE KL
	004314	004737 	004736'			 JSR	PC,.KLCON
   4424	004320	000412 				BR	60$		; ....AND EXIT
   4425						;
   4426	004322				40$:
   4427	004322	032716 	100000 			BIT	#KF.CLK,(SP)	; ....WAS THE CLOCK ON?
   4428	004326	001402 				BEQ	50$		; ....YES -- GO ON
   4429	004330					CALL	.STPXC		; ....NO -- STOP IT
	004330	004737 	007302'			 JSR	PC,.STPXC
   4430	004334				50$:
   4431	004334	032716 	040000 			BIT	#KF.RUN,(SP)	; ....WAS THE RUN FLOP ON??
   4432	004340	001002 				BNE	60$		; ....NO -- GO ON
   4433	004342					CALL	.STRUN		; ....YES -- SET IT
	004342	004737 	007332'			 JSR	PC,.STRUN
   4434	004346				60$:
   4435	004346	062706 	000010 			ADD	#^D8,SP		; ....RESET THE STACK
   4436	004352					RETURN			; AND EXIT
	004352	000207 				 RTS	PC
   4437	004354				EXECTO:
   4438	004354					ERROR$	XTO		; ERROR -- EXECUTE TIMED OUT
	004354	012746 	114457 			 MOV	#^RXTO,-(SP)
	004360	104400 				 TRAP	TC.ERR
   4439						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 105
.FREAD -- DIAGNOSTIC FUNCTION READ SUBROUTINE 7609.15

   4441					.SBTTL	.FREAD -- DIAGNOSTIC FUNCTION READ SUBROUTINE 7609.15
   4442
   4443					;+
   4444					; .FREAD -- SUBROUTINE TO EXECUTE A DIAGNOSTIC FUNCTION READ.
   4445					;
   4446					; THESE SUBROUTINES EXECUTE A DIAGNOSTIC FUNCTION READ.
   4447					;
   4448					; SEQUENCE OF OPERATION:
   4449					;
   4450					;	THE DFR IS EXECUTED AND DATA LOADED THRU R1 IF R1 .NE. 0,
   4451					;	IF R1 IS .EQ. 0 THE DATA IS NOT MOVED FROM ".DFRB".
   4452					;
   4453					; INPUT ARGUMENTS:
   4454					;
   4455					;	R0 HOLDS THE FUNCTION READ CODE
   4456					;	R1 POINTS TO A DESTINATION BUFFER
   4457					;
   4458					; OUTPUT ARGUMENTS:
   4459					;
   4460					;	R0 POINTS TO THE SUBROUTINE DATA BLOCK
   4461					;	R1 POINTS TO THE CALLER'S READ BLOCK
   4462					;
   4463					; ERROR CODES RETURNED:
   4464					;
   4465					;	FRF -- FUNCTION READ FAILED.
   4466					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 106
.FREAD -- DIAGNOSTIC FUNCTION READ SUBROUTINE 7609.15

   4468	004362				.FREAD::
   4469	004362	110037 	000341'			MOVB	R0,.KLDFR+3	; SET THE DFR# IN THE DPB
   4473	004366					DIR$	#.KLDFR		; CALL THE EXEC TO DO THE READ
	004366	012746 	000336'			MOV	#.KLDFR,-(SP)
	004372	104375 				EMT	375
   4475	004374	103420 				BCS	FRDFRF		; ERROR IF CC-C IS SET
   4476	004376	012700 	000312'			MOV	#.DFRB,R0	; POINT TO TOP OF READ BLOCK
   4477	004402	005701 				TST	R1		; TEST R1
   4478	004404	001405 				BEQ	10$		; EXIT IF R1 .EQ. 0
   4479	004406	012021 				MOV	(R0)+,(R1)+	; LOAD HIS BUFFER FROM OURS
   4480	004410	012021 				MOV	(R0)+,(R1)+
   4481	004412	011011 				MOV	(R0),(R1)
   4482	004414	024040 				CMP	-(R0),-(R0)	; BACK THE POINTERS UP
   4483	004416	024141 				CMP	-(R1),-(R1)
   4484	004420				10$:
   4486	004420	032737 	000002 	000232'		BIT	#TR.FRD,.TRKWD	; ARE WE TRACKING FUNCTION READS?
   4487	004426	001402 				BEQ	20$		; NO -- JUST EXIT
   4488	004430					CALL	.FRTRK		; YES -- DO IT
	004430	004737 	012156'			 JSR	PC,.FRTRK
   4489	004434				20$:
   4491	004434					RETURN			; TO CALLER
	004434	000207 				 RTS	PC
   4492	004436				FRDFRF:
   4493	004436					ERROR$	FRF		; ERROR -- FUNCTION READ FAILED
	004436	012746 	024126 			 MOV	#^RFRF,-(SP)
	004442	104400 				 TRAP	TC.ERR
   4494						;
   4495
   4496					; DPB FOR DIAGNOSTIC FUNCTION READ
   4497
   4498					;	!===============================================!
   4499					; 00	!	DPB SIZE	!	DIC		!
   4500					;	!-----------------------------------------------!
   4501					; 02	!	DFR OPCODE	!	DFR CODE	!
   4502					;	!-----------------------------------------------!
   4503					; 04	!	    TRANSFER BUFFER ADDRESS		!
   4504					;	!-----------------------------------------------!
   4505					; 06	!	DIAGNOSTIC REGISTER BUFFER ADDRESS	!
   4506					;	!-----------------------------------------------!
   4507					; 10	!		DTE-20 NUMBER			!
   4508					;	!===============================================!
   4509
   4510	000336				.PSECT	DPBS
   4511
   4512	000336				.KLDFR::
   4513	000336					KLDR$	.-.,.DFBLK,.DREG,0
	000336	002411 				.WORD	400*5.+DR.DTE
	000340	   012 	   000 			.BYTE	DF.KLR,.-./400
	000342	000304'				.WORD	.DFBLK
	000344	000320'				.WORD	.DREG
	000346	000000 				.WORD	0
   4514		000346'			FRDTEN==.-2
   4515
   4516	004444				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 107
.FWRIT -- DIAGNOSTIC FUNCTION WRITE SUBROUTINE 7609.15

   4518					.SBTTL	.FWRIT -- DIAGNOSTIC FUNCTION WRITE SUBROUTINE 7609.15
   4519
   4520					;+
   4521					; .FWRIT -- SUBROUTINE TO EXECUTE A DIAGNOSTIC FUNCTION WRITE.
   4522					;
   4523					; THESE SUBROUTINES EXECUTE A DIAGNOSTIC FUNCTION WRITE.
   4524					;
   4525					; SEQUENCE OF OPERATION:
   4526					;
   4527					; .FWRIT:
   4528					;
   4529					;	(A) THE DATA IS LOADED THRU R1 IF R1 .NE. 0,
   4530					;	    IF R1 IS .EQ. 0 THE DATA IS ASSUMED TO BE IN ".DFWB",
   4531					;	(B) THE FUNCTION WRITE IS EXECUTED.
   4532					;
   4533					; INPUT ARGUMENTS:
   4534					;
   4535					;	R0 HOLDS THE FUNCTION WRITE CODE
   4536					;	R1 POINTS TO A SOURCE BUFFER
   4537					;
   4538					; OUTPUT ARGUMENTS:
   4539					;
   4540					;	R0 POINTS TO THE SUBROUTINE DATA BLOCK
   4541					;	R1 POINTS TO THE CALLER'S WRITE BLOCK
   4542					;
   4543					; ERROR CODES RETURNED:
   4544					;
   4545					;	FWF -- FUNCTION WRITE FAILED.
   4546					;-
   4547
   4548	004444				.FWRIT::
   4549	004444	110037 	000353'			MOVB	R0,.KLDFW+3	; SET THE DFW# IN THE DPB
   4550	004450	012700 	000304'			MOV	#.DFWB,R0	; POINT TO TOP OF WRITE BLOCK
   4551	004454	005701 				TST	R1		; TEST R1
   4552	004456	001405 				BEQ	10$		; ALREADY IN ".DFWB" IF R1 .EQ. 0
   4553	004460	012120 				MOV	(R1)+,(R0)+	; LOAD THE DATA BLOCK
   4554	004462	012120 				MOV	(R1)+,(R0)+
   4555	004464	011110 				MOV	(R1),(R0)
   4556	004466	024040 				CMP	-(R0),-(R0)	; BACK THE POINTERS UP
   4557	004470	024141 				CMP	-(R1),-(R1)
   4558
   4559
   4560					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 108
.FWRIT -- DIAGNOSTIC FUNCTION WRITE SUBROUTINE 7609.15

   4562					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4563
   4564	004472				10$:
   4565	004472	042760 	177760 	000004 		BIC	#177760,4(R0)	; FLUSH EXTRANEOUS BITS
   4569	004500					DIR$	#.KLDFW		; CALL THE EXEC TO DO THE WRITE
	004500	012746 	000350'			MOV	#.KLDFW,-(SP)
	004504	104375 				EMT	375
   4571	004506	103424 				BCS	FWRFWF		; ERROR IF CC-C IS SET
   4572	004510					PUSH	R0		; SAVE THE BUFFER POINTER
	004510	010046 				 MOV	R0,-(SP)
   4573	004512	113700 	000353'			MOVB	.KLDFW+3,R0	; .GET THE WRITE CODE
   4574	004516	120027 	000110 			CMPB	R0,#FW.044	; .DID WE WRITE THE CLOCK BOARD?
   4575	004522	002406 				BLT	20$		; .NO -- JUST EXIT
   4576	004524	120027 	000116 			CMPB	R0,#FW.047	; .MAYBE -- DID WE REALLY?
   4577	004530	003003 				BGT	20$		; .NO -- JUST EXIT
   4578	004532	042737 	100000 	000000G		BIC	#KF.CLK,.KLFLG	; .YES -- TURN THE CLOCK BIT OFF
   4579	004540				20$:
   4581	004540	032737 	000004 	000232'		BIT	#TR.FWR,.TRKWD	; .ARE WE TRACKING FUNCTION WRITES?
   4582	004546	001402 				BEQ	30$		; .NO -- GO ON
   4583	004550					CALL	.FWTRK		; .YES -- LEAVE TRACKS ON CONSOLE
	004550	004737 	012176'			 JSR	PC,.FWTRK
   4584	004554				30$:
   4586	004554					POP	R0		; .RESTORE THE BUFFER POINTER
	004554	012600 				 MOV	(SP)+,R0
   4587	004556					RETURN			; YES -- RETURN TO CALLER
	004556	000207 				 RTS	PC
   4588
   4589	004560				FWRFWF:
   4590	004560					ERROR$	FWF		; ERROR -- FUNCTION WRITE FAILED
	004560	012746 	024436 			 MOV	#^RFWF,-(SP)
	004564	104400 				 TRAP	TC.ERR
   4591						;
   4592
   4593					; DPB FOR DIAGNOSTIC FUNCTION WRITE
   4594
   4595					;	!===============================================!
   4596					; 00	!	DPB SIZE	!	DIC		!
   4597					;	!-----------------------------------------------!
   4598					; 02	!	DFW OPCODE	!	DFW CODE	!
   4599					;	!-----------------------------------------------!
   4600					; 04	!	   TRANSFER BUFFER ADDRESS		!
   4601					;	!-----------------------------------------------!
   4602					; 06	!	DIAGNOSTIC REGISTER BUFFER ADDRESS	!
   4603					;	!-----------------------------------------------!
   4604					; 10	!		DTE-20 NUMBER			!
   4605					;	!===============================================!
   4606
   4607	000350				.PSECT	DPBS
   4608
   4609	000350				.KLDFW::
   4610	000350					KLDW$	.-.,.DFBLK,.DREG,0
	000350	002411 				.WORD	400*5.+DR.DTE
	000352	   013 	   000 			.BYTE	DF.KLW,.-./400
	000354	000304'				.WORD	.DFBLK
	000356	000320'				.WORD	.DREG
	000360	000000 				.WORD		0
   4611		000360'			FWDTEN==.-2
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 108-1
.FWRIT -- DIAGNOSTIC FUNCTION WRITE SUBROUTINE 7609.15

   4612
   4613	004566				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 109
.FXCT  -- DIAGNOSTIC FUNCTION EXECUTE SUBROUTINE 7609.15

   4615					.SBTTL	.FXCT  -- DIAGNOSTIC FUNCTION EXECUTE SUBROUTINE 7609.15
   4616					;+
   4617					; .FXCT -- SUBROUTINE TO EXECUTE A DIAGNOSTIC FUNCTION EXECUTE.
   4618					;
   4619					; THESE SUBROUTINES EXECUTE A DIAGNOSTIC FUNCTION EXECUTE AND MAINTAIN
   4620					; THE STATE OF THE KL CLOCK ("KF.CLK") AND RUN FLOP ("KF.RUN") FLAGS
   4621					; IN THE KL STATE FLAG WORD, ".KLFLG".
   4622					;
   4623					; SEQUENCE OF OPERATION:
   4624					;
   4625					;	THE DFX IS SIMPLY EXECUTED.
   4626					;
   4627					; INPUT ARGUMENTS:
   4628					;
   4629					;	R0 CONTAINS THE FUNCTION EXECUTE CODE
   4630					;
   4631					; OUTPUT ARGUMENTS:
   4632					;
   4633					;	NONE.
   4634					;
   4635					; ERROR CODES RETURNED:
   4636					;
   4637					;	FXF -- FUNCTION EXECUTE FAILED.
   4638					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 110
.FXCT  -- DIAGNOSTIC FUNCTION EXECUTE SUBROUTINE 7609.15

   4640	004566				.FXCT::
   4641	004566	110037 	000365'			MOVB	R0,.KLDFX+3	; SET THE EXECUTE CODE IN THE DPB
   4645	004572					DIR$	#.KLDFX		; CALL THE EXEC TO DO THE DFX
	004572	012746 	000362'			MOV	#.KLDFX,-(SP)
	004576	104375 				EMT	375
   4647	004600	103453 				BCS	FXCFXF		; ERROR IF CC-C IS SET
   4648	004602	113746 	000365'			MOVB	.KLDFX+3,-(SP)	; PUT THE EXECUTE CODE ON THE STACK
   4649	004606	012700 	100000 			MOV	#KF.CLK,R0	; .FLAG BIT TO R0
   4650	004612	121627 	000002 			CMPB	(SP),#FX.CST	; .IS DFX CODE .EQ. 1?
   4651	004616	001411 				BEQ	10$		; .YES -- DO CLOCK STARTED STUFF
   4652	004620	121627 	000016 			CMPB	(SP),#FX.SMR	; .NO -- IS DFX CODE .GT. 7?
   4653	004624	101014 				BHI	20$		; .YES -- LEAVE NOW
   4654	004626	030037 	000000G			BIT	R0,.KLFLG	; .NO -- IS THE FLAG OFF ALREADY?
   4655	004632	001426 				BEQ	40$		; .YES -- LEAVE NOW
   4656	004634	040037 	000000G			BIC	R0,.KLFLG	; .NO -- TURN IF OFF
   4657	004640	000423 				BR	40$		; .AND GO AWAY
   4658						;
   4659	004642				10$:
   4660	004642	030037 	000000G			BIT	R0,.KLFLG	; .IS THE FLAG ON ALREADY?
   4661	004646	001020 				BNE	40$		; .YES -- LEAVE NOW
   4662	004650	050037 	000000G			BIS	R0,.KLFLG	; .NO -- LIGHT IT UP
   4663	004654	000415 				BR	40$		; .AND EXIT
   4664						;
   4665	004656				20$:
   4666	004656	012700 	040000 			MOV	#KF.RUN,R0	; .DO RUN FLAG STUFF
   4667	004662	121627 	000022 			CMPB	(SP),#FX.SRF	; .SET THE RUN FLOP?
   4668	004666	001003 				BNE	30$		; .NO -- GO ON
   4669	004670	050037 	000000G			BIS	R0,.KLFLG	; .YES -- SET THE FLAG
   4670	004674	000405 				BR	40$		; .AND GO AWAY
   4671						;
   4672	004676				30$:
   4673	004676	121627 	000020 			CMPB	(SP),#FX.CRF	; .CLEAR RUN FLOP?
   4674	004702	001002 				BNE	40$		; .NO  -- JUST GO AWAY
   4675	004704	040037 	000000G			BIC	R0,.KLFLG	; .YES -- CLEAR THE FLAG
   4676
   4677					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 111
.FXCT  -- DIAGNOSTIC FUNCTION EXECUTE SUBROUTINE 7609.15

   4679					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4680
   4681	004710				40$:
   4683	004710	032737 	000001 	000232'		BIT	#TR.FXC,.TRKWD	; .ARE WE TRACKING FUNCTION EXECUTES?
   4684	004716	001402 				BEQ	50$		; .NO -- JUST EXIT
   4685	004720					CALL	.FXTRK		; .YES -- DO IT
	004720	004737 	012216'			 JSR	PC,.FXTRK
   4686	004724				50$:
   4688	004724					POP	R0		; .RESTORE R0
	004724	012600 				 MOV	(SP)+,R0
   4689	004726					RETURN			; TO CALLER
	004726	000207 				 RTS	PC
   4690	004730				FXCFXF:
   4691	004730					ERROR$	FXF		; FUNCTION EXECUTE FAILED
	004730	012746 	024506 			 MOV	#^RFXF,-(SP)
	004734	104400 				 TRAP	TC.ERR
   4692						;
   4693
   4694					; DIRECTIVE PARAMETER BLOCK DIAGNOSTIC FUNCTION EXECUTE
   4695
   4696					;	!===============================================!
   4697					; 00	!	DPB SIZE	!	DIC		!
   4698					;	!-----------------------------------------------!
   4699					; 02	!	DFX OPCODE	!	DFX CODE	!
   4700					;	!-----------------------------------------------!
   4701					; 04	!	    TRANSFER BUFFER ADDRESS		!
   4702					;	!-----------------------------------------------!
   4703					; 06	!	DIAGNOSTIC REGISTER BUFFER ADDRESS	!
   4704					;	!-----------------------------------------------!
   4705					; 10	!		DTE-20 NUMBER			!
   4706					;	!===============================================!
   4707
   4708
   4709	000362				.PSECT	DPBS
   4710
   4711	000362				.KLDFX::
   4712	000362					KLDX$	.-.,.DFBLK,.DREG,0
	000362	002411 				.WORD	400*5.+DR.DTE
	000364	   014 	   000 			.BYTE	DF.KLX,.-./400
	000366	000304'				.WORD	.DFBLK
	000370	000320'				.WORD	.DREG
	000372	000000 				.WORD	0
   4713		000372'			FXDTEN==.-2
   4714
   4715	004736				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 112
.KLCON -- KL CONTINUE SUBROUTINE 7710.11

   4717					.SBTTL	.KLCON -- KL CONTINUE SUBROUTINE 7710.11
   4718
   4719					;+
   4720					; .KLCON -- SUBROUTINE TO CONTINUE THE KL.
   4721					; .KLGO -- SUBROUTINE TO FINISH STARTING THE KL.
   4722					;
   4723					; THIS SUBROUTINE STARTS THE KL CLOCK AND SETS THE KL
   4724					; RUN FLOP ".KLCON" SETS THE CONTINUE FLOP PRIOR TO THIS.
   4725					;
   4726					; SEQUENCE OF OPERATION:
   4727					;
   4728					; .KLCON:
   4729					;
   4730					;	(A) THE KL CONTINUE FLOP IS SET,
   4731					;
   4732					; .KLGO:
   4733					;
   4734					;	(A) THE KL CLOCK IS STARTED IF NOT IN SINGLE PULSE MODE,
   4735					;	(B) THE KL RUN FLOP IS SET IF NOT IN SINGLE INSTRUCTION MODE
   4736					;	    OR SINGLE PULSE MODE.
   4737					;
   4738					; INPUT ARGUMENTS:
   4739					;
   4740					;	NONE.
   4741					;
   4742					; OUTPUT ARGUMENTS:
   4743					;
   4744					;	NONE.
   4745					;
   4746					; ERROR CODES RETURNED:
   4747					;
   4748					;	CFH -- CAN'T FIND KL HALT LOOP.
   4749					;	CSK -- CAN'T START KL.
   4750					;	DSF -- DTE-20 STATUS FAILURE.
   4751					;	FRF -- FUNCTION READ FAILED.
   4752					;	FWF -- FUNCTION WRITE FAILED.
   4753					;	FXF -- FUNCTION EXECUTE FAILED.
   4754					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 113
.KLCON -- KL CONTINUE SUBROUTINE 7710.11

   4756	004736				.KLCON::
   4757	004736					PUSH	R1		; SAVE R1 ON THE STACK
	004736	010146 				 MOV	R1,-(SP)
   4758	004740	012701 	000000G			MOV	#.KLFLG,R1	; .FLAG WORD POINTER TO R1
   4759	004744				.KLGO::
   4760	004744	032711 	002000 			BIT	#KF.SPM,(R1)	; .SINGLE PULSE MODE?
   4761	004750	001027 				BNE	30$		; .YES -- JUST EXIT
   4762	004752	032711 	010000 			BIT	#KF.SIM,(R1)	; .NO -- SINGLE INSTRUCTION MODE?
   4763	004756	001002 				BNE	10$		; .YES -- GO ON
   4764	004760					CALL	.STRUN		; .NO -- SET THE KL RUN FLOP
	004760	004737 	007332'			 JSR	PC,.STRUN
   4765	004764				10$:
   4766	004764	012700 	000024 			MOV	#FX.CON,R0	; .SET THE CONTINUE BUTTON
   4767	004770					CALL	.FXCT		; .DO IT
	004770	004737 	004566'			 JSR	PC,.FXCT
   4768	004774	032711 	100000 			BIT	#KF.CLK,(R1)	; .IS THE CLOCK RUNNING?
   4769	005000	001002 				BNE	20$		; .YES -- EXIT
   4770	005002					CALL	.STCLK		; .NO -- START THE KL CLOCK
	005002	004737 	007232'			 JSR	PC,.STCLK
   4771	005006				20$:
   4772	005006	011100 				MOV	(R1),R0		; .GET ".KLFLG" INTO R0
   4773	005010	005100 				COM	R0		; .INVERT IT
   4774	005012	032700 	140000 			BIT	#KF.CLK!KF.RUN,R0 ; .IS THE KL RUNNING??
   4775	005016	001004 				BNE	30$		; .NO -- JUST EXIT
   4776	005020	052711 	000200 			BIS	#KF.CON,(R1)	; .YES -- KL IS NOW CONTINUEABLE
   4777	005024	105037 	000000G			CLRB	.NOHLT		; .LET RSX20F CATCH KL HALTS
   4778	005030				30$:
   4779	005030					POP	R1		; .RESTORE R1
	005030	012601 				 MOV	(SP)+,R1
   4780	005032					RETURN			; EXIT
	005032	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 114
.KLHLT -- SUBROUTINE TO STOP THE KL IN THE HALT LOOP 7601.09

   4782					.SBTTL	.KLHLT -- SUBROUTINE TO STOP THE KL IN THE HALT LOOP 7601.09
   4783
   4784					;+
   4785					; .KLHLT -- SUBROUTINE TO STOP THE KL IN THE HALT LOOP
   4786					;	    AND SYNCH THE EBOX CLOCK LOW.
   4787					;
   4788					; THIS SUBROUTINE CLEARS THE KL RUN FLOP, GETS THE KL INTO
   4789					; THE MICROCODE HALT LOOP, AND TURNS THE KL CLOCK OFF.
   4790					;
   4791					; SEQUENCE OF OPERATION:
   4792					;
   4793					;	(A) THE KL RUN FLOP IS TURNED OFF,
   4794					;	(B) THE KL IS MOVED INTO THE UCODE HALT LOOP,
   4795					;	(C) A SMALL WAIT IS TIMED OUT (TO LET KL I/O SETTLE)
   4796					;	(D) THE KL CLOCK IS TURNED OFF,
   4797					;	(E) THE KL CLOCK IS SYNCHED LOW.
   4798					;
   4799					; INPUT ARGUMENTS:
   4800					;
   4801					;	NONE.
   4802					;
   4803					; OUTPUT ARGUMENTS:
   4804					;
   4805					;	NONE.
   4806					;
   4807					; ERROR CODES RETURNED:
   4808					;
   4809					;	CFH -- CAN'T FIND KL HALT LOOP.
   4810					;	DSF -- DTE-20 STATUS FAILURE.
   4811					;	FWF -- FUNCTION WRITE FAILED.
   4812					;	FXF -- FUNCTION EXECUTE FAILED.
   4813					;
   4814					; NOTE: THIS SUBROUTINE EXITS WITH THE KL CLOCK OFF.
   4815					;-
   4816
   4817	005034				.KLHLT::
   4818	005034					PUSH	<R0,R1,R2>	; SAVE CALLER'S REGISTERS
	005034	010046 				 MOV	R0,-(SP)
	005036	010146 				 MOV	R1,-(SP)
	005040	010246 				 MOV	R2,-(SP)
   4819	005042					CALL	.DTDW1		; ...READ DIAG WORD 1
	005042	004737 	003530'			 JSR	PC,.DTDW1
   4820	005046	032700 	004000 			BIT	#D1.CES,R0	; ...IS CLOCK ERROR STOP UP?
   4822	005052	001016 				BNE	40$		; ...YES -- JUST EXIT
   4824	005054					CALL	.CLRFF		; ...NO -- CLEAR THE RUN FLOP
	005054	004737 	003420'			 JSR	PC,.CLRFF
   4825	005060	012701 	000024 			MOV	#^D20,R1	; ...SET UP WAIT COUNT
   4826
   4827					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 115
.KLHLT -- SUBROUTINE TO STOP THE KL IN THE HALT LOOP 7601.09

   4829					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4830
   4831	005064				10$:
   4832	005064					CALL	.DTDW1		; ...READ THE DTE-20 DIAG WORD 1
	005064	004737 	003530'			 JSR	PC,.DTDW1
   4833	005070	032700 	001000 			BIT	#D1.HLP,R0	; ...IN THE HALT LOOP YET?
   4837	005074	001001 				BNE	20$		; ...YES -- EXIT
   4838	005076	077106 				SOB	R1,10$		; ...NO -- TRY TILL COUNT EXHAUSTED
   4839	005100				20$:
   4840	005100	005701 				TST	R1		; ...IS R1 .GT. 0?
   4841	005102	003407 				BLE	50$		; ...NO -- GO MOVE THE CLOCK MANUALLY
   4842	005104				30$:
   4843	005104					CALL	.STPXC		; ...STOP THE KL CLOCK
	005104	004737 	007302'			 JSR	PC,.STPXC
   4844	005110				40$:
   4845	005110					POP	<R2,R1,R0>	; ...RESTORE CALLER'S REGISTERS
	005110	012602 				 MOV	(SP)+,R2
	005112	012601 				 MOV	(SP)+,R1
	005114	012600 				 MOV	(SP)+,R0
   4846	005116					CALLR	.SYNXC		; SYNCH THE EBOX CLOCK LOW AND EXIT
	005116	000137 	007454'			 JMP	.SYNXC
   4847						;
   4848
   4849					; GET HERE IF WE CAN'T GET INTO HALT LOOP NORMALLY.
   4850					; THIS MEANS THAT:
   4851					;
   4852					;	(A) MICROCODE WASN'T RUNNING, OR
   4853					;	(B) MICROCODE WASN'T LOADED.
   4854
   4855	005122				50$:
   4856	005122					CALL	.STPXC		; ...MAKE SURE THE CLOCK IS OFF
	005122	004737 	007302'			 JSR	PC,.STPXC
   4857	005126	012702 	000012 			MOV	#^D10,R2	; ...ITERATION COUNT TO R2
   4858	005132				60$:
   4859	005132	012700 	000310 			MOV	#^D200,R0	; ...200 (DECIMAL) CLOCKS PER PASS
   4860	005136					CALL	.BURST		; ...BURST THE CLOCK
	005136	004737 	003340'			 JSR	PC,.BURST
   4861	005142					CALL	.DTDW1		; ...READ DTE-20 DIAG WORD 1
	005142	004737 	003530'			 JSR	PC,.DTDW1
   4862	005146	032700 	001000 			BIT	#D1.HLP,R0	; ...ARE WE IN HALT LOOP NOW?
   4866	005152	001354 				BNE	30$		; ...YES -- GO STOP AND SYNCH THE CLOCK
   4867	005154	077212 				SOB	R2,60$		; ...NO -- LOOP TILL COUNT EXHAUSTED
   4868	005156				KLHCFH:
   4869	005156					ERROR$	CFH		; ERROR -- CAN'T FIND HALT LOOP
	005156	012746 	011670 			 MOV	#^RCFH,-(SP)
	005162	104400 				 TRAP	TC.ERR
   4870						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 116
.KLST  -- SUBROUTINE TO START THE KL 7512.08

   4872					.SBTTL	.KLST  -- SUBROUTINE TO START THE KL 7512.08
   4873
   4874					; .KLST -- SUBROUTINE TO START THE KL.
   4875					;
   4876					; THIS SUBROUTINE STARTS THE KL FROM THE HALT LOOP AT THE ADDRESS
   4877					; POINTED T0 BY R1 IN THE CALL.
   4878					;
   4879					; SEQUENCE OF OPERATION:
   4880					;
   4881					;	(A) THE KL IS STOPPED IN THE HALT LOOP,
   4882					;	(B) THE PC WORD IS LOADED INTO THE AR REGISTER,
   4883					;	(C) THE KL IS ALLOWED TO RUN THRU ".KLCON".
   4884					;
   4885					; INPUT ARGUMENTS:
   4886					;
   4887					;	R1 POINTS TO A 23 BIT KL ADDRESS
   4888					;
   4889					; OUTPUT ARGUMENTS:
   4890					;
   4891					;	NONE.
   4892					;
   4893					; ERROR CODES RETURNED:
   4894					;
   4895					;	CFH -- CAN'T FIND KL HALT LOOP.
   4896					;	CSK -- CAN'T START KL.
   4897					;	DSF -- DTE-20 STATUS FAILURE.
   4898					;	FRF -- FUNCTION READ FAILED.
   4899					;	FWF -- FUNCTION WRITE FAILED.
   4900					;	FXF -- FUNCTION EXECUTE FAILED.
   4901					;
   4902					; NOTE:
   4903					;
   4904					;	THIS SUBROUTINE IS DEPENDENT UPON MICROCODE VERSION 122.
   4905					;-
   4906
   4907	005164				.KLST::
   4908	005164					PUSH	R1		; SAVE POINTER ON THE STACK
	005164	010146 				 MOV	R1,-(SP)
   4909	005166					CALL	.KLHLT		; .HALT THE KL
	005166	004737 	005034'			 JSR	PC,.KLHLT
   4910	005172	011601 				MOV	(SP),R1		; .GET THE POINTER
   4911	005174	012700 	000176 			MOV	#FW.LAR,R0	; .LOAD THE AR REGISTER
   4912	005200					CALL	.FWRIT		; .DO IT
	005200	004737 	004444'			 JSR	PC,.FWRIT
   4913	005204	012701 	000000G			MOV	#.KLFLG,R1	; .POINT TO ".KLFLG"
   4914	005210	000655 				BR	.KLGO		; .AND FINISH THE START
   4915						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 117
.KLSTP -- SUBROUTINE TO GET THE KL INTO THE HALT LOOP 7512.19

   4917					.SBTTL	.KLSTP -- SUBROUTINE TO GET THE KL INTO THE HALT LOOP 7512.19
   4918
   4919					;+
   4920					; .KLSTP -- SUBROUTINE TO PUT THE KL INTO THE HALT LOOP.
   4921					;
   4922					; THIS SUBROUTINE WILL PUT THE KL INTO THE MICROCODE HALT LOOP
   4923					; AND EXIT WITH THE KL CLOCK RUNNING.
   4924					;
   4925					; INPUT ARGUMENTS:
   4926					;
   4927					;	NONE.
   4928					;
   4929					; OUTPUT ARGUMENTS:
   4930					;
   4931					;	NONE.
   4932					;
   4933					; ERROR CODES RETURNED:
   4934					;
   4935					;	CFH -- CAN'T FIND HALT LOOP.
   4936					;	DSF -- DTE-20 STATUS FAILURE.
   4937					;	FXF -- FUNCTION EXECUTE FAILED.
   4938					;-
   4939
   4940	005212				.KLSTP::
   4941	005212	032737 	100000 	000000G		BIT	#KF.CLK,.KLFLG	; IS THE CLOCK OFF?
   4942	005220	001001 				BNE	10$		; NO -- GO ON
   4943	005222	000704 				BR	.KLHLT		; YES -- HALT THE KL
   4944						;
   4945	005224				10$:
   4946	005224					PUSH	<R0,R1>		; SAVE R0 AND R1 ON THE STACK
	005224	010046 				 MOV	R0,-(SP)
	005226	010146 				 MOV	R1,-(SP)
   4947	005230	012701 	000144 			MOV	#^D100,R1	; ..SETUP WAIT COUNT
   4948	005234					CALL	.CLRFF		; ..CLEAR THE RUN FLOP
	005234	004737 	003420'			 JSR	PC,.CLRFF
   4949	005240				20$:
   4950	005240					CALL	.DTDW1		; ..READ DIAG WORD 1
	005240	004737 	003530'			 JSR	PC,.DTDW1
   4951	005244	032700 	001000 			BIT	#D1.HLP,R0	; ..ARE WE IN THE HALT LOOP?
   4955	005250	001001 				BNE	30$		; ..YES -- GO ON
   4956	005252	077106 				SOB	R1,20$		; ..NO -- KEEP TRYING
   4957	005254				30$:
   4958	005254	005701 				TST	R1		; ..IS R1 .GT. 0?
   4959	005256	003403 				BLE	KLSCFH		; ..NO -- GIVE "CFH" ERROR
   4960	005260					POP	<R1,R0>		; ..YES -- RESTORE REGISTERS
	005260	012601 				 MOV	(SP)+,R1
	005262	012600 				 MOV	(SP)+,R0
   4961	005264					RETURN			; TO CALLER
	005264	000207 				 RTS	PC
   4962	005266				KLSCFH:
   4963	005266					ERROR$	CFH		; ERROR -- CAN'T FIND KL HALT LOOP
	005266	012746 	011670 			 MOV	#^RCFH,-(SP)
	005272	104400 				 TRAP	TC.ERR
   4964						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 118
.KLRST -- SUBROUTINE TO RESTART THE KL 7512.22

   4966					.SBTTL	.KLRST -- SUBROUTINE TO RESTART THE KL 7512.22
   4967
   4968					;+
   4969					; .KLRST -- SUBROUTINE TO RESTART THE KL.
   4970					;
   4971					; THIS SUBROUTINE WILL RESTART THE KL AS DIRECTED BY ".SVKLF",
   4972					; THE SAVED KL STATE FLAG WORD.
   4973					;
   4974					; INPUT ARGUMENTS:
   4975					;
   4976					;	THE SAVED COPY OF ".KLFLG" IS IN ".SVKLF"
   4977					;
   4978					; OUTPUT ARGUMENTS:
   4979					;
   4980					;	".SVKLF" IS CLEARED.
   4981					;
   4982					; ERROR CODES RETURNED:
   4983					;
   4984					;	CFH -- CAN'T FIND KL HALT LOOP.
   4985					;	DSF -- DTE-20 STATUS FAILURE.
   4986					;	FRF -- FUNCTION READ FAILED.
   4987					;	FWF -- FUNCTION WRITE FAILED.
   4988					;	FXF -- FUNCTION EXECUTE FAILED.
   4989					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 119
.KLRST -- SUBROUTINE TO RESTART THE KL 7512.22

   4991	005274				.KLRST::
   4992	005274					PUSH	<R1,R0>		; SAVE R0 AND R1
	005274	010146 				 MOV	R1,-(SP)
	005276	010046 				 MOV	R0,-(SP)
   4993	005300	013701 	000226'			MOV	.SVKLF,R1	; ..GET COPY OF OLD FLAGS
   4994	005304	032701 	013000 			BIT	#KF.SPM!KF.SIM!KF.BRM,R1
   4995	005310	001016 				BNE	20$		; ..BRANCH IF BURST, SINGLE INSTRUCTION OR PULSE MODE
   4996	005312	005101 				COM	R1		; ..INVERT R1
   4997	005314	032701 	140000 			BIT	#KF.RUN!KF.CLK,R1
   4998	005320	001011 				BNE	10$		; ..BRANCH IF NOT RUNNING
   4999	005322					CALL	.STRUN		; ..SET THE RUN FLOP
	005322	004737 	007332'			 JSR	PC,.STRUN
   5000	005326	012700 	000024 			MOV	#FX.CON,R0	; ..NOW DO THE CONTINUE BUTTON
   5001	005332					CALL	.FXCT		; ..SO
	005332	004737 	004566'			 JSR	PC,.FXCT
   5002	005336	013701 	000226'			MOV	.SVKLF,R1	; ..ELSE GET THE WORD AGAIN
   5003	005342	000406 				BR	30$		; ..AND GO AWAY
   5004						;
   5005	005344				10$:
   5006	005344	005101 				COM	R1		; ..STRAIGHTEN R1 OUT
   5007	005346				20$:
   5008	005346	032701 	040000 			BIT	#KF.RUN,R1	; ..WAS RUN FLOP SET?
   5009	005352	001402 				BEQ	30$		; ..NO -- GO ON
   5010	005354					CALL	.STRUN		; ..YES -- SET THE RUN FLOP
	005354	004737 	007332'			 JSR	PC,.STRUN
   5011	005360				30$:
   5012	005360	032701 	100000 			BIT	#KF.CLK,R1	; ..WAS CLOCK RUNNING?
   5013	005364	001413 				BEQ	40$		; ..NO -- JUST EXIT
   5014	005366	032737 	100000 	000000G		BIT	#KF.CLK,.KLFLG	; ..YES -- IS THE CLOCK ALREADY ON?
   5015	005374	001007 				BNE	40$		; ..YES -- JUST EXIT
   5016	005376					CALL	.STCLK		; ..NO -- START THE CLOCK
	005376	004737 	007232'			 JSR	PC,.STCLK
   5017	005402	032701 	040000 			BIT	#KF.RUN,R1	; ..DID WE LET IT RUN ?
   5018	005406	001402 				BEQ	40$		; ..NO -- JUST EXIT
   5019	005410	105037 	000000G			CLRB	.NOHLT		; ..YES -- LET RSX20F CHECK FOR HALTS
   5020	005414				40$:
   5021	005414					POP	<R0,R1>		; ..RESTORE R0 AND R1
	005414	012600 				 MOV	(SP)+,R0
	005416	012601 				 MOV	(SP)+,R1
   5022	005420	005037 	000226'			CLR	.SVKLF		; RESET ".SVKLF"
   5023	005424					RETURN			; AND EXIT
	005424	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 120
.KLXCT -- KL INSTRUCTION EXECUTE SUBROUTINE 7509.10

   5025					.SBTTL	.KLXCT -- KL INSTRUCTION EXECUTE SUBROUTINE 7509.10
   5026
   5027					;+
   5028					; .KLXCT -- SUBROUTINE TO EXECUTE A KL INSTRUCTION.
   5029					;
   5030					; THIS SUBROUTINE LOADS A KL INSTRUCTION INTO THE AR REGISTER
   5031					; AND CAUSES THAT INSTRUCTION TO BE EXECUTED.
   5032					;
   5033					; SEQUENCE OF OPERATION:
   5034					;
   5035					;	(A) THE KL IS STOPPED IN THE HALT LOOP WITH THE CLOCK OFF,
   5036					;	(B) INSTRUCTION TO BE EXECUTED IS LOADED INTO THE AR,
   5037					;	(C) THE KL CONTINUE FLOP IS SET.
   5038					;
   5039					; INPUT ARGUMENTS:
   5040					;
   5041					;	R1 POINTS TO A 36 BIT KL INSTRUCTION WORD
   5042					;
   5043					; OUTPUT ARGUMENTS:
   5044					;
   5045					;	NONE.
   5046					;
   5047					; ERROR CODES RETURNED:
   5048					;
   5049					;	CFH -- CAN'T FIND KL HALT LOOP.
   5050					;	DSF -- DTE-20 STATUS FAILURE.
   5051					;	FRF -- FUNCTION READ FAILED.
   5052					;	FWF -- FUNCTION WRITE FAILED.
   5053					;	FXF -- FUNCTION EXECUTE FAILED.
   5054					;-
   5055
   5056	005426				.KLXCT::
   5057	005426					CALL	.KLHLT		; STOP THE KL IN THE HALT LOOP
	005426	004737 	005034'			 JSR	PC,.KLHLT
   5058	005432	012700 	000176 			MOV	#FW.LAR,R0	; LOAD THE AR REGISTER
   5059	005436					CALL	.FWRIT		; DO IT
	005436	004737 	004444'			 JSR	PC,.FWRIT
   5060	005442	012700 	000024 			MOV	#FX.CON,R0	; SET THE "CONTINUE BUTTON"
   5061	005446					CALLR	.FXCT		; DO IT AND RETURN
	005446	000137 	004566'			 JMP	.FXCT
   5062						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 121
.LDBRG -- MBOX BURST COUNT LOAD SUBROUTINE 7601.02

   5064					.SBTTL	.LDBRG -- MBOX BURST COUNT LOAD SUBROUTINE 7601.02
   5065
   5066					;+
   5067					; .LDBRC -- SUBROUTINE TO STOP THE KL CLOCK AND LOAD THE
   5068					;	    MBOX BURST COUNT REGISTER AS IN ".LDBRG".
   5069					; .LDBRG -- SUBROUTINE TO LOAD THE MBOX CLOCK BURST COUNTER.
   5070					;
   5071					; THIS SUBROUTINE LOADS THE KL MBOX BURST COUNT REGISTER
   5072					; WITH THE COUNT PASSED TO IT IN R0.
   5073					;
   5074					; INPUT ARGUMENTS:
   5075					;
   5076					;	R0 CONTAINS THE CLOCK COUNT
   5077					;
   5078					; OUTPUT ARGUMENTS:
   5079					;
   5080					;	NONE.
   5081					;
   5082					; ERROR CODES RETURNED:
   5083					;
   5084					;	FWF -- FUNCTION WRITE FAILED.
   5085					;	FXF -- FUNCTION EXECUTE FAILED.
   5086					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 122
.LDBRG -- MBOX BURST COUNT LOAD SUBROUTINE 7601.02

   5088	005452				.LDBRC::
   5089	005452					CALL	.STPXC		; STOP THE KL CLOCK
	005452	004737 	007302'			 JSR	PC,.STPXC
   5090	005456				.LDBRG::
   5091	005456					PUSH	<R1,R0>		; SAVE R1 AND R0 ON THE STACK
	005456	010146 				 MOV	R1,-(SP)
	005460	010046 				 MOV	R0,-(SP)
   5092	005462					CALL	.CLDFB		; ..CLEAR THE DFW BUFFERS
	005462	004737 	003370'			 JSR	PC,.CLDFB
   5093	005466	011600 				MOV	(SP),R0		; ..GET THE BURST COUNT FROM THE STACK
   5094	005470	042700 	177760 			BIC	#177760,R0	; ..CLEAR UNUSED BITS
   5095	005474	010037 	000304'			MOV	R0,.DFWB	; ..SET RIGHT COUNT IN THE BUFFER
   5096	005500	012700 	000104 			MOV	#FW.LBR,R0	; ..SET UP TO LOAD THE RIGHT HALF
   5097	005504	005001 				CLR	R1		; ..CLEAR R1
   5098	005506					CALL	.FWRIT		; ..DO IT
	005506	004737 	004444'			 JSR	PC,.FWRIT
   5099	005512	011600 				MOV	(SP),R0		; ..GET THE ORIGINAL COUNT FROM THE STACK
   5100	005514	012701 	177774 			MOV	#-^D4,R1	; ..SHIFT COUNT TO R1
   5101	005520					CALL	.SHIFT		; ..SHIFT IT RIGHT 4 PLACES
	005520	004737 	011114'			 JSR	PC,.SHIFT
   5102	005524	042700 	177760 			BIC	#177760,R0	; ..CLEAR UNUSED BITS
   5103	005530	010037 	000304'			MOV	R0,.DFWB	; ..PUT THE HIGH COUNT IN THE WRITE BUFFER
   5104	005534	005001 				CLR	R1		; ..CLEAR R1
   5105	005536	012700 	000106 			MOV	#FW.LBL,R0	; ..SET UP TO LOAD THE LEFT HALF
   5106	005542					CALL	.FWRIT		; ..DO IT
	005542	004737 	004444'			 JSR	PC,.FWRIT
   5107	005546					POP	<R0,R1>		; ..RESTORE R0 AND R1
	005546	012600 				 MOV	(SP)+,R0
	005550	012601 				 MOV	(SP)+,R1
   5108	005552					RETURN			; AND LEAVE
	005552	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 123
.LDCPC -- KL CLOCK AND PARITY LOAD SUBROUTINES 7509.30

   5110					.SBTTL	.LDCPC -- KL CLOCK AND PARITY LOAD SUBROUTINES 7509.30
   5111
   5112					;+
   5113					; .LDCLK -- SUBROUTINE TO LOAD THE KL CLOCK CONTROL REGISTERS.
   5114					; .LDPAR -- SUBROUTINE TO LOAD THE KL PARITY CONTROL REGISTERS.
   5115					;
   5116					; THESE SUBROUTINES SET UP THE KL CLOCK SOURCE, RATE, AND
   5117					; DISTRIBUTION REGISTERS OR THE PARITY CONTROL REGISTERS.
   5118					;
   5119					; SEQUENCE OF OPERATION:
   5120					;
   5121					; .LDCLK:
   5122					;
   5123					;	(A) THE KL CLOCK SOURCE, RATE, AND DISTRIBUTION
   5124					;	    PARAMETERS ARE SET IN THE CLOCK CONTROL REGISTERS,
   5125					;	(B) THE PARAMETERS WRITTEN IN (A) ARE SAVED IN THE
   5126					;	    CLOCK STATUS WORD (".CLKWD").
   5127					;
   5128					; .LDPAR:
   5129					;
   5130					;	(A) THE KL INTERNAL PARITY CONTROL BITS ARE WRITTEN INTO THE
   5131					;	    PARITY CONTROL REGISTER,
   5132					;	(B) THE CONTROL BITS WITTEN IN (A) ARE SAVED IN THE PARITY
   5133					;	    CONTROL WORD (".PSCWD").
   5134					;
   5135					; INPUT ARGUMENTS:
   5136					;
   5137					;	R1 POINTS TO A PARAMETER WORD
   5138					;
   5139					; THE CLOCK PARAMETER POINTER POINTS TO A WORD WITH FORMAT:
   5140					;
   5141					;		!========================================!
   5142					;		!   DISTRIBUTION   !   SOURCE AND RATE   !
   5143					;		!========================================!
   5144					;
   5145					; THE PARITY PARAMETER POINTER POINTS TO A WORD WITH FORMAT:
   5146					;
   5147					;		!========================================!
   5148					;		!   CONTROL BITS   !   CLOCK STOP BITS	 !
   5149					;		!========================================!
   5150					;
   5151					; OUTPUT ARGUMENTS:
   5152					;
   5153					;	R0 CONTAINS A COPY OF THE UPDATED PARAMTER WORD
   5154					;
   5155					; ERROR CODES RETURNED:
   5156					;
   5157					;	FWF -- FUNCTION WRITE FAILED.
   5158					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 124
.LDCPC -- KL CLOCK AND PARITY LOAD SUBROUTINES 7509.30

   5160						.ENABL	LSB
   5161
   5162	005554				.LDCLK::
   5163	005554					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	005554	004537 	010302'			 JSR	R5,.REGSV
   5164	005560	012703 	000010'			MOV	#.CLKWD,R3	; CONTROL WORD POINTER TO R3
   5165	005564	012704 	000110 			MOV	#FW.CSR,R4	; BASE CLOCK WRITE TO R4
   5166	005570	000406 				BR	10$		; DO COMMON CODE
   5167						;
   5168	005572				.LDPAR::
   5169	005572					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	005572	004537 	010302'			 JSR	R5,.REGSV
   5170	005576	012703 	000204'			MOV	#.PSCWD,R3	; CONTROL WORD POINTER TO R3
   5171	005602	012704 	000114 			MOV	#FW.IPE,R4	; BASE PARITY WRITE TO R4
   5172									; FALL INTO COMMON CODE
   5173	005606				10$:
   5174	005606	010102 				MOV	R1,R2		; CALLER'S PARAMETER POINTER TO R2
   5175	005610					CALL	.CLDFW		; CLEAR THE WRITE BUFFER
	005610	004737 	003404'			 JSR	PC,.CLDFW
   5176	005614	005001 				CLR	R1		; CLEAR R1
   5177	005616	111237 	000304'			MOVB	(R2),.DFWB	; SET LOW BYTE PARAMETER
   5178	005622	010400 				MOV	R4,R0		; DFW CODE TO R0
   5179	005624					CALL	.FWRIT		; DO IT
	005624	004737 	004444'			 JSR	PC,.FWRIT
   5180	005630	112223 				MOVB	(R2)+,(R3)+	; MARK THE NEW LOW BYTE CODE
   5181	005632	005724 				TST	(R4)+		; NEXT WRITE CODE
   5182	005634	111210 				MOVB	(R2),(R0)	; SET THE HIGH BYTE PARAMETERS
   5183	005636	010400 				MOV	R4,R0		; DFW CODE TO R0
   5184	005640					CALL	.FWRIT		; DO IT
	005640	004737 	004444'			 JSR	PC,.FWRIT
   5185	005644	111223 				MOVB	(R2),(R3)+	; MARK THE NEW HIGH BYTE CODE
   5186	005646	014300 				MOV	-(R3),R0	; PUT A COPY IN R0
   5187	005650					RETURN			; EXIT
	005650	000207 				 RTS	PC
   5188
   5189						.DSABL	LSB
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 125
.LDCRA -- LOAD CRAM ADDRESS SUBROUTINE 7511.19

   5191					.SBTTL	.LDCRA -- LOAD CRAM ADDRESS SUBROUTINE 7511.19
   5192
   5193					;+
   5194					; .LDCRA -- SUBROUTINE TO LOAD A 12 BIT ADDRESS INTO THE
   5195					;	    KL CRAM ADDRESS REGISTER.
   5196					;
   5197					; THIS SUBROUTINE LOADS A 12 BIT CRAM ADDRESS INTO THE
   5198					; KL CRAM ADDRESS REGISTER.
   5199					;
   5200					; SEQUENCE OF OPERATION:
   5201					;
   5202					;	(A) THE KL CLOCK IS TURNED OFF (BY (B)),
   5203					;	(B) THE KL CRAM ADDRESS IS CLEARED BY ".RESET",
   5204					;	(C) THE ADDRESS IS LOADED INTO CRAM DIAG ADDR.
   5205					;
   5206					; INPUT ARGUMENTS:
   5207					;
   5208					;	R0 CONTAINS THE CRAM ADDRESS TO BE LOADED
   5209					;
   5210					; OUTPUT ARGUMENTS:
   5211					;
   5212					;	NONE.
   5213					;
   5214					; ERROR CODES RETURNED:
   5215					;
   5216					;	FWF -- FUNCTION WRITE FAILED.
   5217					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 126
.LDCRA -- LOAD CRAM ADDRESS SUBROUTINE 7511.19

   5219	005652				.LDCRA::
   5220	005652	042700 	170000 			BIC	#170000,R0	; CLEAR UNUSED BITS
   5221	005656					PUSH	<R1,R0>		; PUT R0 AND R1 ON THE STACK
	005656	010146 				 MOV	R1,-(SP)
	005660	010046 				 MOV	R0,-(SP)
   5222	005662					CALL	.RESTP		; ..CLEAR CRAM DIAG ADDR AND CRAM ADDR
	005662	004737 	007132'			 JSR	PC,.RESTP
   5223									; ..ALSO RETAIN CLOCK AND PARITY CONTROL
   5224	005666					CALL	.CLDFW		; ..CLEAR THE FW BUFFER
	005666	004737 	003404'			 JSR	PC,.CLDFW
   5225	005672	012700 	000304'			MOV	#.DFWB,R0	; ..SET UP THE BUFFER ADDRESS
   5226	005676	011610 				MOV	(SP),(R0)	; ..LOAD THE ADDRESS FROM THE STACK
   5227	005700	001427 				BEQ	10$		; ..LEAVE NOW IF ZERO
   5228	005702	042710 	174077 			BIC	#174077,(R0)	; ..CLEAR UNWANTED BITS
   5229	005706	012701 	000030 			MOV	#^D24,R1	; ..SHIFT COUNT TO R1
   5230	005712					CALL	.TPSHI		; ..SHIFT IT OVER
	005712	004737 	011756'			 JSR	PC,.TPSHI
   5231	005716	005001 				CLR	R1		; ..CLEAR R1
   5232	005720	012700 	000124 			MOV	#FW.CA2,R0	; ..SET UP TO WRITE IT
   5233	005724					CALL	.FWRIT		; ..DO IT
	005724	004737 	004444'			 JSR	PC,.FWRIT
   5234	005730	011610 				MOV	(SP),(R0)	; ..GET ADDRESS FROM THE STACK AGAIN
   5235	005732	042710 	177700 			BIC	#177700,(R0)	; ..CLEAR UNWANTED BITS
   5236	005736	012701 	000036 			MOV	#^D30,R1	; ..SHIFT COUNT TO R1
   5237	005742					CALL	.TPSHI		; ..SHIFT THAT OVER
	005742	004737 	011756'			 JSR	PC,.TPSHI
   5238	005746	005001 				CLR	R1		; ..CLEAR R1
   5239	005750	012700 	000122 			MOV	#FW.CA1,R0	; ..SET UP TO WRITE IT
   5240	005754					CALL	.FWRIT		; ..DO IT
	005754	004737 	004444'			 JSR	PC,.FWRIT
   5241	005760				10$:
   5242	005760					POP	<R0,R1>		; ..RESTORE REGISTERS
	005760	012600 				 MOV	(SP)+,R0
	005762	012601 				 MOV	(SP)+,R1
   5243	005764					RETURN			; EXIT TO CALLER
	005764	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 127
.MRCLR -- KL MASTER RESET SUBROUTINE 7607.15

   5245					.SBTTL	.MRCLR -- KL MASTER RESET SUBROUTINE 7607.15
   5246
   5247					;+
   5248					; .MRCLR -- SUBROUTINE TO CLEAR THE KL IN THE MASTER RESET STATE.
   5249					;
   5250					; THIS SUBROUTINE SETS THE KL MASTER RESET FLOP AND ALLOWS THE
   5251					; KL CLOCK TO RUN, CLEARING THE KL.
   5252					;
   5253					; SEQUENCE OF OPERATION:
   5254					;
   5255					;	(A) THE MASTER RESET FLOP IS SET,
   5256					;	(B) THE KL CLOCK IS ALLOWED TO RUN FOR A SHORT TIME,
   5257					;	(C) THE NXM TIMERS ARE RESYNCHRONIZED,
   5258					;	(D) THE KL CLOCK IS STOPPED AND SYNCHED,
   5259					;	(E) THE MASTER RESET FLOP IS CLEARED.
   5260					;
   5261					; INPUT ARGUMENTS:
   5262					;
   5263					;	NONE.
   5264					;
   5265					; OUTPUT ARGUMENTS:
   5266					;
   5267					;	NONE.
   5268					;
   5269					; ERROR CODES RETURNED:
   5270					;
   5271					;	FRF -- FUNCTION READ FAILED.
   5272					;	FWF -- FUNCTION WRITE FAILED.
   5273					;	FXF -- FUNCTION EXECUTE FAILED.
   5274					;-
   5275
   5276	005766				.MRCLR::
   5277	005766					PUSH	<R0,R1,R2>	; SAVE REGISTERS
	005766	010046 				 MOV	R0,-(SP)
	005770	010146 				 MOV	R1,-(SP)
	005772	010246 				 MOV	R2,-(SP)
   5278	005774	012700 	000016 			MOV	#FX.SMR,R0	; ...SET MASTER RESET FLOP
   5279	006000					CALL	.FXCT		; ...DO IT
	006000	004737 	004566'			 JSR	PC,.FXCT
   5280	006004	052737 	020000 	000000G		BIS	#KF.MRS,.KLFLG	; ...SET THE FLAG
   5281	006012					CALL	.STCLF		; ...FORCE START THE KL CLOCK
	006012	004737 	007240'			 JSR	PC,.STCLF
   5282	006016	012701 	000764 			MOV	#^D500,R1	; ...SET UP WAIT COUNT
   5283
   5284					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 128
.MRCLR -- KL MASTER RESET SUBROUTINE 7607.15

   5286					;	[CONTINUED FROM THE PREVIOUS PAGE]
   5287
   5288	006022				10$:
   5289	006022	077101 				SOB	R1,10$		; ...STALL A WHILE
   5290	006024					CALL	.STPXC		; ...STOP THE KL CLOCK
	006024	004737 	007302'			 JSR	PC,.STPXC
   5291	006030					CALL	.CLDFB		; ...CLEAR THE FUNCTION BUFFERS
	006030	004737 	003370'			 JSR	PC,.CLDFB
   5292	006034	012700 	000160 			MOV	#FW.CHN,R0	; ...CLEAR THE CHANNELS
   5293	006040					CALL	.FWRIT		; ...DO IT
	006040	004737 	004444'			 JSR	PC,.FWRIT
   5294	006044	012702 	000003 			MOV	#^D3,R2		; ...LOOP COUNT TO R2
   5295	006050				20$:				; ...HERE TO RESYNCH THE NXM TIMERS
   5296	006050	005001 				CLR	R1		; ...CLEAR R1
   5297	006052	012700 	000344 			MOV	#FR.162,R0	; ...LOOK FOR [A CHANGE COMING L]
   5298	006056					CALL	.FREAD		; ...DO THE READ
	006056	004737 	004362'			 JSR	PC,.FREAD
   5299	006062	032710 	000010 			BIT	#BIT03,(R0)	; ...IS IT THERE?
   5303	006066	001405 				BEQ	30$		; ...YES -- GO ON
   5304	006070	012700 	000004 			MOV	#FX.MBC,R0	; ...NO -- STEP THE CLOCK
   5305	006074					CALL	.FXCT		; ...DO IT
	006074	004737 	004566'			 JSR	PC,.FXCT
   5306	006100	077215 				SOB	R2,20$		; ...LOOP THREE TIMES MAX
   5307	006102				30$:
   5308	006102					CALL	.SYNXC		; ...SYNCH THE CLOCK
	006102	004737 	007454'			 JSR	PC,.SYNXC
   5309	006106	012700 	000014 			MOV	#FX.CMR,R0	; ...CLEAR MASTER RESET FLOP
   5310	006112					CALL	.FXCT		; ...DO IT
	006112	004737 	004566'			 JSR	PC,.FXCT
   5311	006116	042737 	020300 	000000G		BIC	#KF.MRS!KF.CON!KF.CES,.KLFLG
   5312									; ...CLEAR THE FLAGS
   5313	006124					POP	<R2,R1,R0>	; ...RESTORE REGISTERS
	006124	012602 				 MOV	(SP)+,R2
	006126	012601 				 MOV	(SP)+,R1
	006130	012600 				 MOV	(SP)+,R0
   5314	006132					RETURN			; EXIT TO CALLER
	006132	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 129
.RDCPP -- SUBOUTINE TO READ THE KL CLOCK AND PARITY ENABLES 75

   5316					.SBTTL	.RDCPP -- SUBOUTINE TO READ THE KL CLOCK AND PARITY ENABLES 7510.09
   5317
   5318					;+
   5319					; .RDCPP -- SUBROUTINE TO READ THE KL CLOCK AND INTERNAL PARITY
   5320					;	    CHECKING PARAMETERS.
   5321					;
   5322					; THIS SUBROUTINE READS THE KL CLOCK SOURCE, RATE AND DISTRIBUTION
   5323					; ENABLES AS WELL AS THE KL INTERNAL PARITY ENABLES AND MAINTAINS
   5324					; THEM IN ".CLKWD" AND ".PSCWD", RESPECTIVELY.
   5325					;
   5326					; INPUT ARGUMENTS:
   5327					;
   5328					;	NONE.
   5329					;
   5330					; OUTPUT ARGUMENTS:
   5331					;
   5332					;	".CLKWD" AND ".PSCWD" CONTAIN THE UPDATED CLOCK AND
   5333					;	PARITY ENABLES.
   5334					;
   5335					; ERROR CODES RETURNED:
   5336					;
   5337					;	FRF -- FUNCTION READ FAILED.
   5338					;-
   5339
   5340	006134				.RDCPP::
   5341	006134					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	006134	004537 	010302'			 JSR	R5,.REGSV
   5342	006140					PUSH	R0		; R0 TOO
	006140	010046 				 MOV	R0,-(SP)
   5343	006142	012704 	000004 			MOV	#^D4,R4		; .USE R4 AS A COUNTER
   5344	006146	012703 	004230'			MOV	#RDCPT1,R3	; .BIT TEST TABLE POINTER TO R3
   5345	006152	012705 	004220'			MOV	#RDCPT3,R5	; .SAVE AREA POINTER TO R5
   5346	006156				10$:
   5347	006156	112300 				MOVB	(R3)+,R0	; .FR CODE TO R0
   5348	006160	005001 				CLR	R1		; .CLEAR R1
   5349	006162					CALL	.FREAD		; .READ A WORD
	006162	004737 	004362'			 JSR	PC,.FREAD
   5350	006166	011025 				MOV	(R0),(R5)+	; .SAVE BITS 20 THRU 35 IN TABLE
   5351	006170	077406 				SOB	R4,10$		; .READ ALL FOUR OF THEM
   5352	006172	005037 	000010'			CLR	.CLKWD		; .CLEAR THE OLD CLOCK PARAMETERS
   5353	006176	005037 	000204'			CLR	.PSCWD		; .AND THE OLD PARITY STOP PARAMETERS
   5354
   5355					;	[CONTINUED ON THE FOLLOWING PAGE]
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 130
.RDCPP -- SUBOUTINE TO READ THE KL CLOCK AND PARITY ENABLES 75

   5357					;	[CONTINUED FROM THE PREVIOUS PAGE]
   5358
   5359	006202	012700 	000004 			MOV	#^D4,R0		; .DO OUTER LOOP 4 TIMES
   5360	006206	012705 	004220'			MOV	#RDCPT3,R5	; .KL SAVE AREA POINTER TO R5
   5361	006212				20$:
   5362	006212	012704 	000004 			MOV	#^D4,R4		; .DO INNER LOOP 4 TIMES
   5363	006216	012702 	004210'			MOV	#RDCPT2,R2	; .KL MASK POINTER TO R2
   5364	006222				30$:
   5365	006222	012701 	000010'			MOV	#.CLKWD,R1	; .CLOCK WORD POINTER TO R1
   5366	006226	020427 	000002 			CMP	R4,#^D2		; .IS INNER LOOP COUNT .GT. 2?
   5367	006232	101004 				BHI	50$		; .YES -- CONTINUE
   5368	006234	001001 				BNE	40$		; .NO -- IS IT  .LT. 2?
   5369	006236	005115 				COM	(R5)		; .NO -- INVERT THE WORD SO REST OF CODE WORKS
   5370	006240				40$:
   5371	006240	012701 	000204'			MOV	#.PSCWD,R1	; .DO PARITY WORD
   5372	006244				50$:
   5373	006244	041311 				BIC	(R3),(R1)	; .FLUSH THE BIT IN THE FLAG WORD
   5374	006246	031215 				BIT	(R2),(R5)	; .TEST THE BIT WE READ IN THIS WORD
   5375	006250	001401 				BEQ	60$		; .BRANCH IF BIT IS OFF
   5376	006252	051311 				BIS	(R3),(R1)	; .TURN THE BIT ON IN THE FLAG WORD
   5377	006254				60$:
   5378	006254	022322 				CMP	(R3)+,(R2)+	; .ADVANCE THE MASK POINTERS
   5379	006256	077417 				SOB	R4,30$		; .DO INNER LOOP 4 TIMES
   5380	006260	005125 				COM	(R5)+		; .ADVANCE THE SAVE AREA POINTER
   5381									; .AND STRAIGHTEN THE WORD OUT
   5382	006262	077025 				SOB	R0,20$		; .DO OUTER LOOP 4 TIMES
   5383	006264					POP	R0		; .GIVE R0 BACK
	006264	012600 				 MOV	(SP)+,R0
   5384	006266					RETURN			; AND GO AWAY
	006266	000207 				 RTS	PC
   5385
   5386					; THESE BITS ARE USED TO MASK THE DATA FROM THE FUNCTION READS
   5387
   5388	004210				.PSECT	DATA
   5389
   5390	004210				RDCPT2:
   5391	004210	000010 				.WORD	BIT03		; KL BIT 32
   5392	004212	000004 				.WORD	BIT02		; KL BIT 33
   5393	004214	000002 				.WORD	BIT01		; KL BIT 34
   5394	004216	000001 				.WORD	BIT00		; KL BIT 35
   5395
   5396					; THE DATA FROM THE FUNCTION READS ARE STORED IN THIS TABLE
   5397
   5398	004220				RDCPT3:
   5399	004220	000000 				.WORD	0		; FR.104 BITS 20 - 35
   5400	004222	000000 				.WORD	0		; FR.105 BITS 20 - 35
   5401	004224	000000 				.WORD	0		; FR.106 BITS 20 - 35
   5402	004226	000000 				.WORD	0		; FR.107 BITS 20 - 35
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 131
.RDCPP -- SUBOUTINE TO READ THE KL CLOCK AND PARITY ENABLES 75

   5404					; TABLES USED TO READ AND SET CLOCK AND PARITY ENABLES
   5405					; THE FIRST FOUR BYTES IN THIS TABLE ARE THE FUNCTION READ CODES
   5406					; TO BE EXECUTED, THE REMAINING WORDS ARE USED TO SET OR CLEAR
   5407					; THE APPROPRIATE BITS IN ".CLKWD" AND ".PSCWD"
   5408
   5409	004230				RDCPT1:
   5410	004230	   210 				.BYTE	FR.104
   5411	004231	   212 				.BYTE	FR.105
   5412	004232	   214 				.BYTE	FR.106
   5413	004233	   216 				.BYTE	FR.107
   5414	004234	000010 				.WORD	CS.CS2		; CLK SOURCE 2 H [FR.104 - BIT 32]
   5415									; [FW 44 - BIT 32]
   5416	004236	000000 				.WORD	0		; BLANK [FR.104 - BIT 33]
   5417	004240	000010 				.WORD	IP.FMP		; FM PAR EN L [FR.104 - BIT 34]
   5418									; [FW 46 - BIT 32]
   5419	004242	000000 				.WORD	0		; BLANK [FR.104 - BIT 35]
   5420	004244	000004 				.WORD	CS.CS1		; CLK SOURCE 1 H [FR.105 - BIT 32]
   5421									; [FW 44 - BIT 33]
   5422	004246	002000 				.WORD	CD.CRC		; CLK CRAM DIS H [FR.105 - BIT 33]
   5423									; [FW 45 - BIT 33]
   5424	004250	000004 				.WORD	IP.CRP		; CRAM PAR EN L [FR.105 - BIT 34]
   5425									; [FW 46 - BIT 33]
   5426	004252	000000 				.WORD	0		; BLANK [FR.105 BIT - 35]
   5427	004254	000002 				.WORD	CR.CR2		; CLK RATE 2 H [FR.106 - BIT 32]
   5428									; [FW 44 - BIT 34]
   5429	004256	001000 				.WORD	CD.DPC		; CLK EDP DIS H [FR.106 - BIT 33]
   5430									; [FW 45 - BIT 34]
   5431	004260	000002 				.WORD	IP.DRP		; DRAM PAR EN L [FR.106 - BIT 34]
   5432									; [FW 46 - BIT 34]
   5433	004262	001000 				.WORD	AP.ARP		; AR/ARX PAR EN L [FR.106 - BIT 35]
   5434									; [FW 47 - BIT 34]
   5435	004264	000001 				.WORD	CR.CR1		; CLK RATE 1 H [FR.107 - BIT 32]
   5436									; [FW 44 - BIT 35]
   5437	004266	000400 				.WORD	CD.CLC		; CLK CTL DIS H [FR.107 - BIT 33]
   5438									; [FW 45 - BIT 35]
   5439	004270	000001 				.WORD	IP.FSS		; FS STOP EN L [FR.107 -BIT 34]
   5440									; [FW 46 - BIT 35]
   5441	004272	000400 				.WORD	AP.EIP		; CLK ERR STOP EN L [FR.107 - BIT 35]
   5442									; [FW 47 - BIT 35]
   5443
   5444	006270				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 132
.RDCRD -- SUBROUTINE TO READ THE KL CRAM DISP FIELD 7511.22

   5446					.SBTTL	.RDCRD -- SUBROUTINE TO READ THE KL CRAM DISP FIELD 7511.22
   5447
   5448					;+
   5449					; .RDCRD -- SUBROUTINE TO READ THE KL CRAM DISP FIELD.
   5450					;
   5451					; THIS SUBROUTINE READS AND RETURNS THE CONTENT OF THE CRAM DISP FIELD
   5452					; IN R0.
   5453					;
   5454					; INPUT ARGUMENTS:
   5455					;
   5456					;	NONE.
   5457					;
   5458					; OUTPUT ARGUMENTS:
   5459					;
   5460					;	R0 CONTAINS THE CURRENT CRAM DISP FIELD
   5461					;
   5462					; ERROR CODES RETURNED:
   5463					;
   5464					;	FRF -- FUNCTION READ FAILED.
   5465					;-
   5466
   5467	006270				.RDCRD::
   5468	006270					PUSH	R1		; SAVE R1 ON THE STACK
	006270	010146 				 MOV	R1,-(SP)
   5469	006272	005001 				CLR	R1		; .CLEAR R1
   5470	006274	012700 	000302 			MOV	#FR.CRD,R0	; .FR CODE TO R0
   5471	006300					CALL	.FREAD		; .READ IT
	006300	004737 	004362'			 JSR	PC,.FREAD
   5472	006304	012701 	177742 			MOV	#-^D30,R1	; .SHIFT COUNT TO R1
   5473	006310					CALL	.TPSHI		; .SHIFT IT
	006310	004737 	011756'			 JSR	PC,.TPSHI
   5474	006314	042710 	177700 			BIC	#^C77,(R0)	; .MASK UNWANTED BITS
   5475	006320	011000 				MOV	(R0),R0		; .COPY TO R0
   5476	006322					POP	R1		; .RESTORE R1
	006322	012601 				 MOV	(SP)+,R1
   5477	006324					RETURN			; AND GO AWAY
	006324	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 133
.RDCRM -- KL CONTROL RAM READ SUBROUTINE 7511.19

   5479					.SBTTL	.RDCRM -- KL CONTROL RAM READ SUBROUTINE 7511.19
   5480
   5481					;+
   5482					; .RDCRM -- SUBROUTINE TO READ A LOCATION IN THE KL CONTROL RAM.
   5483					; .RDCRR -- SUBROUTINE TO READ THE OUTPUT OF THE CRAM REGISTER.
   5484					;
   5485					; THIS SUBROUTINE WILL READ ONE LOCATION IN THE KL CONTROL RAM.
   5486					;
   5487					; SEQUENCE OF OPERATION:
   5488					;
   5489					; .RDCRM:
   5490					;
   5491					;	(A) THE KL IS HALTED IN THE HALT LOOP,
   5492					;	(B) THE CONTROL RAM ADDRESS IS LOADED,
   5493					;
   5494					; .RDCRR:
   5495					;
   5496					;	(C) THE CONTENT OF THE CURRENT CRAM ADDRESS IS READ.
   5497					;
   5498					; INPUT ARGUMENTS:
   5499					;
   5500					;	R0 CONTAINS THE CRAM ADDRESS TO BE READ IN THE CALL TO ".RDCRM".
   5501					;
   5502					; OUTPUT ARGUMENTS:
   5503					;
   5504					;	 R0 CONTAINS A POINTER TO THE RAM DATA.
   5505					;
   5506					; THE FOLLOWING IS A PICTURE OF THRE DATA RETURNED BY THIS SUBROUTINE:
   5507					;
   5508					;	WORD		CRAM DATA
   5509					;	----		---------
   5510					;		+==================================+
   5511					;	00	|	CRAM BITS 68 THRU 78	   |
   5512					;		+----------------------------------+
   5513					;	01	|	CRAM BITS 60 THRU 66       |
   5514					;		+----------------------------------+
   5515					;	02	|	CRAM BITS 48 THRU 59	   |
   5516					;		+----------------------------------+
   5517					;	03	|	CRAM BITS 40 THRU 47	   |
   5518					;		+----------------------------------+
   5519					;	04	|	CRAM BITS 28 THRU 39	   |
   5520					;		+----------------------------------+
   5521					;	05	|	CRAM BITS 20 THRU 27	   |
   5522					;		+----------------------------------+
   5523					;	06	|	CRAM BITS 08 THRU 19	   |
   5524					;		+----------------------------------+
   5525					;	07	|	CRAM BITS 00 THRU 07	   |
   5526					;		+----------------------------------+
   5527					;	08	|    CRAM DISP BITS 00 THRU 04	   |
   5528					;		+==================================+
   5529					;
   5530					; ERROR CODES RETURNED:
   5531					;
   5532					;	CAE -- CRAM ADDRESS ERROR.
   5533					;	FRF -- FUNCTION READ FAILED.
   5534					;	FWF -- FUNCTION WRITE FAILED.
   5535					;	FXF -- FUNCTION EXECUTE FAILED.
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 133-1
.RDCRM -- KL CONTROL RAM READ SUBROUTINE 7511.19

   5536					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 134
.RDCRM -- KL CONTROL RAM READ SUBROUTINE 7511.19

   5538	006326				.RDCRM::
   5539	006326					PUSH	<R1,R2,R3,R4>	; SAVE CALLER'S REGISTERS
	006326	010146 				 MOV	R1,-(SP)
	006330	010246 				 MOV	R2,-(SP)
	006332	010346 				 MOV	R3,-(SP)
	006334	010446 				 MOV	R4,-(SP)
   5540	006336	020027 	002377 			CMP	R0,#2377	; ....IS THE ADDRESS IN RANGE?
   5541	006342	101052 				BHI	RDCRME		; ....NO -- GIVE "CRA" ERROR
   5542	006344					CALL	.LDCRA		; ....YES -- LOAD THE CRAM ADDRESS
	006344	004737 	005652'			 JSR	PC,.LDCRA
   5543	006350	012700 	000006 			MOV	#FX.EBC,R0	; ....NOW CLOCK THE DATA OUT OF THE RAM
   5544	006354					CALL	.FXCT		; ....DO IT
	006354	004737 	004566'			 JSR	PC,.FXCT
   5545	006360				.RDCRR::			; ....HERE TO READ THE CRAM REGISTER
   5546	006360	012702 	000020'			MOV	#.CRAMR,R2	; ....SAVE AREA POINTER TO R2
   5547	006364	012704 	000310 			MOV	#FR.CR4,R4	; ....BASE READ TO R4
   5548	006370	012703 	000004 			MOV	#^D4,R3		; ....USE R3 AS A COUNTER
   5549	006374				10$:
   5550	006374	005001 				CLR	R1		; ....CLEAR R1
   5551	006376	010400 				MOV	R4,R0		; ....PASS THE FREAD CODE
   5552	006400					CALL	.FREAD		; ....DO IT
	006400	004737 	004362'			 JSR	PC,.FREAD
   5553	006404	012022 				MOV	(R0)+,(R2)+	; ....LOAD CALLER'S BUFFER FROM OURS
   5554	006406	012022 				MOV	(R0)+,(R2)+	; ....
   5555	006410	062704 	000002 			ADD	#^D2,R4		; ....INCREMENT THE FREAD CODE
   5556	006414	077311 				SOB	R3,10$		; ....LOOP TILL DONE
   5557	006416					CALL	.RDCRD		; ....READ THE DISPATCH FIELD
	006416	004737 	006270'			 JSR	PC,.RDCRD
   5558	006422	010012 				MOV	R0,(R2)		; ....PUT IT IN THE DATA BLOCK
   5559	006424					CALL	.CLDFW		; ....CLEAR THE FUNCTION WRITE BUFFER
	006424	004737 	003404'			 JSR	PC,.CLDFW
   5560	006430	005001 				CLR	R1		; ....CLEAR R1
   5561	006432	012700 	000122 			MOV	#FW.CA1,R0	; ....CLEAR CRAM DIAG ADDR
   5562	006436					CALL	.FWRIT		; ....SO
	006436	004737 	004444'			 JSR	PC,.FWRIT
   5563	006442	012700 	000124 			MOV	#FW.CA2,R0	; ....NOW THE OTHER HALF
   5564	006446					CALL	.FWRIT		; ....SO
	006446	004737 	004444'			 JSR	PC,.FWRIT
   5565	006452	012700 	000020'			MOV	#.CRAMR,R0	; ....POINT TO SAVE AREA
   5566	006456					POP	<R4,R3,R2,R1>	; ....RESTORE THE REGISTERS
	006456	012604 				 MOV	(SP)+,R4
	006460	012603 				 MOV	(SP)+,R3
	006462	012602 				 MOV	(SP)+,R2
	006464	012601 				 MOV	(SP)+,R1
   5567	006466					RETURN			; TO CALLER
	006466	000207 				 RTS	PC
   5568	006470				RDCRME:
   5569	006470					ERROR$	CAE		; ERROR -- CRAM ADDRESS ERROR
	006470	012746 	011355 			 MOV	#^RCAE,-(SP)
	006474	104400 				 TRAP	TC.ERR
   5570						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 135
.RDCRO -- SUBROUTINE TO READ THE KL CRAM OUTPUT 7511.05

   5572					.SBTTL	.RDCRO -- SUBROUTINE TO READ THE KL CRAM OUTPUT 7511.05
   5573
   5574					;+
   5575					; .RDCRO -- SUBROUTINE TO READ THE KL CRAM OUTPUT.
   5576					;
   5577					; THIS SUBROUTINE WILL READ THE CURRENT OUTPUT OF THE KL CRAM
   5578					; AND IS USEFUL ON CLOCK ERROR STOPS (Q.V.) WHICH ARE CAUSED BY
   5579					; CRAM PARITY ERRORS.
   5580					;
   5581					; INPUT ARGUMENTS:
   5582					;
   5583					;	NONE.
   5584					;
   5585					; OUTPUT ARGUMENTS:
   5586					;
   5587					;	R0 CONTAINS A POINTER TO A TEN WORD BLOCK WHICH CONTAINS THE
   5588					;	CURRENT CRAM ADDRESS FOLLOWED BY THE CURRENT CRAM CONTENTS
   5589					;
   5590					; ERROR CODES RETURNED:
   5591					;
   5592					;	CAE -- CRAM ADDRESS ERROR.
   5593					;	FRF -- FUNCTION READ FAILED.
   5594					;	FWF -- FUNCTION WRITE FAILED.
   5595					;	FXF -- FUNCTION EXECUTE FAILED.
   5596					;-
   5597
   5598	006476				.RDCRO:
   5599	006476					CALL	.RDCRA		; READ THE CRAM ADDRESS
	006476	004737 	000000G			 JSR	PC,.RDCRA
   5600	006502	010037 	000016'			MOV	R0,.CRAMA	; SAVE THE ADDRESS
   5601	006506					CALL	.RDCRR		; READ THE CRAM DATA
	006506	004737 	006360'			 JSR	PC,.RDCRR
   5602	006512	005740 				TST	-(R0)		; RETURN POINTER
   5603	006514					RETURN			; TO CALLER
	006514	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 136
.RDFMA -- SUBROUTINE TO READ THE KL FM ADDRESS 7511.14

   5605					.SBTTL	.RDFMA -- SUBROUTINE TO READ THE KL FM ADDRESS 7511.14
   5606
   5607					;+
   5608					; .RDFMA -- SUBROUTINE TO READ THE KL FAST MEMORY ADDRESS REGISTER.
   5609					;
   5610					; THIS SUBROUTINE WILL READ AND RETURN THE KL FAST MEMORY ADDRESS
   5611					; A LOCATION POINTED TO BY R1 IN THE CALL. IF R1 IS ZERO, THE DATA
   5612					; IS RETURNED ONLY IN R0.
   5613					;
   5614					; INPUT ARGUMENTS:
   5615					;
   5616					;	R1 POINTS TO A BUFFER FOR THE DATA
   5617					;
   5618					; OUTPUT ARGUMENTS:
   5619					;
   5620					;	R0 CONTAINS THE DATA
   5621					;	THE BUFFER POINTED TO BY R1 CONTAINS THE DATA
   5622					;
   5623					; THE FORMAT OF THE DATA RETURNED IS:
   5624					;
   5625					;	!===============================================!
   5626					;	!	FM BLOCK	!      FM ADDRESS	!
   5627					;	!===============================================!
   5628					;
   5629					; ERROR CODES RETURNED:
   5630					;
   5631					;	FRF -- FUNCTION READ FAILED.
   5632					;-
   5633
   5634	006516				.RDFMA::
   5635	006516					PUSH	R1		; SAVE R1 ON THE STACK
	006516	010146 				 MOV	R1,-(SP)
   5636	006520	005001 				CLR	R1		; .CLEAR R1
   5637	006522	012700 	000230 			MOV	#FR.114,R0	; .FR CODE TO READ FM ADDRESS
   5638	006526					CALL	.FREAD		; .READ IT
	006526	004737 	004362'			 JSR	PC,.FREAD
   5639	006532	012701 	177753 			MOV	#-^D21,R1	; .SHIFT COUNT TO R1
   5640	006536					CALL	.TPSHI		; .SHIFT IT
	006536	004737 	011756'			 JSR	PC,.TPSHI
   5641	006542					PUSH	(R0)		; .SAVE THE WORD ON THE STACK
	006542	011046 				 MOV	(R0),-(SP)
   5642	006544	042716 	177760 			BIC	#177760,(SP)	; ..MASK FM ADDRESS
   5643	006550	042710 	176017 			BIC	#176017,(R0)	; ..MASK OUT THE FM BLOCK NUMBER
   5644	006554	012701 	000004 			MOV	#^D4,R1		; ..SHIFT IT INTO THE HIGH BYTE
   5645	006560					CALL	.TPSHI		; ..SO
	006560	004737 	011756'			 JSR	PC,.TPSHI
   5646	006564	052610 				BIS	(SP)+,(R0)	; ..SET IN THE FAST MEMORY ADDRESS
   5647	006566	011000 				MOV	(R0),R0		; .GET IT INTO R0
   5648	006570					POP	R1		; .DO WE HAVE A POINTER?
	006570	012601 				 MOV	(SP)+,R1
   5649	006572	001401 				BEQ	10$		; NO -- JUST EXIT
   5650	006574	010011 				MOV	R0,(R1)		; YES -- PUT IT WHERE HE WANTS IT
   5651	006576				10$:	RETURN			; AND LEAVE
	006576	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 137
.RDFMO -- SUBROUTINE TO READ KL FAST MEMORY OUTPUT 7708.30

   5653					.SBTTL	.RDFMO -- SUBROUTINE TO READ KL FAST MEMORY OUTPUT 7708.30
   5654
   5655					;+
   5656					; .RDFMO -- SUBROUTINE TO READ THE KL FAST MEMORY REGISTERS
   5657					;
   5658					; THIS SUBROUTINE WILL READ AND STORE THE FAST MEMORY ADDRESS AND
   5659					; OUTPUT IN A FOUR WORD BLOCK STARTING AT ".FMADR", AND IS USEFUL
   5660					; FOR GATHERING DATA ON FAST MEMORY PARITY ERRORS.
   5661					;
   5662					; INPUT ARGUMENTS:
   5663					;
   5664					;	R0 POINTS TO OUTPUT BUFFER
   5665					;
   5666					; OUTPUT ARGUMENTS:
   5667					;
   5668					;	R0 POINTS TO OUTPUT BUFFER
   5669					;
   5670					; ERROR CODES RETURNED:
   5671					;
   5672					;	FRF -- FUNCTION READ FAILED.
   5673					;-
   5674
   5675	006600				.RDFMO::
   5676	006600					PUSH	<R1,R0>		; SAVE R0,R1 ON THE STACK
	006600	010146 				 MOV	R1,-(SP)
	006602	010046 				 MOV	R0,-(SP)
   5677	006604	005001 				CLR	R1		; ..CLEAR R1
   5678	006606					CALL	.RDFMA		; ..READ THE FAST MEMORY ADDRESS
	006606	004737 	006516'			 JSR	PC,.RDFMA
   5679	006612	011601 				MOV	(SP),R1		; ..SET UP POINTER
   5680	006614	010021 				MOV	R0,(R1)+	; ..SAVE FM ADDRESS
   5681	006616	012700 	000246 			MOV	#FR.RFM,R0	; ..READ FM REGISTER FUNCTION READ
   5682	006622					CALL	.FREAD		; ..READ IT
	006622	004737 	004362'			 JSR	PC,.FREAD
   5683	006626					POP	<R0,R1>		; ..RESTORE R1,R0
	006626	012600 				 MOV	(SP)+,R0
	006630	012601 				 MOV	(SP)+,R1
   5684	006632					RETURN			; TO CALLER
	006632	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 138
.RDFMP -- READ FM PARITY ERROR BIT

   5686					.SBTTL	.RDFMP -- READ FM PARITY ERROR BIT
   5687
   5688					;+
   5689					; .RDFMP -- SUBROUTINE TO READ FM PARITY BIT
   5690					;
   5691					; THIS ROUTINE WILL:
   5692					;	1. READ FM BLOCK,ADDR,AND PARITY
   5693					;	2. SHIFT PARITY BIT INTO R0
   5694					;
   5695					; INPUT ARGUMENTS:
   5696					;
   5697					;	NONE
   5698					;
   5699					; OUTPUT ARGUMENTS:
   5700					;
   5701					;	R0-PARITY ERROR BIT VALUE
   5702					;
   5703					; ERROR CODES RETURNED:
   5704					;
   5705					;	FRF -- FUNCTION READ FAILED
   5706					;-
   5707
   5708	006634				.RDFMP::
   5709	006634	005001 				CLR	R1		; NO BUFFER FOR .FREAD OUTPUT
   5710	006636	012700 	000230 			MOV	#FR.114,R0	; FUNCTION READ 114
   5711	006642					CALL	.FREAD		; DO READ
	006642	004737 	004362'			 JSR	PC,.FREAD
   5712	006646	103407 				BCS	10$		; ERROR
   5713	006650	012701 	177756 			MOV	#-^D18,R1	; SHIFT KL BIT 17 TO ELEVEN BIT 0
   5714	006654					CALL	.TPSHI		; SHIFT IT
	006654	004737 	011756'			 JSR	PC,.TPSHI
   5715	006660	011000 				MOV	(R0),R0		; GET VALUE
   5716	006662	042700 	177776 			BIC	#177776,R0	; CLEAR ALL BUT BIT 0
   5717	006666				10$:	RETURN
	006666	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 139
.RDIPE -- READ KL INTERNAL PARITY ERROR FLAGS 7511.13

   5719					.SBTTL	.RDIPE -- READ KL INTERNAL PARITY ERROR FLAGS 7511.13
   5720
   5721					;+
   5722					; .RDIPE -- SUBROUTINE TO READ THE KL INTERNAL PARITY ERROR FLAGS.
   5723					;
   5724					; THIS SUBROUTINE READS THE INTERNAL KL PARITY ERROR FLAGS AND
   5725					; STORES THEM IN ".PEWRD" IN THE FOLLOWING FORMAT:
   5726					;
   5727					;	(A) BIT00 ("PE.CES") [CLK ERROR STOP H],
   5728					;	(B) BIT01 ("PE.DRM") [CLK DRAM PAR ERR H],
   5729					;	(C) BIT02 ("PE.CRM") [CLK CRAM PAR ERR H],
   5730					;	(D) BIT03 ("PE.FMP") [CLK FM PAR ERR H],
   5731					;	(E) BIT04 ("PE.FSS") [CLK FS ERROR H].
   5732					;
   5733					; INPUT ARGUMENTS:
   5734					;
   5735					;	NONE.
   5736					;
   5737					; OUTPUT ARGUMENTS:
   5738					;	R0 CONTAINS A COPY OF THE FLAGS IN ".PEWRD".
   5739					;
   5740					; ERROR CODES RETURNED:
   5741					;
   5742					;	FRF -- FUNCTION READ FAILED.
   5743					;-
   5744
   5745	006670				.RDIPE::
   5746	006670					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	006670	004537 	010302'			 JSR	R5,.REGSV
   5747	006674	012702 	000204 			MOV	#FR.102,R2	; BASE FUNCTION READ TO R2
   5748	006700	012703 	000040 			MOV	#BIT05,R3	; MASK BIT TO R3
   5749	006704	012704 	000176'			MOV	#.PEWRD,R4	; WORD POINTER TO R4
   5750	006710	005014 				CLR	(R4)		; CLEAR THE WORD
   5751	006712	012705 	000001 			MOV	#BIT00,R5	; BASE WORD MASK TO R5
   5752	006716	005001 				CLR	R1		; CLEAR R1
   5753	006720				10$:
   5754	006720	010200 				MOV	R2,R0		; GET THE FR NUMBER
   5755	006722					CALL	.FREAD		; DO THE READ
	006722	004737 	004362'			 JSR	PC,.FREAD
   5756	006726	030310 				BIT	R3,(R0)		; IS THE BIT ON?
   5757	006730	001401 				BEQ	20$		; NO -- GO ON
   5758	006732	050514 				BIS	R5,(R4)		; YES -- SET THE BIT IN THE WORD
   5759	006734				20$:
   5760	006734	062702 	000002 			ADD	#^D2,R2		; NEXT FUNCTION READ
   5761	006740	006305 				ASL	R5		; SHIFT THE WORD MASK
   5762	006742	020503 				CMP	R5,R3		; ARE WE DONE?
   5763	006744	001365 				BNE	10$		; NO -- KEEP GOING
   5767	006746	011400 				MOV	(R4),R0		; YES -- PUT THE WORD IN R0
   5768	006750					RETURN			; AND GO AWAY
	006750	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 140
.RESET -- KL RESET SUBROUTINES 7511.18

   5770					.SBTTL	.RESET -- KL RESET SUBROUTINES 7511.18
   5771
   5772					;+
   5773					; .RESET -- SUBROUTINE TO RESET THE KL.
   5774					;
   5775					; THIS SUBROUTINE PERFORM ALL DIAGNOSTIC FUNCTIONS REQUIRED TO RESET
   5776					; THE KL MICROPROCESSOR AND SET UP CLOCK ENABLES AND PARITY STOPS.
   5777					;
   5778					; SEQUENCE OF OPERATION:
   5779					;
   5780					;	(A) THE DTE-20 IS CLEARED,
   5781					;	(B) THE MASTER RESET SUBROUTINE IS INVOKED,
   5782					;	(C) THE MAJOR KL CONTROL REGISTERS ARE CLEARED
   5783					;	    (THIS IS A FULL KL MASTER RESET).
   5784					;
   5785					; INPUT ARGUMENTS:
   5786					;
   5787					;	NONE.
   5788					;
   5789					; OUTPUT ARGUMENTS:
   5790					;
   5791					;	NONE.
   5792					;
   5793					; ERROR CODES RETURNED:
   5794					;
   5795					;	DSF -- DTE-20 STATUS FAILURE.
   5796					;	FRF -- FUNCTION READ FAILED.
   5797					;	FWF -- FUNCTION WRITE FAILED.
   5798					;	FXF -- FUNCTION EXECUTE FAILED.
   5799					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 141
.RESET -- KL RESET SUBROUTINES 7511.18

   5801	006752				.RESET::
   5802	006752					PUSH	<R0,R1,R2>	; SAVE CALLER'S REGISTERS
	006752	010046 				 MOV	R0,-(SP)
	006754	010146 				 MOV	R1,-(SP)
	006756	010246 				 MOV	R2,-(SP)
   5803	006760					CALL	.RESTD		; ...RESET THE DTE-20
	006760	004737 	007066'			 JSR	PC,.RESTD
   5804	006764	012702 	004274'			MOV	#RESETT,R2	; ...FUNCTION TABLE POINTER TO R2
   5805	006770					CALL	.STPXC		; ...STOP THE KL CLOCK
	006770	004737 	007302'			 JSR	PC,.STPXC
   5806	006774	005046 				CLR	-(SP)		; ...CLEAR A TEMP BUFFER
   5807	006776	010601 				MOV	SP,R1		; ....POINT TO TEMP BUFFER
   5808	007000					CALL	.LDCLK		; ....CLEAR THE CLOCKS OUT
	007000	004737 	005554'			 JSR	PC,.LDCLK
   5809	007004					CALL	.LDPAR		; ....RESET THE PARITY REGISTERS
	007004	004737 	005572'			 JSR	PC,.LDPAR
   5810	007010					CALL	.MRCLR		; ....DO MASTER RESET STUFF
	007010	004737 	005766'			 JSR	PC,.MRCLR
   5811	007014					CALL	.CLDFB		; ....CLEAR THE FUNCTION BUFFERS
	007014	004737 	003370'			 JSR	PC,.CLDFB
   5812	007020				10$:
   5813	007020	005001 				CLR	R1		; ....CLEAR R1
   5814	007022	112200 				MOVB	(R2)+,R0	; ....FUNCTION WRITE CODE TO R0
   5815	007024					CALL	.FWRIT		; ....DO THE WRITE
	007024	004737 	004444'			 JSR	PC,.FWRIT
   5816	007030	022702 	004302'			CMP	#RSTEND,R2	; ....ARE WE CLOSE TO END?
   5817	007034	101371 				BHI	10$		; ....NO -- KEEP GOING
   5818	007036	112210 				MOVB	(R2)+,(R0)	; ....YES -- GET THE DATA
   5819	007040	111200 				MOVB	(R2),R0		; ....FOR LAST WRITE
   5820	007042					CALL	.FWRIT		; ....DO IT
	007042	004737 	004444'			 JSR	PC,.FWRIT
   5821	007046	005726 				TST	(SP)+		; ....CLEAR THE STACK
   5822	007050					POP	<R2,R1,R0>	; ...RESTORE REGISTERS
	007050	012602 				 MOV	(SP)+,R2
	007052	012601 				 MOV	(SP)+,R1
	007054	012600 				 MOV	(SP)+,R0
   5823	007056	052737 	000000G	000002G		BIS	#EF.CRI,.COMEF+2 ; DECLARE THE COMM REGION INVALID
   5824	007064					RETURN			; TO CALLER
	007064	000207 				 RTS	PC
   5825
   5826					; TABLE OF FUNCTION WRITE CODES FOR RESET
   5827
   5828	004274				.PSECT	DATA
   5829
   5830	004274				RESETT:
   5831	004274	   104 				.BYTE	FW.LBR		; CLEAR BURST COUNTER - RIGHT
   5832	004275	   106 				.BYTE	FW.LBL		; CLEAR BURST COUNTER - LEFT
   5833	004276	   124 				.BYTE	FW.CA2		; CLEAR CRAM DIAG ADDR - LEFT
   5834	004277	   122 				.BYTE	FW.CA1		; CLEAR CRAM DIAG ADDR - RIGHT
   5835	004300	   156 				.BYTE	FW.KLO		; ENABLE KL OPCODES
   5836	004301	   174 				.BYTE	FW.EBL		; EBUS LOAD
   5837		004302'			RSTEND=.
   5838	004302	   012 				.BYTE	12		; DATA FOR
   5839	004303	   162 				.BYTE	FW.MBX		; MBOX CONTROL
   5840					.EVEN
   5841	007066				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 142
.RESTD -- DTE-20 RESET SUBROUTINE 7607.20

   5843					.SBTTL	.RESTD -- DTE-20 RESET SUBROUTINE 7607.20
   5844
   5845					;+
   5846					; .RESTD -- SUBROUTINE TO RESET THE DTE-20.
   5847					;
   5848					; THIS SUBROUTINE RESETS THE DTE-20.
   5849					;
   5850					; SEQUENCE OF OPERATION:
   5851					;
   5852					;	(A) THE DTE-20 IS CLEARED.
   5853					;
   5854					; INPUT ARGUMENTS:
   5855					;
   5856					;	NONE.
   5857					;
   5858					; OUTPUT ARGUMENTS:
   5859					;
   5860					;	NONE.
   5861					;
   5862					; ERROR CODES RETURNED:
   5863					;
   5864					;	DSF -- DTE-20 STATUS FAILURE.
   5865					;	FRF -- FUNCTION READ FAILED.
   5866					;	FWF -- FUNCTION WRITE FAILED.
   5867					;	FXF -- FUNCTION EXECUTE FAILED.
   5868					;-
   5869
   5870	007066				.RESTD::
   5871	007066	012700 	004304'			MOV	#D2RST,R0	; DIAG WORD 2 RESET
   5872	007072					CALL	.DWDW2		; WRITE IT
	007072	004737 	003462'			 JSR	PC,.DWDW2
   5873	007076	012700 	004306'			MOV	#D3RST,R0	; DIAG WORD 3 RESET
   5874	007102					CALLR	.DWDW3		; WRITE IT
	007102	000137 	003502'			 JMP	.DWDW3
   5875						;
   5876
   5877	004304				.PSECT	DATA
   5878
   5879	004304				D2RST:
   5880	004304	000100 				.WORD	D2.RST		; DIAG WORD 2 RESET
   5881	004306				D3RST:
   5882	004306	000001 				.WORD	D3.RST		; DIAG WORD 3 RESET
   5883
   5884	007106				.PSECT
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 143
.RESTI -- RESET KL AND ENABLE NORMAL CLOCK AND PARITY 7607.19

   5886					.SBTTL	.RESTI -- RESET KL AND ENABLE NORMAL CLOCK AND PARITY 7607.19
   5887
   5888					;+
   5889					; .RESTI -- SUBROUTINE TO RESET THE KL AND SET UP NORMAL
   5890					;	    KL CLOCK ENABLES AND PARITY STOPS.
   5891					;
   5892					; THIS SUBROUTINE PERFORMS ALL DIAGNOSTIC FUNCTIONS REQUIRED TO RESET
   5893					; THE KL MICROPROCESSOR AND SET UP NORMAL CLOCK ENABLES AND PARITY STOPS
   5894					;
   5895					; SEQUENCE OF OPERATION:
   5896					;
   5897					;	(A) ".RESET" IS INVOKED,
   5898					;	(B) NORMAL KL CLOCKS ARE ENABLED,
   5899					;	(C) NORMAL KL PARITY STOPS ARE ENABLED.
   5900					;
   5901					; INPUT ARGUMENTS:
   5902					;
   5903					;	NONE.
   5904					;
   5905					; OUTPUT ARGUMENTS:
   5906					;
   5907					;	NONE.
   5908					;
   5909					; ERROR CODES RETURNED:
   5910					;
   5911					;	DSF -- DTE-20 STATUS FAILURE.
   5912					;	FRF -- FUNCTION READ FAILED.
   5913					;	FWF -- FUNCTION WRITE FAILED.
   5914					;	FXF -- FUNCTION EXECUTE FAILED.
   5915					;-
   5916
   5917						.ENABL	LSB
   5918
   5919	007106				.RESTI::
   5920	007106					PUSH	R1		; SAVE R1
	007106	010146 				 MOV	R1,-(SP)
   5921	007110	005046 				CLR	-(SP)		; .CLEAR A LOCATION ON THE STACK
   5922	007112					CALL	.RESET		; ..RESET THE KL
	007112	004737 	006752'			 JSR	PC,.RESET
   5923	007116	010601 				MOV	SP,R1		; ..POINT TO SCRATCH BUFFER
   5927	007120					CALL	.LDCLK		; ..SET NORMAL CLOCK ENABLES
	007120	004737 	005554'			 JSR	PC,.LDCLK
   5928	007124	012716 	001416 			MOV	#PS.NRM,(SP)	; ..SET UP NORMAL PARITY ENABLES
   5929	007130	000417 				BR	10$		; ..AND GO SET THEM
   5930						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 144
.RESTP -- RESET KL AND SAVE CURRENT CLOCK AND PARITY 7511.19

   5932					.SBTTL	.RESTP -- RESET KL AND SAVE CURRENT CLOCK AND PARITY 7511.19
   5933
   5934					;+
   5935					; .RESTP -- SUBROUTINE TO RESET THE KL AND RESTORE THE
   5936					;	    PREVIOUS KL PARITY STOPS.
   5937					;
   5938					; THIS SUBROUTINE PERFORMS ALL DIAGNOSTIC FUNCTIONS REQUIRED TO RESET
   5939					; THE KL MICROPROCESSOR AND SET UP CURRENT CLOCK ENABLES AND PARITY STOPS
   5940					;
   5941					; SEQUENCE OF OPERATION:
   5942					;
   5943					;	(A) ".RESET" IS INVOKED.
   5944					;	(B) THE PREVIOUSLY ENABLED CLOCK AND PARITY CONTROLS ARE
   5945					;	    REENABLED.
   5946					;
   5947					; INPUT ARGUMENTS:
   5948					;
   5949					;	NONE.
   5950					;
   5951					; OUTPUT ARGUMENTS:
   5952					;
   5953					;	NONE.
   5954					;
   5955					; ERROR CODES RETURNED:
   5956					;
   5957					;	DSF -- DTE-20 STATUS FAILURE.
   5958					;	FRF -- FUNCTION READ FAILED.
   5959					;	FWF -- FUNCTION WRITE FAILED.
   5960					;	FXF -- FUNCTION EXECUTE FAILED.
   5961					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 145
.RESTP -- RESET KL AND SAVE CURRENT CLOCK AND PARITY 7511.19

   5963	007132				.RESTP::
   5964	007132					PUSH	R1		; SAVE R1
	007132	010146 				 MOV	R1,-(SP)
   5965	007134					CALL	.STPXC		; .STOP THE KL CLOCK
	007134	004737 	007302'			 JSR	PC,.STPXC
   5966	007140					CALL	.RDCPP		; .READ CURRENT CLOCK AND PARITY ENABLES
	007140	004737 	006134'			 JSR	PC,.RDCPP
   5967	007144					PUSH	.PSCWD		; .SAVE THE PARITY CONTROL WORD
	007144	013746 	000204'			 MOV	.PSCWD,-(SP)
   5968	007150					PUSH	.CLKWD		; ..SAVE THE CLOCK CONTROL WORD
	007150	013746 	000010'			 MOV	.CLKWD,-(SP)
   5969	007154					CALL	.RESET		; ...DO A MASTER RESET
	007154	004737 	006752'			 JSR	PC,.RESET
   5970	007160	010601 				MOV	SP,R1		; ...POINT TO THE CLOCK WORD
   5971	007162					CALL	.LDCLK		; ...LOAD THE CLOCKS AGAIN
	007162	004737 	005554'			 JSR	PC,.LDCLK
   5972	007166	005726 				TST	(SP)+		; ...FLUSH SAVED CLOCK WORD
   5973	007170				10$:
   5974	007170	010601 				MOV	SP,R1		; ..POINT TO THE PARITY WORD
   5975	007172					CALL	.LDPAR		; ..LOAD THE PARITY STOPS
	007172	004737 	005572'			 JSR	PC,.LDPAR
   5976	007176	005726 				TST	(SP)+		; ..FLUSH THE PARITY WORD
   5977	007200					POP	R1		; .RESTORE R1
	007200	012601 				 MOV	(SP)+,R1
   5978	007202					RETURN			; AND GO AWAY
	007202	000207 				 RTS	PC
   5979
   5980						.DSABL	LSB
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 146
.RSTKL -- SUBROUTINE TO RESTART THE KL 7611.17

   5982					.SBTTL	.RSTKL -- SUBROUTINE TO RESTART THE KL 7611.17
   5983
   5984					;+
   5985					; .RSTKL -- SUBROUTINE TO RESTART THE KL
   5986					;
   5987					; THIS SUBROUTINE WILL RESTART THE KL, IF IT WAS STOPPED BY ".STPKL".
   5988					;
   5989					; INPUT ARGUMENTS:
   5990					;
   5991					;	THE STATE FLAGS IN ".SVKLF" REPRESENT THE STATE TO WHICH
   5992					;	THE KL IS TO BE RESTORED.
   5993					;
   5994					; OUTPUT ARGUMENTS:
   5995					;
   5996					;	".SVKLF" IS CLEARED.
   5997					;
   5998					; ERROR CODES RETURNED:
   5999					;
   6000					;	NONE.
   6001					;-
   6002
   6003	007204				.RSTKL::
   6004	007204	032737 	040000 	000226'		BIT	#KF.RUN,.SVKLF	; DID WE STOP THE KL?
   6005	007212	001404 				BEQ	10$		; NO -- JUST RETURN
   6006	007214					CALL	.KLRST		; YES -- RESTART THE KL
	007214	004737 	005274'			 JSR	PC,.KLRST
   6007	007220	105037 	000000G			CLRB	.NOHLT		; LET RSX20F DETECT HALTS
   6008	007224				10$:
   6009	007224	005037 	000226'			CLR	.SVKLF		; CLEAR SAVED FLAGS
   6010	007230					RETURN			; TO CALLER
	007230	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 147
.STCLK -- START KL CLOCK SUBROUTINE 7607.15

   6012					.SBTTL	.STCLK -- START KL CLOCK SUBROUTINE 7607.15
   6013
   6014					;+
   6015					; .STCLK -- SUBROUTINE TO START THE KL CLOCK.
   6016					;
   6017					; THIS SUBROUTINE WILL START THE KL CLOCK.
   6018					;
   6019					; INPUT ARGUMENTS:
   6020					;
   6021					;	NONE.
   6022					;
   6023					; OUTPUT ARGUMENTS:
   6024					;
   6025					;	NONE.
   6026					;
   6027					; ERROR CODES RETURNED:
   6028					;
   6029					;	CES -- CLOCK ERROR STOP.
   6030					;	FXF -- FUNCTION EXECUTE FAILED.
   6031					;-
   6032
   6033	007232				.STCLK::
   6034	007232	000241 				CLC			; CLEAR CC-C
   6035	007234					CALL	.CESCK		; CHECK FOR CLOCK ERROR STOP
	007234	004737 	000000'			 JSR	PC,.CESCK
   6036	007240				.STCLF::			; HERE TO START THE CLOCK ANYWAY
   6037	007240					PUSH	R0		; SAVE R0
	007240	010046 				 MOV	R0,-(SP)
   6038	007242	012700 	000002 			MOV	#FX.CST,R0	; .SET UP TO START THE KL CLOCK
   6039	007246					CALL	.FXCT		; .DO IT
	007246	004737 	004566'			 JSR	PC,.FXCT
   6040	007252					POP	R0		; .RESTORE R0
	007252	012600 				 MOV	(SP)+,R0
   6041	007254					RETURN			; RETURN TO CALLER
	007254	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 148
.STPKL -- SUBROUTINE TO STOP THE KL 7602.25

   6043					.SBTTL	.STPKL -- SUBROUTINE TO STOP THE KL 7602.25
   6044
   6045					;+
   6046					; .STPKL -- SUBROUTINE TO STOP THE KL.
   6047					;
   6048					; THIS SUBROUTINE WILL STOP THE KL HALT LOOP IF IT BELIEVES THAT
   6049					; THE KL RUN FLOP IS SET ("KF.RUN" IN ".KLFLG").
   6050					;
   6051					; INPUT ARGUMENTS:
   6052					;
   6053					;	THE STATE OF THE KL IS IN ".KLFLG"
   6054					;
   6055					; OUTPUT ARGUMENTS:
   6056					;
   6057					;	THE CURRENT STATE OF THE KL IS IN ".KLFLG"
   6058					;	THE PREVIOUS STATE OF THE KL IS IN ".SVKLF"
   6059					;
   6060					; ERROR CODES RETURNED:
   6061					;
   6062					;	NONE.
   6063					;-
   6064
   6065	007256				.STPKL::
   6066	007256	032737 	040000 	000000G		BIT	#KF.RUN,.KLFLG	; IS THE KL RUNNING?
   6067	007264	001405 				BEQ	10$		; NO -- JUST EXIT
   6068	007266	013737 	000000G	000226'		MOV	.KLFLG,.SVKLF	; YES -- SAVE CURRENT KL STATE
   6069	007274					CALL	.KLSTP		; STOP THE KL
	007274	004737 	005212'			 JSR	PC,.KLSTP
   6070	007300				10$:
   6071	007300					RETURN			; TO CALLER
	007300	000207 				 RTS	PC
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 149
.STPXC -- STOP KL CLOCK SUBROUTINE 7601.09

   6073					.SBTTL	.STPXC -- STOP KL CLOCK SUBROUTINE 7601.09
   6074
   6075					;+
   6076					; .STPXC -- SUBROUTINE TO STOP THE KL CLOCK.
   6077					;
   6078					; THIS SUBROUTINE STOPS THE KL CLOCK.
   6079					;
   6080					; INPUT ARGUMENTS:
   6081					;
   6082					;	NONE.
   6083					;
   6084					; OUTPUT ARGUMENTS:
   6085					;
   6086					;	NONE
   6087					;
   6088					; ERROR CODES RETURNED:
   6089					;
   6090					;	FXF -- FUNCTION EXECUTE FAILED
   6091					;-
   6092
   6093						.ENABL	LSB
   6094
   6095	007302				.STPXC::
   6096	007302	000241 				CLC			; CLEAR CC-C
   6098	007304					WTSE$S	#E.FHTO		; WAIT FOR KL I/O TO SETTLE FROM ".CLRFF"
	007304	012746 	000001 			MOV	#E.FHTO,-(SP)
	007310	012746 				MOV	(PC)+,-(SP)
	007312	   051 	   002 			.BYTE	41.,2
	007314	104375 				EMT	375
   6100	007316					PUSH	R0		; SAVE R0
	007316	010046 				 MOV	R0,-(SP)
   6101	007320	112737 	000001 	000000G		MOVB	#1,.NOERR	; TELL RSX20F NOT TO PANIC ABOUT CLOCK STOP
   6102	007326	005000 				CLR	R0		; .SET UP TO STOP THE KL CLOCK
   6103									; .FUNCTION CODE IS ZERO
   6104	007330	000404 				BR	10$		; .DO IT
   6105						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 150
.STRUN -- SET KL RUN FLOP SUBROUTINE 7601.09

   6107					.SBTTL	.STRUN -- SET KL RUN FLOP SUBROUTINE 7601.09
   6108
   6109					;+
   6110					; .STRUN -- SUBROUTINE TO SET THE KL RUN FLOP.
   6111					;
   6112					; THIS SUBROUTINE SETS THE KL RUN FLOP.
   6113					;
   6114					;
   6115					; INPUT ARGUMENTS:
   6116					;
   6117					;	NONE.
   6118					;
   6119					; OUTPUT ARGUMENTS:
   6120					;
   6121					;	NONE
   6122					;
   6123					; ERROR CODES RETURNED:
   6124					;
   6125					;	FXF -- FUNCTION EXECUTE FAILED
   6126					;-
   6127
   6128	007332				.STRUN::
   6129	007332	000241 				CLC			; CLEAR CC-C
   6130	007334					PUSH	R0		; SAVE R0
	007334	010046 				 MOV	R0,-(SP)
   6131	007336	012700 	000022 			MOV	#FX.SRF,R0	; .SET UP TO SET KL RUN FLOP
   6132	007342				10$:
   6133	007342					CALL	.FXCT		; .DO IT
	007342	004737 	004566'			 JSR	PC,.FXCT
   6134	007346					POP	R0		; .RESTORE R0
	007346	012600 				 MOV	(SP)+,R0
   6135	007350					RETURN			; TO CALLER
	007350	000207 				 RTS	PC
   6136
   6137						.DSABL	LSB
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 151
.STUCD -- START KL MICROCODE SUBROUTINE 7511.22

   6139					.SBTTL	.STUCD -- START KL MICROCODE SUBROUTINE 7511.22
   6140
   6141					;+
   6142					; .STUCD -- SUBROUTINE TO START THE KL MICROCODE AT THE
   6143					;	    ADDRESS SPECIFIED IN R0.
   6144					;
   6145					; SEQUENCE OF OPERATION:
   6146					;
   6147					;	(A) THE KL RUN FLOP IS CLEARED,
   6148					;	(B) THE KL RUN FLOP IS TURNED OFF,
   6149					;	(C) THE KL IS CLEARED,
   6150					;	(D) THE CRAM ADDRESS IS LOADED,
   6151					;	(E) THE KL CLOCK IS RESTARTED.
   6152					;
   6153					; THE SUBROUTINE EXITS WHEN THE KL HAS FOUND THE HALT LOOP.
   6154					; IF THE HALT LOOP IS NOT FOUND, AN ERROR RETURN IS GIVEN.
   6155					;
   6156					; INPUT ARGUMENTS:
   6157					;
   6158					;	R0 CONTAINS THE CRAM ADDRESS
   6159					;
   6160					; OUTPUT ARGUMENTS:
   6161					;
   6162					;	NONE.
   6163					;
   6164					; ERROR CODES RETURNED:
   6165					;
   6166					;	CAE -- CRAM ADDRESS ERROR.
   6167					;	FRF -- FUNCTION READ FAILED.
   6168					;	FWF -- FUNCTION WRITE FAILED.
   6169					;	FXF -- FUNCTION EXECUTE FAILED
   6170					;	UNL -- UCODE NOT LOADED.
   6171					;
   6172					; NOTE:
   6173					;
   6174					;	THE NORMAL CRAM STARTING ADDRESS IS 0. ATTEMPTING TO
   6175					;	START THE CONTROL RAM AT AN ADDRESS OTHER THAN 0 CAN
   6176					;	PRODUCE STRANGE RESULTS. CAVEAT PROGRAMMATOR (OPERATOR).
   6177					;	CONSIDER YOURSELF WARNED.
   6178					;-
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 152
.STUCD -- START KL MICROCODE SUBROUTINE 7511.22

   6180	007352				.STUCD::
   6181	007352	020027 	002377 			CMP	R0,#2377	; IS IT IN RANGE?
   6182	007356	101030 				BHI	STUCAE		; NO -- GIVE "CAE" ERROR
   6183	007360					PUSH	<R1,R0>		; YES -- SAVE THE ADDRESS ON THE STACK
	007360	010146 				 MOV	R1,-(SP)
	007362	010046 				 MOV	R0,-(SP)
   6184	007364					CALL	.CLRFF		; ..CLEAR THE KL RUN FLOP
	007364	004737 	003420'			 JSR	PC,.CLRFF
   6185	007370					CALL	.STPXC		; ..STOP THE KL CLOCK
	007370	004737 	007302'			 JSR	PC,.STPXC
   6186	007374	011600 				MOV	(SP),R0		; ..CRAM ADDRESS TO R0
   6187	007376					CALL	.LDCRA		; ..LOAD IT
	007376	004737 	005652'			 JSR	PC,.LDCRA
   6188	007402					CALL	.STCLK		; ..START THE KL CLOCK
	007402	004737 	007232'			 JSR	PC,.STCLK
   6189	007406	012701 	000310 			MOV	#^D200,R1	; ..SETUP WAIT LOOP
   6190	007412				10$:
   6191	007412					CALL	.DTDW1		; ..READ DTE-20 DIAG WORD 1
	007412	004737 	003530'			 JSR	PC,.DTDW1
   6192	007416	032700 	001000 			BIT	#D1.HLP,R0	; ..ARE WE IN THE HALT LOOP?
   6196	007422	001001 				BNE	20$		; ..YES -- EXIT
   6197	007424	077106 				SOB	R1,10$		; ..NO -- TRY TILL COUNT EXHAUSTED
   6198	007426				20$:
   6199	007426	005701 				TST	R1		; ..DID COUNT GET EXHAUSTED?
   6200	007430	003406 				BLE	STUUNL		; ..YES -- WE LOST
   6201	007432					POP	<R0,R1>		; ..NO -- RESTORE R0 AND R1
	007432	012600 				 MOV	(SP)+,R0
	007434	012601 				 MOV	(SP)+,R1
   6202	007436					RETURN			; TO CALLER
	007436	000207 				 RTS	PC
   6203	007440				STUCAE:
   6204	007440					ERROR$	CAE		; ERROR -- CRAM ADDRESSING ERROR
	007440	012746 	011355 			 MOV	#^RCAE,-(SP)
	007444	104400 				 TRAP	TC.ERR
   6205						;
   6206	007446				STUUNL:
   6207	007446					ERROR$	UNL		; ERROR -- UCODE NOT LOADED
	007446	012746 	102574 			 MOV	#^RUNL,-(SP)
	007452	104400 				 TRAP	TC.ERR
   6208						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 153
.SYNXC -- SYNCH EBOX CLOCK SUBROUTINE 7509.03

   6210					.SBTTL	.SYNXC -- SYNCH EBOX CLOCK SUBROUTINE 7509.03
   6211
   6212					;+
   6213					; .SYNXC -- SUBROUTINE TO SYNCH THE EBOX CLOCK LOW.
   6214					;
   6215					; THIS SUBROUTINE SYNCHS THE KL EBOX CLOCK LOW
   6216					;
   6217					;
   6218					; INPUT ARGUMENTS:
   6219					;
   6220					;	NONE.
   6221					;
   6222					; OUTPUT ARGUMENTS:
   6223					;
   6224					;	NONE
   6225					;
   6226					; ERROR CODES RETURNED:
   6227					;
   6228					;	FXF -- FUNCTION EXECUTE FAILED
   6229					;-
   6230
   6231						.ENABL	LSB
   6232
   6233	007454				.SYNXC::
   6234	007454	000241 				CLC			; CLEAR CC-C
   6235	007456					PUSH	R0		; SAVE R0
	007456	010046 				 MOV	R0,-(SP)
   6236	007460	012700 	000010 			MOV	#FX.SYC,R0	; .SET UP TO SYNCH EBOX CLOCK
   6237	007464					CALL	.FXCT		; .DO IT
	007464	004737 	004566'			 JSR	PC,.FXCT
   6238	007470	000411 				BR	10$		; .RESTORE R0 AND EXIT
   6239						;
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 154
.WRTAR -- SUBROUTINE TO WRITE THE KL AR REGISTER 7511.05

   6241					.SBTTL	.WRTAR -- SUBROUTINE TO WRITE THE KL AR REGISTER 7511.05
   6242
   6243					;+
   6244					; .WRTAR -- SUBROUTINE TO WRITE THE KL AR REGISTER.
   6245					; .WRAR1 -- SUBROUTINE TO WRITE THE KL AR REGISTER WITHOUT
   6246					;	    STOPPING THE KL CLOCK.
   6247					;
   6248					; THIS SUBROUTINE WILL WRITE A 36 BIT WORD TO THE KL AR REGISTER.
   6249					;
   6250					; SEQUENCE OF OPERATION:
   6251					;
   6252					; .WRTAR:
   6253					;
   6254					;	(A) THE KL CLOCK IS STOPPED,
   6255					;
   6256					; .WRAR1:
   6257					;
   6258					;	(B) THE EBOX CLOCK IS SYNCHED LOW,
   6259					;	(C) THE DATA IS WRITTEN INTO THE KL AR REGISTER.
   6260					;
   6261					; INPUT ARGUMENTS:
   6262					;
   6263					;	R1 POINTS TO THE DATA TO BE WRITTEN
   6264					;
   6265					; OUTPUT ARGUMENTS:
   6266					;
   6267					;	NONE.
   6268					;
   6269					; ERROR CODES RETURNED:
   6270					;
   6271					;	FWF -- FUNCTION WRITE FAILED.
   6272					;-
   6273
   6274	007472				.WRTAR::
   6275	007472					CALL	.STPXC		; STOP THE KL CLOCK
	007472	004737 	007302'			 JSR	PC,.STPXC
   6276	007476				.WRAR1::
   6277	007476					CALL	.SYNXC		; FORCE THE EBOX CLOCK LOW
	007476	004737 	007454'			 JSR	PC,.SYNXC
   6278	007502					PUSH	R0		; SAVE R0
	007502	010046 				 MOV	R0,-(SP)
   6279	007504	012700 	000176 			MOV	#FW.LAR,R0	; .FUNCTION WRITE CODE TO R0
   6280	007510					CALL	.FWRIT		; .LOAD THE AR
	007510	004737 	004444'			 JSR	PC,.FWRIT
   6281	007514				10$:
   6282	007514					POP	R0		; .RESTORE R0
	007514	012600 				 MOV	(SP)+,R0
   6283	007516					RETURN			; RETURN TO CALLER
	007516	000207 				 RTS	PC
   6284
   6285						.DSABL	LSB
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 155
.WRCRM -- WRITE CONTROL RAM SUBROUTINE 7511.03

   6287					.SBTTL	.WRCRM -- WRITE CONTROL RAM SUBROUTINE 7511.03
   6288
   6289					;+
   6290					; .WRCRM -- SUBROUTINE TO WRITE A LOCATION IN THE KL CONTROL RAM.
   6291					;
   6292					; THIS SUBROUTINE WILL WRITE ONE LOCATION IN THE KL CONTROL RAM.
   6293					; THE CRAM ADDRESS TO BE WRITTEN IS SPECIFIED IN R0.
   6294					;
   6295					; SEQUENCE OF OPERATION:
   6296					;
   6297					;	(A) THE KL IS HALTED IN THE HALT LOOP,
   6298					;	(B) THE CONTROL RAM ADDRESS IS LOADED,
   6299					;	(C) THE CONTENT OF THAT CRAM ADDRESS IS WRITTEN.
   6300					;
   6301					; INPUT ARGUMENTS:
   6302					;
   6303					;	R0 CONTAINS THE CRAM ADDRESS TO BE WRITTEN.
   6304					;	R1 POINTS TO A NINE WORD DATA BLOCK TO BE WRITTEN.
   6305					;
   6306					; OUTPUT ARGUMENTS:
   6307					;
   6308					;	NONE.
   6309					;
   6310					; THE FOLLOWING IS A PICTURE OF THE DATA WRITTEN BY THIS SUBROUTINE:
   6311					;
   6312					;	WORD		CRAM DATA
   6313					;	----		---------
   6314					;		+==================================+
   6315					;	00	|	CRAM BITS 68 THRU 78	   |
   6316					;		+----------------------------------+
   6317					;	01	|	CRAM BITS 60 THRU 66       |
   6318					;		+----------------------------------+
   6319					;	02	|	CRAM BITS 48 THRU 59	   |
   6320					;		+----------------------------------+
   6321					;	03	|	CRAM BITS 40 THRU 47	   |
   6322					;		+----------------------------------+
   6323					;	04	|	CRAM BITS 28 THRU 39	   |
   6324					;		+----------------------------------+
   6325					;	05	|	CRAM BITS 20 THRU 27	   |
   6326					;		+----------------------------------+
   6327					;	06	|	CRAM BITS 08 THRU 19	   |
   6328					;		+----------------------------------+
   6329					;	07	|	CRAM BITS 00 THRU 07	   |
   6330					;		+----------------------------------+
   6331					;	08	|    CRAM DISP BITS 00 THRU 04	   |
   6332					;		+==================================+
   6333					;
   6334					; ERROR CODES RETURNED:
   6335					;
   6336					;	CAE -- CRAM ADDRESS ERROR.
   6337					;	FRF -- FUNCTION READ FAILED.
   6338					;	FWF -- FUNCTION WRITE FAILED.
   6339					;	FXF -- FUNCTION EXECUTE FAILED.
   6340					;-
   6341
   6342	007520				.WRCRM::
   6343	007520	020027 	002377 			CMP	R0,#2377	; IS THE ADDRESS IN RANGE?
KL10F -- KL10 FUNCTION MODULE  	MACRO M1113  10-NOV-81 17:44  PAGE 155-1
.WRCRM -- WRITE CONTROL RAM SUBROUTINE 7511.03

   6344	007524	101063 				BHI	WRCRME		; NO -- GIVE "CAE" ERROR
   6345	007526					PUSH	<R4,R3,R2,R1,R0>; YES -- SAVE CALLER'S REGISTERS
	007526	010446 				 MOV	R4,-(SP)
	007530	010346 				 MOV	R3,-(SP)
	007532	010246 				 MOV	R2,-(SP)
	007534	010146 				 MOV	R1,-(SP)
	007536	010046 				 MOV	R0,-(SP)
   6346	007540	010102 				MOV	R1,R2		; .....CALLER'S POINTER TO R2
   6347	007542	012704 	000130 			MOV	#FW.CR4,R4	; .....BASE WRITE TO R4
   6348	007546	011600 				MOV	(SP),R0		; .....GET CRAM ADDRESS FROM THE STACK
   6349	007550					CALL	.LDCRA		; .....LOAD IT
	007550	004737 	005652'			 JSR	PC,.LDCRA
   6350	007554	012703 	000004 			MOV	#^D4,R3		; .....USE R3 AS A COUNTER
   6351	007560	012700 	000304'		10$:	MOV	#.DFWB,R0	; .....POINT TO THE WRITE BUFFER
   6352	007564	012220 				MOV	(R2)+,(R0)+	; .....LOAD OUR BUFFER FROM CALLER'S
   6353	007566	012220 				MOV	(R2)+,(R0)+	; .....
   6354	007570	005010 				CLR	(R0)		; .....
   6355	007572	005001 				CLR	R1		; .....CLEAR R1
   6356	007574	010400 				MOV	R4,R0		; .....PASS THE FWRITE CODE
   6357	007576					CALL	.FWRIT		; .....DO IT
	007576	004737 	004444'			 JSR	PC,.FWRIT
   6358	007602	062704 	000002 			ADD	#^D2,R4		; .....INCREMENT THE FWRITE CODE
   6359	007606	077314 				SOB	R3,10$		; .....LOOP TILL DONE
   6360	007610	011210 				MOV	(R2),(R0)	; .....LOAD THE CRAM DISP BITS
   6361	007612	012701 	000036 			MOV	#^D30,R1	; .....SHIFT COUNT
   6362	007616					CALL	.TPSHI		; .....SHIFT IT
	007616	004737 	011756'			 JSR	PC,.TPSHI
   6363	007622	005001 				CLR	R1		; .....CLEAR R1
   6364	007624	012700 	000126 			MOV	#FW.CRD,R0	; .....WRITE CODE
   6365	007630					CALL	.FWRIT		; .....WRITE IT
	007630	004737 	004444'			 JSR	PC,.FWRIT
   6366	007634					CALL	.CLDFW		; .....CLEAR THE FUNCTION WRITE BUFFER
	007634	004737 	003404'			 JSR	PC,.CLDFW
   6367	007640	012700 	000122 			MOV	#FW.CA1,R0	; .....CLEAR CRAM DIAG ADDR
   6368	007644					CALL	.FWRIT		; .....SO
	007644	004737 	004444'			 JSR	PC,.FWRIT
   6369	007650	012700 	000124 			MOV	#FW.CA2,R0	; .....NOW FOR THE OTHER HALF
   6370	007654					CALL	.FWRIT		; .....SO
	007654	004737 	004444'			 JSR	PC,.FWRIT
   6371	007660					POP	<R0,R1,R2,R3,R4>; .....RESTORE REGISTERS
	007660	012600 				 MOV	(SP)+,R0
	007662	012601 				 MOV	(SP)+,R1
	007664	012602 				 MOV	(SP)+,R2
	007666	012603 				 MOV	(SP)+,R3
	007670	012604 				 MOV	(SP)+,R4
   6372	007672					RETURN			; TO CALLER
	007672	000207 				 RTS	PC
   6373	007674				WRCRME:
   6374	007674					ERROR$	CAE		; ERROR -- CRAM ADDRESSING ERROR
	007674	012746 	011355 			 MOV	#^RCAE,-(SP)
	007700	104400 				 TRAP	TC.ERR
   6375						;
   6376					.TITLE	NULLC -- NULL COMMAND MODULE 7603.30
   6377
   6378						.IDENT	"005000"
   6379
   6380					;
NULLC -- NULL COMMAND MODULE 76	MACRO M1113  10-NOV-81 17:44  PAGE 155-2
.WRCRM -- WRITE CONTROL RAM SUBROUTINE 7511.03

   6381					;                             COPYRIGHT (C) 1975, 1979 BY
   6382					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6383					;
   6384					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6385					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6386					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6387					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6388					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6389					;
   6390					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6391					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6392					;       CORPORATION.
   6393					;
   6394					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6395					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6396					;
   6397					;		MODULE: NULL COMMAND
   6398					;
   6399					;		VERSION: 01-01
   6400					;
   6401					;		AUTHOR: R. BELANGER
   6402					;
   6403					;		DATE: 7603.30
   6404					;
   6405					;	THIS MODULE CONTAINS:
   6406					;
   6407					;	1) NULL COMMAND CODE
NULLC -- NULL COMMAND MODULE 76	MACRO M1113  10-NOV-81 17:44  PAGE 156
.NULLC -- THE NULL COMMAND 7602.10

   6409					.SBTTL	.NULLC -- THE NULL COMMAND 7602.10
   6410
   6411	007702				.NULLC::
   6412	007702	012737 	000021'	000002'		MOV	#PARNAM,.CCMDN	; RESET THE COMMAND NAME
   6413	007710					CALLR	.CKEOC		; CHECK E-O-C CHARACTER
	007710	000137 	000214'			 JMP	.CKEOC
   6414						;
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 157
.NULLC -- THE NULL COMMAND 7602.10

   6416					.TITLE	PARSE -- TOP-LEVEL COMMAND DECODER MODULE 7603.30
   6417
   6418						.IDENT	"006270"
   6419
   6420					;
   6421					;                             COPYRIGHT (C) 1975, 1979 BY
   6422					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6423					;
   6424					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6425					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6426					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6427					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6428					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6429					;
   6430					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6431					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6432					;       CORPORATION.
   6433					;
   6434					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6435					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6436					;
   6437					;		MODULE: TOP-LEVEL COMMAND DECODER
   6438					;
   6439					;		VERSION: 06-27
   6440					;
   6441					;		AUTHOR: R. BELANGER
   6442					;
   6443					;		DATE: 7603.30
   6444					;
   6445					;	THIS MODULE CONTAINS:
   6446					;
   6447					;	1) COMMAND DECODER
   6448
   6449						.MCALL	DIR$,EXIT$S,QIOW$S,.ENB6,.INH6
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 158
.DOCMD -- DECODE A SINGLE COMMAND 7602.03

   6451					.SBTTL	.DOCMD -- DECODE A SINGLE COMMAND 7602.03
   6452
   6453					;+
   6454					; .DOCMD -- DECODE AND DISPATCH FOR A SINGLE COMMAND
   6455					;
   6456					; THIS SUBROUTINE WILL DECODE THE INPUT STREAM FROM THE MAIN COMMAND
   6457					; SYMBOL TABLE, ".CMDTB", SET UP THE LEGAL BITS FOR EACH COMMAND
   6458					; DECODED, AND PERFORM THE DISPATCH FOR THAT COMMAND.
   6459					;
   6460					; INPUT ARGUMENTS:
   6461					;
   6462					;	R0 POINTS TO A REPEAT COUNT
   6463					;	R5 POINTS TO THE INPUT STREAM.
   6464					;
   6465					; OUTPUT ARGUMENTS:
   6466					;
   6467					;	R0 POINTS TO THE COMMAND NAME POINTER IN THE COMMAND TABLE
   6468					;
   6469					; ERROR CODES RETURNED:
   6470					;
   6471					;	CNR -- COMMAND IS NOT REPEATABLE
   6472					;-
   6473
   6474	007714				.DOCMD::
   6475	007714	022020 				CMP	(R0)+,(R0)+	; POINT TO THE END OF THE REPEAT COUNT
   6476	007716					PUSH	<(R0),-(R0),-(R0)>
	007716	011046 				 MOV	(R0),-(SP)
	007720	014046 				 MOV	-(R0),-(SP)
	007722	014046 				 MOV	-(R0),-(SP)
   6477	007724	010600 				MOV	SP,R0		; ...POINT TO THE REPEAT COUNT
   6478	007726					PUSH	R5		; ...SAVE COMMAND LINE POINTER
	007726	010546 				 MOV	R5,-(SP)
   6479	007730					PUSH	R0		; ....SAVE THE REPEAT COUNT POINTER
	007730	010046 				 MOV	R0,-(SP)
   6480	007732	010037 	000220'			MOV	R0,.RPTPT	; .....FOR "CLEAR REPEAT"
   6481	007736				10$:
   6482	007736	012700 	004310'			MOV	#.CMDTB,R0	; .....POINT TO THE COMMAND TABLE
   6483	007742	012737 	000021'	000002'		MOV	#PARNAM,.CCMDN	; ....."PARSER" IS CURRENT COMMAND
   6484	007750					CALL	.TSCAN		; .....SCAN THE TABLE
	007750	004737 	010510'			 JSR	PC,.TSCAN
   6485	007754	011037 	000164'			MOV	(R0),.LGLWD	; .....SET UP THE LEGAL BITS FOR COMMAND
   6486	007760	014037 	000002'			MOV	-(R0),.CCMDN	; .....SET THE POINTER TO THIS NAME
   6487
   6488					;	[CONTINUED ON THE FOLLOWING PAGE]
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 159
.DOCMD -- DECODE A SINGLE COMMAND 7602.03

   6490					;	[CONTINUED FROM THE PREVIOUS PAGE]
   6491
   6492	007764				20$:
   6493	007764					CALL	@4(R0)		; .....DO THE COMMAND
	007764	004770 	000004 			 JSR	PC,@4(R0)
   6494	007770	011600 				MOV	(SP),R0		; .....POINT TO THE REPEAT COUNT
   6495	007772					CALL	.TPTST		; .....IS THERE REALLY ONE THERE
	007772	004737 	011460'			 JSR	PC,.TPTST
   6496	007776	001404 				BEQ	30$		; .....NO -- JUST GO ON
   6497	010000	032737 	000400 	000164'		BIT	#LG.RPT,.LGLWD	; .....YES -- IS THIS COMMAND REPEATABLE?
   6498	010006	001427 				BEQ	DOCCNR		; .....NO -- GIVE "CNR" ERROR
   6499	010010				30$:
   6500	010010	105725 				TSTB	(R5)+		; .....YES -- IS THIS THE END??
   6501	010012	001010 				BNE	40$		; .....NO -- GO ON SCANNING THIS LINE
   6502	010014	105745 				TSTB	-(R5)		; .....YES -- BACK THE POINTER UP
   6503	010016					CALL	.TPDEC		; .....DECREMENT STACKED REPEAT COUNT
	010016	004737 	011534'			 JSR	PC,.TPDEC
   6504	010022					CALL	.TPTST		; .....SEE WHAT THE COUNT IS
	010022	004737 	011460'			 JSR	PC,.TPTST
   6505	010026	003405 				BLE	50$		; .....DONE IF .LE. 0
   6506	010030	016605 	000002 			MOV	2(SP),R5	; .....RESTORE INPUT STREAM POINTER
   6507	010034				40$:
   6508	010034	005037 	000164'			CLR	.LGLWD		; .....CLEAR THE LEGAL BITS
   6509	010040	000736 				BR	10$		; .....AND REITERATE OR CONTINUE
   6510						;
   6511	010042				50$:
   6512	010042	062706 	000012 			ADD	#^D10,SP	; .....FLUSH THE STACK
   6514	010046	005737 	000000G			TST	.KLERQ		; [5.1006]SNAPSHOT IN PROGRESS?
   6515	010052	001401 				BEQ	55$		; [5.1006]NO -- DO ERROR CHECKS
   6516	010054					RETURN			; [5.1006]YES -- DONE
	010054	000207 				 RTS	PC
   6518	010056				55$:	CALL	.CESCK		; CHECK FOR CLOCK ERROR STOP
	010056	004737 	000000'			 JSR	PC,.CESCK
   6519	010062					CALLR	.EBPCK		; AND EBUS PARITY ERROR
	010062	000137 	000410'			 JMP	.EBPCK
   6520						;
   6521	010066				DOCCNR:
   6522	010066					ERROR$	CNR		; ERROR -- COMMAND IS NOT REPEATABLE
	010066	012746 	012402 			 MOV	#^RCNR,-(SP)
	010072	104400 				 TRAP	TC.ERR
   6523						;
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 160
.EXITP -- THE COMMAND PARSER EXIT POINT 7605.17

   6525					.SBTTL	.EXITP -- THE COMMAND PARSER EXIT POINT 7605.17
   6526
   6527					;+
   6528					; .EXITP -- THE COMMAND PARSER EXIT POINT.
   6529					;
   6530					; THIS ROUTINE IS THE COMMAND PARSER EXIT POINT
   6531					;
   6532					; INPUT ARGUMENTS:
   6533					;
   6534					;	NONE.
   6535					;
   6536					; OUTPUT ARGUMENTS:
   6537					;
   6538					;	NONE.
   6539					;
   6540					; ERROR CODES RETURNED:
   6541					;
   6542					;	NONE.
   6543					;-
   6544
   6545	010074				.EXITP::
   6547	010074	005737 	000064'			TST	.DBGSW		; LOOK AT THE DEBUG SWITCH
   6548	010100	001401 				BEQ	5$		; CLEAR -- DON'T HALT
   6549	010102	000000 				HALT			; FOR DEBUGGING
   6550	010104				5$:
   6552	010104	005737 	001626'			TST	.INDFG		; [5.1000]INDIRECT FILE OPEN?
   6553	010110	001410 				BEQ	10$		; [5.1000]NO -- GO ON
   6554	010112	012701 	002716'			MOV	#.INATT,R1	; [5.1000]SET ATTRIBUTE ADDR
   6555	010116	012702 	000005 			MOV	#INDLUN,R2	; [5.1000]SET LUN
   6556	010122	005037 	001626'			CLR	.INDFG		; [5.1000]INDICATE FILE CLOSED
   6557	010126					CALL	.CLOSE		; [5.1000]CLOSE FILE
	010126	004737 	002114'			 JSR	PC,.CLOSE
   6558	010132	105737 	000154'		10$:	TSTB	.OUTLG		; [5.1000]LOG FILE OPEN?
   6559	010136	001412 				BEQ	20$		; [5.1000]NO -- GO NO
   6560	010140	105037 	000154'			CLRB	.OUTLG		; [5.1000]INDICATE FILE CLOSED
   6561	010144					CALL	.WRITZ		; [5.1000]WRITE OUT CURRENT BLOCK
	010144	004737 	003060'			 JSR	PC,.WRITZ
   6562	010150	012701 	004016'			MOV	#.OTATT,R1	; [5.1000]YES -- SET ATTRIBUTE ADDR
   6563	010154	012702 	000004 			MOV	#LOGLUN,R2	; [5.1000]SET LUN
   6564	010160					CALL	.CLOSE		; [5.1000]CLOSE FILE
	010160	004737 	002114'			 JSR	PC,.CLOSE
   6565	010164				20$:	QIOW$S	#IO.DET,#CIDLUN,#E.FCID,#0,#0,#0
	010164	005046 				CLR	-(SP)
	010166	005046 				CLR	-(SP)
	010170	112746 	000002 			MOVB	#E.FCID,-(SP)
	010174	112766 	000000 	000001 		MOVB	#0,1(SP)
	010202	012746 	000001 			MOV	#CIDLUN,-(SP)
	010206	012746 	000000G			MOV	#IO.DET,-(SP)
	010212	012746 				MOV	(PC)+,-(SP)
	010214	   003 	   006 			.BYTE	3,$$$T1
	010216	104375 				EMT	375
   6566	010220	005037 	000000G			CLR	.KLERQ		; [5.1006]CLEAR SNAPSHOT FLAG
   6567	010224	142737 	000000G	000000G		BICB	#M.PARQ,.MISC	; CLEAR THE PRIORITY FLAG
   6568	010232					.INH6			; DISALLOW INTERRUPTS
	010232	013746 	177776 			MOV	@#PS,-(SP)
	010236	112737 	000300 	177776 		MOVB	#300,@#PS
   6569	010244	013705 	000000G			MOV	CTYPTR,R5	; POINT TO THE CTY
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 160-1
.EXITP -- THE COMMAND PARSER EXIT POINT 7605.17

   6570	010250	042765 	000000G	000000G		BIC	#TT.OUT,STSW1(R5) ; CLEAR ANY I/O IN PROGRESS WE MAY HAVE SCREWED
   6571	010256	012703 	000000G			MOV	#D.CDLS,R3	;;; SEND A FREE ACK FOR THE CTY
   6572	010262					CALL	..SACK		;;;
	010262	004737 	000000G			 JSR	PC,..SACK
   6573	010266					.ENB6			; ALLOW INTERRUPTS
	010266	012637 	177776 			MOV	(SP)+,@#PS
   6574	010272					EXIT$S			; EXIT
	010272	012746 				MOV	(PC)+,-(SP)
	010274	   063 	   001 			.BYTE	51.,1
	010276	104375 				EMT	375
   6575	010300	000004 				IOT			; HELP....
   6576						;
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 161
.START -- COMMAND PARSER MAIN LOOP 7602.02

   6578					.SBTTL	.START -- COMMAND PARSER MAIN LOOP 7602.02
   6579
   6580					;+
   6581					; .START -- COMMAND PARSER MAIN LOOP.
   6582					;
   6583					; THIS IS THE MAIN LOOP AND TOPMOST LEVEL OF THE RSX20F CONSOLE
   6584					; COMMAND PARSER. CONTROL IS PASSED HERE ON STARTUP AND ON ERROR
   6585					; RESTARTS FROM ".PTTRP". THE PROMPT STRING IS OUTPUT TO THE CONSOLE
   6586					; OUTPUT DEVICE AND THE NEXT COMMAND STRING IS SOLICITED FROM
   6587					; THE OPERATOR.
   6588					;
   6589					; INPUT ARGUMENTS:
   6590					;
   6591					;	NONE.
   6592					;
   6593					; OUTPUT ARGUMENTS:
   6594					;
   6595					;	R0 POINTS TO THE REPEAT COUNT
   6596					;	R5 POINTS TO THE INPUT STREAM
   6597					;
   6598					; ERROR CODES RETURNED:
   6599					;
   6600					;	IF THE CONSOLE DEVICE CANNOT BE ATTACHED OR DETACHED, THE
   6601					;	PARSER EXITS.
   6602					;-
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 162
.RGSAV -- R1 - R5 SAVE AND RESTORE SUBROUTINE 7509.16

   6604					.SBTTL	.RGSAV -- R1 - R5 SAVE AND RESTORE SUBROUTINE 7509.16
   6605
   6606					;+
   6607					; .REGSV -- SUBROUTINE TO SAVE AND RESTORE R5 - R1 ON THE STACK.
   6608					;
   6609					; R1 - R5 ARE SAVED ON THE STACK, AND MAY BE RESTORED BY EITHER:
   6610					;
   6611					;	RETURN			; RETURNS TO HIGHER LEVEL
   6612					;		-OR-
   6613					;	CALL	@(SP)+		; RETURNS TO SAME LEVEL
   6614					;
   6615					; NO REGISTERS ARE DESTROYED BY THIS SUBROUTINE, AND SUBSEQUENT CALLS
   6616					; WILL NEST.
   6617					;
   6618					; CALLING SEQUENCE IS:
   6619					;
   6620					;	CALL	R5,.REGSV
   6621					;	ONLY RETURN
   6622					;-
   6623
   6624	010302				.REGSV::			; DEFINE AS GLOBAL
   6625	010302					PUSH	<R4,R3,R2,R1,R5>
	010302	010446 				 MOV	R4,-(SP)
	010304	010346 				 MOV	R3,-(SP)
	010306	010246 				 MOV	R2,-(SP)
	010310	010146 				 MOV	R1,-(SP)
	010312	010546 				 MOV	R5,-(SP)
   6626	010314	016605 	000012 			MOV	12(SP),R5	; .....RESTORE R5
   6627	010320	000241 				CLC			; .....CLEAR CC-C
   6628	010322					CALL	@(SP)+		; .....RETURN WITH RESTORE ADDRESS ON THE STACK
	010322	004736 				 JSR	PC,@(SP)+
   6629
   6630					; HERE TO RESTORE R1 - R5 AND RETURN
   6631
   6632	010324					POP	<R1,R2,R3,R4,R5>
	010324	012601 				 MOV	(SP)+,R1
	010326	012602 				 MOV	(SP)+,R2
	010330	012603 				 MOV	(SP)+,R3
	010332	012604 				 MOV	(SP)+,R4
	010334	012605 				 MOV	(SP)+,R5
   6633	010336					RETURN			; RETURN
	010336	000207 				 RTS	PC
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 163
.RGSAV -- R1 - R5 SAVE AND RESTORE SUBROUTINE 7509.16

   6635	010340				.START::
   6636	010340	013706 	000224'			MOV	.SVESP,SP	; INIT THE STACK POINTER
   6637	010344				10$:
   6638	010344	005037 	000226'			CLR	.SVKLF		; RESET ".SVKLF"
   6639	010350	012737 	000021'	000002'		MOV	#PARNAM,.CCMDN	; SET UP PARSER NAME
   6640	010356					CALL	.TYINI		; INIT OUTPUT POINTERS
	010356	004737 	015722'			 JSR	PC,.TYINI
   6641	010362	012701 	000000G			MOV	#.KLFLG,R1	; POINT TO ".KLFLG"
   6643	010366	012700 	000034'			MOV	#KLEPRM,R0	; [5.1006]KLE PROMPT
   6644	010372	005737 	000000G			TST	.KLERQ		; [5.1006]KL CRASH?
   6645	010376	001003 				BNE	12$		; [5.1006]YES -- GET KLE INPUT
   6646	010400	005037 	000144'			CLR	.KLEDF		; [5.1006]NO -- CLEAR DEFAULT FLAG
   6647	010404	000403 				BR	15$		; [5.1006]GO ON
   6648	010406				12$:	CALL	.TYMSF		; [5.1006]YES -- OUTPUT PROMPT
	010406	004737 	015440'			 JSR	PC,.TYMSF
   6649	010412	000423 				BR	35$		; [5.1006]GET COMMANDS
   6651	010414	012700 	000030'		15$:	MOV	#PROMPT,R0	; POINT TO THE PROMPT STRING
   6652	010420					CALL	.TYMSG		; PRINT IT
	010420	004737 	015446'			 JSR	PC,.TYMSG
   6653	010424	012700 	000076 			MOV	#'>,R0		; ASSUME THE KL IS RUNNING
   6654	010430	032711 	100000 			BIT	#KF.CLK,(R1)	; IS THE CLOCK ON?
   6655	010434	001406 				BEQ	20$		; NO -- PRINT "#"
   6656	010436	032711 	040000 			BIT	#KF.RUN,(R1)	; YES -- IS THE RUN FLOP ON?
   6657	010442	001005 				BNE	30$		; YES -- PRINT ">"
   6658	010444	012700 	000045 			MOV	#'%,R0		; NO -- PRINT "%"
   6659	010450	000402 				BR	30$		; GO DO IT
   6660						;
   6661	010452				20$:
   6662	010452	012700 	000043 			MOV	#'#,R0		; KL CLOCK IS OFF
   6663	010456				30$:
   6664	010456					CALL	.TFCHR		; FORCE PRINT THE PROMPT CHARACTER
	010456	004737 	015470'			 JSR	PC,.TFCHR
   6665	010462	012705 	000760'		35$:	MOV	#.COMND,R5	; SET UP COMMAND BUFFER POINTER
   6666	010466					CALL	.GTCMD		; GO READ A COMMAND LINE
	010466	004737 	012574'			 JSR	PC,.GTCMD
   6667	010472	005037 	000164'			CLR	.LGLWD		; FLUSH OLD LEGAL BITS
   6668	010476	012700 	000212'			MOV	#.RPTCT,R0	; GET THE REPEAT COUNT POINTER
   6669	010502					CALL	.DOCMD		; NOW GO EXECUTE A COMMAND
	010502	004737 	007714'			 JSR	PC,.DOCMD
   6670	010506	000716 				BR	10$		; AND START OVER AGAIN
   6671						;
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 164
.TSCAN -- ROUTINE TO SCAN A SYMBOL TABLE 7703.25

   6673					.SBTTL	.TSCAN -- ROUTINE TO SCAN A SYMBOL TABLE 7703.25
   6674
   6675					;+
   6676					; .TSCAN -- ROUTINE TO SCAN AN ".ASCIZ" SYMBOL TABLE.
   6677					;
   6678					; THIS ROUTINE WILL SCAN A SYMBOL TABLE AND RETURN THE DISPATCH
   6679					; ADDRESS ASSOCIATED WITH THE SYMBOL IN R0.
   6680					;
   6681					; THE ENTRIES IN THE SYMBOL TABLE ARE OF THE FORM:
   6682					;
   6683					;	!=======================================!
   6684					;	!	POINTER TO ".ASCIZ" SYMBOL	!
   6685					;	!---------------------------------------!
   6686					;	!	  LEGAL BITS FOR OBJECT		!
   6687					;	!---------------------------------------!
   6688					;	!	   DISPATCH FOR OBJECT		!
   6689					;	!=======================================!
   6690					;
   6691					; INPUT ARGUMENTS:
   6692					;
   6693					;	R0 POINTS TO THE SYMBOL TABLE
   6694					;
   6695					; OUTPUT ARGUMENTS:
   6696					;
   6697					;	R0 POINTS TO THE "LEGAL" BITS OF THE MATCHED SYMBOL
   6698					;
   6699					; ERROR CODES RETURNED:
   6700					;
   6701					;	AMB -- AMBIGUOUS KEYWORD.
   6702					;	NSK -- NON-EXISTENT KEYWORD.
   6703					;	WRM -- WRONG MODE FOR COMMAND.
   6704					;-
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 165
.TSCAN -- ROUTINE TO SCAN A SYMBOL TABLE 7703.25

   6706	010510				.TSCAN::
   6707	010510					CALL	.CKCTC		; SEE IF "^C" WAS TYPED
	010510	004737 	000166'			 JSR	PC,.CKCTC
   6708	010514					CALL	.CKSYM		; GET OVER LEADING BLANKS
	010514	004737 	000374'			 JSR	PC,.CKSYM
   6709	010520	122704 	000077 			CMPB	#'?,R4		; IS THIS AN INQUIRY?
   6710	010524	001442 				BEQ	50$		; YES -- DISPLAY THE TABLE
   6711	010526					PUSH	R1		; NO -- SAVE R1 ON THE STACK
	010526	010146 				 MOV	R1,-(SP)
   6712	010530					PUSH	R5		; .SAVE THE INPUT POINTER
	010530	010546 				 MOV	R5,-(SP)
   6713	010532	010001 				MOV	R0,R1		; ..TABLE POINTER TO R1
   6714	010534					PUSH	R5		; ..SAVE THE INPUT POINTER AGAIN
	010534	010546 				 MOV	R5,-(SP)
   6715	010536	005046 				CLR	-(SP)		; ...CLEAR A SCRATCH AREA
   6716	010540				10$:
   6717	010540	012100 				MOV	(R1)+,R0	; ....GET THE ADDRESS OF THE SYMBOL
   6718	010542					CALL	.SSCAN		; ....SCAN IT
	010542	004737 	010760'			 JSR	PC,.SSCAN
   6719	010546	103412 				BCS	30$		; ....NO MATCH -- TRY NEXT ENTRY
   6720	010550	001004 				BNE	20$		; ....MATCH -- SAVE POINTER AND CONTINUE
   6721	010552	010100 				MOV	R1,R0		; ....EXACT MATCH -- PUT THE POINTER IN R0
   6722	010554	010566 	000004 			MOV	R5,4(SP)	; ....FIX THE INPUT POINTER
   6723	010560	000414 				BR	40$		; ....AND SET UP FOR EXIT
   6724						;
   6725	010562				20$:
   6726	010562	005716 				TST	(SP)		; ....HAVE WE ALREADY FOUND A MATCH?
   6727	010564	001062 				BNE	TSCAMB		; ....YES -- GIVE "AMB" ERROR
   6728	010566	010116 				MOV	R1,(SP)		; ....NO -- SAVE POINTER AND GO ON
   6729	010570	010566 	000004 			MOV	R5,4(SP)	; ....SAVE THE BUFFER POINTER
   6730	010574				30$:
   6731	010574	016605 	000002 			MOV	2(SP),R5	; ....RESET THE INPUT POINTER
   6732	010600	022121 				CMP	(R1)+,(R1)+	; ....ADVANCE THE POINTER
   6733	010602	005711 				TST	(R1)		; ....IS THIS THE END OF THE TABLE?
   6734	010604	001355 				BNE	10$		; ....NO -- TRY THIS SYMBOL
   6735	010606	011600 				MOV	(SP),R0		; ....YES -- DID WE FIND A MATCH?
   6736	010610	001455 				BEQ	TSCNSK		; ....NO -- GIVE "NSK" ERROR
   6737	010612				40$:
   6738	010612	033710 	000000G			BIT	.FEMOD,(R0)	; ....YES -- CAN WE DO THIS COMMAND?
   6739	010616	001455 				BEQ	TSCWRM		; ....NO -- GIVE "WRM" ERROR
   6740	010620	022626 				CMP	(SP)+,(SP)+	; ....YES -- CLEAR THE STACK
   6741	010622					POP	R5		; ..RETURN UPDATED LINE POINTER
	010622	012605 				 MOV	(SP)+,R5
   6742	010624	111504 				MOVB	(R5),R4		; .PUT THE DELIMITER IN R4
   6743	010626					POP	R1		; .RESTORE R1
	010626	012601 				 MOV	(SP)+,R1
   6744	010630					RETURN			; WITH POINTER TO LEGAL BITS IN R0
	010630	000207 				 RTS	PC
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 166
.TSCAN -- ROUTINE TO SCAN A SYMBOL TABLE 7703.25

   6746	010632				50$:
   6747	010632	105725 				TSTB	(R5)+		; GET OVER THE "?"
   6748	010634					CALL	.CKEOC		; CHECK FOR E-O-C
	010634	004737 	000214'			 JSR	PC,.CKEOC
   6749	010640	010001 				MOV	R0,R1		; TABLE POINTER TO R1
   6750	010642					CALL	.TCRLF		; TYPE A <CRLF>
	010642	004737 	015536'			 JSR	PC,.TCRLF
   6751	010646	013700 	000002'			MOV	.CCMDN,R0	; CURRENT COMMAND NAME
   6752	010652					CALL	.TYMSG		; PRINT THAT
	010652	004737 	015446'			 JSR	PC,.TYMSG
   6753	010656	012700 	000345'			MOV	#TDMSG0,R0	; REST OF LINE
   6754	010662					CALL	.TYLIN		; PRINT IT
	010662	004737 	015432'			 JSR	PC,.TYLIN
   6755	010666				60$:
   6756	010666	012100 				MOV	(R1)+,R0	; NAME POINTER TO R0
   6757	010670	001414 				BEQ	80$		; EXIT IF NULL
   6758	010672	031137 	000000G			BIT	(R1),.FEMOD	; COMMAND LEGAL IN THIS MODE?
   6759	010676	001407 				BEQ	70$		; NO -- GO ON
   6760	010700	105760 	000001 			TSTB	1(R0)		; [5.1012]ONE CHAR COMMAND?
   6761	010704	001404 				BEQ	70$		; [5.1012]YES -- SKIP IT
   6762	010706					CALL	.TYSPC		; YES -- SPACE OVER
	010706	004737 	014566'			 JSR	PC,.TYSPC
   6763	010712					CALL	.TYLIN		; PRINT THIS NAME
	010712	004737 	015432'			 JSR	PC,.TYLIN
   6764	010716				70$:
   6765	010716	022121 				CMP	(R1)+,(R1)+	; POINT TO THE NEXT NAME
   6766	010720	000762 				BR	60$		; AND GO ON
   6767						;
   6768	010722				80$:
   6769	010722	013706 	000224'			MOV	.SVESP,SP	; RESET THE STACK
   6770	010726	000177 	000222'			JMP	@.STRTV		; AND START OVER
   6771						;
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 167
.TSCAN -- ROUTINE TO SCAN A SYMBOL TABLE 7703.25

   6773	010732				TSCAMB:
   6774	010732	016605 	000002 			MOV	2(SP),R5	; RESET INPUT POINTER
   6775	010736					ERROR$	AMB		; .ERROR -- MULTIPLE MATCH
	010736	012746 	004112 			 MOV	#^RAMB,-(SP)
	010742	104400 				 TRAP	TC.ERR
   6776						;
   6777	010744				TSCNSK:
   6778	010744					ERROR$	NSK		; .ERROR -- NON-EXISTENT KEYWORD
	010744	012746 	055203 			 MOV	#^RNSK,-(SP)
	010750	104400 				 TRAP	TC.ERR
   6779						;
   6780	010752				TSCWRM:
   6781	010752					ERROR$	WRM		; .ERROR -- WRONG MODE FOR COMMAND
	010752	012746 	111235 			 MOV	#^RWRM,-(SP)
	010756	104400 				 TRAP	TC.ERR
   6782						;
   6783
   6784	000345				.PSECT	MESSAG
   6785
   6786	000345				TDMSG0:
   6787	000345	   040 	   103 	   117 		.ASCIZ	% COMMANDS ARE:%
	000350	   115 	   115 	   101
	000353	   116 	   104 	   123
	000356	   040 	   101 	   122
	000361	   105 	   072 	   000
   6788	010760				.PSECT
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 168
.SSCAN -- ROUTINE TO SCAN A SYMBOL 7601.14

   6790					.SBTTL	.SSCAN -- ROUTINE TO SCAN A SYMBOL 7601.14
   6791
   6792					;+
   6793					; .SSCAN -- ROUTINE TO SCAN A SYMBOL IN THE INPUT STREAM FOR A MATCH
   6794					;	    WITH AN ".ASCIZ" SYMBOL IN A TABLE.
   6795					;
   6796					; THIS ROUTINE WILL FIND A MATCH OR NON-MATCH ON A SYMBOL POINTED TO
   6797					; BY R5 WITH THE ".ASCIZ" SYMBOLS IN THE TABLE POINTED TO BY R0.
   6798					;
   6799					; INPUT ARGUMENTS:
   6800					;
   6801					;	R0 POINTS TO AN ".ASCIZ" SYMBOL IN A TABLE DESCRIBED IN
   6802					;	".TSCAN" (Q.V.).
   6803					;	R5 POINTS TO THE INPUT STREAM, OR THE OTHER SYMBOL TO BE
   6804					;	MATCHED.
   6805					;
   6806					; OUTPUT ARGUMENTS:
   6807					;
   6808					;  ON FAILURE, (NO MATCH):
   6809					;	R5 POINTS TO THE BEGINNING OF THE SYMBOL IN THE INPUT STREAM
   6810					;	R4 CONTAINS THE LAST CHARACTER PROCESSED IN THE INPUT STREAM
   6811					;	CC-C IS SET.
   6812					;
   6813					;  ON SUCCESS, (MATCH):
   6814					;	R5 POINTS TO THE DELIMITER AFTER THE SYMBOL
   6815					;	R4 CONTAINS THAT DELIMITER CHARACTER
   6816					;	CC-C IS CLEAR
   6817					;	IF CC-Z IS SET, THE MATCH WAS EXACT.
   6818					;
   6819					; ERROR CODES RETURNED:
   6820					;
   6821					;	ILS -- ILLEGAL SEPARATOR CHARCATER.
   6822					;-
PARSE -- TOP-LEVEL COMMAND DECO	MACRO M1113  10-NOV-81 17:44  PAGE 169
.SSCAN -- ROUTINE TO SCAN A SYMBOL 7601.14

   6824	010760				.SSCAN::
   6825	010760	121510 				CMPB	(R5),(R0)	; TEST CHARACTERS FOR MATCH
   6826	010762	001006 				BNE	20$		; NO MATCH -- CHECK DELIMITER
   6827	010764	105720 				TSTB	(R0)+		; ADVANCE THE POINTERS
   6828	010766	001402 				BEQ	10$		; MATCH ON ".ASCIZ" SYMBOLS?
   6829	010770	105725 				TSTB	(R5)+		; NO -- ADVANCE OTHER POINTER
   6830	010772	000772 				BR	.SSCAN		; AND TRY NEXT TWO CHARACTERS
   6831						;
   6832	010774				10$:
   6833	010774	105740 				TSTB	-(R0)		; BACK THE POINTER UP
   6834	010776	000405 				BR	30$		; AND EXIT
   6835						;
   6836	011000				20$:
   6837	011000	111504 				MOVB	(R5),R4		; GET LAST CHARACTER FROM INPUT
   6838	011002	132764 	000034 	001450'		BITB	#CH.END,.CHTAB(R4)
   6839	011010	001402 				BEQ	40$		; NOT LEGAL DELIMITER -- GIVE NO MATCH
   6840	011012				30$:
   6841	011012	105710 				TSTB	(R0)		; LOOK AT THE LAST CHARACTER IN OUR SYMBOL
   6842	011014	000401 				BR	50$		; AND EXIT
   6843						;
   6844	011016				40$:
   6845	011016	000261 				SEC			; SET CC-C TO SAY "NO MATCH"
   6846	011020				50$:
   6847	011020					RETURN			; TO CALLER
	011020	000207 				 RTS	PC
REPTC -- REPEAT COMMAND MODULE 	MACRO M1113  10-NOV-81 17:44  PAGE 171
.SSCAN -- ROUTINE TO SCAN A SYMBOL 7601.14

   6850					.TITLE	REPTC -- REPEAT COMMAND MODULE 7703.25
   6851
   6852						.IDENT	"005000"
   6853
   6854					;
   6855					;                             COPYRIGHT (C) 1975, 1979 BY
   6856					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6857					;
   6858					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6859					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6860					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6861					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6862					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6863					;
   6864					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6865					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6866					;       CORPORATION.
   6867					;
   6868					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6869					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6870					;
   6871					;		MODULE: REPEAT COMMAND
   6872					;
   6873					;		VERSION: 05-00
   6874					;
   6875					;		AUTHOR: R. BELANGER
   6876					;
   6877					;		DATE: 7703.25
   6878					;
   6879					;	THIS MODULE CONTAINS:
   6880					;
   6881					;	1) REPEAT COMMAND CODE
REPTC -- REPEAT COMMAND MODULE 	MACRO M1113  10-NOV-81 17:44  PAGE 172
.REPTC -- THE "REPEAT" COMMAND 7703.25

   6883					.SBTTL	.REPTC -- THE "REPEAT" COMMAND 7703.25
   6884
   6885					;+
   6886					; .REPTC -- THE "REPEAT" COMMAND
   6887					;
   6888					; THIS ROUTINE WILL ACCEPT AND CHECK A 36 BIT REPEAT COUNT BEFORE
   6889					; CALLING THE TOP LEVEL OF THE COMMAND PARSER.
   6890					;
   6891					; INPUT ARGUMENTS:
   6892					;
   6893					;	NONE.
   6894					;
   6895					; OUTPUT ARGUMENTS:
   6896					;
   6897					;	R0 POINTS TO A 36 BIT REPEAT COUNT
   6898					;
   6899					; ERROR CODES RETURNED:
   6900					;
   6901					;	IRC -- ILLEGAL REPEAT COUNT
   6902					;-
   6903
   6904	011022				.REPTC::
   6905	011022	013737 	000134'	000206'		MOV	.IRADX,.RDXSV	; SAVE CURRENT INPUT RADIX
   6906	011030	012737 	000012 	000134'		MOV	#^D10,.IRADX	; SET IT TO DECIMAL
   6907	011036	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   6908	011040	005046 				CLR	-(SP)		; .
   6909	011042	005046 				CLR	-(SP)		; ..
   6910	011044	010600 				MOV	SP,R0		; ...POINT TO IT
   6911	011046					CALL	.GTKLN		; ...READ THE NUMBER
	011046	004737 	013266'			 JSR	PC,.GTKLN
   6912	011052	013737 	000206'	000134'		MOV	.RDXSV,.IRADX	; ...RESET INPUT RADIX
   6913	011060					CALL	.TPTST		; ...SEE WHAT WE GOT
	011060	004737 	011460'			 JSR	PC,.TPTST
   6914	011064	003410 				BLE	REPIRC		; ...ILLEGAL IF .LE. 0
   6915	011066					CALL	.CKEOC		; ...CHECK E-O-C
	011066	004737 	000214'			 JSR	PC,.CKEOC
   6916	011072	105725 				TSTB	(R5)+		; ...GET OVER THE E-O-C CHARACTER
   6917	011074					CALL	.DOCMD		; ...CONTINUE PROCESSING THE LINE
	011074	004737 	007714'			 JSR	PC,.DOCMD
   6918	011100	062706 	000006 			ADD	#^D6,SP		; ...FLUSH THE STACK
   6919	011104					RETURN			; TO CALLER
	011104	000207 				 RTS	PC
   6920	011106				REPIRC:
   6921	011106					ERROR$	IRC		; ERROR -- ILLEGAL REPEAT COUNT
	011106	012746 	035423 			 MOV	#^RIRC,-(SP)
	011112	104400 				 TRAP	TC.ERR
   6922						;
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 173
.REPTC -- THE "REPEAT" COMMAND 7703.25

   6924					.TITLE	TABLE -- COMMAND PARSER COMMAND TABLES 7812.20
   6925
   6926						.IDENT	"006250"
   6927
   6928					;
   6929					;                             COPYRIGHT (C) 1975, 1979 BY
   6930					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6931					;
   6932					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6933					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6934					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6935					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6936					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6937					;
   6938					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6939					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6940					;       CORPORATION.
   6941					;
   6942					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6943					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6944					;
   6945					;		MODULE: MAIN COMMAND PARSER TABLES
   6946					;
   6947					;		VERSION: 06-25
   6948					;
   6949					;		AUTHOR: R. BELANGER
   6950					;
   6951					;		DATE: 7812.20
   6952					;
   6953					;	THIS MODULE CONTAINS:
   6954					;
   6955					;	1) THE MAIN COMMAND TABLES
   6956					;
   6957					;  MODIFICATIONS:
   6958					;
   6959					;	NO.	DATE		PROGRAMMER	REASON
   6960					;	---	----		----------	------
   6961					;	001	28-FEB-77	R. BELANGER	ADD DISCONNECT COMMAND
   6962					;
   6963					;    [5.1000]	24-AUG-79	K. LEFEBVRE	ADD "TAKE" COMMAND
   6964					;						ADD "SET OUTPUT" COMMAND
   6965					;    [5.1002]	14-SEP-79	K. LEFEBVRE	ADD "SET AC-BLOCK" COMMAND
   6966					;						ADD "SWEEP" COMMAND
   6967					;    [5.1010]	17-OCT-79	K.LEFEBVRE	ADD "SHOW" COMMAND
   6968					;    [5.1011]	19-OCT-79	R.BELANGER	ADD "WHAT HARDWARE" COMMAND
   6969					;    [5.1012]	19-OCT-79	R.BELANGER	ADD "MARK-MICROCODE" COMMAND
   6970					;						ADD "UNMARK-MICROCODE" COMMAND
   6971					;	002	05-NOV-80	S. LEAPLINE	ADD "AUTO-TAKE" COMMAND
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 174
.CMDTB -- THE MAIN COMMAND TABLE 7703.25

   6973					.SBTTL	.CMDTB -- THE MAIN COMMAND TABLE 7703.25
   6974
   6975	004310					.PSECT	DATA
   6976
   6977	004310				.CMDTB::
   6978	004310					COMND$	,<LG.OPR!LG.RPT>,.NULLC,NUL
	000364	   000 			NULMSG:: .ASCIZ	%%
	004310	000364'				 .WORD	NULMSG		; POINTER TO "" SYMBOL
	004312	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	004314	007702'				 .WORD	.NULLC		; ROUTINE TO CALL OR DATA
   6979					;
   6980	004316					COMND$	ABORT,LG.OPR,.ABRTC,ABO
	000365	   101 	   102 	   117 	ABOMSG:: .ASCIZ	%ABORT%
	000370	   122 	   124 	   000
	004316	000365'				 .WORD	ABOMSG		; POINTER TO "ABORT" SYMBOL
	004320	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004322	000000G				 .WORD	.ABRTC		; ROUTINE TO CALL OR DATA
   6981					;
   6982	004324					COMND$	CLEAR,<LG.OPR!LG.RPT>,.CLRCM,CLR
	000373	   103 	   114 	   105 	CLRMSG:: .ASCIZ	%CLEAR%
	000376	   101 	   122 	   000
	004324	000373'				 .WORD	CLRMSG		; POINTER TO "CLEAR" SYMBOL
	004326	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	004330	000000G				 .WORD	.CLRCM		; ROUTINE TO CALL OR DATA
   6983					;
   6984	004332					COMND$	CONTINUE,<LG.PRG!LG.RPT>,.CONTC,CNT
	000401	   103 	   117 	   116 	CNTMSG:: .ASCIZ	%CONTINUE%
	000404	   124 	   111 	   116
	000407	   125 	   105 	   000
	004332	000401'				 .WORD	CNTMSG		; POINTER TO "CONTINUE" SYMBOL
	004334	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004336	000000G				 .WORD	.CONTC		; ROUTINE TO CALL OR DATA
   6985					;
   6986	004340					COMND$	DEPOSIT,<LG.PRG!LG.RPT>,.DPOSC,DEP
	000412	   104 	   105 	   120 	DEPMSG:: .ASCIZ	%DEPOSIT%
	000415	   117 	   123 	   111
	000420	   124 	   000
	004340	000412'				 .WORD	DEPMSG		; POINTER TO "DEPOSIT" SYMBOL
	004342	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004344	000000G				 .WORD	.DPOSC		; ROUTINE TO CALL OR DATA
   6987					;
   6988	004346					COMND$	DISCONNECT,LG.ALL,.DISCC,DIS
	000422	   104 	   111 	   123 	DISMSG:: .ASCIZ	%DISCONNECT%
	000425	   103 	   117 	   116
	000430	   116 	   105 	   103
	000433	   124 	   000
	004346	000422'				 .WORD	DISMSG		; POINTER TO "DISCONNECT" SYMBOL
	004350	000007 				 .WORD	LG.ALL		; LEGAL BITS
	004352	000000G				 .WORD	.DISCC		; ROUTINE TO CALL OR DATA
   6989					;
   6990	004354					COMND$	EXAMINE,<LG.OPR!LG.RPT>,.EXAMC,EXA
	000435	   105 	   130 	   101 	EXAMSG:: .ASCIZ	%EXAMINE%
	000440	   115 	   111 	   116
	000443	   105 	   000
	004354	000435'				 .WORD	EXAMSG		; POINTER TO "EXAMINE" SYMBOL
	004356	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	004360	000000G				 .WORD	.EXAMC		; ROUTINE TO CALL OR DATA
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 174-1
.CMDTB -- THE MAIN COMMAND TABLE 7703.25

   6991					;
   6992	004362					COMND$	FREAD,<LG.MNT!LG.RPT>,.DFRED,FRD
	000445	   106 	   122 	   105 	FRDMSG:: .ASCIZ	%FREAD%
	000450	   101 	   104 	   000
	004362	000445'				 .WORD	FRDMSG		; POINTER TO "FREAD" SYMBOL
	004364	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	004366	000000G				 .WORD	.DFRED		; ROUTINE TO CALL OR DATA
   6993					;
   6994	004370					COMND$	FWRITE,<LG.MNT!LG.RPT>,.DFWRT,FWR
	000453	   106 	   127 	   122 	FWRMSG:: .ASCIZ	%FWRITE%
	000456	   111 	   124 	   105
	000461	   000
	004370	000453'				 .WORD	FWRMSG		; POINTER TO "FWRITE" SYMBOL
	004372	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	004374	000000G				 .WORD	.DFWRT		; ROUTINE TO CALL OR DATA
   6995					;
   6996	004376					COMND$	FXCT,<LG.MNT!LG.RPT>,.DFXCT,FXC
	000462	   106 	   130 	   103 	FXCMSG:: .ASCIZ	%FXCT%
	000465	   124 	   000
	004376	000462'				 .WORD	FXCMSG		; POINTER TO "FXCT" SYMBOL
	004400	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	004402	000000G				 .WORD	.DFXCT		; ROUTINE TO CALL OR DATA
   6997					;
   6998	004404					COMND$	HALT,<LG.PRG!LG.RPT>,.HALTC,HLT
	000467	   110 	   101 	   114 	HLTMSG:: .ASCIZ	%HALT%
	000472	   124 	   000
	004404	000467'				 .WORD	HLTMSG		; POINTER TO "HALT" SYMBOL
	004406	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004410	000000G				 .WORD	.HALTC		; ROUTINE TO CALL OR DATA
   6999					;
   7004	004412					COMND$	INITIALIZE,<LG.PRG!LG.RPT>,.INITC,INI
	000474	   111 	   116 	   111 	INIMSG:: .ASCIZ	%INITIALIZE%
	000477	   124 	   111 	   101
	000502	   114 	   111 	   132
	000505	   105 	   000
	004412	000474'				 .WORD	INIMSG		; POINTER TO "INITIALIZE" SYMBOL
	004414	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004416	000000G				 .WORD	.INITC		; ROUTINE TO CALL OR DATA
   7005					;
   7006	004420					COMND$	JUMP,LG.OPR,.JUMPC,JMP
	000507	   112 	   125 	   115 	JMPMSG:: .ASCIZ	%JUMP%
	000512	   120 	   000
	004420	000507'				 .WORD	JMPMSG		; POINTER TO "JUMP" SYMBOL
	004422	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004424	000000G				 .WORD	.JUMPC		; ROUTINE TO CALL OR DATA
   7007					;
   7008	004426					COMND$	M,LG.OPR,.RUNCM,M
	000514	   115 	   000 		MMSG:: .ASCIZ	%M%
	004426	000514'				 .WORD	MMSG		; POINTER TO "M" SYMBOL
	004430	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004432	000000G				 .WORD	.RUNCM		; ROUTINE TO CALL OR DATA
   7009					;
   7010	004434					COMND$	MARK-MICROCODE,LG.MNT,.MARKC,MRK
	000516	   115 	   101 	   122 	MRKMSG:: .ASCIZ	%MARK-MICROCODE%
	000521	   113 	   055 	   115
	000524	   111 	   103 	   122
	000527	   117 	   103 	   117
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 174-2
.CMDTB -- THE MAIN COMMAND TABLE 7703.25

	000532	   104 	   105 	   000
	004434	000516'				 .WORD	MRKMSG		; POINTER TO "MARK-MICROCODE" SYMBOL
	004436	000004 				 .WORD	LG.MNT		; LEGAL BITS
	004440	000000G				 .WORD	.MARKC		; ROUTINE TO CALL OR DATA
   7011					;
   7012	004442					COMND$	MCR,LG.OPR,.RUNCM,MCR
	000535	   115 	   103 	   122 	MCRMSG:: .ASCIZ	%MCR%
	000540	   000
	004442	000535'				 .WORD	MCRMSG		; POINTER TO "MCR" SYMBOL
	004444	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004446	000000G				 .WORD	.RUNCM		; ROUTINE TO CALL OR DATA
   7013					;
   7014	004450					COMND$	R,LG.OPR,.RUNCM,R
	000541	   122 	   000 		RMSG:: .ASCIZ	%R%
	004450	000541'				 .WORD	RMSG		; POINTER TO "R" SYMBOL
	004452	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004454	000000G				 .WORD	.RUNCM		; ROUTINE TO CALL OR DATA
   7015					;
   7016	004456					COMND$	REPEAT,<LG.OPR!LG.RPT>,.REPTC,RPT
	000543	   122 	   105 	   120 	RPTMSG:: .ASCIZ	%REPEAT%
	000546	   105 	   101 	   124
	000551	   000
	004456	000543'				 .WORD	RPTMSG		; POINTER TO "REPEAT" SYMBOL
	004460	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	004462	011022'				 .WORD	.REPTC		; ROUTINE TO CALL OR DATA
   7017					;
   7018	004464					COMND$	RESET,<LG.PRG!LG.RPT>,.RESTC,RST
	000552	   122 	   105 	   123 	RSTMSG:: .ASCIZ	%RESET%
	000555	   105 	   124 	   000
	004464	000552'				 .WORD	RSTMSG		; POINTER TO "RESET" SYMBOL
	004466	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004470	000000G				 .WORD	.RESTC		; ROUTINE TO CALL OR DATA
   7019					;
   7020	004472					COMND$	RUN,LG.OPR,.RUNCM,RUN
	000560	   122 	   125 	   116 	RUNMSG:: .ASCIZ	%RUN%
	000563	   000
	004472	000560'				 .WORD	RUNMSG		; POINTER TO "RUN" SYMBOL
	004474	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004476	000000G				 .WORD	.RUNCM		; ROUTINE TO CALL OR DATA
   7021					;
   7022	004500					COMND$	SET,<LG.OPR!LG.RPT>,.SETCM,SET
	000564	   123 	   105 	   124 	SETMSG:: .ASCIZ	%SET%
	000567	   000
	004500	000564'				 .WORD	SETMSG		; POINTER TO "SET" SYMBOL
	004502	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	004504	000000G				 .WORD	.SETCM		; ROUTINE TO CALL OR DATA
   7023					;
   7024	004506					COMND$	SHOW,LG.OPR,.WHATC,SHO
	000570	   123 	   110 	   117 	SHOMSG:: .ASCIZ	%SHOW%
	000573	   127 	   000
	004506	000570'				 .WORD	SHOMSG		; POINTER TO "SHOW" SYMBOL
	004510	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004512	000000G				 .WORD	.WHATC		; ROUTINE TO CALL OR DATA
   7025					;
   7026	004514					COMND$	SHUTDOWN,LG.OPR,.SHUTC,SHU
	000575	   123 	   110 	   125 	SHUMSG:: .ASCIZ	%SHUTDOWN%
	000600	   124 	   104 	   117
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 174-3
.CMDTB -- THE MAIN COMMAND TABLE 7703.25

	000603	   127 	   116 	   000
	004514	000575'				 .WORD	SHUMSG		; POINTER TO "SHUTDOWN" SYMBOL
	004516	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004520	000000G				 .WORD	.SHUTC		; ROUTINE TO CALL OR DATA
   7027					;
   7029	004522					COMND$	SNAPSHOT,LG.MNT,.SNAP,SNP
	000606	   123 	   116 	   101 	SNPMSG:: .ASCIZ	%SNAPSHOT%
	000611	   120 	   123 	   110
	000614	   117 	   124 	   000
	004522	000606'				 .WORD	SNPMSG		; POINTER TO "SNAPSHOT" SYMBOL
	004524	000004 				 .WORD	LG.MNT		; LEGAL BITS
	004526	000000G				 .WORD	.SNAP		; ROUTINE TO CALL OR DATA
   7031					;
   7032	004530					COMND$	START,<LG.PRG!LG.RPT>,.STRTC,STR
	000617	   123 	   124 	   101 	STRMSG:: .ASCIZ	%START%
	000622	   122 	   124 	   000
	004530	000617'				 .WORD	STRMSG		; POINTER TO "START" SYMBOL
	004532	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004534	000000G				 .WORD	.STRTC		; ROUTINE TO CALL OR DATA
   7033					;
   7034	004536					COMND$	SWEEP,<LG.MNT!LG.RPT>,.SWPC,SWP
	000625	   123 	   127 	   105 	SWPMSG:: .ASCIZ	%SWEEP%
	000630	   105 	   120 	   000
	004536	000625'				 .WORD	SWPMSG		; POINTER TO "SWEEP" SYMBOL
	004540	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	004542	000000G				 .WORD	.SWPC		; ROUTINE TO CALL OR DATA
   7035					;
   7036	004544					COMND$	TAKE,<LG.OPR>,.TAKEC,TAK
	000633	   124 	   101 	   113 	TAKMSG:: .ASCIZ	%TAKE%
	000636	   105 	   000
	004544	000633'				 .WORD	TAKMSG		; POINTER TO "TAKE" SYMBOL
	004546	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004550	000000G				 .WORD	.TAKEC		; ROUTINE TO CALL OR DATA
   7037					;
   7038	004552					COMND$	UNMARK-MICROCODE,LG.MNT,.UMRKC,UNM
	000640	   125 	   116 	   115 	UNMMSG:: .ASCIZ	%UNMARK-MICROCODE%
	000643	   101 	   122 	   113
	000646	   055 	   115 	   111
	000651	   103 	   122 	   117
	000654	   103 	   117 	   104
	000657	   105 	   000
	004552	000640'				 .WORD	UNMMSG		; POINTER TO "UNMARK-MICROCODE" SYMBOL
	004554	000004 				 .WORD	LG.MNT		; LEGAL BITS
	004556	000000G				 .WORD	.UMRKC		; ROUTINE TO CALL OR DATA
   7039					;
   7040	004560					COMND$	QUIT,LG.OPR,.QUITC,QUT
	000661	   121 	   125 	   111 	QUTMSG:: .ASCIZ	%QUIT%
	000664	   124 	   000
	004560	000661'				 .WORD	QUTMSG		; POINTER TO "QUIT" SYMBOL
	004562	000001 				 .WORD	LG.OPR		; LEGAL BITS
	004564	000000G				 .WORD	.QUITC		; ROUTINE TO CALL OR DATA
   7041					;
   7042	004566					COMND$	WHAT,LG.OPR,.WHATC,WHA
	000666	   127 	   110 	   101 	WHAMSG:: .ASCIZ	%WHAT%
	000671	   124 	   000
	004566	000666'				 .WORD	WHAMSG		; POINTER TO "WHAT" SYMBOL
	004570	000001 				 .WORD	LG.OPR		; LEGAL BITS
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 174-4
.CMDTB -- THE MAIN COMMAND TABLE 7703.25

	004572	000000G				 .WORD	.WHATC		; ROUTINE TO CALL OR DATA
   7043					;
   7044	004574					COMND$	XCT,<LG.PRG!LG.RPT>,.EXCTC,XCT
	000673	   130 	   103 	   124 	XCTMSG:: .ASCIZ	%XCT%
	000676	   000
	004574	000673'				 .WORD	XCTMSG		; POINTER TO "XCT" SYMBOL
	004576	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004600	000000G				 .WORD	.EXCTC		; ROUTINE TO CALL OR DATA
   7045					;
   7046	004602					COMND$	ZERO,LG.PRG,.ZEROC,ZER
	000677	   132 	   105 	   122 	ZERMSG:: .ASCIZ	%ZERO%
	000702	   117 	   000
	004602	000677'				 .WORD	ZERMSG		; POINTER TO "ZERO" SYMBOL
	004604	000002 				 .WORD	LG.PRG		; LEGAL BITS
	004606	000000G				 .WORD	.ZEROC		; ROUTINE TO CALL OR DATA
   7047					;
   7048	004610	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 175
.DPETB -- THE DEPOSIT EXTENSION TABLE 7602.23

   7050					.SBTTL	.DPETB -- THE DEPOSIT EXTENSION TABLE 7602.23
   7051
   7052	004612				.DPETB::
   7053	004612					COMND$	DECREMENT,<LG.RPT!LG.OPR>,.DPOSD,DCR
	000704	   104 	   105 	   103 	DCRMSG:: .ASCIZ	%DECREMENT%
	000707	   122 	   105 	   115
	000712	   105 	   116 	   124
	000715	   000
	004612	000704'				 .WORD	DCRMSG		; POINTER TO "DECREMENT" SYMBOL
	004614	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004616	000000G				 .WORD	.DPOSD		; ROUTINE TO CALL OR DATA
   7054					;
   7055	004620					COMND$	INCREMENT,<LG.RPT!LG.OPR>,.DPOSI,INC
	000716	   111 	   116 	   103 	INCMSG:: .ASCIZ	%INCREMENT%
	000721	   122 	   105 	   115
	000724	   105 	   116 	   124
	000727	   000
	004620	000716'				 .WORD	INCMSG		; POINTER TO "INCREMENT" SYMBOL
	004622	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004624	000000G				 .WORD	.DPOSI		; ROUTINE TO CALL OR DATA
   7056					;
   7057	004626					COMND$	NEXT,<LG.RPT!LG.OPR>,.DPOSN,NXT
	000730	   116 	   105 	   130 	NXTMSG:: .ASCIZ	%NEXT%
	000733	   124 	   000
	004626	000730'				 .WORD	NXTMSG		; POINTER TO "NEXT" SYMBOL
	004630	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004632	000000G				 .WORD	.DPOSN		; ROUTINE TO CALL OR DATA
   7058					;
   7059	004634					COMND$	PREVIOUS,<LG.RPT!LG.OPR>,.DPOSP,PRV
	000735	   120 	   122 	   105 	PRVMSG:: .ASCIZ	%PREVIOUS%
	000740	   126 	   111 	   117
	000743	   125 	   123 	   000
	004634	000735'				 .WORD	PRVMSG		; POINTER TO "PREVIOUS" SYMBOL
	004636	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004640	000000G				 .WORD	.DPOSP		; ROUTINE TO CALL OR DATA
   7060					;
   7061	004642					COMND$	THIS,<LG.RPT!LG.OPR>,.DPOSZ,THS
	000746	   124 	   110 	   111 	THSMSG:: .ASCIZ	%THIS%
	000751	   123 	   000
	004642	000746'				 .WORD	THSMSG		; POINTER TO "THIS" SYMBOL
	004644	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004646	000000G				 .WORD	.DPOSZ		; ROUTINE TO CALL OR DATA
   7062					;
   7063	004650	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 176
.DPOTB -- THE DEPOSIT COMMAND TABLE 7602.23

   7065					.SBTTL	.DPOTB -- THE DEPOSIT COMMAND TABLE 7602.23
   7066
   7067	004652				.DPOTB::
   7068	004652					COMND$	AR,<LG.PRG!LG.RPT>,.DEPAR,AR
	000753	   101 	   122 	   000 	ARMSG:: .ASCIZ	%AR%
	004652	000753'				 .WORD	ARMSG		; POINTER TO "AR" SYMBOL
	004654	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004656	000000G				 .WORD	.DEPAR		; ROUTINE TO CALL OR DATA
   7069					;
   7070	004660					COMND$	ELEVEN,<LG.PRG!LG.RPT>,.DPOEL,ELE
	000756	   105 	   114 	   105 	ELEMSG:: .ASCIZ	%ELEVEN%
	000761	   126 	   105 	   116
	000764	   000
	004660	000756'				 .WORD	ELEMSG		; POINTER TO "ELEVEN" SYMBOL
	004662	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004664	000000G				 .WORD	.DPOEL		; ROUTINE TO CALL OR DATA
   7071					;
   7072	004666					COMND$	TEN,<LG.PRG!LG.RPT>,.DPOKL,TEN
	000765	   124 	   105 	   116 	TENMSG:: .ASCIZ	%TEN%
	000770	   000
	004666	000765'				 .WORD	TENMSG		; POINTER TO "TEN" SYMBOL
	004670	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	004672	000000G				 .WORD	.DPOKL		; ROUTINE TO CALL OR DATA
   7073					;
   7074	004674					COMND$	DECREMENT,<LG.RPT!LG.OPR>,.DPOSD,DCR
	004674	000704'				 .WORD	DCRMSG		; POINTER TO "DECREMENT" SYMBOL
	004676	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004700	000000G				 .WORD	.DPOSD		; ROUTINE TO CALL OR DATA
   7075					;
   7076	004702					COMND$	INCREMENT,<LG.RPT!LG.OPR>,.DPOSI,INC
	004702	000716'				 .WORD	INCMSG		; POINTER TO "INCREMENT" SYMBOL
	004704	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004706	000000G				 .WORD	.DPOSI		; ROUTINE TO CALL OR DATA
   7077					;
   7078	004710					COMND$	NEXT,<LG.RPT!LG.OPR>,.DPOSN,NXT
	004710	000730'				 .WORD	NXTMSG		; POINTER TO "NEXT" SYMBOL
	004712	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004714	000000G				 .WORD	.DPOSN		; ROUTINE TO CALL OR DATA
   7079					;
   7080	004716					COMND$	PREVIOUS,<LG.RPT!LG.OPR>,.DPOSP,PRV
	004716	000735'				 .WORD	PRVMSG		; POINTER TO "PREVIOUS" SYMBOL
	004720	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004722	000000G				 .WORD	.DPOSP		; ROUTINE TO CALL OR DATA
   7081					;
   7082	004724					COMND$	THIS,<LG.RPT!LG.OPR>,.DPOSZ,THS
	004724	000746'				 .WORD	THSMSG		; POINTER TO "THIS" SYMBOL
	004726	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004730	000000G				 .WORD	.DPOSZ		; ROUTINE TO CALL OR DATA
   7083					;
   7084	004732	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 177
.EXETB -- THE EXAMINE EXTENSION TABLE 7602.16

   7086					.SBTTL	.EXETB -- THE EXAMINE EXTENSION TABLE 7602.16
   7087
   7088	004734				.EXETB::
   7089	004734					COMND$	DECREMENT,<LG.RPT!LG.OPR>,.EXAMD,DCR
	004734	000704'				 .WORD	DCRMSG		; POINTER TO "DECREMENT" SYMBOL
	004736	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004740	000000G				 .WORD	.EXAMD		; ROUTINE TO CALL OR DATA
   7090					;
   7091	004742					COMND$	INCREMENT,<LG.RPT!LG.OPR>,.EXAMI,INC
	004742	000716'				 .WORD	INCMSG		; POINTER TO "INCREMENT" SYMBOL
	004744	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004746	000000G				 .WORD	.EXAMI		; ROUTINE TO CALL OR DATA
   7092					;
   7093	004750					COMND$	NEXT,<LG.RPT!LG.OPR>,.EXAMN,NXT
	004750	000730'				 .WORD	NXTMSG		; POINTER TO "NEXT" SYMBOL
	004752	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004754	000000G				 .WORD	.EXAMN		; ROUTINE TO CALL OR DATA
   7094					;
   7095	004756					COMND$	PREVIOUS,<LG.RPT!LG.OPR>,.EXAMP,PRV
	004756	000735'				 .WORD	PRVMSG		; POINTER TO "PREVIOUS" SYMBOL
	004760	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004762	000000G				 .WORD	.EXAMP		; ROUTINE TO CALL OR DATA
   7096					;
   7097	004764					COMND$	THIS,<LG.RPT!LG.OPR>,.EXAMZ,THS
	004764	000746'				 .WORD	THSMSG		; POINTER TO "THIS" SYMBOL
	004766	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	004770	000000G				 .WORD	.EXAMZ		; ROUTINE TO CALL OR DATA
   7098					;
   7099	004772	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 178
.EXMTB -- THE EXAMINE COMMAND TABLE 7703.25

   7101					.SBTTL	.EXMTB -- THE EXAMINE COMMAND TABLE 7703.25
   7102
   7103	004774				.EXMTB::
   7104	004774					COMND$	AD,<LG.PRG!LG.RPT>,.EXAD,AD
	000771	   101 	   104 	   000 	ADMSG:: .ASCIZ	%AD%
	004774	000771'				 .WORD	ADMSG		; POINTER TO "AD" SYMBOL
	004776	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005000	000000G				 .WORD	.EXAD		; ROUTINE TO CALL OR DATA
   7105					;
   7106	005002					COMND$	ADX,<LG.PRG!LG.RPT>,.EXADX,ADX
	000774	   101 	   104 	   130 	ADXMSG:: .ASCIZ	%ADX%
	000777	   000
	005002	000774'				 .WORD	ADXMSG		; POINTER TO "ADX" SYMBOL
	005004	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005006	000000G				 .WORD	.EXADX		; ROUTINE TO CALL OR DATA
   7107					;
   7108	005010					COMND$	AR,<LG.PRG!LG.RPT>,.EXARR,AR
	005010	000753'				 .WORD	ARMSG		; POINTER TO "AR" SYMBOL
	005012	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005014	000000G				 .WORD	.EXARR		; ROUTINE TO CALL OR DATA
   7109					;
   7110	005016					COMND$	ARX,<LG.PRG!LG.RPT>,.EXARX,ARX
	001000	   101 	   122 	   130 	ARXMSG:: .ASCIZ	%ARX%
	001003	   000
	005016	001000'				 .WORD	ARXMSG		; POINTER TO "ARX" SYMBOL
	005020	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005022	000000G				 .WORD	.EXARX		; ROUTINE TO CALL OR DATA
   7111					;
   7112	005024					COMND$	BR,<LG.PRG!LG.RPT>,.EXBRR,BR
	001004	   102 	   122 	   000 	BRMSG:: .ASCIZ	%BR%
	005024	001004'				 .WORD	BRMSG		; POINTER TO "BR" SYMBOL
	005026	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005030	000000G				 .WORD	.EXBRR		; ROUTINE TO CALL OR DATA
   7113					;
   7114	005032					COMND$	BRX,<LG.PRG!LG.RPT>,.EXBRX,BRX
	001007	   102 	   122 	   130 	BRXMSG:: .ASCIZ	%BRX%
	001012	   000
	005032	001007'				 .WORD	BRXMSG		; POINTER TO "BRX" SYMBOL
	005034	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005036	000000G				 .WORD	.EXBRX		; ROUTINE TO CALL OR DATA
   7115					;
   7116	005040					COMND$	EBUS,<LG.PRG!LG.RPT>,.EXEBS,EBS
	001013	   105 	   102 	   125 	EBSMSG:: .ASCIZ	%EBUS%
	001016	   123 	   000
	005040	001013'				 .WORD	EBSMSG		; POINTER TO "EBUS" SYMBOL
	005042	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005044	000000G				 .WORD	.EXEBS		; ROUTINE TO CALL OR DATA
   7117					;
   7118	005046					COMND$	FM,<LG.PRG!LG.RPT>,.EXFMR,FM
	001020	   106 	   115 	   000 	FMMSG:: .ASCIZ	%FM%
	005046	001020'				 .WORD	FMMSG		; POINTER TO "FM" SYMBOL
	005050	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005052	000000G				 .WORD	.EXFMR		; ROUTINE TO CALL OR DATA
   7119					;
   7120	005054					COMND$	MQ,<LG.PRG!LG.RPT>,.EXMQR,MQ
	001023	   115 	   121 	   000 	MQMSG:: .ASCIZ	%MQ%
	005054	001023'				 .WORD	MQMSG		; POINTER TO "MQ" SYMBOL
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 178-1
.EXMTB -- THE EXAMINE COMMAND TABLE 7703.25

	005056	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005060	000000G				 .WORD	.EXMQR		; ROUTINE TO CALL OR DATA
   7121					;
   7122	005062					COMND$	PC,<LG.ALL!LG.RPT>,.EXVPC,PC
	001026	   120 	   103 	   000 	PCMSG:: .ASCIZ	%PC%
	005062	001026'				 .WORD	PCMSG		; POINTER TO "PC" SYMBOL
	005064	000407 				 .WORD	LG.ALL!LG.RPT		; LEGAL BITS
	005066	000000G				 .WORD	.EXVPC		; ROUTINE TO CALL OR DATA
   7123					;
   7124		000012 			EXRTBL==<.-.EXMTB>/6
   7125	005070					COMND$	AB,<LG.PRG!LG.RPT>,.EXVAB,AB
	001031	   101 	   102 	   000 	ABMSG:: .ASCIZ	%AB%
	005070	001031'				 .WORD	ABMSG		; POINTER TO "AB" SYMBOL
	005072	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005074	000000G				 .WORD	.EXVAB		; ROUTINE TO CALL OR DATA
   7126					;
   7127	005076					COMND$	CRADDR,<LG.PRG!LG.RPT>,.EXCRA,CRA
	001034	   103 	   122 	   101 	CRAMSG:: .ASCIZ	%CRADDR%
	001037	   104 	   104 	   122
	001042	   000
	005076	001034'				 .WORD	CRAMSG		; POINTER TO "CRADDR" SYMBOL
	005100	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005102	000000G				 .WORD	.EXCRA		; ROUTINE TO CALL OR DATA
   7128					;
   7129	005104					COMND$	CRLOC,<LG.PRG!LG.RPT>,.EXCRL,CRL
	001043	   103 	   122 	   114 	CRLMSG:: .ASCIZ	%CRLOC%
	001046	   117 	   103 	   000
	005104	001043'				 .WORD	CRLMSG		; POINTER TO "CRLOC" SYMBOL
	005106	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005110	000000G				 .WORD	.EXCRL		; ROUTINE TO CALL OR DATA
   7130					;
   7131	005112					COMND$	DRADDR,<LG.PRG!LG.RPT>,.EXDRA,DRA
	001051	   104 	   122 	   101 	DRAMSG:: .ASCIZ	%DRADDR%
	001054	   104 	   104 	   122
	001057	   000
	005112	001051'				 .WORD	DRAMSG		; POINTER TO "DRADDR" SYMBOL
	005114	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005116	000000G				 .WORD	.EXDRA		; ROUTINE TO CALL OR DATA
   7132					;
   7133	005120					COMND$	DTE-20,<LG.PRG!LG.RPT>,.EXDTE,DTE
	001060	   104 	   124 	   105 	DTEMSG:: .ASCIZ	%DTE-20%
	001063	   055 	   062 	   060
	001066	   000
	005120	001060'				 .WORD	DTEMSG		; POINTER TO "DTE-20" SYMBOL
	005122	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005124	000000G				 .WORD	.EXDTE		; ROUTINE TO CALL OR DATA
   7134					;
   7135	005126					COMND$	ELEVEN,<LG.OPR!LG.RPT>,.EXMEL,ELE
	005126	000756'				 .WORD	ELEMSG		; POINTER TO "ELEVEN" SYMBOL
	005130	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	005132	000000G				 .WORD	.EXMEL		; ROUTINE TO CALL OR DATA
   7136					;
   7137	005134					COMND$	FE,<LG.PRG!LG.RPT>,.EXFER,FER
	001067	   106 	   105 	   000 	FERMSG:: .ASCIZ	%FE%
	005134	001067'				 .WORD	FERMSG		; POINTER TO "FE" SYMBOL
	005136	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005140	000000G				 .WORD	.EXFER		; ROUTINE TO CALL OR DATA
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 178-2
.EXMTB -- THE EXAMINE COMMAND TABLE 7703.25

   7138					;
   7139	005142					COMND$	FLAGS,<LG.PRG!LG.RPT>,.EXAMF,FLG
	001072	   106 	   114 	   101 	FLGMSG:: .ASCIZ	%FLAGS%
	001075	   107 	   123 	   000
	005142	001072'				 .WORD	FLGMSG		; POINTER TO "FLAGS" SYMBOL
	005144	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005146	000000G				 .WORD	.EXAMF		; ROUTINE TO CALL OR DATA
   7140					;
   7141	005150					COMND$	KL,<LG.ALL!LG.RPT>,.EXAMK,KL
	001100	   113 	   114 	   000 	KLMSG:: .ASCIZ	%KL%
	005150	001100'				 .WORD	KLMSG		; POINTER TO "KL" SYMBOL
	005152	000407 				 .WORD	LG.ALL!LG.RPT		; LEGAL BITS
	005154	000000G				 .WORD	.EXAMK		; ROUTINE TO CALL OR DATA
   7142					;
   7143	005156					COMND$	PI,<LG.PRG!LG.RPT>,.EXMPI,PI
	001103	   120 	   111 	   000 	PIMSG:: .ASCIZ	%PI%
	005156	001103'				 .WORD	PIMSG		; POINTER TO "PI" SYMBOL
	005160	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005162	000000G				 .WORD	.EXMPI		; ROUTINE TO CALL OR DATA
   7144					;
   7145	005164					COMND$	REGISTERS,<LG.PRG!LG.RPT>,.EXREG,REG
	001106	   122 	   105 	   107 	REGMSG:: .ASCIZ	%REGISTERS%
	001111	   111 	   123 	   124
	001114	   105 	   122 	   123
	001117	   000
	005164	001106'				 .WORD	REGMSG		; POINTER TO "REGISTERS" SYMBOL
	005166	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005170	000000G				 .WORD	.EXREG		; ROUTINE TO CALL OR DATA
   7146					;
   7147	005172					COMND$	TEN,<LG.OPR!LG.RPT>,.EXMKL,TEN
	005172	000765'				 .WORD	TENMSG		; POINTER TO "TEN" SYMBOL
	005174	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	005176	000000G				 .WORD	.EXMKL		; ROUTINE TO CALL OR DATA
   7148					;
   7149	005200					COMND$	VMA,<LG.PRG!LG.RPT>,.EXVMA,VMA
	001120	   126 	   115 	   101 	VMAMSG:: .ASCIZ	%VMA%
	001123	   000
	005200	001120'				 .WORD	VMAMSG		; POINTER TO "VMA" SYMBOL
	005202	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005204	000000G				 .WORD	.EXVMA		; ROUTINE TO CALL OR DATA
   7150					;
   7151	005206					COMND$	VMAH,<LG.PRG!LG.RPT>,.EXVMH,VMH
	001124	   126 	   115 	   101 	VMHMSG:: .ASCIZ	%VMAH%
	001127	   110 	   000
	005206	001124'				 .WORD	VMHMSG		; POINTER TO "VMAH" SYMBOL
	005210	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005212	000000G				 .WORD	.EXVMH		; ROUTINE TO CALL OR DATA
   7152					;
   7153	005214					COMND$	SBR,<LG.PRG!LG.RPT>,.EXSBR,SBR
	001131	   123 	   102 	   122 	SBRMSG:: .ASCIZ	%SBR%
	001134	   000
	005214	001131'				 .WORD	SBRMSG		; POINTER TO "SBR" SYMBOL
	005216	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005220	000000G				 .WORD	.EXSBR		; ROUTINE TO CALL OR DATA
   7154					;
   7155	005222					COMND$	SC,<LG.PRG!LG.RPT>,.EXSCR,SCR
	001135	   123 	   103 	   000 	SCRMSG:: .ASCIZ	%SC%
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 178-3
.EXMTB -- THE EXAMINE COMMAND TABLE 7703.25

	005222	001135'				 .WORD	SCRMSG		; POINTER TO "SC" SYMBOL
	005224	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	005226	000000G				 .WORD	.EXSCR		; ROUTINE TO CALL OR DATA
   7156					;
   7157	005230					COMND$	DECREMENT,<LG.RPT!LG.OPR>,.EXAMD,DCR
	005230	000704'				 .WORD	DCRMSG		; POINTER TO "DECREMENT" SYMBOL
	005232	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	005234	000000G				 .WORD	.EXAMD		; ROUTINE TO CALL OR DATA
   7158					;
   7159	005236					COMND$	INCREMENT,<LG.RPT!LG.OPR>,.EXAMI,INC
	005236	000716'				 .WORD	INCMSG		; POINTER TO "INCREMENT" SYMBOL
	005240	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	005242	000000G				 .WORD	.EXAMI		; ROUTINE TO CALL OR DATA
   7160					;
   7161	005244					COMND$	NEXT,<LG.RPT!LG.OPR>,.EXAMN,NXT
	005244	000730'				 .WORD	NXTMSG		; POINTER TO "NEXT" SYMBOL
	005246	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	005250	000000G				 .WORD	.EXAMN		; ROUTINE TO CALL OR DATA
   7162					;
   7163	005252					COMND$	PREVIOUS,<LG.RPT!LG.OPR>,.EXAMP,PRV
	005252	000735'				 .WORD	PRVMSG		; POINTER TO "PREVIOUS" SYMBOL
	005254	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	005256	000000G				 .WORD	.EXAMP		; ROUTINE TO CALL OR DATA
   7164					;
   7165	005260					COMND$	THIS,<LG.RPT!LG.OPR>,.EXAMZ,THS
	005260	000746'				 .WORD	THSMSG		; POINTER TO "THIS" SYMBOL
	005262	000401 				 .WORD	LG.RPT!LG.OPR		; LEGAL BITS
	005264	000000G				 .WORD	.EXAMZ		; ROUTINE TO CALL OR DATA
   7166					;
   7167	005266	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 179
.KLMTB -- THE KLINIK MODE TABLE 7702.16

   7169					.SBTTL	.KLMTB -- THE KLINIK MODE TABLE 7702.16
   7170
   7171	005270				.KLMTB::
   7172	005270					COMND$	MAINTENANCE,LG.ALL,LG.ALL,MNT
	001140	   115 	   101 	   111 	MNTMSG:: .ASCIZ	%MAINTENANCE%
	001143	   116 	   124 	   105
	001146	   116 	   101 	   116
	001151	   103 	   105 	   000
	005270	001140'				 .WORD	MNTMSG		; POINTER TO "MAINTENANCE" SYMBOL
	005272	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005274	000007 				 .WORD	LG.ALL		; ROUTINE TO CALL OR DATA
   7173					;
   7174	005276					COMND$	OPERATOR,LG.ALL,LG.OPR,OPR
	001154	   117 	   120 	   105 	OPRMSG:: .ASCIZ	%OPERATOR%
	001157	   122 	   101 	   124
	001162	   117 	   122 	   000
	005276	001154'				 .WORD	OPRMSG		; POINTER TO "OPERATOR" SYMBOL
	005300	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005302	000001 				 .WORD	LG.OPR		; ROUTINE TO CALL OR DATA
   7175					;
   7176	005304					COMND$	PROGRAMMER,LG.ALL,LG.PRM,PRG
	001165	   120 	   122 	   117 	PRGMSG:: .ASCIZ	%PROGRAMMER%
	001170	   107 	   122 	   101
	001173	   115 	   115 	   105
	001176	   122 	   000
	005304	001165'				 .WORD	PRGMSG		; POINTER TO "PROGRAMMER" SYMBOL
	005306	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005310	000003 				 .WORD	LG.PRM		; ROUTINE TO CALL OR DATA
   7177					;
   7178	005312	000000 				.WORD	0		; END OF TABLE MARKER
   7179
   7180	005314				.KLMT1::
   7181	005314					COMND$	REMOTE,LG.ALL,1,REM
	001200	   122 	   105 	   115 	REMMSG:: .ASCIZ	%REMOTE%
	001203	   117 	   124 	   105
	001206	   000
	005314	001200'				 .WORD	REMMSG		; POINTER TO "REMOTE" SYMBOL
	005316	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005320	000001 				 .WORD	1		; ROUTINE TO CALL OR DATA
   7182					;
   7183	005322					COMND$	USER,LG.ALL,-1,USR
	001207	   125 	   123 	   105 	USRMSG:: .ASCIZ	%USER%
	001212	   122 	   000
	005322	001207'				 .WORD	USRMSG		; POINTER TO "USER" SYMBOL
	005324	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005326	177777 				 .WORD	-1		; ROUTINE TO CALL OR DATA
   7184					;
   7185	005330	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 180
.MONTB -- THE MONTH TABLE 7702.16

   7187					.SBTTL	.MONTB -- THE MONTH TABLE 7702.16
   7188
   7189
   7190	005332				.MONTB::
   7191	005332					COMND$	JANUARY,LG.ALL,1.,JAN
	001214	   112 	   101 	   116 	JANMSG:: .ASCIZ	%JANUARY%
	001217	   125 	   101 	   122
	001222	   131 	   000
	005332	001214'				 .WORD	JANMSG		; POINTER TO "JANUARY" SYMBOL
	005334	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005336	000001 				 .WORD	1.		; ROUTINE TO CALL OR DATA
   7192					;
   7193	005340					COMND$	FEBRUARY,LG.ALL,2.,FEB
	001224	   106 	   105 	   102 	FEBMSG:: .ASCIZ	%FEBRUARY%
	001227	   122 	   125 	   101
	001232	   122 	   131 	   000
	005340	001224'				 .WORD	FEBMSG		; POINTER TO "FEBRUARY" SYMBOL
	005342	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005344	000002 				 .WORD	2.		; ROUTINE TO CALL OR DATA
   7194					;
   7195	005346					COMND$	MARCH,LG.ALL,3.,MAR
	001235	   115 	   101 	   122 	MARMSG:: .ASCIZ	%MARCH%
	001240	   103 	   110 	   000
	005346	001235'				 .WORD	MARMSG		; POINTER TO "MARCH" SYMBOL
	005350	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005352	000003 				 .WORD	3.		; ROUTINE TO CALL OR DATA
   7196					;
   7197	005354					COMND$	APRIL,LG.ALL,4.,APR
	001243	   101 	   120 	   122 	APRMSG:: .ASCIZ	%APRIL%
	001246	   111 	   114 	   000
	005354	001243'				 .WORD	APRMSG		; POINTER TO "APRIL" SYMBOL
	005356	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005360	000004 				 .WORD	4.		; ROUTINE TO CALL OR DATA
   7198					;
   7199	005362					COMND$	MAY,LG.ALL,5.,MAY
	001251	   115 	   101 	   131 	MAYMSG:: .ASCIZ	%MAY%
	001254	   000
	005362	001251'				 .WORD	MAYMSG		; POINTER TO "MAY" SYMBOL
	005364	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005366	000005 				 .WORD	5.		; ROUTINE TO CALL OR DATA
   7200					;
   7201	005370					COMND$	JUNE,LG.ALL,6.,JUN
	001255	   112 	   125 	   116 	JUNMSG:: .ASCIZ	%JUNE%
	001260	   105 	   000
	005370	001255'				 .WORD	JUNMSG		; POINTER TO "JUNE" SYMBOL
	005372	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005374	000006 				 .WORD	6.		; ROUTINE TO CALL OR DATA
   7202					;
   7203	005376					COMND$	JULY,LG.ALL,7.,JUL
	001262	   112 	   125 	   114 	JULMSG:: .ASCIZ	%JULY%
	001265	   131 	   000
	005376	001262'				 .WORD	JULMSG		; POINTER TO "JULY" SYMBOL
	005400	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005402	000007 				 .WORD	7.		; ROUTINE TO CALL OR DATA
   7204					;
   7205	005404					COMND$	AUGUST,LG.ALL,8.,AUG
	001267	   101 	   125 	   107 	AUGMSG:: .ASCIZ	%AUGUST%
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 180-1
.MONTB -- THE MONTH TABLE 7702.16

	001272	   125 	   123 	   124
	001275	   000
	005404	001267'				 .WORD	AUGMSG		; POINTER TO "AUGUST" SYMBOL
	005406	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005410	000010 				 .WORD	8.		; ROUTINE TO CALL OR DATA
   7206					;
   7207	005412					COMND$	SEPTEMBER,LG.ALL,9.,SEP
	001276	   123 	   105 	   120 	SEPMSG:: .ASCIZ	%SEPTEMBER%
	001301	   124 	   105 	   115
	001304	   102 	   105 	   122
	001307	   000
	005412	001276'				 .WORD	SEPMSG		; POINTER TO "SEPTEMBER" SYMBOL
	005414	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005416	000011 				 .WORD	9.		; ROUTINE TO CALL OR DATA
   7208					;
   7209	005420					COMND$	OCTOBER,LG.ALL,10.,OCT
	001310	   117 	   103 	   124 	OCTMSG:: .ASCIZ	%OCTOBER%
	001313	   117 	   102 	   105
	001316	   122 	   000
	005420	001310'				 .WORD	OCTMSG		; POINTER TO "OCTOBER" SYMBOL
	005422	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005424	000012 				 .WORD	10.		; ROUTINE TO CALL OR DATA
   7210					;
   7211	005426					COMND$	NOVEMBER,LG.ALL,11.,NOV
	001320	   116 	   117 	   126 	NOVMSG:: .ASCIZ	%NOVEMBER%
	001323	   105 	   115 	   102
	001326	   105 	   122 	   000
	005426	001320'				 .WORD	NOVMSG		; POINTER TO "NOVEMBER" SYMBOL
	005430	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005432	000013 				 .WORD	11.		; ROUTINE TO CALL OR DATA
   7212					;
   7213	005434					COMND$	DECEMBER,LG.ALL,12.,DEC
	001331	   104 	   105 	   103 	DECMSG:: .ASCIZ	%DECEMBER%
	001334	   105 	   115 	   102
	001337	   105 	   122 	   000
	005434	001331'				 .WORD	DECMSG		; POINTER TO "DECEMBER" SYMBOL
	005436	000007 				 .WORD	LG.ALL		; LEGAL BITS
	005440	000014 				 .WORD	12.		; ROUTINE TO CALL OR DATA
   7214					;
   7215	005442	000000 				.WORD	0		; END OF TABLE MARKER
   7216
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

   7218					.SBTTL	.NSETB -- NORMAL ERROR CODE TABLE 7710.11
   7219
   7220	005444				.NSETB::
   7221	005444					NSERR$	APE,<KL APR ERROR>
	000000	   101 	   120 	   105 	APEERM:	 .ASCIZ	%APE - KL APR ERROR%
	000003	   040 	   055 	   040
	000006	   113 	   114 	   040
	000011	   101 	   120 	   122
	000014	   040 	   105 	   122
	000017	   122 	   117 	   122
	000022	   000
	005444	004305 				 .RAD50	/APE/		; "APE" IN .RAD50
	005446	000000'				 .WORD	APEERM		; POINTER TO MESSAGE
   7222						;
   7223	005450					NSERR$	BAE,<BURST ARGUMENT ERROR>
	000023	   102 	   101 	   105 	BAEERM:	 .ASCIZ	%BAE - BURST ARGUMENT ERROR%
	000026	   040 	   055 	   040
	000031	   102 	   125 	   122
	000034	   123 	   124 	   040
	000037	   101 	   122 	   107
	000042	   125 	   115 	   105
	000045	   116 	   124 	   040
	000050	   105 	   122 	   122
	000053	   117 	   122 	   000
	005450	006255 				 .RAD50	/BAE/		; "BAE" IN .RAD50
	005452	000023'				 .WORD	BAEERM		; POINTER TO MESSAGE
   7224						;
   7225	005454					NSERR$	CAE,<KL CRAM ADDRESS ERROR>
	000056	   103 	   101 	   105 	CAEERM:	 .ASCIZ	%CAE - KL CRAM ADDRESS ERROR%
	000061	   040 	   055 	   040
	000064	   113 	   114 	   040
	000067	   103 	   122 	   101
	000072	   115 	   040 	   101
	000075	   104 	   104 	   122
	000100	   105 	   123 	   123
	000103	   040 	   105 	   122
	000106	   122 	   117 	   122
	000111	   000
	005454	011355 				 .RAD50	/CAE/		; "CAE" IN .RAD50
	005456	000056'				 .WORD	CAEERM		; POINTER TO MESSAGE
   7226	005460					NSERR$	CAL,<CAN'T ASSIGN LUN>
	000112	   103 	   101 	   114 	CALERM:	 .ASCIZ	%CAL - CAN'T ASSIGN LUN%
	000115	   040 	   055 	   040
	000120	   103 	   101 	   116
	000123	   047 	   124 	   040
	000126	   101 	   123 	   123
	000131	   111 	   107 	   116
	000134	   040 	   114 	   125
	000137	   116 	   000
	005460	011364 				 .RAD50	/CAL/		; "CAL" IN .RAD50
	005462	000112'				 .WORD	CALERM		; POINTER TO MESSAGE
   7227	005464					NSERR$	CAP,<CAN'T ATTACH LINEPRINTER>
	000141	   103 	   101 	   120 	CAPERM:	 .ASCIZ	%CAP - CAN'T ATTACH LINEPRINTER%
	000144	   040 	   055 	   040
	000147	   103 	   101 	   116
	000152	   047 	   124 	   040
	000155	   101 	   124 	   124
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-1
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	000160	   101 	   103 	   110
	000163	   040 	   114 	   111
	000166	   116 	   105 	   120
	000171	   122 	   111 	   116
	000174	   124 	   105 	   122
	000177	   000
	005464	011370 				 .RAD50	/CAP/		; "CAP" IN .RAD50
	005466	000141'				 .WORD	CAPERM		; POINTER TO MESSAGE
   7228	005470					NSERR$	CBO,<COMMAND BUFFER OVERFLOW>
	000200	   103 	   102 	   117 	CBOERM:	 .ASCIZ	%CBO - COMMAND BUFFER OVERFLOW%
	000203	   040 	   055 	   040
	000206	   103 	   117 	   115
	000211	   115 	   101 	   116
	000214	   104 	   040 	   102
	000217	   125 	   106 	   106
	000222	   105 	   122 	   040
	000225	   117 	   126 	   105
	000230	   122 	   106 	   114
	000233	   117 	   127 	   000
	005470	011437 				 .RAD50	/CBO/		; "CBO" IN .RAD50
	005472	000200'				 .WORD	CBOERM		; POINTER TO MESSAGE
   7229	005474					NSERR$	CDI,<SET/CLEAR DATE ILLEGAL IN PRIMARY PROTOCOL>
	000236	   103 	   104 	   111 	CDIERM:	 .ASCIZ	%CDI - SET/CLEAR DATE ILLEGAL IN PRIMARY PROTOCOL%
	000241	   040 	   055 	   040
	000244	   123 	   105 	   124
	000247	   057 	   103 	   114
	000252	   105 	   101 	   122
	000255	   040 	   104 	   101
	000260	   124 	   105 	   040
	000263	   111 	   114 	   114
	000266	   105 	   107 	   101
	000271	   114 	   040 	   111
	000274	   116 	   040 	   120
	000277	   122 	   111 	   115
	000302	   101 	   122 	   131
	000305	   040 	   120 	   122
	000310	   117 	   124 	   117
	000313	   103 	   117 	   114
	000316	   000
	005474	011551 				 .RAD50	/CDI/		; "CDI" IN .RAD50
	005476	000236'				 .WORD	CDIERM		; POINTER TO MESSAGE
   7230	005500					NSERR$	CFH,<CAN'T FIND KL HALT LOOP>
	000317	   103 	   106 	   110 	CFHERM:	 .ASCIZ	%CFH - CAN'T FIND KL HALT LOOP%
	000322	   040 	   055 	   040
	000325	   103 	   101 	   116
	000330	   047 	   124 	   040
	000333	   106 	   111 	   116
	000336	   104 	   040 	   113
	000341	   114 	   040 	   110
	000344	   101 	   114 	   124
	000347	   040 	   114 	   117
	000352	   117 	   120 	   000
	005500	011670 				 .RAD50	/CFH/		; "CFH" IN .RAD50
	005502	000317'				 .WORD	CFHERM		; POINTER TO MESSAGE
   7231	005504					NSERR$	CLE,<CONSOLE LIMIT EXCEEDED>
	000355	   103 	   114 	   105 	CLEERM:	 .ASCIZ	%CLE - CONSOLE LIMIT EXCEEDED%
	000360	   040 	   055 	   040
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-2
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	000363	   103 	   117 	   116
	000366	   123 	   117 	   114
	000371	   105 	   040 	   114
	000374	   111 	   115 	   111
	000377	   124 	   040 	   105
	000402	   130 	   103 	   105
	000405	   105 	   104 	   105
	000410	   104 	   000
	005504	012245 				 .RAD50	/CLE/		; "CLE" IN .RAD50
	005506	000355'				 .WORD	CLEERM		; POINTER TO MESSAGE
   7232	005510					NSERR$	CNR,<COMMAND IS NOT REPEATABLE>
	000412	   103 	   116 	   122 	CNRERM:	 .ASCIZ	%CNR - COMMAND IS NOT REPEATABLE%
	000415	   040 	   055 	   040
	000420	   103 	   117 	   115
	000423	   115 	   101 	   116
	000426	   104 	   040 	   111
	000431	   123 	   040 	   116
	000434	   117 	   124 	   040
	000437	   122 	   105 	   120
	000442	   105 	   101 	   124
	000445	   101 	   102 	   114
	000450	   105 	   000
	005510	012402 				 .RAD50	/CNR/		; "CNR" IN .RAD50
	005512	000412'				 .WORD	CNRERM		; POINTER TO MESSAGE
   7233	005514					NSERR$	CPE,<CAN'T PHASE EBOX>
	000452	   103 	   120 	   105 	CPEERM:	 .ASCIZ	%CPE - CAN'T PHASE EBOX%
	000455	   040 	   055 	   040
	000460	   103 	   101 	   116
	000463	   047 	   124 	   040
	000466	   120 	   110 	   101
	000471	   123 	   105 	   040
	000474	   105 	   102 	   117
	000477	   130 	   000
	005514	012505 				 .RAD50	/CPE/		; "CPE" IN .RAD50
	005516	000452'				 .WORD	CPEERM		; POINTER TO MESSAGE
   7234	005520					NSERR$	CRH,<CAN'T READ HARDWARE OPTIONS>
	000501	   103 	   122 	   110 	CRHERM:	 .ASCIZ	%CRH - CAN'T READ HARDWARE OPTIONS%
	000504	   040 	   055 	   040
	000507	   103 	   101 	   116
	000512	   047 	   124 	   040
	000515	   122 	   105 	   101
	000520	   104 	   040 	   110
	000523	   101 	   122 	   104
	000526	   127 	   101 	   122
	000531	   105 	   040 	   117
	000534	   120 	   124 	   111
	000537	   117 	   116 	   123
	000542	   000
	005520	012630 				 .RAD50	/CRH/		; "CRH" IN .RAD50
	005522	000501'				 .WORD	CRHERM		; POINTER TO MESSAGE
   7235						;
   7239	005524					NSERR$	DAV,<DATE ALREADY VALID>
	000543	   104 	   101 	   126 	DAVERM:	 .ASCIZ	%DAV - DATE ALREADY VALID%
	000546	   040 	   055 	   040
	000551	   104 	   101 	   124
	000554	   105 	   040 	   101
	000557	   114 	   122 	   105
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-3
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	000562	   101 	   104 	   131
	000565	   040 	   126 	   101
	000570	   114 	   111 	   104
	000573	   000
	005524	014476 				 .RAD50	/DAV/		; "DAV" IN .RAD50
	005526	000543'				 .WORD	DAVERM		; POINTER TO MESSAGE
   7240	005530					NSERR$	DBT,<DATE BEFORE TODAY>
	000574	   104 	   102 	   124 	DBTERM:	 .ASCIZ	%DBT - DATE BEFORE TODAY%
	000577	   040 	   055 	   040
	000602	   104 	   101 	   124
	000605	   105 	   040 	   102
	000610	   105 	   106 	   117
	000613	   122 	   105 	   040
	000616	   124 	   117 	   104
	000621	   101 	   131 	   000
	005530	014544 				 .RAD50	/DBT/		; "DBT" IN .RAD50
	005532	000574'				 .WORD	DBTERM		; POINTER TO MESSAGE
   7241	005534					NSERR$	DCK,<DIVIDE CHECK>
	000624	   104 	   103 	   113 	DCKERM:	 .ASCIZ	%DCK - DIVIDE CHECK%
	000627	   040 	   055 	   040
	000632	   104 	   111 	   126
	000635	   111 	   104 	   105
	000640	   040 	   103 	   110
	000643	   105 	   103 	   113
	000646	   000
	005534	014603 				 .RAD50	/DCK/		; "DCK" IN .RAD50
	005536	000624'				 .WORD	DCKERM		; POINTER TO MESSAGE
   7242	005540					NSERR$	DMF,<DEPOSIT KL MEMORY FAILED>
	000647	   104 	   115 	   106 	DMFERM:	 .ASCIZ	%DMF - DEPOSIT KL MEMORY FAILED%
	000652	   040 	   055 	   040
	000655	   104 	   105 	   120
	000660	   117 	   123 	   111
	000663	   124 	   040 	   113
	000666	   114 	   040 	   115
	000671	   105 	   115 	   117
	000674	   122 	   131 	   040
	000677	   106 	   101 	   111
	000702	   114 	   105 	   104
	000705	   000
	005540	015416 				 .RAD50	/DMF/		; "DMF" IN .RAD50
	005542	000647'				 .WORD	DMFERM		; POINTER TO MESSAGE
   7243	005544					NSERR$	DOR,<DATE OUT OF RANGE>
	000706	   104 	   117 	   122 	DORERM:	 .ASCIZ	%DOR - DATE OUT OF RANGE%
	000711	   040 	   055 	   040
	000714	   104 	   101 	   124
	000717	   105 	   040 	   117
	000722	   125 	   124 	   040
	000725	   117 	   106 	   040
	000730	   122 	   101 	   116
	000733	   107 	   105 	   000
	005544	015552 				 .RAD50	/DOR/		; "DOR" IN .RAD50
	005546	000706'				 .WORD	DORERM		; POINTER TO MESSAGE
   7244	005550					NSERR$	DNF,<DIRECTORY FILE NOT FOUND>
	000736	   104 	   116 	   106 	DNFERM:	 .ASCIZ	%DNF - DIRECTORY FILE NOT FOUND%
	000741	   040 	   055 	   040
	000744	   104 	   111 	   122
	000747	   105 	   103 	   124
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-4
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	000752	   117 	   122 	   131
	000755	   040 	   106 	   111
	000760	   114 	   105 	   040
	000763	   116 	   117 	   124
	000766	   040 	   106 	   117
	000771	   125 	   116 	   104
	000774	   000
	005550	015466 				 .RAD50	/DNF/		; "DNF" IN .RAD50
	005552	000736'				 .WORD	DNFERM		; POINTER TO MESSAGE
   7245	005554					NSERR$	DNP,<DTE-20 IS NOT PRIVILEGED>
	000775	   104 	   116 	   120 	DNPERM:	 .ASCIZ	%DNP - DTE-20 IS NOT PRIVILEGED%
	001000	   040 	   055 	   040
	001003	   104 	   124 	   105
	001006	   055 	   062 	   060
	001011	   040 	   111 	   123
	001014	   040 	   116 	   117
	001017	   124 	   040 	   120
	001022	   122 	   111 	   126
	001025	   111 	   114 	   105
	001030	   107 	   105 	   104
	001033	   000
	005554	015500 				 .RAD50	/DNP/		; "DNP" IN .RAD50
	005556	000775'				 .WORD	DNPERM		; POINTER TO MESSAGE
   7246	005560					NSERR$	DSF,<DTE-20 STATUS FAILED>
	001034	   104 	   123 	   106 	DSFERM:	 .ASCIZ	%DSF - DTE-20 STATUS FAILED%
	001037	   040 	   055 	   040
	001042	   104 	   124 	   105
	001045	   055 	   062 	   060
	001050	   040 	   123 	   124
	001053	   101 	   124 	   125
	001056	   123 	   040 	   106
	001061	   101 	   111 	   114
	001064	   105 	   104 	   000
	005560	015776 				 .RAD50	/DSF/		; "DSF" IN .RAD50
	005562	001034'				 .WORD	DSFERM		; POINTER TO MESSAGE
   7247	005564					NSERR$	DTC,<DTE-20 CONFUSED - RUN AND HALT LOOP>
	001067	   104 	   124 	   103 	DTCERM:	 .ASCIZ	%DTC - DTE-20 CONFUSED - RUN AND HALT LOOP%
	001072	   040 	   055 	   040
	001075	   104 	   124 	   105
	001100	   055 	   062 	   060
	001103	   040 	   103 	   117
	001106	   116 	   106 	   125
	001111	   123 	   105 	   104
	001114	   040 	   055 	   040
	001117	   122 	   125 	   116
	001122	   040 	   101 	   116
	001125	   104 	   040 	   110
	001130	   101 	   114 	   124
	001133	   040 	   114 	   117
	001136	   117 	   120 	   000
	005564	016043 				 .RAD50	/DTC/		; "DTC" IN .RAD50
	005566	001067'				 .WORD	DTCERM		; POINTER TO MESSAGE
   7248						;
   7249	005570					NSERR$	ECT,<EBOX CLOCK TIMEOUT>
	001141	   105 	   103 	   124 	ECTERM:	 .ASCIZ	%ECT - EBOX CLOCK TIMEOUT%
	001144	   040 	   055 	   040
	001147	   105 	   102 	   117
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-5
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	001152	   130 	   040 	   103
	001155	   114 	   117 	   103
	001160	   113 	   040 	   124
	001163	   111 	   115 	   105
	001166	   117 	   125 	   124
	001171	   000
	005570	017714 				 .RAD50	/ECT/		; "ECT" IN .RAD50
	005572	001141'				 .WORD	ECTERM		; POINTER TO MESSAGE
   7250	005574					NSERR$	EMF,<EXAMINE KL MEMORY FAILED>
	001172	   105 	   115 	   106 	EMFERM:	 .ASCIZ	%EMF - EXAMINE KL MEMORY FAILED%
	001175	   040 	   055 	   040
	001200	   105 	   130 	   101
	001203	   115 	   111 	   116
	001206	   105 	   040 	   113
	001211	   114 	   040 	   115
	001214	   105 	   115 	   117
	001217	   122 	   131 	   040
	001222	   106 	   101 	   111
	001225	   114 	   105 	   104
	001230	   000
	005574	020516 				 .RAD50	/EMF/		; "EMF" IN .RAD50
	005576	001172'				 .WORD	EMFERM		; POINTER TO MESSAGE
   7251	005600					NSERR$	EOC,<END OF COMMAND REQUIRED>
	001231	   105 	   117 	   103 	EOCERM:	 .ASCIZ	%EOC - END OF COMMAND REQUIRED%
	001234	   040 	   055 	   040
	001237	   105 	   116 	   104
	001242	   040 	   117 	   106
	001245	   040 	   103 	   117
	001250	   115 	   115 	   101
	001253	   116 	   104 	   040
	001256	   122 	   105 	   121
	001261	   125 	   111 	   122
	001264	   105 	   104 	   000
	005600	020633 				 .RAD50	/EOC/		; "EOC" IN .RAD50
	005602	001231'				 .WORD	EOCERM		; POINTER TO MESSAGE
   7252	005604					NSERR$	EPE,<EBUS PARITY ERROR>
	001267	   105 	   120 	   105 	EPEERM:	 .ASCIZ	%EPE - EBUS PARITY ERROR%
	001272	   040 	   055 	   040
	001275	   105 	   102 	   125
	001300	   123 	   040 	   120
	001303	   101 	   122 	   111
	001306	   124 	   131 	   040
	001311	   105 	   122 	   122
	001314	   117 	   122 	   000
	005604	020705 				 .RAD50	/EPE/		; "EPE" IN .RAD50
	005606	001267'				 .WORD	EPEERM		; POINTER TO MESSAGE
   7253	005610					NSERR$	ESD,<EBOX STOPPED - DEPOSIT>
	001317	   105 	   123 	   104 	ESDERM:	 .ASCIZ	%ESD - EBOX STOPPED - DEPOSIT%
	001322	   040 	   055 	   040
	001325	   105 	   102 	   117
	001330	   130 	   040 	   123
	001333	   124 	   117 	   120
	001336	   120 	   105 	   104
	001341	   040 	   055 	   040
	001344	   104 	   105 	   120
	001347	   117 	   123 	   111
	001352	   124 	   000
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-6
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	005610	021074 				 .RAD50	/ESD/		; "ESD" IN .RAD50
	005612	001317'				 .WORD	ESDERM		; POINTER TO MESSAGE
   7254	005614					NSERR$	ESE,<EBOX STOPPED - EXAMINE>
	001354	   105 	   123 	   105 	ESEERM:	 .ASCIZ	%ESE - EBOX STOPPED - EXAMINE%
	001357	   040 	   055 	   040
	001362	   105 	   102 	   117
	001365	   130 	   040 	   123
	001370	   124 	   117 	   120
	001373	   120 	   105 	   104
	001376	   040 	   055 	   040
	001401	   105 	   130 	   101
	001404	   115 	   111 	   116
	001407	   105 	   000
	005614	021075 				 .RAD50	/ESE/		; "ESE" IN .RAD50
	005616	001354'				 .WORD	ESEERM		; POINTER TO MESSAGE
   7255						;
   7256	005620					NSERR$	FCF,<FILE CLOSE FAILURE>
	001411	   106 	   103 	   106 	FCFERM:	 .ASCIZ	%FCF - FILE CLOSE FAILURE%
	001414	   040 	   055 	   040
	001417	   106 	   111 	   114
	001422	   105 	   040 	   103
	001425	   114 	   117 	   123
	001430	   105 	   040 	   106
	001433	   101 	   111 	   114
	001436	   125 	   122 	   105
	001441	   000
	005620	022776 				 .RAD50	/FCF/		; "FCF" IN .RAD50
	005622	001411'				 .WORD	FCFERM		; POINTER TO MESSAGE
   7257	005624					NSERR$	FEF,<FILE EXTEND FAILURE>
	001442	   106 	   105 	   106 	FEFERM:	 .ASCIZ	%FEF - FILE EXTEND FAILURE%
	001445	   040 	   055 	   040
	001450	   106 	   111 	   114
	001453	   105 	   040 	   105
	001456	   130 	   124 	   105
	001461	   116 	   104 	   040
	001464	   106 	   101 	   111
	001467	   114 	   125 	   122
	001472	   105 	   000
	005624	023116 				 .RAD50	/FEF/		; "FEF" IN .RAD50
	005626	001442'				 .WORD	FEFERM		; POINTER TO MESSAGE
   7258	005630					NSERR$	FEN,<FILE ENTER FAILURE>
	001474	   106 	   105 	   116 	FENERM:	 .ASCIZ	%FEN - FILE ENTER FAILURE%
	001477	   040 	   055 	   040
	001502	   106 	   111 	   114
	001505	   105 	   040 	   105
	001510	   116 	   124 	   105
	001513	   122 	   040 	   106
	001516	   101 	   111 	   114
	001521	   125 	   122 	   105
	001524	   000
	005630	023126 				 .RAD50	/FEN/		; "FEN" IN .RAD50
	005632	001474'				 .WORD	FENERM		; POINTER TO MESSAGE
   7259	005634					NSERR$	FLF,<FILE LOOKUP FAILURE>
	001525	   106 	   114 	   106 	FLFERM:	 .ASCIZ	%FLF - FILE LOOKUP FAILURE%
	001530	   040 	   055 	   040
	001533	   106 	   111 	   114
	001536	   105 	   040 	   114
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-7
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	001541	   117 	   117 	   113
	001544	   125 	   120 	   040
	001547	   106 	   101 	   111
	001552	   114 	   125 	   122
	001555	   105 	   000
	005634	023546 				 .RAD50	/FLF/		; "FLF" IN .RAD50
	005636	001525'				 .WORD	FLFERM		; POINTER TO MESSAGE
   7260	005640					NSERR$	FOF,<FILE OPEN FAILURE>
	001557	   106 	   117 	   106 	FOFERM:	 .ASCIZ	%FOF - FILE OPEN FAILURE%
	001562	   040 	   055 	   040
	001565	   106 	   111 	   114
	001570	   105 	   040 	   117
	001573	   120 	   105 	   116
	001576	   040 	   106 	   101
	001601	   111 	   114 	   125
	001604	   122 	   105 	   000
	005640	023736 				 .RAD50	/FOF/		; "FOF" IN .RAD50
	005642	001557'				 .WORD	FOFERM		; POINTER TO MESSAGE
   7261	005644					NSERR$	FRD,<FILE READ FAILURE>
	001607	   106 	   122 	   104 	FRDERM:	 .ASCIZ	%FRD - FILE READ FAILURE%
	001612	   040 	   055 	   040
	001615	   106 	   111 	   114
	001620	   105 	   040 	   122
	001623	   105 	   101 	   104
	001626	   040 	   106 	   101
	001631	   111 	   114 	   125
	001634	   122 	   105 	   000
	005644	024124 				 .RAD50	/FRD/		; "FRD" IN .RAD50
	005646	001607'				 .WORD	FRDERM		; POINTER TO MESSAGE
   7262	005650					NSERR$	FSW,<FM SWEEP ERROR>
	001637	   106 	   123 	   127 	FSWERM:	 .ASCIZ	%FSW - FM SWEEP ERROR%
	001642	   040 	   055 	   040
	001645	   106 	   115 	   040
	001650	   123 	   127 	   105
	001653	   105 	   120 	   040
	001656	   105 	   122 	   122
	001661	   117 	   122 	   000
	005650	024217 				 .RAD50	/FSW/		; "FSW" IN .RAD50
	005652	001637'				 .WORD	FSWERM		; POINTER TO MESSAGE
   7263	005654					NSERR$	FWT,<FILE WRITE FAILURE>
	001664	   106 	   127 	   124 	FWTERM:	 .ASCIZ	%FWT - FILE WRITE FAILURE%
	001667	   040 	   055 	   040
	001672	   106 	   111 	   114
	001675	   105 	   040 	   127
	001700	   122 	   111 	   124
	001703	   105 	   040 	   106
	001706	   101 	   111 	   114
	001711	   125 	   122 	   105
	001714	   000
	005654	024454 				 .RAD50	/FWT/		; "FWT" IN .RAD50
	005656	001664'				 .WORD	FWTERM		; POINTER TO MESSAGE
   7264						;
   7265	005660					NSERR$	IDF,<ILLEGAL DATE FORMAT>
	001715	   111 	   104 	   106 	IDFERM:	 .ASCIZ	%IDF - ILLEGAL DATE FORMAT%
	001720	   040 	   055 	   040
	001723	   111 	   114 	   114
	001726	   105 	   107 	   101
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-8
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	001731	   114 	   040 	   104
	001734	   101 	   124 	   105
	001737	   040 	   106 	   117
	001742	   122 	   115 	   101
	001745	   124 	   000
	005660	034346 				 .RAD50	/IDF/		; "IDF" IN .RAD50
	005662	001715'				 .WORD	IDFERM		; POINTER TO MESSAGE
   7266	005664					NSERR$	IFC,<ILLEGAL FUNCTION CODE>
	001747	   111 	   106 	   103 	IFCERM:	 .ASCIZ	%IFC - ILLEGAL FUNCTION CODE%
	001752	   040 	   055 	   040
	001755	   111 	   114 	   114
	001760	   105 	   107 	   101
	001763	   114 	   040 	   106
	001766	   125 	   116 	   103
	001771	   124 	   111 	   117
	001774	   116 	   040 	   103
	001777	   117 	   104 	   105
	002002	   000
	005664	034463 				 .RAD50	/IFC/		; "IFC" IN .RAD50
	005666	001747'				 .WORD	IFCERM		; POINTER TO MESSAGE
   7267	005670					NSERR$	ILI,<ILLEGAL INSTRUCTION>
	002003	   111 	   114 	   111 	ILIERM:	 .ASCIZ	%ILI - ILLEGAL INSTRUCTION%
	002006	   040 	   055 	   040
	002011	   111 	   114 	   114
	002014	   105 	   107 	   101
	002017	   114 	   040 	   111
	002022	   116 	   123 	   124
	002025	   122 	   125 	   103
	002030	   124 	   111 	   117
	002033	   116 	   000
	005670	035051 				 .RAD50	/ILI/		; "ILI" IN .RAD50
	005672	002003'				 .WORD	ILIERM		; POINTER TO MESSAGE
   7268	005674					NSERR$	IOC,<ILLEGAL KL OPCODE>
	002035	   111 	   117 	   103 	IOCERM:	 .ASCIZ	%IOC - ILLEGAL KL OPCODE%
	002040	   040 	   055 	   040
	002043	   111 	   114 	   114
	002046	   105 	   107 	   101
	002051	   114 	   040 	   113
	002054	   114 	   040 	   117
	002057	   120 	   103 	   117
	002062	   104 	   105 	   000
	005674	035233 				 .RAD50	/IOC/		; "IOC" IN .RAD50
	005676	002035'				 .WORD	IOCERM		; POINTER TO MESSAGE
   7269	005700					NSERR$	IRC,<ILLEGAL REPEAT COUNT>
	002065	   111 	   122 	   103 	IRCERM:	 .ASCIZ	%IRC - ILLEGAL REPEAT COUNT%
	002070	   040 	   055 	   040
	002073	   111 	   114 	   114
	002076	   105 	   107 	   101
	002101	   114 	   040 	   122
	002104	   105 	   120 	   105
	002107	   101 	   124 	   040
	002112	   103 	   117 	   125
	002115	   116 	   124 	   000
	005700	035423 				 .RAD50	/IRC/		; "IRC" IN .RAD50
	005702	002065'				 .WORD	IRCERM		; POINTER TO MESSAGE
   7270	005704					NSERR$	IRE,<ILLEGAL RECURSION>
	002120	   111 	   122 	   105 	IREERM:	 .ASCIZ	%IRE - ILLEGAL RECURSION%
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-9
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	002123	   040 	   055 	   040
	002126	   111 	   114 	   114
	002131	   105 	   107 	   101
	002134	   114 	   040 	   122
	002137	   105 	   103 	   125
	002142	   122 	   123 	   111
	002145	   117 	   116 	   000
	005704	035425 				 .RAD50	/IRE/		; "IRE" IN .RAD50
	005706	002120'				 .WORD	IREERM		; POINTER TO MESSAGE
   7271	005710					NSERR$	ITF,<ILLEGAL TIME FORMAT>
	002150	   111 	   124 	   106 	ITFERM:	 .ASCIZ	%ITF - ILLEGAL TIME FORMAT%
	002153	   040 	   055 	   040
	002156	   111 	   114 	   114
	002161	   105 	   107 	   101
	002164	   114 	   040 	   124
	002167	   111 	   115 	   105
	002172	   040 	   106 	   117
	002175	   122 	   115 	   101
	002200	   124 	   000
	005710	035546 				 .RAD50	/ITF/		; "ITF" IN .RAD50
	005712	002150'				 .WORD	ITFERM		; POINTER TO MESSAGE
   7272	005714					NSERR$	ITN,<ILLEGAL TASK NAME>
	002202	   111 	   124 	   116 	ITNERM:	 .ASCIZ	%ITN - ILLEGAL TASK NAME%
	002205	   040 	   055 	   040
	002210	   111 	   114 	   114
	002213	   105 	   107 	   101
	002216	   114 	   040 	   124
	002221	   101 	   123 	   113
	002224	   040 	   116 	   101
	002227	   115 	   105 	   000
	005714	035556 				 .RAD50	/ITN/		; "ITN" IN .RAD50
	005716	002202'				 .WORD	ITNERM		; POINTER TO MESSAGE
   7273						;
   7274	005720					NSERR$	KCN,<KL CLOCK IS OFF>
	002232	   113 	   103 	   116 	KCNERM:	 .ASCIZ	%KCN - KL CLOCK IS OFF%
	002235	   040 	   055 	   040
	002240	   113 	   114 	   040
	002243	   103 	   114 	   117
	002246	   103 	   113 	   040
	002251	   111 	   123 	   040
	002254	   117 	   106 	   106
	002257	   000
	005720	042506 				 .RAD50	/KCN/		; "KCN" IN .RAD50
	005722	002232'				 .WORD	KCNERM		; POINTER TO MESSAGE
   7275	005724					NSERR$	KLA,<KL ADDRESS ERROR>
	002260	   113 	   114 	   101 	KLAERM:	 .ASCIZ	%KLA - KL ADDRESS ERROR%
	002263	   040 	   055 	   040
	002266	   113 	   114 	   040
	002271	   101 	   104 	   104
	002274	   122 	   105 	   123
	002277	   123 	   040 	   105
	002302	   122 	   122 	   117
	002305	   122 	   000
	005724	043241 				 .RAD50	/KLA/		; "KLA" IN .RAD50
	005726	002260'				 .WORD	KLAERM		; POINTER TO MESSAGE
   7276	005730					NSERR$	KLR,<ILLEGAL WHILE KL IS RUNNING>
	002307	   113 	   114 	   122 	KLRERM:	 .ASCIZ	%KLR - ILLEGAL WHILE KL IS RUNNING%
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-10
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	002312	   040 	   055 	   040
	002315	   111 	   114 	   114
	002320	   105 	   107 	   101
	002323	   114 	   040 	   127
	002326	   110 	   111 	   114
	002331	   105 	   040 	   113
	002334	   114 	   040 	   111
	002337	   123 	   040 	   122
	002342	   125 	   116 	   116
	002345	   111 	   116 	   107
	002350	   000
	005730	043262 				 .RAD50	/KLR/		; "KLR" IN .RAD50
	005732	002307'				 .WORD	KLRERM		; POINTER TO MESSAGE
   7277	005734					NSERR$	KNC,<KL IS NOT CONTINUABLE>
	002351	   113 	   116 	   103 	KNCERM:	 .ASCIZ	%KNC - KL IS NOT CONTINUABLE%
	002354	   040 	   055 	   040
	002357	   113 	   114 	   040
	002362	   111 	   123 	   040
	002365	   116 	   117 	   124
	002370	   040 	   103 	   117
	002373	   116 	   124 	   111
	002376	   116 	   125 	   101
	002401	   102 	   114 	   105
	002404	   000
	005734	043363 				 .RAD50	/KNC/		; "KNC" IN .RAD50
	005736	002351'				 .WORD	KNCERM		; POINTER TO MESSAGE
   7278	005740					NSERR$	KWE,<KLINIK WINDOW ERROR>
	002405	   113 	   127 	   105 	KWEERM:	 .ASCIZ	%KWE - KLINIK WINDOW ERROR%
	002410	   040 	   055 	   040
	002413	   113 	   114 	   111
	002416	   116 	   111 	   113
	002421	   040 	   127 	   111
	002424	   116 	   104 	   117
	002427	   127 	   040 	   105
	002432	   122 	   122 	   117
	002435	   122 	   000
	005740	044135 				 .RAD50	/KWE/		; "KWE" IN .RAD50
	005742	002405'				 .WORD	KWEERM		; POINTER TO MESSAGE
   7279						;
   7280	005744					NSERR$	MRA,<MISSING REQUIRED ARGUMENT>
	002437	   115 	   122 	   101 	MRAERM:	 .ASCIZ	%MRA - MISSING REQUIRED ARGUMENT%
	002442	   040 	   055 	   040
	002445	   115 	   111 	   123
	002450	   123 	   111 	   116
	002453	   107 	   040 	   122
	002456	   105 	   121 	   125
	002461	   111 	   122 	   105
	002464	   104 	   040 	   101
	002467	   122 	   107 	   125
	002472	   115 	   105 	   116
	002475	   124 	   000
	005744	052021 				 .RAD50	/MRA/		; "MRA" IN .RAD50
	005746	002437'				 .WORD	MRAERM		; POINTER TO MESSAGE
   7281	005750					NSERR$	MRH,<HARDWARE OPTIONS MUST BE READ>
	002477	   115 	   122 	   110 	MRHERM:	 .ASCIZ	%MRH - HARDWARE OPTIONS MUST BE READ%
	002502	   040 	   055 	   040
	002505	   110 	   101 	   122
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-11
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	002510	   104 	   127 	   101
	002513	   122 	   105 	   040
	002516	   117 	   120 	   124
	002521	   111 	   117 	   116
	002524	   123 	   040 	   115
	002527	   125 	   123 	   124
	002532	   040 	   102 	   105
	002535	   040 	   122 	   105
	002540	   101 	   104 	   000
	005750	052030 				 .RAD50	/MRH/		; "MRH" IN .RAD50
	005752	002477'				 .WORD	MRHERM		; POINTER TO MESSAGE
   7282						;
   7283	005754					NSERR$	NDI,<NULL DATE ILLEGAL>
	002543	   116 	   104 	   111 	NDIERM:	 .ASCIZ	%NDI - NULL DATE ILLEGAL%
	002546	   040 	   055 	   040
	002551	   116 	   125 	   114
	002554	   114 	   040 	   104
	002557	   101 	   124 	   105
	002562	   040 	   111 	   114
	002565	   114 	   105 	   107
	002570	   101 	   114 	   000
	005754	054051 				 .RAD50	/NDI/		; "NDI" IN .RAD50
	005756	002543'				 .WORD	NDIERM		; POINTER TO MESSAGE
   7284	005760					NSERR$	NER,<NUMERIC EXPRESSION REQUIRED>
	002573	   116 	   105 	   122 	NERERM:	 .ASCIZ	%NER - NUMERIC EXPRESSION REQUIRED%
	002576	   040 	   055 	   040
	002601	   116 	   125 	   115
	002604	   105 	   122 	   111
	002607	   103 	   040 	   105
	002612	   130 	   120 	   122
	002615	   105 	   123 	   123
	002620	   111 	   117 	   116
	002623	   040 	   122 	   105
	002626	   121 	   125 	   111
	002631	   122 	   105 	   104
	002634	   000
	005760	054132 				 .RAD50	/NER/		; "NER" IN .RAD50
	005762	002573'				 .WORD	NERERM		; POINTER TO MESSAGE
   7285	005764					NSERR$	NOR,<INPUT NUMBER OUT OF RANGE>
	002635	   116 	   117 	   122 	NORERM:	 .ASCIZ	%NOR - INPUT NUMBER OUT OF RANGE%
	002640	   040 	   055 	   040
	002643	   111 	   116 	   120
	002646	   125 	   124 	   040
	002651	   116 	   125 	   115
	002654	   102 	   105 	   122
	002657	   040 	   117 	   125
	002662	   124 	   040 	   117
	002665	   106 	   040 	   122
	002670	   101 	   116 	   107
	002673	   105 	   000
	005764	054752 				 .RAD50	/NOR/		; "NOR" IN .RAD50
	005766	002635'				 .WORD	NORERM		; POINTER TO MESSAGE
   7286	005770					NSERR$	NPI,<NULL PASSWORD ILLEGAL>
	002675	   116 	   120 	   111 	NPIERM:	 .ASCIZ	%NPI - NULL PASSWORD ILLEGAL%
	002700	   040 	   055 	   040
	002703	   116 	   125 	   114
	002706	   114 	   040 	   120
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-12
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	002711	   101 	   123 	   123
	002714	   127 	   117 	   122
	002717	   104 	   040 	   111
	002722	   114 	   114 	   105
	002725	   107 	   101 	   114
	002730	   000
	005770	055011 				 .RAD50	/NPI/		; "NPI" IN .RAD50
	005772	002675'				 .WORD	NPIERM		; POINTER TO MESSAGE
   7287	005774					NSERR$	NSF,<NO SUCH FILE>
	002731	   116 	   123 	   106 	NSFERM:	 .ASCIZ	%NSF - NO SUCH FILE%
	002734	   040 	   055 	   040
	002737	   116 	   117 	   040
	002742	   123 	   125 	   103
	002745	   110 	   040 	   106
	002750	   111 	   114 	   105
	002753	   000
	005774	055176 				 .RAD50	/NSF/		; "NSF" IN .RAD50
	005776	002731'				 .WORD	NSFERM		; POINTER TO MESSAGE
   7288	006000					NSERR$	NST,<NO SUCH TASK>
	002754	   116 	   123 	   124 	NSTERM:	 .ASCIZ	%NST - NO SUCH TASK%
	002757	   040 	   055 	   040
	002762	   116 	   117 	   040
	002765	   123 	   125 	   103
	002770	   110 	   040 	   124
	002773	   101 	   123 	   113
	002776	   000
	006000	055214 				 .RAD50	/NST/		; "NST" IN .RAD50
	006002	002754'				 .WORD	NSTERM		; POINTER TO MESSAGE
   7289	006004					NSERR$	NTI,<NULL TIME ILLEGAL>
	002777	   116 	   124 	   111 	NTIERM:	 .ASCIZ	%NTI - NULL TIME ILLEGAL%
	003002	   040 	   055 	   040
	003005	   116 	   125 	   114
	003010	   114 	   040 	   124
	003013	   111 	   115 	   105
	003016	   040 	   111 	   114
	003021	   114 	   105 	   107
	003024	   101 	   114 	   000
	006004	055251 				 .RAD50	/NTI/		; "NTI" IN .RAD50
	006006	002777'				 .WORD	NTIERM		; POINTER TO MESSAGE
   7290						;
   7291	006010					NSERR$	OAI,<ODD ADDRESS ILLEGAL>
	003027	   117 	   101 	   111 	OAIERM:	 .ASCIZ	%OAI - ODD ADDRESS ILLEGAL%
	003032	   040 	   055 	   040
	003035	   117 	   104 	   104
	003040	   040 	   101 	   104
	003043	   104 	   122 	   105
	003046	   123 	   123 	   040
	003051	   111 	   114 	   114
	003054	   105 	   107 	   101
	003057	   114 	   000
	006010	056761 				 .RAD50	/OAI/		; "OAI" IN .RAD50
	006012	003027'				 .WORD	OAIERM		; POINTER TO MESSAGE
   7292	006014					NSERR$	OFC,<ODD FUNCTION CODE>
	003061	   117 	   106 	   103 	OFCERM:	 .ASCIZ	%OFC - ODD FUNCTION CODE%
	003064	   040 	   055 	   040
	003067	   117 	   104 	   104
	003072	   040 	   106 	   125
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-13
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	003075	   116 	   103 	   124
	003100	   111 	   117 	   116
	003103	   040 	   103 	   117
	003106	   104 	   105 	   000
	006014	057263 				 .RAD50	/OFC/		; "OFC" IN .RAD50
	006016	003061'				 .WORD	OFCERM		; POINTER TO MESSAGE
   7293						;
   7294	006020					NSERR$	PTL,<PASSWORD TOO LONG>
	003111	   120 	   124 	   114 	PTLERM:	 .ASCIZ	%PTL - PASSWORD TOO LONG%
	003114	   040 	   055 	   040
	003117	   120 	   101 	   123
	003122	   123 	   127 	   117
	003125	   122 	   104 	   040
	003130	   124 	   117 	   117
	003133	   040 	   114 	   117
	003136	   116 	   107 	   000
	006020	063454 				 .RAD50	/PTL/		; "PTL" IN .RAD50
	006022	003111'				 .WORD	PTLERM		; POINTER TO MESSAGE
   7295						;
   7296	006024					NSERR$	RPM,<RIGHT PARENTHESES MISSING>
	003141	   122 	   120 	   115 	RPMERM:	 .ASCIZ	%RPM - RIGHT PARENTHESES MISSING%
	003144	   040 	   055 	   040
	003147	   122 	   111 	   107
	003152	   110 	   124 	   040
	003155	   120 	   101 	   122
	003160	   105 	   116 	   124
	003163	   110 	   105 	   123
	003166	   105 	   123 	   040
	003171	   115 	   111 	   123
	003174	   123 	   111 	   116
	003177	   107 	   000
	006024	071415 				 .RAD50	/RPM/		; "RPM" IN .RAD50
	006026	003141'				 .WORD	RPMERM		; POINTER TO MESSAGE
   7297						;
   7298	006030					NSERR$	SCF,<SET CLOCK FAILED>
	003201	   123 	   103 	   106 	SCFERM:	 .ASCIZ	%SCF - SET CLOCK FAILED%
	003204	   040 	   055 	   040
	003207	   123 	   105 	   124
	003212	   040 	   103 	   114
	003215	   117 	   103 	   113
	003220	   040 	   106 	   101
	003223	   111 	   114 	   105
	003226	   104 	   000
	006030	073476 				 .RAD50	/SCF/		; "SCF" IN .RAD50
	006032	003201'				 .WORD	SCFERM		; POINTER TO MESSAGE
   7299	006034					NSERR$	SKI,<SET KLINIK ILLEGAL WHILE KLINIK ACTIVE>
	003230	   123 	   113 	   111 	SKIERM:	 .ASCIZ	%SKI - SET KLINIK ILLEGAL WHILE KLINIK ACTIVE%
	003233	   040 	   055 	   040
	003236	   123 	   105 	   124
	003241	   040 	   113 	   114
	003244	   111 	   116 	   111
	003247	   113 	   040 	   111
	003252	   114 	   114 	   105
	003255	   107 	   101 	   114
	003260	   040 	   127 	   110
	003263	   111 	   114 	   105
	003266	   040 	   113 	   114
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-14
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	003271	   111 	   116 	   111
	003274	   113 	   040 	   101
	003277	   103 	   124 	   111
	003302	   126 	   105 	   000
	006034	074201 				 .RAD50	/SKI/		; "SKI" IN .RAD50
	006036	003230'				 .WORD	SKIERM		; POINTER TO MESSAGE
   7300	006040					NSERR$	SPF,<SET PARITY FAILED>
	003305	   123 	   120 	   106 	SPFERM:	 .ASCIZ	%SPF - SET PARITY FAILED%
	003310	   040 	   055 	   040
	003313	   123 	   105 	   124
	003316	   040 	   120 	   101
	003321	   122 	   111 	   124
	003324	   131 	   040 	   106
	003327	   101 	   111 	   114
	003332	   105 	   104 	   000
	006040	074506 				 .RAD50	/SPF/		; "SPF" IN .RAD50
	006042	003305'				 .WORD	SPFERM		; POINTER TO MESSAGE
   7301	006044					NSERR$	SZI,<START AT ZERO ILLEGAL>
	003335	   123 	   132 	   111 	SZIERM:	 .ASCIZ	%SZI - START AT ZERO ILLEGAL%
	003340	   040 	   055 	   040
	003343	   123 	   124 	   101
	003346	   122 	   124 	   040
	003351	   101 	   124 	   040
	003354	   132 	   105 	   122
	003357	   117 	   040 	   111
	003362	   114 	   114 	   105
	003365	   107 	   101 	   114
	003370	   000
	006044	075331 				 .RAD50	/SZI/		; "SZI" IN .RAD50
	006046	003335'				 .WORD	SZIERM		; POINTER TO MESSAGE
   7302						;
   7303	006050					NSERR$	TAA,<TASK IS ALREADY ACTIVE>
	003371	   124 	   101 	   101 	TAAERM:	 .ASCIZ	%TAA - TASK IS ALREADY ACTIVE%
	003374	   040 	   055 	   040
	003377	   124 	   101 	   123
	003402	   113 	   040 	   111
	003405	   123 	   040 	   101
	003410	   114 	   122 	   105
	003413	   101 	   104 	   131
	003416	   040 	   101 	   103
	003421	   124 	   111 	   126
	003424	   105 	   000
	006050	076451 				 .RAD50	/TAA/		; "TAA" IN .RAD50
	006052	003371'				 .WORD	TAAERM		; POINTER TO MESSAGE
   7304	006054					NSERR$	TOR,<TIME OUT OF RANGE>
	003426	   124 	   117 	   122 	TORERM:	 .ASCIZ	%TOR - TIME OUT OF RANGE%
	003431	   040 	   055 	   040
	003434	   124 	   111 	   115
	003437	   105 	   040 	   117
	003442	   125 	   124 	   040
	003445	   117 	   106 	   040
	003450	   122 	   101 	   116
	003453	   107 	   105 	   000
	006054	077552 				 .RAD50	/TOR/		; "TOR" IN .RAD50
	006056	003426'				 .WORD	TORERM		; POINTER TO MESSAGE
   7305						;
   7306	006060					NSERR$	UNL,<KL MICROCODE NOT LOADED>
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-15
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	003456	   125 	   116 	   114 	UNLERM:	 .ASCIZ	%UNL - KL MICROCODE NOT LOADED%
	003461	   040 	   055 	   040
	003464	   113 	   114 	   040
	003467	   115 	   111 	   103
	003472	   122 	   117 	   103
	003475	   117 	   104 	   105
	003500	   040 	   116 	   117
	003503	   124 	   040 	   114
	003506	   117 	   101 	   104
	003511	   105 	   104 	   000
	006060	102574 				 .RAD50	/UNL/		; "UNL" IN .RAD50
	006062	003456'				 .WORD	UNLERM		; POINTER TO MESSAGE
   7307						;
   7308	006064					NSERR$	VFY,<DEPOSIT VERIFY FAILED>
	003514	   126 	   106 	   131 	VFYERM:	 .ASCIZ	%VFY - DEPOSIT VERIFY FAILED%
	003517	   040 	   055 	   040
	003522	   104 	   105 	   120
	003525	   117 	   123 	   111
	003530	   124 	   040 	   126
	003533	   105 	   122 	   111
	003536	   106 	   131 	   040
	003541	   106 	   101 	   111
	003544	   114 	   105 	   104
	003547	   000
	006064	105211 				 .RAD50	/VFY/		; "VFY" IN .RAD50
	006066	003514'				 .WORD	VFYERM		; POINTER TO MESSAGE
   7309						;
   7310	006070					NSERR$	WRM,<COMMAND NOT AVAILABLE IN THIS CONSOLE MODE>
	003550	   127 	   122 	   115 	WRMERM:	 .ASCIZ	%WRM - COMMAND NOT AVAILABLE IN THIS CONSOLE MODE%
	003553	   040 	   055 	   040
	003556	   103 	   117 	   115
	003561	   115 	   101 	   116
	003564	   104 	   040 	   116
	003567	   117 	   124 	   040
	003572	   101 	   126 	   101
	003575	   111 	   114 	   101
	003600	   102 	   114 	   105
	003603	   040 	   111 	   116
	003606	   040 	   124 	   110
	003611	   111 	   123 	   040
	003614	   103 	   117 	   116
	003617	   123 	   117 	   114
	003622	   105 	   040 	   115
	003625	   117 	   104 	   105
	003630	   000
	006070	111235 				 .RAD50	/WRM/		; "WRM" IN .RAD50
	006072	003550'				 .WORD	WRMERM		; POINTER TO MESSAGE
   7311						;
   7312	006074					NSERR$	YOR,<YEAR OUT OF RANGE>
	003631	   131 	   117 	   122 	YORERM:	 .ASCIZ	%YOR - YEAR OUT OF RANGE%
	003634	   040 	   055 	   040
	003637	   131 	   105 	   101
	003642	   122 	   040 	   117
	003645	   125 	   124 	   040
	003650	   117 	   106 	   040
	003653	   122 	   101 	   116
	003656	   107 	   105 	   000
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 181-16
.NSETB -- NORMAL ERROR CODE TABLE 7710.11

	006074	117252 				 .RAD50	/YOR/		; "YOR" IN .RAD50
	006076	003631'				 .WORD	YORERM		; POINTER TO MESSAGE
   7313						;
   7314	006100					NSERR$	XTO,<KL EXECUTE TIMED OUT>
	003661	   130 	   124 	   117 	XTOERM:	 .ASCIZ	%XTO - KL EXECUTE TIMED OUT%
	003664	   040 	   055 	   040
	003667	   113 	   114 	   040
	003672	   105 	   130 	   105
	003675	   103 	   125 	   124
	003700	   105 	   040 	   124
	003703	   111 	   115 	   105
	003706	   104 	   040 	   117
	003711	   125 	   124 	   000
	006100	114457 				 .RAD50	/XTO/		; "XTO" IN .RAD50
	006102	003661'				 .WORD	XTOERM		; POINTER TO MESSAGE
   7315						;
   7316	006104	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 182
.RESTB -- THE RESET COMMAND TABLE 7602.18

   7318					.SBTTL	.RESTB -- THE RESET COMMAND TABLE 7602.18
   7319
   7320	006106				.RESTB::
   7321	006106					COMND$	ALL,<LG.PRG!LG.RPT>,.RSALL,ALL
	001342	   101 	   114 	   114 	ALLMSG:: .ASCIZ	%ALL%
	001345	   000
	006106	001342'				 .WORD	ALLMSG		; POINTER TO "ALL" SYMBOL
	006110	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006112	000000G				 .WORD	.RSALL		; ROUTINE TO CALL OR DATA
   7322					;
   7323	006114					COMND$	APR,<LG.PRG!LG.RPT>,.RSAPR,CPU
	001346	   101 	   120 	   122 	CPUMSG:: .ASCIZ	%APR%
	001351	   000
	006114	001346'				 .WORD	CPUMSG		; POINTER TO "APR" SYMBOL
	006116	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006120	000000G				 .WORD	.RSAPR		; ROUTINE TO CALL OR DATA
   7324					;
   7325	006122					COMND$	DTE-20,<LG.PRG!LG.RPT>,.RSDTE,DTE
	006122	001060'				 .WORD	DTEMSG		; POINTER TO "DTE-20" SYMBOL
	006124	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006126	000000G				 .WORD	.RSDTE		; ROUTINE TO CALL OR DATA
   7326					;
   7327	006130					COMND$	ERROR,<LG.RPT!LG.PRG>,.RSERR,ERR
	001352	   105 	   122 	   122 	ERRMSG:: .ASCIZ	%ERROR%
	001355	   117 	   122 	   000
	006130	001352'				 .WORD	ERRMSG		; POINTER TO "ERROR" SYMBOL
	006132	000402 				 .WORD	LG.RPT!LG.PRG		; LEGAL BITS
	006134	000000G				 .WORD	.RSERR		; ROUTINE TO CALL OR DATA
   7328					;
   7329	006136					COMND$	INITIALIZE,<LG.PRG!LG.RPT>,.RSTIN,INI
	006136	000474'				 .WORD	INIMSG		; POINTER TO "INITIALIZE" SYMBOL
	006140	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006142	000000G				 .WORD	.RSTIN		; ROUTINE TO CALL OR DATA
   7330					;
   7331	006144					COMND$	IO,<LG.PRG!LG.RPT>,.RSTIO,IO
	001360	   111 	   117 	   000 	IOMSG:: .ASCIZ	%IO%
	006144	001360'				 .WORD	IOMSG		; POINTER TO "IO" SYMBOL
	006146	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006150	000000G				 .WORD	.RSTIO		; ROUTINE TO CALL OR DATA
   7332					;
   7333	006152					COMND$	PAG,<LG.PRG!LG.RPT>,.RSPAG,PAG
	001363	   120 	   101 	   107 	PAGMSG:: .ASCIZ	%PAG%
	001366	   000
	006152	001363'				 .WORD	PAGMSG		; POINTER TO "PAG" SYMBOL
	006154	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006156	000000G				 .WORD	.RSPAG		; ROUTINE TO CALL OR DATA
   7334					;
   7335	006160					COMND$	PI,<LG.PRG!LG.RPT>,.RSTPI,PI
	006160	001103'				 .WORD	PIMSG		; POINTER TO "PI" SYMBOL
	006162	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006164	000000G				 .WORD	.RSTPI		; ROUTINE TO CALL OR DATA
   7336					;
   7337	006166	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 183
.SCCTB -- THE "SET / CLEAR CLOCK" COMMAND TABLE 7603.12

   7339					.SBTTL	.SCCTB -- THE "SET / CLEAR CLOCK" COMMAND TABLE 7603.12
   7340
   7341	006170				.SCCTB::
   7342	006170					COMND$	NORMAL,<LG.MNT!LG.RPT>,.SCCLN,NRM
	001367	   116 	   117 	   122 	NRMMSG:: .ASCIZ	%NORMAL%
	001372	   115 	   101 	   114
	001375	   000
	006170	001367'				 .WORD	NRMMSG		; POINTER TO "NORMAL" SYMBOL
	006172	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006174	000000G				 .WORD	.SCCLN		; ROUTINE TO CALL OR DATA
   7343					;
   7344	006176					COMND$	CRAM,<LG.MNT!LG.RPT>,.SCCEC,CRM
	001376	   103 	   122 	   101 	CRMMSG:: .ASCIZ	%CRAM%
	001401	   115 	   000
	006176	001376'				 .WORD	CRMMSG		; POINTER TO "CRAM" SYMBOL
	006200	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006202	000000G				 .WORD	.SCCEC		; ROUTINE TO CALL OR DATA
   7345					;
   7346	006204					COMND$	DATA-PATH,<LG.MNT!LG.RPT>,.SCCED,DPT
	001403	   104 	   101 	   124 	DPTMSG:: .ASCIZ	%DATA-PATH%
	001406	   101 	   055 	   120
	001411	   101 	   124 	   110
	001414	   000
	006204	001403'				 .WORD	DPTMSG		; POINTER TO "DATA-PATH" SYMBOL
	006206	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006210	000000G				 .WORD	.SCCED		; ROUTINE TO CALL OR DATA
   7347					;
   7348	006212					COMND$	CONTROL,<LG.MNT!LG.RPT>,.SCCEE,CTL
	001415	   103 	   117 	   116 	CTLMSG:: .ASCIZ	%CONTROL%
	001420	   124 	   122 	   117
	001423	   114 	   000
	006212	001415'				 .WORD	CTLMSG		; POINTER TO "CONTROL" SYMBOL
	006214	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006216	000000G				 .WORD	.SCCEE		; ROUTINE TO CALL OR DATA
   7349					;
   7350	006220					COMND$	EXTERNAL,<LG.MNT!LG.RPT>,.SCCSE,EXT
	001425	   105 	   130 	   124 	EXTMSG:: .ASCIZ	%EXTERNAL%
	001430	   105 	   122 	   116
	001433	   101 	   114 	   000
	006220	001425'				 .WORD	EXTMSG		; POINTER TO "EXTERNAL" SYMBOL
	006222	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006224	000000G				 .WORD	.SCCSE		; ROUTINE TO CALL OR DATA
   7351					;
   7352	006226					COMND$	INTERNAL,<LG.MNT!LG.RPT>,.SCCSI,INT
	001436	   111 	   116 	   124 	INTMSG:: .ASCIZ	%INTERNAL%
	001441	   105 	   122 	   116
	001444	   101 	   114 	   000
	006226	001436'				 .WORD	INTMSG		; POINTER TO "INTERNAL" SYMBOL
	006230	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006232	000000G				 .WORD	.SCCSI		; ROUTINE TO CALL OR DATA
   7353					;
   7354	006234					COMND$	MARGIN,<LG.MNT!LG.RPT>,.SCCSM,MGN
	001447	   115 	   101 	   122 	MGNMSG:: .ASCIZ	%MARGIN%
	001452	   107 	   111 	   116
	001455	   000
	006234	001447'				 .WORD	MGNMSG		; POINTER TO "MARGIN" SYMBOL
	006236	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 183-1
.SCCTB -- THE "SET / CLEAR CLOCK" COMMAND TABLE 7603.12

	006240	000000G				 .WORD	.SCCSM		; ROUTINE TO CALL OR DATA
   7355					;
   7356	006242					COMND$	FULL,<LG.MNT!LG.RPT>,.SCCRF,FUL
	001456	   106 	   125 	   114 	FULMSG:: .ASCIZ	%FULL%
	001461	   114 	   000
	006242	001456'				 .WORD	FULMSG		; POINTER TO "FULL" SYMBOL
	006244	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006246	000000G				 .WORD	.SCCRF		; ROUTINE TO CALL OR DATA
   7357					;
   7358	006250					COMND$	HALF,<LG.MNT!LG.RPT>,.SCCRH,HLF
	001463	   110 	   101 	   114 	HLFMSG:: .ASCIZ	%HALF%
	001466	   106 	   000
	006250	001463'				 .WORD	HLFMSG		; POINTER TO "HALF" SYMBOL
	006252	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006254	000000G				 .WORD	.SCCRH		; ROUTINE TO CALL OR DATA
   7359					;
   7360	006256					COMND$	QUARTER,<LG.MNT!LG.RPT>,.SCCRQ,QTR
	001470	   121 	   125 	   101 	QTRMSG:: .ASCIZ	%QUARTER%
	001473	   122 	   124 	   105
	001476	   122 	   000
	006256	001470'				 .WORD	QTRMSG		; POINTER TO "QUARTER" SYMBOL
	006260	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006262	000000G				 .WORD	.SCCRQ		; ROUTINE TO CALL OR DATA
   7361					;
   7362	006264					COMND$	SLOW,<LG.MNT!LG.RPT>,.SCCRS,SLO
	001500	   123 	   114 	   117 	SLOMSG:: .ASCIZ	%SLOW%
	001503	   127 	   000
	006264	001500'				 .WORD	SLOMSG		; POINTER TO "SLOW" SYMBOL
	006266	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006270	000000G				 .WORD	.SCCRS		; ROUTINE TO CALL OR DATA
   7363					;
   7364	006272	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 184
.SCMTB -- THE "SET / CLEAR MEMORY" COMMAND TABLE 7603.18

   7366					.SBTTL	.SCMTB -- THE "SET / CLEAR MEMORY" COMMAND TABLE 7603.18
   7367
   7368	006274				.SCMTB::
   7369	006274					COMND$	ELEVEN,LG.OPR,.SCMEL,ELE
	006274	000756'				 .WORD	ELEMSG		; POINTER TO "ELEVEN" SYMBOL
	006276	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006300	000000G				 .WORD	.SCMEL		; ROUTINE TO CALL OR DATA
   7370					;
   7371	006302					COMND$	TEN,LG.OPR,.SCMKL,TEN
	006302	000765'				 .WORD	TENMSG		; POINTER TO "TEN" SYMBOL
	006304	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006306	000000G				 .WORD	.SCMKL		; ROUTINE TO CALL OR DATA
   7372					;
   7373	006310	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 185
.SCCOT -- THE "SET CONSOLE" COMMAND TABLE 7602.12

   7375					.SBTTL	.SCCOT -- THE "SET CONSOLE" COMMAND TABLE 7602.12
   7376
   7377	006312				.SCCOT::
   7378	006312					COMND$	MAINTENANCE,LG.OPR,.SCCOM,MNT
	006312	001140'				 .WORD	MNTMSG		; POINTER TO "MAINTENANCE" SYMBOL
	006314	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006316	000000G				 .WORD	.SCCOM		; ROUTINE TO CALL OR DATA
   7379					;
   7380	006320					COMND$	OPERATOR,LG.OPR,.SCCOO,OPR
	006320	001154'				 .WORD	OPRMSG		; POINTER TO "OPERATOR" SYMBOL
	006322	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006324	000000G				 .WORD	.SCCOO		; ROUTINE TO CALL OR DATA
   7381					;
   7382	006326					COMND$	PROGRAMMER,LG.OPR,.SCCOP,PRG
	006326	001165'				 .WORD	PRGMSG		; POINTER TO "PROGRAMMER" SYMBOL
	006330	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006332	000000G				 .WORD	.SCCOP		; ROUTINE TO CALL OR DATA
   7383					;
   7384	006334					COMND$	USER,LG.OPR,.SCCOU,USR
	006334	001207'				 .WORD	USRMSG		; POINTER TO "USER" SYMBOL
	006336	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006340	000000G				 .WORD	.SCCOU		; ROUTINE TO CALL OR DATA
   7385					;
   7386	006342	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 186
.SCOTT -- THE "SET OUTPUT" COMMAND TABLE

   7388					.SBTTL	.SCOTT -- THE "SET OUTPUT" COMMAND TABLE
   7389
   7390	006344				.SCOTT::
   7391	006344					COMND$	LOG,LG.OPR,.SCOTL,LOG
	001505	   114 	   117 	   107 	LOGMSG:: .ASCIZ	%LOG%
	001510	   000
	006344	001505'				 .WORD	LOGMSG		; POINTER TO "LOG" SYMBOL
	006346	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006350	000000G				 .WORD	.SCOTL		; ROUTINE TO CALL OR DATA
   7392					;
   7393	006352					COMND$	LPT,LG.OPR,.SCOTP,LPT
	001511	   114 	   120 	   124 	LPTMSG:: .ASCIZ	%LPT%
	001514	   000
	006352	001511'				 .WORD	LPTMSG		; POINTER TO "LPT" SYMBOL
	006354	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006356	000000G				 .WORD	.SCOTP		; ROUTINE TO CALL OR DATA
   7394					;
   7395	006360					COMND$	TTY,LG.OPR,.SCOTY,TTY
	001515	   124 	   124 	   131 	TTYMSG:: .ASCIZ	%TTY%
	001520	   000
	006360	001515'				 .WORD	TTYMSG		; POINTER TO "TTY" SYMBOL
	006362	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006364	000000G				 .WORD	.SCOTY		; ROUTINE TO CALL OR DATA
   7396					;
   7397	006366	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 187
.SCPTB -- THE SET / CLEAR "PARITY-STOP" TABLE 7603.10

   7399					.SBTTL	.SCPTB -- THE SET / CLEAR "PARITY-STOP" TABLE 7603.10
   7400
   7401	006370				.SCPTB::
   7402	006370					COMND$	ALL,LG.MNT,.SCPAL,ALL
	006370	001342'				 .WORD	ALLMSG		; POINTER TO "ALL" SYMBOL
	006372	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006374	000000G				 .WORD	.SCPAL		; ROUTINE TO CALL OR DATA
   7403					;
   7404	006376					COMND$	AR,LG.MNT,.SCPAR,AR
	006376	000753'				 .WORD	ARMSG		; POINTER TO "AR" SYMBOL
	006400	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006402	000000G				 .WORD	.SCPAR		; ROUTINE TO CALL OR DATA
   7405					;
   7406	006404					COMND$	CRAM,LG.MNT,.SCPCR,CRM
	006404	001376'				 .WORD	CRMMSG		; POINTER TO "CRAM" SYMBOL
	006406	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006410	000000G				 .WORD	.SCPCR		; ROUTINE TO CALL OR DATA
   7407					;
   7408	006412					COMND$	DRAM,LG.MNT,.SCPDR,DRM
	001521	   104 	   122 	   101 	DRMMSG:: .ASCIZ	%DRAM%
	001524	   115 	   000
	006412	001521'				 .WORD	DRMMSG		; POINTER TO "DRAM" SYMBOL
	006414	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006416	000000G				 .WORD	.SCPDR		; ROUTINE TO CALL OR DATA
   7409					;
   7410	006420					COMND$	ENABLE,LG.MNT,.SCPEN,ENB
	001526	   105 	   116 	   101 	ENBMSG:: .ASCIZ	%ENABLE%
	001531	   102 	   114 	   105
	001534	   000
	006420	001526'				 .WORD	ENBMSG		; POINTER TO "ENABLE" SYMBOL
	006422	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006424	000000G				 .WORD	.SCPEN		; ROUTINE TO CALL OR DATA
   7411					;
   7412	006426					COMND$	FM,LG.MNT,.SCPFM,FM
	006426	001020'				 .WORD	FMMSG		; POINTER TO "FM" SYMBOL
	006430	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006432	000000G				 .WORD	.SCPFM		; ROUTINE TO CALL OR DATA
   7413					;
   7414	006434					COMND$	FS-STOP,LG.MNT,.SCPFS,FSS
	001535	   106 	   123 	   055 	FSSMSG:: .ASCIZ	%FS-STOP%
	001540	   123 	   124 	   117
	001543	   120 	   000
	006434	001535'				 .WORD	FSSMSG		; POINTER TO "FS-STOP" SYMBOL
	006436	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006440	000000G				 .WORD	.SCPFS		; ROUTINE TO CALL OR DATA
   7415					;
   7416	006442	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 188
.SETTB -- THE SET / CLEAR COMMAND TABLE 7703.25

   7418					.SBTTL	.SETTB -- THE SET / CLEAR COMMAND TABLE 7703.25
   7419
   7420	006444				.SETTB::
   7421	006444					COMND$	AC-BLOCK,<LG.MNT>,.SCACB,ACB
	001545	   101 	   103 	   055 	ACBMSG:: .ASCIZ	%AC-BLOCK%
	001550	   102 	   114 	   117
	001553	   103 	   113 	   000
	006444	001545'				 .WORD	ACBMSG		; POINTER TO "AC-BLOCK" SYMBOL
	006446	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006450	000000G				 .WORD	.SCACB		; ROUTINE TO CALL OR DATA
   7422					;
   7423	006452					COMND$	AUTO-TAKE,LG.OPR,.SCTAK,AUT
	001556	   101 	   125 	   124 	AUTMSG:: .ASCIZ	%AUTO-TAKE%
	001561	   117 	   055 	   124
	001564	   101 	   113 	   105
	001567	   000
	006452	001556'				 .WORD	AUTMSG		; POINTER TO "AUTO-TAKE" SYMBOL
	006454	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006456	000000G				 .WORD	.SCTAK		; ROUTINE TO CALL OR DATA
   7424					;
   7425	006460					COMND$	CLOCK,<LG.MNT!LG.RPT>,.SCCLK,CLK
	001570	   103 	   114 	   117 	CLKMSG:: .ASCIZ	%CLOCK%
	001573	   103 	   113 	   000
	006460	001570'				 .WORD	CLKMSG		; POINTER TO "CLOCK" SYMBOL
	006462	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006464	000000G				 .WORD	.SCCLK		; ROUTINE TO CALL OR DATA
   7426					;
   7427	006466					COMND$	CONSOLE,LG.OPR,.SCCON,CON
	001576	   103 	   117 	   116 	CONMSG:: .ASCIZ	%CONSOLE%
	001601	   123 	   117 	   114
	001604	   105 	   000
	006466	001576'				 .WORD	CONMSG		; POINTER TO "CONSOLE" SYMBOL
	006470	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006472	000000G				 .WORD	.SCCON		; ROUTINE TO CALL OR DATA
   7428					;
   7429	006474					COMND$	DATE,LG.PRG,.SCDAT,DAT
	001606	   104 	   101 	   124 	DATMSG:: .ASCIZ	%DATE%
	001611	   105 	   000
	006474	001606'				 .WORD	DATMSG		; POINTER TO "DATE" SYMBOL
	006476	000002 				 .WORD	LG.PRG		; LEGAL BITS
	006500	000000G				 .WORD	.SCDAT		; ROUTINE TO CALL OR DATA
   7430					;
   7431	006502					COMND$	FAULT-CONTINUE,LG.PRG,.SFREC,FLT
	001613	   106 	   101 	   125 	FLTMSG:: .ASCIZ	%FAULT-CONTINUE%
	001616	   114 	   124 	   055
	001621	   103 	   117 	   116
	001624	   124 	   111 	   116
	001627	   125 	   105 	   000
	006502	001613'				 .WORD	FLTMSG		; POINTER TO "FAULT-CONTINUE" SYMBOL
	006504	000002 				 .WORD	LG.PRG		; LEGAL BITS
	006506	000000G				 .WORD	.SFREC		; ROUTINE TO CALL OR DATA
   7432					;
   7433	006510					COMND$	FS-STOP,<LG.MNT!LG.RPT>,.SCFSS,FSS
	006510	001535'				 .WORD	FSSMSG		; POINTER TO "FS-STOP" SYMBOL
	006512	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006514	000000G				 .WORD	.SCFSS		; ROUTINE TO CALL OR DATA
   7434					;
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 188-1
.SETTB -- THE SET / CLEAR COMMAND TABLE 7703.25

   7435	006516					COMND$	INCREMENT,LG.OPR,.SCINC,INC
	006516	000716'				 .WORD	INCMSG		; POINTER TO "INCREMENT" SYMBOL
	006520	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006522	000000G				 .WORD	.SCINC		; ROUTINE TO CALL OR DATA
   7436					;
   7437	006524					COMND$	KLINIK,LG.ALL,.SCKLN,KLI
	001632	   113 	   114 	   111 	KLIMSG:: .ASCIZ	%KLINIK%
	001635	   116 	   111 	   113
	001640	   000
	006524	001632'				 .WORD	KLIMSG		; POINTER TO "KLINIK" SYMBOL
	006526	000007 				 .WORD	LG.ALL		; LEGAL BITS
	006530	000000G				 .WORD	.SCKLN		; ROUTINE TO CALL OR DATA
   7438					;
   7439	006532					COMND$	MEMORY,LG.OPR,.SCMEM,MEM
	001641	   115 	   105 	   115 	MEMMSG:: .ASCIZ	%MEMORY%
	001644	   117 	   122 	   131
	001647	   000
	006532	001641'				 .WORD	MEMMSG		; POINTER TO "MEMORY" SYMBOL
	006534	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006536	000000G				 .WORD	.SCMEM		; ROUTINE TO CALL OR DATA
   7440					;
   7441	006540					COMND$	NOT,<LG.OPR!LG.RPT>,.SCNOT,NOT
	001650	   116 	   117 	   124 	NOTMSG:: .ASCIZ	%NOT%
	001653	   000
	006540	001650'				 .WORD	NOTMSG		; POINTER TO "NOT" SYMBOL
	006542	000401 				 .WORD	LG.OPR!LG.RPT		; LEGAL BITS
	006544	000000G				 .WORD	.SCNOT		; ROUTINE TO CALL OR DATA
   7442					;
   7443	006546					COMND$	OFFSET,LG.PRG,.SCOFS,OFS
	001654	   117 	   106 	   106 	OFSMSG:: .ASCIZ	%OFFSET%
	001657	   123 	   105 	   124
	001662	   000
	006546	001654'				 .WORD	OFSMSG		; POINTER TO "OFFSET" SYMBOL
	006550	000002 				 .WORD	LG.PRG		; LEGAL BITS
	006552	000000G				 .WORD	.SCOFS		; ROUTINE TO CALL OR DATA
   7444					;
   7445	006554					COMND$	OUTPUT,LG.OPR,.SCOUT,OUT
	001663	   117 	   125 	   124 	OUTMSG:: .ASCIZ	%OUTPUT%
	001666	   120 	   125 	   124
	001671	   000
	006554	001663'				 .WORD	OUTMSG		; POINTER TO "OUTPUT" SYMBOL
	006556	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006560	000000G				 .WORD	.SCOUT		; ROUTINE TO CALL OR DATA
   7446					;
   7447	006562					COMND$	PARITY-STOP,<LG.MNT!LG.RPT>,.SCPST,PST
	001672	   120 	   101 	   122 	PSTMSG:: .ASCIZ	%PARITY-STOP%
	001675	   111 	   124 	   131
	001700	   055 	   123 	   124
	001703	   117 	   120 	   000
	006562	001672'				 .WORD	PSTMSG		; POINTER TO "PARITY-STOP" SYMBOL
	006564	000404 				 .WORD	LG.MNT!LG.RPT		; LEGAL BITS
	006566	000000G				 .WORD	.SCPST		; ROUTINE TO CALL OR DATA
   7448					;
   7449	006570					COMND$	RELOAD,LG.PRG,.SCRLD,RLD
	001706	   122 	   105 	   114 	RLDMSG:: .ASCIZ	%RELOAD%
	001711	   117 	   101 	   104
	001714	   000
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 188-2
.SETTB -- THE SET / CLEAR COMMAND TABLE 7703.25

	006570	001706'				 .WORD	RLDMSG		; POINTER TO "RELOAD" SYMBOL
	006572	000002 				 .WORD	LG.PRG		; LEGAL BITS
	006574	000000G				 .WORD	.SCRLD		; ROUTINE TO CALL OR DATA
   7450					;
   7451	006576					COMND$	REPEAT,LG.OPR,.SCRPT,RPT
	006576	000543'				 .WORD	RPTMSG		; POINTER TO "REPEAT" SYMBOL
	006600	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006602	000000G				 .WORD	.SCRPT		; ROUTINE TO CALL OR DATA
   7452					;
   7453	006604					COMND$	RETRY,<LG.PRG!LG.MNT>,.SCRTY,RTY
	001715	   122 	   105 	   124 	RTYMSG:: .ASCIZ	%RETRY%
	001720	   122 	   131 	   000
	006604	001715'				 .WORD	RTYMSG		; POINTER TO "RETRY" SYMBOL
	006606	000006 				 .WORD	LG.PRG!LG.MNT		; LEGAL BITS
	006610	000000G				 .WORD	.SCRTY		; ROUTINE TO CALL OR DATA
   7454					;
   7456	006612					COMND$	TRACKS,LG.PRG,.SCTRK,TRK
	001723	   124 	   122 	   101 	TRKMSG:: .ASCIZ	%TRACKS%
	001726	   103 	   113 	   123
	001731	   000
	006612	001723'				 .WORD	TRKMSG		; POINTER TO "TRACKS" SYMBOL
	006614	000002 				 .WORD	LG.PRG		; LEGAL BITS
	006616	000000G				 .WORD	.SCTRK		; ROUTINE TO CALL OR DATA
   7457					;
   7459	006620	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 189
.SPETB -- SPECIAL ERROR CODE TABLE 7702.16

   7461					.SBTTL	.SPETB -- SPECIAL ERROR CODE TABLE 7702.16
   7462
   7463	006622				.SPETB::
   7464	006622					SPERR$	AMB,<AMBIGUOUS KEYWORD ">
	003714	   101 	   115 	   102 		 .ASCIZ	%AMB - AMBIGUOUS KEYWORD "%
	003717	   040 	   055 	   040
	003722	   101 	   115 	   102
	003725	   111 	   107 	   125
	003730	   117 	   125 	   123
	003733	   040 	   113 	   105
	003736	   131 	   127 	   117
	003741	   122 	   104 	   040
	003744	   042 	   000
	006622	004112 				 .RAD50	/AMB/		; "AMB" IN .RAD50
	006624	000520'				 .WORD	.SEAMB		; DISPATCH TO HANDLER
	006626	003714'				 .WORD	AMBERM		; POINTER TO MESSAGE
   7465						;
   7466	006630					SPERR$	CES,<CLOCK ERROR STOP - >
	003746	   103 	   105 	   123 		 .ASCIZ	%CES - CLOCK ERROR STOP - %
	003751	   040 	   055 	   040
	003754	   103 	   114 	   117
	003757	   103 	   113 	   040
	003762	   105 	   122 	   122
	003765	   117 	   122 	   040
	003770	   123 	   124 	   117
	003773	   120 	   040 	   055
	003776	   040 	   000
	006630	011633 				 .RAD50	/CES/		; "CES" IN .RAD50
	006632	000756'				 .WORD	.SECES		; DISPATCH TO HANDLER
	006634	003746'				 .WORD	CESERM		; POINTER TO MESSAGE
   7467						;
   7468	006636					SPERR$	FRF,<FUNCTION READ >
	004000	   106 	   122 	   106 		 .ASCIZ	%FRF - FUNCTION READ %
	004003	   040 	   055 	   040
	004006	   106 	   125 	   116
	004011	   103 	   124 	   111
	004014	   117 	   116 	   040
	004017	   122 	   105 	   101
	004022	   104 	   040 	   000
	006636	024126 				 .RAD50	/FRF/		; "FRF" IN .RAD50
	006640	000606'				 .WORD	.SEFRF		; DISPATCH TO HANDLER
	006642	004000'				 .WORD	FRFERM		; POINTER TO MESSAGE
   7469	006644					SPERR$	FWF,<FUNCTION WRITE >
	004025	   106 	   127 	   106 		 .ASCIZ	%FWF - FUNCTION WRITE %
	004030	   040 	   055 	   040
	004033	   106 	   125 	   116
	004036	   103 	   124 	   111
	004041	   117 	   116 	   040
	004044	   127 	   122 	   111
	004047	   124 	   105 	   040
	004052	   000
	006644	024436 				 .RAD50	/FWF/		; "FWF" IN .RAD50
	006646	000614'				 .WORD	.SEFWF		; DISPATCH TO HANDLER
	006650	004025'				 .WORD	FWFERM		; POINTER TO MESSAGE
   7470	006652					SPERR$	FXF,<FUNCTION EXECUTE >
	004053	   106 	   130 	   106 		 .ASCIZ	%FXF - FUNCTION EXECUTE %
	004056	   040 	   055 	   040
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 189-1
.SPETB -- SPECIAL ERROR CODE TABLE 7702.16

	004061	   106 	   125 	   116
	004064	   103 	   124 	   111
	004067	   117 	   116 	   040
	004072	   105 	   130 	   105
	004075	   103 	   125 	   124
	004100	   105 	   040 	   000
	006652	024506 				 .RAD50	/FXF/		; "FXF" IN .RAD50
	006654	000622'				 .WORD	.SEFXF		; DISPATCH TO HANDLER
	006656	004053'				 .WORD	FXFERM		; POINTER TO MESSAGE
   7471						;
   7472	006660					SPERR$	ILC,<ILLEGAL CHARACTER ">
	004103	   111 	   114 	   103 		 .ASCIZ	%ILC - ILLEGAL CHARACTER "%
	004106	   040 	   055 	   040
	004111	   111 	   114 	   114
	004114	   105 	   107 	   101
	004117	   114 	   040 	   103
	004122	   110 	   101 	   122
	004125	   101 	   103 	   124
	004130	   105 	   122 	   040
	004133	   042 	   000
	006660	035043 				 .RAD50	/ILC/		; "ILC" IN .RAD50
	006662	000544'				 .WORD	.SEILC		; DISPATCH TO HANDLER
	006664	004103'				 .WORD	ILCERM		; POINTER TO MESSAGE
   7473	006666					SPERR$	ILS,<ILLEGAL SEPARATOR CHARACTER ">
	004135	   111 	   114 	   123 		 .ASCIZ	%ILS - ILLEGAL SEPARATOR CHARACTER "%
	004140	   040 	   055 	   040
	004143	   111 	   114 	   114
	004146	   105 	   107 	   101
	004151	   114 	   040 	   123
	004154	   105 	   120 	   101
	004157	   122 	   101 	   124
	004162	   117 	   122 	   040
	004165	   103 	   110 	   101
	004170	   122 	   101 	   103
	004173	   124 	   105 	   122
	004176	   040 	   042 	   000
	006666	035063 				 .RAD50	/ILS/		; "ILS" IN .RAD50
	006670	000544'				 .WORD	.SEILS		; DISPATCH TO HANDLER
	006672	004135'				 .WORD	ILSERM		; POINTER TO MESSAGE
   7474	006674					SPERR$	IPC,<ILLEGAL PASSWORD CHARACTER ">
	004201	   111 	   120 	   103 		 .ASCIZ	%IPC - ILLEGAL PASSWORD CHARACTER "%
	004204	   040 	   055 	   040
	004207	   111 	   114 	   114
	004212	   105 	   107 	   101
	004215	   114 	   040 	   120
	004220	   101 	   123 	   123
	004223	   127 	   117 	   122
	004226	   104 	   040 	   103
	004231	   110 	   101 	   122
	004234	   101 	   103 	   124
	004237	   105 	   122 	   040
	004242	   042 	   000
	006674	035303 				 .RAD50	/IPC/		; "IPC" IN .RAD50
	006676	000544'				 .WORD	.SEIPC		; DISPATCH TO HANDLER
	006700	004201'				 .WORD	IPCERM		; POINTER TO MESSAGE
   7475						;
   7476	006702					SPERR$	NSK,<NO SUCH KEYWORD ">
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 189-2
.SPETB -- SPECIAL ERROR CODE TABLE 7702.16

	004244	   116 	   123 	   113 		 .ASCIZ	%NSK - NO SUCH KEYWORD "%
	004247	   040 	   055 	   040
	004252	   116 	   117 	   040
	004255	   123 	   125 	   103
	004260	   110 	   040 	   113
	004263	   105 	   131 	   127
	004266	   117 	   122 	   104
	004271	   040 	   042 	   000
	006702	055203 				 .RAD50	/NSK/		; "NSK" IN .RAD50
	006704	000520'				 .WORD	.SENSK		; DISPATCH TO HANDLER
	006706	004244'				 .WORD	NSKERM		; POINTER TO MESSAGE
   7477						;
   7478	006710	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 190
.STRTB -- THE START COMMAND TABLE 7602.26

   7480					.SBTTL	.STRTB -- THE START COMMAND TABLE 7602.26
   7481
   7482	006712				.STRTB::
   7483	006712					COMND$	TEN,<LG.PRG!LG.RPT>,.STRTT,TEN
	006712	000765'				 .WORD	TENMSG		; POINTER TO "TEN" SYMBOL
	006714	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006716	000000G				 .WORD	.STRTT		; ROUTINE TO CALL OR DATA
   7484					;
   7485	006720					COMND$	MICROCODE,<LG.PRG!LG.RPT>,.STRTU,UCD
	001732	   115 	   111 	   103 	UCDMSG:: .ASCIZ	%MICROCODE%
	001735	   122 	   117 	   103
	001740	   117 	   104 	   105
	001743	   000
	006720	001732'				 .WORD	UCDMSG		; POINTER TO "MICROCODE" SYMBOL
	006722	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006724	000000G				 .WORD	.STRTU		; ROUTINE TO CALL OR DATA
   7486					;
   7487	006726	000000 				.WORD	0		; END OF TABLE MARKER
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 191
.WHATB -- THE WHAT COMMAND TABLE 7703.25

   7489					.SBTTL	.WHATB -- THE WHAT COMMAND TABLE 7703.25
   7490
   7491	006730				.WHATB::
   7492	006730					COMND$	AC-BLOCK,<LG.MNT>,.WHACB,ACB
	006730	001545'				 .WORD	ACBMSG		; POINTER TO "AC-BLOCK" SYMBOL
	006732	000004 				 .WORD	LG.MNT		; LEGAL BITS
	006734	000000G				 .WORD	.WHACB		; ROUTINE TO CALL OR DATA
   7493					;
   7494	006736					COMND$	AUTO-TAKE,LG.OPR,.WHTAK,AUT
	006736	001556'				 .WORD	AUTMSG		; POINTER TO "AUTO-TAKE" SYMBOL
	006740	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006742	000000G				 .WORD	.WHTAK		; ROUTINE TO CALL OR DATA
   7495					;
   7496	006744					COMND$	CLOCK,<LG.PRG!LG.RPT>,.WHTCL,CLK
	006744	001570'				 .WORD	CLKMSG		; POINTER TO "CLOCK" SYMBOL
	006746	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	006750	000000G				 .WORD	.WHTCL		; ROUTINE TO CALL OR DATA
   7497					;
   7498	006752					COMND$	CONSOLE,LG.OPR,.WHCON,CON
	006752	001576'				 .WORD	CONMSG		; POINTER TO "CONSOLE" SYMBOL
	006754	000001 				 .WORD	LG.OPR		; LEGAL BITS
	006756	000000G				 .WORD	.WHCON		; ROUTINE TO CALL OR DATA
   7499					;
   7500	006760					COMND$	DATE,<LG.ALL!LG.RPT>,.WHDAT,DAT
	006760	001606'				 .WORD	DATMSG		; POINTER TO "DATE" SYMBOL
	006762	000407 				 .WORD	LG.ALL!LG.RPT		; LEGAL BITS
	006764	000000G				 .WORD	.WHDAT		; ROUTINE TO CALL OR DATA
   7501					;
   7502	006766					COMND$	FAULT-CONTINUE,LG.ALL,.WHREC,FLT
	006766	001613'				 .WORD	FLTMSG		; POINTER TO "FAULT-CONTINUE" SYMBOL
	006770	000007 				 .WORD	LG.ALL		; LEGAL BITS
	006772	000000G				 .WORD	.WHREC		; ROUTINE TO CALL OR DATA
   7503					;
   7504	006774					COMND$	HARDWARE,LG.OPR,.WHRDW,HAR
	001744	   110 	   101 	   122 	HARMSG:: .ASCIZ	%HARDWARE%
	001747	   104 	   127 	   101
	001752	   122 	   105 	   000
	006774	001744'				 .WORD	HARMSG		; POINTER TO "HARDWARE" SYMBOL
	006776	000001 				 .WORD	LG.OPR		; LEGAL BITS
	007000	000000G				 .WORD	.WHRDW		; ROUTINE TO CALL OR DATA
   7505					;
   7506	007002					COMND$	INCREMENT,LG.OPR,.WHINC,INC
	007002	000716'				 .WORD	INCMSG		; POINTER TO "INCREMENT" SYMBOL
	007004	000001 				 .WORD	LG.OPR		; LEGAL BITS
	007006	000000G				 .WORD	.WHINC		; ROUTINE TO CALL OR DATA
   7507					;
   7508	007010					COMND$	KLINIK,LG.ALL,.WHKLN,KLI
	007010	001632'				 .WORD	KLIMSG		; POINTER TO "KLINIK" SYMBOL
	007012	000007 				 .WORD	LG.ALL		; LEGAL BITS
	007014	000000G				 .WORD	.WHKLN		; ROUTINE TO CALL OR DATA
   7509					;
   7510	007016					COMND$	MEMORY,LG.OPR,.WHMEM,MEM
	007016	001641'				 .WORD	MEMMSG		; POINTER TO "MEMORY" SYMBOL
	007020	000001 				 .WORD	LG.OPR		; LEGAL BITS
	007022	000000G				 .WORD	.WHMEM		; ROUTINE TO CALL OR DATA
   7511					;
   7512	007024					COMND$	OFFSET,LG.PRG,.WHOFS,OFS
TABLE -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 191-1
.WHATB -- THE WHAT COMMAND TABLE 7703.25

	007024	001654'				 .WORD	OFSMSG		; POINTER TO "OFFSET" SYMBOL
	007026	000002 				 .WORD	LG.PRG		; LEGAL BITS
	007030	000000G				 .WORD	.WHOFS		; ROUTINE TO CALL OR DATA
   7513					;
   7514	007032					COMND$	OUTPUT,LG.OPR,.WHOUT,OUT
	007032	001663'				 .WORD	OUTMSG		; POINTER TO "OUTPUT" SYMBOL
	007034	000001 				 .WORD	LG.OPR		; LEGAL BITS
	007036	000000G				 .WORD	.WHOUT		; ROUTINE TO CALL OR DATA
   7515					;
   7516	007040					COMND$	PARITY-STOP,<LG.PRG!LG.RPT>,.WHTPS,PST
	007040	001672'				 .WORD	PSTMSG		; POINTER TO "PARITY-STOP" SYMBOL
	007042	000402 				 .WORD	LG.PRG!LG.RPT		; LEGAL BITS
	007044	000000G				 .WORD	.WHTPS		; ROUTINE TO CALL OR DATA
   7517					;
   7518	007046					COMND$	RELOAD,LG.PRG,.WHRLD,RLD
	007046	001706'				 .WORD	RLDMSG		; POINTER TO "RELOAD" SYMBOL
	007050	000002 				 .WORD	LG.PRG		; LEGAL BITS
	007052	000000G				 .WORD	.WHRLD		; ROUTINE TO CALL OR DATA
   7519					;
   7520	007054					COMND$	REPEAT,LG.OPR,.WHRPT,RPT
	007054	000543'				 .WORD	RPTMSG		; POINTER TO "REPEAT" SYMBOL
	007056	000001 				 .WORD	LG.OPR		; LEGAL BITS
	007060	000000G				 .WORD	.WHRPT		; ROUTINE TO CALL OR DATA
   7521					;
   7522	007062					COMND$	RETRY,<LG.PRG!LG.MNT>,.WHRTY,RTY
	007062	001715'				 .WORD	RTYMSG		; POINTER TO "RETRY" SYMBOL
	007064	000006 				 .WORD	LG.PRG!LG.MNT		; LEGAL BITS
	007066	000000G				 .WORD	.WHRTY		; ROUTINE TO CALL OR DATA
   7523					;
   7525	007070					COMND$	TRACKS,LG.PRG,.WHTRK,TRK
	007070	001723'				 .WORD	TRKMSG		; POINTER TO "TRACKS" SYMBOL
	007072	000002 				 .WORD	LG.PRG		; LEGAL BITS
	007074	000000G				 .WORD	.WHTRK		; ROUTINE TO CALL OR DATA
   7526					;
   7528	007076					COMND$	VERSION,LG.OPR,.WHATV,VER
	001755	   126 	   105 	   122 	VERMSG:: .ASCIZ	%VERSION%
	001760	   123 	   111 	   117
	001763	   116 	   000
	007076	001755'				 .WORD	VERMSG		; POINTER TO "VERSION" SYMBOL
	007100	000001 				 .WORD	LG.OPR		; LEGAL BITS
	007102	000000G				 .WORD	.WHATV		; ROUTINE TO CALL OR DATA
   7529					;
   7530	007104	000000 				.WORD	0		; END OF TABLE MARKER
   7531	011114				.PSECT
   7532
   7533		000000 				$$PASS2=0
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 193
.WHATB -- THE WHAT COMMAND TABLE 7703.25

   7536					.TITLE	TPSIM -- TRIPLE PRECISION ARITHMETIC SIMULATOR MODULE 7603.30
   7537
   7538						.IDENT	"005000"
   7539
   7540					;
   7541					;                             COPYRIGHT (C) 1975, 1979 BY
   7542					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7543					;
   7544					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7545					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7546					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7547					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7548					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7549					;
   7550					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7551					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7552					;       CORPORATION.
   7553					;
   7554					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7555					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7556					;
   7557					;		MODULE: TRIPLE PRECISION ARITHMETIC SIMULATOR
   7558					;
   7559					;		VERSION: 05-00
   7560					;
   7561					;		AUTHOR: R. BELANGER
   7562					;
   7563					;		DATE: 7603.30
   7564					;
   7565					;	THIS MODULE CONTAINS:
   7566					;
   7567					;	1) TRIPLE PRECISION ARITHMETIC SIMULATOR
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 194
.SHIFT -- 16 BIT BY 16 BIT SHIFT OPERATIONS 7603.30

   7569					.SBTTL	.SHIFT -- 16 BIT BY 16 BIT SHIFT OPERATIONS 7603.30
   7570
   7571					;+
   7572					; .SHIFT -- 16 BIT BY 16 BIT SHIFT OPERATIONS
   7573					;
   7574					; THIS SUBROUTINE SHIFTS THE NUMBER IN R0 AS SPECIFIED BY THE SHIFT
   7575					; COUNT IN R1.
   7576					;
   7577					; INPUT ARGUMENTS:
   7578					;
   7579					;	R0 HOLDS THE NUMBER TO BE SHIFTED
   7580					;	R1 HOLDS A 16 BIT SHIFT COUNT
   7581					;
   7582					; OUTPUT ARGUMENTS:
   7583					;
   7584					;	R0 HOLDS THE SHIFTED NUMBER
   7585					;	R1 HOLDS THE SHIFT COUNT
   7586					;
   7587					; ERROR CODES RETURNED:
   7588					;
   7589					;	NONE
   7590					;-
   7591
   7592	011114				.SHIFT::
   7593	011114					PUSH	R1		; SAVE R1 ON THE STACK
	011114	010146 				 MOV	R1,-(SP)
   7594	011116	001407 				BEQ	30$		; .EXIT IF .EQ. 0
   7595	011120	002403 				BLT	20$		; .SHIFT RIGHT IF NEGATIVE
   7596	011122				10$:
   7597	011122	006300 				ASL	R0		; .SHIFT IT LEFT
   7598	011124	077102 				SOB	R1,10$		; .TILL COUNT IS EXHAUSTED
   7599	011126	000403 				BR	30$		; .EXIT
   7600						;
   7601	011130				20$:
   7602	011130	006200 				ASR	R0		; .SHIFT IT RIGHT
   7603	011132	005201 				INC	R1		; .COUNT THE SHIFT
   7604	011134	001375 				BNE	20$		; .TILL COUNT EXHAUSTED
   7605	011136				30$:
   7606	011136					POP	R1		; .RESTORE R1 FROM THE STACK
	011136	012601 				 MOV	(SP)+,R1
   7607	011140	000241 				CLC			; CLEAR CC-C
   7608	011142					RETURN			; RETURN
	011142	000207 				 RTS	PC
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 195
.TPDIV -- 48 BIT INTEGER DIVIDE SUBROUTINE 7601.19

   7610					.SBTTL	.TPDIV -- 48 BIT INTEGER DIVIDE SUBROUTINE 7601.19
   7611
   7612					;+
   7613					; .TPDIV -- 48 BIT INTEGER DIVIDE SUBROUTINE.
   7614					;
   7615					; THIS SUBROUTINE WILL DIVIDE THE 48 BIT DIVIDEND POINTED TO BY R0
   7616					; BY THE 48 BIT DIVISOR POINTED TO BY R1 IN THE CALL. ON RETURN,
   7617					; R0 POINTS TO A 48 BIT QUOTIENT, AND R2 POINTS TO A 48 BIT REMAINDER.
   7618					;
   7619					; INPUT ARGUMENTS:
   7620					;
   7621					;	R0 POINTS TO THE DIVIDEND
   7622					;	R1 POINTS TO THE DIVISOR
   7623					;
   7624					; OUTPUT ARGUMENTS:
   7625					;
   7626					;	R0 POINTS TO THE QUOTIENT
   7627					;	R1 POINTS TO THE REMAINDER
   7628					;	THE DIVISOR AND DIVIDEND ARE DESTROYED
   7629					;
   7630					; ERROR CODES RETURNED:
   7631					;
   7632					;	DCK -- DIVIDE CHECK.
   7633					;-
   7634
   7635	007106				.PSECT	DATA
   7636
   7637	007106				TPDRMN:
   7638	007106	000000 	000000 	000000 		.WORD	0,0,0	; SPACE FOR  REMAINDER
   7639	007114				TPDDVS:
   7640	007114	000000 	000000 	000000 		.WORD	0,0,0	; SPACE FOR DIVISOR
   7641	007122				TPDDVD:
   7642	007122	000000 	000000 	000000 		.WORD	0,0,0	; SPACE FOR DIVIDEND / QUOTIENT
   7643
   7644	011144				.PSECT
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 196
.TPDIV -- 48 BIT INTEGER DIVIDE SUBROUTINE 7601.19

   7646						.ENABL	LSB
   7647
   7648	011144				.TPDIV::
   7649	011144					PUSH	<R3,R2,R1,R0>	; SAVE CALLER'S REGISTERS
	011144	010346 				 MOV	R3,-(SP)
	011146	010246 				 MOV	R2,-(SP)
	011150	010146 				 MOV	R1,-(SP)
	011152	010046 				 MOV	R0,-(SP)
   7650	011154					CALL	.TPXTN		; ....SIGN EXTEND THE DIVIDEND
	011154	004737 	011404'			 JSR	PC,.TPXTN
   7651	011160	010100 				MOV	R1,R0		; ....POINT TO THE DIVISOR
   7652	011162					CALL	.TPXTN		; ....AND SIGN EXTEND IT
	011162	004737 	011404'			 JSR	PC,.TPXTN
   7653	011166					CALL	.TPTST		; ....SEE IF IT IS ZERO OR NEGATIVE
	011166	004737 	011460'			 JSR	PC,.TPTST
   7654	011172	003466 				BLE	TPDDCK		; ....YES -- GIVE "DCK" ERROR
   7655	011174	011600 				MOV	(SP),R0		; ....NO -- RESTORE DIVIDEND POINTER
   7656	011176	012703 	000060 			MOV	#^D48,R3	; ....ITERATION COUNT TO R3
   7657	011202	012702 	007106'			MOV	#TPDRMN,R2	; ....DATA BLOCK POINTER TO R2
   7658	011206	005022 				CLR	(R2)+		; ....CLEAR THE REMAINDER
   7659	011210	005022 				CLR	(R2)+		; ....
   7660	011212	005022 				CLR	(R2)+		; ....
   7661	011214	012122 				MOV	(R1)+,(R2)+	; ....LOAD THE DIVISOR
   7662	011216	012122 				MOV	(R1)+,(R2)+	; ....
   7663	011220	012122 				MOV	(R1)+,(R2)+	; ....
   7664	011222	012022 				MOV	(R0)+,(R2)+	; ....LOAD THE DIVIDEND
   7665	011224	012022 				MOV	(R0)+,(R2)+	; ....
   7666	011226	012022 				MOV	(R0)+,(R2)+	; ....
   7667	011230	012700 	007106'			MOV	#TPDRMN,R0	; ....REMAINDER POINTER TO R0
   7668	011234	012701 	007114'			MOV	#TPDDVS,R1	; ....DIVISOR POINTER TO R1
   7669	011240	012702 	007122'			MOV	#TPDDVD,R2	; ....DIVIDEND POINTER TO R2
   7670
   7671					;	[CONTINUED ON THE FOLLOWING PAGE]
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 197
.TPDIV -- 48 BIT INTEGER DIVIDE SUBROUTINE 7601.19

   7673					;	[CONTINUED FROM THE PREVIOUS PAGE]
   7674
   7675	011244				10$:
   7676	011244	006312 				ASL	(R2)		; ....SHIFT THE DIVIDEND LEFT
   7677	011246	006162 	000002 			ROL	2(R2)		; ....
   7678	011252	006162 	000004 			ROL	4(R2)		; ....
   7679	011256	006110 				ROL	(R0)		; ....INTO THE REMAINDER
   7680	011260	006160 	000002 			ROL	2(R0)		; ....
   7681	011264	006160 	000004 			ROL	4(R0)		; ....
   7682	011270					CALL	.TPCMP		; ....SEE IF REMAINDER IS .GE. DIVISOR
	011270	004737 	011424'			 JSR	PC,.TPCMP
   7683	011274	103407 				BLO	20$		; ....NO -- JUST KEEP GOING
   7684	011276					CALL	.TPSUB		; ....YES -- SUBTRACT DIVISOR FROM REMAINDER
	011276	004737 	011546'			 JSR	PC,.TPSUB
   7685	011302					PUSH	R0		; ....SAVE REMAINDER POINTER
	011302	010046 				 MOV	R0,-(SP)
   7686	011304	010200 				MOV	R2,R0		; .....QUOTIENT POINTER TO R0
   7687	011306					CALL	.TPINC		; .....INCREMENT THE QUOTIENT
	011306	004737 	011522'			 JSR	PC,.TPINC
   7688	011312					POP	R0		; .....RESTORE REMAINDER POINTER
	011312	012600 				 MOV	(SP)+,R0
   7689	011314				20$:
   7690	011314	077325 				SOB	R3,10$		; ....LOOP TILL COUNT IS EXHAUSTED
   7691	011316					POP	<R0,R1>		; ....GET R0 AND R1 FROM THE STACK
	011316	012600 				 MOV	(SP)+,R0
	011320	012601 				 MOV	(SP)+,R1
   7692	011322	012220 				MOV	(R2)+,(R0)+	; ..UNLOAD THE QUOTIENT
   7693	011324	012220 				MOV	(R2)+,(R0)+	; ..
   7694	011326	011210 				MOV	(R2),(R0)	; ..
   7695	011330	012702 	007106'			MOV	#TPDRMN,R2	; ..POINT TO THE REMAINDER
   7696	011334	012221 				MOV	(R2)+,(R1)+	; ..UNLOAD THE REMAINDER
   7697	011336	012221 				MOV	(R2)+,(R1)+	; ..
   7698	011340	011211 				MOV	(R2),(R1)	; ..
   7699	011342					POP	<R2,R3>		; ..RESTORE OTHER REGISTERS
	011342	012602 				 MOV	(SP)+,R2
	011344	012603 				 MOV	(SP)+,R3
   7700	011346	000506 				BR	50$		; AND GO AWAY
   7701						;
   7702	011350				TPDDCK:
   7703	011350					ERROR$	DCK		; ERROR -- DIVIDE CHECK
	011350	012746 	014603 			 MOV	#^RDCK,-(SP)
	011354	104400 				 TRAP	TC.ERR
   7704						;
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 198
.TPCLR -- SUBROUTINE TO CLEAR A 48 BIT NUMBER 7601.19

   7706					.SBTTL	.TPCLR -- SUBROUTINE TO CLEAR A 48 BIT NUMBER 7601.19
   7707
   7708					;+
   7709					; .TPCLR -- SUBROUTINE TO CLEAR A 48 BIT NUMBER
   7710					; .TPCOM -- SUBROUTINE TO COMPLEMENT A 48 BIT NUMBER.
   7711					; .TPNEG -- SUBROUTINE TO NEGATE A 48 BIT NUMBER.
   7712					; .TPXTN -- SUBROUTINE TO SIGN EXTEND A 36 BIT NUMBER INTO A 48 BIT NUMBER
   7713					;
   7714					; THESE SUBROUTINE PERFORM THE FUNCTIONS INDICATED. ALL SUBROUTINES
   7715					; ACCEPT A DESTINATION POINTER IN R0. ALL SUBROUTINES
   7716					; RETURN THE POINTER UNALTERED. NO OTHER REGISTERS ARE ALTERED
   7717					; BY THESE ROUTINES.
   7718					;
   7719					; INPUT ARGUMENTS:
   7720					;
   7721					;	R0 POINTS TO THE DESTINATION OPERAND
   7722					;
   7723					; OUTPUT ARGUMENTS:
   7724					;
   7725					;	R0 POINTS TO THE DESINATION OPERAND
   7726					;
   7727					; ERROR CODES RETURNED:
   7728					;
   7729					;	NONE.
   7730					;-
   7731
   7732	011356				.TPCLR::			; CLEAR A 48 BIT WORD
   7733	011356	005020 				CLR	(R0)+		; SO
   7734	011360	005020 				CLR	(R0)+
   7735	011362	005010 				CLR	(R0)
   7736	011364	000500 				BR	60$		; RESET R0 AND RETURN
   7737						;
   7738
   7739	011366				.TPCOM::			; COMPLEMENT A 48 BIT NUMBER
   7740	011366	005120 				COM	(R0)+		; COMPLEMENT
   7741	011370	005120 				COM	(R0)+		; EACH WORD
   7742	011372	005110 				COM	(R0)		; IN THE TRIPLET
   7743	011374	000474 				BR	60$		; RESET R0 AND RETURN
   7744						;
   7745
   7746	011376				.TPNEG::			; NEGATE A 48 BIT NUMBER
   7747	011376					CALL	.TPCOM		; FIRST COMPLEMENT THE NUMBER
	011376	004737 	011366'			 JSR	PC,.TPCOM
   7748	011402	000447 				BR	.TPINC		; -0 + NOT(0)+1 AND RETURN
   7749						;
   7750
   7751	011404				.TPXTN::
   7752	011404	032760 	000010 	000004 		BIT	#10,4(R0)	; TEST THE SIGN BIT
   7753	011412	001466 				BEQ	70$		; EXIT IF POSITIVE
   7754	011414	052760 	177760 	000004 		BIS	#^C17,4(R0)	; SIGN EXTEND IF NEGATIVE
   7755	011422	000462 				BR	70$		; EXIT
   7756						;
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 199
.TPCMP -- SUBROUTINE TO COMPARE TWO 48 BIT NUMBERS 7610.19

   7758					.SBTTL	.TPCMP -- SUBROUTINE TO COMPARE TWO 48 BIT NUMBERS 7610.19
   7759
   7760					;+
   7761					; .TPCMP -- SUBROUTINE TO COMPARE TWO 48 BIT NUMBERS.
   7762					;
   7763					; THIS SUBROUTINE WILL COMPARE THE 48 BIT NUMBER POINTED TO BY
   7764					; R0 AND THE 48 BIT NUMBER POINTED TO BY R1 IN THE CALL.
   7765					;
   7766					; INPUT ARGUMENTS:
   7767					;
   7768					;	R0 POINTS TO THE FIRST NUMBER
   7769					;	R1 POINTS TO THE SECOND NUMBER
   7770					;
   7771					; OUTPUT ARGUMENTS:
   7772					;
   7773					;	R0 POINTS TO THE FIRST NUMBER
   7774					;	R1 POINTS TO THE SECOND NUMBER
   7775					;	CC-N IS SET IF (R0) .LT. (R1)
   7776					;	CC-Z IS SET IF (R0) .EQ. (R1)
   7777					;	CC-Z IS CLEAR IF (R0) .GT. (R1)
   7778					;
   7779					; ERROR CODES RETURNED:
   7780					;
   7781					;	NONE.
   7782					;-
   7783
   7784	011424				.TPCMP::			; COMPARE TWO 48 BIT NUMBERS
   7785	011424	026061 	000004 	000004 		CMP	4(R0),4(R1)	; COMPARE THE HIGH WORDS
   7786	011432	001056 				BNE	70$		; NOT EQUAL -- EXIT
   7787	011434	026061 	000002 	000002 		CMP	2(R0),2(R1)	; COMPARE THE MIDDLE WORDS
   7788	011442	001001 				BNE	30$		; NOT EQUAL -- EXIT
   7789	011444	021011 				CMP	(R0),(R1)	; COMPARE THE LOW WORDS
   7790	011446				30$:
   7791	011446	000250 				CLN			; CLEAR CC-N
   7792	011450	000242 				CLV			; CLEAR CC-V
   7793	011452	103046 				BCC	70$		; BRANCH IF NON-NEGATIVE
   7794	011454	000270 				SEN			; NEGATIVE -- SET CC-N
   7795	011456	000444 				BR	70$		; EXIT
   7796						;
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 200
.TPTST -- TEST A 48 BIT NUMBER FOR ZERO 7601.19

   7798					.SBTTL	.TPTST -- TEST A 48 BIT NUMBER FOR ZERO 7601.19
   7799
   7800					;+
   7801					; .TPTST -- TEST A 48 BIT NUMBER FOR ZERO.
   7802					;
   7803					; THIS SUBROUTINE WILL TEST THE 48 BIT NUMBER POINTED TO BY R0 TO
   7804					; SEE IF IT ZERO OR NON-ZERO. IF THE NUMBER IS ZERO, CC-Z IS SET
   7805					; ON RETURN, IF NON-ZERO, CC-Z IS CLEAR SET ON RETURN.
   7806					; NO REGISTERS ARE ALTERED BY THIS SUBROUTINE.
   7807					;
   7808					; INPUT ARGUMENTS:
   7809					;
   7810					;	R0 POINTS TO THE NUMBER TO BE TESTED
   7811					;
   7812					; OUTPUT ARGUMENTS:
   7813					;
   7814					;	R0 POINTS TO THE TESTED NUMBER
   7815					;	CC-Z IS SET IF THE NUMBER IS ZERO
   7816					;	CC-Z IS CLEAR IF THE NUMBER IS NON-ZERO
   7817					;
   7818					; ERROR CODES RETURNED:
   7819					;
   7820					;	NONE.
   7821					;-
   7822
   7823	011460				.TPTST::			; TEST A TRIPLE PRECISION NUMBER FOR ZERO
   7824	011460	005760 	000004 			TST	4(R0)		; TEST THE HIGH WORD
   7825	011464	001041 				BNE	70$		; NON ZERO?
   7826	011466	005760 	000002 			TST	2(R0)		; TEST THE MIDDLE WORD
   7827	011472	001001 				BNE	40$		; NON ZERO?
   7828	011474	005710 				TST	(R0)		; TEST THE LOW WORD
   7829	011476				40$:
   7830	011476	000250 				CLN			; CLEAR CC-N
   7831	011500	000433 				BR	70$		; EXIT
   7832						;
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 201
.TPADD -- SUBROUTINE TO ADD TWO 48 BIT NUMBERS 7601.15

   7834					.SBTTL	.TPADD -- SUBROUTINE TO ADD TWO 48 BIT NUMBERS 7601.15
   7835
   7836					;+
   7837					; .TPADD -- SUBROUTINE TO ADD TWO 48 BIT NUMBERS.
   7838					;
   7839					; THIS SUBROUTINE ADDS TWO 48 BIT ADDENDS WHICH ARE POINTED TO BY
   7840					; R0 AND R1 IN THE CALL, AND RETURNS A POINTER TO THE SUM IN R0.
   7841					; THE ADDEND POINTED TO BY R1 IS ADDED TO THAT POINTED TO BY R0.
   7842					;
   7843					; INPUT ARGUMENTS:
   7844					;
   7845					;	R0 POINTS TO THE FIRST ADDEND
   7846					;	R1 POINTS TO THE SECOND ADDEND
   7847					;
   7848					; OUTPUT ARGUMENTS:
   7849					;
   7850					;	R0 POINTS TO THE SUM
   7851					;	R1 POINTS TO THE SECOND ADDEND
   7852					;
   7853					; ERROR CODES RETURNED:
   7854					;
   7855					;	NONE.
   7856					;-
   7857
   7858	011502				.TPADD::
   7859	011502	062120 				ADD	(R1)+,(R0)+	; ADD LOW ORDER PARTS
   7860	011504	005510 				ADC	(R0)		; CARRY ANY OVERFLOW
   7861	011506	005560 	000002 			ADC	2(R0)		; AND ANY OVER FLOW FROM THAT
   7862	011512	062120 				ADD	(R1)+,(R0)+	; ADD MIDDLE WORD
   7863	011514	005510 				ADC	(R0)		; FIX CARRIES
   7864	011516	061110 				ADD	(R1),(R0)	; ADD HIGH ORDER PARTS
   7865	011520	000421 				BR	50$		; RESET REGISTERS ANS EXIT
   7866						;
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 202
.TPINC -- SUBROUTINE TO INCREMENT A 48 BIT NUMBER 7601.19

   7868					.SBTTL	.TPINC -- SUBROUTINE TO INCREMENT A 48 BIT NUMBER 7601.19
   7869
   7870					;+
   7871					; .TPINC -- SUBROUTINE TO INCREMENT A 48 BIT NUMBER.
   7872					; .TPDEC -- SUBROUTINE TO DECREMENT A 48 BIT NUMBER.
   7873					;
   7874					; THESE SUBROUTINES WILL INCREMENT OR DECREMENT A 48 BIT NUMBER
   7875					; POINTED TO BY R0 IN THE CALL. ON RETURN, THE POINTER IN R0 IS
   7876					; UNCHANGED. NO OTHER REGISTERS ARE ALTERED BY THESE SUBROUTINES.
   7877					;
   7878					; INPUT ARGUMENTS:
   7879					;
   7880					;	R0 POINTS TO THE OPERAND
   7881					;
   7882					; OUTPUT ARGUMENTS:
   7883					;
   7884					;	R0 POINTS TO THE OPERAND
   7885					;
   7886					; ERROR CODES RETURNED:
   7887					;
   7888					;	NONE.
   7889					;-
   7890
   7891	011522				.TPINC::			; INCREMENT A 48 BIT NUMBER
   7892	011522	062720 	000001 			ADD	#1,(R0)+	; DO THE INCREMENT
   7893	011526	005520 				ADC	(R0)+		; AND CARRY THE CARRIES
   7894	011530	005510 				ADC	(R0)
   7895	011532	000415 				BR	60$		; AND EXIT
   7896						;
   7897
   7898	011534				.TPDEC::			; DECREMENT A 48 BIT NUMBER
   7899	011534	162720 	000001 			SUB	#1,(R0)+	; DO THE DECREMENT
   7900	011540	005620 				SBC	(R0)+		; AND STRAIGHTEN OUT THE CARRIES
   7901	011542	005610 				SBC	(R0)
   7902	011544	000410 				BR	60$		; ADJUST R0 AND RETURN
   7903						;
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 203
.TPSUB -- SUBROUTINE TO SUBTRACT TWO 48 BIT NUMBERS 7601.15

   7905					.SBTTL	.TPSUB -- SUBROUTINE TO SUBTRACT TWO 48 BIT NUMBERS 7601.15
   7906
   7907					;+
   7908					; .TPSUB -- SUBROUTINE TO SUBTRACT TWO 48 BIT NUMBERS.
   7909					;
   7910					; THIS SUBROUTINE WILL SUBTRACT TWO 48 BIT NUMBERS POINTED TO BY R0,
   7911					; (MINUEND), AND R1 (SUBTRAHEND) IN THE CALL, AND WILL RETURN A
   7912					; POINTER TO THE DIFFERENCE IN R0.
   7913					;
   7914					; INPUT ARGUMENTS:
   7915					;
   7916					;	R0 POINTS TO THE MINUEND
   7917					;	R1 POINTS TO THE SUBTRAHEND
   7918					;
   7919					; OUTPUT ARGUMENTS:
   7920					;
   7921					;	R0 POINTS TO THE DIFFERENCE
   7922					;	R1 POINTS TO THE SUBTRAHEND
   7923					;
   7924					; ERROR CODES RETURNED:
   7925					;
   7926					;	NONE.
   7927					;-
   7928
   7929	011546				.TPSUB::
   7930	011546	162120 				SUB	(R1)+,(R0)+	; SUBTRACT LOW ORDER PARTS
   7931	011550	005610 				SBC	(R0)		; CARRY ANY OVERFLOW
   7932	011552	005660 	000002 			SBC	2(R0)		; AND ANY OVERFLOWS FROM THAT
   7933	011556	162120 				SUB	(R1)+,(R0)+
   7934	011560	005610 				SBC	(R0)		; FIX CARRIES
   7935	011562	161110 				SUB	(R1),(R0)	; SUBTRACT HIGH ORDER PARTS
   7936	011564				50$:
   7937	011564	024141 				CMP	-(R1),-(R1)	; RESET R1
   7938	011566				60$:
   7939	011566	024040 				CMP	-(R0),-(R0)	; RESET R0
   7940	011570				70$:
   7941	011570					RETURN			; AND EXIT
	011570	000207 				 RTS	PC
   7942
   7943						.DSABL	LSB
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 204
.TPMUL -- 48 BIT INTEGER MULTPLY SUBROUTINE 7601.19

   7945					.SBTTL	.TPMUL -- 48 BIT INTEGER MULTPLY SUBROUTINE 7601.19
   7946
   7947					;+
   7948					; .TPMUL -- 48 BIT INTEGER MULTPLY SUBROUTINE.
   7949					;
   7950					; THIS SUBROUTINE WILL MULTIPLY THE 48 BIT MULTIPLICAND POINTED
   7951					; TO BY R0 BY THE 48 BIT MULTIPLIER POINTER IN R1, AND RETURN A
   7952					; POINTER TO THE 48 BIT PRODUCT IN R0. THE MULTIPLIER IS UNCHANGED,
   7953					; AND NO OTHER REGISTERS ARE ALTERED BY THIS SUBROUTINE.
   7954					;
   7955					; INPUT ARGUMENTS:
   7956					;
   7957					;	R0 POINTS TO THE MULTIPLICAND
   7958					;	R1 POINTS TO THE MULTIPLIER
   7959					;
   7960					; OUTPUT ARGUMENTS:
   7961					;
   7962					;	R0 POINTS TO THE PRODUCT
   7963					;	R1 POINTS TO THE MULTIPLIER
   7964					;
   7965					; ERROR CODES RETURNED:
   7966					;
   7967					;	NONE.
   7968					;-
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 205
.TPMUL -- 48 BIT INTEGER MULTPLY SUBROUTINE 7601.19

   7970	011572				.TPMUL::
   7971	011572					PUSH	<R2,R1,R0>	; SAVE CALLER'S REGISTERS
	011572	010246 				 MOV	R2,-(SP)
	011574	010146 				 MOV	R1,-(SP)
	011576	010046 				 MOV	R0,-(SP)
   7972	011600					CALL	.TPTST		; ...SEE IF MULTIPLICAND .EQ. 0
	011600	004737 	011460'			 JSR	PC,.TPTST
   7973	011604	001460 				BEQ	50$		; ...YES -- QUIT NOW
   7974	011606	010100 				MOV	R1,R0		; ...NO -- POINT TO MULTIPLIER
   7975	011610					CALL	.TPTST		; ...SEE IF IT IS .EQ. 0
	011610	004737 	011460'			 JSR	PC,.TPTST
   7976	011614	001004 				BNE	10$		; ...NO -- ALL OK
   7977	011616	011600 				MOV	(SP),R0		; ...YES -- GET MULTIPLICAND POINTER
   7978	011620					CALL	.TPCLR		; ...AND MAKE IT .EQ. 0
	011620	004737 	011356'			 JSR	PC,.TPCLR
   7979	011624	000450 				BR	50$		; ...RETURN TO CALLER
   7980						;
   7981	011626				10$:
   7982	011626	011600 				MOV	(SP),R0		; ...R0 POINTS TO MULTIPLCAND
   7983	011630					PUSH	<(R1)+,(R1)+,(R1),R1>
	011630	012146 				 MOV	(R1)+,-(SP)
	011632	012146 				 MOV	(R1)+,-(SP)
	011634	011146 				 MOV	(R1),-(SP)
	011636	010146 				 MOV	R1,-(SP)
   7984	011640	024141 				CMP	-(R1),-(R1)	; .......CALLER'S MULTIPLIER SAVED
   7985	011642	010102 				MOV	R1,R2		; .......R2 POINTS TO THE MULTIPLIER
   7986	011644	010001 				MOV	R0,R1		; .......R1 POINTS TO THE MULTIPLICAND
   7987	011646	005046 				CLR	-(SP)		; .......CLEAR A BUFFER ON THE STACK
   7988	011650	005046 				CLR	-(SP)		; ........
   7989	011652	005046 				CLR	-(SP)		; .........
   7990	011654	010600 				MOV	SP,R0		; ..........R0 POINTS TO TEMPORARY RESULT
   7991	011656				20$:
   7992	011656	006062 	000004 			ROR	4(R2)		; ..........SHIFT THE MULTIPLIER RIGHT
   7993	011662	006062 	000002 			ROR	2(R2)		; ..........
   7994	011666	006012 				ROR	(R2)		; ..........
   7995	011670	103002 				BCC	30$		; ..........DID WE GET A CARRY?
   7996	011672					CALL	.TPADD		; ..........YES -- ADD THE MULTIPLICAND
	011672	004737 	011502'			 JSR	PC,.TPADD
   7997	011676				30$:
   7998	011676	006311 				ASL	(R1)		; ..........DOUBLE MULTIPLICAND IN ANY CASE
   7999	011700	006161 	000002 			ROL	2(R1)		; ..........
   8000	011704	006161 	000004 			ROL	4(R1)		; ..........
   8001	011710					PUSH	R0		; ..........SAVE RESULT POINTER
	011710	010046 				 MOV	R0,-(SP)
   8002	011712	010200 				MOV	R2,R0		; ...........POINT TO MULTIPLIER
   8003	011714					CALL	.TPTST		; ...........IS IT .EQ. 0?
	011714	004737 	011460'			 JSR	PC,.TPTST
   8004	011720	001402 				BEQ	40$		; ...........YES -- SET UP FOR RETURN
   8005	011722					POP	R0		; ...........NO -- RESTORE R0
	011722	012600 				 MOV	(SP)+,R0
   8006	011724	000754 				BR	20$		; ..........AND CONTINUE
   8007						;
   8008
   8009					;	[CONTINUED ON THE FOLLOWING PAGE]
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 206
.TPMUL -- 48 BIT INTEGER MULTPLY SUBROUTINE 7601.19

   8011					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8012
   8013					; HERE TO RETURN PRODUCT AND EXIT
   8014
   8015	011726				40$:
   8016	011726					POP	R0		; ...........GET RID OF MULTIPLIER POINTER
	011726	012600 				 MOV	(SP)+,R0
   8017	011730					POP	<(R1)+,(R1)+,(R1)>
	011730	012621 				 MOV	(SP)+,(R1)+
	011732	012621 				 MOV	(SP)+,(R1)+
	011734	012611 				 MOV	(SP)+,(R1)
   8018	011736					POP	<R1,(R1),-(R1),-(R1)>
	011736	012601 				 MOV	(SP)+,R1
	011740	012611 				 MOV	(SP)+,(R1)
	011742	012641 				 MOV	(SP)+,-(R1)
	011744	012641 				 MOV	(SP)+,-(R1)
   8019	011746				50$:
   8020	011746					POP	<R0,R1,R2>	; ...RESTORE REGISTERS
	011746	012600 				 MOV	(SP)+,R0
	011750	012601 				 MOV	(SP)+,R1
	011752	012602 				 MOV	(SP)+,R2
   8021	011754					RETURN			; TO CALLER
	011754	000207 				 RTS	PC
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 207
.TPSHI -- SHIFT A 48 BIT NUMBER BY A 16 BIT NUMBER 7601.19

   8023					.SBTTL	.TPSHI -- SHIFT A 48 BIT NUMBER BY A 16 BIT NUMBER 7601.19
   8024
   8025					;+
   8026					; .TPSHI -- SUBROUTINE TO SHIFT A 48 BIT NUMBER BY A 16 BIT NUMBER.
   8027					;
   8028					; THIS SUBROUTINE SHIFTS THE 48 BIT NUMBER POINTED TO BY R0 BY THE
   8029					; 16 BIT NUMBER IN R1 IN THE CALL. ON RETURN R0 POINTS TO THE SHIFTED
   8030					; 48 BIT NUMBER. THE DIRECTION OF THE SHIFT IS DETERMINED BY THE SIGN
   8031					; OF THE 16 BIT NUMBER IN R1. NO REGISTERS ARE ALTERED BY THIS ROUTINE.
   8032					;
   8033					; INPUT ARGUMENTS:
   8034					;
   8035					;	R0 POINTS TO THE NUMBER TO BE SHIFTED
   8036					;	R1 HOLDS THE 16 BIT SHIFT COUNT
   8037					;
   8038					; OUTPUT ARGUMENTS:
   8039					;
   8040					;	R0 POINTS TO THE SHIFTED NUMBER
   8041					;	R0 HOLDS THE 16 BIT SHIFT COUNT
   8042					;
   8043					; ERROR CODES RETURNED:
   8044					;
   8045					;	NONE.
   8046					;-
   8047
   8048	011756				.TPSHI::
   8049	011756					PUSH	R1		; SAVE R1 FROM DESTRUCTION
	011756	010146 				 MOV	R1,-(SP)
   8050	011760	001416 				BEQ	30$		; .ON ZERO DO NOTHING
   8051	011762	003002 				BGT	10$		; .REALLY MEANS LEFT
   8052	011764	005401 				NEG	R1		; .MEANS RIGHT, SO NEGATE
   8053	011766	000406 				BR	20$		; .AND GO RIGHT
   8054						;
   8055	011770				10$:
   8056	011770	006320 				ASL	(R0)+		; .CLEAR CC-C AND SHIFT
   8057	011772	006120 				ROL	(R0)+		; .USE CC-C AND SHIFT
   8058	011774	006110 				ROL	(R0)		; .
   8059	011776	024040 				CMP	-(R0),-(R0)	; .POINT BACK TO BEGINNING
   8060	012000	077105 				SOB	R1,10$		; .AND LOOP 'TILL DONE
   8061	012002	000405 				BR	30$		; .DONE -- EXIT
   8062						;
   8063	012004				20$:				; .HERE TO SHIFT RIGHT
   8064	012004	022020 				CMP	(R0)+,(R0)+	; .FIX POINTER TO POINT TO HIGH PART
   8065	012006	006210 				ASR	(R0)		; .SHIFT HIGH PART
   8066	012010	006040 				ROR	-(R0)		; .THEN MIDDLE PART
   8067	012012	006040 				ROR	-(R0)		; .THEN LOW PART
   8068	012014	077105 				SOB	R1,20$		; .UNTIL DONE
   8069	012016				30$:
   8070	012016					POP	R1		; .RESTORE R1
	012016	012601 				 MOV	(SP)+,R1
   8071	012020					RETURN			; AND RETURN TO CALLER
	012020	000207 				 RTS	PC
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 208
.TPSHL -- SHIFT A 48 BIT NUMBER BY A 48 BIT NUMBER 7601.19

   8073					.SBTTL	.TPSHL -- SHIFT A 48 BIT NUMBER BY A 48 BIT NUMBER 7601.19
   8074
   8075					;+
   8076					; .TPSHL -- SUBROUTINE TO SHIFT A 48 BIT NUMBER BY A 48 BIT NUMBER.
   8077					;
   8078					; THIS SUBROUTINE WILL SHIFT THE 48 BIT NUMBER POINTED TO BY R0 BY
   8079					; THE 48 BIT NUMBER POINTED TO BY R1 IN THE CALL. BOTH POINTERS ARE
   8080					; RETURNED UNALTERED, AND NO OTHER REGISTERS ARE ALTERED BY THE
   8081					; SUBROUTINE. THE DIRECTION OF THE SHIFT IS DETERMINED BY THE SIGN
   8082					; OF THE 48 BIT NUMBER POINTED TO BY R1.
   8083					;
   8084					; INPUT ARGUMENTS:
   8085					;
   8086					;	R0 POINTS TO THE NUMBER TO BE SHIFTED
   8087					;	R1 POINTS TO THE SHIFT COUNT
   8088					;
   8089					; OUTPUT ARGUMENTS:
   8090					;
   8091					;	R0 POINTS TO THE SHIFTED NUMBER
   8092					;	R1 POINTS TO THE SHIFT COUNT
   8093					;
   8094					; ERROR CODES RETURNED:
   8095					;
   8096					;	NONE.
   8097					;-
   8098
   8099	012022				.TPSHL::
   8100	012022					PUSH	<(R1)+,(R1)+,(R1),R1>
	012022	012146 				 MOV	(R1)+,-(SP)
	012024	012146 				 MOV	(R1)+,-(SP)
	012026	011146 				 MOV	(R1),-(SP)
	012030	010146 				 MOV	R1,-(SP)
   8101	012032	024141 				CMP	-(R1),-(R1)	; ....BACK THE POINTER UP
   8102	012034					PUSH	<R2,R0>		; ....SAVE R2 AND R0
	012034	010246 				 MOV	R2,-(SP)
	012036	010046 				 MOV	R0,-(SP)
   8103	012040	010100 				MOV	R1,R0		; ......POINT TO THE SHIFT COUNT
   8104	012042					CALL	.TPXTN		; ......DO THE SIGN EXTENSION
	012042	004737 	011404'			 JSR	PC,.TPXTN
   8105	012046					CALL	.TPTST		; ......SEE WHAT IT IS
	012046	004737 	011460'			 JSR	PC,.TPTST
   8106	012052	001432 				BEQ	30$		; ......EXIT IF .EQ. ZERO
   8107	012054	002415 				BLT	20$		; ......SHIFT RIGHT IF .LT. ZERO
   8108
   8109					;	[CONTINUED ON THE FOLLOWING PAGE]
TPSIM -- TRIPLE PRECISION ARITH	MACRO M1113  10-NOV-81 17:44  PAGE 209
.TPSHL -- SHIFT A 48 BIT NUMBER BY A 48 BIT NUMBER 7601.19

   8111					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8112
   8113	012056				10$:				; ......HERE TO SHIFT LEFT
   8114	012056	010002 				MOV	R0,R2		; ......SHIFT COUNT POINTER TO R2
   8115	012060	011600 				MOV	(SP),R0		; ......POINT TO THE NUMBER
   8116	012062	012701 	000001 			MOV	#^D1,R1		; ......SUBSTITUTE SHIFT COUNT
   8117	012066					CALL	.TPSHI		; ......SHIFT IT ONCE
	012066	004737 	011756'			 JSR	PC,.TPSHI
   8118	012072	010200 				MOV	R2,R0		; ......REAL SHIFT COUNT POINTER TO R0
   8119	012074					CALL	.TPDEC		; ......DECREMENT IT
	012074	004737 	011534'			 JSR	PC,.TPDEC
   8120	012100					CALL	.TPTST		; ......ARE WE DONE?
	012100	004737 	011460'			 JSR	PC,.TPTST
   8121	012104	001364 				BNE	10$		; ......NO -- KEEP GOING
   8122	012106	000414 				BR	30$		; ......YES -- EXIT
   8123						;
   8124	012110				20$:				; ......HERE TO SHIFT RIGHT
   8125	012110	010002 				MOV	R0,R2		; ......SHIFT COUNT TO R2
   8126	012112	011600 				MOV	(SP),R0		; ......POINT TO THE NUMBER
   8127	012114	012701 	177777 			MOV	#-^D1,R1	; ......SUBSTITUTE SHIFT COUNT
   8128	012120					CALL	.TPSHI		; ......SHIFT IT
	012120	004737 	011756'			 JSR	PC,.TPSHI
   8129	012124	010200 				MOV	R2,R0		; ......REAL SHIFT COUNT POINTER TO R0
   8130	012126					CALL	.TPINC		; ......INCREMENT IT
	012126	004737 	011522'			 JSR	PC,.TPINC
   8131	012132					CALL	.TPTST		; ......ARE WE DONE?
	012132	004737 	011460'			 JSR	PC,.TPTST
   8132	012136	001364 				BNE	20$		; ......NO -- KEEP GOING
   8133	012140				30$:
   8134	012140					POP	<R0,R2>		; ......RESTORE R0 AND R2
	012140	012600 				 MOV	(SP)+,R0
	012142	012602 				 MOV	(SP)+,R2
   8135	012144					POP	<R1,(R1),-(R1),-(R1)>
	012144	012601 				 MOV	(SP)+,R1
	012146	012611 				 MOV	(SP)+,(R1)
	012150	012641 				 MOV	(SP)+,-(R1)
	012152	012641 				 MOV	(SP)+,-(R1)
   8136	012154					RETURN			; RETURN TO CALLER
	012154	000207 				 RTS	PC
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 210
.TPSHL -- SHIFT A 48 BIT NUMBER BY A 48 BIT NUMBER 7601.19

   8138					.TITLE	TRACK -- DIAGNOSTIC FUNCTION TRACK MODULE 7603.30
   8139
   8140						.IDENT	"005000"
   8141
   8142					;
   8143					;                             COPYRIGHT (C) 1975, 1979 BY
   8144					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   8145					;
   8146					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   8147					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   8148					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   8149					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   8150					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   8151					;
   8152					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   8153					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   8154					;       CORPORATION.
   8155					;
   8156					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   8157					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   8158					;
   8159					;		MODULE: DAIGNOSTIC FUNCTION TRACK
   8160					;
   8161					;		VERSION: 05-00
   8162					;
   8163					;		AUTHOR: R. BELANGER
   8164					;
   8165					;		DATE: 7603.30
   8166					;
   8167					;	THIS MODULE CONTAINS:
   8168					;
   8169					;	1) DIAGNOSTIC FUNCTION TRACK CODE
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 211
.TRACK -- DIAGNOSTIC FUNCTION TRACK SUBROUTINE 7512.09

   8171					.SBTTL	.TRACK -- DIAGNOSTIC FUNCTION TRACK SUBROUTINE 7512.09
   8172
   8173					;+
   8174					; .FRTRK -- SUBROUTINE TO TRACK A FUNCTION READ.
   8175					; .FWTRK -- SUBROUTINE TO TRACK A FUNCTION WRITE.
   8176					; .FXTRK -- SUBROUTINE TO TRACK A FUNCTION EXECUTE.
   8177					;
   8178					; THESE SUBROUTINES TRACK A FUNCTION READ, WRITE, OR EXECUTE
   8179					; BY DISPLAYING THE FUNCTION CODE AND THE CONTENT OF THE BUFFER
   8180					; ON THE FRONT END OUTPUT DEVICE.
   8181					;
   8182					; THESE SUBROUTINES ARE CALLED INTERNALLY AND ARE DEPENDENT UPON THE
   8183					; STATE OF THE SWITCHES IN ".TRKWD". THE ".TRKWD" SWITCHES ARE TURNED
   8184					; ON OR OFF BY THE "SET" AND "CLEAR TRACK" COMMANDS, RESPECTIVELY.
   8185					;
   8186					; ERROR CODES RETURNED:
   8187					;
   8188					;	NONE.
   8189					;-
   8190
   8192
   8193						.ENABL	LSB
   8194
   8195	012156				.FRTRK::
   8196	012156					PUSH	R0		; SAVE R0 ON THE STACK
	012156	010046 				 MOV	R0,-(SP)
   8197	012160					PUSH	.KLDFR+2	; .SAVE THE FR CODE TOO
	012160	013746 	000340'			 MOV	.KLDFR+2,-(SP)
   8198	012164					PUSH	#.DFRB		; ..AND THE BUFFER ADDRESS
	012164	012746 	000312'			 MOV	#.DFRB,-(SP)
   8199	012170	012700 	001765'			MOV	#TFRMSG,R0	; ...MESSAGE POINTER TO R0
   8200	012174	000416 				BR	10$		; ...DO THE TRACKING
   8201						;
   8202	012176				.FWTRK::
   8203	012176					PUSH	R0		; SAVE R0 ON THE STACK
	012176	010046 				 MOV	R0,-(SP)
   8204	012200					PUSH	.KLDFW+2	; .SAVE THE FW CODE
	012200	013746 	000352'			 MOV	.KLDFW+2,-(SP)
   8205	012204					PUSH	#.DFWB		; ..AND THE BUFFER ADDRESS
	012204	012746 	000304'			 MOV	#.DFWB,-(SP)
   8206	012210	012700 	002002'			MOV	#TFWMSG,R0	; ...MESSAGE POINTER TO R0
   8207	012214	000406 				BR	10$		; ...GO TRACK IT
   8208						;
   8209	012216				.FXTRK::
   8210	012216					PUSH	R0		; SAVE R0 ON THE STACK
	012216	010046 				 MOV	R0,-(SP)
   8211	012220					PUSH	.KLDFX+2	; .SAVE THE FX CODE
	012220	013746 	000364'			 MOV	.KLDFX+2,-(SP)
   8212	012224	005046 				CLR	-(SP)		; ..NO BUFFER ADDRESS
   8213	012226	012700 	002017'			MOV	#TFXMSG,R0	; ...MESSAGE POINTER TO R0
   8214					;	BR	10$		; ...AND FALL INTO COMMON CODE
   8215						;
   8216
   8217					;	[CONTINUED ON THE FOLLOWING PAGE]
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 212
.TRACK -- DIAGNOSTIC FUNCTION TRACK SUBROUTINE 7512.09

   8219					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8220
   8221	012232				10$:
   8222	012232	012737 	177777 	000166'		MOV	#-^D1,.LDZFL	; ...PRINT LEADING ZEROES
   8223	012240					CALL	.TYMSG		; ...PRINT THE MESSAGE
	012240	004737 	015446'			 JSR	PC,.TYMSG
   8224	012244	016600 	000002 			MOV	2(SP),R0	; ...GET THE FUNCTION CODE
   8225	012250	000300 				SWAB	R0		; ...SWAP THE BYTES
   8226	012252	042700 	177400 			BIC	#177400,R0	; ...FLUSH JUNK FROM HIGH BYTE
   8227	012256	006200 				ASR	R0		; ...DIVIDE IT BY 2
   8228	012260					CALL	.TYP3D		; ...TYPE THAT
	012260	004737 	015016'			 JSR	PC,.TYP3D
   8229	012264	011600 				MOV	(SP),R0		; ...BUFFER ADDRESS?
   8230	012266	001406 				BEQ	20$		; ...NO -- JUST EXIT
   8231	012270					CALL	.TYSLS		; ...YES --  TYPE A SLASH AND
	012270	004737 	014556'			 JSR	PC,.TYSLS
   8232	012274					CALL	.TYSPC		; ...TYPE A <SPACE> AND
	012274	004737 	014566'			 JSR	PC,.TYSPC
   8233	012300					CALL	.TYKLN		; ...TYPE ITS CONTENT
	012300	004737 	015142'			 JSR	PC,.TYKLN
   8234	012304				20$:
   8235	012304					CALL	.TCRLF		; ...NOW A <CRLF>
	012304	004737 	015536'			 JSR	PC,.TCRLF
   8236	012310	022626 				CMP	(SP)+,(SP)+	; ...GET RID OF BUFFER POINTER AND CODE
   8237	012312					POP	R0		; .RESTORE R0
	012312	012600 				 MOV	(SP)+,R0
   8238	012314					RETURN			; AND GO AWAY
	012314	000207 				 RTS	PC
   8239
   8240						.DSABL	LSB
   8241
   8242	001765				.PSECT	MESSAG
   8243
   8244	001765				TFRMSG:
   8245	001765	   011 	   124 	   122 		.ASCIZ	%	TRACK > FR %
	001770	   101 	   103 	   113
	001773	   040 	   076 	   040
	001776	   106 	   122 	   040
	002001	   000
   8246	002002				TFWMSG:
   8247	002002	   011 	   124 	   122 		.ASCIZ	%	TRACK > FW %
	002005	   101 	   103 	   113
	002010	   040 	   076 	   040
	002013	   106 	   127 	   040
	002016	   000
   8248	002017				TFXMSG:
   8249	002017	   011 	   124 	   122 		.ASCIZ	%	TRACK > FX %
	002022	   101 	   103 	   113
	002025	   040 	   076 	   040
	002030	   106 	   130 	   040
	002033	   000
   8250	012316				.PSECT
   8251
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 213
.DTTRK -- SUBROUTINE TO TRACK DTE-20 OPERATIONS 7512.11

   8254					.SBTTL	.DTTRK -- SUBROUTINE TO TRACK DTE-20 OPERATIONS 7512.11
   8255
   8256					;+
   8257					; .DTTRK -- SUBROUTINE TO TRACK DTE-20 OPERATIONS
   8258					;
   8259					; THIS SUBROUTINE WILL TRACK DTE-20 OPERATIONS AND PRINT ALL DTE-20
   8260					; REFERENCES BY THE COMMAND PARSER ON THE CONSOLE OUTPUT DEVICE.
   8261					; THIS SUBROUTINE IS CALLED INTERNALLY, DEPENDENT UPON THE STATE OF
   8262					; THE DTE-20 TRACK FLAG ("TR.DTE") IN THE TRACK CONTROL WORD, ".TRKWD."
   8263					;
   8264					; CALLING SEQUENCE IS:
   8265					;
   8266					;	CALL	.DTTRK		; TRACK THE DTE-20
   8267					;				; ONLY RETURN
   8268					;
   8269					; THE DTE-20 REGISTER OPERATED UPON IS IDENTIFIED BY ONE OF THE FOLLOWING:
   8270					;
   8271					;	(A) DIAG 1 - DIAG WORD 1,
   8272					;	(B) DIAG 2 - DIAG WORD 2,
   8273					;	(C) STATUS - STATUS WORD,
   8274					;	(D) DIAG 3 - DIAG WORD 3.
   8275					;
   8276					; A READ OPERATION IS IDENTIFIED BY "RD", AND A WRITE OPERATION BY "WR".
   8277					;
   8278					; NO REGISTERS ARE ALTERED BY THIS SUBROUTINE.
   8279					;
   8280					; ERROR CODES RETURNED:
   8281					;
   8282					;	NONE.
   8283					;-
   8284
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 214
.DTTRK -- SUBROUTINE TO TRACK DTE-20 OPERATIONS 7512.11

   8287	012316				.DTTRK::
   8288	012316	012737 	177777 	000166'		MOV	#-^D1,.LDZFL	; PRINT LEADING ZEROES
   8289	012324					PUSH	R0		; SAVE R0
	012324	010046 				 MOV	R0,-(SP)
   8290	012326	012700 	002034'			MOV	#DTRMSG,R0	; .MESSAGE POINTER TO R0
   8291	012332					CALL	.TYMSG		; .PRINT IT
	012332	004737 	015446'			 JSR	PC,.TYMSG
   8292	012336	113700 	000303'			MOVB	.REGRW+3,R0	; .GET THE REGISTER OFFSET
   8293	012342	016000 	007130'			MOV	REGTAB(R0),R0	; .REGISTER MESSAGE POINTER TO R0
   8294	012346					CALL	.TYMSG		; .TYPE IT
	012346	004737 	015446'			 JSR	PC,.TYMSG
   8295	012352					CALL	.TYSPC		; .NOW A <SPACE>
	012352	004737 	014566'			 JSR	PC,.TYSPC
   8296	012356	005737 	000304'			TST	.REGRW+4	; .IS THIS A WRITE?
   8297	012362	001002 				BNE	10$		; .YES -- GO ON
   8298	012364	011600 				MOV	(SP),R0		; .NO -- DATA TO R0
   8299	012366	000402 				BR	20$		; .GO PRINT IT
   8300						;
   8301	012370				10$:
   8302	012370	017700 	000304'			MOV	@.REGRW+4,R0	; .GET WRITTEN DATA
   8303	012374				20$:
   8304	012374					CALL	.TYELN		; .PRINT THE DATA
	012374	004737 	014752'			 JSR	PC,.TYELN
   8305	012400	012700 	002115'			MOV	#DRDMSG,R0	; .READ MESSAGE POINTER TO R0
   8306	012404	005737 	000304'			TST	.REGRW+4	; .WAS IT A WRITE?
   8307	012410	001402 				BEQ	30$		; .YES -- GO ON
   8308	012412	012700 	002121'			MOV	#DWRMSG,R0	; .NO -- WRITE MESSAGE POINTER TO R0
   8309	012416				30$:
   8310	012416					CALL	.TYLIN		; .PRINT IT AND A <CRLF>
	012416	004737 	015432'			 JSR	PC,.TYLIN
   8311	012422					POP	R0		; .RESTORE R0
	012422	012600 				 MOV	(SP)+,R0
   8312	012424					RETURN			; TO CALLER
	012424	000207 				 RTS	PC
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 215
.DTTRK -- SUBROUTINE TO TRACK DTE-20 OPERATIONS 7512.11

   8314	007130				.PSECT	DATA
   8315
   8316	007130				REGTAB:
   8317	007130	002055'				.WORD	DW1MSG		; MESSAGE POINTERS
   8318	007132	002065'				.WORD	DW2MSG
   8319	007134	002075'				.WORD	STAMSG
   8320	007136	002105'				.WORD	DW3MSG
   8321
   8322	002034				.PSECT	MESSAG
   8323	002034				DTRMSG:
   8324	002034	   011 	   124 	   122 		.ASCIZ	%	TRACK > DTE-20 %
	002037	   101 	   103 	   113
	002042	   040 	   076 	   040
	002045	   104 	   124 	   105
	002050	   055 	   062 	   060
	002053	   040 	   000
   8325
   8326	002055				DW1MSG:
   8327	002055	   104 	   111 	   101 		.ASCIZ	%DIAG 1/%
	002060	   107 	   040 	   061
	002063	   057 	   000
   8328	002065				DW2MSG:
   8329	002065	   104 	   111 	   101 		.ASCIZ	%DIAG 2/%
	002070	   107 	   040 	   062
	002073	   057 	   000
   8330	002075				STAMSG:
   8331	002075	   123 	   124 	   101 		.ASCIZ	%STATUS/%
	002100	   124 	   125 	   123
	002103	   057 	   000
   8332	002105				DW3MSG:
   8333	002105	   104 	   111 	   101 		.ASCIZ	%DIAG 3/%
	002110	   107 	   040 	   063
	002113	   057 	   000
   8334
   8335	002115				DRDMSG:
   8336	002115	   040 	   122 	   104 		.ASCIZ	% RD%
	002120	   000
   8337	002121				DWRMSG:
   8338	002121	   040 	   127 	   122 		.ASCIZ	% WR%
	002124	   000
   8339	012426				.PSECT
   8340
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 216
.EDTRK -- EXAMINE / DEPOSIT TRACK SUBROUTINE 7512.09

   8343					.SBTTL	.EDTRK -- EXAMINE / DEPOSIT TRACK SUBROUTINE 7512.09
   8344
   8345					;+
   8346					; .EXTRK -- SUBROUTINE TO TRACK A KL EXAMINE.
   8347					; .DPTRK -- SUBROUTINE TO TRACK A KL DEPOSIT.
   8348					;
   8349					; THESE SUBROUTINES WILL TRACK A KL EXAMINE OR DEPOSIT BY
   8350					; DISPLAYING THE ADDRESS, DATA, AND REFERENCE TYPE OF THE EXAMINE
   8351					; OR DEPOSIT ON THE CONSOLE DEVICE AS IT IS EXECUTED.
   8352					;
   8353					; THESE SUBROUTINES ARE CALLED INTERNALLY DEPENDENT ON THE STATE OF
   8354					; THE TRACK CONTROL WORD ".TRKWD".
   8355					;
   8356					; THE SWITCHES IN ".TRKWD" ARE TURNED ON OR OFF BY THE "SET" AND
   8357					; "CLEAR TRACK" COMMANDS, RESPECTIVELY.
   8358					;
   8359					; NO REGISTERS ARE ALTERED BY THESE SUBROUTINES.
   8360					;
   8361					; ERROR CODES RETURNED:
   8362					;
   8363					;	NONE.
   8364					;-
   8365
   8367
   8368						.ENABL	LSB
   8369
   8370	012426				.EXTRK::
   8371	012426					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	012426	004537 	010302'			 JSR	R5,.REGSV
   8372	012432	012705 	002151'			MOV	#ETRMSG,R5	; PREAMBLE TO TYPE
   8373	012436	000404 				BR	10$		; DO COMMON CODE
   8374						;
   8375	012440				.DPTRK::
   8376	012440					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	012440	004537 	010302'			 JSR	R5,.REGSV
   8377	012444	012705 	002166'			MOV	#DTKMSG,R5	; PREAMBLE TO TYPE
   8378									; AND FALL INTO COMMON CODE
   8379
   8380					;	[CONTINUED ON THE FOLLOWING PAGE]
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 217
.EDTRK -- EXAMINE / DEPOSIT TRACK SUBROUTINE 7512.09

   8382					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8383
   8384	012450				10$:
   8385	012450					PUSH	R0		; SAVE R0 ON THE STACK
	012450	010046 				 MOV	R0,-(SP)
   8386	012452	011100 				MOV	(R1),R0		; .GET ADDRESS POINTER
   8387	012454	012702 	007140'			MOV	#TRADDR,R2	; .POINT TO OUR BLOCK
   8388	012460	012022 				MOV	(R0)+,(R2)+	; .AND LOAD IT
   8389	012462	012022 				MOV	(R0)+,(R2)+	; .
   8390	012464	005012 				CLR	(R2)		; .ZERO THE LAST WORD
   8391	012466	016100 	000002 			MOV	2(R1),R0	; .GET DATA POINTER
   8392	012472	012702 	007146'			MOV	#TRDATA,R2	; .POINT TO OUR BLOCK
   8393	012476	012022 				MOV	(R0)+,(R2)+	; .AND LOAD IT
   8394	012500	012022 				MOV	(R0)+,(R2)+	; .
   8395	012502	011012 				MOV	(R0),(R2)	; .
   8396	012504	010500 				MOV	R5,R0		; .PREAMBLE POINTER TO R0
   8397	012506					CALL	.TYMSG		; .PRINT IT
	012506	004737 	015446'			 JSR	PC,.TYMSG
   8398	012512	012700 	007140'			MOV	#TRADDR,R0	; .POINT TO ADDRESS
   8399	012516					CALL	.TYKLA		; .PRINT IT
	012516	004737 	015072'			 JSR	PC,.TYKLA
   8400	012522					CALL	.TYSLS		; .TYPE A SLASH
	012522	004737 	014556'			 JSR	PC,.TYSLS
   8401	012526					CALL	.TYSPC		; .AND A <SPACE>
	012526	004737 	014566'			 JSR	PC,.TYSPC
   8402	012532	012700 	007146'			MOV	#TRDATA,R0	; .POINT TO DATA
   8403	012536					CALL	.TYKLN		; .PRINT IT
	012536	004737 	015142'			 JSR	PC,.TYKLN
   8404	012542					CALL	.TYSPC		; .AND A <SPACE>
	012542	004737 	014566'			 JSR	PC,.TYSPC
   8405	012546	011600 				MOV	(SP),R0		; .GET TYPE
   8406	012550	006200 				ASR	R0		; .DIVIDE BY 16
   8407	012552	006200 				ASR	R0		; .
   8408	012554	006200 				ASR	R0		; .
   8409	012556	006200 				ASR	R0		; .
   8410	012560	016000 	007154'			MOV	EDTYTB(R0),R0	; .GET TYPE POINTER
   8411	012564					CALL	.TYLIN		; .PRINT IT AND A <CRLF>
	012564	004737 	015432'			 JSR	PC,.TYLIN
   8412	012570					POP	R0		; .AND R0
	012570	012600 				 MOV	(SP)+,R0
   8413	012572					RETURN			; TO CALLER
	012572	000207 				 RTS	PC
   8414
   8415						.DSABL	LSB
TRACK -- DIAGNOSTIC FUNCTION TR	MACRO M1113  10-NOV-81 17:44  PAGE 218
.EDTRK -- EXAMINE / DEPOSIT TRACK SUBROUTINE 7512.09

   8417	007140				.PSECT	DATA
   8418
   8419	007140				TRADDR:
   8420	007140	000000 	000000 	000000 		.WORD	0,0,0		; SPACE FOR ADDRESS
   8421	007146				TRDATA:
   8422	007146	000000 	000000 	000000 		.WORD	0,0,0		; SPACE FOR DATA
   8423	007154				EDTYTB:				; POINTERS FOR TYPE MESSAGES
   8424	007154	002125'				.WORD	EDEPT		; EPT SPACE
   8425	007156	002131'				.WORD	EDEXV		; EXEC VIRTUAL SPACE
   8426	007160	002135'				.WORD	EDUPT		; UPT SPACE
   8427	007162	002141'				.WORD	EDUSV		; USER VIRTUAL
   8428	007164	002145'				.WORD	EDPHY		; PHYSICAL SPACE
   8429
   8430	002125				.PSECT	MESSAG
   8431	002125				EDEPT:
   8432	002125	   105 	   120 	   124 		.ASCIZ	%EPT%
	002130	   000
   8433	002131				EDEXV:
   8434	002131	   105 	   126 	   123 		.ASCIZ	%EVS%
	002134	   000
   8435	002135				EDUPT:
   8436	002135	   125 	   120 	   124 		.ASCIZ	%UPT%
	002140	   000
   8437	002141				EDUSV:
   8438	002141	   125 	   126 	   123 		.ASCIZ	%UVS%
	002144	   000
   8439	002145				EDPHY:
   8440	002145	   120 	   110 	   131 		.ASCIZ	%PHY%
	002150	   000
   8441	002151				ETRMSG:
   8442	002151	   011 	   124 	   122 		.ASCIZ	%	TRACK > EX %
	002154	   101 	   103 	   113
	002157	   040 	   076 	   040
	002162	   105 	   130 	   040
	002165	   000
   8443	002166				DTKMSG:
   8444	002166	   011 	   124 	   122 		.ASCIZ	%	TRACK > DP %
	002171	   101 	   103 	   113
	002174	   040 	   076 	   040
	002177	   104 	   120 	   040
	002202	   000
   8445	012574				.PSECT
   8446
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 219
.EDTRK -- EXAMINE / DEPOSIT TRACK SUBROUTINE 7512.09

   8449					.TITLE	TYINP -- COMMAND PARSER COMMAND INPUT MODULE 7603.30
   8450
   8451						.IDENT	"006110"
   8452
   8453					;
   8454					;                             COPYRIGHT (C) 1975, 1979 BY
   8455					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   8456					;
   8457					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   8458					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   8459					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   8460					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   8461					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   8462					;
   8463					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   8464					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   8465					;       CORPORATION.
   8466					;
   8467					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   8468					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   8469					;
   8470					;		MODULE: COMMAND PARSER COMMAND INPUT
   8471					;
   8472					;		VERSION: 06-11
   8473					;
   8474					;		AUTHOR: R. BELANGER
   8475					;
   8476					;		DATE: 7603.30
   8477					;
   8478					;	THIS MODULE CONTAINS:
   8479					;
   8480					;	1) COMMAND LINE INPUT CODE
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 220
.GTCMD -- SUBROUTINE TO GET A COMMAND LINE 7601.22

   8482					.SBTTL	.GTCMD -- SUBROUTINE TO GET A COMMAND LINE 7601.22
   8483
   8484					;+
   8485					; .GTCMD -- SUBROUTINE TO GET A COMMAND LINE FROM THE CONSOLE INPUT
   8486					;	    BUFFER.
   8487					;
   8488					; THIS SUBROUTINE WILL GET A COMMAND LINE FROM THE CONSOLE INPUT DEVICE
   8489					; BUFFER AND PLACE IT INTO THE COMMAND BUFFER.
   8490					;
   8491					; INPUT ARGUMENTS:
   8492					;
   8493					;	R5 POINTS TO THE DESTINATION BUFFER.
   8494					;
   8495					; OUTPUT ARGUMENTS:
   8496					;
   8497					;	R5 POINTS TO THE BEGINNING OF THE COMMAND BUFFER
   8498					;	".INCHC" HAS THE COUNT OF THE CHARACTERS IN THE COMMAND BUFFER
   8499					;	THE LAST CHARACTER IN THE COMMAND BUFFER IS A "<NULL>".
   8500					;
   8501					; ERROR CODES RETURNED:
   8502					;
   8503					;	IF THE CONSOLE INPUT FAILS, THE PARSER WILL EXIT.
   8504					;
   8505					;	CBO -- COMMAND BUFFER OVERFLOW.
   8506					;	ILC -- ILLEGAL CHARACTER.
   8507					;-
   8508
   8509	012574				.GTCMD::
   8510	012574	010501 				MOV	R5,R1		; COMMAND BUFFER POINTER TO R1
   8511	012576				10$:
   8512	012576					PUSH	R1		; SAVE R1 ON THE STACK
	012576	010146 				 MOV	R1,-(SP)
   8513	012600					CALL	.GTLIN		; .GO GET THE COMMAND LINE
	012600	004737 	012630'			 JSR	PC,.GTLIN
   8514	012604	022601 				CMP	(SP)+,R1	; .DID THE POINTER CHANGE?
   8515	012606	001407 				BEQ	20$		; NO -- JUST EXIT
   8516	012610	122741 	000055 			CMPB	#'-,-(R1)	; YES -- WAS LAST CHARACTER LINE CONTINUATION?
   8517	012614	001004 				BNE	20$		; NO -- EXIT
   8518	012616	111100 				MOVB	(R1),R0		; YES -- PROMPT FOR CONTINUATION
   8519	012620					CALL	.TFCHR		; FORCE PRINT THE PROMPT
	012620	004737 	015470'			 JSR	PC,.TFCHR
   8520	012624	000764 				BR	10$		; AND GO GET THE REST OF THE LINE
   8521						;
   8522	012626				20$:
   8523	012626					RETURN			; TO CALLER
	012626	000207 				 RTS	PC
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 221
.GTLIN -- SUBROUTINE TO INPUT A LINE FROM THE CONSOLE 7601.22

   8525					.SBTTL	.GTLIN -- SUBROUTINE TO INPUT A LINE FROM THE CONSOLE 7601.22
   8526
   8527					;+
   8528					; .GTLIN -- SUBROUTINE TO GET AN INPUT LINE FROM THE CONSOLE
   8529					;
   8530					; THIS SUBROUTINE WILL GET A LINE OF INPUT FROM THE CONSOLE DEVICE
   8531					; AND PERFORM THE FOLLOWING CHARACTER CONVERSIONS:
   8532					;
   8533					;	(A) LOWER CASE CHARACTERS ARE CONVERTED TO UPPER CASE
   8534					;	(B) "<TAB>" IS CONVERTED TO "<SPACE>"
   8535					;
   8536					; INPUT ARGUMENTS:
   8537					;
   8538					;	R1 POINTS TO THE BEGINNING OF THE DESTINATION BUFFER
   8539					;
   8540					; OUTPUT ARGUMENTS:
   8541					;
   8542					;	R1 POINTS TO THE END OF THE DESTINATION BUFFER
   8543					;
   8544					; ERROR CODES RETURNED:
   8545					;
   8546					;	IF THE CONSOLE INPUT FAILS, THE PARSER WILL EXIT.
   8547					;
   8548					;	CBO -- COMMAND BUFFER OVERFLOW.
   8549					;	FRD -- FILE READ FAILURE
   8550					;	ILC -- ILLEGAL CHARACTER.
   8551					;-
   8552
   8553						.MCALL	DIR$, QIOW$
   8554
   8555	012630				.GTLIN::
   8556	012630					PUSH	<R0,R2,R3,R4>	; SAVE SOME REGISTERS
	012630	010046 				 MOV	R0,-(SP)
	012632	010246 				 MOV	R2,-(SP)
	012634	010346 				 MOV	R3,-(SP)
	012636	010446 				 MOV	R4,-(SP)
   8557	012640	012700 	000330'			MOV	#.CIBFR,R0	; ...INPUT BUFFER POINTER TO R0
   8558	012644	005037 	000132'			CLR	.INCHC		; ...CLEAR THE CHARACTER COUNTER
   8559	012650	005737 	001626'			TST	.INDFG		; [5.1000]IS INPUT REDIRECTED TO FILE?
   8561	012654	001011 				BNE	10$		; [5.1000]YES -- GET INPUT FROM FILE
   8562	012656	005737 	000144'			TST	.KLEDF		; [5.1006]NO -- GET DEFAULT COMMANDS?
   8563	012662	001427 				BEQ	12$		; [5.1006]NO -- GET INPUT FROM CTY
   8564	012664					CALL	.KLE		; [5.1006]YES -- GET COMMANDS
	012664	004737 	000000G			 JSR	PC,.KLE
   8565	012670	005737 	000006'			TST	.CISTS+2	; [5.1006]ANY COMMAND?
   8566	012674	001442 				BEQ	15$		; [5.1006]NO -- DONE
   8567	012676	000407 				BR	11$		; [5.1006]YES -- ECHO COMMANDS
   8571	012700	012702 	000330'		10$:	MOV	#.CIBFR,R2	; [5.1000]YES -- SET UP INPUT BUFFER
   8572	012704	012703 	000004'			MOV	#.CISTS,R3	; [5.1000]STATUS PTR
   8573	012710					CALL	.READR		; [5.1000]GET THE COMMAND
	012710	004737 	002224'			 JSR	PC,.READR
   8574	012714	103432 				BCS	15$		; [5.1000]EOF ENCOUNTERED
   8575	012716	012737 	000330'	000430'	11$:	MOV	#.CIBFR,.CDOBP	; [5.1000]SET ECHO BUFFER
   8576	012724	013737 	000006'	000432'		MOV	.CISTS+2,.CDOBC	; [5.1000]SET BYTE COUNT
   8577	012732	001423 				BEQ	15$		; [5.1000]NULL COMMAND?
   8578	012734					CALL	.TYOUT		; [5.1000]NO -- ECHO IT
	012734	004737 	015564'			 JSR	PC,.TYOUT
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 221-1
.GTLIN -- SUBROUTINE TO INPUT A LINE FROM THE CONSOLE 7601.22

   8579	012740	000420 				BR	15$		; [5.1000]PROCESS COMMAND
   8580	012742				12$:	DIR$	#.CDINP		; ...READ THE LINE INTO INPUT BUFFER
	012742	012746 	000374'			MOV	#.CDINP,-(SP)
	012746	104375 				EMT	375
   8581	012750	103457 				BCS	70$		; ...GIVE CONSOLE INPUT FAILED ERROR
   8582	012752	105737 	000004'			TSTB	.CISTS		; ...TEST THE STATUS BYTE
   8583	012756	002454 				BLT	70$		; ...GIVE CONSOLE INPUT FAILED ERROR
   8584	012760	012737 	000330'	000452'		MOV	#.CIBFR,.LDOBP	; [5.1000]NO -- SET LOG,LPT OUTPUT BUFFER
   8585	012766	013737 	000006'	000454'		MOV	.CISTS+2,.LDOBC	; [5.1000]SET BYTE COUNT
   8586	012774	001402 				BEQ	15$		; [5.1000]NULL COMMAND?
   8587	012776					CALL	.TYOU1		; [5.1000]NO -- ECHO COMMAND TO LPT,LOG
	012776	004737 	015644'			 JSR	PC,.TYOU1
   8588	013002				15$:	CALL	.TCRLF		; ...ACKNOWLEDGE THE LINE
	013002	004737 	015536'			 JSR	PC,.TCRLF
   8589	013006	013703 	000006'			MOV	.CISTS+2,R3	; ...INPUT BYTE COUNT TO R3
   8590	013012	001415 				BEQ	40$		; ...NULL LINE IF .EQ. 0
   8591	013014				20$:
   8592	013014	112004 				MOVB	(R0)+,R4	; ...GET THE CHARACTER INTO R4
   8593	013016	001441 				BEQ	GTLILC		; ...ILLEGAL IF <NULL>
   8594	013020	105764 	001450'			TSTB	.CHTAB(R4)	; ...SEE IF IT IS A LEGAL CHARACTER
   8595	013024	002420 				BLT	50$		; ...NO -- SEE IF IT IS REALLY ILLEGAL
   8596
   8597					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 222
.GTLIN -- SUBROUTINE TO INPUT A LINE FROM THE CONSOLE 7601.22

   8599					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8600
   8601	013026				30$:
   8602	013026	110421 				MOVB	R4,(R1)+	; ...PUT IT INTO THE OUTPUT BUFFER
   8603	013030	005237 	000132'			INC	.INCHC		; ...INCREMENT THE CHARACTER COUNT
   8604	013034	023727 	000132'	000430 		CMP	.INCHC,#.CMNDL	; ...HAVE WE OVERFLOWED?
   8605	013042	003024 				BGT	GTLCBO		; ...YES -- GIVE ERROR
   8606	013044	077315 				SOB	R3,20$		; ...NO -- LOOP TILL DONE THIS LINE
   8607	013046				40$:
   8608	013046	105011 				CLRB	(R1)		; ...MARK THE END OF LINE
   8609	013050					POP	<R4,R3,R2,R0>	; ...RESTORE THE REGISTERS
	013050	012604 				 MOV	(SP)+,R4
	013052	012603 				 MOV	(SP)+,R3
	013054	012602 				 MOV	(SP)+,R2
	013056	012600 				 MOV	(SP)+,R0
   8610	013060	005737 	000132'			TST	.INCHC		; TEST THE INPUT BYTE COUNT
   8611	013064					RETURN			; TO CALLER
	013064	000207 				 RTS	PC
   8612	013066				50$:				; ...HERE TO CHECK ILLEGAL CHARACTERS
   8613	013066	122704 	000041 			CMPB	#'!,R4		; ...WAS IT A COMMENT?
   8614	013072	001765 				BEQ	40$		; ...YES -- JUST EXIT
   8615	013074	122704 	000011 			CMPB	#11,R4		; ...NO -- WAS IT A <TAB>?
   8619	013100	001010 				BNE	GTLILC		; ...NO -- GIVE "ILC" ERROR
   8621	013102	112704 	000040 			MOVB	#.SPACE,R4	; ...YES -- MAKE IT A <SPACE>
   8622	013106	000747 				BR	30$		; ...AND PUT IT IN THE BUFFER
   8623						;
   8634	013110				70$:
   8635	013110					CALLR	.EXITP		; EXIT GRACEFULLY
	013110	000137 	010074'			 JMP	.EXITP
   8636						;
   8637	013114				GTLCBO:
   8638	013114					ERROR$	CBO		; ERROR -- COMMAND BUFFER OVERFLOW
	013114	012746 	011437 			 MOV	#^RCBO,-(SP)
	013120	104400 				 TRAP	TC.ERR
   8639						;
   8640	013122				GTLILC:
   8641	013122					ERROR$	ILC		; ERROR -- ILLEGAL CHARACTER
	013122	012746 	035043 			 MOV	#^RILC,-(SP)
	013126	104400 				 TRAP	TC.ERR
   8642						;
   8643					; THIS IS THE CONSOLE INPUT DPB
   8644
   8645	000374				.PSECT	DPBS
   8646
   8647	000374				.CDINP::
   8648	000374					QIOW$	IO.RLB,CIDLUN,E.FCID,0,.CISTS,0,<.CIBFR,.CIBFL>
	000374	   003 	   010 			.BYTE	3,$$$ARG
	000376	000000G				.WORD	IO.RLB
	000400	000001 				.WORD	CIDLUN
	000402	   002 	   000 			.BYTE	E.FCID,0
	000404	000004'				.WORD	.CISTS
	000406	000000 				.WORD	0
	000410	000330'				.WORD	.CIBFR
	000412	000214 				.WORD	.CIBFL
   8649
   8650		000410'			.CDIBP=.CDINP+Q.IOPL		; CONSOLE INPUT BYTE POINTER
   8651		000412'			.CDIBC=.CDINP+Q.BYCT		; CONSOLE INPUT BYTE COUNT
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 222-1
.GTLIN -- SUBROUTINE TO INPUT A LINE FROM THE CONSOLE 7601.22

   8652
   8653	013130				.PSECT
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 223
.ELNCK -- TEST FOR A LEGAL PDP-11 NUMBER 7611.01

   8655					.SBTTL	.ELNCK -- TEST FOR A LEGAL PDP-11 NUMBER 7611.01
   8656
   8657					;+
   8658					; .ELNCK -- SUBROUTINE TO TEST FOR A LEGAL PDP-11 NUMBER
   8659					;
   8660					; THIS SUBROUTINE WILL TEST A NUMBER TO SEE IF IT IS A LEGAL PDP-11
   8661					; NUMBER. THIS IS REQUIRED BECAUSE THE NUMERIC INPUT ROUTINES HANDLE
   8662					; ONLY 36 BIT NUMBERS.
   8663					;
   8664					; INPUT ARGUMENTS:
   8665					;
   8666					;	R0 POINTS TO THE PDP-11 NUMBER TO BE TESTED
   8667					;
   8668					; OUTPUT ARGUMENTS:
   8669					;
   8670					;	R0 POINTS TO THE PDP-11 NUMBER
   8671					;
   8672					; ERROR CODES RETURNED:
   8673					;
   8674					;	NOR -- INPUT NUMBER OUT OF RANGE.
   8675					;-
   8676
   8677	013130				.ELNCK::
   8678	013130	032760 	000010 	000004 		BIT	#10,4(R0)	; IS THIS A NEGATIVE NUMBER?
   8679	013136	001411 				BEQ	10$		; NO -- POSITIVE
   8680	013140	022760 	177777 	000004 		CMP	#-^D1,4(R0)	; YES -- ARE ALL THE BITS ON?
   8681	013146	001014 				BNE	ELNNOR		; NO -- GIVE "NOR" ERROR
   8682	013150	022760 	177777 	000002 		CMP	#-^D1,2(R0)	; YES -- HOW ABOUT THE SECOND WORD?
   8683	013156	001010 				BNE	ELNNOR		; NO -- GIVE "NOR" ERROR
   8684	013160	000406 				BR	20$		; YES -- ALL OK, EXIT
   8685						;
   8686	013162				10$:
   8687	013162	005760 	000004 			TST	4(R0)		; SEE IF HIGH WORD IS .EQ. ZERO
   8688	013166	001004 				BNE	ELNNOR		; NO -- GIVE "NOR" ERROR
   8689	013170	005760 	000002 			TST	2(R0)		; IS SECOND WORD .EQ. ZERO?
   8690	013174	001001 				BNE	ELNNOR		; NO -- GIVE "NOR" ERROR
   8691	013176				20$:
   8692	013176					RETURN			; TO CALLER
	013176	000207 				 RTS	PC
   8693	013200				ELNNOR:
   8694	013200	000137 	014520'			JMP	GTNNOR		; GIVE "NOR" ERROR
   8695						;
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 224
.GTELN -- SUBROUTINE TO GET A PDP-11 NUMBER 7602.05

   8697					.SBTTL	.GTELN -- SUBROUTINE TO GET A PDP-11 NUMBER 7602.05
   8698
   8699					;+
   8700					; .GTELN -- SUBROUTINE TO GET A PDP-11 NUMBER
   8701					;
   8702					; THIS SUBROUTINE WILL RETURN A PDP-11 NUMBER IN R0.
   8703					;
   8704					; INPUT ARGUMENTS:
   8705					;
   8706					;	NONE.
   8707					;
   8708					; OUTPUT ARGUMENTS:
   8709					;
   8710					;	R0 HOLDS THE PDP-11 NUMBER.
   8711					;
   8712					; ERROR CODES RETURNED:
   8713					;
   8714					;	NOR -- INPUT NUMBER OUT OF RANGE.
   8715					;-
   8716
   8717	013204				.GTELN::
   8718	013204	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   8719	013206	005046 				CLR	-(SP)		; .
   8720	013210	005046 				CLR	-(SP)		; ..
   8721	013212	010600 				MOV	SP,R0		; ...
   8722	013214					CALL	.GTNUM		; ...GET A NUMBER
	013214	004737 	013266'			 JSR	PC,.GTNUM
   8723	013220					CALL	.ELNCK		; ...SEE IF IS REALLY A PDP-11 NUMBER
	013220	004737 	013130'			 JSR	PC,.ELNCK
   8724	013224	011000 				MOV	(R0),R0		; ...PUT THE NUMBER IN R0
   8725	013226	062706 	000006 			ADD	#^D6,SP		; ...RESET THE STACK
   8726	013232					RETURN			; TO CALLER
	013232	000207 				 RTS	PC
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 225
.GTKLA -- SUBROUTINE TO GET A 22 BIT KL ADDRESS 7602.05

   8728					.SBTTL	.GTKLA -- SUBROUTINE TO GET A 22 BIT KL ADDRESS 7602.05
   8729
   8730					;+
   8731					; .GTKLA -- SUBROUTINE TO GET A 22 BIT KL ADDRESS.
   8732					;
   8733					; THIS SUBROUTINE WILL READ AND RETURN A 36 BIT NUMBER AS A 22 BIT
   8734					; ADDRESS IN THE BUFFER POINTED TO BY R0 IN THE CALL.
   8735					;
   8736					; INPUT ARGUMENTS:
   8737					;
   8738					;	R0 POINTS TO A THREE WORD BUFFER
   8739					;
   8740					; OUTPUT ARGUMENTS:
   8741					;
   8742					;	R0 POINTS TO THE 22 BIT KL ADDRESS
   8743					;
   8744					; ERROR CODES RETURNED:
   8745					;
   8746					;	KLA -- KL ADDRESS ERROR.
   8747					;	NOR -- NUMBER OUT OF RANGE
   8748					;-
   8749
   8750	013234				.GTKLA::
   8751	013234					CALL	.GTNUM		; GET A NUMBER
	013234	004737 	013266'			 JSR	PC,.GTNUM
   8752	013240	005760 	000004 			TST	4(R0)		; CHECK FOR A LEGAL ADDRESS
   8753	013244	001005 				BNE	GTKKLA		; BAD NEWS -- OUT OF RANGE
   8754	013246	032760 	177600 	000002 		BIT	#^C177,2(R0)	; LOOK AT SECOND WORD
   8755	013254	001001 				BNE	GTKKLA		; SAME HERE -- OUT OF RANGE
   8756	013256					RETURN			; TO CALLER
	013256	000207 				 RTS	PC
   8757	013260				GTKKLA:
   8758	013260					ERROR$	KLA		; ERROR -- KL ADDRESS ERROR
	013260	012746 	043241 			 MOV	#^RKLA,-(SP)
	013264	104400 				 TRAP	TC.ERR
   8759						;
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 226
.GTNUM -- SUBROUTINE TO EVALUATE A NUMERIC EXPRESSION 7608.09

   8761					.SBTTL	.GTNUM -- SUBROUTINE TO EVALUATE A NUMERIC EXPRESSION 7608.09
   8762
   8763					;+
   8764					; .GTNUM -- SUBROUTINE TO EVALUATE A NUMERIC EXPRESSION
   8765					; .GTKLN -- ".GTNUM" BY ANOTHER NAME
   8766					;
   8767					; THIS SUBROUTINE WILL READ AND CONVERT A NUMERIC EXPRESSION FROM
   8768					; THE INPUT STREAM AND RETURN A POINTER TO THE NUMBER IN R0
   8769					;
   8770					; INPUT ARGUMENTS:
   8771					;
   8772					;	R0 POINTS TO THE DESTINATION OF THE NUMBER
   8773					;	R5 POINTS TO THE INPUT STREAM
   8774					;
   8775					; OUTPUT ARGUMENTS:
   8776					;
   8777					;	R0 POINTS TO THE NUMBER
   8778					;	R5 POINTS TO THE FIRST CHARACTER AFTER THE NUMBER
   8779					;
   8780					; ERROR CODES RETURNED:
   8781					;
   8782					;	ILC -- ILLEGAL CHARACTER.
   8783					;	NOR -- NUMBER OUT OF RANGE.
   8784					;-
   8785
   8786	013266				.GTNUM::
   8787	013266				.GTKLN::
   8788	013266					PUSH	R1		; SAVE R1
	013266	010146 				 MOV	R1,-(SP)
   8789	013270					CALL	.CKSYM		; .GET OVER LEADING BLANKS
	013270	004737 	000374'			 JSR	PC,.CKSYM
   8790	013274	122715 	000077 			CMPB	#'?,(R5)	; .IS THIS AN INQUIRY?
   8791	013300	001474 				BEQ	GTNNER		; .YES -- SAY SO
   8792	013302					CALL	.TPCLR		; .NO -- CLEAR CALLER'S NUMBER
	013302	004737 	011356'			 JSR	PC,.TPCLR
   8793	013306					CALL	.CKARG		; [5.1018]IS ARGUMENT NUMERIC?
	013306	004737 	000070'			 JSR	PC,.CKARG
   8794	013312	100403 				BMI	5$		; [5.1018]YES -- GET IT
   8795	013314					CALL	.GTOPC		; <*>NO -- DECODE OPCODE
	013314	004737 	013500'			 JSR	PC,.GTOPC
   8796	013320	000405 				BR	7$		; [5.1018]GET RIGHT HALF
   8797	013322				5$:	CALL	.GTEXP		; .READ THIS EXPRESSION
	013322	004737 	013672'			 JSR	PC,.GTEXP
   8798	013326	122715 	000040 			CMPB	#.SPACE,(R5)	; .IS THE TERMINATOR A <SPACE>?
   8799	013332	001053 				BNE	30$		; .NO -- JUST EXIT
   8800	013334				7$:	CALL	.CKARG		; .YES -- SEE IF NUMERIC ARGUMENT FOLLOWS
	013334	004737 	000070'			 JSR	PC,.CKARG
   8801	013340	001454 				BEQ	GTNNER		; .NOT NUMERIC -- GIVE "NER" ERROR
   8802	013342					CALL	.TPTST		; .NUMERIC -- SEE IF PREVIOUS IS NEGATIVE
	013342	004737 	011460'			 JSR	PC,.TPTST
   8803	013346	002407 				BLT	10$		; .NEGATIVE -- DON'T DO RANGE CHECK
   8804	013350	032760 	177774 	000002 		BIT	#^C3,2(R0)	; .IS THE NUMBER IN RANGE?
   8805	013356	001043 				BNE	GTNORE		; .NO -- GIVE "NOR" ERROR
   8806	013360	005760 	000004 			TST	4(R0)		; .IS IT REALLY IN RANGE?
   8807	013364	001040 				BNE	GTNORE		; .NO -- GIVE "NOR" ERROR
   8808
   8809					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 227
.GTNUM -- SUBROUTINE TO EVALUATE A NUMERIC EXPRESSION 7608.09

   8811					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8812
   8813	013366				10$:
   8814	013366	012701 	000022 			MOV	#^D18,R1	; .SHIFT COUNT TO R1
   8815	013372					CALL	.TPSHI		; .SHIFT IT
	013372	004737 	011756'			 JSR	PC,.TPSHI
   8816	013376	010001 				MOV	R0,R1		; .SAVE THE POINTER TO THE CURRENT NUMBER
   8817	013400	005046 				CLR	-(SP)		; .CLEAR A NEW BUFFER
   8818	013402	005046 				CLR	-(SP)		; ..
   8819	013404	005046 				CLR	-(SP)		; ...
   8820	013406	010600 				MOV	SP,R0		; ....POINT TO THE BUFFER
   8821	013410					PUSH	R1		; ....SAVE THE OLD POINTER
	013410	010146 				 MOV	R1,-(SP)
   8822	013412					CALL	.GTEXP		; .....READ THE NEW EXPRESSION
	013412	004737 	013672'			 JSR	PC,.GTEXP
   8823	013416					CALL	.CKEOS		; .....MUST HAVE E-O-S AT THIS POINT
	013416	004737 	000256'			 JSR	PC,.CKEOS
   8824	013422					CALL	.TPTST		; .....SEE IF THIS NUMBER IS NEGATIVE
	013422	004737 	011460'			 JSR	PC,.TPTST
   8825	013426	003005 				BGT	20$		; .....YES -- GO ON
   8826	013430	005060 	000004 			CLR	4(R0)		; .....YES -- FIX IT UP
   8827	013434	042760 	177774 	000002 		BIC	#^C3,2(R0)	; .....SO
   8828	013442				20$:
   8829	013442					POP	R1		; .....GET THE POINTER TO THE FIRST PART
	013442	012601 				 MOV	(SP)+,R1
   8830	013444	052021 				BIS	(R0)+,(R1)+	; ....ASSEMBLE THE NEW NUMBER
   8831	013446	052021 				BIS	(R0)+,(R1)+	; ....FROM BOTH HALVES
   8832	013450	051011 				BIS	(R0),(R1)	; ....SO
   8833	013452	062706 	000006 			ADD	#^D6,SP		; ....RESET THE STACK
   8834	013456	024141 				CMP	-(R1),-(R1)	; .BACK THE POINTER UP
   8835	013460	010100 				MOV	R1,R0		; .PUT IT IN R0
   8836	013462				30$:
   8837	013462					POP	R1		; .RESTORE R1
	013462	012601 				 MOV	(SP)+,R1
   8838	013464					RETURN			; TO CALLER
	013464	000207 				 RTS	PC
   8839	013466				GTNORE:
   8840	013466	000137 	014520'			JMP	GTNNOR		; GIVE "NOR" ERROR
   8841						;
   8842	013472				GTNNER:
   8843	013472					ERROR$	NER		; ERROR -- NUMERIC EXPRESSION REQUIRED
	013472	012746 	054132 			 MOV	#^RNER,-(SP)
	013476	104400 				 TRAP	TC.ERR
   8844						;
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 228
.GTOPC -- KL I/O OPCODE DECODER FOR ".GTNUM"

   8846					.SBTTL	.GTOPC -- KL I/O OPCODE DECODER FOR ".GTNUM"
   8847
   8848					;+
   8849					; .GTOPC -- KL I/O OPCODE DECODER ROUTINE
   8850					;
   8851					; THIS ROUTINE WILL DECODE AN ARGUMENT OF THE FORM "FUNC DEV" WHERE
   8852					; FUNC IS ONE OF THE FOLLOWING "CONO,CONI,DATAO,DATAI,BLKO,BLKI,CONSO,
   8853					; CONSZ" AND DEV IS A DEVICE CODE. THE ROUTINE WILL RETURN IN THE THREE
   8854					; WORD BLOCK POINTED TO BY R0 THE LEFT HALF OF THE 36 BIT KL INSTRUCTION
   8855					; IN THE FIRST 18 BITS.
   8856
   8857					;	THIS ROUTINE ADDED FOR TCO 5.1018
   8858					;
   8859					; INPUT ARGUMENTS:
   8860					;
   8861					;	R0 POINTS TO THE 3 WORD DESTINATION BLOCK
   8862					;	R5 POINTS TO INPUT STREAM
   8863					;
   8864					; OUTPUT ARGUMENTS:
   8865					;
   8866					;	R0 POINTS TO NUMBER WITH LEFT HALF FILLED IN
   8867					;	R5 POINTS TO FIRST CHARACTER AFTER "FUNC DEV"
   8868					;
   8869					; ERROR CODES RETURNED:
   8870					;
   8871					;	ILI -- ILLEGAL INSTRUCTION
   8872					;	NER -- NUMERIC EXPRESSION REQUIRED
   8873					;	NOR -- NUMBER OUT OF RANGE
   8874					;-
   8875
   8876	013500				.GTOPC::
   8877	013500					PUSH	<R0,R1,R5>	; SAVE REGISTERS
	013500	010046 				 MOV	R0,-(SP)
	013502	010146 				 MOV	R1,-(SP)
	013504	010546 				 MOV	R5,-(SP)
   8878	013506	005010 				CLR	(R0)		; CLEAR BITS 20-35
   8879	013510	052710 	100000 			BIS	#100000,(R0)	; SET BIT 20 FOR I/O OPCODE
   8880	013514	052760 	000003 	000002 		BIS	#3,2(R0)	; SET BITS 18-19 FOR I/O OPCODE
   8881	013522	012701 	007166'			MOV	#IOTAB,R1	; TABLE PTR TO R1
   8882	013526	012100 			10$:	MOV	(R1)+,R0	; TEXT PTR TO R0
   8883	013530	001455 				BEQ	GTNILI		; TABLE DONE?
   8884	013532	011605 				MOV	(SP),R5		; RESTORE R5 (CHANGED ON PARTIAL MATCH)
   8885	013534					CALL	.SSCAN		; NO -- CHECK FOR MATCH
	013534	004737 	010760'			 JSR	PC,.SSCAN
   8886	013540	103772 				BCS	10$		; NO MATCH
   8887	013542	001371 				BNE	10$		; NOT EXACT MATCH
   8888	013544	005726 				TST	(SP)+		; R5 NO LONGER NEEDED
   8889	013546	162701 	007170'			SUB	#IOTAB+2,R1	; GET TABLE OFFSET
   8890	013552	006301 				ASL	R1		; PUT INSTR CODE IN POSITION
   8891	013554	006301 				ASL	R1
   8892	013556	006301 				ASL	R1
   8893	013560	006301 				ASL	R1
   8894	013562	016600 	000002 			MOV	2(SP),R0	; RESTORE R0
   8895	013566	050110 				BIS	R1,(R0)		; SET INSTR CODE
   8896	013570	122715 	000040 			CMPB	#' ,(R5)	; NEXT CHAR A SPACE?
   8897	013574	001033 				BNE	GTNILI		; NO -- ERROR
   8898	013576					CALL	.CKARG		; YES -- NEXT ARGUMENT NUMERIC?
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 228-1
.GTOPC -- KL I/O OPCODE DECODER FOR ".GTNUM"

	013576	004737 	000070'			 JSR	PC,.CKARG
   8899	013602	100333 				BPL	GTNNER		; NO -- ERROR
   8900	013604					CALL	.GTELN		; YES -- GET DEVICE CODE
	013604	004737 	013204'			 JSR	PC,.GTELN
   8901	013610	020027 	000774 			CMP	R0,#774		; IN RANGE?
   8902	013614	101324 				BHI	GTNORE		; NO -- TOO LARGE ERROR
   8903	013616	032700 	000003 			BIT	#3,R0		; YES -- ILLEGAL BITS ON?
   8904	013622	001321 				BNE	GTNORE		; YES -- ERROR
   8905	013624	006300 				ASL	R0		; NO -- PUT DEVICE CODE IN POSITION
   8906	013626	006300 				ASL	R0
   8907	013630	006300 				ASL	R0
   8908	013632	006300 				ASL	R0
   8909	013634	006300 				ASL	R0
   8910	013636	006300 				ASL	R0
   8911	013640	010001 				MOV	R0,R1		; STORE VALUE IN R1
   8912	013642	016600 	000002 			MOV	2(SP),R0	; RESTORE R0
   8913	013646	050110 				BIS	R1,(R0)		; SET DEVICE CODE
   8914	013650	122725 	000054 			CMPB	#',,(R5)+	; NEXT CHAR A COMMA?
   8915	013654	001003 				BNE	GTNILI		; NO -- ERROR
   8916	013656					POP	<R1,R0>		; YES -- RESTORE REGISTERS
	013656	012601 				 MOV	(SP)+,R1
	013660	012600 				 MOV	(SP)+,R0
   8917	013662					RETURN
	013662	000207 				 RTS	PC
   8918						;
   8919	013664				GTNILI:
   8920	013664					ERROR$	ILI		; ERROR -- ILLEGAL INSTRUCTION
	013664	012746 	035051 			 MOV	#^RILI,-(SP)
	013670	104400 				 TRAP	TC.ERR
   8921						;
   8922
   8923	007166				.PSECT	DATA
   8924
   8925	007166				IOTAB:
   8926	007166	002203'				.WORD	BLKIS
   8927	007170	002210'				.WORD	DATAIS
   8928	007172	002216'				.WORD	BLKOS
   8929	007174	002223'				.WORD	DATAOS
   8930	007176	002231'				.WORD	CONOS
   8931	007200	002236'				.WORD	CONIS
   8932	007202	002243'				.WORD	CONSZS
   8933	007204	002251'				.WORD	CONSOS
   8934	007206	000000 				.WORD	0
   8935
   8936	002203				.PSECT	MESSAG
   8937
   8938	002203	   102 	   114 	   113 	BLKIS:	.ASCIZ	/BLKI/
	002206	   111 	   000
   8939	002210	   104 	   101 	   124 	DATAIS:	.ASCIZ	/DATAI/
	002213	   101 	   111 	   000
   8940	002216	   102 	   114 	   113 	BLKOS:	.ASCIZ	/BLKO/
	002221	   117 	   000
   8941	002223	   104 	   101 	   124 	DATAOS:	.ASCIZ	/DATAO/
	002226	   101 	   117 	   000
   8942	002231	   103 	   117 	   116 	CONOS:	.ASCIZ	/CONO/
	002234	   117 	   000
   8943	002236	   103 	   117 	   116 	CONIS:	.ASCIZ	/CONI/
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 228-2
.GTOPC -- KL I/O OPCODE DECODER FOR ".GTNUM"

	002241	   111 	   000
   8944	002243	   103 	   117 	   116 	CONSZS:	.ASCIZ	/CONSZ/
	002246	   123 	   132 	   000
   8945	002251	   103 	   117 	   116 	CONSOS:	.ASCIZ	/CONSO/
	002254	   123 	   117 	   000
   8946
   8947	013672				.PSECT
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 229
.GTEXP -- EXPRESSION EVALUATOR FOR ".GTNUM" 7603.03

   8949					.SBTTL	.GTEXP -- EXPRESSION EVALUATOR FOR ".GTNUM" 7603.03
   8950
   8951					;+
   8952					; .GTEXP -- EXPRESSION EVALUATOR FOR ".GTNUM"
   8953					;
   8954					; THIS ROUTINE EVALUATES NUMERIC EXPRESSIONS FOR ".GTNUM".
   8955					;
   8956					; DEFINITION OF AN EXPRESSION:
   8957					;
   8958					; EXP=TERM+TERM!TERM-TERM!TERM+TERM+....!TERM-TERM-....!TERM
   8959					;
   8960					; INPUT ARGUMENTS:
   8961					;
   8962					;	R0 POINTS TO A THREE WORD BUFFER
   8963					;
   8964					; OUTPUT ARGUMENTS:
   8965					;
   8966					;	R0 POINTS TO THE EVALUATED EXPRESSION
   8967					;
   8968					; ERROR CODES RETURNED:
   8969					;
   8970					;	NONE.
   8971					;-
   8972
   8973	013672				.GTEXP::
   8974	013672					CALL	.GTTRM		; GET THE NEXT TERM
	013672	004737 	013766'			 JSR	PC,.GTTRM
   8975	013676				10$:
   8976	013676	122715 	000053 			CMPB	#'+,(R5)	; DID HE SAY ADD?
   8977	013702	001404 				BEQ	20$		; YES -- GO DO THE ADDITION
   8978	013704	122715 	000055 			CMPB	#'-,(R5)	; NO -- DID HE SAY SUBTRACT?
   8979	013710	001404 				BEQ	30$		; YES -- GO DO THE SUBTRACTION
   8980	013712					RETURN			; NO -- JUST RETURN
	013712	000207 				 RTS	PC
   8981
   8982					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 230
.GTEXP -- EXPRESSION EVALUATOR FOR ".GTNUM" 7603.03

   8984					;	[CONTINUED FROM THE PREVIOUS PAGE]
   8985
   8986	013714				20$:
   8987	013714	012702 	011502'			MOV	#.TPADD,R2	; DISPATCH ADDRESS TO R2
   8988	013720	000402 				BR	40$		; TO COMMON ROUTINE
   8989						;
   8990	013722				30$:
   8991	013722	012702 	011546'			MOV	#.TPSUB,R2	; DISPATCH ADDRESS TO R2
   8992	013726				40$:
   8993	013726	112504 				MOVB	(R5)+,R4	; GET OVER THE OPERATOR CHARACTER
   8994	013730	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   8995	013732	005046 				CLR	-(SP)		; .
   8996	013734	005046 				CLR	-(SP)		; ..
   8997	013736	010601 				MOV	SP,R1		; ...SCRATCH POINTER TO R1
   8998	013740					PUSH	R2		; ...SAVE THE DISPATCH ADDRESS
	013740	010246 				 MOV	R2,-(SP)
   8999	013742					PUSH	R0		; ....AND PREVIOUS POINTER
	013742	010046 				 MOV	R0,-(SP)
   9000	013744	010100 				MOV	R1,R0		; .....CURRENT POINTER TO R0
   9001	013746					CALL	.GTTRM		; .....GET THE NEXT TERM
	013746	004737 	013766'			 JSR	PC,.GTTRM
   9002	013752	010001 				MOV	R0,R1		; .....CURRENT POINTER TO R1
   9003	013754					POP	R0		; .....RESTORE PREVIOUS POINTER
	013754	012600 				 MOV	(SP)+,R0
   9004	013756					CALL	@(SP)+		; ....DO THE ADDITION OR SUBTRACTION
	013756	004736 				 JSR	PC,@(SP)+
   9005	013760	062706 	000006 			ADD	#^D6,SP		; ...RESET THE STACK
   9006	013764	000744 				BR	10$		; AND SEE IF THERE IS MORE
   9007						;
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 231
.GTTRM -- TERM EVALUATOR FOR ".GTNUM" 7603.03

   9009					.SBTTL	.GTTRM -- TERM EVALUATOR FOR ".GTNUM" 7603.03
   9010
   9011					;+
   9012					; .GTTRM -- TERM EVALUATOR FOR ".GTNUM"
   9013					;
   9014					; THIS ROUTINE EVALUATES NUMERIC TERMS FOR ".GTNUM".
   9015					;
   9016					; DEFINITION OF A TERM:
   9017					;
   9018					; TERM=FACTOR*FACTOR!FACTOR/FACTOR!FACTOR*FACTOR*....!FACTOR/FACTOR/....!FACTOR
   9019					;
   9020					; INPUT ARGUMENTS:
   9021					;
   9022					;	R0 POINTS TO A THREE WORD BUFFER
   9023					;
   9024					; OUTPUT ARGUMENTS:
   9025					;
   9026					;	R0 POINTS TO THE EVALUATED TERM
   9027					;
   9028					; ERROR CODES RETURNED:
   9029					;
   9030					;	NONE.
   9031					;-
   9032
   9033	013766				.GTTRM::
   9034	013766					CALL	.GTFCT		; GET THE NEXT FACTOR
	013766	004737 	014100'			 JSR	PC,.GTFCT
   9035	013772	001411 				BEQ	20$		; EXIT IF NULL ARGUMENT
   9036	013774				10$:
   9037	013774	122715 	000137 			CMPB	#'_,(R5)	; DID HE SAY SHIFT?
   9038	014000	001407 				BEQ	30$		; YES -- GO DO THE SHIFT
   9039	014002	122715 	000052 			CMPB	#'*,(R5)	; NO -- DID HE SAY MULTIPLY?
   9040	014006	001412 				BEQ	50$		; YES -- GO DO THE MULTIPLICATION
   9041	014010	122715 	000057 			CMPB	#'/,(R5)	; NO -- DID HE SAY DIVIDE?
   9042	014014	001404 				BEQ	40$		; YES -- GO DO THE DIVISION
   9043	014016				20$:
   9044	014016					RETURN			; NO -- JUST RETURN
	014016	000207 				 RTS	PC
   9045
   9046					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 232
.GTTRM -- TERM EVALUATOR FOR ".GTNUM" 7603.03

   9048					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9049
   9050	014020				30$:
   9051	014020	012702 	012022'			MOV	#.TPSHL,R2	; DISPATCH TO R2
   9052	014024	000405 				BR	60$		; TO COMMON CODE
   9053						;
   9054	014026				40$:
   9055	014026	012702 	011144'			MOV	#.TPDIV,R2	; DISPATCH TO R2
   9056	014032	000402 				BR	60$		; TO COMMON ROUTINE
   9057						;
   9058	014034				50$:
   9059	014034	012702 	011572'			MOV	#.TPMUL,R2	; DISPATCH TO R2
   9060	014040				60$:
   9061	014040	112504 				MOVB	(R5)+,R4	; GET OVER THE OPERATOR CHARACTER
   9062	014042	005046 				CLR	-(SP)		; CREATE A SCRATCH BUFFER ON THE STACK
   9063	014044	005046 				CLR	-(SP)		; .
   9064	014046	005046 				CLR	-(SP)		; ..
   9065	014050	010601 				MOV	SP,R1		; ...SCRATCH POINTER TO R1
   9066	014052					PUSH	R2		; ...SAVE THE DISPATCH POINTER
	014052	010246 				 MOV	R2,-(SP)
   9067	014054					PUSH	R0		; ....SAVE PREVIOUS NUMBER POINTER
	014054	010046 				 MOV	R0,-(SP)
   9068	014056	010100 				MOV	R1,R0		; .....CURRENT POINTER TO R0
   9069	014060					CALL	.GTFCT		; .....GET THE NEXT FACTOR
	014060	004737 	014100'			 JSR	PC,.GTFCT
   9070	014064	010001 				MOV	R0,R1		; .....POINTER TO R1
   9071	014066					POP	R0		; .....PREVIOUS POINTER TO R0
	014066	012600 				 MOV	(SP)+,R0
   9072	014070					CALL	@(SP)+		; ....DO DIVISION OR MULTIPLICATION
	014070	004736 				 JSR	PC,@(SP)+
   9073	014072	062706 	000006 			ADD	#^D6,SP		; ...CLEAR THE STACK
   9074	014076	000736 				BR	10$		; AND SEE IF THERE IS MORE
   9075						;
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 233
.GTFCT -- FACTOR EVALUATOR FOR ".GTNUM" 7603.03

   9077					.SBTTL	.GTFCT -- FACTOR EVALUATOR FOR ".GTNUM" 7603.03
   9078
   9079					;+
   9080					; .GTFCT -- FACTOR EVALUATOR FOR ".GTNUM"
   9081					;
   9082					; THIS ROUTINE EVALUATES NUMERIC FACTORS FOR ".GTNUM".
   9083					;
   9084					; DEFINITION OF AN FACTOR:
   9085					;
   9086					; FACTOR=(EXP)!+FACTOR!-FACTOR!NUMBER
   9087					;
   9088					; INPUT ARGUMENTS:
   9089					;
   9090					;	R0 POINTS TO A THREE WORD BUFFER
   9091					;
   9092					; OUTPUT ARGUMENTS:
   9093					;
   9094					;	R0 POINTS TO THE EVALUATED FACTOR
   9095					;
   9096					; ERROR CODES RETURNED:
   9097					;
   9098					;	NONE.
   9099					;-
   9100
   9101						.ENABL	LSB
   9102
   9103	014100				.GTFCT::
   9104	014100	122715 	000136 			CMPB	#'^,(R5)	; SPECIAL RADIX?
   9105	014104	001435 				BEQ	30$		; YES -- GO HANDLE IT
   9106	014106	122715 	000050 			CMPB	#'(,(R5)	; NO -- DOES THE FIRST CHARACTER OPEN EXPRESSION?
   9107	014112	001517 				BEQ	65$		; YES -- GO HANDLE IT
   9108	014114	122715 	000053 			CMPB	#'+,(R5)	; NO -- IS IT A <PLUS>?
   9109	014120	001503 				BEQ	60$		; YES -- GO HANDLE <PLUS>
   9110	014122	122715 	000055 			CMPB	#'-,(R5)	; NO -- IS IT A <MINUS>?
   9111	014126	001500 				BEQ	60$		; YES -- GO HANDLE <MINUS>
   9112	014130					CALL	.GTNBR		; NO -- GO GET A NUMBER
	014130	004737 	014374'			 JSR	PC,.GTNBR
   9113	014134				10$:
   9114	014134	122715 	000047 			CMPB	#'',(R5)	; RELOCATE?
   9115	014140	001404 				BEQ	20$		; YES -- DO IT
   9116	014142	122715 	000042 			CMPB	#'",(R5)	; NO -- UNRELOCATE?
   9117	014146	001401 				BEQ	20$		; YES -- DO IT
   9118	014150				15$:
   9119	014150					RETURN			; TO CALLER
	014150	000207 				 RTS	PC
   9120
   9121					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 234
.GTFCT -- FACTOR EVALUATOR FOR ".GTNUM" 7603.03

   9123					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9124
   9125	014152				20$:
   9126	014152					PUSH	R1		; SAVE R1
	014152	010146 				 MOV	R1,-(SP)
   9127	014154	013701 	000210'			MOV	.RELWD,R1	; .RELOCATION TO R1
   9128	014160	122715 	000042 			CMPB	#'",(R5)	; .UNRELOCATE?
   9129	014164	001001 				BNE	25$		; .NO -- GO ON
   9130	014166	005401 				NEG	R1		; .YES -- NEGATE IT
   9131	014170				25$:
   9132	014170	060110 				ADD	R1,(R0)		; .COMPUTE THE FACTOR
   9133	014172	105725 				TSTB	(R5)+		; .GET OVER THE SYMBOL
   9134	014174					POP	R1		; .RESTORE R1
	014174	012601 				 MOV	(SP)+,R1
   9135	014176	000764 				BR	15$		; AND EXIT
   9136						;
   9137	014200				30$:
   9138	014200	105725 				TSTB	(R5)+		; GET OVER THE UP-ARROW
   9139	014202	112546 				MOVB	(R5)+,-(SP)	; SAVE THE NEXT CHARACTER
   9140	014204					CALL	.CKARG		; .LOOK FOR A TRAILING ARGUMENT
	014204	004737 	000070'			 JSR	PC,.CKARG
   9141	014210	001417 				BEQ	GTFILC		; .ERROR IF CC-Z IS SET
   9142	014212					POP	R4		; .RESTORE THE CHARACTER
	014212	012604 				 MOV	(SP)+,R4
   9143	014214	122704 	000103 			CMPB	#'C,R4		; .COMPLEMENT?
   9144	014220	001436 				BEQ	55$		; .YES -- PROCESS COMPLEMENT
   9145	014222					PUSH	.IRADX		; .NO -- SAVE THE CURRENT RADIX
	014222	013746 	000134'			 MOV	.IRADX,-(SP)
   9146	014226	122704 	000104 			CMPB	#'D,R4		; .DECIMAL?
   9147	014232	001415 				BEQ	40$		; .YES -- PROCESS DECIMAL
   9148	014234	122704 	000102 			CMPB	#'B,R4		; .NO -- BINARY?
   9149	014240	001406 				BEQ	35$		; .YES -- PROCESS BINARY
   9150	014242	122704 	000117 			CMPB	#'O,R4		; .NO -- OCTAL?
   9151	014246	001413 				BEQ	45$		; .YES -- PROCESS OCTAL
   9152	014250				GTFILC:
   9153	014250					ERROR$	ILC		; .NO -- GIVE "ILC" ERROR
	014250	012746 	035043 			 MOV	#^RILC,-(SP)
	014254	104400 				 TRAP	TC.ERR
   9154						;
   9155
   9156					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 235
.GTFCT -- FACTOR EVALUATOR FOR ".GTNUM" 7603.03

   9158					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9159
   9160	014256				35$:
   9161	014256	012737 	000002 	000134'		MOV	#^D2,.IRADX	; .SET THE RADIX TO BINARY
   9162	014264	000407 				BR	50$		; .TO COMMON CODE
   9163						;
   9164	014266				40$:
   9165	014266	012737 	000012 	000134'		MOV	#^D10,.IRADX	; .SET THE RADIX TO DECIMAL
   9166	014274	000403 				BR	50$		; .TO COMMON CODE
   9167						;
   9168	014276				45$:
   9169	014276	012737 	000010 	000134'		MOV	#^D8,.IRADX	; .SET THE RADIX TO OCTAL
   9170	014304				50$:
   9171	014304					CALL	.GTFCT		; .GET THE FACTOR
	014304	004737 	014100'			 JSR	PC,.GTFCT
   9172	014310					POP	.IRADX		; .RESTORE THE ORIGINAL RADIX
	014310	012637 	000134'			 MOV	(SP)+,.IRADX
   9173	014314	000707 				BR	10$		; AND EXIT
   9174						;
   9175	014316				55$:
   9176	014316					CALL	.GTFCT		; GET THE FACTOR
	014316	004737 	014100'			 JSR	PC,.GTFCT
   9177	014322					CALL	.TPCOM		; AND INVERT IT
	014322	004737 	011366'			 JSR	PC,.TPCOM
   9178	014326	000702 				BR	10$		; EXIT
   9179						;
   9180	014330				60$:
   9181	014330	112546 				MOVB	(R5)+,-(SP)	; SAVE THE NEXT CHARACTER
   9182	014332					CALL	.GTFCT		; .GO LOOK FOR MORE
	014332	004737 	014100'			 JSR	PC,.GTFCT
   9183	014336	122726 	000055 			CMPB	#'-,(SP)+	; .WAS THE PREFIX A <MINUS>?
   9184	014342	001274 				BNE	10$		; NO -- JUST EXIT
   9185	014344					CALL	.TPNEG		; YES -- NEGATE IT
	014344	004737 	011376'			 JSR	PC,.TPNEG
   9186	014350	000671 				BR	10$		; AND EXIT
   9187						;
   9188	014352				65$:
   9189	014352	112504 				MOVB	(R5)+,R4	; GET OVER THE PAREN
   9190	014354					CALL	.GTEXP		; READ THIS EXPRESSION
	014354	004737 	013672'			 JSR	PC,.GTEXP
   9191	014360	122725 	000051 			CMPB	#'),(R5)+	; DID WE END IT PROPERLY?
   9192	014364	001663 				BEQ	10$		; YES -- JUST EXIT
   9193	014366					ERROR$	RPM		; NO -- ERROR -- RIGHT PARENTHESES MISSING
	014366	012746 	071415 			 MOV	#^RRPM,-(SP)
	014372	104400 				 TRAP	TC.ERR
   9194						;
   9195
   9196						.DSABL	LSB
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 236
.GTNBR -- NUMBER EVALUATOR FOR ".GTNUM" 7603.03

   9198					.SBTTL	.GTNBR -- NUMBER EVALUATOR FOR ".GTNUM" 7603.03
   9199
   9200					;+
   9201					; .GTNBR -- NUMBER EVALUATOR FOR ".GTNUM"
   9202					;
   9203					; THIS ROUTINE EVALUATES NUMBERS FOR ".GTNUM".
   9204					;
   9205					; INPUT ARGUMENTS:
   9206					;
   9207					;	R0 POINTS TO A THREE WORD BUFFER
   9208					;
   9209					; OUTPUT ARGUMENTS:
   9210					;
   9211					;	R0 POINTS TO THE EVALUATED NUMBER
   9212					;
   9213					; ERROR CODES RETURNED:
   9214					;
   9215					;	NONE.
   9216					;-
   9217
   9218	014374				.GTNBR::
   9219	014374	005037 	000132'			CLR	.INCHC		; CLEAR THE CHARACTER COUNT
   9220	014400					PUSH	R1		; SAVE R1
	014400	010146 				 MOV	R1,-(SP)
   9221	014402	005046 				CLR	-(SP)		; .SET UP THE INPUT RADIX
   9222	014404	005046 				CLR	-(SP)		; ..
   9223	014406					PUSH	.IRADX		; ...SO
	014406	013746 	000134'			 MOV	.IRADX,-(SP)
   9224	014412	010601 				MOV	SP,R1		; ....POINT TO THE INPUT RADIX
   9225	014414				10$:
   9226	014414	112504 				MOVB	(R5)+,R4	; ....GET THE CHARACTER INTO R4
   9227	014416	132764 	000002 	001450'		BITB	#CH.NUM,.CHTAB(R4)
   9228	014424	001422 				BEQ	20$		; ....EXIT IF NON-NUMERIC
   9229	014426	005237 	000132'			INC	.INCHC		; ....INCREMENT THE CHARACTER COUNT
   9230	014432	142704 	177760 			BICB	#^C17,R4	; ....FLUSH ASCII
   9231	014436	120411 				CMPB	R4,(R1)		; ....DID WE EXCEED THE INPUT RADIX?
   9232	014440	002027 				BGE	GTNNOR		; ....YES -- GIVE "NOR" ERROR
   9233	014442					CALL	.TPMUL		; ....NO -- MAKE ROOM FOR THIS DIGIT
	014442	004737 	011572'			 JSR	PC,.TPMUL
   9234	014446					PUSH	(R1)		; ....SAVE THE RADIX
	014446	011146 				 MOV	(R1),-(SP)
   9235	014450	010411 				MOV	R4,(R1)		; .....SET UP TO ADD THIS DIGIT
   9236	014452					CALL	.TPADD		; .....TO THE CUMULATIVE RESULT
	014452	004737 	011502'			 JSR	PC,.TPADD
   9237	014456	032760 	177760 	000004 		BIT	#^C17,4(R0)	; .....HAVE WE OVERFLOWED THE NUMBER?
   9238	014464	001015 				BNE	GTNNOR		; .....YES -- GIVE "NOR" ERROR
   9239	014466					POP	(R1)		; .....NO -- RESTORE THE RADIX
	014466	012611 				 MOV	(SP)+,(R1)
   9240	014470	000751 				BR	10$		; ....AND CONTINUE
   9241						;
   9242
   9243					;	[CONTINUED ON THE FOLLOWING PAGE]
TYINP -- COMMAND PARSER COMMAND	MACRO M1113  10-NOV-81 17:44  PAGE 237
.GTNBR -- NUMBER EVALUATOR FOR ".GTNUM" 7603.03

   9245					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9246
   9247	014472				20$:
   9248	014472	062706 	000006 			ADD	#^D6,SP		; ....FLUSH THE STACK
   9249	014476					POP	R1		; .RESTORE R1
	014476	012601 				 MOV	(SP)+,R1
   9250	014500	105745 				TSTB	-(R5)		; BACK THE INPUT POINTER UP
   9251	014502	005737 	000132'			TST	.INCHC		; LOOK AT THE CHARACTER COUNT
   9252	014506	001401 				BEQ	GTNMRA		; GIVE "MRA" ERROR IF NONE THERE
   9253	014510					RETURN			; TO CALLER
	014510	000207 				 RTS	PC
   9254	014512				GTNMRA:
   9255	014512					ERROR$	MRA		; ERROR -- MISSING REQUIRED ARGUMENT
	014512	012746 	052021 			 MOV	#^RMRA,-(SP)
	014516	104400 				 TRAP	TC.ERR
   9256						;
   9257	014520				GTNNOR:
   9258	014520					ERROR$	NOR		; ERROR -- NUMBER OUT OF RANGE
	014520	012746 	054752 			 MOV	#^RNOR,-(SP)
	014524	104400 				 TRAP	TC.ERR
   9259						;
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 239
.GTNBR -- NUMBER EVALUATOR FOR ".GTNUM" 7603.03

   9262					.TITLE	TYOUT -- GENERAL TERMINAL OUTPUT MODULE 7603.30
   9263
   9264						.IDENT	"006110"
   9265
   9266					;
   9267					;                             COPYRIGHT (C) 1975, 1979 BY
   9268					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   9269					;
   9270					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   9271					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   9272					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   9273					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   9274					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   9275					;
   9276					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   9277					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   9278					;       CORPORATION.
   9279					;
   9280					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   9281					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   9282					;
   9283					;		MODULE: GENERAL TERMINAL OUTPUT
   9284					;
   9285					;		VERSION: 06-11
   9286					;
   9287					;		AUTHOR: R. BELANGER
   9288					;
   9289					;		DATE: 7603.30
   9290					;
   9291					;	THIS MODULE CONTAINS:
   9292					;
   9293					;	1) GENERAL TERMINAL OUTPUT CODE
   9294					;
   9295					;  MODIFICATIONS:
   9296					;
   9297					;	NO.	DATE		PROGRAMMER	REASON
   9298					;	---	----		----------	------
   9299					;    [5.1000]	24-AUG-79	K. LEFEBVRE	ADD LINE PRINTER SUPPORT
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 240
.TYAST -- SPECIAL CHARACTER OUTPUT SUBROUTINES 7601.23

   9301					.SBTTL	.TYAST -- SPECIAL CHARACTER OUTPUT SUBROUTINES 7601.23
   9302
   9303					;+
   9304					; .TYAST -- SUBROUTINE TO TYPE AN <ASTERISK> ON THE CONSOLE OUTPUT DEVICE.
   9305					; .TYCOL -- SUBROUTINE TO TYPE A <COLON> ON THE CONSOLE OUTPUT DEVICE.
   9306					; .TYCOM -- SUBROUTINE TO TYPE A <COMMA> ON THE CONSOLE OUTPUT DEVICE.
   9307					; .TYMIN -- SUBROUTINE TO TYPE A <MINUS> ON THE CONSOLE OUTPUT DEVICE.
   9308					; .TYSLS -- SUBROUTINE TO TYPE A <SLASH> ON THE CONSOLE OUTPUT DEVICE.
   9309					; .TYSPC -- SUBROUTINE TO TYPE A <SPACE> ON THE CONSOLE OUTPUT DEVICE.
   9310					; .TYUPA -- SUBROUTINE TO TYPE AN <UP-ARROW> ON THE CONSOLE OUTPUT DEVICE.
   9311					;
   9312					; THESE SUBROUTINES TYPE THE INDICATED CHARACTER(S) ON THE CONSOLE
   9313					; OUTPUT DEVICE.
   9314					;
   9315					; INPUT ARGUMENTS:
   9316					;
   9317					;	NONE.
   9318					;
   9319					; OUTPUT ARGUMENTS:
   9320					;
   9321					;	NONE.
   9322					;
   9323					; ERROR CODES RETURNED:
   9324					;
   9325					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9326					;-
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 241
.TYAST -- SPECIAL CHARACTER OUTPUT SUBROUTINES 7601.23

   9328						.ENABL	LSB
   9329
   9330	014526				.TYCOL::
   9331	014526					PUSH	R0		; SAVE R0
	014526	010046 				 MOV	R0,-(SP)
   9332	014530	012700 	000072 			MOV	#':,R0		; .<COLON> TO R0
   9333	014534	000423 				BR	10$		; .DO OUTPUT
   9334						;
   9335	014536				.TYCOM::
   9336	014536					PUSH	R0		; SAVE R0
	014536	010046 				 MOV	R0,-(SP)
   9337	014540	012700 	000054 			MOV	#',,R0		; .<COMMA> TO R0
   9338	014544	000417 				BR	10$		; .OUTPUT IT
   9339						;
   9340	014546				.TYMIN::
   9341	014546					PUSH	R0		; SAVE R0
	014546	010046 				 MOV	R0,-(SP)
   9342	014550	012700 	000055 			MOV	#'-,R0		; <HYPHEN> TO R0
   9343	014554	000413 				BR	10$		; .DO OUTPUT
   9344						;
   9345	014556				.TYSLS::
   9346	014556					PUSH	R0		; SAVE R0
	014556	010046 				 MOV	R0,-(SP)
   9347	014560	012700 	000057 			MOV	#'/,R0		; .<SLASH> TO R0
   9348	014564	000407 				BR	10$		; .OUTPUT IT
   9349						;
   9350	014566				.TYSPC::
   9351	014566					PUSH	R0		; SAVE R0
	014566	010046 				 MOV	R0,-(SP)
   9352	014570	012700 	000040 			MOV	#.SPACE,R0	; .<SPACE> TO R0
   9353	014574	000403 				BR	10$		; .OUTPUT IT
   9354						;
   9355	014576				.TYUPA::
   9356	014576					PUSH	R0		; SAVE R0
	014576	010046 				 MOV	R0,-(SP)
   9357	014600	012700 	000136 			MOV	#'^,R0		; .<UP-ARROW> TO R0
   9358	014604				10$:
   9359	014604					CALL	.TYCHR		; .OUTPUT IT
	014604	004737 	015504'			 JSR	PC,.TYCHR
   9360	014610					POP	R0		; .RESTORE R0
	014610	012600 				 MOV	(SP)+,R0
   9361	014612					RETURN			; TO CALLER
	014612	000207 				 RTS	PC
   9362
   9363						.DSABL	LSB
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 242
.TYACE -- TYPE AC ADDR AND CONTENTS

   9365					.SBTTL	.TYACE -- TYPE AC ADDR AND CONTENTS
   9366
   9367					;+
   9368					; .TYACE -- SUBROUTINE TO TYPE AC ADDR AND CONTENTS
   9369					;
   9370					; THIS ROUTINE WILL TYPE:
   9371					;	N:AAAAAA/ DDDDDD DDDDDD
   9372					;	   N-AC BLOCK NUMBER
   9373					;	   A-AC ADDR
   9374					;	   D-AC DATA
   9375					;
   9376					; INPUT ARGUMENTS:
   9377					;
   9378					;		+---------------+
   9379					;	R0=>	! BLOCK ! ADDR  !
   9380					;		+---------------+
   9381					;		! KL BITS 20-35 !
   9382					;		+---------------+
   9383					;		! KL BITS 4-19  !
   9384					;		+---------------+
   9385					;		! KL BITS 0-3   !
   9386					;		+---------------+
   9387					;
   9388					; OUTPUT ARGUMENTS:
   9389					;
   9390					;	NONE
   9391					;
   9392					; ERROR CODES RETURNED:
   9393					;
   9394					;	NONE
   9395					;-
   9396
   9397	014614				.TYACE::
   9398	014614					PUSH	R0		; SAVE R0
	014614	010046 				 MOV	R0,-(SP)
   9399	014616	113700 	000152'			MOVB	.PASS,R0	; PASS NO.
   9400	014622	005200 				INC	R0		; MAKE 1 OR 2
   9401	014624	062700 	000060 			ADD	#'0,R0		; MAKE ASCII
   9402	014630	110037 	002274'			MOVB	R0,PRMFM+13.	; PUT IN MESSAGE
   9403	014634	012700 	002257'			MOV	#PRMFM,R0	; FM SWEEP PROMPT
   9404	014640					CALL	.TYMSG		; TYPE IT
	014640	004737 	015446'			 JSR	PC,.TYMSG
   9405	014644					POP	R0		; RESTORE R0
	014644	012600 				 MOV	(SP)+,R0
   9406	014646				.TYAC1::PUSH	R2		; ALT. ENTRY PT., SAVE R2
	014646	010246 				 MOV	R2,-(SP)
   9407	014650	010002 				MOV	R0,R2		; SAVE R0
   9408	014652	011000 				MOV	(R0),R0		; GET FIRST WORD OF DATA
   9409	014654	000300 				SWAB	R0		; GET BLOCK NO. IN LOW BYTE
   9410	014656	042700 	177600 			BIC	#177600,R0	; CLEAR ADDR
   9411	014662	062700 	000060 			ADD	#'0,R0		; CONVERT TO ASCII
   9412	014666					CALL	.TYCHR		; TYPE IT
	014666	004737 	015504'			 JSR	PC,.TYCHR
   9413	014672					CALL	.TYCOL		; TYPE COLON
	014672	004737 	014526'			 JSR	PC,.TYCOL
   9414	014676	012237 	007210'			MOV	(R2)+,ADRTMP	; GET FIRST DATA VALUE
   9415	014702	042737 	177600 	007210'		BIC	#177600,ADRTMP	; CLEAR BLOCK NO.
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 242-1
.TYACE -- TYPE AC ADDR AND CONTENTS

   9416	014710	012700 	007210'			MOV	#ADRTMP,R0	; PTR TO AC ADDR
   9417	014714					CALL	.TYKLA		; TYPE KL ADDR
	014714	004737 	015072'			 JSR	PC,.TYKLA
   9418	014720					CALL	.TYSLS		; TYPE SLASH
	014720	004737 	014556'			 JSR	PC,.TYSLS
   9419	014724					CALL	.TYSPC		; TYPE SPACE
	014724	004737 	014566'			 JSR	PC,.TYSPC
   9420	014730	010200 				MOV	R2,R0		; PTR TO AC DATA
   9421	014732					CALL	.TYKLN		; TYPE KL DATA
	014732	004737 	015142'			 JSR	PC,.TYKLN
   9422	014736					CALL	.TCRLF		; TYPE CR-LF
	014736	004737 	015536'			 JSR	PC,.TCRLF
   9423	014742					POP	R2		; RESTORE R2
	014742	012602 				 MOV	(SP)+,R2
   9424	014744					RETURN
	014744	000207 				 RTS	PC
   9425
   9426	007210				.PSECT	DATA
   9427
   9428	007210	000000 			ADRTMP:	.WORD	0		; TEMPORARY ADDR LOCATION
   9429	007212	000000 				.WORD	0
   9430	007214	000000 				.WORD	0
   9431
   9432	002257				.PSECT	MESSAG
   9433
   9434	002257	   040 	   040 	   040 	PRMFM:	.ASCIZ	/    FM SWEEP X> /
	002262	   040 	   106 	   115
	002265	   040 	   123 	   127
	002270	   105 	   105 	   120
	002273	   040 	   130 	   076
	002276	   040 	   000
   9435
   9436	014746				.PSECT
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 243
.TYELA -- SUBROUTINE TO TYPE A PDP-11 ADDRESS 7601.23

   9438					.SBTTL	.TYELA -- SUBROUTINE TO TYPE A PDP-11 ADDRESS 7601.23
   9439
   9440					;+
   9441					; .TYELA -- SUBROUTINE TO TYPE A PDP-11 ADDRESS
   9442					; .TYELN -- SUBROUTINE TO TYPE A PDP-11 NUMBER
   9443					;
   9444					; THIS SUBROUTINE WILL TYPE AND FORMAT A PDP-11 NUMBER ACCORDING TO THE
   9445					; CURRENT OUTPUT RADIX IN ".ORADX". STANDARD FORMATS ARE:
   9446					;
   9447					;	(A) BINARY:	3 DIGITS AND A SPACE -- XXX<SP>XXX<SP>.....
   9448					;	(B) OCTAL:	6 DIGITS -- XXXXXX
   9449					;	(C) DECIMAL:	NO FORMATTING
   9450					;
   9451					; INPUT ARGUMENTS:
   9452					;
   9453					;	R0 HOLDS THE NUMBER TO BE PRINTED
   9454					;
   9455					; OUTPUT ARGUMENTS (TO ".TYNCM"):
   9456					;
   9457					;	R0 POINTS TO THE NUMBER TO BE PRINTED (ON THE STACK)
   9458					;	R3 POINTS TO A FORMAT TABLE
   9459					;
   9460					; ERROR CODES RETURNED:
   9461					;
   9462					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9463					;-
   9464						.ENABL	LSB
   9465
   9466
   9467	014746				.TYELA::
   9468	014746	005037 	000166'			CLR	.LDZFL		; NO LEADING ZEROES
   9469	014752				.TYELN::
   9470	014752					PUSH	<R3,R2,R1,R0>	; SAVE CALLER'S REGISTERS
	014752	010346 				 MOV	R3,-(SP)
	014754	010246 				 MOV	R2,-(SP)
	014756	010146 				 MOV	R1,-(SP)
	014760	010046 				 MOV	R0,-(SP)
   9471	014762	005003 				CLR	R3		; ....ASSUME UNFORMATTED RADIX
   9472	014764	022737 	000002 	000174'		CMP	#^D2,.ORADX	; ....BINARY?
   9473	014772	001002 				BNE	10$		; ....NO
   9474	014774	012703 	007232'			MOV	#ELNBIN,R3	; ....BINARY FORMAT TABLE TO R3
   9475	015000				10$:
   9476	015000	022737 	000012 	000174'		CMP	#^D10,.ORADX	; ....DECIMAL?
   9477	015006	001424 				BEQ	30$		; ....YES
   9478	015010	012703 	007250'			MOV	#ELNOCT,R3	; ....OCTAL FORMAT TABLE TO R3
   9479	015014	000421 				BR	30$		; ....SET UP POINTERS AND EXIT
   9480						;
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 244
.TYP3D -- SUBROUTINE TO TYPE A THREE DIGIT NUMBER 7601.23

   9482					.SBTTL	.TYP3D -- SUBROUTINE TO TYPE A THREE DIGIT NUMBER 7601.23
   9483
   9484					;+
   9485					; .TYP3D -- SUBROUTINE TO TYPE A THREE DIGIT NUMBER
   9486					;
   9487					; THIS SUBROUTINE WILL TYPE AND FORMAT A PDP-11 NUMBER ACCORDING TO THE
   9488					; CURRENT OUTPUT RADIX IN ".ORADX". STANDARD FORMATS ARE:
   9489					;
   9490					;	(A) BINARY:	3 DIGITS AND A SPACE -- XXX<SP>XXX<SP>.....
   9491					;	(B) OCTAL:	3 DIGITS -- XXX
   9492					;	(C) DECIMAL:	NO FORMATTING
   9493					;
   9494					; INPUT ARGUMENTS:
   9495					;
   9496					;	R0 HOLDS THE NUMBER TO BE PRINTED
   9497					;
   9498					; OUTPUT ARGUMENTS (TO ".TYNCM"):
   9499					;
   9500					;	R0 POINTS TO THE BYTE TO BE PRINTED (ON THE STACK)
   9501					;	R3 POINTS TO A FORMAT TABLE
   9502					;
   9503					; ERROR CODES RETURNED:
   9504					;
   9505					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9506					;-
   9507
   9508	015016				.TYP3D::
   9509	015016					PUSH	<R3,R2,R1,R0>	; SAVE CALLER'S REGISTERS
	015016	010346 				 MOV	R3,-(SP)
	015020	010246 				 MOV	R2,-(SP)
	015022	010146 				 MOV	R1,-(SP)
	015024	010046 				 MOV	R0,-(SP)
   9510	015026	005003 				CLR	R3		; ....ASSUME UNFORMATTED RADIX
   9511	015030	022737 	000002 	000174'		CMP	#^D2,.ORADX	; ....BINARY?
   9512	015036	001002 				BNE	20$		; ....NO
   9513	015040	012703 	007240'			MOV	#ELBBIN,R3	; ....BINARY FORMAT TABLE TO R3
   9514	015044				20$:
   9515	015044	022737 	000012 	000174'		CMP	#^D10,.ORADX	; ....DECIMAL?
   9516	015052	001402 				BEQ	30$		; ....YES
   9517	015054	012703 	007244'			MOV	#ELBOCT,R3	; ....OCTAL FORMAT TABLE TO R3
   9518	015060				30$:
   9519	015060	005046 				CLR	-(SP)		; ....SET UP BUFFERS ON THE STACK
   9520	015062	005046 				CLR	-(SP)		; .....
   9521	015064					PUSH	R0		; ......NUMBER TO BE TYPED
	015064	010046 				 MOV	R0,-(SP)
   9522	015066	010600 				MOV	SP,R0		; .......POINT TO IT
   9523	015070	000455 				BR	.TYNCM		; .......AND GO TO COMMON ROUTINE
   9524						;
   9525
   9526						.DSABL	LSB
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 245
.TYKLA -- SUBROUTINE TO TYPE A KL ADDRESS 7608.02

   9528					.SBTTL	.TYKLA -- SUBROUTINE TO TYPE A KL ADDRESS 7608.02
   9529
   9530					;+
   9531					; .TYKLA -- SUBROUTINE TO TYPE A KL ADDRESS
   9532					;
   9533					; THIS SUBROUTINE WILL TYPE AND FORMAT A KL ADDRESS ACCORDING TO THE
   9534					; CURRENT OUTPUT RADIX IN ".ORADX". STANDARD FORMATS ARE:
   9535					;
   9536					;	(A) BINARY:	3 DIGITS AND A SPACE -- XXX<SP>XXX<SP>.....
   9537					;	(B) OCTAL:	HALFWORD FORMAT -- XX<SP>XXXXXX
   9538					;	(C) DECIMAL:	NO FORMATTING
   9539					;
   9540					; INPUT ARGUMENTS:
   9541					;
   9542					;	R0 POINTS TO THE KL ADDRESS TO BE PRINTED
   9543					;
   9544					; OUTPUT ARGUMENTS (TO ".TYNCM"):
   9545					;
   9546					;	R0 POINTS TO THE ADDRESS TO BE PRINTED (ON THE STACK)
   9547					;	R3 POINTS TO A FORMAT TABLE
   9548					;
   9549					; ERROR CODES RETURNED:
   9550					;
   9551					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9552					;-
   9553
   9554						.ENABL	LSB
   9555
   9556	015072				.TYKLA::
   9557	015072	005037 	000166'			CLR	.LDZFL		; NO LEADING ZEROES
   9558	015076					PUSH	<R3,R2,R1,R0>	; SAVE CALLER'S REGISTERS
	015076	010346 				 MOV	R3,-(SP)
	015100	010246 				 MOV	R2,-(SP)
	015102	010146 				 MOV	R1,-(SP)
	015104	010046 				 MOV	R0,-(SP)
   9559	015106	005003 				CLR	R3		; ....ASSUME UNFORMATTED RADIX
   9560	015110	022737 	000002 	000174'		CMP	#^D2,.ORADX	; ....BINARY?
   9561	015116	001002 				BNE	10$		; ....NO
   9562	015120	012703 	007226'			MOV	#KLABIN,R3	; ....BINARY FORMAT TABLE TO R3
   9563	015124				10$:
   9564	015124	022737 	000012 	000174'		CMP	#^D10,.ORADX	; ....DECIMAL?
   9565	015132	001424 				BEQ	30$		; ....YES
   9566	015134	012703 	007252'			MOV	#KLAOCT,R3	; ....OCTAL FORMAT TABLE TO R3
   9567	015140	000421 				BR	30$		; ....GO DO COMMON CODE
   9568						;
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 246
.TYKLN -- SUBROUTINE TO TYPE A KL NUMBER 7608.02

   9570					.SBTTL	.TYKLN -- SUBROUTINE TO TYPE A KL NUMBER 7608.02
   9571
   9572					;+
   9573					; .TYKLN -- SUBROUTINE TO TYPE A KL NUMBER
   9574					;
   9575					; THIS SUBROUTINE WILL TYPE AND FORMAT A KL NUMBER ACCORDING TO THE
   9576					; CURRENT OUTPUT RADIX IN ".ORADX". STANDARD FORMATS ARE:
   9577					;
   9578					;	(A) BINARY:	3 DIGITS AND A SPACE -- XXX<SP>XXX<SP>.....
   9579					;	(B) OCTAL:	6 DIGITS AND A SPACE -- XXXXXX<SP>XXXXXX
   9580					;	(C) DECIMAL:	NO FORMATTING
   9581					;
   9582					; INPUT ARGUMENTS:
   9583					;
   9584					;	R0 POINTS TO THE NUMBER TO BE PRINTED
   9585					;
   9586					; OUTPUT ARGUMENTS (TO ".TYNCM"):
   9587					;
   9588					;	R0 POINTS TO THE NUMBER TO BE PRINTED (ON THE STACK)
   9589					;	R3 POINTS TO A FORMAT TABLE
   9590					;
   9591					; ERROR CODES RETURNED:
   9592					;
   9593					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9594					;-
   9595
   9596	015142				.TYKLN::
   9597	015142					PUSH	<R3,R2,R1,R0>	; SAVE CALLER'S REGISTERS
	015142	010346 				 MOV	R3,-(SP)
	015144	010246 				 MOV	R2,-(SP)
	015146	010146 				 MOV	R1,-(SP)
	015150	010046 				 MOV	R0,-(SP)
   9598	015152	005003 				CLR	R3		; ....ASSUME UNFORMATTED RADIX
   9599	015154	022737 	000002 	000174'		CMP	#^D2,.ORADX	; ....BINARY?
   9600	015162	001002 				BNE	20$		; ....NO
   9601	015164	012703 	007216'			MOV	#KLNBIN,R3	; ....BINARY FORMAT TABLE TO R3
   9602	015170				20$:
   9603	015170	022737 	000012 	000174'		CMP	#^D10,.ORADX	; ....DECIMAL?
   9604	015176	001402 				BEQ	30$		; ....YES
   9605	015200	012703 	007246'			MOV	#KLNOCT,R3	; ....OCTAL FORMAT TABLE TO R3
   9606	015204				30$:
   9607	015204	062700 	000006 			ADD	#^D6,R0		; ....POINT TO THE END OF THE NUMBER
   9608	015210					PUSH	-(R0)		; ....SET IT ON THE STACK
	015210	014046 				 MOV	-(R0),-(SP)
   9609	015212	042710 	177760 			BIC	#^C17,(R0)	; .....TRUNCATE TO 36 BITS
   9610	015216					PUSH	<-(R0),-(R0)>	; .....PUT THE REST ON THE STACK
	015216	014046 				 MOV	-(R0),-(SP)
	015220	014046 				 MOV	-(R0),-(SP)
   9611	015222	010600 				MOV	SP,R0		; .......POINT TO THE STACKED NUMBER
   9612					;	BR	.TYNCM		; .......AND GO TO COMMON ROUTINE
   9613						;
   9614
   9615						.DSABL	LSB
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 247
.TYNCM -- COMMON ENTRY POINT FOR ".TYNUM" 7601.23

   9617					.SBTTL	.TYNCM -- COMMON ENTRY POINT FOR ".TYNUM" 7601.23
   9618
   9619					;+
   9620					; .TYNCM -- COMMON ENTRY POINT FOR ".TYNUM".
   9621					;
   9622					; THIS SUBROUTINE SETS UP THE REMAINDER OF THE ARGUMENTS REQUIRED
   9623					; BY ".TYNUM" FROM ".TYELN" AND ".TYKLN".
   9624					;
   9625					; INPUT ARGUMENTS:
   9626					;
   9627					;	R1, R2, AND R3 ARE ON THE STACK
   9628					;	R0 POINTS TO THE NUMBER TO BE PRINTED (ON THE STACK)
   9629					;	R3 POINTS TO A FORMAT TABLE
   9630					;
   9631					; OUTPUT ARGUMENTS:
   9632					;
   9633					;	R0 POINTS TO THE ORIGINAL NUMBER
   9634					;
   9635					; ERROR CODES RETURNED:
   9636					;
   9637					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9638					;-
   9639
   9640	015224				.TYNCM::
   9641	015224	005046 				CLR	-(SP)		; .......SPACE FOR DIVISOR
   9642	015226	005046 				CLR	-(SP)		; ........
   9643	015230	005046 				CLR	-(SP)		; .........
   9644	015232	010601 				MOV	SP,R1		; ..........POINT TO IT
   9645	015234	005002 				CLR	R2		; ..........CLEAR R2
   9646	015236	005737 	000166'			TST	.LDZFL		; ..........ARE WE PRINTING LEADING ZEROS/
   9647	015242	001006 				BNE	10$		; ..........YES -- GO ON
   9648	015244					CALL	.TPTST		; ..........NO -- IS THIS NUMBER .EQ. 0?
	015244	004737 	011460'			 JSR	PC,.TPTST
   9649	015250	001003 				BNE	10$		; ..........NO -- JUST PRINT IT
   9650	015252	005003 				CLR	R3		; ..........YES -- CALL IT UNFORMATTED
   9651	015254	005337 	000166'			DEC	.LDZFL		; ..........AND SAY WE PRINT ZEROES
   9652	015260				10$:
   9653	015260					CALL	.TYNUM		; ..........FORMAT AND PRINT THE NUMBER
	015260	004737 	015302'			 JSR	PC,.TYNUM
   9654	015264	062706 	000014 			ADD	#^D12,SP	; ..........FLUSH THE STACK
   9655	015270					POP	<R0,R1,R2,R3>	; ....RESTORE THE REGISTERS
	015270	012600 				 MOV	(SP)+,R0
	015272	012601 				 MOV	(SP)+,R1
	015274	012602 				 MOV	(SP)+,R2
	015276	012603 				 MOV	(SP)+,R3
   9656	015300					RETURN			; TO CALLER
	015300	000207 				 RTS	PC
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 248
.TYNCM -- COMMON ENTRY POINT FOR ".TYNUM" 7601.23

   9658					; THESE ARE THE FORMAT TABLES
   9659
   9660	007216				.PSECT	DATA
   9661
   9662	007216				KLNBIN::		 	; KL BINARY TABLE
   9663	007216	   003 	   040 			.BYTE	3,.SPACE	; 3 DIGITS AND A SPACE
   9664	007220	   003 	   040 			.BYTE	3,.SPACE
   9665	007222	   003 	   040 			.BYTE	3,.SPACE
   9666	007224	   003 	   040 			.BYTE	3,.SPACE
   9667	007226				KLABIN::			; KL ADDRESS BINARY
   9668	007226	   003 	   040 			.BYTE	3,.SPACE
   9669	007230	   003 	   040 			.BYTE	3,.SPACE
   9670	007232				ELNBIN::			; ELEVEN BINARY TABLE
   9671	007232	   003 	   040 			.BYTE	3,.SPACE
   9672	007234	   003 	   040 			.BYTE	3,.SPACE
   9673	007236	   003 	   040 			.BYTE	3,.SPACE
   9674	007240				ELBBIN::			; PDP-11 BYTE BINARY TABLE
   9675	007240	   003 	   040 			.BYTE	3,.SPACE
   9676	007242	   003 	   040 			.BYTE	3,.SPACE
   9677	007244				ELBOCT::			; PDP-11 BYTE OCTAL TABLE
   9678	007244	   003 	   000 			.BYTE	3,0		; END OF TABLE
   9679
   9680	007246				KLNOCT::			; KL OCTAL TABLE
   9681	007246	   006 	   040 			.BYTE	6,.SPACE	; 6 DIGITS AND A SPACE
   9682	007250				ELNOCT::			; PDP-11 OCTAL TABLE
   9683	007250	   006 	   000 			.BYTE	6,0		; END OF TABLE
   9684	007252				KLAOCT::			; KL ADDRESS OCTAL
   9685	007252	   006 	   040 			.BYTE	6,.SPACE
   9686	007254	   002 	   000 			.BYTE	2,0
   9687					.EVEN
   9688	015302				.PSECT
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 249
.TYNUM -- GENERAL SUBROUTINE TO TYPE A FORMATTED NUMBER 7601.2

   9690					.SBTTL	.TYNUM -- GENERAL SUBROUTINE TO TYPE A FORMATTED NUMBER 7601.23
   9691
   9692					;+
   9693					; .TYNUM -- GENERAL SUBROUTINE TO TYPE A FORMATTED NUMBER ON THE
   9694					;	    CONSOLE OUTPUT DEVICE.
   9695					;
   9696					; THIS SUBROUTINE WILL TYPE A FORMATTED NUMBER IN THE RADIX SPECIFIED
   9697					; IN ".ORADX" ON THE CONSOLE OUTPUT DEVICE.
   9698					;
   9699					; INPUT ARGUMENTS:
   9700					;
   9701					;	R0 POINTS TO THE 36 BIT NUMBER TO BE TYPED
   9702					;	R1 POINTS TO A TRIPLET TO BE USED AS A DIVISOR / REMAINDER BUFFER
   9703					;	R2 IS CLEAR
   9704					;	R3 POINTS TO A FORMAT CONTROL TABLE
   9705					;
   9706					; OUTPUT ARGUMENTS:
   9707					;
   9708					;	R0, R1, R2, AND R3 ARE CLOBBERED
   9709					;	THE NUMBER POINTED TO BY R0 IS CLOBBERED
   9710					;	THE FORMATTED NUMBER IS PLACED IN THE OUTPUT BUFFER
   9711					;
   9712					; ERROR CODES RETURNED:
   9713					;
   9714					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9715					;-
   9716
   9717	015302				.TYNUM::
   9718	015302	005703 				TST	R3		; CHECK THE FORMAT POINTER
   9719	015304	001422 				BEQ	50$		; UNFORMATTED IF .EQ. 0
   9720	015306	112302 				MOVB	(R3)+,R2	; ITERATION COUNT TO R2
   9721	015310	001410 				BEQ	40$		; JUST A FORMAT CHARACTER IF .EQ. 0
   9722	015312				10$:
   9723	015312	000417 				BR	50$		; CONVERT ONE DIGIT
   9724						;
   9725	015314				20$:
   9726	015314	005702 				TST	R2		; TEST ITERATION COUNT
   9727	015316	001004 				BNE	30$		; FORMATTED NUMBER -- DO ITERATION COUNT
   9728	015320					CALL	.TPTST		; HAS THE QUOTIENT GONE TO ZERO?
	015320	004737 	011460'			 JSR	PC,.TPTST
   9729	015324	001441 				BEQ	80$		; YES -- PRINT THE NUMBER
   9730	015326	000411 				BR	50$		; NO -- KEEP GOING UNTIL IT DOES
   9731						;
   9732	015330				30$:
   9733	015330	077210 				SOB	R2,10$		; LOOP THRU THIS SET OF ITERATIONS
   9734
   9735					;	[CONTINUED ON THE FOLLOWING PAGE]
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 250
.TYNUM -- GENERAL SUBROUTINE TO TYPE A FORMATTED NUMBER 7601.2

   9737					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9738
   9739	015332				40$:
   9740	015332	112302 				MOVB	(R3)+,R2	; FORMAT CONTROL CHARACTER TO R2
   9741	015334	001435 				BEQ	80$		; DONE IF .EQ. 0
   9742	015336	162702 	000060 			SUB	#60,R2		; SINCE OUTPUT ROUTINE WILL ADD 60
   9743	015342					PUSH	R2		; <PUSH>PUT THE FORMAT CHARACTER IN THE STACK
	015342	010246 				 MOV	R2,-(SP)
   9744	015344					PUSH	#60$		; <PUSH>FAKE THE PRINT ROUTINE OUT
	015344	012746 	015402'			 MOV	#60$,-(SP)
   9745	015350	000754 				BR	.TYNUM		; AND DO THE NEXT PART
   9746						;
   9747	015352				50$:				; HERE TO CONVERT ONE DIGIT
   9748	015352					PUSH	R0		; SAVE R0
	015352	010046 				 MOV	R0,-(SP)
   9749	015354	010100 				MOV	R1,R0		; MOVE R1 TO R0
   9750	015356					CALL	.TPCLR		; .CLEAR REMAINDER OUT
	015356	004737 	011356'			 JSR	PC,.TPCLR
   9751	015362					POP	R0		; .RESTORE R0
	015362	012600 				 MOV	(SP)+,R0
   9752	015364	013711 	000174'			MOV	.ORADX,(R1)	; OUTPUT RADIX AS DIVISOR
   9753	015370					CALL	.TPDIV		; DO THE DIVISION
	015370	004737 	011144'			 JSR	PC,.TPDIV
   9754	015374					PUSH	(R1)		; <PUSH> SAVE THE DIGIT
	015374	011146 				 MOV	(R1),-(SP)
   9755	015376					CALL	20$		; AND GO GET MORE
	015376	004737 	015314'			 JSR	PC,20$
   9756						;
   9757	015402				60$:				; HERE TO UNSTACK THE NUMBER
   9758	015402					POP	R0		; <POP>GET THE NUMBER OFF THE STACK
	015402	012600 				 MOV	(SP)+,R0
   9759	015404	005737 	000166'			TST	.LDZFL		; PRINT LEADING ZEROES?
   9760	015410	001004 				BNE	70$		; YES -- DO IT
   9761	015412	005700 				TST	R0		; NO -- SEE IF .EQ. 0 OR FORMAT
   9762	015414	003405 				BLE	80$		; YES -- DON'T PRINT IT
   9763	015416	005337 	000166'			DEC	.LDZFL		; NO -- SET THE FLAG AND PRINT
   9764	015422				70$:
   9765	015422	062700 	000060 			ADD	#60,R0		; ASCIIZE IT
   9766	015426	000426 				BR	.TYCHR		; PRINT IT
   9767						;
   9768	015430				80$:
   9769	015430					RETURN			; FOR NEXT NUMBER OR TO CALLER
	015430	000207 				 RTS	PC
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 251
.TYLIN -- SUBROUTINE TO OUTPUT AN .ASCIZ MESSAGE AND A <CRLF>

   9771					.SBTTL	.TYLIN -- SUBROUTINE TO OUTPUT AN .ASCIZ MESSAGE AND A <CRLF> 7601.23
   9772
   9773					;+
   9774					; .TYLIN -- SUBROUTINE TO OUTPUT AN ".ASCIZ" MESSAGE APPENDED BY A <CRLF>
   9775					; .TYMSG -- SUBROUTINE TO OUTPUT AN ".ASCIZ" MESSAGE TO THE CONSOLE
   9776					;	    OUTPUT DEVICE.
   9777					;
   9778					; THESE SUBROUTINES WILL OUTPUT AN ".ASCIZ" MESSAGE TO THE CONSOLE
   9779					; OUTPUT DEVICE. ".TYLIN" WILL APPEND A <CRLF> SEQUENCE TO THE
   9780					; MESSAGE (FORCING THE BUFFER TO BE OUTPUT).
   9781					;
   9782					; INPUT ARGUMENTS:
   9783					;
   9784					;	R0 POINTS TO THE .ASCIZ MESSAGE
   9785					;
   9786					; OUTPUT ARGUMENTS:
   9787					;
   9788					;	NONE.
   9789					;
   9790					; ERROR CODES RETURNED:
   9791					;
   9792					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9793					;-
   9794
   9795						.ENABL	LSB
   9796
   9797	015432				.TYLIN::
   9798	015432					CALL	.TYMSG		; OUTPUT THE MESSAGE
	015432	004737 	015446'			 JSR	PC,.TYMSG
   9799	015436	000437 				BR	.TCRLF		; OUTPUT A <CRLF> AND EXIT
   9800						;
   9801	015440				.TYMSF::
   9802	015440					CALL	.TYMSG		; PRINT THE MESSAGE
	015440	004737 	015446'			 JSR	PC,.TYMSG
   9803	015444	000413 				BR	30$		; FORCE IT AND EXIT
   9804						;
   9805	015446				.TYMSG::
   9806	015446					PUSH	R1		; SAVE R1
	015446	010146 				 MOV	R1,-(SP)
   9807	015450	010001 				MOV	R0,R1		; .MESSAGE POINTER TO R1
   9808	015452				10$:
   9809	015452	112100 				MOVB	(R1)+,R0	; .GET THE CHARACTER INTO R0
   9810	015454	001403 				BEQ	20$		; .EXIT IF <NULL>
   9811	015456					CALL	.TYCHR		; .OUTPUT THE CHARACTER
	015456	004737 	015504'			 JSR	PC,.TYCHR
   9812	015462	000773 				BR	10$		; .AND GO GET THE NEXT CHARACTER
   9813						;
   9814	015464				20$:
   9815	015464					POP	R1		; .RESTORE R1
	015464	012601 				 MOV	(SP)+,R1
   9816	015466					RETURN			; TO CALLER
	015466	000207 				 RTS	PC
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 252
.TFCHR -- SUBROUTINE TO FORCE A CHARACTER TO THE CONSOLE DEVIC

   9818					.SBTTL	.TFCHR -- SUBROUTINE TO FORCE A CHARACTER TO THE CONSOLE DEVICE 7601.23
   9819
   9820					;+
   9821					; .TFCHR -- FORCED CHARACTER OUTPUT SUBROUTINE
   9822					;
   9823					; THIS SUBROUTINE WILL FORCE PRINT ONE CHARACTER TO THE CONSOLE
   9824					; OUTPUT DEVICE.
   9825					;
   9826					; INPUT ARGUMENTS:
   9827					;
   9828					;	R0 CONTAINS THE CHARACTER TO BE FORCED TO THE OUTPUT DEVICE
   9829					;
   9830					; OUTPUT ARGUMENTS:
   9831					;
   9832					;	THE OUTPUT BYTE COUNTERS AND BYTE POINTER ARE UPDATED.
   9833					;
   9834					; ERROR CODES RETURNED:
   9835					;
   9836					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9837					;-
   9838
   9839	015470				.TFCHR::
   9840	015470					CALL	.TYCHR		; LOAD THE CHARACTER INTO THE BUFFER
	015470	004737 	015504'			 JSR	PC,.TYCHR
   9841	015474				30$:
   9842	015474	005737 	000432'			TST	.CDOBC		; WAS THE BUFFER DUMPED?
   9843	015500	001430 				BEQ	40$		; YES -- JUST EXIT
   9844	015502	000430 				BR	.TYOUT		; NO -- FORCE THE BUFFER OUT
   9845						;
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 253
.TYCHR -- CONSOLE DEVICE OUTPUT SUBROUTINE 7601.23

   9847					.SBTTL	.TYCHR -- CONSOLE DEVICE OUTPUT SUBROUTINE 7601.23
   9848
   9849					;+
   9850					; .TYCHR -- CONSOLE DEVICE OUTPUT SUBROUTINE
   9851					; .TCRLF -- OUTPUT A <CRLF>
   9852					;
   9853					; THIS SUBROUTINE WILL LOAD ON ASCII CHARACTER INTO THE CONSOLE
   9854					; DEVICE OUTPUT BUFFER AND WILL DUMP THE BUFFER TO THE CONSOLE
   9855					; OUTPUT DEVICE ON:
   9856					;
   9857					;	(A) APPEARANCE OF A <NEW-LINE> CHARACTER IN THE INPUT STREAM
   9858					;
   9859					;	(B) OUTPUT BUFFER OVERFLOW
   9860					;
   9861					; INPUT ARGUMENTS:
   9862					;
   9863					;	R0 CONTAINS THE CHARACTER TO BE OUTPUT.
   9864					;
   9865					; OUTPUT ARGUMENTS:
   9866					;
   9867					;	THE OUTPUT BYTE POINTER AND BYTE COUNTERS ARE UPDATED
   9868					;	OR REINITIALIZED IF THE BUFFER WAS DUMPED.
   9869					;
   9870					; ERROR CODES RETURNED:
   9871					;
   9872					;	IF THE CONSOLE OUTPUT FAILS, THE PARSER EXITS.
   9873					;-
   9874
   9875	015504				.TYCHR::
   9876	015504	110077 	000254'			MOVB	R0,@.TYOBP	; PUT THE CHARACTER IN THE BUFFER
   9877	015510	005237 	000254'			INC	.TYOBP		; POINT TO THE NEXT BYTE
   9878	015514	005237 	000432'			INC	.CDOBC		; INCREMENT THE OUTPUT BYTE COUNT
   9879	015520	005337 	000252'			DEC	.TYOBC		; DECREMENT THE LINE CONTROL COUNTER
   9880	015524	001404 				BEQ	.TCRLF		; END-OF-LINE -- FORCE OUTPUT
   9881	015526	122700 	000012 			CMPB	#12,R0		; WAS IT A "<NEW-LINE>"?
   9882	015532	001013 				BNE	40$		; NO -- JUST EXIT
   9883	015534	000413 				BR	.TYOUT		; YES -- OUTPUT THE LINE AND RETURN
   9884						;
   9885
   9886					;	[CONTINUED ON THE FOLLOWING PAGE]
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 254
.TYCHR -- CONSOLE DEVICE OUTPUT SUBROUTINE 7601.23

   9888					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9889
   9890	015536				.TCRLF::			; HERE ON OUTPUT BUFFER END
   9891	015536					PUSH	R0		; SAVE R0
	015536	010046 				 MOV	R0,-(SP)
   9892	015540	012700 	000015 			MOV	#15,R0		; .<CARRIAGE-RETURN>
   9893	015544					CALL	.TYCHR		; .TO BUFFER
	015544	004737 	015504'			 JSR	PC,.TYCHR
   9894	015550	012700 	000012 			MOV	#12,R0		; .<NEW-LINE>
   9895	015554					CALL	.TYCHR		; .TO BUFFER
	015554	004737 	015504'			 JSR	PC,.TYCHR
   9896	015560					POP	R0		; .RESTORE R0
	015560	012600 				 MOV	(SP)+,R0
   9897	015562				40$:
   9898	015562					RETURN			; AND EXIT
	015562	000207 				 RTS	PC
   9899
   9900						.DSABL	LSB
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 255
.TYOUT -- CONSOLE OUTPUT SUBROUTINE 7601.23

   9902					.SBTTL	.TYOUT -- CONSOLE OUTPUT SUBROUTINE 7601.23
   9903
   9904					;+
   9905					; .TYINI -- CONSOLE DEVICE INITIALIZATION
   9906					; .TYOUT -- CONSOLE OUTPUT SUBROUTINE
   9907					;
   9908					; THESE SUBROUTINES WILL OUTPUT THE BUFFER TO THE CONSOLE OUTPUT DEVICE.
   9909					;
   9910					; INPUT ARGUMENTS:
   9911					;
   9912					;	NONE.
   9913					;
   9914					; OUTPUT ARGUMENTS:
   9915					;
   9916					;	THE OUTPUT BUFFER POINTER AND BYTE COUNTS ARE RESET
   9917					;
   9918					; ERROR CODES RETURNED:
   9919					;
   9920					;	IF THE OUTPUT FAILS THE PARSER EXITS.
   9921					;-
   9922
   9923
   9924						.MCALL	DIR$, QIOW$
   9925
   9926						.ENABL	LSB
   9927
   9928	015564				.TYOUT::
   9929	015564	105737 	000156'			TSTB	.OUTTY		; [5.1000]TYPE OUTPUT?
   9930	015570	001417 				BEQ	10$		; [5.1000]NO -- NEXT DEVICE
   9931	015572					DIR$	#.ATCID		; YES -- ATTACH THE CONSOLE DEVICE
	015572	012746 	000460'			MOV	#.ATCID,-(SP)
	015576	104375 				EMT	375
   9932	015600	103464 				BCS	TYODIE		; ERROR IF CC-C IS SET
   9933	015602					DIR$	#.CDOUT		; OUTPUT THE BUFFER TO CONSOLE
	015602	012746 	000414'			MOV	#.CDOUT,-(SP)
	015606	104375 				EMT	375
   9934	015610	103460 				BCS	TYODIE		; ERROR IF CC-C IS SET
   9935	015612	105737 	000012'			TSTB	.COSTS		; DID WE REALLY SUCCEED?
   9936	015616	002455 				BLT	TYODIE		; NO -- COMPLAIN BITTERLY
   9937	015620					DIR$	#.DTCID		; DETACH CONSOLE
	015620	012746 	000474'			MOV	#.DTCID,-(SP)
	015624	104375 				EMT	375
   9938	015626	103451 				BCS	TYODIE		; ERROR IF CC-C IS SET
   9939	015630	013737 	000430'	000452'	10$:	MOV	.CDOBP,.LDOBP	; [5.1000]SET BUFFER POINTER
   9940	015636	013737 	000432'	000454'		MOV	.CDOBC,.LDOBC	; [5.1000]SET BYTE COUNT
   9941	015644				.TYOU1::			; [5.1000]ALT ENTRY POINT FOR CMD ECHO
   9942	015644	105737 	000155'			TSTB	.OUTLP		; [5.1000]PRINT OUTPUT?
   9943	015650	001407 				BEQ	20$		; [5.1000]NO -- NEXT DEVICE
   9944	015652					DIR$	#.LDOUT		; [5.1000]YES -- OUTPUT BUFFER
	015652	012746 	000436'			MOV	#.LDOUT,-(SP)
	015656	104375 				EMT	375
   9945	015660	103434 				BCS	TYODIE		; [5.1000]ERROR IF CC-C IS SET
   9946	015662	105737 	000160'			TSTB	.LDSTS		; [5.1000]DID WE REALLY SUCCEED
   9947	015666	002431 				BLT	TYODIE		; [5.1000]NO -- COMPLAIN BITTERLY
   9948	015670	105737 	000154'		20$:	TSTB	.OUTLG		; [5.1000]LOG OUTPUT?
   9949	015674	001412 				BEQ	30$		; [5.1000]NO -- DONE OUTPUTTING
   9950	015676					PUSH	<R1,R2>		; [5.1000]YES -- SAVE REGISTERS
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 255-1
.TYOUT -- CONSOLE OUTPUT SUBROUTINE 7601.23

	015676	010146 				 MOV	R1,-(SP)
	015700	010246 				 MOV	R2,-(SP)
   9951	015702	013702 	000452'			MOV	.LDOBP,R2	; [5.1000]SET BUFFER POINTER
   9952	015706	013701 	000454'			MOV	.LDOBC,R1	; [5.1000]SET BYTE COUNTER
   9953	015712					CALL	.WRITR		; [5.1000]LOG IT
	015712	004737 	002616'			 JSR	PC,.WRITR
   9954	015716					POP	<R2,R1>		; [5.1000]RESTORE REGISTERS
	015716	012602 				 MOV	(SP)+,R2
	015720	012601 				 MOV	(SP)+,R1
   9955	015722				30$:
   9956
   9957					;	[CONTINUED ON THE FOLLOWING PAGE]
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 256
.TYOUT -- CONSOLE OUTPUT SUBROUTINE 7601.23

   9959					;	[CONTINUED FROM THE PREVIOUS PAGE]
   9960
   9961	015722				.TYINI::			; HERE TO INIT OUTPUT POINTERS
   9962	015722	005037 	000432'			CLR	.CDOBC		; RESET BUFFER BYTE COUNT
   9963	015726	012737 	000544'	000430'		MOV	#.COBFR,.CDOBP	; [5.1000]RESET BUFFER PTR
   9964	015734	012737 	000204 	000252'		MOV	#.COBFL,.TYOBC	; RESET OUTPUT LINE CONTROL
   9965	015742	012737 	000544'	000254'		MOV	#.COBFR,.TYOBP	; RESET OUTPUT BYTE POINTER
   9966	015750					RETURN			; AND EXIT
	015750	000207 				 RTS	PC
   9967	015752				TYODIE:
   9968	015752					CALLR	.EXITP		; EXIT GRACEFULLY
	015752	000137 	010074'			 JMP	.EXITP
   9969						;
   9970						.DSABL	LSB
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 257
.TYR50 -- TYPE A .RAD50 SYMBOL 7602.18

   9972					.SBTTL	.TYR50 -- TYPE A .RAD50 SYMBOL 7602.18
   9973
   9974					;+
   9975					; .TYR50 -- TYPE A .RAD50 SYMBOL
   9976					;
   9977					; THIS ROUTINE WILL CONVERT THE .RAD50 SYMBOL IN R0 TO ASCII
   9978					; AND PRINT IT ON THE CONSOLE DEVICE.
   9979					;
   9980					; INPUT ARGUMENTS:
   9981					;
   9982					;	R0 HOLDS THE .RAD50 SYMBOL TO BE PRINTED.
   9983					;
   9984					; OUTPUT ARGUMENTS:
   9985					;
   9986					;	NONE.
   9987					;
   9988					; ERROR CODES RETURNED:
   9989					;
   9990					;	NONE.
   9991					;-
   9992
   9993	015756				.TYR50::
   9994	015756					PUSH	<R1,R2>		; SAVE REGISTERS
	015756	010146 				 MOV	R1,-(SP)
	015760	010246 				 MOV	R2,-(SP)
   9995	015762	012702 	001440'			MOV	#.T50TB,R2	; ..TABLE OF DIVISORS TO R2
   9996	015766				10$:
   9997	015766	012201 				MOV	(R2)+,R1	; ..CURRENT DIVISOR TO R1
   9998	015770	001414 				BEQ	30$		; ..DONE IF .EQ. 0
   9999	015772					CALL	$DIV		; ..DO THE DIVISION
	015772	004737 	000000G			 JSR	PC,$DIV
  10000	015776					PUSH	R1		; ..SAVE THE REMAINDER
	015776	010146 				 MOV	R1,-(SP)
  10001	016000	012701 	001410'			MOV	#.R50TB,R1	; ...CONVERSION TABLE POINTER TO R1
  10002	016004				20$:
  10003	016004	062100 				ADD	(R1)+,R0	; ...CONVERT THIS CHARACTER
  10004	016006	020021 				CMP	R0,(R1)+	; ...FOUND IT YET?
  10005	016010	103775 				BLO	20$		; ...NO -- KEEP TRYING
  10006	016012					CALL	.TYCHR		; ...YES -- PUT IT IN THE BUFFER
	016012	004737 	015504'			 JSR	PC,.TYCHR
  10007	016016					POP	R0		; ...LAST REMAINDER IS NEW DIVIDEND
	016016	012600 				 MOV	(SP)+,R0
  10008	016020	000762 				BR	10$		; ..DO THE NEXT CHARACTER
  10009						;
  10010	016022				30$:
  10011	016022					POP	<R2,R1>		; ..RESTORE REGISTERS
	016022	012602 				 MOV	(SP)+,R2
	016024	012601 				 MOV	(SP)+,R1
  10012	016026					RETURN			; TO CALLER
	016026	000207 				 RTS	PC
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 258
.TYR50 -- TYPE A .RAD50 SYMBOL 7602.18

  10014					; THIS IS A PICTURE OF THE "QIOW$" DPB, NOT ALL OF THE ARGUMENTS
  10015					; IN THE DPB ARE USED BY SOME FORMS OF THE "QIOW$" DIRECTIVE.
  10016					;
  10017					;	!===============================================!
  10018					; 00	!	DPB SIZE	!	    DIC		!
  10019					;	!-----------------------------------------------!
  10020					; 02	!	  INPUT / OUTPUT FUNCTION CODE		!
  10021					;	!-----------------------------------------------!
  10022					; 04	!	       LOGICAL UNIT NUMBER		!
  10023					;	!-----------------------------------------------!
  10024					; 06	!	PRIORITY	!   EVENT FLAG NUMBER	!
  10025					;	!-----------------------------------------------!
  10026					; 10	!	     I/O STATUS BLOCK ADDRESS		!
  10027					;	!-----------------------------------------------!
  10028					; 12	!	  AST ROUTINE ADDRESS (NOT USED)	!
  10029					;	!-----------------------------------------------!
  10030					; 14	!	      DATA BUFFER ADDRESS		!
  10031					;	!-----------------------------------------------!
  10032					; 16	!		  BYTE COUNT			!
  10033					;	!-----------------------------------------------!
  10034					; 20	!	OUTPUT FORMAT CONTROL CHARACTER		!
  10035					;	!===============================================!
  10036
  10037					; THIS IS THE CONSOLE OUTPUT DPB
  10038
  10039	000414				.PSECT	DPBS
  10040
  10041	000414				.CDOUT::
  10042	000414					QIOW$	IO.WLB,CODLUN,E.FCOD,0,.COSTS,0,<.COBFR,0,VF.INT>
	000414	   003 	   011 			.BYTE	3,$$$ARG
	000416	000000G				.WORD	IO.WLB
	000420	000002 				.WORD	CODLUN
	000422	   003 	   000 			.BYTE	E.FCOD,0
	000424	000012'				.WORD	.COSTS
	000426	000000 				.WORD	0
	000430	000544'				.WORD	.COBFR
	000432	000000 				.WORD	0
	000434	000000 				.WORD	VF.INT
  10043
  10044		000430'			.CDOBP==.CDOUT+Q.IOPL		; CONSOLE OUTPUT BYTE POINTER
  10045		000432'			.CDOBC==.CDOUT+Q.BYCT		; CONSOLE OUTPUT BYTE COUNT
  10046		000434'			.CDOFC==.CDOUT+Q.OVFC		; CONSOLE OUTPUT FORMAT CHARACTER
  10047
  10048					; THIS IS THE LIST DEVICE OUTPUT DPB
  10049
  10050	000436				.LDOUT::
  10051	000436					QIOW$	IO.WLB,LSTLUN,E.FLOD,0,.LDSTS,0,<.COBFR,0,VF.INT>
	000436	   003 	   011 			.BYTE	3,$$$ARG
	000440	000000G				.WORD	IO.WLB
	000442	000003 				.WORD	LSTLUN
	000444	   005 	   000 			.BYTE	E.FLOD,0
	000446	000160'				.WORD	.LDSTS
	000450	000000 				.WORD	0
	000452	000544'				.WORD	.COBFR
	000454	000000 				.WORD	0
	000456	000000 				.WORD	VF.INT
  10052
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 258-1
.TYR50 -- TYPE A .RAD50 SYMBOL 7602.18

  10053		000452'			.LDOBP==.LDOUT+Q.IOPL		; LIST DEVICE BYTE POINTER
  10054		000454'			.LDOBC==.LDOUT+Q.BYCT		; LIST DEVICE BYTE COUNT
  10055		000456'			.LDOFC=.LDOUT+Q.OVFC		; LIST DEVICE FORMAT CHARACTER
  10056
  10057					; ATTACH CONSOLE INPUT DEVICE EXCLUSIVELY TO PARSER TASK
  10058
  10059	000460				.ATCID::
  10060	000460					QIOW$	IO.ATT,CIDLUN,E.FCID,0,0,0
	000460	   003 	   006 			.BYTE	3,$$$ARG
	000462	000000G				.WORD	IO.ATT
	000464	000001 				.WORD	CIDLUN
	000466	   002 	   000 			.BYTE	E.FCID,0
	000470	000000 				.WORD	0
	000472	000000 				.WORD	0
  10061
  10062					; DETACH THE CONSOLE INPUT DEVICE FROM THE PARSER TASK
  10063
  10064	000474				.DTCID::
  10065	000474					QIOW$	IO.DET,CIDLUN,E.FCOD,0,0,0
	000474	   003 	   006 			.BYTE	3,$$$ARG
	000476	000000G				.WORD	IO.DET
	000500	000001 				.WORD	CIDLUN
	000502	   003 	   000 			.BYTE	E.FCOD,0
	000504	000000 				.WORD	0
	000506	000000 				.WORD	0
  10066
  10067	016030				.PSECT
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260
.TYR50 -- TYPE A .RAD50 SYMBOL 7602.18

  10070		000001 			FTLCMN==1
  10071
  10072		000260'			.END	DATABX
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-1
SYMBOL TABLE

ABMSG   001031RG    003	AP.PWF= 000001   	CALERM  000112R     005	CLRMSG  000373RG    003	DEXDON= 000004
ABOMSG  000365RG    003	AP.SAP= 000002   	CALL  = 000040   	CNRERM  000412R     005	DEXWD1= 174406
ACBMSG  001545RG    003	AP.SBE= 000100   	CALLI = 000047   	CNTMSG  000401RG    003	DEXWD2= 174404
ADD   = 000270   	ARMSG   000753RG    003	CAM   = 000310   	CNUPE = 000002   	DEXWD3= 174402
ADDB  = 000273   	ARXMSG  001000RG    003	CAMA  = 000314   	CODLUN= 000002   	DFAD  = 000110
ADDI  = 000271   	ASH   = 000240   	CAME  = 000312   	CONI  = 000005   	DFBEND= 000330RG    002
ADDM  = 000272   	ASHC  = 000244   	CAMG  = 000317   	CONIS   002236R     003	DFDV  = 000113
ADMSG   000771RG    003	AUGMSG  001267RG    003	CAMGE = 000315   	CONMSG  001576RG    003	DFMP  = 000112
ADRTMP  007210R     002	AUTMSG  001556RG    003	CAML  = 000311   	CONO  = 000004   	DFN   = 000131
ADXMSG  000774RG    003	A.LULU= 000002   	CAMLE = 000313   	CONOS   002231R     003	DFSB  = 000111
ALLMSG  001342RG    003	A.LUNA= 000004   	CAMN  = 000316   	CONSO = 000007   	DFUNC = 000200
AMBERM  003714R     005	A.LUNU= 000006   	CAPERM  000141R     005	CONSOS  002251R     003	DF.DMG= 000004
AND   = 000404   	BAEERM  000023R     005	CBOERM  000200R     005	CONSZ = 000006   	DF.DMN= 000007
ANDB  = 000407   	BCCTER  003362R  	CCA   = 000014   	CONSZS  002243R     003	DF.DOR= 000001
ANDCA = 000410   	BIT0  = 000001   	CC.ALL= 003417   	CPEERM  000452R     005	DF.EHG= 000010
ANDCAB= 000413   	BIT00 = 000001   	CC.NRM= 000000   	CPUMSG  001346RG    003	DF.EHM= 000011
ANDCAI= 000411   	BIT01 = 000002   	CDD   = 000020   	CPVMSG  000000RG    003	DF.EMG= 000005
ANDCAM= 000412   	BIT02 = 000004   	CDIERM  000236R     005	CRAMSG  001034RG    003	DF.EMN= 000006
ANDCB = 000440   	BIT03 = 000010   	CD.ALL= 003400   	CRHERM  000501R     005	DF.KLR= 000012
ANDCBB= 000443   	BIT04 = 000020   	CD.CLC= 000400   	CRLMSG  001043RG    003	DF.KLW= 000013
ANDCBI= 000441   	BIT05 = 000040   	CD.CRC= 002000   	CRMMSG  001376RG    003	DF.KLX= 000014
ANDCBM= 000442   	BIT06 = 000100   	CD.DPC= 001000   	CR.ALL= 000003   	DF.OFF= 000002
ANDCM = 000420   	BIT07 = 000200   	CD.NRM= 000000   	CR.CR1= 000001   	DF.ON = 000003
ANDCMB= 000423   	BIT08 = 000400   	CESCES  000016R  	CR.CR2= 000002   	DF.PDP= 000016
ANDCMI= 000421   	BIT09 = 001000   	CESERM  003746R     005	CR.FUL= 000000   	DF.PEX= 000015
ANDCMM= 000422   	BIT1  = 000002   	CFHERM  000317R     005	CR.HLF= 000001   	DIAG1 = 174430
ANDI  = 000405   	BIT10 = 002000   	CHNPNT= 000001   	CR.NRM= 000000   	DIAG2 = 174432
ANDM  = 000406   	BIT11 = 004000   	CH.ALP= 000001   	CR.QTR= 000002   	DIAG3 = 174436
AOBJN = 000253   	BIT12 = 010000   	CH.ANM= 000003   	CR.SLO= 000003   	DIKL10= 000010
AOBJP = 000252   	BIT13 = 020000   	CH.AOP= 000100   	CS.ALL= 000014   	DISMSG  000422RG    003
AOJ   = 000340   	BIT14 = 040000   	CH.END= 000034   	CS.CS1= 000004   	DIV   = 000234
AOJA  = 000344   	BIT15 = 100000   	CH.EOC= 000010   	CS.CS2= 000010   	DIVB  = 000237
AOJE  = 000342   	BIT2  = 000004   	CH.EOL= 000004   	CS.EXP= 177670   	DIVI  = 000235
AOJG  = 000347   	BIT3  = 000010   	CH.EOS= 000020   	CS.EXT= 000010   	DIVM  = 000236
AOJGE = 000345   	BIT4  = 000020   	CH.ILL= 000200   	CS.FST= 000004   	DLYCNT= 174400
AOJL  = 000341   	BIT5  = 000040   	CH.NUL= 000000   	CS.MGN= 000004   	DMFERM  000647R     005
AOJLE = 000343   	BIT6  = 000100   	CH.NUM= 000002   	CS.NRM= 000000   	DMOVE = 000120
AOJN  = 000346   	BIT7  = 000200   	CH.PFX= 000040   	CS.UDF= 000014   	DMOVEM= 000124
AOS   = 000350   	BIT8  = 000400   	CIDLUN= 000001   	CTLMSG  001415RG    003	DMOVN = 000121
AOSA  = 000354   	BIT9  = 001000   	CKCILS  000152R  	CTYPTR= ****** GX	DMOVNM= 000125
AOSE  = 000352   	BLKI  = 000000   	CKCMRA  000160R  	CYCLS = 000002   	DNFERM  000736R     005
AOSG  = 000357   	BLKIS   002203R     003	CKEEOC  000250R  	DATABX  000260RG    002	DNPERM  000775R     005
AOSGE = 000355   	BLKO  = 000002   	CKRKLR  000366R  	DATAI = 000001   	DOCCNR  010066R
AOSL  = 000351   	BLKOS   002216R     003	CLEAR = 000400   	DATAIS  002210R     003	DON10C= 040000
AOSLE = 000353   	BLT   = 000251   	CLEARB= 000403   	DATAO = 000003   	DON10S= 100000
AOSN  = 000356   	BPARER= 000020   	CLEARI= 000401   	DATAOS  002223R     003	DON11C= 000100
APEERM  000000R     005	BRMSG   001004RG    003	CLEARM= 000402   	DATE  = 000004   	DON11S= 000200
APR   = 000000   	BRXMSG  001007RG    003	CLEERM  000355R     005	DATMSG  001606RG    003	DORERM  000706R     005
APRMSG  001243RG    003	CAEERM  000056R     005	CLKMSG  001570RG    003	DAVERM  000543R     005	DPB   = 000137
AP.ALL= 000177   	CAI   = 000300   	CLOATR= 000256R     004	DBTERM  000574R     005	DPDTEN= 000322RG    004
AP.ARP= 001000   	CAIA  = 000304   	CLOATT= 000262R     004	DCKERM  000624R     005	DPS4  = 040000
AP.CDP= 000004   	CAIE  = 000302   	CLODAC  000240R     004	DCOMST= 000001   	DPTMSG  001403RG    003
AP.EIP= 000400   	CAIG  = 000307   	CLOFCF  002160R  	DCRMSG  000704RG    003	DRAMSG  001051RG    003
AP.IPF= 000020   	CAIGE = 000305   	CLOIOF= 000242R     004	DECMSG  001331RG    003	DRDMSG  002115R     003
AP.MPE= 000010   	CAIL  = 000301   	CLOLUN= 000244R     004	DEP   = 010000   	DRESET= 000100
AP.NRM= 001400   	CAILE = 000303   	CLOSE = 000070   	DEPMSG  000412RG    003	DRMMSG  001521RG    003
AP.NXM= 000040   	CAIN  = 000306   	CLOWAT  000260R     004	DEX   = 000400   	DR.DTE= 000011
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-2
SYMBOL TABLE

DSEND = 000004   	D3.CDD= 000020   	ERSMSG  000107R     003	FMPR  = 000164   	FR.102= 000204
DSFERM  001034R     005	D3.MBZ= 177704   	ESDERM  001317R     005	FMPRB = 000167   	FR.103= 000206
DS04  = 004000   	D3.NPE= 000002   	ESEERM  001354R     005	FMPRI = 000165   	FR.104= 000210
DS05  = 002000   	D3.PAR= 040000   	ETRMSG  002151R     003	FMPRM = 000166   	FR.105= 000212
DS06  = 001000   	D3.RST= 000001   	EXAMSG  000435RG    003	FNDALN  000000R     004	FR.106= 000214
DTCERM  001067R     005	D3.SCD= 000040   	EXCH  = 000250   	FNDALU= 000002R     004	FR.107= 000216
DTECMD= 000451   	D3.SSL= 100000   	EXDDMF  004134R  	FNDCAL  001550R  	FR.110= 000220
DTEDSF  003626R  	D3.TXB= 000001   	EXDEMF  004142R  	FNDDNF  001556R  	FR.111= 000222
DTEFLG= 000444   	D3.UPE= 000020   	EXDESD  004104R  	FNDFNA  000010R     004	FR.112= 000224
DTEF11= 000450   	D3.URE= 000004   	EXDESE  004120R  	FNDFNB= 000036R     004	FR.113= 000226
DTEMSG  001060RG    003	D3.WEP= 000010   	EXDTEN= 000334RG    004	FNDLUN= 000014R     004	FR.114= 000230
DTEMTD= 000455   	EBCECT  003722R  	EXECTO  004354R  	FOFERM  001557R     005	FR.115= 000232
DTEMTI= 000456   	EBPEPE  000424R  	EXRTBL= 000012 G 	FORPRO= 000020   	FR.116= 000234
DTKMSG  002166R     003	EBSEL = 000100   	EXTEND= 000123   	FRDERM  001607R     005	FR.117= 000236
DTRMSG  002034R     003	EBSMSG  001013RG    003	EXTEXT  000214R     004	FRDFRF  004436R  	FR.120= 000240
DUPE  = 000020   	EBUSPC= 000020   	EXTFEF  002036R  	FRDMSG  000445RG    003	FR.121= 000242
DURE  = 000004   	EBUSPS= 000004   	EXTMSG  001425RG    003	FRDTEN= 000346RG    004	FR.122= 000244
DWRMSG  002121R     003	ECTERM  001141R     005	E.FCID= 000002   	FRFERM  004000R     005	FR.123= 000246
DW1MSG  002055R     003	EDEPT   002125R     003	E.FCOD= 000003   	FR.ADX= 000254   	FR.124= 000250
DW2MSG  002065R     003	EDEXV   002131R     003	E.FCTC= ****** GX	FR.APR= 000220   	FR.125= 000252
DW3MSG  002105R     003	EDONES= 040000   	E.FFIL= 000006   	FR.ARX= 000252   	FR.126= 000254
DXWRD1= 002000   	EDPHY   002145R     003	E.FHTO= 000001   	FR.BRX= 000250   	FR.127= 000256
D.CDLS= ****** GX	EDTYTB  007154R     002	E.FKLN= 000004   	FR.CA1= 000312   	FR.130= 000260
D1.CES= 004000   	EDUPT   002135R     003	E.FLOD= 000005   	FR.CA2= 000310   	FR.131= 000262
D1.DCS= 000001   	EDUSV   002141R     003	FAD   = 000140   	FR.CL1= 000316   	FR.132= 000264
D1.DDT= 000040   	ED.EPT= 000000   	FADB  = 000143   	FR.CL2= 000314   	FR.133= 000266
D1.DEX= 000400   	ED.EXV= 000040   	FADL  = 000141   	FR.CRD= 000302   	FR.134= 000270
D1.DFM= 000010   	ED.PHY= 000200   	FADM  = 000142   	FR.CR1= 000316   	FR.135= 000272
D1.DS0= 100000   	ED.UPT= 000100   	FADR  = 000144   	FR.CR2= 000314   	FR.136= 000274
D1.DS1= 040000   	ED.USV= 000140   	FADRB = 000147   	FR.CR3= 000312   	FR.137= 000276
D1.DS2= 020000   	EF.CRI= ****** GX	FADRI = 000145   	FR.CR4= 000310   	FR.140= 000300
D1.DS3= 010000   	ELBBIN  007240RG    002	FADRM = 000146   	FR.DA1= 000260   	FR.141= 000302
D1.DS4= 004000   	ELBOCT  007244RG    002	FCFERM  001411R     005	FR.DA2= 000262   	FR.142= 000304
D1.DS5= 002000   	ELEMSG  000756RG    003	FDV   = 000170   	FR.EBS= 000356   	FR.143= 000306
D1.DS6= 001000   	ELNBIN  007232RG    002	FDVB  = 000173   	FR.FE1= 000266   	FR.144= 000310
D1.HLP= 001000   	ELNNOR  013200R  	FDVL  = 000171   	FR.FE2= 000264   	FR.145= 000312
D1.LBK= 000200   	ELNOCT  007250RG    002	FDVM  = 000172   	FR.PI0= 000200   	FR.146= 000314
D1.MBZ= 000442   	EMFERM  001172R     005	FDVR  = 000174   	FR.PI1= 000202   	FR.147= 000316
D1.PLS= 000020   	ENBMSG  001526RG    003	FDVRB = 000177   	FR.RAD= 000256   	FR.150= 000320
D1.RUN= 002000   	ENTCRE  000070R     004	FDVRI = 000175   	FR.RAR= 000240   	FR.151= 000322
D1.T10= 000200   	ENTDEL  000144R     004	FDVRM = 000176   	FR.RBR= 000242   	FR.152= 000324
D1.T11= 000100   	ENTENA  000114R     004	FEBMSG  001224RG    003	FR.RFM= 000246   	FR.153= 000326
D1.V04= 000020   	ENTER = 000077   	FEFERM  001442R     005	FR.RMQ= 000244   	FR.154= 000330
D1.XFR= 000004   	ENTFEN  001730R  	FENERM  001474R     005	FR.SC1= 000262   	FR.155= 000332
D1011 = 000040   	EOCERM  001231R     005	FERMSG  001067RG    003	FR.SC2= 000260   	FR.156= 000334
D2RST   004304R     002	EOFMSG  000335R     003	FIX   = 000122   	FR.SR1= 000306   	FR.157= 000336
D2.EBD= 040000   	EPEERM  001267R     005	FIXR  = 000126   	FR.SR2= 000304   	FR.160= 000340
D2.MBZ= 177641   	EPTR  = 000000   	FLDMSG  000050R     003	FR.VM0= 000320   	FR.161= 000342
D2.MS1= 000002   	EQV   = 000444   	FLFERM  001525R     005	FR.VM1= 000322   	FR.162= 000344
D2.MS2= 000004   	EQVB  = 000447   	FLGMSG  001072RG    003	FR.VM2= 000324   	FR.163= 000346
D2.MS4= 000010   	EQVI  = 000445   	FLTMSG  001613RG    003	FR.VM3= 000326   	FR.164= 000350
D2.MS8= 000020   	EQVM  = 000446   	FLTR  = 000127   	FR.VM4= 000330   	FR.165= 000352
D2.RA0= 100000   	ERRMSG  001352RG    003	FMMSG   001020RG    003	FR.VM5= 000332   	FR.166= 000354
D2.RA1= 040000   	ERR10C= 010000   	FMP   = 000160   	FR.VM6= 000334   	FR.167= 000356
D2.RA2= 020000   	ERR10S= 020000   	FMPB  = 000163   	FR.VM7= 000336   	FR.170= 000360
D2.RST= 000100   	ERR11C= 000001   	FMPL  = 000161   	FR.100= 000200   	FR.171= 000362
D3RST   004306R     002	ERR11S= 000002   	FMPM  = 000162   	FR.101= 000202   	FR.172= 000364
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-3
SYMBOL TABLE

FR.173= 000366   	FW.DR2= 000142   	FX.SRF= 000022   	HLLOI = 000521   	IDIV  = 000230
FR.174= 000370   	FW.DR3= 000144   	FX.SYC= 000010   	HLLOM = 000522   	IDIVB = 000233
FR.175= 000372   	FW.EBL= 000174   	FX.UDR= 000032   	HLLOS = 000523   	IDIVI = 000231
FR.176= 000374   	FW.IAC= 000154   	FX.UIR= 000030   	HLLS  = 000503   	IDIVM = 000232
FR.177= 000376   	FW.IOJ= 000152   	FX.000= 000000   	HLLZ  = 000510   	IDPB  = 000136
FSB   = 000150   	FW.IPE= 000114   	FX.001= 000002   	HLLZI = 000511   	IE.EBX= ****** GX
FSBB  = 000153   	FW.KLO= 000156   	FX.002= 000004   	HLLZM = 000512   	IE.EOF= ****** GX
FSBL  = 000151   	FW.LAR= 000176   	FX.003= 000006   	HLLZS = 000513   	IE.NSF= ****** GX
FSBM  = 000152   	FW.LBL= 000106   	FX.004= 000010   	HLR   = 000544   	IFCERM  001747R     005
FSBR  = 000154   	FW.LBR= 000104   	FX.005= 000012   	HLRE  = 000574   	IFLOP = 100000
FSBRB = 000157   	FW.MBX= 000162   	FX.006= 000014   	HLREI = 000575   	ILCERM  004103R     005
FSBRI = 000155   	FW.SBR= 000174   	FX.007= 000016   	HLREM = 000576   	ILDB  = 000134
FSBRM = 000156   	FW.040= 000100   	FX.010= 000020   	HLRES = 000577   	ILIERM  002003R     005
FSC   = 000132   	FW.041= 000102   	FX.011= 000022   	HLRO  = 000564   	ILSERM  004135R     005
FSSMSG  001535RG    003	FW.042= 000104   	FX.012= 000024   	HLROI = 000565   	IMUL  = 000220
FSWERM  001637R     005	FW.043= 000106   	FX.013= 000026   	HLROM = 000566   	IMULB = 000223
FTBYTE= 000000   	FW.044= 000110   	FX.014= 000030   	HLROS = 000567   	IMULI = 000221
FTCRAM= 000000   	FW.045= 000112   	FX.015= 000032   	HLRS  = 000547   	IMULM = 000222
FTDEBU= 000001   	FW.046= 000114   	FX.016= 000034   	HLRZ  = 000554   	IN    = 000056
FTDISP= 000000   	FW.047= 000116   	FX.017= 000036   	HLRZI = 000555   	INBUF = 000064
FTDRAM= 000000   	FW.050= 000120   	FX.020= 000040   	HLRZM = 000556   	INCMSG  000716RG    003
FTHELP= 000000   	FW.051= 000122   	FX.021= 000042   	HLRZS = 000557   	INDLUN= 000005
FTKLE = 000001   	FW.052= 000124   	FX.022= 000044   	HLTMSG  000467RG    003	INIMSG  000474RG    003
FTKLER= 000000   	FW.053= 000126   	FX.023= 000046   	HRL   = 000504   	INIT  = 000041
FTLCMN= 000001 G 	FW.054= 000130   	FX.024= 000050   	HRLE  = 000534   	INPUT = 000066
FTLCVT= 000000   	FW.055= 000132   	FX.025= 000052   	HRLEI = 000535   	INTMSG  001436RG    003
FTLIST= 000001   	FW.056= 000134   	FX.026= 000054   	HRLEM = 000536   	INTROF= 000010
FTTRAK= 000001   	FW.057= 000136   	FX.027= 000056   	HRLES = 000537   	INTRON= 000040
FTTRP4= 000001   	FW.060= 000140   	FX.030= 000060   	HRLI  = 000505   	INTSON= 000001
FTUCVR= 000130   	FW.061= 000142   	FX.031= 000062   	HRLM  = 000506   	INT10S= 000400
FT1105= 000001   	FW.062= 000144   	FX.032= 000064   	HRLO  = 000564   	INT11C= 002000
FT1110= 000001   	FW.063= 000146   	FX.033= 000066   	HRLOI = 000565   	INT11S= 004000
FT1115= 000001   	FW.064= 000150   	FX.034= 000070   	HRLOM = 000566   	IOCERM  002035R     005
FT1120= 000001   	FW.065= 000152   	FX.035= 000072   	HRLOS = 000567   	IOMSG   001360RG    003
FT1135= 000001   	FW.066= 000154   	FX.036= 000074   	HRLS  = 000507   	IOR   = 000434
FT1140= 000001   	FW.067= 000156   	FX.037= 000076   	HRLZ  = 000514   	IORB  = 000437
FT1145= 000000   	FW.070= 000160   	GETSTS= 000062   	HRLZI = 000515   	IORI  = 000435
FULMSG  001456RG    003	FW.071= 000162   	GTFILC  014250R  	HRLZM = 000516   	IORM  = 000436
FWDTEN= 000360RG    004	FW.072= 000164   	GTKKLA  013260R  	HRLZS = 000517   	IOTAB   007166R     002
FWFERM  004025R     005	FW.073= 000166   	GTLCBO  013114R  	HRR   = 000540   	IO.ATT= ****** GX
FWRFWF  004560R  	FW.074= 000170   	GTLILC  013122R  	HRRE  = 000570   	IO.CRE= ****** GX
FWRMSG  000453RG    003	FW.075= 000172   	GTNILI  013664R  	HRREI = 000571   	IO.DAC= ****** GX
FWTERM  001664R     005	FW.076= 000174   	GTNMRA  014512R  	HRREM = 000572   	IO.DEL= ****** GX
FW.APE= 000116   	FW.077= 000176   	GTNNER  013472R  	HRRES = 000573   	IO.DET= ****** GX
FW.CA1= 000122   	FXCFXF  004730R  	GTNNOR  014520R  	HRRI  = 000541   	IO.ENA= ****** GX
FW.CA2= 000124   	FXCMSG  000462RG    003	GTNORE  013466R  	HRRM  = 000542   	IO.EXT= ****** GX
FW.CDR= 000112   	FXDTEN= 000372RG    004	HARMSG  001744RG    003	HRRO  = 000560   	IO.FNA= ****** GX
FW.CHN= 000160   	FXFERM  004053R     005	HIBYTE= 177400   	HRROI = 000561   	IO.RLB= ****** GX
FW.CRD= 000126   	FX.BMC= 000012   	HLFMSG  001463RG    003	HRROM = 000562   	IO.RNA= ****** GX
FW.CR1= 000136   	FX.CMR= 000014   	HLL   = 000500   	HRROS = 000563   	IO.RVB= ****** GX
FW.CR2= 000134   	FX.CON= 000024   	HLLE  = 000530   	HRRS  = 000543   	IO.WLB= ****** GX
FW.CR3= 000132   	FX.CRF= 000020   	HLLEI = 000531   	HRRZ  = 000550   	IO.WVB= ****** GX
FW.CR4= 000130   	FX.CSP= 000000   	HLLEM = 000532   	HRRZI = 000551   	IPCERM  004201R     005
FW.CSR= 000110   	FX.CST= 000002   	HLLES = 000533   	HRRZM = 000552   	IP.ALL= 000017
FW.DJE= 000146   	FX.EBC= 000006   	HLLI  = 000501   	HRRZS = 000553   	IP.CRP= 000004
FW.DJO= 000150   	FX.MBC= 000004   	HLLM  = 000502   	IBP   = 000133   	IP.DRP= 000002
FW.DR1= 000140   	FX.SMR= 000016   	HLLO  = 000520   	IDFERM  001715R     005	IP.FMP= 000010
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-4
SYMBOL TABLE

IP.FSS= 000001   	LG.MAR= 000020   	M.KTAE= 000010   	PAGMSG  001363RG    003	PSWW13= 000017
IP.NRM= 000016   	LG.MNT= 000004   	M.KTEF= 000002   	PARERC  000662R  	PSWW2 = 000006
IRCERM  002065R     005	LG.MOD= 000040   	M.KTMG= 000004   	PARERX  000506R  	PSWW3 = 000007
IREERM  002120R     005	LG.NUL= 000000   	M.KTUN= 000006   	PARMSG  000011RG    003	PSWW4 = 000010
IS.SET= ****** GX	LG.OPR= 000001   	M.PARQ= ****** GX	PARNAM  000021RG    003	PSWW5 = 000011
ITFERM  002150R     005	LG.PRG= 000002   	NDIERM  002543R     005	PARUEC  000734R  	PSWW6 = 000012
ITNERM  002202R     005	LG.PRM= 000003   	NEBMSG  000122R     003	PAR$$E= 000027   	PSWW7 = 000013
JANMSG  001214RG    003	LG.RNG= 000100   	NERERM  002573R     005	PAR$$K= 000126   	PS.NRM= 001416
JFCL  = 000255   	LG.RPT= 000400   	NORERM  002635R     005	PAR$$V= 000006   	PTLERM  003111R     005
JFFO  = 000243   	LG.STR= 000200   	NOTMSG  001650RG    003	PCMSG   001026RG    003	PTOATM  000270R     003
JMPMSG  000507RG    003	LOAD11= 000004   	NOVMSG  001320RG    003	PC.AFI= 000020   	PTRTEM  000151R     003
JRA   = 000267   	LOGLUN= 000004   	NPIERM  002675R     005	PC.AT0= 000004   	PTRTHM  000221R     003
JRST  = 000254   	LOGMSG  001505RG    003	NRMMSG  001367RG    003	PC.AT1= 000010   	PULSE = 000020
JSA   = 000266   	LOKFLF  001656R  	NSFERM  002731R     005	PC.BIS= 000400   	PUSH  = 000261
JSP   = 000265   	LOKFNA  000040R     004	NSKERM  004244R     005	PC.CY0= 004000   	PUSHJ = 000260
JSR   = 000264   	LOKFNB= 000066R     004	NSTERM  002754R     005	PC.CY1= 002000   	QSIZE = 000023
JSYS  = 000104   	LOKIOF= 000042R     004	NTIERM  002777R     005	PC.FOV= 001000   	QTRMSG  001470RG    003
JULMSG  001262RG    003	LOKLUN= 000044R     004	NULMSG  000364RG    003	PC.FUF= 000002   	QUTMSG  000661RG    003
JUMP  = 000320   	LOOKUP= 000076   	NULSTP= 000040   	PC.LIP= 000040   	Q.BYCT= 000016
JUMPA = 000324   	LPTMSG  001511RG    003	NUPE  = 000002   	PC.NDV= 000001   	Q.IBUF= 000014
JUMPE = 000322   	LSH   = 000242   	NXTMSG  000730RG    003	PC.OVF= 010000   	Q.IOAE= 000012
JUMPG = 000327   	LSHC  = 000246   	OAIERM  003027R     005	PC.UIO= 000100   	Q.IOEF= 000006
JUMPGE= 000325   	LSTLUN= 000003   	OCTMSG  001310RG    003	PC.USR= 000200   	Q.IOFN= 000002
JUMPL = 000321   	MAP   = 000257   	OFCERM  003061R     005	PERCLR= 001000   	Q.IOLU= 000004
JUMPLE= 000323   	MARMSG  001235RG    003	OFFMSG  000044RG    003	PE.ALL= 000037   	Q.IOPL= 000014
JUMPN = 000326   	MAYMSG  001251RG    003	OFSMSG  001654RG    003	PE.CES= 000001   	Q.IOPR= 000007
JUNMSG  001255RG    003	MBZTAB  004160R     002	ONMSG   000041RG    003	PE.CRM= 000004   	Q.IOSB= 000010
KCNERM  002232R     005	MCRMSG  000535RG    003	OPEACC  000160R     004	PE.DRM= 000002   	Q.OBUF= 000014
KF.BRM= 001000   	MEMMSG  001641RG    003	OPEATT= 000210R     004	PE.FMP= 000010   	Q.OVFC= 000020
KF.CES= 000100   	MGNMSG  001447RG    003	OPEFID= 000174R     004	PE.FSS= 000020   	RAMIS0= 010000
KF.CLK= 100000   	MMSG    000514RG    003	OPEFOF  001776R  	PHYS  = 100000   	RDCPT1  004230R     002
KF.CON= 000200   	MNTMSG  001140RG    003	OPEFUN= 000162R     004	PI    = 000004   	RDCPT2  004210R     002
KF.DEF= 000200   	MOVE  = 000200   	OPELUN= 000164R     004	PIDENT= 000000   	RDCPT3  004220R     002
KF.KLO= 000400   	MOVEI = 000201   	OPEN  = 000050   	PIMSG   001103RG    003	RDCRME  006470R
KF.MRS= 020000   	MOVEM = 000202   	OPERAT  000206R     004	POP   = 000262   	REAFRD  002570R
KF.RUN= 040000   	MOVES = 000203   	OPRMSG  001154RG    003	POPJ  = 000263   	REGMSG  001106RG    003
KF.SIM= 010000   	MOVM  = 000214   	OR    = 000434   	PRGMSG  001165RG    003	REGTAB  007130R     002
KF.SMC= 004000   	MOVMI = 000215   	ORB   = 000437   	PRI7  = 000340   	RELEAS= 000071
KF.SPM= 002000   	MOVMM = 000216   	ORCA  = 000454   	PRMFM   002257R     003	REMMSG  001200RG    003
KLABIN  007226RG    002	MOVMS = 000217   	ORCAB = 000457   	PROMPT  000030RG    003	RENAME= 000055
KLAERM  002260R     005	MOVN  = 000210   	ORCAI = 000455   	PROPNT= 000021   	REPIRC  011106R
KLAOCT  007252RG    002	MOVNI = 000211   	ORCAM = 000456   	PRTOFF= 004000   	RESETT  004274R     002
KLEPRM  000034RG    003	MOVNM = 000212   	ORCB  = 000470   	PRVMSG  000735RG    003	RFMAD0= 100000
KLHCFH  005156R  	MOVNS = 000213   	ORCBB = 000473   	PR0   = 000000   	RFMAD1= 040000
KLIMSG  001632RG    003	MOVS  = 000204   	ORCBI = 000471   	PR1   = 000040   	RFMAD2= 020000
KLIOT = 000700   	MOVSI = 000205   	ORCBM = 000472   	PR2   = 000100   	RFMAD3= 010000
KLMSG   001100RG    003	MOVSM = 000206   	ORCM  = 000464   	PR3   = 000140   	RGDTEN= 000310RG    004
KLNBIN  007216RG    002	MOVSS = 000207   	ORCMB = 000467   	PR4   = 000200   	RLDMSG  001706RG    003
KLNOCT  007246RG    002	MPE11 = 001000   	ORCMI = 000465   	PR5   = 000240   	RM    = 000010
KLPWRF= 000010   	MQMSG   001023RG    003	ORCMM = 000466   	PR6   = 000300   	RMSG    000541RG    003
KLRERM  002307R     005	MRAERM  002437R     005	ORI   = 000435   	PR7   = 000340   	ROT   = 000241
KLSCFH  005266R  	MRHERM  002477R     005	ORM   = 000436   	PS    = 177776   	ROTC  = 000245
KNCERM  002351R     005	MRKMSG  000516RG    003	OUT   = 000057   	PSTMSG  001672RG    003	RPMERM  003141R     005
KWEERM  002405R     005	MUL   = 000224   	OUTBUF= 000065   	PSWW1 = 000005   	RPTMSG  000543RG    003
LDB   = 000135   	MULB  = 000227   	OUTMSG  001663RG    003	PSWW10= 000014   	RSTEND= 004302R     002
LG.ALL= 000007   	MULI  = 000225   	OUTPUT= 000067   	PSWW11= 000015   	RSTMSG  000552RG    003
LG.ARG= 000010   	MULM  = 000226   	PAG   = 000010   	PSWW12= 000016   	RTYMSG  001715RG    003
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-5
SYMBOL TABLE

RUNMSG  000560RG    003	SOSGE = 000375   	TDC   = 000650   	TO11DB= 004000   	UCDMSG  001732RG    003
SBRMSG  001131RG    003	SOSL  = 000371   	TDCA  = 000654   	TO11DN= 000200   	UECMSG  000060R     003
SCD   = 000040   	SOSLE = 000373   	TDCE  = 000652   	TO11DT= 174426   	UECMSP  001612R     002
SCFERM  003201R     005	SOSN  = 000376   	TDCN  = 000656   	TO11ER= 000002   	UGETF = 000073
SCRMSG  001135RG    003	SPCEST  001614R     002	TDMSG0  000345R     003	TPDDCK  011350R  	UJEN  = 000100
SEPMSG  001276RG    003	SPFERM  003305R     005	TDN   = 000610   	TPDDVD  007122R     002	UNASG1= 000032
SETA  = 000424   	SSTLEN= 000010 G 	TDNA  = 000614   	TPDDVS  007114R     002	UNASG2= 000033
SETAB = 000427   	SSTTBE= 000302RG    002	TDNE  = 000612   	TPDRMN  007106R     002	UNASG3= 000034
SETAI = 000425   	STAMSG  002075R     003	TDNN  = 000616   	TRADDR  007140R     002	UNASG4= 000035
SETAM = 000426   	STAT  = 174434   	TDO   = 000670   	TRC   = 000640   	UNASG5= 000036
SETCA = 000450   	STATO = 000061   	TDOA  = 000674   	TRCA  = 000644   	UNASG6= 000037
SETCAB= 000453   	STATUS= 000022   	TDOE  = 000672   	TRCE  = 000642   	UNLERM  003456R     005
SETCAI= 000451   	STATZ = 000063   	TDON  = 000676   	TRCN  = 000646   	UNMMSG  000640RG    003
SETCAM= 000452   	STRMSG  000617RG    003	TDZ   = 000630   	TRDATA  007146R     002	USETI = 000074
SETCM = 000460   	STSW1 = ****** GX	TDZA  = 000634   	TRKMSG  001723RG    003	USETO = 000075
SETCMB= 000463   	STUCAE  007440R  	TDZE  = 000632   	TRN   = 000600   	USRMSG  001207RG    003
SETCMI= 000461   	STUUNL  007446R  	TDZN  = 000636   	TRNA  = 000604   	VERMSG  001755RG    003
SETCMM= 000462   	ST.CED= 000100   	TENAD1= 174410   	TRNE  = 000602   	VFYERM  003514R     005
SETM  = 000414   	ST.CLE= 000001   	TENAD2= 174412   	TRNN  = 000606   	VF.DSP= 000060
SETMB = 000417   	ST.CTD= 040000   	TENMSG  000765RG    003	TRO   = 000660   	VF.FFD= 000061
SETMI = 000415   	ST.CTE= 010000   	TFRMSG  001765R     003	TROA  = 000664   	VF.INT= 000000
SETMM = 000416   	ST.DW1= 002000   	TFWMSG  002002R     003	TROE  = 000662   	VF.OVR= 000053
SETMSG  000564RG    003	ST.DXD= 000004   	TFXMSG  002017R     003	TRON  = 000666   	VF.PRM= 000044
SETO  = 000474   	ST.EBS= 000100   	THSMSG  000746RG    003	TRZ   = 000620   	VF.SSP= 000040
SETOB = 000477   	ST.EDB= 004000   	TLC   = 000641   	TRZA  = 000624   	VMAMSG  001120RG    003
SETOI = 000475   	ST.EPE= 000020   	TLCA  = 000645   	TRZE  = 000622   	VMHMSG  001124RG    003
SETOM = 000476   	ST.IDS= 000010   	TLCE  = 000643   	TRZN  = 000626   	WEP   = 000010
SETSTS= 000060   	ST.IEN= 000040   	TLCN  = 000647   	TR.ALL= 000077   	WHAMSG  000666RG    003
SETZ  = 000400   	ST.ION= 000001   	TLN   = 000601   	TR.DEP= 000020   	WRCRME  007674R
SETZB = 000403   	ST.MBZ= 000000   	TLNA  = 000605   	TR.DTE= 000040   	WRIFWT  003326R
SETZI = 000401   	ST.MOD= 000010   	TLNE  = 000603   	TR.EXM= 000010   	WRMERM  003550R     005
SETZM = 000402   	ST.MPE= 001000   	TLNN  = 000607   	TR.FRD= 000002   	XCT   = 000256
SHOMSG  000570RG    003	ST.NST= 000040   	TLO   = 000661   	TR.FWR= 000004   	XCTMSG  000673RG    003
SHUMSG  000575RG    003	ST.RIZ= 010000   	TLOA  = 000665   	TR.FXC= 000001   	XOR   = 000430
SKIERM  003230R     005	ST.RST= 011121   	TLOE  = 000663   	TSC   = 000651   	XORB  = 000433
SKIP  = 000330   	ST.SEP= 000004   	TLON  = 000667   	TSCA  = 000655   	XORI  = 000431
SKIPA = 000334   	ST.STE= 000002   	TLZ   = 000621   	TSCAMB  010732R  	XORM  = 000432
SKIPE = 000332   	ST.TED= 000200   	TLZA  = 000625   	TSCE  = 000653   	XTOERM  003661R     005
SKIPG = 000337   	ST.TER= 000002   	TLZE  = 000623   	TSCN  = 000657   	YORERM  003631R     005
SKIPGE= 000335   	ST.TXD= 100000   	TLZN  = 000627   	TSCNSK  010744R  	ZERMSG  000677RG    003
SKIPL = 000331   	ST.TXE= 020000   	TOBM  = 000004   	TSCWRM  010752R  	ZSTOP = 040000
SKIPLE= 000333   	ST.XDB= 000400   	TOD   = 000003   	TSN   = 000611   	$DIV  = ****** GX
SKIPN = 000336   	SUB   = 000274   	TOIP  = 000002   	TSNA  = 000615   	$DSW  = ****** GX
SLOMSG  001500RG    003	SUBB  = 000277   	TOIT  = 000001   	TSNE  = 000613   	$$    = 000037
SNPMSG  000606RG    003	SUBI  = 000275   	TORERM  003426R     005	TSNN  = 000617   	$$PASS= 000000
SOJ   = 000360   	SUBM  = 000276   	TO10  = 000200   	TSO   = 000671   	$$$AB = 000001
SOJA  = 000364   	SWPMSG  000625RG    003	TO10AD= 174420   	TSOA  = 000675   	$$$ABO= 000001
SOJE  = 000362   	SWR   = 177570   	TO10BC= 174414   	TSOE  = 000673   	$$$ACB= 000002
SOJG  = 000367   	SWSLLT= 100000   	TO10BM= 000001   	TSON  = 000677   	$$$AD = 000001
SOJGE = 000365   	SXCT  = 000106   	TO10DB= 000400   	TSZ   = 000631   	$$$ADX= 000001
SOJL  = 000361   	SZIERM  003335R     005	TO10DN= 100000   	TSZA  = 000635   	$$$ALL= 000002
SOJLE = 000363   	TAAERM  003371R     005	TO10DT= 174424   	TSZE  = 000633   	$$$APR= 000001
SOJN  = 000366   	TAKMSG  000633RG    003	TO10ER= 020000   	TSZN  = 000637   	$$$AR = 000003
SOS   = 000370   	TC.CON= 000377   	TO11  = 000100   	TTCALL= 000051   	$$$ARG= 000006
SOSA  = 000374   	TC.CTC= 000002   	TO11AD= 174422   	TTYMSG  001515RG    003	$$$ARX= 000001
SOSE  = 000372   	TC.ERR= 000000   	TO11BC= 174416   	TT.OUT= ****** GX	$$$AUG= 000001
SOSG  = 000377   	TC.RST= 000001   	TO11BM= 020000   	TYODIE  015752R  	$$$AUT= 000002
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-6
SYMBOL TABLE

$$$BR = 000001   	$$$MNT= 000002   	.ATLMD= 000033   	.DFWB   000304RG    002	.EXAMD= ****** GX
$$$BRX= 000001   	$$$MQ = 000001   	.BRCLK= 005000   	.DFWRT= ****** GX	.EXAMF= ****** GX
$$$CLK= 000002   	$$$MRK= 000001   	.BRMBC  003334RG 	.DFXCT= ****** GX	.EXAMI= ****** GX
$$$CLR= 000001   	$$$NOT= 000001   	.BUFSZ= 001000 G 	.DIAG1= 000000   	.EXAMK= ****** GX
$$$CNT= 000001   	$$$NOV= 000001   	.BURST  003340RG 	.DIAG2= 000002   	.EXAMN= ****** GX
$$$CON= 000002   	$$$NRM= 000001   	.CCMDN  000002RG    002	.DIAG3= 000006   	.EXAMP= ****** GX
$$$CPU= 000001   	$$$NUL= 000001   	.CDIBC= 000412R     004	.DISCC= ****** GX	.EXAMZ= ****** GX
$$$CRA= 000001   	$$$NXT= 000004   	.CDIBP= 000410R     004	.DOCMD  007714RG 	.EXARR= ****** GX
$$$CRL= 000001   	$$$OCT= 000001   	.CDINP  000374RG    004	.DPBFR  000066RG    002	.EXARX= ****** GX
$$$CRM= 000002   	$$$OFS= 000002   	.CDOBC= 000432RG    004	.DPBFX  000074RG    002	.EXBFR  000124RG    002
$$$CTL= 000001   	$$$OPR= 000002   	.CDOBP= 000430RG    004	.DPDPB  000312RG    004	.EXBRR= ****** GX
$$$DAT= 000002   	$$$OST= 000014   	.CDOFC= 000434RG    004	.DPETB  004612RG    002	.EXBRX= ****** GX
$$$DCR= 000004   	$$$OUT= 000002   	.CDOUT  000414RG    004	.DPKLM  003762RG 	.EXCRA= ****** GX
$$$DEC= 000001   	$$$PAG= 000001   	.CECLK= 004000   	.DPOEL= ****** GX	.EXCRL= ****** GX
$$$DEP= 000001   	$$$PC = 000001   	.CESCK  000000RG 	.DPOKL= ****** GX	.EXCTC= ****** GX
$$$DIS= 000001   	$$$PI = 000002   	.CHTAB  001450RG    002	.DPOSC= ****** GX	.EXCTF  004150RG
$$$DPT= 000001   	$$$PRG= 000002   	.CIBFL= 000214 G 	.DPOSD= ****** GX	.EXDPB  000324RG    004
$$$DRA= 000001   	$$$PRV= 000004   	.CIBFR  000330RG    002	.DPOSI= ****** GX	.EXDPM  004020RG
$$$DRM= 000001   	$$$PST= 000002   	.CISTS  000004RG    002	.DPOSN= ****** GX	.EXDRA= ****** GX
$$$DTE= 000002   	$$$QTR= 000001   	.CKARG  000070RG 	.DPOSP= ****** GX	.EXDTE= ****** GX
$$$EBS= 000001   	$$$QUT= 000001   	.CKCOL  000130RG 	.DPOSZ= ****** GX	.EXEBS= ****** GX
$$$ELE= 000003   	$$$R  = 000001   	.CKCTC  000166RG 	.DPOTB  004652RG    002	.EXECT  004226RG
$$$ENB= 000001   	$$$REG= 000001   	.CKEOC  000214RG 	.DPTRK  012440RG 	.EXETB  004734RG    002
$$$ERR= 000001   	$$$REM= 000001   	.CKEOS  000256RG 	.DREG   000320RG    002	.EXFER= ****** GX
$$$EXA= 000001   	$$$RLD= 000002   	.CKOBJ  000300RG 	.DRLTC= 015000   	.EXFMR= ****** GX
$$$EXT= 000001   	$$$RPT= 000003   	.CKRNP  000316RG 	.DSACF= 066000   	.EXITP  010074RG
$$$FEB= 000001   	$$$RST= 000001   	.CKRUN  000326RG 	.DSIOJ= 065000   	.EXKLM  003730RG
$$$FER= 000001   	$$$RTY= 000002   	.CKSYM  000374RG 	.DTAB   004200R     002	.EXMEL= ****** GX
$$$FLG= 000001   	$$$RUN= 000001   	.CLDFB  003370RG 	.DTCID  000474RG    004	.EXMKL= ****** GX
$$$FLT= 000002   	$$$SBR= 000001   	.CLDFR  003374RG 	.DTDI1  000320RG    002	.EXMPI= ****** GX
$$$FM = 000002   	$$$SCR= 000001   	.CLDFW  003404RG 	.DTDI2  000322RG    002	.EXMQR= ****** GX
$$$FRD= 000001   	$$$SEP= 000001   	.CLKWD  000010RG    002	.DTDI3  000326RG    002	.EXMTB  004774RG    002
$$$FSS= 000002   	$$$SET= 000001   	.CLOSE  002114RG 	.DTDW1  003530RG 	.EXREG= ****** GX
$$$FUL= 000001   	$$$SHO= 000001   	.CLRCM= ****** GX	.DTDW2  003536RG 	.EXSBR= ****** GX
$$$FWR= 000001   	$$$SHU= 000001   	.CLRFF  003420RG 	.DTDW3  003556RG 	.EXSCR= ****** GX
$$$FXC= 000001   	$$$SLO= 000001   	.CLRMR= 006000   	.DTSTA  003546RG 	.EXTND  002004RG
$$$HAR= 000001   	$$$SNP= 000001   	.CLRUN= 010000   	.DTSTS  000324RG    002	.EXTRK  012426RG
$$$HLF= 000001   	$$$STR= 000001   	.CMDTB  004310RG    002	.DTSTW= 000004   	.EXVAB= ****** GX
$$$HLT= 000001   	$$$SWP= 000001   	.CMNDL= 000430 G 	.DTTRK  012316RG 	.EXVMA= ****** GX
$$$INC= 000006   	$$$TAK= 000001   	.COBFL= 000204 G 	.DWDW1  003454RG 	.EXVMH= ****** GX
$$$INI= 000002   	$$$TEN= 000004   	.COBFR  000544RG    002	.DWDW2  003462RG 	.EXVPC= ****** GX
$$$INT= 000001   	$$$THS= 000004   	.COMEF= ****** GX	.DWDW3  003502RG 	.FEMOD= ****** GX
$$$IO = 000001   	$$$TRK= 000002   	.COMMA= 000054   	.DWSTA  003472RG 	.FISTS  001630RG    002
$$$JAN= 000001   	$$$TTY= 000001   	.COMND  000760RG    002	.EBCLK  003634RG 	.FNDIR  001452RG
$$$JMP= 000001   	$$$T1 = 000006   	.CONBT= 012000   	.EBPCK  000410RG 	.FREAD  004362RG
$$$JUL= 000001   	$$$UCD= 000001   	.CONTC= ****** GX	.EDELA  000102RG    002	.FRTRK  012156RG
$$$JUN= 000001   	$$$UNM= 000001   	.COSTS  000012RG    002	.EDKLA  000104RG    002	.FWRIT  004444RG
$$$KL = 000001   	$$$USR= 000002   	.CRAMA  000016RG    002	.EDKLX  000112RG    002	.FWTRK  012176RG
$$$KLI= 000002   	$$$VER= 000001   	.CRAMR  000020RG    002	.EIOJA= 067000   	.FXCT   004566RG
$$$LOG= 000001   	$$$VMA= 000001   	.CRAMW  000042RG    002	.ELDDW  000120RG    002	.FXTRK  012216RG
$$$LPT= 000001   	$$$VMH= 000001   	.CSHRG= 164000   	.ELEDW  000122RG    002	.GFNR = 102000
$$$M  = 000001   	$$$WHA= 000001   	.DBGSW  000064RG    002	.ELNCK  013130RG 	.GTCMD  012574RG
$$$MAR= 000001   	$$$XCT= 000001   	.DELET  002100RG 	.ENTER  001664RG 	.GTELN  013204RG
$$$MAY= 000001   	$$$ZER= 000001   	.DEPAR= ****** GX	.ETAB   004170R     002	.GTEXP  013672RG
$$$MCR= 000001   	.ABRTC= ****** GX	.DFBLK  000304RG    002	.EXAD = ****** GX	.GTFCT  014100RG
$$$MEM= 000002   	.APRWD  000000RG    002	.DFRB   000312RG    002	.EXADX= ****** GX	.GTKLA  013234RG
$$$MGN= 000001   	.ATCID  000460RG    004	.DFRED= ****** GX	.EXAMC= ****** GX	.GTKLN  013266RG
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-7
SYMBOL TABLE

.GTLIN  012630RG 	.LDDIS= 045000   	.RCSPF= 141000   	.SCCOU= ****** GX	.SPACE= 000040
.GTNBR  014374RG 	.LDOBC= 000454RG    004	.RDCPP  006134RG 	.SCCRF= ****** GX	.SPETB  006622RG    002
.GTNUM  013266RG 	.LDOBP= 000452RG    004	.RDCRA= ****** GX	.SCCRH= ****** GX	.SSCAN  010760RG
.GTOPC  013500RG 	.LDOFC= 000456R     004	.RDCRD  006270RG 	.SCCRQ= ****** GX	.SSCLK= 002000
.GTTRM  013766RG 	.LDOUT  000436RG    004	.RDCRM  006326RG 	.SCCRS= ****** GX	.SSTTB  000264RG    002
.HALTC= ****** GX	.LDPAR  005572RG 	.RDCRO  006476R  	.SCCSE= ****** GX	.START  010340RG
.INATT  002716RG    002	.LDRJD= 064000   	.RDCRR  006360RG 	.SCCSI= ****** GX	.STCLF  007240RG
.INBBC  001660RG    002	.LDRJV= 063000   	.RDFMA  006516RG 	.SCCSM= ****** GX	.STCLK  007232RG
.INBUF  001664RG    002	.LDRM1= 060000   	.RDFMO  006600RG 	.SCCTB  006170RG    002	.STPCL= 000000
.INCHC  000132RG    002	.LDRM2= 061000   	.RDFMP  006634RG 	.SCDAT= ****** GX	.STPKL  007256RG
.INDFG  001626RG    002	.LDRM3= 062000   	.RDIPE  006670RG 	.SCFSS= ****** GX	.STPXC  007302RG
.INFN   001634RG    002	.LDSEL= 044000   	.RDJ14= 134000   	.SCINC= ****** GX	.STRCL= 001000
.INFNB  002664RG    002	.LDSTS  000160RG    002	.RDJ71= 135000   	.SCKLN= ****** GX	.STRTB  006712RG    002
.INICL= 070000   	.LDZFL  000166RG    002	.RDMAB= 133000   	.SCMEL= ****** GX	.STRTC= ****** GX
.INICP= ****** GX	.LGLWD  000164RG    002	.RDXSV  000206RG    002	.SCMEM= ****** GX	.STRTT= ****** GX
.INITC= ****** GX	.LOKUP  001574RG 	.READ   002440RG 	.SCMKL= ****** GX	.STRTU= ****** GX
.INPOS  001662RG    002	.MARKC= ****** GX	.READB  002406RG 	.SCMTB  006274RG    002	.STRTV  000222RG    002
.INVBN  001654RG    002	.MEMFL  000170RG    002	.READR  002224RG 	.SCNOT= ****** GX	.STRUN  007332RG
.IRADX  000134RG    002	.MEMRS= 076000   	.READW  002330RG 	.SCOFS= ****** GX	.STUCD  007352RG
.IRLTC= 014000   	.MISC = ****** GX	.RECNT  004034RG    002	.SCOTL= ****** GX	.SVESP  000224RG    002
.JUMPC= ****** GX	.MONTB  005332RG    002	.RECPT  004036RG    002	.SCOTP= ****** GX	.SVKLF  000226RG    002
.KLCON  004736RG 	.MRCLR  005766RG 	.RECRD  004040RG    002	.SCOTT  006344RG    002	.SWPC = ****** GX
.KLDFR  000336RG    004	.MTDPB  000266RG    004	.REGRW  000300RG    004	.SCOTY= ****** GX	.SWPIP  000230RG    002
.KLDFW  000350RG    004	.NOERR= ****** GX	.REGSV  010302RG 	.SCOUT= ****** GX	.SYNXC  007454RG
.KLDFX  000362RG    004	.NOHLT= ****** GX	.RELWD  000210RG    002	.SCPAL= ****** GX	.TAKEC= ****** GX
.KLE  = ****** GX	.NOTSW  000172RG    002	.REMOV  001564RG 	.SCPAR= ****** GX	.TCRLF  015536RG
.KLEDF  000144RG    002	.NSETB  005444RG    002	.REPTC  011022RG 	.SCPCR= ****** GX	.TFCHR  015470RG
.KLEPT  000146RG    002	.NULLC  007702RG 	.RESET  006752RG 	.SCPDR= ****** GX	.TPADD  011502RG
.KLERQ= ****** GX	.OPEN   001736RG 	.RESTB  006106RG    002	.SCPEN= ****** GX	.TPCLR  011356RG
.KLEVL  000150RG    002	.ORADX  000174RG    002	.RESTC= ****** GX	.SCPFM= ****** GX	.TPCMP  011424RG
.KLFLG= ****** GX	.OTATT  004016RG    002	.RESTD  007066RG 	.SCPFS= ****** GX	.TPCOM  011366RG
.KLGO   004744RG 	.OTBBC  002760RG    002	.RESTI  007106RG 	.SCPST= ****** GX	.TPDEC  011534RG
.KLHLT  005034RG 	.OTBUF  002764RG    002	.RESTP  007132RG 	.SCPTB  006370RG    002	.TPDIV  011144RG
.KLINC  000136RG    002	.OTFN   002734RG    002	.RPTCT  000212RG    002	.SCRLD= ****** GX	.TPINC  011522RG
.KLMTB  005270RG    002	.OTFNB  003764RG    002	.RPTPT  000220RG    002	.SCRPT= ****** GX	.TPMUL  011572RG
.KLMT1  005314RG    002	.OTPOS  002762RG    002	.RSALL= ****** GX	.SCRTY= ****** GX	.TPNEG  011376RG
.KLRST  005274RG 	.OTVBN  002754RG    002	.RSAPR= ****** GX	.SCTAK= ****** GX	.TPSHI  011756RG
.KLSNP  000151RG    002	.OUTLG  000154RG    002	.RSDTE= ****** GX	.SCTRK= ****** GX	.TPSHL  012022RG
.KLST   005164RG 	.OUTLP  000155RG    002	.RSERR= ****** GX	.SEAMB  000520RG 	.TPSUB  011546RG
.KLSTP  005212RG 	.OUTTY  000156RG    002	.RSPAG= ****** GX	.SECES  000756RG 	.TPTST  011460RG
.KLXCT  005426RG 	.PARER  000432RG 	.RSTIN= ****** GX	.SECLK= 003000   	.TPXTN  011404RG
.LCRDL= 052000   	.PASS   000152RG    002	.RSTIO= ****** GX	.SEFRF  000606RG 	.TRKWD  000232RG    002
.LCRDR= 051000   	.PCAB1= 150000   	.RSTKL  007204RG 	.SEFWF  000614RG 	.TRPEC  000236RG    002
.LCRM1= 057000   	.PCAB2= 151000   	.RSTPI= ****** GX	.SEFXF  000622RG 	.TRPIP  000240RG    002
.LCRM2= 056000   	.PCAB3= 152000   	.RUNCM= ****** GX	.SEILC  000544RG 	.TRPPC  000242RG    002
.LCRM3= 055000   	.PCAB4= 153000   	.R50TB  001410RG    002	.SEILS  000544RG 	.TRPPS  000244RG    002
.LCRM4= 054000   	.PEWRD  000176RG    002	.SCACB= ****** GX	.SEIPC  000544RG 	.TRPSB  000246RG    002
.LCRM5= 053000   	.PITAB  000200RG    002	.SCCEC= ****** GX	.SENSK  000520RG 	.TRPTV  000250RG    002
.LDAR = 077000   	.PSCWD  000204RG    002	.SCCED= ****** GX	.SETCM= ****** GX	.TRP4V  000234RG    002
.LDBRC  005452RG 	.PTDIE  001046RG 	.SCCEE= ****** GX	.SETFN  002166RG 	.TSCAN  010510RG
.LDBRG  005456RG 	.PTOAT  001352RG 	.SCCLK= ****** GX	.SETMR= 007000   	.TYACE  014614RG
.LDBRL= 043000   	.PTTRP  001124RG 	.SCCLN= ****** GX	.SETRN= 011000   	.TYAC1  014646RG
.LDBRR= 042000   	.QUITC= ****** GX	.SCCOM= ****** GX	.SETTB  006444RG    002	.TYCHR  015504RG
.LDCK1= 046000   	.RCRM1= 147000   	.SCCON= ****** GX	.SFREC= ****** GX	.TYCOL  014526RG
.LDCK2= 047000   	.RCRM2= 146000   	.SCCOO= ****** GX	.SHIFT  011114RG 	.TYCOM  014536RG
.LDCLK  005554RG 	.RCRM3= 145000   	.SCCOP= ****** GX	.SHUTC= ****** GX	.TYELA  014746RG
.LDCRA  005652RG 	.RCRM4= 144000   	.SCCOT  006312RG    002	.SNAP = ****** GX	.TYELN  014752RG
TYOUT -- GENERAL TERMINAL OUTPU	MACRO M1113  10-NOV-81 17:44  PAGE 260-8
SYMBOL TABLE

.TYINI  015722RG 	.TYOUT  015564RG 	.WHATB  006730RG    002	.WHREC= ****** GX	.WRITB  003030RG
.TYKLA  015072RG 	.TYOU1  015644RG 	.WHATC= ****** GX	.WHRLD= ****** GX	.WRITE  003160RG
.TYKLN  015142RG 	.TYP3D  015016RG 	.WHATV= ****** GX	.WHRPT= ****** GX	.WRITR  002616RG
.TYLIN  015432RG 	.TYR50  015756RG 	.WHCON= ****** GX	.WHRTY= ****** GX	.WRITW  002754RG
.TYMIN  014546RG 	.TYSLS  014556RG 	.WHDAT= ****** GX	.WHTAK= ****** GX	.WRITZ  003060RG
.TYMSF  015440RG 	.TYSPC  014566RG 	.WHINC= ****** GX	.WHTCL= ****** GX	.WRMBX= 071000
.TYMSG  015446RG 	.TYUPA  014576RG 	.WHKLN= ****** GX	.WHTPS= ****** GX	.WRTAR  007472RG
.TYNCM  015224RG 	.T50TB  001440RG    002	.WHMEM= ****** GX	.WHTRK= ****** GX	.ZEROC= ****** GX
.TYNUM  015302RG 	.UMRKC= ****** GX	.WHOFS= ****** GX	.WRAR1  007476RG 	..DTSP= ****** GX
.TYOBC  000252RG    002	.VFYFL  000256RG    002	.WHOUT= ****** GX	.WRCRM  007520RG 	..SACK= ****** GX
.TYOBP  000254RG    002	.WHACB= ****** GX	.WHRDW= ****** GX

. ABS.	000000	   000
      	016030	   001
DATA  	007256	   002
MESSAG	002300	   003
DPBS  	000510	   004
ERRMSG	004274	   005
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  17032 WORDS  ( 67 PAGES)
DYNAMIC MEMORY:  18662 WORDS  ( 71 PAGES)
ELAPSED TIME:  00:04:06
,[51,20]PAROOT/CR/-SP=[51,30]PAROOT.TMP
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ABMSG 	  001031 RG	 178-7125  #178-7125   178-7125  
ABOMSG	  000365 RG	 174-6980  #174-6980   174-6980  
ACBMSG	  001545 RG	 188-7421  #188-7421   188-7421   191-7492   191-7492  
ADD   	= 000270	#23-877    
ADDB  	= 000273	#23-878    
ADDI  	= 000271	#23-879    
ADDM  	= 000272	#23-880    
ADMSG 	  000771 RG	 178-7104  #178-7104   178-7104  
ADRTMP	  007210 R	*242-9414  *242-9415   242-9416  #242-9428  
ADXMSG	  000774 RG	 178-7106  #178-7106   178-7106  
ALLMSG	  001342 RG	 182-7321  #182-7321   182-7321   187-7402   187-7402  
AMBERM	  003714 R	#189-7464   189-7464  
AND   	= 000404	#23-882    
ANDB  	= 000407	#23-883    
ANDCA 	= 000410	#23-884    
ANDCAB	= 000413	#23-885    
ANDCAI	= 000411	#23-886    
ANDCAM	= 000412	#23-887    
ANDCB 	= 000440	#23-888    
ANDCBB	= 000443	#23-889    
ANDCBI	= 000441	#23-890    
ANDCBM	= 000442	#23-891    
ANDCM 	= 000420	#23-892    
ANDCMB	= 000423	#23-893    
ANDCMI	= 000421	#23-894    
ANDCMM	= 000422	#23-895    
ANDI  	= 000405	#23-896    
ANDM  	= 000406	#23-897    
AOBJN 	= 000253	#23-899    
AOBJP 	= 000252	#23-900    
AOJ   	= 000340	#23-902    
AOJA  	= 000344	#23-903    
AOJE  	= 000342	#23-904    
AOJG  	= 000347	#23-905    
AOJGE 	= 000345	#23-906    
AOJL  	= 000341	#23-907    
AOJLE 	= 000343	#23-908    
AOJN  	= 000346	#23-909    
AOS   	= 000350	#23-911    
AOSA  	= 000354	#23-912    
AOSE  	= 000352	#23-913    
AOSG  	= 000357	#23-914    
AOSGE 	= 000355	#23-915    
AOSL  	= 000351	#23-916    
AOSLE 	= 000353	#23-917    
AOSN  	= 000356	#23-918    
APEERM	  000000 R	#181-7221   181-7221  
APR   	= 000000	#7-244     
APRMSG	  001243 RG	 180-7197  #180-7197   180-7197  
AP.ALL	= 000177	#9-348     
AP.ARP	= 001000	#16-633     16-637     131-5433  
AP.CDP	= 000004	#9-343      9-348     
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

AP.EIP	= 000400	#16-635     16-637     131-5441  
AP.IPF	= 000020	#9-345      9-348     
AP.MPE	= 000010	#9-344      9-348     
AP.NRM	= 001400	#16-637     16-639    
AP.NXM	= 000040	#9-346      9-348     
AP.PWF	= 000001	#9-341      9-348     
AP.SAP	= 000002	#9-342      9-348     
AP.SBE	= 000100	#9-347      9-348     
ARMSG 	  000753 RG	 176-7068  #176-7068   176-7068   178-7108   178-7108   187-7404   187-7404  
ARXMSG	  001000 RG	 178-7110  #178-7110   178-7110  
ASH   	= 000240	#23-920    
ASHC  	= 000244	#23-921    
AUGMSG	  001267 RG	 180-7205  #180-7205   180-7205  
AUTMSG	  001556 RG	 188-7423  #188-7423   188-7423   191-7494   191-7494  
A.LULU	= 000002	#70-3071    70-3073   
A.LUNA	= 000004	#70-3071   
A.LUNU	= 000006	#70-3071   
BAEERM	  000023 R	#181-7223   181-7223  
BCCTER	  003362 R	 88-3854   #88-3859   
BIT0  	= 000001	#87-3821   
BIT00 	= 000001	#9-305      10-383     11-409     11-429     12-466     12-467     13-490     13-513     22-842    
                         22-856     62-2632    130-5394   139-5751  
BIT01 	= 000002	#9-306      10-386     11-405     11-427     12-464     12-465     13-491     13-512     22-843    
                         22-857     130-5393  
BIT02 	= 000004	#9-307      10-378     11-404     11-426     11-431     12-462     12-463     13-492     13-511    
                         22-844     22-858     97-4147    130-5392  
BIT03 	= 000010	#9-308      10-377     11-403     11-423     12-459     12-461     13-493     13-510     22-845    
                         22-859     128-5299   130-5391  
BIT04 	= 000020	#9-309      10-375     10-376     11-402     11-421     11-422     12-457     13-494     13-509    
                         22-846     22-860    
BIT05 	= 000040	#9-310      10-373     11-409     11-420     12-455     12-456     13-495     13-508     22-847    
                         22-861     139-5748  
BIT06 	= 000100	#9-311      10-372     11-398     11-431     12-453     12-454     13-484     13-507     22-848    
                         22-862    
BIT07 	= 000200	#9-312      10-370     10-371     11-409     11-431     12-451     13-483     13-506     22-849    
                         22-863    
BIT08 	= 000400	#9-313      10-369     11-409     11-431     12-449     13-482     13-505     22-864    
BIT09 	= 001000	#9-314      10-365     10-368     11-409     11-431     12-447     13-481     13-504    
BIT1  	= 000002	#87-3821   
BIT10 	= 002000	#9-315      10-364     10-367     11-409     11-431     12-446     13-480     13-503    #87-3821   
BIT11 	= 004000	#9-316      10-363     10-366     11-409     11-431     12-444     13-479     13-502    #87-3821   
BIT12 	= 010000	#9-317      10-362     11-409     11-431     12-442     12-443     13-478     13-501    #87-3821   
BIT13 	= 020000	#9-318      10-361     11-394     11-409     11-431     12-440     13-477    #87-3821   
BIT14 	= 040000	#9-319      10-360     11-391     11-392     11-409     11-414     11-431     12-439     13-476    
                        #87-3821   
BIT15 	= 100000	#9-320      10-359     11-390     11-409     11-413     11-431     12-437     13-475     35-1480   
                         35-1561    72-3187    73-3237    74-3297   #87-3821   
BIT2  	= 000004	#87-3821   
BIT3  	= 000010	#87-3821   
BIT4  	= 000020	#87-3821   
BIT5  	= 000040	#87-3821   
BIT6  	= 000100	#87-3821   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

BIT7  	= 000200	#87-3821   
BIT8  	= 000400	#87-3821   
BIT9  	= 001000	#87-3821   
BLKI  	= 000000	#7-233     
BLKIS 	  002203 R	 228-8926  #228-8938  
BLKO  	= 000002	#7-235     
BLKOS 	  002216 R	 228-8928  #228-8940  
BLT   	= 000251	#23-923    
BPARER	= 000020	#87-3821   
BRMSG 	  001004 RG	 178-7112  #178-7112   178-7112  
BRXMSG	  001007 RG	 178-7114  #178-7114   178-7114  
CAEERM	  000056 R	#181-7225   181-7225  
CAI   	= 000300	#24-925    
CAIA  	= 000304	#24-926    
CAIE  	= 000302	#24-927    
CAIG  	= 000307	#24-928    
CAIGE 	= 000305	#24-929    
CAIL  	= 000301	#24-930    
CAILE 	= 000303	#24-931    
CAIN  	= 000306	#24-932    
CALERM	  000112 R	#181-7226   181-7226  
CALL  	= 000040	#24-934    
CALLI 	= 000047	#24-935    
CAM   	= 000310	#24-937    
CAMA  	= 000314	#24-938    
CAME  	= 000312	#24-939    
CAMG  	= 000317	#24-940    
CAMGE 	= 000315	#24-941    
CAML  	= 000311	#24-942    
CAMLE 	= 000313	#24-943    
CAMN  	= 000316	#24-944    
CAPERM	  000141 R	#181-7227   181-7227  
CBOERM	  000200 R	#181-7228   181-7228  
CCA   	= 000014	#7-247     
CC.ALL	= 003417	#15-611    
CC.NRM	= 000000	#15-610     143-5924  
CDD   	= 000020	#87-3821   
CDIERM	  000236 R	#181-7229   181-7229  
CD.ALL	= 003400	#15-608     15-611    
CD.CLC	= 000400	#15-606     131-5437  
CD.CRC	= 002000	#15-604     131-5422  
CD.DPC	= 001000	#15-605     131-5429  
CD.NRM	= 000000	#15-607    
CESCES	  000016 R	 47-2090   #47-2093   
CESERM	  003746 R	#189-7466   189-7466  
CFHERM	  000317 R	#181-7230   181-7230  
CHNPNT	= 000001	#87-3821   
CH.ALP	= 000001	#22-842     22-851     41-1828    42-1831    42-1832    42-1833    42-1834    42-1835    42-1836   
                         42-1837    42-1838    42-1839    42-1840    42-1841    42-1842    42-1843    42-1844    42-1845   
                         42-1846    42-1847    42-1848    42-1849    42-1850    42-1851    42-1852    42-1853    42-1854   
                         42-1855    42-1856    48-2132   
CH.ANM	= 000003	#22-851    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CH.AOP	= 000100	#22-848     41-1803    41-1804    41-1805    41-1806    41-1808    41-1810    42-1832    42-1833   
                         42-1834    42-1845    42-1861    42-1862   
CH.END	= 000034	#22-850     59-2537    169-6838  
CH.EOC	= 000010	#22-845     22-850     40-1762    41-1807    41-1823    41-1824    49-2169    51-2234    53-2300   
CH.EOL	= 000004	#22-844     22-850     40-1762   
CH.EOS	= 000020	#22-846     22-850     40-1762    41-1795    41-1797    41-1802    41-1805    41-1806    41-1807   
                         41-1808    41-1810    41-1823    41-1824    41-1826    41-1827    42-1862    52-2271   
CH.ILL	= 000200	#22-849     40-1763    40-1764    40-1765    40-1766    40-1767    40-1768    40-1769    40-1770   
                         40-1771    40-1772    40-1773    40-1774    40-1775    40-1776    40-1777    40-1778    40-1779   
                         40-1780    40-1781    40-1782    40-1783    40-1784    40-1785    41-1787    41-1788    41-1789   
                         41-1790    41-1791    41-1792    41-1793    41-1794    41-1796    41-1798    41-1799    41-1800   
                         41-1801    41-1809    41-1825    41-1829    42-1858    42-1859    42-1860    42-1863   
CH.NUL	= 000000	#22-841    
CH.NUM	= 000002	#22-843     22-851     41-1812    41-1813    41-1814    41-1815    41-1816    41-1817    41-1818   
                         41-1819    41-1820    41-1821    48-2139    236-9227  
CH.PFX	= 000040	#22-847     41-1803    41-1806    41-1808    41-1828    42-1861    48-2139   
CIDLUN	= 000001	#21-818     160-6565   222-8648   258-10060  258-10065 
CKCILS	  000152 R	 49-2172   #49-2174    51-2243    52-2272    52-2274   
CKCMRA	  000160 R	 48-2140    49-2170   #49-2177    53-2301   
CKEEOC	  000250 R	 51-2241   #51-2245   
CKRKLR	  000366 R	 54-2343   #54-2351   
CLEAR 	= 000400	#24-946    
CLEARB	= 000403	#24-947    
CLEARI	= 000401	#24-948    
CLEARM	= 000402	#24-949    
CLEERM	  000355 R	#181-7231   181-7231  
CLKMSG	  001570 RG	 188-7425  #188-7425   188-7425   191-7496   191-7496  
CLOATR	= 000256 R	*75-3327   *75-3331   #75-3354   
CLOATT	= 000262 R	*75-3333   #75-3361   
CLODAC	  000240 R	 75-3334   #75-3349    75-3352    75-3353    75-3354   
CLOFCF	  002160 R	 75-3335    75-3337   #75-3343   
CLOIOF	= 000242 R	*75-3326   *75-3330   #75-3352   
CLOLUN	= 000244 R	*75-3332   #75-3353   
CLOSE 	= 000070	#24-951    
CLOWAT	  000260 R	 75-3331   #75-3356    75-3361   
CLRMSG	  000373 RG	 174-6982  #174-6982   174-6982  
CNRERM	  000412 R	#181-7232   181-7232  
CNTMSG	  000401 RG	 174-6984  #174-6984   174-6984  
CNUPE 	= 000002	#87-3821   
CODLUN	= 000002	#21-819     258-10042 
CONI  	= 000005	#7-238     
CONIS 	  002236 R	 228-8931  #228-8943  
CONMSG	  001576 RG	 188-7427  #188-7427   188-7427   191-7498   191-7498  
CONO  	= 000004	#7-237     
CONOS 	  002231 R	 228-8930  #228-8942  
CONSO 	= 000007	#7-240     
CONSOS	  002251 R	 228-8933  #228-8945  
CONSZ 	= 000006	#7-239     
CONSZS	  002243 R	 228-8932  #228-8944  
CPEERM	  000452 R	#181-7233   181-7233  
CPUMSG	  001346 RG	 182-7323  #182-7323   182-7323  
CPVMSG	  000000 RG	#39-1715   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CRAMSG	  001034 RG	 178-7127  #178-7127   178-7127  
CRHERM	  000501 R	#181-7234   181-7234  
CRLMSG	  001043 RG	 178-7129  #178-7129   178-7129  
CRMMSG	  001376 RG	 62-2657    183-7344  #183-7344   183-7344   187-7406   187-7406  
CR.ALL	= 000003	#15-596     15-611    
CR.CR1	= 000001	#15-590     15-596     131-5435  
CR.CR2	= 000002	#15-591     15-596     131-5427  
CR.FUL	= 000000	#15-592    
CR.HLF	= 000001	#15-593    
CR.NRM	= 000000	#15-589    
CR.QTR	= 000002	#15-594    
CR.SLO	= 000003	#15-595    
CS.ALL	= 000014	#15-587     15-611    
CS.CS1	= 000004	#15-581     15-587     131-5420  
CS.CS2	= 000010	#15-582     15-587     131-5414  
CS.EXP	= 177670	#87-3821   
CS.EXT	= 000010	#15-585    
CS.FST	= 000004	#15-583     15-584    
CS.MGN	= 000004	#15-584    
CS.NRM	= 000000	#15-580    
CS.UDF	= 000014	#15-586    
CTLMSG	  001415 RG	 183-7348  #183-7348   183-7348  
CTYPTR	= ******  GX	 160-6569  
CYCLS 	= 000002	#87-3821   
DATABX	  000260 RG	#35-1602    260-10072 
DATAI 	= 000001	#7-234     
DATAIS	  002210 R	 228-8927  #228-8939  
DATAO 	= 000003	#7-236     
DATAOS	  002223 R	 228-8929  #228-8941  
DATE  	= 000004	#87-3821   
DATMSG	  001606 RG	 188-7429  #188-7429   188-7429   191-7500   191-7500  
DAVERM	  000543 R	#181-7239   181-7239  
DBTERM	  000574 R	#181-7240   181-7240  
DCKERM	  000624 R	#181-7241   181-7241  
DCOMST	= 000001	#87-3821   
DCRMSG	  000704 RG	 175-7053  #175-7053   175-7053   176-7074   176-7074   177-7089   177-7089   178-7157   178-7157  
DEB880	= ******	 44-1907    47-2085    56-2409    90-3925    94-4039    97-4148    99-4217    99-4233    100-4259  
                         104-4404   104-4412   106-4470   108-4566   110-4642   114-4821   115-4834   115-4863   117-4952  
                         128-5300   139-5764   149-6097   152-6193  
DECMSG	  001331 RG	 180-7213  #180-7213   180-7213  
DEP   	= 010000	#87-3821   
DEPMSG	  000412 RG	 174-6986  #174-6986   174-6986  
DEX   	= 000400	#87-3821   
DEXDON	= 000004	#87-3821   
DEXWD1	= 174406	#87-3821   
DEXWD2	= 174404	#87-3821   
DEXWD3	= 174402	#87-3821   
DFAD  	= 000110	#24-953    
DFBEND	= 000330 RG	#37-1673   
DFDV  	= 000113	#24-954    
DFMP  	= 000112	#24-955    
DFN   	= 000131	#24-956    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 6

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DFSB  	= 000111	#24-957    
DFUNC 	= 000200	#87-3821   
DF.DMG	= 000004	#87-3821   
DF.DMN	= 000007	#87-3821   
DF.DOR	= 000001	#87-3821   
DF.EHG	= 000010	#87-3821   
DF.EHM	= 000011	#87-3821   
DF.EMG	= 000005	#87-3821   
DF.EMN	= 000006	#87-3821   
DF.KLR	= 000012	#87-3821    106-4513  
DF.KLW	= 000013	#87-3821    108-4610  
DF.KLX	= 000014	#87-3821    111-4712  
DF.OFF	= 000002	#87-3821   
DF.ON 	= 000003	#87-3821   
DF.PDP	= 000016	#87-3821    102-4328  
DF.PEX	= 000015	#87-3821    102-4346  
DIAG1 	= 174430	#87-3821   
DIAG2 	= 174432	#87-3821   
DIAG3 	= 174436	#87-3821   
DIKL10	= 000010	#87-3821   
DISMSG	  000422 RG	 174-6988  #174-6988   174-6988  
DIV   	= 000234	#24-959    
DIVB  	= 000237	#24-960    
DIVI  	= 000235	#24-961    
DIVM  	= 000236	#24-962    
DLYCNT	= 174400	#87-3821   
DMFERM	  000647 R	#181-7242   181-7242  
DMOVE 	= 000120	#24-964    
DMOVEM	= 000124	#24-965    
DMOVN 	= 000121	#24-966    
DMOVNM	= 000125	#24-967    
DNFERM	  000736 R	#181-7244   181-7244  
DNPERM	  000775 R	#181-7245   181-7245  
DOCCNR	  010066 R	 159-6498  #159-6521  
DON10C	= 040000	#87-3821   
DON10S	= 100000	#87-3821   
DON11C	= 000100	#87-3821   
DON11S	= 000200	#87-3821   
DORERM	  000706 R	#181-7243   181-7243  
DPB   	= 000137	#24-969    
DPDTEN	= 000322 RG	#102-4329  
DPS4  	= 040000	#87-3821   
DPTMSG	  001403 RG	 183-7346  #183-7346   183-7346  
DRAMSG	  001051 RG	 178-7131  #178-7131   178-7131  
DRDMSG	  002115 R	 214-8305  #215-8335  
DRESET	= 000100	#87-3821   
DRMMSG	  001521 RG	 62-2656    187-7408  #187-7408   187-7408  
DR.DTE	= 000011	#87-3821    102-4328   102-4346   106-4513   108-4610   111-4712  
DSEND 	= 000004	#87-3821   
DSFERM	  001034 R	#181-7246   181-7246  
DS04  	= 004000	#87-3821   
DS05  	= 002000	#87-3821   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 7

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DS06  	= 001000	#87-3821   
DTCERM	  001067 R	#181-7247   181-7247  
DTECMD	= 000451	#87-3821   
DTEDSF	  003626 R	 94-4044   #94-4057   
DTEFLG	= 000444	#87-3821   
DTEF11	= 000450	#87-3821   
DTEMSG	  001060 RG	 178-7133  #178-7133   178-7133   182-7325   182-7325  
DTEMTD	= 000455	#87-3821   
DTEMTI	= 000456	#87-3821   
DTKMSG	  002166 R	 216-8377  #218-8443  
DTRMSG	  002034 R	 214-8290  #215-8323  
DUPE  	= 000020	#87-3821   
DURE  	= 000004	#87-3821   
DWRMSG	  002121 R	 214-8308  #215-8337  
DW1MSG	  002055 R	 215-8317  #215-8326  
DW2MSG	  002065 R	 215-8318  #215-8328  
DW3MSG	  002105 R	 215-8320  #215-8332  
DXWRD1	= 002000	#87-3821   
D.CDLS	= ******  GX	 160-6571  
D1.CES	= 004000	#10-366     47-2089    114-4820  
D1.DCS	= 000001	#10-383    
D1.DDT	= 000040	#10-373     10-386    
D1.DEX	= 000400	#10-369     10-386    
D1.DFM	= 000010	#10-377    
D1.DS0	= 100000	#10-359    
D1.DS1	= 040000	#10-360    
D1.DS2	= 020000	#10-361    
D1.DS3	= 010000	#10-362    
D1.DS4	= 004000	#10-363    
D1.DS5	= 002000	#10-364    
D1.DS6	= 001000	#10-365    
D1.HLP	= 001000	#10-368     104-4403   104-4411   115-4833   115-4862   117-4951   152-6192  
D1.LBK	= 000200	#10-371    
D1.MBZ	= 000442	#10-386     94-4066   
D1.PLS	= 000020	#10-376    
D1.RUN	= 002000	#10-367    
D1.T10	= 000200	#10-370    
D1.T11	= 000100	#10-372    
D1.V04	= 000020	#10-375    
D1.XFR	= 000004	#10-378    
D1011 	= 000040	#87-3821   
D2RST 	  004304 R	 142-5871  #142-5879  
D2.EBD	= 040000	#11-392    
D2.MBZ	= 177641	#11-409     94-4067   
D2.MS1	= 000002	#11-405    
D2.MS2	= 000004	#11-404    
D2.MS4	= 000010	#11-403    
D2.MS8	= 000020	#11-402    
D2.RA0	= 100000	#11-390    
D2.RA1	= 040000	#11-391    
D2.RA2	= 020000	#11-394    
D2.RST	= 000100	#11-398     142-5880  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 8

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

D3RST 	  004306 R	 142-5873  #142-5881  
D3.CDD	= 000020	#11-422    
D3.MBZ	= 177704	#11-431     94-4069   
D3.NPE	= 000002	#11-427    
D3.PAR	= 040000	#11-414    
D3.RST	= 000001	#11-433     142-5882  
D3.SCD	= 000040	#11-420    
D3.SSL	= 100000	#11-413    
D3.TXB	= 000001	#11-429     11-433    
D3.UPE	= 000020	#11-421    
D3.URE	= 000004	#11-426    
D3.WEP	= 000010	#11-423    
EBCECT	  003722 R	 97-4155   #97-4159   
EBPEPE	  000424 R	 56-2410   #56-2413   
EBSEL 	= 000100	#87-3821   
EBSMSG	  001013 RG	 178-7116  #178-7116   178-7116  
EBUSPC	= 000020	#87-3821   
EBUSPS	= 000004	#87-3821   
ECTERM	  001141 R	#181-7249   181-7249  
EDEPT 	  002125 R	 218-8424  #218-8431  
EDEXV 	  002131 R	 218-8425  #218-8433  
EDONES	= 040000	#87-3821   
EDPHY 	  002145 R	 218-8428  #218-8439  
EDTYTB	  007154 R	 217-8410  #218-8423  
EDUPT 	  002135 R	 218-8426  #218-8435  
EDUSV 	  002141 R	 218-8427  #218-8437  
ED.EPT	= 000000	#9-324     
ED.EXV	= 000040	#9-325     
ED.PHY	= 000200	#9-328      102-4328   102-4346  
ED.UPT	= 000100	#9-326     
ED.USV	= 000140	#9-327     
EF.CRI	= ******  GX	 141-5823  
ELBBIN	  007240 RG	 244-9513  #248-9674  
ELBOCT	  007244 RG	 244-9517  #248-9677  
ELEMSG	  000756 RG	 176-7070  #176-7070   176-7070   178-7135   178-7135   184-7369   184-7369  
ELNBIN	  007232 RG	 243-9474  #248-9670  
ELNNOR	  013200 R	 223-8681   223-8683   223-8688   223-8690  #223-8693  
ELNOCT	  007250 RG	 243-9478  #248-9682  
EMFERM	  001172 R	#181-7250   181-7250  
ENBMSG	  001526 RG	 187-7410  #187-7410   187-7410  
ENTCRE	  000070 R	 72-3169   #72-3186   
ENTDEL	  000144 R	 72-3178   #72-3192   
ENTENA	  000114 R	 72-3173   #72-3189   
ENTER 	= 000077	#25-971    
ENTFEN	  001730 R	 72-3170    72-3172   #72-3180   
EOCERM	  001231 R	#181-7251   181-7251  
EOFMSG	  000335 R	 77-3446   #77-3455   
EPEERM	  001267 R	#181-7252   181-7252  
EPTR  	= 000000	#87-3821   
EQV   	= 000444	#25-973    
EQVB  	= 000447	#25-974    
EQVI  	= 000445	#25-975    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 9

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

EQVM  	= 000446	#25-976    
ERRMSG	  001352 RG	 182-7327  #182-7327   182-7327  
ERR10C	= 010000	#87-3821   
ERR10S	= 020000	#87-3821   
ERR11C	= 000001	#87-3821   
ERR11S	= 000002	#87-3821   
ERSMSG	  000107 R	 62-2655   #63-2665   
ESDERM	  001317 R	#181-7253   181-7253  
ESEERM	  001354 R	#181-7254   181-7254  
ETRMSG	  002151 R	 216-8372  #218-8441  
EXAMSG	  000435 RG	 174-6990  #174-6990   174-6990  
EXCH  	= 000250	#25-978    
EXDDMF	  004134 R	 101-4292  #101-4304  
EXDEMF	  004142 R	 101-4286  #101-4307  
EXDESD	  004104 R	 101-4291  #101-4296  
EXDESE	  004120 R	 101-4285  #101-4300  
EXDTEN	= 000334 RG	#102-4347  
EXECTO	  004354 R	 104-4417  #104-4437  
EXRTBL	= 000012  G	#178-7124  
EXTEND	= 000123	#25-979    
EXTEXT	  000214 R	 74-3274   #74-3296   
EXTFEF	  002036 R	 74-3275    74-3277   #74-3282   
EXTMSG	  001425 RG	 183-7350  #183-7350   183-7350  
E.FCID	= 000002	#21-802     160-6565   222-8648   258-10060 
E.FCOD	= 000003	#21-803     258-10042  258-10065 
E.FCTC	= ******  GX	 50-2203   
E.FFIL	= 000006	#21-806     70-3076    71-3139    72-3187    72-3190    72-3193    73-3237    74-3297    75-3350   
                         80-3558    85-3767   
E.FHTO	= 000001	#21-801     91-3955    149-6098  
E.FKLN	= 000004	#21-804    
E.FLOD	= 000005	#21-805     258-10051 
FAD   	= 000140	#25-981    
FADB  	= 000143	#25-982    
FADL  	= 000141	#25-983    
FADM  	= 000142	#25-984    
FADR  	= 000144	#25-986    
FADRB 	= 000147	#25-987    
FADRI 	= 000145	#25-988    
FADRM 	= 000146	#25-989    
FCFERM	  001411 R	#181-7256   181-7256  
FDV   	= 000170	#25-991    
FDVB  	= 000173	#25-992    
FDVL  	= 000171	#25-993    
FDVM  	= 000172	#25-994    
FDVR  	= 000174	#25-996    
FDVRB 	= 000177	#25-997    
FDVRI 	= 000175	#25-998    
FDVRM 	= 000176	#25-999    
FEBMSG	  001224 RG	 180-7193  #180-7193   180-7193  
FEFERM	  001442 R	#181-7257   181-7257  
FENERM	  001474 R	#181-7258   181-7258  
FERMSG	  001067 RG	 178-7137  #178-7137   178-7137  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 10

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FIX   	= 000122	#25-1001   
FIXR  	= 000126	#25-1002   
FLDMSG	  000050 R	 60-2576   #60-2583   
FLFERM	  001525 R	#181-7259   181-7259  
FLGMSG	  001072 RG	 178-7139  #178-7139   178-7139  
FLTMSG	  001613 RG	 188-7431  #188-7431   188-7431   191-7502   191-7502  
FLTR  	= 000127	#25-1004   
FMMSG 	  001020 RG	 62-2658    178-7118  #178-7118   178-7118   187-7412   187-7412  
FMP   	= 000160	#25-1006   
FMPB  	= 000163	#25-1007   
FMPL  	= 000161	#25-1008   
FMPM  	= 000162	#25-1009   
FMPR  	= 000164	#25-1011   
FMPRB 	= 000167	#25-1012   
FMPRI 	= 000165	#25-1013   
FMPRM 	= 000166	#25-1014   
FNDALN	  000000 R	 70-3049   #70-3070    70-3073   
FNDALU	= 000002 R	*70-3048   #70-3073   
FNDCAL	  001550 R	 70-3050   #70-3062   
FNDDNF	  001556 R	 70-3054    70-3056   #70-3064   
FNDFNA	  000010 R	 70-3053   #70-3075    70-3078    70-3079   
FNDFNB	= 000036 R	*70-3052   #70-3079   
FNDLUN	= 000014 R	*70-3051   #70-3078   
FOFERM	  001557 R	#181-7260   181-7260  
FORPRO	= 000020	#87-3821   
FRDERM	  001607 R	#181-7261   181-7261  
FRDFRF	  004436 R	 106-4475  #106-4492  
FRDMSG	  000445 RG	 174-6992  #174-6992   174-6992  
FRDTEN	= 000346 RG	#106-4514  
FRFERM	  004000 R	#189-7468   189-7468  
FR.ADX	= 000254	#18-724    
FR.APR	= 000220	#18-702    
FR.ARX	= 000252	#18-722    
FR.BRX	= 000250	#18-720    
FR.CA1	= 000312	#19-754     19-755    
FR.CA2	= 000310	#19-751     19-752    
FR.CL1	= 000316	#19-761    
FR.CL2	= 000314	#19-758    
FR.CRD	= 000302	#19-745     132-5470  
FR.CR1	= 000316	#19-760     19-761    
FR.CR2	= 000314	#19-757     19-758    
FR.CR3	= 000312	#19-755    
FR.CR4	= 000310	#19-752     134-5547  
FR.DA1	= 000260	#18-730    
FR.DA2	= 000262	#18-733    
FR.EBS	= 000356	#20-788    
FR.FE1	= 000266	#18-737    
FR.FE2	= 000264	#18-735    
FR.PI0	= 000200	#18-691    
FR.PI1	= 000202	#18-693    
FR.RAD	= 000256	#18-726    
FR.RAR	= 000240	#18-712    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 11

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FR.RBR	= 000242	#18-714    
FR.RFM	= 000246	#18-718     137-5681  
FR.RMQ	= 000244	#18-716    
FR.SC1	= 000262	#18-732    
FR.SC2	= 000260	#18-729    
FR.SR1	= 000306	#19-749    
FR.SR2	= 000304	#19-747    
FR.VM0	= 000320	#19-764    
FR.VM1	= 000322	#19-766    
FR.VM2	= 000324	#19-768    
FR.VM3	= 000326	#19-770    
FR.VM4	= 000330	#19-772    
FR.VM5	= 000332	#19-774    
FR.VM6	= 000334	#19-776    
FR.VM7	= 000336	#19-778    
FR.100	= 000200	#18-690     18-691    
FR.101	= 000202	#18-692     18-693    
FR.102	= 000204	#18-694     139-5747  
FR.103	= 000206	#18-695    
FR.104	= 000210	#18-696     97-4145    131-5410  
FR.105	= 000212	#18-697     131-5411  
FR.106	= 000214	#18-698     131-5412  
FR.107	= 000216	#18-699     131-5413  
FR.110	= 000220	#18-701     18-702    
FR.111	= 000222	#18-703    
FR.112	= 000224	#18-704    
FR.113	= 000226	#18-705    
FR.114	= 000230	#18-706     136-5637   138-5710  
FR.115	= 000232	#18-707    
FR.116	= 000234	#18-708    
FR.117	= 000236	#18-709    
FR.120	= 000240	#18-711     18-712    
FR.121	= 000242	#18-713     18-714    
FR.122	= 000244	#18-715     18-716    
FR.123	= 000246	#18-717     18-718    
FR.124	= 000250	#18-719     18-720    
FR.125	= 000252	#18-721     18-722    
FR.126	= 000254	#18-723     18-724    
FR.127	= 000256	#18-725     18-726    
FR.130	= 000260	#18-728     18-729     18-730    
FR.131	= 000262	#18-731     18-732     18-733    
FR.132	= 000264	#18-734     18-735    
FR.133	= 000266	#18-736     18-737    
FR.134	= 000270	#18-738    
FR.135	= 000272	#18-739    
FR.136	= 000274	#18-740    
FR.137	= 000276	#18-741    
FR.140	= 000300	#19-743    
FR.141	= 000302	#19-744     19-745    
FR.142	= 000304	#19-746     19-747    
FR.143	= 000306	#19-748     19-749    
FR.144	= 000310	#19-750     19-751    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 12

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FR.145	= 000312	#19-753     19-754    
FR.146	= 000314	#19-756     19-757    
FR.147	= 000316	#19-759     19-760    
FR.150	= 000320	#19-763     19-764    
FR.151	= 000322	#19-765     19-766    
FR.152	= 000324	#19-767     19-768    
FR.153	= 000326	#19-769     19-770    
FR.154	= 000330	#19-771     19-772    
FR.155	= 000332	#19-773     19-774    
FR.156	= 000334	#19-775     19-776    
FR.157	= 000336	#19-777     19-778    
FR.160	= 000340	#20-780    
FR.161	= 000342	#20-781    
FR.162	= 000344	#20-782     128-5297  
FR.163	= 000346	#20-783    
FR.164	= 000350	#20-784    
FR.165	= 000352	#20-785    
FR.166	= 000354	#20-786    
FR.167	= 000356	#20-787     20-788    
FR.170	= 000360	#20-790    
FR.171	= 000362	#20-791    
FR.172	= 000364	#20-792    
FR.173	= 000366	#20-793    
FR.174	= 000370	#20-794    
FR.175	= 000372	#20-795    
FR.176	= 000374	#20-796    
FR.177	= 000376	#20-797    
FSB   	= 000150	#25-1016   
FSBB  	= 000153	#25-1017   
FSBL  	= 000151	#25-1018   
FSBM  	= 000152	#25-1019   
FSBR  	= 000154	#26-1021   
FSBRB 	= 000157	#26-1022   
FSBRI 	= 000155	#26-1023   
FSBRM 	= 000156	#26-1024   
FSC   	= 000132	#26-1026   
FSSMSG	  001535 RG	 62-2659    187-7414  #187-7414   187-7414   188-7433   188-7433  
FSWERM	  001637 R	#181-7262   181-7262  
FTBYTE	= 000000	#2-65      
FTCRAM	= 000000	#2-66      
FTDEBU	= 000001	#2-67       35-1493    68-2865    160-6546  
FTDISP	= 000000	#2-68      
FTDRAM	= 000000	#2-69       35-1501    181-7236  
FTHELP	= 000000	#2-70       174-7000  
FTKLE 	= 000001	#2-77       159-6513   163-6642   174-7028   221-8560  
FTKLER	= 000000	#2-71      
FTKLI 	= ******	 69-2926    69-2937    74-3287    77-3402   
FTLCMN	= 000001  G	 1-1        33-1408   #260-10070 
FTLCVT	= 000000	#2-72       42-1864    222-8616  
FTLIST	= 000001	#2-73      
FTTRAK	= 000001	#2-74       13-489     35-1578    94-4046    99-4222    106-4485   108-4580   111-4682   188-7455  
                         191-7524   211-8191   213-8285   216-8366  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 13

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FTTRP4	= 000001	#2-75      
FTUCVR	= 000130	#2-76      
FT1105	= 000001	#2-64      #2-101     
FT1110	= 000001	#2-63      #2-97       2-100     
FT1115	= 000001	#2-62      #2-93       2-96      
FT1120	= 000001	#2-61      #2-89       2-92      
FT1135	= 000001	#2-60      #2-85       2-88      
FT1140	= 000001	#2-59       2-84       3-110     
FT1145	= 000000	#2-58       2-80      
FULMSG	  001456 RG	 183-7356  #183-7356   183-7356  
FWDTEN	= 000360 RG	#108-4611  
FWFERM	  004025 R	#189-7469   189-7469  
FWRFWF	  004560 R	 108-4571  #108-4589  
FWRMSG	  000453 RG	 174-6994  #174-6994   174-6994  
FWTERM	  001664 R	#181-7263   181-7263  
FW.APE	= 000116	#16-627    
FW.CA1	= 000122	#16-643     126-5239   134-5561   141-5834   155-6367  
FW.CA2	= 000124	#16-645     126-5232   134-5563   141-5833   155-6369  
FW.CDR	= 000112	#15-599    
FW.CHN	= 000160	#17-675     128-5292  
FW.CRD	= 000126	#16-647     155-6364  
FW.CR1	= 000136	#16-655    
FW.CR2	= 000134	#16-653    
FW.CR3	= 000132	#16-651    
FW.CR4	= 000130	#16-649     155-6347  
FW.CSR	= 000110	#15-575     124-5165  
FW.DJE	= 000146	#17-664    
FW.DJO	= 000150	#17-666    
FW.DR1	= 000140	#17-658    
FW.DR2	= 000142	#17-660    
FW.DR3	= 000144	#17-662    
FW.EBL	= 000174	#17-683     141-5836  
FW.IAC	= 000154	#17-670    
FW.IOJ	= 000152	#17-668    
FW.IPE	= 000114	#16-614     124-5171  
FW.KLO	= 000156	#17-672     141-5835  
FW.LAR	= 000176	#17-686     116-4911   120-5058   154-6279  
FW.LBL	= 000106	#15-573     122-5105   141-5832  
FW.LBR	= 000104	#15-571     122-5096   141-5831  
FW.MBX	= 000162	#17-677     141-5839  
FW.SBR	= 000174	#17-684    
FW.040	= 000100	#15-568    
FW.041	= 000102	#15-569    
FW.042	= 000104	#15-570     15-571    
FW.043	= 000106	#15-572     15-573    
FW.044	= 000110	#15-574     15-575     108-4574  
FW.045	= 000112	#15-598     15-599    
FW.046	= 000114	#16-613     16-614    
FW.047	= 000116	#16-626     16-627     108-4576  
FW.050	= 000120	#16-641    
FW.051	= 000122	#16-642     16-643    
FW.052	= 000124	#16-644     16-645    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 14

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FW.053	= 000126	#16-646     16-647    
FW.054	= 000130	#16-648     16-649    
FW.055	= 000132	#16-650     16-651    
FW.056	= 000134	#16-652     16-653    
FW.057	= 000136	#16-654     16-655    
FW.060	= 000140	#17-657     17-658    
FW.061	= 000142	#17-659     17-660    
FW.062	= 000144	#17-661     17-662    
FW.063	= 000146	#17-663     17-664    
FW.064	= 000150	#17-665     17-666    
FW.065	= 000152	#17-667     17-668    
FW.066	= 000154	#17-669     17-670    
FW.067	= 000156	#17-671     17-672    
FW.070	= 000160	#17-674     17-675    
FW.071	= 000162	#17-676     17-677    
FW.072	= 000164	#17-678    
FW.073	= 000166	#17-679    
FW.074	= 000170	#17-680    
FW.075	= 000172	#17-681    
FW.076	= 000174	#17-682     17-683     17-684    
FW.077	= 000176	#17-685     17-686    
FXCFXF	  004730 R	 110-4647  #111-4690  
FXCMSG	  000462 RG	 174-6996  #174-6996   174-6996  
FXDTEN	= 000372 RG	#111-4713  
FXFERM	  004053 R	#189-7470   189-7470  
FX.BMC	= 000012	#14-528     88-3856   
FX.CMR	= 000014	#14-530     128-5309  
FX.CON	= 000024	#14-539     113-4766   119-5000   120-5060  
FX.CRF	= 000020	#14-535     90-3930    110-4673  
FX.CSP	= 000000	#14-518    
FX.CST	= 000002	#14-520     110-4650   147-6038  
FX.EBC	= 000006	#14-524     134-5543  
FX.MBC	= 000004	#14-522     97-4143    128-5304  
FX.SMR	= 000016	#14-532     110-4652   127-5278  
FX.SRF	= 000022	#14-537     110-4667   150-6131  
FX.SYC	= 000010	#14-526     153-6236  
FX.UDR	= 000032	#14-544    
FX.UIR	= 000030	#14-542    
FX.000	= 000000	#14-517     14-518    
FX.001	= 000002	#14-519     14-520    
FX.002	= 000004	#14-521     14-522    
FX.003	= 000006	#14-523     14-524    
FX.004	= 000010	#14-525     14-526    
FX.005	= 000012	#14-527     14-528    
FX.006	= 000014	#14-529     14-530    
FX.007	= 000016	#14-531     14-532    
FX.010	= 000020	#14-534     14-535    
FX.011	= 000022	#14-536     14-537    
FX.012	= 000024	#14-538     14-539    
FX.013	= 000026	#14-540    
FX.014	= 000030	#14-541     14-542    
FX.015	= 000032	#14-543     14-544    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 15

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FX.016	= 000034	#14-545    
FX.017	= 000036	#14-546    
FX.020	= 000040	#14-548    
FX.021	= 000042	#14-549    
FX.022	= 000044	#14-550    
FX.023	= 000046	#14-551    
FX.024	= 000050	#14-552    
FX.025	= 000052	#14-553    
FX.026	= 000054	#14-554    
FX.027	= 000056	#14-555    
FX.030	= 000060	#14-557    
FX.031	= 000062	#14-558    
FX.032	= 000064	#14-559    
FX.033	= 000066	#14-560    
FX.034	= 000070	#14-561    
FX.035	= 000072	#14-562    
FX.036	= 000074	#14-563    
FX.037	= 000076	#14-564    
GETSTS	= 000062	#26-1028   
GTFILC	  014250 R	 234-9141  #234-9152  
GTKKLA	  013260 R	 225-8753   225-8755  #225-8757  
GTLCBO	  013114 R	 222-8605  #222-8637  
GTLILC	  013122 R	 221-8593   222-8619  #222-8640  
GTNILI	  013664 R	 228-8883   228-8897   228-8915  #228-8919  
GTNMRA	  014512 R	 237-9252  #237-9254  
GTNNER	  013472 R	 226-8791   226-8801  #227-8842   228-8899  
GTNNOR	  014520 R	 223-8694   227-8840   236-9232   236-9238  #237-9257  
GTNORE	  013466 R	 226-8805   226-8807  #227-8839   228-8902   228-8904  
HARMSG	  001744 RG	 191-7504  #191-7504   191-7504  
HIBYTE	= 177400	#87-3821   
HLFMSG	  001463 RG	 183-7358  #183-7358   183-7358  
HLL   	= 000500	#26-1030   
HLLE  	= 000530	#26-1031   
HLLEI 	= 000531	#26-1032   
HLLEM 	= 000532	#26-1033   
HLLES 	= 000533	#26-1034   
HLLI  	= 000501	#26-1036   
HLLM  	= 000502	#26-1037   
HLLO  	= 000520	#26-1039   
HLLOI 	= 000521	#26-1040   
HLLOM 	= 000522	#26-1041   
HLLOS 	= 000523	#26-1042   
HLLS  	= 000503	#26-1044   
HLLZ  	= 000510	#26-1046   
HLLZI 	= 000511	#26-1047   
HLLZM 	= 000512	#26-1048   
HLLZS 	= 000513	#26-1049   
HLR   	= 000544	#26-1051   
HLRE  	= 000574	#26-1053   
HLREI 	= 000575	#26-1054   
HLREM 	= 000576	#26-1055   
HLRES 	= 000577	#26-1056   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 16

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

HLRO  	= 000564	#26-1058   
HLROI 	= 000565	#26-1059   
HLROM 	= 000566	#26-1060   
HLROS 	= 000567	#26-1061   
HLRS  	= 000547	#26-1063   
HLRZ  	= 000554	#26-1065   
HLRZI 	= 000555	#26-1066   
HLRZM 	= 000556	#26-1067   
HLRZS 	= 000557	#26-1068   
HLTMSG	  000467 RG	 174-6998  #174-6998   174-6998  
HRL   	= 000504	#27-1070   
HRLE  	= 000534	#27-1072   
HRLEI 	= 000535	#27-1073   
HRLEM 	= 000536	#27-1074   
HRLES 	= 000537	#27-1075   
HRLI  	= 000505	#27-1077   
HRLM  	= 000506	#27-1078   
HRLO  	= 000564	#27-1080   
HRLOI 	= 000565	#27-1081   
HRLOM 	= 000566	#27-1082   
HRLOS 	= 000567	#27-1083   
HRLS  	= 000507	#27-1085   
HRLZ  	= 000514	#27-1087   
HRLZI 	= 000515	#27-1088   
HRLZM 	= 000516	#27-1089   
HRLZS 	= 000517	#27-1090   
HRR   	= 000540	#27-1092   
HRRE  	= 000570	#27-1094   
HRREI 	= 000571	#27-1095   
HRREM 	= 000572	#27-1096   
HRRES 	= 000573	#27-1097   
HRRI  	= 000541	#27-1099   
HRRM  	= 000542	#27-1100   
HRRO  	= 000560	#27-1102   
HRROI 	= 000561	#27-1103   
HRROM 	= 000562	#27-1104   
HRROS 	= 000563	#27-1105   
HRRS  	= 000543	#27-1107   
HRRZ  	= 000550	#27-1109   
HRRZI 	= 000551	#27-1110   
HRRZM 	= 000552	#27-1111   
HRRZS 	= 000553	#27-1112   
IBP   	= 000133	#28-1114   
IDFERM	  001715 R	#181-7265   181-7265  
IDIV  	= 000230	#28-1116   
IDIVB 	= 000233	#28-1117   
IDIVI 	= 000231	#28-1118   
IDIVM 	= 000232	#28-1119   
IDPB  	= 000136	#28-1121   
IE.EBX	= ******  GX	 100-4267  
IE.EOF	= ******  GX	 85-3776   
IE.NSF	= ******  GX	 71-3125   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 17

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

IFCERM	  001747 R	#181-7266   181-7266  
IFLOP 	= 100000	#87-3821   
ILCERM	  004103 R	#189-7472   189-7472  
ILDB  	= 000134	#28-1123   
ILIERM	  002003 R	#181-7267   181-7267  
ILSERM	  004135 R	#189-7473   189-7473  
IMUL  	= 000220	#28-1125   
IMULB 	= 000223	#28-1126   
IMULI 	= 000221	#28-1127   
IMULM 	= 000222	#28-1128   
IN    	= 000056	#28-1130   
INBUF 	= 000064	#28-1131   
INCMSG	  000716 RG	 175-7055  #175-7055   175-7055   176-7076   176-7076   177-7091   177-7091   178-7159   178-7159  
                         188-7435   188-7435   191-7506   191-7506  
INDLUN	= 000005	#21-822     77-3444    80-3558    80-3570    160-6555  
INIMSG	  000474 RG	 174-7004  #174-7004   174-7004   182-7329   182-7329  
INIT  	= 000041	#28-1132   
INPUT 	= 000066	#28-1133   
INTMSG	  001436 RG	 183-7352  #183-7352   183-7352  
INTROF	= 000010	#87-3821   
INTRON	= 000040	#87-3821   
INTSON	= 000001	#87-3821   
INT10S	= 000400	#87-3821   
INT11C	= 002000	#87-3821   
INT11S	= 004000	#87-3821   
IOCERM	  002035 R	#181-7268   181-7268  
IOMSG 	  001360 RG	 182-7331  #182-7331   182-7331  
IOR   	= 000434	#28-1135    29-1203   
IORB  	= 000437	#28-1136    29-1204   
IORI  	= 000435	#28-1137    30-1221   
IORM  	= 000436	#28-1138    30-1222   
IOTAB 	  007166 R	 228-8881   228-8889  #228-8925  
IO.ATT	= ******  GX	 258-10060 
IO.CRE	= ******  GX	 72-3187   
IO.DAC	= ******  GX	 75-3330   
IO.DEL	= ******  GX	 72-3193    75-3326   
IO.DET	= ******  GX	 160-6565   258-10065 
IO.ENA	= ******  GX	 72-3190   
IO.EXT	= ******  GX	 74-3297   
IO.FNA	= ******  GX	 70-3076    71-3115   
IO.RLB	= ******  GX	 222-8648  
IO.RNA	= ******  GX	 71-3112   
IO.RVB	= ******  GX	 80-3558   
IO.WLB	= ******  GX	 258-10042  258-10051 
IO.WVB	= ******  GX	 85-3767   
IPCERM	  004201 R	#189-7474   189-7474  
IP.ALL	= 000017	#16-624    
IP.CRP	= 000004	#16-620     16-623     131-5424  
IP.DRP	= 000002	#16-621     16-623     131-5431  
IP.FMP	= 000010	#16-619     16-623     131-5417  
IP.FSS	= 000001	#16-622     16-624     131-5439  
IP.NRM	= 000016	#16-623     16-624     16-639    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 18

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

IRCERM	  002065 R	#181-7269   181-7269  
IREERM	  002120 R	#181-7270   181-7270  
IS.SET	= ******  GX	 50-2204   
ITFERM	  002150 R	#181-7271   181-7271  
ITNERM	  002202 R	#181-7272   181-7272  
JANMSG	  001214 RG	 180-7191  #180-7191   180-7191  
JFCL  	= 000255	#28-1140   
JFFO  	= 000243	#28-1142   
JMPMSG	  000507 RG	 174-7006  #174-7006   174-7006  
JRA   	= 000267	#28-1144   
JRST  	= 000254	#28-1146   
JSA   	= 000266	#28-1148   
JSP   	= 000265	#28-1150   
JSR   	= 000264	#28-1152   
JSYS  	= 000104	#28-1154   
JULMSG	  001262 RG	 180-7203  #180-7203   180-7203  
JUMP  	= 000320	#28-1156   
JUMPA 	= 000324	#28-1157   
JUMPE 	= 000322	#28-1158   
JUMPG 	= 000327	#28-1159   
JUMPGE	= 000325	#28-1160   
JUMPL 	= 000321	#28-1161   
JUMPLE	= 000323	#28-1162   
JUMPN 	= 000326	#28-1163   
JUNMSG	  001255 RG	 180-7201  #180-7201   180-7201  
KCNERM	  002232 R	#181-7274   181-7274  
KF.BRM	= 001000	#13-481     119-4994  
KF.CES	= 000100	#13-484     47-2099    128-5311  
KF.CLK	= 100000	#13-475     47-2097    54-2340    101-4297   101-4301   103-4376   104-4421   104-4427   108-4578  
                         110-4649   113-4768   113-4774   117-4941   119-4997   119-5012   119-5014   163-6654  
KF.CON	= 000200	#13-483     13-485     47-2097    113-4776   128-5311  
KF.DEF	= 000200	#13-485    
KF.KLO	= 000400	#13-482    
KF.MRS	= 020000	#13-477     127-5280   128-5311  
KF.RUN	= 040000	#13-476     47-2097    54-2340    103-4376   104-4421   104-4431   110-4666   113-4774   119-4997  
                         119-5008   119-5017   146-6004   148-6066   163-6656  
KF.SIM	= 010000	#13-478     113-4762   119-4994  
KF.SMC	= 004000	#13-479    
KF.SPM	= 002000	#13-480     113-4760   119-4994  
KLABIN	  007226 RG	 245-9562  #248-9667  
KLAERM	  002260 R	#181-7275   181-7275  
KLAOCT	  007252 RG	 245-9566  #248-9684  
KLEPRM	  000034 RG	#39-1723    163-6643  
KLHCFH	  005156 R	#115-4868  
KLIMSG	  001632 RG	 188-7437  #188-7437   188-7437   191-7508   191-7508  
KLIOT 	= 000700	#28-1165   
KLMSG 	  001100 RG	 178-7141  #178-7141   178-7141  
KLNBIN	  007216 RG	 246-9601  #248-9662  
KLNOCT	  007246 RG	 246-9605  #248-9680  
KLPWRF	= 000010	#87-3821   
KLRERM	  002307 R	#181-7276   181-7276  
KLSCFH	  005266 R	 117-4959  #117-4962  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 19

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

KNCERM	  002351 R	#181-7277   181-7277  
KWEERM	  002405 R	#181-7278   181-7278  
LDB   	= 000135	#29-1167   
LG.ALL	= 000007	#22-866     174-6988   178-7122   178-7141   179-7172   179-7172   179-7174   179-7176   179-7181  
                         179-7183   180-7191   180-7193   180-7195   180-7197   180-7199   180-7201   180-7203   180-7205  
                         180-7207   180-7209   180-7211   180-7213   188-7437   191-7500   191-7502   191-7508  
LG.ARG	= 000010	#22-859    
LG.MAR	= 000020	#22-860    
LG.MNT	= 000004	#22-858     22-866     54-2337    174-6992   174-6994   174-6996   174-7010   174-7029   174-7034  
                         174-7038   183-7342   183-7344   183-7346   183-7348   183-7350   183-7352   183-7354   183-7356  
                         183-7358   183-7360   183-7362   187-7402   187-7404   187-7406   187-7408   187-7410   187-7412  
                         187-7414   188-7421   188-7425   188-7433   188-7447   188-7453   191-7492   191-7522  
LG.MOD	= 000040	#22-861    
LG.NUL	= 000000	#22-855    
LG.OPR	= 000001	#22-856     22-865     174-6978   174-6980   174-6982   174-6990   174-7006   174-7008   174-7012  
                         174-7014   174-7016   174-7020   174-7022   174-7024   174-7026   174-7036   174-7040   174-7042  
                         175-7053   175-7055   175-7057   175-7059   175-7061   176-7074   176-7076   176-7078   176-7080  
                         176-7082   177-7089   177-7091   177-7093   177-7095   177-7097   178-7135   178-7147   178-7157  
                         178-7159   178-7161   178-7163   178-7165   179-7174   184-7369   184-7371   185-7378   185-7380  
                         185-7382   185-7384   186-7391   186-7393   186-7395   188-7423   188-7427   188-7435   188-7439  
                         188-7441   188-7445   188-7451   191-7494   191-7498   191-7504   191-7506   191-7510   191-7514  
                         191-7520   191-7528  
LG.PRG	= 000002	#22-857     22-865     54-2330    174-6984   174-6986   174-6998   174-7004   174-7018   174-7032  
                         174-7044   174-7046   176-7068   176-7070   176-7072   178-7104   178-7106   178-7108   178-7110  
                         178-7112   178-7114   178-7116   178-7118   178-7120   178-7125   178-7127   178-7129   178-7131  
                         178-7133   178-7137   178-7139   178-7143   178-7145   178-7149   178-7151   178-7153   178-7155  
                         182-7321   182-7323   182-7325   182-7327   182-7329   182-7331   182-7333   182-7335   188-7429  
                         188-7431   188-7443   188-7449   188-7453   188-7456   190-7483   190-7485   191-7496   191-7512  
                         191-7516   191-7518   191-7522   191-7525  
LG.PRM	= 000003	#22-865     22-866     179-7176  
LG.RNG	= 000100	#22-862    
LG.RPT	= 000400	#22-864     159-6497   174-6978   174-6982   174-6984   174-6986   174-6990   174-6992   174-6994  
                         174-6996   174-6998   174-7004   174-7016   174-7018   174-7022   174-7032   174-7034   174-7044  
                         175-7053   175-7055   175-7057   175-7059   175-7061   176-7068   176-7070   176-7072   176-7074  
                         176-7076   176-7078   176-7080   176-7082   177-7089   177-7091   177-7093   177-7095   177-7097  
                         178-7104   178-7106   178-7108   178-7110   178-7112   178-7114   178-7116   178-7118   178-7120  
                         178-7122   178-7125   178-7127   178-7129   178-7131   178-7133   178-7135   178-7137   178-7139  
                         178-7141   178-7143   178-7145   178-7147   178-7149   178-7151   178-7153   178-7155   178-7157  
                         178-7159   178-7161   178-7163   178-7165   182-7321   182-7323   182-7325   182-7327   182-7329  
                         182-7331   182-7333   182-7335   183-7342   183-7344   183-7346   183-7348   183-7350   183-7352  
                         183-7354   183-7356   183-7358   183-7360   183-7362   188-7425   188-7433   188-7441   188-7447  
                         190-7483   190-7485   191-7496   191-7500   191-7516  
LG.STR	= 000200	#22-863    
LOAD11	= 000004	#87-3821   
LOGLUN	= 000004	#21-821     72-3187    72-3190    72-3193    74-3286    74-3297    85-3767    160-6563  
LOGMSG	  001505 RG	 186-7391  #186-7391   186-7391  
LOKFLF	  001656 R	 71-3121    71-3126   #71-3132   
LOKFNA	  000040 R	 71-3120   #71-3138    71-3141    71-3142    71-3143   
LOKFNB	= 000066 R	*71-3119   #71-3143   
LOKIOF	= 000042 R	*71-3112   *71-3115   #71-3141   
LOKLUN	= 000044 R	*71-3118   #71-3142   
LOOKUP	= 000076	#29-1169   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 20

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

LPTMSG	  001511 RG	 186-7393  #186-7393   186-7393  
LSH   	= 000242	#29-1171   
LSHC  	= 000246	#29-1172   
LSTLUN	= 000003	#21-820     258-10051 
MAP   	= 000257	#29-1174   
MARMSG	  001235 RG	 180-7195  #180-7195   180-7195  
MAYMSG	  001251 RG	 180-7199  #180-7199   180-7199  
MBZTAB	  004160 R	 93-4012   #94-4065   
MCRMSG	  000535 RG	 174-7012  #174-7012   174-7012  
MEMMSG	  001641 RG	 188-7439  #188-7439   188-7439   191-7510   191-7510  
MGNMSG	  001447 RG	 183-7354  #183-7354   183-7354  
MMSG  	  000514 RG	 174-7008  #174-7008   174-7008  
MNTMSG	  001140 RG	 179-7172  #179-7172   179-7172   185-7378   185-7378  
MOVE  	= 000200	#29-1176   
MOVEI 	= 000201	#29-1177   
MOVEM 	= 000202	#29-1178   
MOVES 	= 000203	#29-1179   
MOVM  	= 000214	#29-1181   
MOVMI 	= 000215	#29-1182   
MOVMM 	= 000216	#29-1183   
MOVMS 	= 000217	#29-1184   
MOVN  	= 000210	#29-1186   
MOVNI 	= 000211	#29-1187   
MOVNM 	= 000212	#29-1188   
MOVNS 	= 000213	#29-1189   
MOVS  	= 000204	#29-1191   
MOVSI 	= 000205	#29-1192   
MOVSM 	= 000206	#29-1193   
MOVSS 	= 000207	#29-1194   
MPE11 	= 001000	#87-3821   
MQMSG 	  001023 RG	 178-7120  #178-7120   178-7120  
MRAERM	  002437 R	#181-7280   181-7280  
MRHERM	  002477 R	#181-7281   181-7281  
MRKMSG	  000516 RG	 174-7010  #174-7010   174-7010  
MUL   	= 000224	#29-1196   
MULB  	= 000227	#29-1197   
MULI  	= 000225	#29-1198   
MULM  	= 000226	#29-1199   
M.KTAE	= 000010	#91-3955   
M.KTEF	= 000002	#91-3955   
M.KTMG	= 000004	#91-3955   
M.KTUN	= 000006	#91-3955   
M.PARQ	= ******  GX	 160-6567  
NDIERM	  002543 R	#181-7283   181-7283  
NEBMSG	  000122 R	 62-2645   #63-2667   
NERERM	  002573 R	#181-7284   181-7284  
NORERM	  002635 R	#181-7285   181-7285  
NOTMSG	  001650 RG	 188-7441  #188-7441   188-7441  
NOVMSG	  001320 RG	 180-7211  #180-7211   180-7211  
NPIERM	  002675 R	#181-7286   181-7286  
NRMMSG	  001367 RG	 183-7342  #183-7342   183-7342  
NSFERM	  002731 R	#181-7287   181-7287  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 21

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

NSKERM	  004244 R	#189-7476   189-7476  
NSTERM	  002754 R	#181-7288   181-7288  
NTIERM	  002777 R	#181-7289   181-7289  
NULMSG	  000364 RG	 174-6978  #174-6978   174-6978  
NULSTP	= 000040	#87-3821   
NUPE  	= 000002	#87-3821   
NXTMSG	  000730 RG	 175-7057  #175-7057   175-7057   176-7078   176-7078   177-7093   177-7093   178-7161   178-7161  
OAIERM	  003027 R	#181-7291   181-7291  
OCTMSG	  001310 RG	 180-7209  #180-7209   180-7209  
OFCERM	  003061 R	#181-7292   181-7292  
OFFMSG	  000044 RG	#39-1727   
OFSMSG	  001654 RG	 188-7443  #188-7443   188-7443   191-7512   191-7512  
ONMSG 	  000041 RG	#39-1725   
OPEACC	  000160 R	 73-3226   #73-3236    73-3239    73-3240    73-3241   
OPEATT	= 000210 R	*73-3224   *73-3225   #73-3248   
OPEFID	= 000174 R	*73-3223   #73-3241   
OPEFOF	  001776 R	 73-3227   #73-3230   
OPEFUN	= 000162 R	*73-3221   #73-3239   
OPELUN	= 000164 R	*73-3222   #73-3240   
OPEN  	= 000050	#29-1201   
OPERAT	  000206 R	 73-3237   #73-3243    73-3248   
OPRMSG	  001154 RG	 179-7174  #179-7174   179-7174   185-7380   185-7380  
OR    	= 000434	#29-1203   
ORB   	= 000437	#29-1204   
ORCA  	= 000454	#29-1206   
ORCAB 	= 000457	#29-1207   
ORCAI 	= 000455	#29-1208   
ORCAM 	= 000456	#29-1209   
ORCB  	= 000470	#30-1211   
ORCBB 	= 000473	#30-1212   
ORCBI 	= 000471	#30-1213   
ORCBM 	= 000472	#30-1214   
ORCM  	= 000464	#30-1216   
ORCMB 	= 000467	#30-1217   
ORCMI 	= 000465	#30-1218   
ORCMM 	= 000466	#30-1219   
ORI   	= 000435	#30-1221   
ORM   	= 000436	#30-1222   
OUT   	= 000057	#30-1224   
OUTBUF	= 000065	#30-1225   
OUTMSG	  001663 RG	 188-7445  #188-7445   188-7445   191-7514   191-7514  
OUTPUT	= 000067	#30-1226   
PAG   	= 000010	#7-246     
PAGMSG	  001363 RG	 182-7333  #182-7333   182-7333  
PARERC	  000662 R	 58-2522    58-2522    59-2534    59-2534    59-2545    59-2545    60-2570    60-2570   #61-2589   
                         61-2605    61-2605    62-2626    62-2626   
PARERX	  000506 R	#58-2523    59-2556    60-2578    62-2649   
PARMSG	  000011 RG	#39-1717    61-2590   
PARNAM	  000021 RG	 35-1476   #39-1719    156-6412   158-6483   163-6639  
PARUEC	  000734 R	 58-2515   #61-2602   
PAR$$E	= 000027	#1-50       39-1716   
PAR$$K	= 000126	#1-54       39-1716   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 22

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PAR$$V	= 000006	#1-49       39-1716   
PCMSG 	  001026 RG	 178-7122  #178-7122   178-7122  
PC.AFI	= 000020	#13-509    
PC.AT0	= 000004	#13-511    
PC.AT1	= 000010	#13-510    
PC.BIS	= 000400	#13-505    
PC.CY0	= 004000	#13-502    
PC.CY1	= 002000	#13-503    
PC.FOV	= 001000	#13-504    
PC.FUF	= 000002	#13-512    
PC.LIP	= 000040	#13-508    
PC.NDV	= 000001	#13-513    
PC.OVF	= 010000	#13-501    
PC.UIO	= 000100	#13-507    
PC.USR	= 000200	#13-506    
PERCLR	= 001000	#87-3821   
PE.ALL	= 000037	#9-337     
PE.CES	= 000001	#9-332      9-337     
PE.CRM	= 000004	#9-334      9-337     
PE.DRM	= 000002	#9-333      9-337     
PE.FMP	= 000010	#9-335      9-337     
PE.FSS	= 000020	#9-336      9-337     
PHYS  	= 100000	#87-3821   
PI    	= 000004	#7-245     
PIDENT	= 000000	#87-3821   
PIMSG 	  001103 RG	 178-7143  #178-7143   178-7143   182-7335   182-7335  
POP   	= 000262	#30-1228   
POPJ  	= 000263	#30-1229   
PRGMSG	  001165 RG	 179-7176  #179-7176   179-7176   185-7382   185-7382  
PRI7  	= 000340	#87-3821   
PRMFM 	  002257 R	*242-9402   242-9403  #242-9434  
PROMPT	  000030 RG	#39-1721    163-6651  
PROPNT	= 000021	#87-3821   
PRTOFF	= 004000	#87-3821   
PRVMSG	  000735 RG	 175-7059  #175-7059   175-7059   176-7080   176-7080   177-7095   177-7095   178-7163   178-7163  
PR0   	= 000000	#87-3821   
PR1   	= 000040	#87-3821   
PR2   	= 000100	#87-3821   
PR3   	= 000140	#87-3821   
PR4   	= 000200	#87-3821   
PR5   	= 000240	#87-3821   
PR6   	= 000300	#87-3821   
PR7   	= 000340	#87-3821   
PS    	= 177776	#87-3821    160-6568  *160-6568  *160-6573  
PSTMSG	  001672 RG	 188-7447  #188-7447   188-7447   191-7516   191-7516  
PSWW1 	= 000005	#87-3821   
PSWW10	= 000014	#87-3821   
PSWW11	= 000015	#87-3821   
PSWW12	= 000016	#87-3821   
PSWW13	= 000017	#87-3821   
PSWW2 	= 000006	#87-3821   
PSWW3 	= 000007	#87-3821   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 23

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PSWW4 	= 000010	#87-3821   
PSWW5 	= 000011	#87-3821   
PSWW6 	= 000012	#87-3821   
PSWW7 	= 000013	#87-3821   
PS.NRM	= 001416	#16-639     143-5928  
PTLERM	  003111 R	#181-7294   181-7294  
PTOATM	  000270 R	 68-2860   #68-2879   
PTRTEM	  000151 R	 64-2700   #67-2822   
PTRTHM	  000221 R	 67-2807   #67-2824   
PULSE 	= 000020	#87-3821   
PUSH  	= 000261	#30-1231   
PUSHJ 	= 000260	#30-1232   
QSIZE 	= 000023	#87-3821   
QTRMSG	  001470 RG	 183-7360  #183-7360   183-7360  
QUTMSG	  000661 RG	 174-7040  #174-7040   174-7040  
Q.BYCT	= 000016	#21-813     222-8651   258-10045  258-10054 
Q.IBUF	= 000014	#21-811    
Q.IOAE	= 000012	#70-3076   #71-3139   #72-3187   #72-3190   #72-3193   #73-3237   #74-3297   #75-3350   #222-8648  
                        #258-10042 #258-10051 #258-10060 #258-10065 
Q.IOEF	= 000006	#70-3076   #71-3139   #72-3187   #72-3190   #72-3193   #73-3237   #74-3297   #75-3350   #222-8648  
                        #258-10042 #258-10051 #258-10060 #258-10065 
Q.IOFN	= 000002	#70-3076   #71-3139    71-3141   #72-3187   #72-3190   #72-3193   #73-3237    73-3239   #74-3297   
                        #75-3350    75-3352   #222-8648  #258-10042 #258-10051 #258-10060 #258-10065 
Q.IOLU	= 000004	#70-3076    70-3078   #71-3139    71-3142   #72-3187   #72-3190   #72-3193   #73-3237    73-3240   
                        #74-3297   #75-3350    75-3353   #222-8648  #258-10042 #258-10051 #258-10060 #258-10065 
Q.IOPL	= 000014	#21-810     21-811     21-812     21-813     21-814    #70-3076    70-3079   #71-3139    71-3143   
                        #72-3187   #72-3190   #72-3193   #73-3237    73-3241   #74-3297   #75-3350    75-3354   #222-8648  
                         222-8650  #258-10042  258-10044 #258-10051  258-10053 #258-10060 #258-10065 
Q.IOPR	= 000007	#70-3076   #71-3139   #72-3187   #72-3190   #72-3193   #73-3237   #74-3297   #75-3350   #222-8648  
                        #258-10042 #258-10051 #258-10060 #258-10065 
Q.IOSB	= 000010	#70-3076   #71-3139   #72-3187   #72-3190   #72-3193   #73-3237   #74-3297   #75-3350   #222-8648  
                        #258-10042 #258-10051 #258-10060 #258-10065 
Q.OBUF	= 000014	#21-812    
Q.OVFC	= 000020	#21-814     258-10046  258-10055 
RAMIS0	= 010000	#87-3821   
RDCPT1	  004230 R	 129-5344  #131-5409  
RDCPT2	  004210 R	 130-5363  #130-5390  
RDCPT3	  004220 R	 129-5345   130-5360  #130-5398  
RDCRME	  006470 R	 134-5541  #134-5568  
REAFRD	  002570 R	 80-3559    80-3561   #80-3568   
REGMSG	  001106 RG	 178-7145  #178-7145   178-7145  
REGTAB	  007130 R	 214-8293  #215-8316  
RELEAS	= 000071	#30-1234   
REMMSG	  001200 RG	 179-7181  #179-7181   179-7181  
RENAME	= 000055	#30-1235   
REPIRC	  011106 R	 172-6914  #172-6920  
RESETT	  004274 R	 141-5804  #141-5830  
RFMAD0	= 100000	#87-3821   
RFMAD1	= 040000	#87-3821   
RFMAD2	= 020000	#87-3821   
RFMAD3	= 010000	#87-3821   
RGDTEN	= 000310 RG	#95-4095   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 24

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

RLDMSG	  001706 RG	 188-7449  #188-7449   188-7449   191-7518   191-7518  
RM    	= 000010	#87-3821   
RMSG  	  000541 RG	 174-7014  #174-7014   174-7014  
ROT   	= 000241	#30-1237   
ROTC  	= 000245	#30-1238   
RPMERM	  003141 R	#181-7296   181-7296  
RPTMSG	  000543 RG	 174-7016  #174-7016   174-7016   188-7451   188-7451   191-7520   191-7520  
RSTEND	= 004302 R	 141-5816  #141-5837  
RSTMSG	  000552 RG	 174-7018  #174-7018   174-7018  
RTYMSG	  001715 RG	 188-7453  #188-7453   188-7453   191-7522   191-7522  
RUNMSG	  000560 RG	 174-7020  #174-7020   174-7020  
SBRMSG	  001131 RG	 178-7153  #178-7153   178-7153  
SCD   	= 000040	#87-3821   
SCFERM	  003201 R	#181-7298   181-7298  
SCRMSG	  001135 RG	 178-7155  #178-7155   178-7155  
SEPMSG	  001276 RG	 180-7207  #180-7207   180-7207  
SETA  	= 000424	#30-1240   
SETAB 	= 000427	#30-1241   
SETAI 	= 000425	#30-1242   
SETAM 	= 000426	#30-1243   
SETCA 	= 000450	#30-1245   
SETCAB	= 000453	#30-1246   
SETCAI	= 000451	#30-1247   
SETCAM	= 000452	#30-1248   
SETCM 	= 000460	#30-1250   
SETCMB	= 000463	#30-1251   
SETCMI	= 000461	#30-1252   
SETCMM	= 000462	#30-1253   
SETM  	= 000414	#31-1255   
SETMB 	= 000417	#31-1256   
SETMI 	= 000415	#31-1257   
SETMM 	= 000416	#31-1258   
SETMSG	  000564 RG	 174-7022  #174-7022   174-7022  
SETO  	= 000474	#31-1260   
SETOB 	= 000477	#31-1261   
SETOI 	= 000475	#31-1262   
SETOM 	= 000476	#31-1263   
SETSTS	= 000060	#31-1265   
SETZ  	= 000400	#31-1267   
SETZB 	= 000403	#31-1268   
SETZI 	= 000401	#31-1269   
SETZM 	= 000402	#31-1270   
SHOMSG	  000570 RG	 174-7024  #174-7024   174-7024  
SHUMSG	  000575 RG	 174-7026  #174-7026   174-7026  
SKIERM	  003230 R	#181-7299   181-7299  
SKIP  	= 000330	#31-1272   
SKIPA 	= 000334	#31-1273   
SKIPE 	= 000332	#31-1274   
SKIPG 	= 000337	#31-1275   
SKIPGE	= 000335	#31-1276   
SKIPL 	= 000331	#31-1277   
SKIPLE	= 000333	#31-1278   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 25

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

SKIPN 	= 000336	#31-1279   
SLOMSG	  001500 RG	 183-7362  #183-7362   183-7362  
SNPMSG	  000606 RG	 174-7029  #174-7029   174-7029  
SOJ   	= 000360	#31-1281   
SOJA  	= 000364	#31-1282   
SOJE  	= 000362	#31-1283   
SOJG  	= 000367	#31-1284   
SOJGE 	= 000365	#31-1285   
SOJL  	= 000361	#31-1286   
SOJLE 	= 000363	#31-1287   
SOJN  	= 000366	#31-1288   
SOS   	= 000370	#31-1290   
SOSA  	= 000374	#31-1291   
SOSE  	= 000372	#31-1292   
SOSG  	= 000377	#31-1293   
SOSGE 	= 000375	#31-1294   
SOSL  	= 000371	#31-1295   
SOSLE 	= 000373	#31-1296   
SOSN  	= 000376	#31-1297   
SPCEST	  001614 R	 62-2630   #62-2654   
SPFERM	  003305 R	#181-7300   181-7300  
SSTLEN	= 000010  G	#36-1653   
SSTTBE	= 000302 RG	#36-1654    64-2697   
STAMSG	  002075 R	 215-8319  #215-8330  
STAT  	= 174434	#87-3821   
STATO 	= 000061	#31-1299   
STATUS	= 000022	#31-1300   #87-3821   
STATZ 	= 000063	#31-1301   
STRMSG	  000617 RG	 174-7032  #174-7032   174-7032  
STSW1 	= ******  GX	*160-6570  
STUCAE	  007440 R	 152-6182  #152-6203  
STUUNL	  007446 R	 152-6200  #152-6206  
ST.CED	= 000100	#12-454     12-469    
ST.CLE	= 000001	#12-467     12-469    
ST.CTD	= 040000	#12-439    
ST.CTE	= 010000	#12-443     12-469    
ST.DW1	= 002000	#12-446    
ST.DXD	= 000004	#12-462    
ST.EBS	= 000100	#12-453    
ST.EDB	= 004000	#12-444    
ST.EPE	= 000020	#12-457     12-469     56-2408   
ST.IDS	= 000010	#12-461    
ST.IEN	= 000040	#12-456    
ST.ION	= 000001	#12-466    
ST.MBZ	= 000000	#12-471     94-4068   
ST.MOD	= 000010	#12-459    
ST.MPE	= 001000	#12-447     12-469    
ST.NST	= 000040	#12-455    
ST.RIZ	= 010000	#12-442    
ST.RST	= 011121	#12-469    
ST.SEP	= 000004	#12-463    
ST.STE	= 000002	#12-465    
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 26

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ST.TED	= 000200	#12-451    
ST.TER	= 000002	#12-464    
ST.TXD	= 100000	#12-437    
ST.TXE	= 020000	#12-440    
ST.XDB	= 000400	#12-449    
SUB   	= 000274	#32-1303   
SUBB  	= 000277	#32-1304   
SUBI  	= 000275	#32-1305   
SUBM  	= 000276	#32-1306   
SWPMSG	  000625 RG	 174-7034  #174-7034   174-7034  
SWR   	= 177570	#87-3821   
SWSLLT	= 100000	#87-3821   
SXCT  	= 000106	#32-1308   
SZIERM	  003335 R	#181-7301   181-7301  
TAAERM	  003371 R	#181-7303   181-7303  
TAKMSG	  000633 RG	 174-7036  #174-7036   174-7036  
TC.CON	= 000377	#22-873    
TC.CTC	= 000002	#22-870     50-2208    66-2780   
TC.ERR	= 000000	#22-872     47-2104    49-2175    49-2178    51-2246    54-2352    56-2414    70-3063    70-3065   
                         71-3133    72-3181    73-3231    74-3291    75-3344    80-3573    85-3782    88-3860    94-4058   
                         97-4160    101-4298   101-4302   101-4305   101-4308   104-4438   106-4493   108-4590   111-4691  
                         115-4869   117-4963   134-5569   152-6204   152-6207   155-6374   159-6522   167-6775   167-6778  
                         167-6781   172-6921   197-7703   222-8638   222-8641   225-8758   227-8843   228-8920   234-9153  
                         235-9193   237-9255   237-9258  
TC.RST	= 000001	#22-871    
TDC   	= 000650	#32-1310   
TDCA  	= 000654	#32-1311   
TDCE  	= 000652	#32-1312   
TDCN  	= 000656	#32-1313   
TDMSG0	  000345 R	 166-6753  #167-6786  
TDN   	= 000610	#32-1315   
TDNA  	= 000614	#32-1316   
TDNE  	= 000612	#32-1317   
TDNN  	= 000616	#32-1318   
TDO   	= 000670	#32-1320   
TDOA  	= 000674	#32-1321   
TDOE  	= 000672	#32-1322   
TDON  	= 000676	#32-1323   
TDZ   	= 000630	#32-1325   
TDZA  	= 000634	#32-1326   
TDZE  	= 000632	#32-1327   
TDZN  	= 000636	#32-1328   
TENAD1	= 174410	#87-3821   
TENAD2	= 174412	#87-3821   
TENMSG	  000765 RG	 176-7072  #176-7072   176-7072   178-7147   178-7147   184-7371   184-7371   190-7483   190-7483  
TFRMSG	  001765 R	 211-8199  #212-8244  
TFWMSG	  002002 R	 211-8206  #212-8246  
TFXMSG	  002017 R	 211-8213  #212-8248  
THSMSG	  000746 RG	 175-7061  #175-7061   175-7061   176-7082   176-7082   177-7097   177-7097   178-7165   178-7165  
TLC   	= 000641	#32-1330   
TLCA  	= 000645	#32-1331   
TLCE  	= 000643	#32-1332   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 27

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TLCN  	= 000647	#32-1333   
TLN   	= 000601	#32-1335   
TLNA  	= 000605	#32-1336   
TLNE  	= 000603	#32-1337   
TLNN  	= 000607	#32-1338   
TLO   	= 000661	#32-1340   
TLOA  	= 000665	#32-1341   
TLOE  	= 000663	#32-1342   
TLON  	= 000667	#32-1343   
TLZ   	= 000621	#32-1345   
TLZA  	= 000625	#32-1346   
TLZE  	= 000623	#32-1347   
TLZN  	= 000627	#32-1348   
TOBM  	= 000004	#87-3821   
TOD   	= 000003	#87-3821   
TOIP  	= 000002	#87-3821   
TOIT  	= 000001	#87-3821   
TORERM	  003426 R	#181-7304   181-7304  
TO10  	= 000200	#87-3821   
TO10AD	= 174420	#87-3821   
TO10BC	= 174414	#87-3821   
TO10BM	= 000001	#87-3821   
TO10DB	= 000400	#87-3821   
TO10DN	= 100000	#87-3821   
TO10DT	= 174424	#87-3821   
TO10ER	= 020000	#87-3821   
TO11  	= 000100	#87-3821   
TO11AD	= 174422	#87-3821   
TO11BC	= 174416	#87-3821   
TO11BM	= 020000	#87-3821   
TO11DB	= 004000	#87-3821   
TO11DN	= 000200	#87-3821   
TO11DT	= 174426	#87-3821   
TO11ER	= 000002	#87-3821   
TPDDCK	  011350 R	 196-7654  #197-7702  
TPDDVD	  007122 R	#195-7641   196-7669  
TPDDVS	  007114 R	#195-7639   196-7668  
TPDRMN	  007106 R	#195-7637   196-7657   196-7667   197-7695  
TRADDR	  007140 R	 217-8387   217-8398  #218-8419  
TRC   	= 000640	#32-1350   
TRCA  	= 000644	#32-1351   
TRCE  	= 000642	#32-1352   
TRCN  	= 000646	#32-1353   
TRDATA	  007146 R	 217-8392   217-8402  #218-8421  
TRKMSG	  001723 RG	 188-7456  #188-7456   188-7456   191-7525   191-7525  
TRN   	= 000600	#33-1355   
TRNA  	= 000604	#33-1356   
TRNE  	= 000602	#33-1357   
TRNN  	= 000606	#33-1358   
TRO   	= 000660	#33-1360   
TROA  	= 000664	#33-1361   
TROE  	= 000662	#33-1362   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 28

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TRON  	= 000666	#33-1363   
TRZ   	= 000620	#33-1365   
TRZA  	= 000624	#33-1366   
TRZE  	= 000622	#33-1367   
TRZN  	= 000626	#33-1368   
TR.ALL	= 000077	#13-496    
TR.DEP	= 000020	#13-494     13-496     99-4239   
TR.DTE	= 000040	#13-495     13-496     94-4047   
TR.EXM	= 000010	#13-493     13-496     99-4223   
TR.FRD	= 000002	#13-491     13-496     106-4486  
TR.FWR	= 000004	#13-492     13-496     108-4581  
TR.FXC	= 000001	#13-490     13-496     111-4683  
TSC   	= 000651	#33-1370   
TSCA  	= 000655	#33-1371   
TSCAMB	  010732 R	 165-6727  #167-6773  
TSCE  	= 000653	#33-1372   
TSCN  	= 000657	#33-1373   
TSCNSK	  010744 R	 165-6736  #167-6777  
TSCWRM	  010752 R	 165-6739  #167-6780  
TSN   	= 000611	#33-1375   
TSNA  	= 000615	#33-1376   
TSNE  	= 000613	#33-1377   
TSNN  	= 000617	#33-1378   
TSO   	= 000671	#33-1380   
TSOA  	= 000675	#33-1381   
TSOE  	= 000673	#33-1382   
TSON  	= 000677	#33-1383   
TSZ   	= 000631	#33-1385   
TSZA  	= 000635	#33-1386   
TSZE  	= 000633	#33-1387   
TSZN  	= 000637	#33-1388   
TTCALL	= 000051	#33-1390   
TTYMSG	  001515 RG	 186-7395  #186-7395   186-7395  
TT.OUT	= ******  GX	 160-6570  
TYODIE	  015752 R	 255-9932   255-9934   255-9936   255-9938   255-9945   255-9947  #256-9967  
UCDMSG	  001732 RG	 190-7485  #190-7485   190-7485  
UECMSG	  000060 R	 61-2616   #61-2620   
UECMSP	  001612 R	 61-2604   #61-2615   
UGETF 	= 000073	#33-1392   
UJEN  	= 000100	#33-1394   
UNASG1	= 000032	#87-3821   
UNASG2	= 000033	#87-3821   
UNASG3	= 000034	#87-3821   
UNASG4	= 000035	#87-3821   
UNASG5	= 000036	#87-3821   
UNASG6	= 000037	#87-3821   
UNLERM	  003456 R	#181-7306   181-7306  
UNMMSG	  000640 RG	 174-7038  #174-7038   174-7038  
USETI 	= 000074	#33-1396   
USETO 	= 000075	#33-1397   
USRMSG	  001207 RG	 179-7183  #179-7183   179-7183   185-7384   185-7384  
VERMSG	  001755 RG	 191-7528  #191-7528   191-7528  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 29

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

VFYERM	  003514 R	#181-7308   181-7308  
VF.DSP	= 000060	#21-828    
VF.FFD	= 000061	#21-829    
VF.INT	= 000000	#21-826     258-10042  258-10051 
VF.OVR	= 000053	#21-830    
VF.PRM	= 000044	#21-831    
VF.SSP	= 000040	#21-827    
VMAMSG	  001120 RG	 178-7149  #178-7149   178-7149  
VMHMSG	  001124 RG	 178-7151  #178-7151   178-7151  
WEP   	= 000010	#87-3821   
WHAMSG	  000666 RG	 174-7042  #174-7042   174-7042  
WRCRME	  007674 R	 155-6344  #155-6373  
WRIFWT	  003326 R	 85-3768    85-3777   #85-3781   
WRMERM	  003550 R	#181-7310   181-7310  
XCT   	= 000256	#33-1399   
XCTMSG	  000673 RG	 174-7044  #174-7044   174-7044  
XOR   	= 000430	#33-1401   
XORB  	= 000433	#33-1402   
XORI  	= 000431	#33-1403   
XORM  	= 000432	#33-1404   
XTOERM	  003661 R	#181-7314   181-7314  
YORERM	  003631 R	#181-7312   181-7312  
ZERMSG	  000677 RG	 174-7046  #174-7046   174-7046  
ZSTOP 	= 040000	#87-3821   
$DIV  	= ******  GX	 257-9999   257-9999  
$DSW  	= ******  GX	 50-2204    100-4267  
$$    	= 000037	#47-2088    47-2088   #47-2094    47-2094   #48-2131    48-2131   #51-2239    51-2239   #53-2299   
                         53-2299   #56-2407    56-2407   #58-2522    58-2522   #59-2534    59-2534   #59-2539    59-2539   
                        #59-2545    59-2545   #59-2549    59-2549   #59-2552    59-2552   #59-2555    59-2555   #60-2570   
                         60-2570   #60-2575    60-2575   #60-2577    60-2577   #61-2591    61-2591   #61-2593    61-2593   
                        #61-2595    61-2595   #61-2597    61-2597   #61-2598    61-2598   #61-2605    61-2605   #61-2607   
                         61-2607   #62-2626    62-2626   #62-2627    62-2627   #62-2635    62-2635   #62-2636    62-2636   
                        #62-2637    62-2637   #62-2646    62-2646   #64-2699    64-2699   #64-2701    64-2701   #64-2703   
                         64-2703   #64-2704    64-2704   #66-2770    66-2770   #66-2776    66-2776   #66-2790    66-2790   
                        #66-2792    66-2792   #67-2808    67-2808   #67-2809    67-2809   #67-2815    67-2815   #68-2856   
                         68-2856   #68-2859    68-2859   #68-2861    68-2861   #68-2863    68-2863   #68-2864    68-2864   
                        #68-2869    68-2869   #71-3116    71-3116   #71-3117    71-3117   #74-3290    74-3290   #77-3430   
                         77-3430   #77-3436    77-3436   #77-3445    77-3445   #77-3447    77-3447   #78-3490    78-3490   
                        #79-3523    79-3523   #80-3572    80-3572   #81-3620    81-3620   #81-3624    81-3624   #82-3664   
                         82-3664   #83-3695    83-3695   #84-3733    84-3733   #84-3737    84-3737   #84-3739    84-3739   
                        #85-3778    85-3778   #88-3851    88-3851   #88-3855    88-3855   #89-3888    89-3888   #89-3898   
                         89-3898   #90-3931    90-3931   #97-4139    97-4139   #97-4144    97-4144   #97-4146    97-4146   
                        #99-4216    99-4216   #99-4225    99-4225   #99-4232    99-4232   #99-4241    99-4241   #100-4271  
                         100-4271  #100-4274   100-4274  #103-4380   103-4380  #103-4382   103-4382  #104-4399   104-4399  
                        #104-4401   104-4401  #104-4402   104-4402  #104-4407   104-4407  #104-4410   104-4410  #104-4423  
                         104-4423  #104-4429   104-4429  #104-4433   104-4433  #106-4488   106-4488  #108-4583   108-4583  
                        #111-4685   111-4685  #113-4764   113-4764  #113-4767   113-4767  #113-4770   113-4770  #114-4819  
                         114-4819  #114-4824   114-4824  #115-4832   115-4832  #115-4843   115-4843  #115-4856   115-4856  
                        #115-4860   115-4860  #115-4861   115-4861  #116-4909   116-4909  #116-4912   116-4912  #117-4948  
                         117-4948  #117-4950   117-4950  #119-4999   119-4999  #119-5001   119-5001  #119-5010   119-5010  
                        #119-5016   119-5016  #120-5057   120-5057  #120-5059   120-5059  #122-5089   122-5089  #122-5092  
                         122-5092  #122-5098   122-5098  #122-5101   122-5101  #122-5106   122-5106  #124-5163   124-5163  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 30

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #124-5169   124-5169  #124-5175   124-5175  #124-5179   124-5179  #124-5184   124-5184  #126-5222  
                         126-5222  #126-5224   126-5224  #126-5230   126-5230  #126-5233   126-5233  #126-5237   126-5237  
                        #126-5240   126-5240  #127-5279   127-5279  #127-5281   127-5281  #128-5290   128-5290  #128-5291  
                         128-5291  #128-5293   128-5293  #128-5298   128-5298  #128-5305   128-5305  #128-5308   128-5308  
                        #128-5310   128-5310  #129-5341   129-5341  #129-5349   129-5349  #132-5471   132-5471  #132-5473  
                         132-5473  #134-5542   134-5542  #134-5544   134-5544  #134-5552   134-5552  #134-5557   134-5557  
                        #134-5559   134-5559  #134-5562   134-5562  #134-5564   134-5564  #135-5599   135-5599  #135-5601  
                         135-5601  #136-5638   136-5638  #136-5640   136-5640  #136-5645   136-5645  #137-5678   137-5678  
                        #137-5682   137-5682  #138-5711   138-5711  #138-5714   138-5714  #139-5746   139-5746  #139-5755  
                         139-5755  #141-5803   141-5803  #141-5805   141-5805  #141-5808   141-5808  #141-5809   141-5809  
                        #141-5810   141-5810  #141-5811   141-5811  #141-5815   141-5815  #141-5820   141-5820  #142-5872  
                         142-5872  #143-5922   143-5922  #143-5927   143-5927  #145-5965   145-5965  #145-5966   145-5966  
                        #145-5969   145-5969  #145-5971   145-5971  #145-5975   145-5975  #146-6006   146-6006  #147-6035  
                         147-6035  #147-6039   147-6039  #148-6069   148-6069  #150-6133   150-6133  #152-6184   152-6184  
                        #152-6185   152-6185  #152-6187   152-6187  #152-6188   152-6188  #152-6191   152-6191  #153-6237  
                         153-6237  #154-6275   154-6275  #154-6277   154-6277  #154-6280   154-6280  #155-6349   155-6349  
                        #155-6357   155-6357  #155-6362   155-6362  #155-6365   155-6365  #155-6366   155-6366  #155-6368  
                         155-6368  #155-6370   155-6370  #158-6484   158-6484  #159-6493   159-6493  #159-6495   159-6495  
                        #159-6503   159-6503  #159-6504   159-6504  #159-6518   159-6518  #160-6557   160-6557  #160-6561  
                         160-6561  #160-6564   160-6564  #160-6572   160-6572  #162-6628   162-6628  #163-6640   163-6640  
                        #163-6648   163-6648  #163-6652   163-6652  #163-6664   163-6664  #163-6666   163-6666  #163-6669  
                         163-6669  #165-6707   165-6707  #165-6708   165-6708  #165-6718   165-6718  #166-6748   166-6748  
                        #166-6750   166-6750  #166-6752   166-6752  #166-6754   166-6754  #166-6762   166-6762  #166-6763  
                         166-6763  #172-6911   172-6911  #172-6913   172-6913  #172-6915   172-6915  #172-6917   172-6917  
                        #196-7650   196-7650  #196-7652   196-7652  #196-7653   196-7653  #197-7682   197-7682  #197-7684  
                         197-7684  #197-7687   197-7687  #198-7747   198-7747  #205-7972   205-7972  #205-7975   205-7975  
                        #205-7978   205-7978  #205-7996   205-7996  #205-8003   205-8003  #208-8104   208-8104  #208-8105  
                         208-8105  #209-8117   209-8117  #209-8119   209-8119  #209-8120   209-8120  #209-8128   209-8128  
                        #209-8130   209-8130  #209-8131   209-8131  #212-8223   212-8223  #212-8228   212-8228  #212-8231  
                         212-8231  #212-8232   212-8232  #212-8233   212-8233  #212-8235   212-8235  #214-8291   214-8291  
                        #214-8294   214-8294  #214-8295   214-8295  #214-8304   214-8304  #214-8310   214-8310  #216-8371  
                         216-8371  #216-8376   216-8376  #217-8397   217-8397  #217-8399   217-8399  #217-8400   217-8400  
                        #217-8401   217-8401  #217-8403   217-8403  #217-8404   217-8404  #217-8411   217-8411  #220-8513  
                         220-8513  #220-8519   220-8519  #221-8564   221-8564  #221-8573   221-8573  #221-8578   221-8578  
                        #221-8587   221-8587  #221-8588   221-8588  #224-8722   224-8722  #224-8723   224-8723  #225-8751  
                         225-8751  #226-8789   226-8789  #226-8792   226-8792  #226-8793   226-8793  #226-8795   226-8795  
                        #226-8797   226-8797  #226-8800   226-8800  #226-8802   226-8802  #227-8815   227-8815  #227-8822  
                         227-8822  #227-8823   227-8823  #227-8824   227-8824  #228-8885   228-8885  #228-8898   228-8898  
                        #228-8900   228-8900  #229-8974   229-8974  #230-9001   230-9001  #230-9004   230-9004  #231-9034  
                         231-9034  #232-9069   232-9069  #232-9072   232-9072  #233-9112   233-9112  #234-9140   234-9140  
                        #235-9171   235-9171  #235-9176   235-9176  #235-9177   235-9177  #235-9182   235-9182  #235-9185  
                         235-9185  #235-9190   235-9190  #236-9233   236-9233  #236-9236   236-9236  #241-9359   241-9359  
                        #242-9404   242-9404  #242-9412   242-9412  #242-9413   242-9413  #242-9417   242-9417  #242-9418  
                         242-9418  #242-9419   242-9419  #242-9421   242-9421  #242-9422   242-9422  #247-9648   247-9648  
                        #247-9653   247-9653  #249-9728   249-9728  #250-9750   250-9750  #250-9753   250-9753  #250-9755  
                         250-9755  #251-9798   251-9798  #251-9802   251-9802  #251-9811   251-9811  #252-9840   252-9840  
                        #254-9893   254-9893  #254-9895   254-9895  #255-9953   255-9953  #257-9999   257-9999  #257-10006 
                         257-10006 
$$PASS	= 000000	 174-6978   174-6980   174-6982   174-6984   174-6986   174-6988   174-6990   174-6992   174-6994  
                         174-6996   174-6998   174-7004   174-7006   174-7008   174-7010   174-7012   174-7014   174-7016  
                         174-7018   174-7020   174-7022   174-7024   174-7026   174-7029   174-7032   174-7034   174-7036  
                         174-7038   174-7040   174-7042   174-7044   174-7046   175-7053   175-7055   175-7057   175-7059  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 31

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         175-7061   176-7068   176-7070   176-7072   176-7074   176-7076   176-7078   176-7080   176-7082  
                         177-7089   177-7091   177-7093   177-7095   177-7097   178-7104   178-7106   178-7108   178-7110  
                         178-7112   178-7114   178-7116   178-7118   178-7120   178-7122   178-7125   178-7127   178-7129  
                         178-7131   178-7133   178-7135   178-7137   178-7139   178-7141   178-7143   178-7145   178-7147  
                         178-7149   178-7151   178-7153   178-7155   178-7157   178-7159   178-7161   178-7163   178-7165  
                         179-7172   179-7174   179-7176   179-7181   179-7183   180-7191   180-7193   180-7195   180-7197  
                         180-7199   180-7201   180-7203   180-7205   180-7207   180-7209   180-7211   180-7213   182-7321  
                         182-7323   182-7325   182-7327   182-7329   182-7331   182-7333   182-7335   183-7342   183-7344  
                         183-7346   183-7348   183-7350   183-7352   183-7354   183-7356   183-7358   183-7360   183-7362  
                         184-7369   184-7371   185-7378   185-7380   185-7382   185-7384   186-7391   186-7393   186-7395  
                         187-7402   187-7404   187-7406   187-7408   187-7410   187-7412   187-7414   188-7421   188-7423  
                         188-7425   188-7427   188-7429   188-7431   188-7433   188-7435   188-7437   188-7439   188-7441  
                         188-7443   188-7445   188-7447   188-7449   188-7451   188-7453   188-7456   190-7483   190-7485  
                         191-7492   191-7494   191-7496   191-7498   191-7500   191-7502   191-7504   191-7506   191-7508  
                         191-7510   191-7512   191-7514   191-7516   191-7518   191-7520   191-7522   191-7525   191-7528  
                        #191-7533  
$$$AB 	= 000001	 178-7125  #178-7125   178-7125  
$$$ABO	= 000001	 174-6980  #174-6980   174-6980  
$$$ACB	= 000002	 188-7421  #188-7421   188-7421   191-7492  #191-7492   191-7492  
$$$AD 	= 000001	 178-7104  #178-7104   178-7104  
$$$ADX	= 000001	 178-7106  #178-7106   178-7106  
$$$ALL	= 000002	 182-7321  #182-7321   182-7321   187-7402  #187-7402   187-7402  
$$$APR	= 000001	 180-7197  #180-7197   180-7197  
$$$AR 	= 000003	 176-7068  #176-7068   176-7068   178-7108  #178-7108   178-7108   187-7404  #187-7404   187-7404  
$$$ARG	= 000006	#70-3071    70-3071   #70-3071    70-3071   #70-3071    70-3071   #70-3076    70-3076   #70-3076   
                         70-3076   #70-3076    70-3076   #70-3076    70-3076   #70-3076    70-3076   #70-3076    70-3076   
                        #70-3076    70-3076   #71-3139    71-3139   #71-3139    71-3139   #71-3139    71-3139   #71-3139   
                         71-3139   #71-3139    71-3139   #71-3139    71-3139   #71-3139    71-3139   #72-3187    72-3187   
                        #72-3187    72-3187   #72-3187    72-3187   #72-3187    72-3187   #72-3187    72-3187   #72-3190   
                         72-3190   #72-3190    72-3190   #72-3190    72-3190   #72-3190    72-3190   #72-3190    72-3190   
                        #72-3190    72-3190   #72-3190    72-3190   #72-3193    72-3193   #73-3237    73-3237   #73-3237   
                         73-3237   #73-3237    73-3237   #73-3237    73-3237   #73-3237    73-3237   #73-3237    73-3237   
                        #74-3297    74-3297   #74-3297    74-3297   #74-3297    74-3297   #74-3297    74-3297   #74-3297   
                         74-3297   #75-3350    75-3350   #75-3350    75-3350   #75-3350    75-3350   #80-3558    80-3558   
                         80-3558    80-3558    80-3558    80-3558    80-3558    80-3558    80-3558    80-3558    80-3558   
                         80-3558   #85-3767    85-3767    85-3767    85-3767    85-3767    85-3767    85-3767    85-3767   
                         85-3767    85-3767    85-3767    85-3767   #160-6565   160-6565   160-6565   160-6565   160-6565  
                         160-6565   160-6565   160-6565   160-6565   160-6565   160-6565   160-6565  #222-8648   222-8648  
                        #222-8648   222-8648  #222-8648   222-8648  #258-10042  258-10042 #258-10042  258-10042 #258-10042 
                         258-10042 #258-10042  258-10042 #258-10051  258-10051 #258-10051  258-10051 #258-10051  258-10051 
                        #258-10051  258-10051 #258-10060  258-10060 #258-10065  258-10065 
$$$ARX	= 000001	 178-7110  #178-7110   178-7110  
$$$AUG	= 000001	 180-7205  #180-7205   180-7205  
$$$AUT	= 000002	 188-7423  #188-7423   188-7423   191-7494  #191-7494   191-7494  
$$$BR 	= 000001	 178-7112  #178-7112   178-7112  
$$$BRX	= 000001	 178-7114  #178-7114   178-7114  
$$$CLK	= 000002	 188-7425  #188-7425   188-7425   191-7496  #191-7496   191-7496  
$$$CLR	= 000001	 174-6982  #174-6982   174-6982  
$$$CNT	= 000001	 174-6984  #174-6984   174-6984  
$$$CON	= 000002	 188-7427  #188-7427   188-7427   191-7498  #191-7498   191-7498  
$$$CPU	= 000001	 182-7323  #182-7323   182-7323  
$$$CRA	= 000001	 178-7127  #178-7127   178-7127  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 32

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$$$CRL	= 000001	 178-7129  #178-7129   178-7129  
$$$CRM	= 000002	 183-7344  #183-7344   183-7344   187-7406  #187-7406   187-7406  
$$$CTL	= 000001	 183-7348  #183-7348   183-7348  
$$$DAT	= 000002	 188-7429  #188-7429   188-7429   191-7500  #191-7500   191-7500  
$$$DCR	= 000004	 175-7053  #175-7053   175-7053   176-7074  #176-7074   176-7074   177-7089  #177-7089   177-7089  
                         178-7157  #178-7157   178-7157  
$$$DEC	= 000001	 180-7213  #180-7213   180-7213  
$$$DEP	= 000001	 174-6986  #174-6986   174-6986  
$$$DIS	= 000001	 174-6988  #174-6988   174-6988  
$$$DPT	= 000001	 183-7346  #183-7346   183-7346  
$$$DRA	= 000001	 178-7131  #178-7131   178-7131  
$$$DRM	= 000001	 187-7408  #187-7408   187-7408  
$$$DTE	= 000002	 178-7133  #178-7133   178-7133   182-7325  #182-7325   182-7325  
$$$EBS	= 000001	 178-7116  #178-7116   178-7116  
$$$ELE	= 000003	 176-7070  #176-7070   176-7070   178-7135  #178-7135   178-7135   184-7369  #184-7369   184-7369  
$$$ENB	= 000001	 187-7410  #187-7410   187-7410  
$$$ERR	= 000001	 182-7327  #182-7327   182-7327  
$$$EXA	= 000001	 174-6990  #174-6990   174-6990  
$$$EXT	= 000001	 183-7350  #183-7350   183-7350  
$$$FEB	= 000001	 180-7193  #180-7193   180-7193  
$$$FER	= 000001	 178-7137  #178-7137   178-7137  
$$$FLG	= 000001	 178-7139  #178-7139   178-7139  
$$$FLT	= 000002	 188-7431  #188-7431   188-7431   191-7502  #191-7502   191-7502  
$$$FM 	= 000002	 178-7118  #178-7118   178-7118   187-7412  #187-7412   187-7412  
$$$FRD	= 000001	 174-6992  #174-6992   174-6992  
$$$FSS	= 000002	 187-7414  #187-7414   187-7414   188-7433  #188-7433   188-7433  
$$$FUL	= 000001	 183-7356  #183-7356   183-7356  
$$$FWR	= 000001	 174-6994  #174-6994   174-6994  
$$$FXC	= 000001	 174-6996  #174-6996   174-6996  
$$$GLB	= ******	 70-3071    70-3071    70-3071    70-3071    70-3076    70-3076    70-3076    70-3076    70-3076   
                         70-3076    70-3076    70-3076    71-3139    71-3139    71-3139    71-3139    71-3139    71-3139   
                         71-3139    71-3139    72-3187    72-3187    72-3187    72-3187    72-3187    72-3187    72-3187   
                         72-3187    72-3190    72-3190    72-3190    72-3190    72-3190    72-3190    72-3190    72-3190   
                         72-3193    72-3193    72-3193    72-3193    72-3193    72-3193    72-3193    72-3193    73-3237   
                         73-3237    73-3237    73-3237    73-3237    73-3237    73-3237    73-3237    74-3297    74-3297   
                         74-3297    74-3297    74-3297    74-3297    74-3297    74-3297    75-3350    75-3350    75-3350   
                         75-3350    75-3350    75-3350    75-3350    75-3350    91-3955    91-3955    91-3955    91-3955   
                         91-3955    222-8648   222-8648   222-8648   222-8648   222-8648   222-8648   222-8648   222-8648  
                         258-10042  258-10042  258-10042  258-10042  258-10042  258-10042  258-10042  258-10042  258-10051 
                         258-10051  258-10051  258-10051  258-10051  258-10051  258-10051  258-10051  258-10060  258-10060 
                         258-10060  258-10060  258-10060  258-10060  258-10060  258-10060  258-10065  258-10065  258-10065 
                         258-10065  258-10065  258-10065  258-10065  258-10065 
$$$HAR	= 000001	 191-7504  #191-7504   191-7504  
$$$HLF	= 000001	 183-7358  #183-7358   183-7358  
$$$HLT	= 000001	 174-6998  #174-6998   174-6998  
$$$INC	= 000006	 175-7055  #175-7055   175-7055   176-7076  #176-7076   176-7076   177-7091  #177-7091   177-7091  
                         178-7159  #178-7159   178-7159   188-7435  #188-7435   188-7435   191-7506  #191-7506   191-7506  
$$$INI	= 000002	 174-7004  #174-7004   174-7004   182-7329  #182-7329   182-7329  
$$$INT	= 000001	 183-7352  #183-7352   183-7352  
$$$IO 	= 000001	 182-7331  #182-7331   182-7331  
$$$JAN	= 000001	 180-7191  #180-7191   180-7191  
$$$JMP	= 000001	 174-7006  #174-7006   174-7006  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 33

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$$$JUL	= 000001	 180-7203  #180-7203   180-7203  
$$$JUN	= 000001	 180-7201  #180-7201   180-7201  
$$$KL 	= 000001	 178-7141  #178-7141   178-7141  
$$$KLI	= 000002	 188-7437  #188-7437   188-7437   191-7508  #191-7508   191-7508  
$$$LOG	= 000001	 186-7391  #186-7391   186-7391  
$$$LPT	= 000001	 186-7393  #186-7393   186-7393  
$$$M  	= 000001	 174-7008  #174-7008   174-7008  
$$$MAR	= 000001	 180-7195  #180-7195   180-7195  
$$$MAY	= 000001	 180-7199  #180-7199   180-7199  
$$$MCR	= 000001	 174-7012  #174-7012   174-7012  
$$$MEM	= 000002	 188-7439  #188-7439   188-7439   191-7510  #191-7510   191-7510  
$$$MGN	= 000001	 183-7354  #183-7354   183-7354  
$$$MNT	= 000002	 179-7172  #179-7172   179-7172   185-7378  #185-7378   185-7378  
$$$MQ 	= 000001	 178-7120  #178-7120   178-7120  
$$$MRK	= 000001	 174-7010  #174-7010   174-7010  
$$$NOT	= 000001	 188-7441  #188-7441   188-7441  
$$$NOV	= 000001	 180-7211  #180-7211   180-7211  
$$$NRM	= 000001	 183-7342  #183-7342   183-7342  
$$$NUL	= 000001	 174-6978  #174-6978   174-6978  
$$$NXT	= 000004	 175-7057  #175-7057   175-7057   176-7078  #176-7078   176-7078   177-7093  #177-7093   177-7093  
                         178-7161  #178-7161   178-7161  
$$$OCT	= 000001	 180-7209  #180-7209   180-7209  
$$$OFS	= 000002	 188-7443  #188-7443   188-7443   191-7512  #191-7512   191-7512  
$$$OPR	= 000002	 179-7174  #179-7174   179-7174   185-7380  #185-7380   185-7380  
$$$OST	= 000014	#70-3071    70-3071    70-3071   #70-3071    70-3071    70-3071   #70-3071    70-3071    70-3071   
                        #70-3071   #70-3076    70-3076    70-3076   #70-3076    70-3076    70-3076   #70-3076    70-3076   
                         70-3076   #70-3076    70-3076    70-3076   #70-3076    70-3076    70-3076   #70-3076    70-3076   
                         70-3076   #70-3076    70-3076   #71-3139    71-3139    71-3139   #71-3139    71-3139    71-3139   
                        #71-3139    71-3139    71-3139   #71-3139    71-3139    71-3139   #71-3139    71-3139    71-3139   
                        #71-3139    71-3139    71-3139   #71-3139    71-3139   #72-3187    72-3187    72-3187   #72-3187   
                         72-3187    72-3187   #72-3187    72-3187    72-3187   #72-3187    72-3187    72-3187   #72-3187   
                         72-3187    72-3187   #72-3187    72-3187    72-3187   #72-3187    72-3187   #72-3190    72-3190   
                         72-3190   #72-3190    72-3190    72-3190   #72-3190    72-3190    72-3190   #72-3190    72-3190   
                         72-3190   #72-3190    72-3190    72-3190   #72-3190    72-3190    72-3190   #72-3190    72-3190   
                        #72-3193    72-3193    72-3193   #72-3193    72-3193    72-3193   #72-3193    72-3193    72-3193   
                        #72-3193    72-3193    72-3193   #72-3193    72-3193    72-3193   #72-3193    72-3193    72-3193   
                        #72-3193    72-3193   #73-3237    73-3237    73-3237   #73-3237    73-3237    73-3237   #73-3237   
                         73-3237    73-3237   #73-3237    73-3237    73-3237   #73-3237    73-3237    73-3237   #73-3237   
                         73-3237    73-3237   #73-3237    73-3237   #74-3297    74-3297    74-3297   #74-3297    74-3297   
                         74-3297   #74-3297    74-3297    74-3297   #74-3297    74-3297    74-3297   #74-3297    74-3297   
                         74-3297   #74-3297    74-3297    74-3297   #74-3297    74-3297   #75-3350    75-3350    75-3350   
                        #75-3350    75-3350    75-3350   #75-3350    75-3350    75-3350   #75-3350    75-3350    75-3350   
                        #75-3350    75-3350    75-3350   #75-3350    75-3350    75-3350   #75-3350    75-3350   #91-3955   
                         91-3955    91-3955   #91-3955    91-3955    91-3955   #91-3955    91-3955    91-3955   #91-3955   
                         91-3955    91-3955   #91-3955   #222-8648   222-8648   222-8648  #222-8648   222-8648   222-8648  
                        #222-8648   222-8648   222-8648  #222-8648   222-8648   222-8648  #222-8648   222-8648   222-8648  
                        #222-8648   222-8648   222-8648  #222-8648   222-8648  #258-10042  258-10042  258-10042 #258-10042 
                         258-10042  258-10042 #258-10042  258-10042  258-10042 #258-10042  258-10042  258-10042 #258-10042 
                         258-10042  258-10042 #258-10042  258-10042  258-10042 #258-10042  258-10042 #258-10051  258-10051 
                         258-10051 #258-10051  258-10051  258-10051 #258-10051  258-10051  258-10051 #258-10051  258-10051 
                         258-10051 #258-10051  258-10051  258-10051 #258-10051  258-10051  258-10051 #258-10051  258-10051 
                        #258-10060  258-10060  258-10060 #258-10060  258-10060  258-10060 #258-10060  258-10060  258-10060 
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 34

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #258-10060  258-10060  258-10060 #258-10060  258-10060  258-10060 #258-10060  258-10060  258-10060 
                        #258-10060  258-10060 #258-10065  258-10065  258-10065 #258-10065  258-10065  258-10065 #258-10065 
                         258-10065  258-10065 #258-10065  258-10065  258-10065 #258-10065  258-10065  258-10065 #258-10065 
                         258-10065  258-10065 #258-10065  258-10065 
$$$OUT	= 000002	 188-7445  #188-7445   188-7445   191-7514  #191-7514   191-7514  
$$$PAG	= 000001	 182-7333  #182-7333   182-7333  
$$$PC 	= 000001	 178-7122  #178-7122   178-7122  
$$$PI 	= 000002	 178-7143  #178-7143   178-7143   182-7335  #182-7335   182-7335  
$$$PRG	= 000002	 179-7176  #179-7176   179-7176   185-7382  #185-7382   185-7382  
$$$PRV	= 000004	 175-7059  #175-7059   175-7059   176-7080  #176-7080   176-7080   177-7095  #177-7095   177-7095  
                         178-7163  #178-7163   178-7163  
$$$PST	= 000002	 188-7447  #188-7447   188-7447   191-7516  #191-7516   191-7516  
$$$QTR	= 000001	 183-7360  #183-7360   183-7360  
$$$QUT	= 000001	 174-7040  #174-7040   174-7040  
$$$R  	= 000001	 174-7014  #174-7014   174-7014  
$$$REG	= 000001	 178-7145  #178-7145   178-7145  
$$$REM	= 000001	 179-7181  #179-7181   179-7181  
$$$RLD	= 000002	 188-7449  #188-7449   188-7449   191-7518  #191-7518   191-7518  
$$$RPT	= 000003	 174-7016  #174-7016   174-7016   188-7451  #188-7451   188-7451   191-7520  #191-7520   191-7520  
$$$RST	= 000001	 174-7018  #174-7018   174-7018  
$$$RTY	= 000002	 188-7453  #188-7453   188-7453   191-7522  #191-7522   191-7522  
$$$RUN	= 000001	 174-7020  #174-7020   174-7020  
$$$SBR	= 000001	 178-7153  #178-7153   178-7153  
$$$SCR	= 000001	 178-7155  #178-7155   178-7155  
$$$SEP	= 000001	 180-7207  #180-7207   180-7207  
$$$SET	= 000001	 174-7022  #174-7022   174-7022  
$$$SHO	= 000001	 174-7024  #174-7024   174-7024  
$$$SHU	= 000001	 174-7026  #174-7026   174-7026  
$$$SLO	= 000001	 183-7362  #183-7362   183-7362  
$$$SNP	= 000001	 174-7029  #174-7029   174-7029  
$$$STR	= 000001	 174-7032  #174-7032   174-7032  
$$$SWP	= 000001	 174-7034  #174-7034   174-7034  
$$$TAK	= 000001	 174-7036  #174-7036   174-7036  
$$$TEN	= 000004	 176-7072  #176-7072   176-7072   178-7147  #178-7147   178-7147   184-7371  #184-7371   184-7371  
                         190-7483  #190-7483   190-7483  
$$$THS	= 000004	 175-7061  #175-7061   175-7061   176-7082  #176-7082   176-7082   177-7097  #177-7097   177-7097  
                         178-7165  #178-7165   178-7165  
$$$TRK	= 000002	 188-7456  #188-7456   188-7456   191-7525  #191-7525   191-7525  
$$$TTY	= 000001	 186-7395  #186-7395   186-7395  
$$$T1 	= 000006	#70-3071    70-3071    70-3071   #70-3071    70-3071    70-3071   #70-3071    70-3071    70-3071   
                        #80-3558    80-3558   #85-3767    85-3767   #160-6565   160-6565  
$$$UCD	= 000001	 190-7485  #190-7485   190-7485  
$$$UNM	= 000001	 174-7038  #174-7038   174-7038  
$$$USR	= 000002	 179-7183  #179-7183   179-7183   185-7384  #185-7384   185-7384  
$$$VER	= 000001	 191-7528  #191-7528   191-7528  
$$$VMA	= 000001	 178-7149  #178-7149   178-7149  
$$$VMH	= 000001	 178-7151  #178-7151   178-7151  
$$$WHA	= 000001	 174-7042  #174-7042   174-7042  
$$$XCT	= 000001	 174-7044  #174-7044   174-7044  
$$$ZER	= 000001	 174-7046  #174-7046   174-7046  
.ABRTC	= ******  GX	 174-6980  
.APRWD	  000000 RG	#35-1473    35-1565   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 35

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.ATCID	  000460 RG	 255-9931  #258-10059 
.ATLMD	= 000033	#21-837    
.BRCLK	= 005000	#87-3821   
.BRMBC	  003334 RG	#88-3850   
.BUFSZ	= 001000  G	#69-2935    69-2954    69-2991    80-3558    85-3767    85-3774   
.BURST	  003340 RG	#88-3852    115-4860   115-4860  
.CCMDN	  000002 RG	#35-1475    61-2594   *156-6412  *158-6483  *158-6486  *163-6639   166-6751  
.CDIBC	= 000412 R	#222-8651  
.CDIBP	= 000410 R	#222-8650  
.CDINP	  000374 RG	 221-8580  #222-8647   222-8650   222-8651  
.CDOBC	= 000432 RG	*221-8576   252-9842  *253-9878   255-9940  *256-9962  #258-10045 
.CDOBP	= 000430 RG	*221-8575   255-9939  *256-9963  #258-10044 
.CDOFC	= 000434 RG	#258-10046 
.CDOUT	  000414 RG	 255-9933  #258-10041  258-10044  258-10045  258-10046 
.CECLK	= 004000	#87-3821   
.CESCK	  000000 RG	#47-2084    97-4139    97-4139    100-4271   100-4271   147-6035   147-6035   159-6518   159-6518  
.CHTAB	  001450 RG	#40-1761    48-2132    48-2139    49-2169    51-2234    52-2271    53-2300    59-2537    169-6838  
                         221-8594   236-9227  
.CIBFL	= 000214  G	#38-1681    222-8648  
.CIBFR	  000330 RG	#38-1679    38-1681    221-8557   221-8571   221-8575   221-8584   222-8648  
.CISTS	  000004 RG	#35-1477    221-8565   221-8572   221-8576   221-8582   221-8585   221-8589   222-8648  
.CKARG	  000070 RG	#48-2130    226-8793   226-8793   226-8800   226-8800   228-8898   228-8898   234-9140   234-9140  
.CKCOL	  000130 RG	#49-2167   
.CKCTC	  000166 RG	#50-2202    165-6707   165-6707  
.CKEOC	  000214 RG	#51-2232    156-6413   166-6748   166-6748   172-6915   172-6915  
.CKEOS	  000256 RG	#52-2269    227-8823   227-8823  
.CKOBJ	  000300 RG	#53-2298   
.CKRNP	  000316 RG	#54-2328   
.CKRUN	  000326 RG	#54-2333   
.CKSYM	  000374 RG	 48-2131    48-2131    51-2239    51-2239    53-2299    53-2299   #55-2377    55-2380    165-6708  
                         165-6708   226-8789   226-8789  
.CLDFB	  003370 RG	#89-3887    122-5092   122-5092   128-5291   128-5291   141-5811   141-5811  
.CLDFR	  003374 RG	#89-3889   
.CLDFW	  003404 RG	 89-3888    89-3888   #89-3894    124-5175   124-5175   126-5224   126-5224   134-5559   134-5559  
                         155-6366   155-6366  
.CLKWD	  000010 RG	#35-1479    124-5164  *129-5352   130-5365   145-5968  
.CLOSE	  002114 RG	 74-3290    74-3290   #75-3329    77-3445    77-3445    80-3572    80-3572    160-6557   160-6557  
                         160-6564   160-6564  
.CLRCM	= ******  GX	 174-6982  
.CLRFF	  003420 RG	#90-3923    114-4824   114-4824   117-4948   117-4948   152-6184   152-6184  
.CLRMR	= 006000	#87-3821   
.CLRUN	= 010000	#87-3821   
.CMDTB	  004310 RG	 158-6482  #174-6977  
.CMNDL	= 000430  G	#38-1689    222-8604  
.COBFL	= 000204  G	#38-1685    256-9964  
.COBFR	  000544 RG	 35-1599   #38-1683    256-9963   256-9965   258-10042  258-10051 
.COMEF	= ******  GX	*141-5823  
.COMMA	= 000054	#21-835    
.COMND	  000760 RG	#38-1687    38-1689    163-6665  
.CONBT	= 012000	#87-3821   
.CONTC	= ******  GX	 174-6984  
.COSTS	  000012 RG	#35-1481    255-9935   258-10042 
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 36

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.CRAMA	  000016 RG	#35-1483   *135-5600  
.CRAMR	  000020 RG	#35-1485    134-5546   134-5565  
.CRAMW	  000042 RG	#35-1489   
.CSHRG	= 164000	#87-3821   
.DBGSW	  000064 RG	#35-1494    68-2866    160-6547  
.DELET	  002100 RG	#75-3325   
.DEPAR	= ******  GX	 176-7068  
.DFBLK	  000304 RG	#37-1658    106-4513   108-4610   111-4712  
.DFRB 	  000312 RG	#37-1661    89-3891    106-4476   211-8198  
.DFRED	= ******  GX	 174-6992  
.DFWB 	  000304 RG	#37-1659    89-3896    107-4550  *122-5095  *122-5103  *124-5177   126-5225   155-6351   211-8205  
.DFWRT	= ******  GX	 174-6994  
.DFXCT	= ******  GX	 174-6996  
.DIAG1	= 000000	#10-352    
.DIAG2	= 000002	#10-353     93-4000    93-4021   
.DIAG3	= 000006	#10-355     93-4008    93-4029   
.DISCC	= ******  GX	 174-6988  
.DOCMD	  007714 RG	#158-6474   163-6669   163-6669   172-6917   172-6917  
.DPBFR	  000066 RG	#35-1497    102-4328  
.DPBFX	  000074 RG	#35-1499   
.DPDPB	  000312 RG	 101-4289   101-4290  #102-4327  
.DPETB	  004612 RG	#175-7052  
.DPKLM	  003762 RG	#99-4229   
.DPOEL	= ******  GX	 176-7070  
.DPOKL	= ******  GX	 176-7072  
.DPOSC	= ******  GX	 174-6986  
.DPOSD	= ******  GX	 175-7053   176-7074  
.DPOSI	= ******  GX	 175-7055   176-7076  
.DPOSN	= ******  GX	 175-7057   176-7078  
.DPOSP	= ******  GX	 175-7059   176-7080  
.DPOSZ	= ******  GX	 175-7061   176-7082  
.DPOTB	  004652 RG	#176-7067  
.DPTRK	  012440 RG	 99-4241    99-4241   #216-8375  
.DREG 	  000320 RG	#37-1664   *94-4038    94-4045    95-4093    106-4513   108-4610   111-4712  
.DRLTC	= 015000	#87-3821   
.DSACF	= 066000	#87-3821   
.DSIOJ	= 065000	#87-3821   
.DTAB 	  004200 R	 99-4231   #101-4288  
.DTCID	  000474 RG	 255-9937  #258-10064 
.DTDI1	  000320 RG	#37-1665   
.DTDI2	  000322 RG	#37-1667   
.DTDI3	  000326 RG	#37-1671   
.DTDW1	  003530 RG	 47-2088    47-2088   #93-4016    104-4402   104-4402   104-4410   104-4410   114-4819   114-4819  
                         115-4832   115-4832   115-4861   115-4861   117-4950   117-4950   152-6191   152-6191  
.DTDW2	  003536 RG	#93-4020   
.DTDW3	  003556 RG	#93-4028   
.DTSTA	  003546 RG	 56-2407    56-2407   #93-4024   
.DTSTS	  000324 RG	#37-1669   
.DTSTW	= 000004	#10-354     93-4004    93-4025   
.DTTRK	  012316 RG	 94-4049   #214-8287  
.DWDW1	  003454 RG	#93-3995   
.DWDW2	  003462 RG	#93-3999    142-5872   142-5872  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 37

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.DWDW3	  003502 RG	#93-4007    142-5874  
.DWSTA	  003472 RG	#93-4003   
.EBCLK	  003634 RG	#97-4137    104-4401   104-4401  
.EBPCK	  000410 RG	#56-2406    159-6519  
.EDELA	  000102 RG	#35-1509    68-2862   
.EDKLA	  000104 RG	#35-1511    102-4328   102-4346  
.EDKLX	  000112 RG	#35-1513   
.EIOJA	= 067000	#87-3821   
.ELDDW	  000120 RG	#35-1515   
.ELEDW	  000122 RG	#35-1517   
.ELNCK	  013130 RG	#223-8677   224-8723   224-8723  
.ENTER	  001664 RG	#72-3168   
.ETAB 	  004170 R	 99-4215   #101-4282  
.EXAD 	= ******  GX	 178-7104  
.EXADX	= ******  GX	 178-7106  
.EXAMC	= ******  GX	 174-6990  
.EXAMD	= ******  GX	 177-7089   178-7157  
.EXAMF	= ******  GX	 178-7139  
.EXAMI	= ******  GX	 177-7091   178-7159  
.EXAMK	= ******  GX	 178-7141  
.EXAMN	= ******  GX	 177-7093   178-7161  
.EXAMP	= ******  GX	 177-7095   178-7163  
.EXAMZ	= ******  GX	 177-7097   178-7165  
.EXARR	= ******  GX	 178-7108  
.EXARX	= ******  GX	 178-7110  
.EXBFR	  000124 RG	#35-1519    102-4346  
.EXBRR	= ******  GX	 178-7112  
.EXBRX	= ******  GX	 178-7114  
.EXCRA	= ******  GX	 178-7127  
.EXCRL	= ******  GX	 178-7129  
.EXCTC	= ******  GX	 174-7044  
.EXCTF	  004150 RG	#103-4373  
.EXDPB	  000324 RG	 101-4283   101-4284  #102-4345  
.EXDPM	  004020 RG	 99-4216    99-4216    99-4232    99-4232   #100-4251  
.EXDRA	= ******  GX	 178-7131  
.EXDTE	= ******  GX	 178-7133  
.EXEBS	= ******  GX	 178-7116  
.EXECT	  004226 RG	#104-4396  
.EXETB	  004734 RG	#177-7088  
.EXFER	= ******  GX	 178-7137  
.EXFMR	= ******  GX	 178-7118  
.EXITP	  010074 RG	#160-6545   222-8635   256-9968  
.EXKLM	  003730 RG	#99-4213   
.EXMEL	= ******  GX	 178-7135  
.EXMKL	= ******  GX	 178-7147  
.EXMPI	= ******  GX	 178-7143  
.EXMQR	= ******  GX	 178-7120  
.EXMTB	  004774 RG	#178-7103   178-7124  
.EXREG	= ******  GX	 178-7145  
.EXSBR	= ******  GX	 178-7153  
.EXSCR	= ******  GX	 178-7155  
.EXTND	  002004 RG	#74-3273    85-3778    85-3778   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 38

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.EXTRK	  012426 RG	 99-4225    99-4225   #216-8370  
.EXVAB	= ******  GX	 178-7125  
.EXVMA	= ******  GX	 178-7149  
.EXVMH	= ******  GX	 178-7151  
.EXVPC	= ******  GX	 178-7122  
.FEMOD	= ******  GX	 54-2342    165-6738   166-6758  
.FISTS	  001630 RG	#69-2932    70-3055    70-3076    71-3122    71-3125    71-3139    72-3171    72-3175    72-3187   
                         72-3190    73-3237    74-3276    74-3297    75-3336    75-3350    80-3558    80-3560    80-3563   
                         85-3767    85-3769    85-3776   
.FNDIR	  001452 RG	#70-3045    71-3116    71-3116   
.FREAD	  004362 RG	 97-4146    97-4146   #106-4468   128-5298   128-5298   129-5349   129-5349   132-5471   132-5471  
                         134-5552   134-5552   136-5638   136-5638   137-5682   137-5682   138-5711   138-5711   139-5755  
                         139-5755  
.FRTRK	  012156 RG	 106-4488   106-4488  #211-8195  
.FWRIT	  004444 RG	#107-4548   116-4912   116-4912   120-5059   120-5059   122-5098   122-5098   122-5106   122-5106  
                         124-5179   124-5179   124-5184   124-5184   126-5233   126-5233   126-5240   126-5240   128-5293  
                         128-5293   134-5562   134-5562   134-5564   134-5564   141-5815   141-5815   141-5820   141-5820  
                         154-6280   154-6280   155-6357   155-6357   155-6365   155-6365   155-6368   155-6368   155-6370  
                         155-6370  
.FWTRK	  012176 RG	 108-4583   108-4583  #211-8202  
.FXCT 	  004566 RG	 88-3857    90-3931    90-3931    97-4144    97-4144   #110-4640   113-4767   113-4767   119-5001  
                         119-5001   120-5061   127-5279   127-5279   128-5305   128-5305   128-5310   128-5310   134-5544  
                         134-5544   147-6039   147-6039   150-6133   150-6133   153-6237   153-6237  
.FXTRK	  012216 RG	 111-4685   111-4685  #211-8209  
.GFNR 	= 102000	#87-3821   
.GTCMD	  012574 RG	 163-6666   163-6666  #220-8509  
.GTELN	  013204 RG	#224-8717   228-8900   228-8900  
.GTEXP	  013672 RG	 226-8797   226-8797   227-8822   227-8822  #229-8973   235-9190   235-9190  
.GTFCT	  014100 RG	 231-9034   231-9034   232-9069   232-9069  #233-9103   235-9171   235-9171   235-9176   235-9176  
                         235-9182   235-9182  
.GTKLA	  013234 RG	#225-8750  
.GTKLN	  013266 RG	 172-6911   172-6911  #226-8787  
.GTLIN	  012630 RG	 220-8513   220-8513  #221-8555  
.GTNBR	  014374 RG	 233-9112   233-9112  #236-9218  
.GTNUM	  013266 RG	 224-8722   224-8722   225-8751   225-8751  #226-8786  
.GTOPC	  013500 RG	 226-8795   226-8795  #228-8876  
.GTTRM	  013766 RG	 229-8974   229-8974   230-9001   230-9001  #231-9033  
.HALTC	= ******  GX	 174-6998  
.INATT	  002716 RG	#69-2966    80-3556    80-3569    160-6554  
.INBBC	  001660 RG	#69-2949   *78-3487    78-3488   *78-3494    79-3521   *79-3527   *80-3563   
.INBUF	  001664 RG	#69-2953    80-3558    80-3562   
.INCHC	  000132 RG	#35-1521   *221-8558  *222-8603   222-8604   222-8610  *236-9219  *236-9229   237-9251  
.INDFG	  001626 RG	#69-2928   *77-3442   *80-3571    160-6552  *160-6556   221-8559  
.INFN 	  001634 RG	#69-2939   
.INFNB	  002664 RG	#69-2956    77-3443   
.INICL	= 070000	#87-3821   
.INICP	= ******  GX	 35-1603   
.INITC	= ******  GX	 174-7004  
.INPOS	  001662 RG	#69-2951    78-3484   *78-3486    78-3492   *78-3493    79-3525   *79-3526   *80-3562   
.INVBN	  001654 RG	#69-2947   *80-3554   *80-3555    80-3556    80-3558    80-3558   
.IRADX	  000134 RG	#35-1523   *66-2778    172-6905  *172-6906  *172-6912   234-9145  *235-9161  *235-9165  *235-9169  
                        *235-9172   236-9223  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 39

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.IRLTC	= 014000	#87-3821   
.JUMPC	= ******  GX	 174-7006  
.KLCON	  004736 RG	 104-4423   104-4423  #113-4756  
.KLDFR	  000336 RG	 60-2560   *106-4469   106-4473  #106-4512   211-8197  
.KLDFW	  000350 RG	 60-2564   *107-4549   108-4569   108-4573  #108-4609   211-8204  
.KLDFX	  000362 RG	 60-2568   *110-4641   110-4645   110-4648  #111-4711   211-8211  
.KLE  	= ******  GX	 221-8564   221-8564  
.KLEDF	  000144 RG	#35-1527   *163-6646   221-8562  
.KLEPT	  000146 RG	#35-1529   
.KLERQ	= ******  GX	 159-6514  *160-6566   163-6644  
.KLEVL	  000150 RG	#35-1531   
.KLFLG	= ******  GX	*47-2097   *47-2099    54-2338   *101-4297  *101-4301   103-4374   104-4398  *108-4578   110-4654  
                        *110-4656   110-4660  *110-4662  *110-4669  *110-4675   113-4758   116-4913   117-4941   119-5014  
                        *127-5280  *128-5311   148-6066   148-6068   163-6641  
.KLGO 	  004744 RG	#113-4759   116-4914  
.KLHLT	  005034 RG	#114-4817   116-4909   116-4909   117-4943   120-5057   120-5057  
.KLINC	  000136 RG	#35-1525   
.KLMTB	  005270 RG	#179-7171  
.KLMT1	  005314 RG	#179-7180  
.KLRST	  005274 RG	#119-4991   146-6006   146-6006  
.KLSNP	  000151 RG	#35-1533   
.KLST 	  005164 RG	#116-4907  
.KLSTP	  005212 RG	#117-4940   148-6069   148-6069  
.KLXCT	  005426 RG	 103-4382   103-4382   104-4399   104-4399  #120-5056  
.LCRDL	= 052000	#87-3821   
.LCRDR	= 051000	#87-3821   
.LCRM1	= 057000	#87-3821   
.LCRM2	= 056000	#87-3821   
.LCRM3	= 055000	#87-3821   
.LCRM4	= 054000	#87-3821   
.LCRM5	= 053000	#87-3821   
.LDAR 	= 077000	#87-3821   
.LDBRC	  005452 RG	#122-5088  
.LDBRG	  005456 RG	 88-3855    88-3855   #122-5090  
.LDBRL	= 043000	#87-3821   
.LDBRR	= 042000	#87-3821   
.LDCK1	= 046000	#87-3821   
.LDCK2	= 047000	#87-3821   
.LDCLK	  005554 RG	#124-5162   141-5808   141-5808   143-5927   143-5927   145-5971   145-5971  
.LDCRA	  005652 RG	#126-5219   134-5542   134-5542   152-6187   152-6187   155-6349   155-6349  
.LDDIS	= 045000	#87-3821   
.LDOBC	= 000454 RG	*221-8585  *255-9940   255-9952  #258-10054 
.LDOBP	= 000452 RG	*221-8584  *255-9939   255-9951  #258-10053 
.LDOFC	= 000456 R	#258-10055 
.LDOUT	  000436 RG	 255-9944  #258-10050  258-10053  258-10054  258-10055 
.LDPAR	  005572 RG	#124-5168   141-5809   141-5809   145-5975   145-5975  
.LDRJD	= 064000	#87-3821   
.LDRJV	= 063000	#87-3821   
.LDRM1	= 060000	#87-3821   
.LDRM2	= 061000	#87-3821   
.LDRM3	= 062000	#87-3821   
.LDSEL	= 044000	#87-3821   
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 40

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.LDSTS	  000160 RG	#35-1544    255-9946   258-10051 
.LDZFL	  000166 RG	#35-1548   *212-8222  *214-8288  *243-9468  *245-9557   247-9646  *247-9651   250-9759  *250-9763  
.LGLWD	  000164 RG	#35-1546   *158-6485   159-6497  *159-6508  *163-6667  
.LOKUP	  001574 RG	#71-3114   
.MARKC	= ******  GX	 174-7010  
.MEMFL	  000170 RG	#35-1550   
.MEMRS	= 076000	#87-3821   
.MISC 	= ******  GX	*160-6567  
.MONTB	  005332 RG	#180-7190  
.MRCLR	  005766 RG	#127-5276   141-5810   141-5810  
.MTDPB	  000266 RG	 90-3926   #91-3954   
.NOERR	= ******  GX	*47-2095   *149-6101  
.NOHLT	= ******  GX	*90-3929   *113-4777  *119-5019  *146-6007  
.NOTSW	  000172 RG	#35-1552   
.NSETB	  005444 RG	 58-2512   #181-7220  
.NULLC	  007702 RG	#156-6411   174-6978  
.OPEN 	  001736 RG	#73-3220   
.ORADX	  000174 RG	#35-1554   *66-2779    243-9472   243-9476   244-9511   244-9515   245-9560   245-9564   246-9599  
                         246-9603   250-9752  
.OTATT	  004016 RG	#69-3003   *74-3278   *74-3279   *74-3283   *74-3284    74-3285    81-3616   *81-3618   *84-3724   
                        *84-3725   *85-3771   *85-3772    160-6562  
.OTBBC	  002760 RG	#69-2986   *82-3661    82-3662   *82-3667    83-3693   *83-3698    84-3726    84-3728    84-3734   
                        *85-3774   
.OTBUF	  002764 RG	#69-2990    74-3284    84-3725    85-3767    85-3773   
.OTFN 	  002734 RG	#69-2976   
.OTFNB	  003764 RG	#69-2993    72-3187    72-3190   
.OTPOS	  002762 RG	#69-2988    74-3283    82-3658   *82-3660    82-3665   *82-3666    83-3696   *83-3697    84-3724   
                         84-3729   *85-3773   
.OTVBN	  002754 RG	#69-2984   *85-3765   *85-3766    85-3767    85-3767    85-3771    85-3772   
.OUTLG	  000154 RG	#35-1537   *74-3288    160-6558  *160-6560   255-9948  
.OUTLP	  000155 RG	#35-1539    255-9942  
.OUTTY	  000156 RG	#35-1541    255-9929  
.PARER	  000432 RG	#58-2497    66-2792    66-2792   
.PASS 	  000152 RG	#35-1535    242-9399  
.PCAB1	= 150000	#87-3821   
.PCAB2	= 151000	#87-3821   
.PCAB3	= 152000	#87-3821   
.PCAB4	= 153000	#87-3821   
.PEWRD	  000176 RG	#35-1556    139-5749  
.PITAB	  000200 RG	#35-1558   
.PSCWD	  000204 RG	#35-1560    124-5170  *129-5353   130-5371   145-5967  
.PTDIE	  001046 RG	#64-2690    68-2858   
.PTOAT	  001352 RG	 35-1583   #68-2853   
.PTTRP	  001124 RG	 36-1651   #66-2762   
.QUITC	= ******  GX	 174-7040  
.RCRM1	= 147000	#87-3821   
.RCRM2	= 146000	#87-3821   
.RCRM3	= 145000	#87-3821   
.RCRM4	= 144000	#87-3821   
.RCSPF	= 141000	#87-3821   
.RDCPP	  006134 RG	#129-5340   145-5966   145-5966  
.RDCRA	= ******  GX	 135-5599   135-5599  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 41

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.RDCRD	  006270 RG	#132-5467   134-5557   134-5557  
.RDCRM	  006326 RG	#134-5538  
.RDCRO	  006476 R	#135-5598  
.RDCRR	  006360 RG	#134-5545   135-5601   135-5601  
.RDFMA	  006516 RG	#136-5634   137-5678   137-5678  
.RDFMO	  006600 RG	#137-5675  
.RDFMP	  006634 RG	#138-5708  
.RDIPE	  006670 RG	 62-2627    62-2627   #139-5745  
.RDJ14	= 134000	#87-3821   
.RDJ71	= 135000	#87-3821   
.RDMAB	= 133000	#87-3821   
.RDXSV	  000206 RG	#35-1562    66-2778    66-2779   *172-6905   172-6912  
.READ 	  002440 RG	 78-3490    78-3490    79-3523    79-3523   #80-3553   
.READB	  002406 RG	 77-3436    77-3436   #79-3520   
.READR	  002224 RG	#77-3428    221-8573   221-8573  
.READW	  002330 RG	 77-3430    77-3430   #78-3483   
.RECNT	  004034 RG	#69-3011   *81-3609    81-3615   *81-3628   
.RECPT	  004036 RG	#69-3013    81-3607   *81-3608   *81-3627   
.RECRD	  004040 RG	 69-3014   #69-3015    81-3614    81-3627   
.REGRW	  000300 RG	*93-3996   *93-4000   *93-4004   *93-4008   *93-4010    93-4011    93-4012   *93-4017   *93-4021   
                        *93-4025   *93-4029   *94-4036    94-4042   #95-4089    214-8292   214-8296   214-8302   214-8306  
.REGSV	  010302 RG	 66-2770    68-2856    124-5163   124-5169   129-5341   139-5746  #162-6624   216-8371   216-8376  
.RELWD	  000210 RG	#35-1564    234-9127  
.REMOV	  001564 RG	#71-3111   
.REPTC	  011022 RG	#172-6904   174-7016  
.RESET	  006752 RG	#141-5801   143-5922   143-5922   145-5969   145-5969  
.RESTB	  006106 RG	#182-7320  
.RESTC	= ******  GX	 174-7018  
.RESTD	  007066 RG	 100-4274   100-4274   141-5803   141-5803  #142-5870  
.RESTI	  007106 RG	#143-5919  
.RESTP	  007132 RG	 126-5222   126-5222  #145-5963  
.RPTCT	  000212 RG	#35-1566    163-6668  
.RPTPT	  000220 RG	#35-1568   *158-6480  
.RSALL	= ******  GX	 182-7321  
.RSAPR	= ******  GX	 182-7323  
.RSDTE	= ******  GX	 182-7325  
.RSERR	= ******  GX	 182-7327  
.RSPAG	= ******  GX	 182-7333  
.RSTIN	= ******  GX	 182-7329  
.RSTIO	= ******  GX	 182-7331  
.RSTKL	  007204 RG	 66-2776    66-2776    103-4384  #146-6003  
.RSTPI	= ******  GX	 182-7335  
.RUNCM	= ******  GX	 174-7008   174-7012   174-7014   174-7020  
.R50TB	  001410 RG	#39-1693    257-10001 
.SCACB	= ******  GX	 188-7421  
.SCCEC	= ******  GX	 183-7344  
.SCCED	= ******  GX	 183-7346  
.SCCEE	= ******  GX	 183-7348  
.SCCLK	= ******  GX	 188-7425  
.SCCLN	= ******  GX	 183-7342  
.SCCOM	= ******  GX	 185-7378  
.SCCON	= ******  GX	 188-7427  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 42

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.SCCOO	= ******  GX	 185-7380  
.SCCOP	= ******  GX	 185-7382  
.SCCOT	  006312 RG	#185-7377  
.SCCOU	= ******  GX	 185-7384  
.SCCRF	= ******  GX	 183-7356  
.SCCRH	= ******  GX	 183-7358  
.SCCRQ	= ******  GX	 183-7360  
.SCCRS	= ******  GX	 183-7362  
.SCCSE	= ******  GX	 183-7350  
.SCCSI	= ******  GX	 183-7352  
.SCCSM	= ******  GX	 183-7354  
.SCCTB	  006170 RG	#183-7341  
.SCDAT	= ******  GX	 188-7429  
.SCFSS	= ******  GX	 188-7433  
.SCINC	= ******  GX	 188-7435  
.SCKLN	= ******  GX	 188-7437  
.SCMEL	= ******  GX	 184-7369  
.SCMEM	= ******  GX	 188-7439  
.SCMKL	= ******  GX	 184-7371  
.SCMTB	  006274 RG	#184-7368  
.SCNOT	= ******  GX	 188-7441  
.SCOFS	= ******  GX	 188-7443  
.SCOTL	= ******  GX	 186-7391  
.SCOTP	= ******  GX	 186-7393  
.SCOTT	  006344 RG	#186-7390  
.SCOTY	= ******  GX	 186-7395  
.SCOUT	= ******  GX	 188-7445  
.SCPAL	= ******  GX	 187-7402  
.SCPAR	= ******  GX	 187-7404  
.SCPCR	= ******  GX	 187-7406  
.SCPDR	= ******  GX	 187-7408  
.SCPEN	= ******  GX	 187-7410  
.SCPFM	= ******  GX	 187-7412  
.SCPFS	= ******  GX	 187-7414  
.SCPST	= ******  GX	 188-7447  
.SCPTB	  006370 RG	#187-7401  
.SCRLD	= ******  GX	 188-7449  
.SCRPT	= ******  GX	 188-7451  
.SCRTY	= ******  GX	 188-7453  
.SCTAK	= ******  GX	 188-7423  
.SCTRK	= ******  GX	 188-7456  
.SEAMB	  000520 RG	#59-2532    189-7464  
.SECES	  000756 RG	#62-2625    189-7466  
.SECLK	= 003000	#87-3821   
.SEFRF	  000606 RG	#60-2559    189-7468  
.SEFWF	  000614 RG	#60-2563    189-7469  
.SEFXF	  000622 RG	#60-2567    189-7470  
.SEILC	  000544 RG	#59-2542    189-7472  
.SEILS	  000544 RG	#59-2543    189-7473  
.SEIPC	  000544 RG	#59-2544    189-7474  
.SENSK	  000520 RG	#59-2533    189-7476  
.SETCM	= ******  GX	 174-7022  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 43

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.SETFN	  002166 RG	 71-3117    71-3117   #76-3387   
.SETMR	= 007000	#87-3821   
.SETRN	= 011000	#87-3821   
.SETTB	  006444 RG	#188-7420  
.SFREC	= ******  GX	 188-7431  
.SHIFT	  011114 RG	 122-5101   122-5101  #194-7592  
.SHUTC	= ******  GX	 174-7026  
.SNAP 	= ******  GX	 174-7029  
.SPACE	= 000040	#21-836     39-1705    52-2273    55-2379    59-2547    222-8621   226-8798   241-9352   248-9663  
                         248-9664   248-9665   248-9666   248-9668   248-9669   248-9671   248-9672   248-9673   248-9675  
                         248-9676   248-9681   248-9685  
.SPETB	  006622 RG	 58-2499   #189-7463  
.SSCAN	  010760 RG	 165-6718   165-6718  #169-6824   169-6830   228-8885   228-8885  
.SSCLK	= 002000	#87-3821   
.SSTTB	  000264 RG	#36-1644    36-1653    64-2694   *68-2858   *68-2873   
.START	  010340 RG	 35-1571   #163-6635  
.STCLF	  007240 RG	 127-5281   127-5281  #147-6036  
.STCLK	  007232 RG	 104-4407   104-4407   113-4770   113-4770   119-5016   119-5016  #147-6033   152-6188   152-6188  
.STPCL	= 000000	#87-3821   
.STPKL	  007256 RG	 103-4380   103-4380  #148-6065  
.STPXC	  007302 RG	 88-3851    88-3851    104-4429   104-4429   115-4843   115-4843   115-4856   115-4856   122-5089  
                         122-5089   128-5290   128-5290   141-5805   141-5805   145-5965   145-5965  #149-6095   152-6185  
                         152-6185   154-6275   154-6275  
.STRCL	= 001000	#87-3821   
.STRTB	  006712 RG	#190-7482  
.STRTC	= ******  GX	 174-7032  
.STRTT	= ******  GX	 190-7483  
.STRTU	= ******  GX	 190-7485  
.STRTV	  000222 RG	#35-1570    66-2799    68-2874    166-6770  
.STRUN	  007332 RG	 104-4433   104-4433   113-4764   113-4764   119-4999   119-4999   119-5010   119-5010  #150-6128  
.STUCD	  007352 RG	#152-6180  
.SVESP	  000224 RG	#35-1572    163-6636   166-6769  
.SVKLF	  000226 RG	#35-1574   *47-2096    66-2774   *103-4383   119-4993   119-5002  *119-5022   146-6004  *146-6009  
                        *148-6068  *163-6638  
.SWPC 	= ******  GX	 174-7034  
.SWPIP	  000230 RG	#35-1576    47-2100   *66-2763   
.SYNXC	  007454 RG	 97-4157    115-4846   128-5308   128-5308  #153-6233   154-6277   154-6277  
.TAKEC	= ******  GX	 174-7036  
.TCRLF	  015536 RG	 58-2525    64-2699    64-2699    64-2704    64-2704    66-2790    66-2790    67-2809    67-2809   
                         68-2859    68-2859    68-2864    68-2864    166-6750   166-6750   212-8235   212-8235   221-8588  
                         221-8588   242-9422   242-9422   251-9799   253-9880  #254-9890  
.TFCHR	  015470 RG	 163-6664   163-6664   220-8519   220-8519  #252-9839  
.TPADD	  011502 RG	#201-7858   205-7996   205-7996   230-8987   236-9236   236-9236  
.TPCLR	  011356 RG	 89-3898    89-3898   #198-7732   205-7978   205-7978   226-8792   226-8792   250-9750   250-9750  
.TPCMP	  011424 RG	 197-7682   197-7682  #199-7784  
.TPCOM	  011366 RG	#198-7739   198-7747   198-7747   235-9177   235-9177  
.TPDEC	  011534 RG	 159-6503   159-6503  #202-7898   209-8119   209-8119  
.TPDIV	  011144 RG	#196-7648   232-9055   250-9753   250-9753  
.TPINC	  011522 RG	 197-7687   197-7687   198-7748  #202-7891   209-8130   209-8130  
.TPMUL	  011572 RG	#205-7970   232-9059   236-9233   236-9233  
.TPNEG	  011376 RG	#198-7746   235-9185   235-9185  
.TPSHI	  011756 RG	 126-5230   126-5230   126-5237   126-5237   132-5473   132-5473   136-5640   136-5640   136-5645  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 44

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         136-5645   138-5714   138-5714   155-6362   155-6362  #207-8048   209-8117   209-8117   209-8128  
                         209-8128   227-8815   227-8815  
.TPSHL	  012022 RG	#208-8099   232-9051  
.TPSUB	  011546 RG	 197-7684   197-7684  #203-7929   230-8991  
.TPTST	  011460 RG	 159-6495   159-6495   159-6504   159-6504   172-6913   172-6913   196-7653   196-7653  #200-7823  
                         205-7972   205-7972   205-7975   205-7975   205-8003   205-8003   208-8105   208-8105   209-8120  
                         209-8120   209-8131   209-8131   226-8802   226-8802   227-8824   227-8824   247-9648   247-9648  
                         249-9728   249-9728  
.TPXTN	  011404 RG	 196-7650   196-7650   196-7652   196-7652  #198-7751   208-8104   208-8104  
.TRKWD	  000232 RG	#35-1579    94-4047    99-4223    99-4239    106-4486   108-4581   111-4683  
.TRPEC	  000236 RG	#35-1584   *66-2769    66-2791   
.TRPIP	  000240 RG	#35-1586   *64-2691   *66-2764   *66-2785    66-2793   *66-2798   *67-2813   
.TRPPC	  000242 RG	#35-1588   *66-2767   *68-2854   
.TRPPS	  000244 RG	#35-1590   *66-2768   *68-2855   
.TRPSB	  000246 RG	#35-1592   *66-2766    66-2772    66-2780    66-2795   
.TRPTV	  000250 RG	#35-1594    66-2782   *66-2786   
.TRP4V	  000234 RG	#35-1582   
.TSCAN	  010510 RG	 158-6484   158-6484  #165-6706  
.TYACE	  014614 RG	#242-9397  
.TYAC1	  014646 RG	#242-9406  
.TYCHR	  015504 RG	 59-2539    59-2539    59-2552    59-2552    59-2555    59-2555    61-2593    61-2593    61-2597   
                         61-2597    241-9359   241-9359   242-9412   242-9412   250-9766   251-9811   251-9811   252-9840  
                         252-9840  #253-9875   254-9893   254-9893   254-9895   254-9895   257-10006  257-10006 
.TYCOL	  014526 RG	#241-9330   242-9413   242-9413  
.TYCOM	  014536 RG	 62-2636    62-2636   #241-9335  
.TYELA	  014746 RG	#243-9467  
.TYELN	  014752 RG	 64-2703    64-2703    68-2863    68-2863    214-8304   214-8304  #243-9469  
.TYINI	  015722 RG	 163-6640   163-6640  #256-9961  
.TYKLA	  015072 RG	 217-8399   217-8399   242-9417   242-9417  #245-9556  
.TYKLN	  015142 RG	 212-8233   212-8233   217-8403   217-8403   242-9421   242-9421  #246-9596  
.TYLIN	  015432 RG	 64-2701    64-2701    67-2808    67-2808    166-6754   166-6754   166-6763   166-6763   214-8310  
                         214-8310   217-8411   217-8411  #251-9797  
.TYMIN	  014546 RG	#241-9340  
.TYMSF	  015440 RG	 163-6648   163-6648  #251-9801  
.TYMSG	  015446 RG	 60-2577    60-2577    61-2591    61-2591    61-2595    61-2595    61-2600    62-2635    62-2635   
                         62-2646    62-2646    68-2861    68-2861    77-3447    77-3447    163-6652   163-6652   166-6752  
                         166-6752   212-8223   212-8223   214-8291   214-8291   214-8294   214-8294   217-8397   217-8397  
                         242-9404   242-9404   251-9798   251-9798   251-9802   251-9802  #251-9805  
.TYNCM	  015224 RG	 244-9523  #247-9640  
.TYNUM	  015302 RG	 247-9653   247-9653  #249-9717   250-9745  
.TYOBC	  000252 RG	#35-1596   *253-9879  *256-9964  
.TYOBP	  000254 RG	#35-1598    253-9876  *253-9877  *256-9965  
.TYOUT	  015564 RG	 221-8578   221-8578   252-9844   253-9883  #255-9928  
.TYOU1	  015644 RG	 221-8587   221-8587  #255-9941  
.TYP3D	  015016 RG	 60-2575    60-2575    212-8228   212-8228  #244-9508  
.TYR50	  015756 RG	 61-2607    61-2607   #257-9993  
.TYSLS	  014556 RG	 212-8231   212-8231   217-8400   217-8400  #241-9345   242-9418   242-9418  
.TYSPC	  014566 RG	 61-2598    61-2598    62-2637    62-2637    166-6762   166-6762   212-8232   212-8232   214-8295  
                         214-8295   217-8401   217-8401   217-8404   217-8404  #241-9350   242-9419   242-9419  
.TYUPA	  014576 RG	 59-2549    59-2549   #241-9355  
.T50TB	  001440 RG	#39-1707    257-9995  
.UMRKC	= ******  GX	 174-7038  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 45

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.VFYFL	  000256 RG	#35-1600   
.WHACB	= ******  GX	 191-7492  
.WHATB	  006730 RG	#191-7491  
.WHATC	= ******  GX	 174-7024   174-7042  
.WHATV	= ******  GX	 191-7528  
.WHCON	= ******  GX	 191-7498  
.WHDAT	= ******  GX	 191-7500  
.WHINC	= ******  GX	 191-7506  
.WHKLN	= ******  GX	 191-7508  
.WHMEM	= ******  GX	 191-7510  
.WHOFS	= ******  GX	 191-7512  
.WHOUT	= ******  GX	 191-7514  
.WHRDW	= ******  GX	 191-7504  
.WHREC	= ******  GX	 191-7502  
.WHRLD	= ******  GX	 191-7518  
.WHRPT	= ******  GX	 191-7520  
.WHRTY	= ******  GX	 191-7522  
.WHTAK	= ******  GX	 191-7494  
.WHTCL	= ******  GX	 191-7496  
.WHTPS	= ******  GX	 191-7516  
.WHTRK	= ******  GX	 191-7525  
.WRAR1	  007476 RG	#154-6276  
.WRCRM	  007520 RG	#155-6342  
.WRITB	  003030 RG	 81-3624    81-3624   #83-3692    84-3737    84-3737   
.WRITE	  003160 RG	 82-3664    82-3664    83-3695    83-3695    84-3739    84-3739   #85-3764   
.WRITR	  002616 RG	#81-3601    255-9953   255-9953  
.WRITW	  002754 RG	 81-3620    81-3620   #82-3657    84-3733    84-3733   
.WRITZ	  003060 RG	#84-3723    160-6561   160-6561  
.WRMBX	= 071000	#87-3821   
.WRTAR	  007472 RG	#154-6274  
.ZEROC	= ******  GX	 174-7046  
..DTSP	= ******  GX	 47-2094    47-2094   
..SACK	= ******  GX	 160-6572   160-6572  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 46

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ALUN$ 		#68-2920   #70-3071   
CALL  		#4-118     #47-2088   #47-2094   #48-2131   #51-2239   #53-2299   #56-2407   #58-2522   #59-2534   #59-2539   
                #59-2545   #59-2549   #59-2552   #59-2555   #60-2570   #60-2575   #60-2577   #61-2591   #61-2593   #61-2595   
                #61-2597   #61-2598   #61-2605   #61-2607   #62-2626   #62-2627   #62-2635   #62-2636   #62-2637   #62-2646   
                #64-2699   #64-2701   #64-2703   #64-2704   #66-2770   #66-2776   #66-2790   #66-2792   #67-2808   #67-2809   
                #67-2815   #68-2856   #68-2859   #68-2861   #68-2863   #68-2864   #68-2869   #71-3116   #71-3117   #74-3290   
                #77-3430   #77-3436   #77-3445   #77-3447   #78-3490   #79-3523   #80-3572   #81-3620   #81-3624   #82-3664   
                #83-3695   #84-3733   #84-3737   #84-3739   #85-3778   #88-3851   #88-3855   #89-3888   #89-3898   #90-3931   
                #97-4139   #97-4144   #97-4146   #99-4216   #99-4225   #99-4232   #99-4241   #100-4271  #100-4274  #103-4380  
                #103-4382  #104-4399  #104-4401  #104-4402  #104-4407  #104-4410  #104-4423  #104-4429  #104-4433  #106-4488  
                #108-4583  #111-4685  #113-4764  #113-4767  #113-4770  #114-4819  #114-4824  #115-4832  #115-4843  #115-4856  
                #115-4860  #115-4861  #116-4909  #116-4912  #117-4948  #117-4950  #119-4999  #119-5001  #119-5010  #119-5016  
                #120-5057  #120-5059  #122-5089  #122-5092  #122-5098  #122-5101  #122-5106  #124-5163  #124-5169  #124-5175  
                #124-5179  #124-5184  #126-5222  #126-5224  #126-5230  #126-5233  #126-5237  #126-5240  #127-5279  #127-5281  
                #128-5290  #128-5291  #128-5293  #128-5298  #128-5305  #128-5308  #128-5310  #129-5341  #129-5349  #132-5471  
                #132-5473  #134-5542  #134-5544  #134-5552  #134-5557  #134-5559  #134-5562  #134-5564  #135-5599  #135-5601  
                #136-5638  #136-5640  #136-5645  #137-5678  #137-5682  #138-5711  #138-5714  #139-5746  #139-5755  #141-5803  
                #141-5805  #141-5808  #141-5809  #141-5810  #141-5811  #141-5815  #141-5820  #142-5872  #143-5922  #143-5927  
                #145-5965  #145-5966  #145-5969  #145-5971  #145-5975  #146-6006  #147-6035  #147-6039  #148-6069  #150-6133  
                #152-6184  #152-6185  #152-6187  #152-6188  #152-6191  #153-6237  #154-6275  #154-6277  #154-6280  #155-6349  
                #155-6357  #155-6362  #155-6365  #155-6366  #155-6368  #155-6370  #158-6484  #159-6493  #159-6495  #159-6503  
                #159-6504  #159-6518  #160-6557  #160-6561  #160-6564  #160-6572  #162-6628  #163-6640  #163-6648  #163-6652  
                #163-6664  #163-6666  #163-6669  #165-6707  #165-6708  #165-6718  #166-6748  #166-6750  #166-6752  #166-6754  
                #166-6762  #166-6763  #172-6911  #172-6913  #172-6915  #172-6917  #196-7650  #196-7652  #196-7653  #197-7682  
                #197-7684  #197-7687  #198-7747  #205-7972  #205-7975  #205-7978  #205-7996  #205-8003  #208-8104  #208-8105  
                #209-8117  #209-8119  #209-8120  #209-8128  #209-8130  #209-8131  #212-8223  #212-8228  #212-8231  #212-8232  
                #212-8233  #212-8235  #214-8291  #214-8294  #214-8295  #214-8304  #214-8310  #216-8371  #216-8376  #217-8397  
                #217-8399  #217-8400  #217-8401  #217-8403  #217-8404  #217-8411  #220-8513  #220-8519  #221-8564  #221-8573  
                #221-8578  #221-8587  #221-8588  #224-8722  #224-8723  #225-8751  #226-8789  #226-8792  #226-8793  #226-8795  
                #226-8797  #226-8800  #226-8802  #227-8815  #227-8822  #227-8823  #227-8824  #228-8885  #228-8898  #228-8900  
                #229-8974  #230-9001  #230-9004  #231-9034  #232-9069  #232-9072  #233-9112  #234-9140  #235-9171  #235-9176  
                #235-9177  #235-9182  #235-9185  #235-9190  #236-9233  #236-9236  #241-9359  #242-9404  #242-9412  #242-9413  
                #242-9417  #242-9418  #242-9419  #242-9421  #242-9422  #247-9648  #247-9653  #249-9728  #250-9750  #250-9753  
                #250-9755  #251-9798  #251-9802  #251-9811  #252-9840  #254-9893  #254-9895  #255-9953  #257-9999  #257-10006 
CALLR 		#4-127     #58-2525   #61-2600   #66-2787   #88-3857   #94-4049   #97-4157   #103-4384  #115-4846  #120-5061  
                #142-5874  #156-6413  #159-6519  #222-8635  #256-9968  
CLEF$S		#46-2049   #50-2203   
COMND$		#5-181     #174-6978  #174-6980  #174-6982  #174-6984  #174-6986  #174-6988  #174-6990  #174-6992  #174-6994  
                #174-6996  #174-6998  #174-7004  #174-7006  #174-7008  #174-7010  #174-7012  #174-7014  #174-7016  #174-7018  
                #174-7020  #174-7022  #174-7024  #174-7026  #174-7029  #174-7032  #174-7034  #174-7036  #174-7038  #174-7040  
                #174-7042  #174-7044  #174-7046  #175-7053  #175-7055  #175-7057  #175-7059  #175-7061  #176-7068  #176-7070  
                #176-7072  #176-7074  #176-7076  #176-7078  #176-7080  #176-7082  #177-7089  #177-7091  #177-7093  #177-7095  
                #177-7097  #178-7104  #178-7106  #178-7108  #178-7110  #178-7112  #178-7114  #178-7116  #178-7118  #178-7120  
                #178-7122  #178-7125  #178-7127  #178-7129  #178-7131  #178-7133  #178-7135  #178-7137  #178-7139  #178-7141  
                #178-7143  #178-7145  #178-7147  #178-7149  #178-7151  #178-7153  #178-7155  #178-7157  #178-7159  #178-7161  
                #178-7163  #178-7165  #179-7172  #179-7174  #179-7176  #179-7181  #179-7183  #180-7191  #180-7193  #180-7195  
                #180-7197  #180-7199  #180-7201  #180-7203  #180-7205  #180-7207  #180-7209  #180-7211  #180-7213  #182-7321  
                #182-7323  #182-7325  #182-7327  #182-7329  #182-7331  #182-7333  #182-7335  #183-7342  #183-7344  #183-7346  
                #183-7348  #183-7350  #183-7352  #183-7354  #183-7356  #183-7358  #183-7360  #183-7362  #184-7369  #184-7371  
                #185-7378  #185-7380  #185-7382  #185-7384  #186-7391  #186-7393  #186-7395  #187-7402  #187-7404  #187-7406  
                #187-7408  #187-7410  #187-7412  #187-7414  #188-7421  #188-7423  #188-7425  #188-7427  #188-7429  #188-7431  
                #188-7433  #188-7435  #188-7437  #188-7439  #188-7441  #188-7443  #188-7445  #188-7447  #188-7449  #188-7451  
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 47

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

                #188-7453  #188-7456  #190-7483  #190-7485  #191-7492  #191-7494  #191-7496  #191-7498  #191-7500  #191-7502  
                #191-7504  #191-7506  #191-7508  #191-7510  #191-7512  #191-7514  #191-7516  #191-7518  #191-7520  #191-7522  
                #191-7525  #191-7528  
DIR$  		#50-2203    50-2203   #68-2920    70-3049    70-3053    71-3120    72-3169    72-3173    72-3178    73-3226   
                 74-3274    75-3334   #80-3558    80-3558   #85-3767    85-3767   #87-3819    90-3926    94-4042    100-4262  
                 106-4473   108-4569   110-4645  #149-6098   149-6098  #157-6449  #160-6565   160-6565  #160-6574   160-6574  
                #221-8553   221-8580  #255-9924   255-9931   255-9933   255-9937   255-9944  
ERCON$		#5-172     
ERROR$		#5-157      47-2104    49-2175    49-2178    51-2246    54-2352    56-2414    70-3063    70-3065    71-3133   
                 72-3181    73-3231    74-3291    75-3344    80-3573    85-3782    88-3860    94-4058    97-4160    101-4298  
                 101-4302   101-4305   101-4308   104-4438   106-4493   108-4590   111-4691   115-4869   117-4963   134-5569  
                 152-6204   152-6207   155-6374   159-6522   167-6775   167-6778   167-6781   172-6921   197-7703   222-8638  
                 222-8641   225-8758   227-8843   228-8920   234-9153   235-9193   237-9255   237-9258  
ERR$  		#50-2203   #70-3049   #70-3053   #71-3120   #72-3169   #72-3173   #72-3178   #73-3226   #74-3274   #75-3334   
                #80-3558   #85-3767   #90-3926   #94-4042   #100-4262  #106-4473  #108-4569  #110-4645  #149-6098  #160-6565  
                #160-6574  #221-8580  #255-9931  #255-9933  #255-9937  #255-9944  
EXCH$ 		#6-223     
EXIT$S		#157-6449  #160-6574  
FATAL$		#5-164     
IKL$  		#8-251     
IOKL$ 		#8-279     
KLDR$ 		#87-3819    106-4513  
KLDW$ 		#87-3819   #108-4610  
KLDX$ 		#87-3819    111-4712  
MOV$  		#50-2203    50-2203   #80-3558   #80-3558    80-3558    80-3558    80-3558    80-3558    80-3558    80-3558   
                 80-3558    80-3558    80-3558   #85-3767   #85-3767    85-3767    85-3767    85-3767    85-3767    85-3767   
                 85-3767    85-3767    85-3767    85-3767   #149-6098   149-6098  #160-6565  #160-6565   160-6565   160-6565  
                 160-6565   160-6565  
MRKT$ 		#87-3819    91-3955   
MVB$  		#80-3558   #80-3558   #85-3767   #85-3767   #160-6565  #160-6565  
NBL$  		#70-3071    70-3071   
NSERR$		#6-201      181-7221   181-7223   181-7225   181-7226   181-7227   181-7228   181-7229   181-7230   181-7231  
                 181-7232   181-7233   181-7234   181-7239   181-7240   181-7241   181-7242   181-7243   181-7244   181-7245  
                 181-7246   181-7247   181-7249   181-7250   181-7251   181-7252   181-7253   181-7254   181-7256   181-7257  
                 181-7258   181-7259   181-7260   181-7261   181-7262   181-7263   181-7265   181-7266   181-7267   181-7268  
                 181-7269   181-7270   181-7271   181-7272   181-7274   181-7275   181-7276   181-7277   181-7278   181-7280  
                 181-7281   181-7283   181-7284   181-7285   181-7286   181-7287   181-7288   181-7289   181-7291   181-7292  
                 181-7294   181-7296   181-7298   181-7299   181-7300   181-7301   181-7303   181-7304   181-7306   181-7308  
                 181-7310   181-7312   181-7314  
OFF$  		#70-3071    70-3071    70-3071    70-3071    70-3071   #70-3076    70-3076    70-3076    70-3076    70-3076   
                 70-3076    70-3076    70-3076    70-3076   #71-3139    71-3139    71-3139    71-3139    71-3139    71-3139   
                 71-3139    71-3139    71-3139   #72-3187    72-3187    72-3187    72-3187    72-3187    72-3187    72-3187   
                 72-3187    72-3187   #72-3190    72-3190    72-3190    72-3190    72-3190    72-3190    72-3190    72-3190   
                 72-3190   #72-3193    72-3193    72-3193    72-3193    72-3193    72-3193    72-3193    72-3193    72-3193   
                #73-3237    73-3237    73-3237    73-3237    73-3237    73-3237    73-3237    73-3237    73-3237   #74-3297   
                 74-3297    74-3297    74-3297    74-3297    74-3297    74-3297    74-3297    74-3297   #75-3350    75-3350   
                 75-3350    75-3350    75-3350    75-3350    75-3350    75-3350    75-3350   #91-3955    91-3955    91-3955   
                 91-3955    91-3955    91-3955   #222-8648   222-8648   222-8648   222-8648   222-8648   222-8648   222-8648  
                 222-8648   222-8648  #258-10042  258-10042  258-10042  258-10042  258-10042  258-10042  258-10042  258-10042 
                 258-10042 #258-10051  258-10051  258-10051  258-10051  258-10051  258-10051  258-10051  258-10051  258-10051 
                #258-10060  258-10060  258-10060  258-10060  258-10060  258-10060  258-10060  258-10060  258-10060 #258-10065 
                 258-10065  258-10065  258-10065  258-10065  258-10065  258-10065  258-10065  258-10065 
PAROOT     CREATED BY  MACRO  ON 10-NOV-81 AT 17:46	PAGE 48

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

PARVR$		#34-1442    39-1716    39-1716   
POP   		#4-133     #51-2242   #54-2346   #58-2524   #60-2571   #61-2606   #67-2814   #68-2854   #68-2855   #68-2868   
                #76-3399   #77-3440   #81-3611   #81-3626   #90-3933   #97-4156   #99-4244   #103-4381  #103-4383  #108-4586  
                #111-4688  #113-4779  #115-4845  #117-4960  #119-5021  #122-5107  #126-5242  #128-5313  #130-5383  #132-5476  
                #134-5566  #136-5648  #137-5683  #141-5822  #145-5977  #147-6040  #150-6134  #152-6201  #154-6282  #155-6371  
                #162-6632  #165-6741  #165-6743  #194-7606  #197-7688  #197-7691  #197-7699  #205-8005  #206-8016  #206-8017  
                #206-8018  #206-8020  #207-8070  #209-8134  #209-8135  #212-8237  #214-8311  #217-8412  #222-8609  #227-8829  
                #227-8837  #228-8916  #230-9003  #232-9071  #234-9134  #234-9142  #235-9172  #236-9239  #237-9249  #241-9360  
                #242-9405  #242-9423  #247-9655  #250-9751  #250-9758  #251-9815  #254-9896  #255-9954  #257-10007 #257-10011 
PRDP$ 		#87-3819   #102-4328  
PREX$ 		#87-3819   #102-4346  
PUSH  		#4-139      47-2104    49-2175    49-2178    51-2238    51-2246    54-2329    54-2334    54-2338    54-2352   
                 56-2414    58-2498    60-2560    60-2564    60-2568    61-2603    62-2628    64-2693    66-2771    68-2857   
                 70-3063    70-3065    71-3133    72-3181    73-3231    74-3291    75-3344    76-3388    77-3429    80-3573   
                 81-3602    81-3613    85-3782    88-3860    89-3890    89-3895    90-3928    94-4058    97-4138    97-4160   
                 99-4214    99-4230    101-4298   101-4302   101-4305   101-4308   103-4374   103-4379   103-4389   104-4398  
                 104-4438   106-4493   108-4572   108-4590   111-4691   113-4757   114-4818   115-4869   116-4908   117-4946  
                 117-4963   119-4992   122-5091   126-5221   127-5277   129-5342   132-5468   134-5539   134-5569   136-5635  
                 136-5641   137-5676   141-5802   143-5920   145-5964   145-5967   145-5968   147-6037   149-6100   150-6130  
                 152-6183   152-6204   152-6207   153-6235   154-6278   155-6345   155-6374   158-6476   158-6478   158-6479  
                 159-6522   162-6625   165-6711   165-6712   165-6714   167-6775   167-6778   167-6781   172-6921   194-7593  
                 196-7649   197-7685   197-7703   205-7971   205-7983   205-8001   207-8049   208-8100   208-8102   211-8196  
                 211-8197   211-8198   211-8203   211-8204   211-8205   211-8210   211-8211   214-8289   217-8385   220-8512  
                 221-8556   222-8638   222-8641   225-8758   226-8788   227-8821   227-8843   228-8877   228-8920   230-8998  
                 230-8999   232-9066   232-9067   234-9126   234-9145   234-9153   235-9193   236-9220   236-9223   236-9234  
                 237-9255   237-9258   241-9331   241-9336   241-9341   241-9346   241-9351   241-9356   242-9398   242-9406  
                 243-9470   244-9509   244-9521   245-9558   246-9597   246-9608   246-9610   250-9743   250-9744   250-9748  
                 250-9754   251-9806   254-9891   255-9950   257-9994   257-10000 
QDPB$ 		#70-3076   #70-3076   #71-3139   #71-3139   #72-3187   #72-3187   #72-3190   #72-3190   #72-3193   #72-3193   
                #73-3237   #73-3237   #74-3297   #74-3297   #75-3350   #75-3350   #222-8648  #222-8648  #258-10042 #258-10042 
                #258-10051 #258-10051 #258-10060 #258-10060 #258-10065 #258-10065 
QDPB$S		#80-3558   #80-3558   #85-3767   #85-3767   #160-6565  #160-6565  
QIOW$ 		#68-2920    70-3076    71-3139    72-3187    72-3190    72-3193    73-3237    74-3297    75-3350   #221-8553  
                 222-8648  #255-9924   258-10042  258-10051  258-10060  258-10065 
QIOW$S		#68-2920    80-3558    85-3767   #157-6449   160-6565  
RETURN		#4-147      47-2092    47-2103    48-2144    49-2173    50-2206    51-2236    52-2275    53-2302    54-2347   
                 55-2382    56-2412    70-3060    71-3124    71-3128    72-3177    73-3228    74-3280    75-3338    76-3400   
                 77-3441    78-3495    79-3528    80-3564    80-3566    81-3612    82-3668    83-3699    84-3740    85-3775   
                 90-3934    94-4053    99-4245    100-4265   100-4273   104-4436   106-4491   108-4587   111-4689   113-4780  
                 117-4961   119-5023   122-5108   124-5187   126-5243   128-5314   130-5384   132-5477   134-5567   135-5603  
                 136-5651   137-5684   138-5717   139-5768   141-5824   145-5978   146-6010   147-6041   148-6071   150-6135  
                 152-6202   154-6283   155-6372   159-6516   162-6633   165-6744   169-6847   172-6919   194-7608   203-7941  
                 206-8021   207-8071   209-8136   212-8238   214-8312   217-8413   220-8523   222-8611   223-8692   224-8726  
                 225-8756   227-8838   228-8917   229-8980   231-9044   233-9119   237-9253   241-9361   242-9424   247-9656  
                 250-9769   251-9816   254-9898   256-9966   257-10012 
RVP$  		#80-3558    80-3558   #85-3767    85-3767   #160-6565   160-6565  
SPERR$		#6-211     #189-7464  #189-7466  #189-7468  #189-7469  #189-7470  #189-7472  #189-7473  #189-7474  #189-7476  
WTSE$S		#87-3819    149-6098  
$DEF  		#87-3819    87-3821   
.ENB6 		#157-6449  #160-6573  
.INH6 		#157-6449  #160-6568  
ABRTC -- ABORT COMMAND MODULE 7	MACRO M1113  10-NOV-81 17:48
TABLE OF CONTENTS

    34- 1441	.ABRTC -- THE "ABORT" COMMAND 7602.23
    35- 1465	.ABORT -- ABORT CURRENT OPERATION SUBROUTINE 7707.12
    38- 1558	.CONTC -- THE "CONTINUE" COMMAND 7611.17
    40- 1643	.DPOSC -- THE "DEPOSIT" COMMAND DISPATCH 7602.23
    41- 1681	.DPOSD -- THE "DEPOSIT <NUMERICAL OBJECT>" COMMAND DISPATCH 7602.29
    42- 1744	.EXAMC -- THE "EXAMINE" COMMAND DISPATCH 7602.16
    43- 1784	.EXAMD -- THE "EXAMINE <NUMERICAL OBJECT>" COMMAND DISPATCH 7602.29
    44- 1847	.DPOBJ -- THE "DEPOSIT <OBJECT>" COMMAND DISPATCH 7602.29
    45- 1885	.EXOBJ -- THE "EXAMINE <OBJECT>" COMMAND DISPATCH 7602.16
    46- 1923	.EDEWD -- THE EXAMINE / DEPOSIT "<ELEVEN> <NUMERICAL OBJECT>" COMMAND 7602.29
    47- 1936	.EDKLD -- THE EXAMINE / DEPOSIT "<TEN> <NUMERICAL OBJECT>" COMMAND 7609.10
    49- 2015	.DFCOM -- COMMON DIAGNOSTIC FUNCTION ROUTINE 7603.30
    50- 2066	.DFRED -- DIAGNOSTIC FUNCTION READ 7602.15
    51- 2151	.DFWRT -- DIAGNOSTIC FUNCTION WRITE 7608.20
    52- 2191	.DFXCT -- DIAGNOSTIC FUNCTION EXECUTE 7602.15
    53- 2224	.XFXCK -- SUBROUTINES TO RANGE CHECK DIAG FUNCTIONS 7509.26
    56- 2315	.DISCC -- THE "DISCONNECT" COMMAND 7702.28
    57- 2386	.DPOSE -- THE "DEPOSIT <ELEVEN>" COMMAND 7602.29
    59- 2456	.DPEWD -- THE "DEPOSIT <ELEVEN> <NUMERICAL OBJECT>" COMMAND 7602.29
    60- 2495	.EXAME -- THE "EXAMINE <ELEVEN>" COMMAND 7602.29
    62- 2588	.EXEWD -- THE "EXAMINE <ELEVEN> <NUMERICAL OBJECT>" COMMAND 7602.29
    65- 2649	.DEPAR -- THE "DEPOSIT AR" COMMAND 7603.21
    66- 2690	.DPOST -- THE "DEPOSIT <TEN>" COMMAND 7602.15
    69- 2804	.DPKLD -- THE "DEPOSIT <TEN> <NUMERICAL OBJECT>" COMMAND 7602.29
    70- 2842	.EXAMT -- THE "EXAMINE <TEN>" COMMAND 7602.05
    72- 2962	.EXKLD -- THE "DEPOSIT <TEN> <NUMERICAL OBJECT>" COMMAND 7609.10
    73- 2989	.RDAPR -- SUBROUTINE TO READ THE STATE OF THE KL APR 7509.24
    76- 3068	.EXCTC -- THE "XCT" (EXECUTE) COMMAND 7602.17
    78- 3143	.EXDTE -- THE "EXAMINE DTE-20" COMMAND 7603.20
    79- 3171	TYPDTE -- TYPE OUT DTE REGISTERS SYMBOLICALLY
    80- 3280	STATYP -- SYMBOLIC STATUS REGISTER TYPE OUT
    81- 3338	TYPDX1 -- SYMBOLIC DEXWD1-DEXWD3 TYPE OUT
    82- 3363	TYPAD2 -- SYMBOLIC TENAD1-TENAD2 TYPE OUT
    83- 3441	TYPDG1 -- SYMBOLIC DIAG1 TYPE OUT
    84- 3485	TYPDG3 -- SYMBOLIC DIAG3 TYPE OUT
    87- 3536	.EXAD  -- KL DATA PATH BOARD EXAMINES 7602.16
    88- 3577	.EXVAB -- KL PC BOARD AND SMALL REGISTER EXAMINES 7602.16
    90- 3622	.EXAMF -- THE "EXAMINE FLAGS" COMMAND 7602.23
    92- 3683	.EXAMK -- THE "EXAMINE KL" COMMAND 7602.23
    93- 3723	.EXCRA -- SMALL REGISTER EXAMINES 7609.10
    96- 3775	.EXMPI -- THE "EXAMINE PI" COMMAND 7602.23
    98- 3846	.EXREG -- THE "EXAMINE REGISTERS" COMMAND 7602.16
    99- 3863	.RDDPB -- SUBROUTINES TO READ THE KL DATA PATH BOARDS 7509.23
   101- 3935	.RDFLG -- SUBROUTINE TO READ THE KL PC FLAGS 7511.24
   103- 4002	.RDPI  -- SUBROUTINE TO READ THE PI BOARDS 7510.16
   105- 4066	.RDSMR -- SUBROUTINE TO READ SMALL KL REGISTERS 7511.05
   108- 4199	.RDVXX -- KL VMA BOARD READ SUBROUTINES 7510.21
   110- 4336	.GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE 7702.15
   112- 4491	.GTTIM -- SUBROUTINE TO INPUT A TIME VALUE 7702.15
   113- 4602	.TYDAT -- SUBROUTINE TO TYPE A DATE 7702.16
   114- 4665	.TYTIM -- TIME OUTPUT SUBROUTINE 7702.16
   116- 4750	.HALTC -- THE "HALT" COMMAND 7710.11
   118- 4813	.INITC -- THE "INITIALIZE" COMMAND 7602.16
   119- 4839	.INIT  -- INITIALIZATION SUBROUTINE 7509.26
   120- 4881	.INKLF -- SUBROUTINE TO SET UP KL STATE WORD 7601.09
   123- 4994	.INICP -- INITIALIZE THE COMMAND PARSER 7601.21
   128- 5127	.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48
TABLE OF CONTENTS

   129- 5231	.SNAP -- ROUTINE TO MANUALLY PERFORM A SNAPSHOT
   132- 5301	.MARKC -- THE "MARK/UNMARK-MICROCODE" COMMAND 7910.19
   135- 5401	.RESTC -- THE "RESET" COMMAND DISPATCH 7710.11
   136- 5441	.RSALL -- THE "RESET ALL" COMMAND 7602.18
   137- 5467	.RSTPI -- THE "RESET PI" COMMAND 7607.21
   138- 5504	.RSPAG -- THE "RESET PAG" COMMAND 7607.21
   141- 5589	.RUNCM -- THE "RUN" AND "MCR" COMMANDS 7607.14
   144- 5670	.TAKEC -- THE "TAKE" COMMAND
   145- 5733	.GTR50 -- GET A .RAD50 WORD 7602.18
   147- 5788	.QUITC -- THE "QUIT" COMMAND 7602.16
   150- 5851	.SCACB -- SET AC-BLOCK COMMAND
   151- 5890	.SACBK -- SET AC BLOCK ROUTINE
   152- 5961	.WHACB -- WHAT AC BLOCK COMMAND
   153- 5991	.SWPC -- SWEEP AC BLOCK COMMAND
   154- 6081	.SWPAC -- SWEEP ALL AC BLOCKS FOR FM PARITY ERROR
   155- 6170	.RSSWP -- RESET PARITY STOPS FOR FM SWEEP
   158- 6252	.SCOUT -- SET/CLEAR OUTPUT COMMAND
   159- 6303	.SCOTL -- SET/CLEAR OUTPUT LOG COMMAND
   160- 6416	.SCOTP -- SET/CLEAR OUTPUT LPT COMMAND
   161- 6457	.SCOTY -- SET/CLEAR OUTPUT TTY COMMAND
   162- 6487	.SCOTC -- SET/CLEAR OUTPUT CHECK ROUTINE
   163- 6517	.WHOUT -- WHAT OUTPUT COMMAND
   167- 6628	.SETCM -- THE "SET" AND "CLEAR" COMMAND DISPATCHES 7602.19
   168- 6675	.WHATC -- THE "WHAT" COMMAND DISPATCH 7607.14
   169- 6704	.SCNOT -- THE "SET / CLEAR NOT" COMMAND 7602.19
   171- 6744	.SHUTC -- THE "SHUTDOWN" COMMAND 7707.12
   173- 6818	.STRTC -- THE "START" COMMAND 7602.26
   174- 6847	.STRTT -- THE "START <TEN>" COMMAND 7710.11
   176- 6910	.STRTU -- THE "START MICROCODE" COMMAND 7602.26
   178- 6988	.SCCON -- THE " SET / CLEAR CONSOLE" COMMAND 7702.16
   179- 7033	.WHCON -- THE "WHAT CONSOLE" COMMAND 7607.14
   180- 7057	.SCINC -- THE "SET / CLEAR INCREMENT" COMMAND 7606.20
   181- 7082	.WHINC -- THE "WHAT INCREMENT" COMMAND 7703.25
   182- 7115	.SCMEM -- THE "SET / CLEAR MEMORY" COMMAND 7607.08
   183- 7142	.WHMEM -- THE "WHAT MEMORY" COMMAND 7603.21
   184- 7162	.SCOFS -- THE "SET / CLEAR OFFSET" COMMAND 7602.19
   185- 7175	.WHOFS -- THE "WHAT OFFSET" COMMAND 7603.20
   186- 7191	.SCRLD -- THE "SET / CLEAR RELOAD" COMMAND 7602.19
   187- 7199	.SCRTY -- THE "SET / CLEAR RETRY" COMMAND 7-DEC-78
   188- 7211	.WHRLD -- THE "WHAT RELOAD" COMMAND 7603.21
   189- 7224	.WHRTY -- THE "WHAT RETRY" COMMAND 7-DEC-78
   190- 7248	.SCRPT -- THE "SET / CLEAR REPEAT" COMMAND 7703.25
   191- 7270	.SCTRK -- THE "SET / CLEAR TRACK" COMMAND 7602.19
   192- 7283	.WHTRK -- THE "WHAT TRACKS" COMMAND 7603.20
   193- 7298	.WHATV -- THE "WHAT VERSION" COMMAND 7607.21
   194- 7325	.WHRDW -- DISPLAY KL10 HARDWARE ENVIRONMENT 7910.18
   195- 7423	.SFREC -- SET/CLEAR FAULT COMMAND
   196- 7433	WHAT FAULT CONTINUATION COMMAND
   197- 7455	.SCTAK -- THE "SET/CLEAR AUTO-TAKE" COMMAND
   198- 7469	.WHTAK -- THE "WHAT AUTO-TAKE" COMMAND
   199- 7525	.SCCLK -- THE "SET / CLEAR CLOCK" COMMAND DISPATCH 7608.19
   202- 7647	.SCCRF -- SET / CLEAR "CLOCK <OBJECT>" 7603.09
   204- 7736	.SCPAR -- SET / CLEAR PARITY-STOP "<OBJECT>" 7603.08
   205- 7778	.WHTCL -- THE "WHAT CLOCK" COMMAND 7608.17
   208- 7868	.WHTPS -- THE "WHAT PARITY-STOP" COMMAND 7608.19
   211- 7942	.YESNO -- SUBROUTINE TO ASK "YES OR NO" 7603.22
   214- 8041	.SCDAT -- "SET DATE" COMMAND 7703.04
SWDAT -- SET/CLEAR/WHAT "DATE" 	MACRO M1113  10-NOV-81 17:48
TABLE OF CONTENTS

   216- 8177	.WHDAT -- THE "WHAT" DATE COMMAND 7703.03
   220- 8312	.SCKLN -- THE "SET / CLEAR KLINIK" COMMAND 7709.20
   223- 8599	.WHKLN -- THE "WHAT KLINIK" COMMAND 7702.16
   227- 8752	.ZEROC -- THE "ZERO" COMMAND 7609.15
ABRTC -- ABORT COMMAND MODULE 7	MACRO M1113  10-NOV-81 17:48  PAGE 33
COPYRIGHT PAGE

   1409					.TITLE	ABRTC -- ABORT COMMAND MODULE 7602.23
   1410
   1411						.IDENT	"005000"
   1412					;
   1413					;                             COPYRIGHT (C) 1975, 1979 BY
   1414					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   1415					;
   1416					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   1417					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   1418					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   1419					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   1420					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   1421					;
   1422					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   1423					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   1424					;       CORPORATION.
   1425					;
   1426					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   1427					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   1428					;
   1429					;		MODULE: ABORT COMMAND
   1430					;
   1431					;		VERSION: 05-00
   1432					;
   1433					;		AUTHOR: R. BELANGER
   1434					;
   1435					;		DATE: 7602.23
   1436					;
   1437					;	THIS MODULE CONTAINS:
   1438					;
   1439					;	1) ABORT COMMAND CODE
ABRTC -- ABORT COMMAND MODULE 7	MACRO M1113  10-NOV-81 17:48  PAGE 34
.ABRTC -- THE "ABORT" COMMAND 7602.23

   1441					.SBTTL	.ABRTC -- THE "ABORT" COMMAND 7602.23
   1442
   1443					;+
   1444					; .ABRTC -- THE "ABORT" COMMAND
   1445					;
   1446					; THIS ROUTINE CALLS THE ABORT SUBROUTINE ".ABORT", Q.V.
   1447					;
   1448					; INPUT ARGUMENTS:
   1449					;
   1450					;	NONE.
   1451					;
   1452					; OUTPUT ARGUMENTS:
   1453					;
   1454					;	NONE.
   1455					;
   1456					; ERROR CODES RETURNED:
   1457					;
   1458					;	NONE.
   1459					;-
   1460
   1461	000000				.ABRTC::
   1462	000000					CALL	.CKEOC		; MUST HAVE E-O-C
	000000	004737 	000000G			 JSR	PC,.CKEOC
   1463					;	CALLR	.ABORT		; ABORT CURRENT KL OPERATION AND EXIT
ABRTC -- ABORT COMMAND MODULE 7	MACRO M1113  10-NOV-81 17:48  PAGE 35
.ABORT -- ABORT CURRENT OPERATION SUBROUTINE 7707.12

   1465					.SBTTL	.ABORT -- ABORT CURRENT OPERATION SUBROUTINE 7707.12
   1466
   1467					;+
   1468					; .ABORT -- SUBROUTINE TO ABORT THE CURRENT KL PROCESS
   1469					;
   1470					; THIS SUBROUTINE ABORTS THE CURRENT KL PROCESS AND RETURNS WITH
   1471					; THE KL CLOCK RUNNING IN THE HALT LOOP. IF THE "HALT" FAILS, THE
   1472					; KL MICROCODE IS RESTARTED. THE CONTINUEABILITY OF THE KL IS
   1473					; INDICATED BY THE STATE OF THE "KF.CON" FLAG BIT (Q.V.) IN ".KLFLG".
   1474					;
   1475					; SEQUENCE OF OPERATION:
   1476					;
   1477					;	(A) THE KL IS HALTED,
   1478					;	(B) IF THE HALT WINS GO TO (E), OTHERWISE GO TO (C),
   1479					;	(C) THE MICRO CODE IS RESTARTED AT CRAM ADDRESS 0000,
   1480					;	(D) SECONDARY PROTOCOL IS STARTED
   1481					;	(E) EXIT.
   1482					;
   1483					; INPUT ARGUMENTS:
   1484					;
   1485					;	NONE.
   1486					;
   1487					; OUTPUT ARGUMENTS:
   1488					;
   1489					;	NONE.
   1490					;
   1491					; ERROR CODES RETURNED:
   1492					;
   1493					;	CFH -- CAN'T FIND KL HALT LOOP.
   1494					;	FRF -- FUNCTION READ FAILED.
   1495					;	FWF -- FUNCTION WRITE FAILED.
   1496					;	FXF -- FUNCTION EXECUTE FAILED.
   1497					;	UNL -- UCODE NOT LOADED.
   1498					;
   1499					; NOTE:
   1500					;
   1501					;	THE CONTINUEABILITY OF THE KL IS NOT GUARANTEED BY THIS
   1502					;	SUBROUTINE.
   1503					;-
ABRTC -- ABORT COMMAND MODULE 7	MACRO M1113  10-NOV-81 17:48  PAGE 36
.ABORT -- ABORT CURRENT OPERATION SUBROUTINE 7707.12

   1505						.ENABL	LSB
   1506
   1507	000004				.ABORT::
   1508	000004					PUSH	R0		; SAVE R0 ON THE STACK
	000004	010046 				 MOV	R0,-(SP)
   1509	000006					PUSH	#.ABRT0		; .IN CASE ".KLSTP" TRAPS
	000006	012746 	000032'			 MOV	#.ABRT0,-(SP)
   1510	000012	010637 	000000G			MOV	SP,.TRPTV	; ..STACK POINTER FOR RETURN
   1511	000016					CALL	.KLSTP		; ..HALT THE KL
	000016	004737 	000000G			 JSR	PC,.KLSTP
   1512	000022	005726 				TST	(SP)+		; ..CLEAR RETURN
   1513	000024	005037 	000000G			CLR	.TRPTV		; .AND TRAP VECTOR
   1514	000030	000410 				BR	10$		; .AND EXIT
   1515						;
   1516	000032				.ABRT0::			; .GET HERE IF ".KLSTP" TRAPPED
   1517	000032	005000 				CLR	R0		; .CLEAR R0 (STACK POPPED BY ".PTTRP")
   1518	000034					CALL	.STUCD		; .(RE)START THE UCODE
	000034	004737 	000000G			 JSR	PC,.STUCD
   1519	000040	052737 	000000G	000002G		BIS	#EF.CRI,.COMEF+2 ; .DECLARE THE COMM REGION INVALID
   1520	000046					CALL	..DTP2		; .START SECONDARY PROTOCOL
	000046	004737 	000000G			 JSR	PC,..DTP2
   1521	000052				10$:
   1522	000052					POP	R0		; .RESTORE R0
	000052	012600 				 MOV	(SP)+,R0
   1523	000054					RETURN			; TO CALLER
	000054	000207 				 RTS	PC
   1524
   1525						.DSABL	LSB
CONTC -- CONTINUE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 37
.ABORT -- ABORT CURRENT OPERATION SUBROUTINE 7707.12

   1527					.TITLE	CONTC -- CONTINUE COMMAND MODULE 7611.17
   1528
   1529						.IDENT	"005000"
   1530
   1531					;
   1532					;                             COPYRIGHT (C) 1975, 1979 BY
   1533					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   1534					;
   1535					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   1536					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   1537					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   1538					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   1539					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   1540					;
   1541					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   1542					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   1543					;       CORPORATION.
   1544					;
   1545					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   1546					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   1547					;
   1548					;		VERSION: 05-00
   1549					;
   1550					;		AUTHOR: R. BELANGER
   1551					;
   1552					;		DATE: 7611.17
   1553					;
   1554					;	THIS MODULE CONTAINS:
   1555					;
   1556					;	1) CONTINUE COMMAND CODE
CONTC -- CONTINUE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 38
.CONTC -- THE "CONTINUE" COMMAND 7611.17

   1558					.SBTTL	.CONTC -- THE "CONTINUE" COMMAND 7611.17
   1559
   1560					;+
   1561					; .CONTC -- THE "CONTINUE" COMMAND
   1562					;
   1563					; THIS ROUTINE EXECUTES THE "CONTINUE" CONSOLE FUNCTION
   1564					;
   1565					; INPUT ARGUMENTS:
   1566					;
   1567					;	NONE.
   1568					;
   1569					; OUTPUT ARGUMENTS:
   1570					;
   1571					;	NONE.
   1572					;
   1573					; ERROR CORES RETURNED:
   1574					;
   1575					;	KNC -- KL IS NOT CONTINUABLE
   1576					;-
   1577
   1578	000056				.CONTC::
   1579	000056					CALL	.CKEOC		; CHECK E-O-C
	000056	004737 	000000G			 JSR	PC,.CKEOC
   1580	000062					PUSH	.KLFLG		; SAVE ".KLFLG" ON THE STACK
	000062	013746 	000000G			 MOV	.KLFLG,-(SP)
   1581	000066	032716 	000200 			BIT	#KF.CON,(SP)	; .CAN WE CONTINUE THE KL?
   1582	000072	001427 				BEQ	CONKNC		; .NO -- GIVE "KNC" ERROR
   1583	000074	032716 	010000 			BIT	#KF.SIM,(SP)	; .YES -- ARE WE IN SINGLE INSTRUCTION MODE?
   1584	000100	001412 				BEQ	20$		; .NO -- JUST CONTINUE THE KL
   1585	000102	032716 	100000 			BIT	#KF.CLK,(SP)	; .YES -- IS THE CLOCK RUNNING?
   1586	000106	001002 				BNE	10$		; .YES -- DON'T START IT AGAIN
   1587	000110					CALL	.STCLK		; .NO -- START IT
	000110	004737 	000000G			 JSR	PC,.STCLK
   1588	000114				10$:
   1589	000114	012700 	000024 			MOV	#FX.CON,R0	; .SET THE "CONTINUE" BUTTON
   1590	000120					CALL	.FXCT		; .VIA FUNCTION EXECUTE
	000120	004737 	000000G			 JSR	PC,.FXCT
   1591	000124	000407 				BR	30$		; .AND EXIT
   1592						;
   1593	000126				20$:
   1594	000126					CALL	.KLCON		; .DO THE CONTINUE
	000126	004737 	000000G			 JSR	PC,.KLCON
   1595	000132	032716 	040000 			BIT	#KF.RUN,(SP)	; .WAS THE KL RUNNING BEFORE?
   1596	000136	001002 				BNE	30$		; .YES -- JUST EXIT
   1597	000140	005037 	000000G			CLR	.NOERR		; RE-ENABLE ERROR DETECTION
   1598	000144				30$:
   1599	000144	005726 				TST	(SP)+		; .CLEAR THE STACK
   1600	000146					CALLR	.EXITP
	000146	000137 	000000G			 JMP	.EXITP
   1601						;
   1602
   1603	000152				CONKNC:
   1604	000152					ERROR$	KNC		; ERROR -- KL NOT CONTINUEABLE
	000152	012746 	043363 			 MOV	#^RKNC,-(SP)
	000156	104400 				 TRAP	TC.ERR
   1605						;
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 39
.CONTC -- THE "CONTINUE" COMMAND 7611.17

   1607					.TITLE	DECMD -- DEPOSIT / EXAMINE COMMAND DISPATCH MODULE 7603.30
   1608
   1609						.IDENT	"005000"
   1610
   1611					;
   1612					;                             COPYRIGHT (C) 1975, 1979 BY
   1613					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   1614					;
   1615					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   1616					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   1617					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   1618					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   1619					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   1620					;
   1621					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   1622					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   1623					;       CORPORATION.
   1624					;
   1625					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   1626					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   1627					;
   1628					;		MODULE: DEPOSIT / EXAMINE COMMAND DISPATCH
   1629					;
   1630					;		VERSION: 05-00
   1631					;
   1632					;		AUTHOR: R. BELANGER
   1633					;
   1634					;		DATE: 7603.30
   1635					;
   1636					;	THIS MODULE CONTAINS:
   1637					;
   1638					;	1) DEPOSIT COMMAND DISPATCH CODE
   1639					;	2) DEPOSIT COMMAND DISPATCH TABLES
   1640					;	3) EXAMINE COMMAND DISPATCH CODE
   1641					;	4) EXAMINE COMMAND DISPATCH TABLES
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 40
.DPOSC -- THE "DEPOSIT" COMMAND DISPATCH 7602.23

   1643					.SBTTL	.DPOSC -- THE "DEPOSIT" COMMAND DISPATCH 7602.23
   1644
   1645					;+
   1646					; .DPOSC -- THE "DEPOSIT" COMMAND.
   1647					;
   1648					; THIS IS THE TOP LEVEL DEPOSIT ROUTINE WHICH DISPATCHES TO THE
   1649					; PROPER ROUTINE FOR THE OBJECT TO BE DEPOSITED.
   1650					;
   1651					; INPUT ARGUMENTS:
   1652					;
   1653					;	NONE.
   1654					;
   1655					; OUTPUT ARGUMENTS:
   1656					;
   1657					;	NONE.
   1658					;
   1659					; ERROR CODES RETURNED:
   1660					;
   1661					;	NSK -- NO SUCH KEYWORD
   1662					;-
   1663
   1664	000160				.DPOSC::
   1665	000160	013703 	000000G			MOV	.MEMFL,R3	; OFFSET FLAG TO R3
   1666	000164					CALL	.CKARG		; LOOK FOR THE ARGUMENT
	000164	004737 	000000G			 JSR	PC,.CKARG
   1667	000170	001435 				BEQ	.DPOBJ		; DISPATCH FOR OBJECT
   1668	000172				.DPOSA::			; HERE TO DISPATCH FOR MEMORY
   1669	000172					CALLR	@DPOATB(R3)	; DISPATCH
	000172	000173 	000000'			 JMP	@DPOATB(R3)
   1670						;
   1671
   1672	000000					.PSECT	DATA
   1673
   1674	000000				DPOATB:
   1675	000000	002206'				.WORD	.DPOST		; DEPOSIT TEN
   1676	000002	001334'				.WORD	.DPOSE		; DEPOSIT ELEVEN WORD
   1677
   1678	000176					.PSECT
   1679
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 41
.DPOSD -- THE "DEPOSIT <NUMERICAL OBJECT>" COMMAND DISPATCH 76

   1681					.SBTTL	.DPOSD -- THE "DEPOSIT <NUMERICAL OBJECT>" COMMAND DISPATCH 7602.29
   1682
   1683	000176				.DPOSD::			; DEPOSIT DECREMENT
   1684	000176					CALLR	@DPODTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000176	000173 	000004'			 JMP	@DPODTB(R3)
   1685						;
   1686
   1687	000004					.PSECT	DATA
   1688
   1689	000004				DPODTB:
   1690	000004	002534'				.WORD	.DPKLD		; KL WORD
   1691	000006	001524'				.WORD	.DPEWD		; PDP-11 WORD
   1692
   1693	000202					.PSECT
   1694
   1695	000202				.DPOSI::			; DEPOSIT INCREMENT
   1696	000202					CALLR	@DPOITB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000202	000173 	000010'			 JMP	@DPOITB(R3)
   1697						;
   1698
   1699	000010					.PSECT	DATA
   1700
   1701	000010				DPOITB:
   1702	000010	002542'				.WORD	.DPKLI		; KL WORD
   1703	000012	001532'				.WORD	.DPEWI		; PDP-11 WORD
   1704
   1705	000206					.PSECT
   1706
   1707	000206				.DPOSN::			; DEPOSIT NEXT
   1708	000206					CALLR	@DPONTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000206	000173 	000014'			 JMP	@DPONTB(R3)
   1709						;
   1710
   1711	000014					.PSECT	DATA
   1712
   1713	000014				DPONTB:
   1714	000014	002550'				.WORD	.DPKLN		; KL WORD
   1715	000016	001540'				.WORD	.DPEWN		; PDP-11 WORD
   1716
   1717	000212					.PSECT
   1718
   1719	000212				.DPOSP::			; DEPOSIT PREVIOUS
   1720	000212					CALLR	@DPOPTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000212	000173 	000020'			 JMP	@DPOPTB(R3)
   1721						;
   1722
   1723	000020					.PSECT	DATA
   1724
   1725	000020				DPOPTB:
   1726	000020	002556'				.WORD	.DPKLP		; KL WORD
   1727	000022	001546'				.WORD	.DPEWP		; PDP-11 WORD
   1728
   1729	000216					.PSECT
   1730
   1731	000216				.DPOSZ::			; DEPOSIT THIS
   1732	000216					CALLR	@DPOZTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000216	000173 	000024'			 JMP	@DPOZTB(R3)
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 41-1
.DPOSD -- THE "DEPOSIT <NUMERICAL OBJECT>" COMMAND DISPATCH 76

   1733						;
   1734
   1735	000024					.PSECT	DATA
   1736
   1737	000024				DPOZTB:
   1738	000024	002526'				.WORD	.DPKLT		; KL WORD
   1739	000026	001516'				.WORD	.DPEWT		; PDP-11 WORD
   1740
   1741	000222					.PSECT
   1742
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 42
.EXAMC -- THE "EXAMINE" COMMAND DISPATCH 7602.16

   1744					.SBTTL	.EXAMC -- THE "EXAMINE" COMMAND DISPATCH 7602.16
   1745
   1746					;+
   1747					; .EXAMC -- THE "EXAMINE" COMMAND DISPATCH.
   1748					;
   1749					; THIS IS THE TOP LEVEL EXAMINE ROUTINE WHICH DETERMINES WHICH
   1750					; OBJECT IS TO BE EXAMINED.
   1751					;
   1752					; INPUT ARGUMENTS:
   1753					;
   1754					;	NONE.
   1755					;
   1756					; OUTPUT ARGUMENTS:
   1757					;
   1758					;	NONE, THIS ROUTINE DISPATCHES TO THE PROPER ROUTINE
   1759					;	FOR THE OBJECT SPECIFIED.
   1760					;
   1761					; ERROR CODES RETURNED:
   1762					;
   1763					;	NONE.
   1764					;-
   1765
   1766	000222				.EXAMC::
   1767	000222	013703 	000000G			MOV	.MEMFL,R3	; MEMORY FLAG TO R3
   1768	000226					CALL	.CKARG		; CHECK THE ARGUMENT
	000226	004737 	000000G			 JSR	PC,.CKARG
   1769	000232	001434 				BEQ	.EXOBJ		; EXAMINE THE OBJECT
   1770						;
   1771	000234				.EXAMA::			; HERE TO DISPATCH FOR MEMORY
   1772	000234					CALLR	@EXMDTB(R3)	; DISPATCH
	000234	000173 	000030'			 JMP	@EXMDTB(R3)
   1773						;
   1774
   1775	000030					.PSECT	DATA
   1776
   1777	000030				EXMDTB:
   1778	000030	002614'				.WORD	.EXAMT		; EXAMINE TEN
   1779	000032	001604'				.WORD	.EXAME		; EXAMINE ELEVEN WORD
   1780
   1781	000240					.PSECT
   1782
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 43
.EXAMD -- THE "EXAMINE <NUMERICAL OBJECT>" COMMAND DISPATCH 76

   1784					.SBTTL	.EXAMD -- THE "EXAMINE <NUMERICAL OBJECT>" COMMAND DISPATCH 7602.29
   1785
   1786	000240				.EXAMD::			; EXAMINE DECREMENT
   1787	000240					CALLR	@EXADTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000240	000173 	000034'			 JMP	@EXADTB(R3)
   1788						;
   1789
   1790	000034					.PSECT	DATA
   1791
   1792	000034				EXADTB:
   1793	000034	003206'				.WORD	.EXKLD		; KL WORD
   1794	000036	002066'				.WORD	.EXEWD		; PDP-11 WORD
   1795
   1796	000244					.PSECT
   1797
   1798	000244				.EXAMI::			; EXAMINE INCREMENT
   1799	000244					CALLR	@EXAITB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000244	000173 	000040'			 JMP	@EXAITB(R3)
   1800						;
   1801
   1802	000040					.PSECT	DATA
   1803
   1804	000040				EXAITB:
   1805	000040	003214'				.WORD	.EXKLI		; KL WORD
   1806	000042	002074'				.WORD	.EXEWI		; PDP-11 WORD
   1807
   1808	000250					.PSECT
   1809
   1810	000250				.EXAMN::			; EXAMINE NEXT
   1811	000250					CALLR	@EXANTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000250	000173 	000044'			 JMP	@EXANTB(R3)
   1812						;
   1813
   1814	000044					.PSECT	DATA
   1815
   1816	000044				EXANTB:
   1817	000044	003222'				.WORD	.EXKLN		; KL WORD
   1818	000046	002102'				.WORD	.EXEWN		; PDP-11 WORD
   1819
   1820	000254					.PSECT
   1821
   1822	000254				.EXAMP::			; EXAMINE PREVIOUS
   1823	000254					CALLR	@EXAPTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000254	000173 	000050'			 JMP	@EXAPTB(R3)
   1824						;
   1825
   1826	000050					.PSECT	DATA
   1827
   1828	000050				EXAPTB:
   1829	000050	003230'				.WORD	.EXKLP		; KL WORD
   1830	000052	002110'				.WORD	.EXEWP		; PDP-11 WORD
   1831
   1832	000260					.PSECT
   1833
   1834	000260				.EXAMZ::			; EXAMINE THIS
   1835	000260					CALLR	@EXAZTB(R3)	; DISPATCH ON MEMORY TYPE FLAG
	000260	000173 	000054'			 JMP	@EXAZTB(R3)
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 43-1
.EXAMD -- THE "EXAMINE <NUMERICAL OBJECT>" COMMAND DISPATCH 76

   1836						;
   1837
   1838	000054					.PSECT	DATA
   1839
   1840	000054				EXAZTB:
   1841	000054	003200'				.WORD	.EXKLT		; KL WORD
   1842	000056	002060'				.WORD	.EXEWT		; PDP-11 WORD
   1843
   1844	000264					.PSECT
   1845
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 44
.DPOBJ -- THE "DEPOSIT <OBJECT>" COMMAND DISPATCH 7602.29

   1847					.SBTTL	.DPOBJ -- THE "DEPOSIT <OBJECT>" COMMAND DISPATCH 7602.29
   1848
   1849					;+
   1850					; .DPOBJ -- DEPOSIT "OBJECT" COMMAND DISPATCH
   1851					;
   1852					; THIS SUBROUTINE PERFORMS THE DISPATCH FOR THE SPECIFIED DEPOSIT OBJECT
   1853					;
   1854					; INPUT ARGUMENTS:
   1855					;
   1856					;	R3 CONTAINS THE OLD MEMORY TYPE OFFSET
   1857					;
   1858					; OUTPUT ARGUMENTS:
   1859					;
   1860					;	R3 CONTAINS THE CURRENT MEMORY TYPE OFFSET
   1861					;
   1862					; ERROR CODES RETURNED:
   1863					;
   1864					;	NONE.
   1865					;-
   1866
   1867
   1868	000264				.DPOBJ::
   1869	000264	012700 	000000G			MOV	#.DPOTB,R0	; TABLE POINTER TO R0
   1870	000270					CALL	.TSCAN		; SCAN THE TABLE FOR OBJECT
	000270	004737 	000000G			 JSR	PC,.TSCAN
   1871	000274	012001 				MOV	(R0)+,R1	; LEGAL BITS TO R1
   1872	000276	005101 				COM	R1		; INVERT THEM
   1873	000300	040137 	000000G			BIC	R1,.LGLWD	; SET UP NEW LEGAL WORD
   1874	000304					CALLR	@(R0)+		; DISPATCH FOR OBJECT
	000304	000130 				 JMP	@(R0)+
   1875						;
   1876	000306				.DPOKL::
   1877	000306	005003 				CLR	R3		; TEN MEMORY OFFSET TO R3
   1878	000310					CALLR	.DPOST		; GO DO IT
	000310	000137 	002206'			 JMP	.DPOST
   1879						;
   1880	000314				.DPOEL::
   1881	000314	012703 	000002 			MOV	#^D2,R3		; PDP-11 WORD OFFSET TO R3
   1882	000320					CALLR	.DPOSE		; GO DO IT
	000320	000137 	001334'			 JMP	.DPOSE
   1883						;
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 45
.EXOBJ -- THE "EXAMINE <OBJECT>" COMMAND DISPATCH 7602.16

   1885					.SBTTL	.EXOBJ -- THE "EXAMINE <OBJECT>" COMMAND DISPATCH 7602.16
   1886
   1887					;+
   1888					; .EXOBJ -- THE "EXAMINE <OBJECT>" COMMAND DISPATCH.
   1889					;
   1890					; THIS ROUTINE IS THE DISPATCH FOR ALL OF THE "EXAMINE <OBJECT>" COMMANDS.
   1891					;
   1892					; INPUT ARGUMENTS:
   1893					;
   1894					;	NONE.
   1895					;
   1896					; OUTPUT ARGUMENTS:
   1897					;
   1898					;	NONE.
   1899					;
   1900					; ERROR CODES RETURNED:
   1901					;
   1902					;	NSC -- NO SUCH COMMAND.
   1903					;-
   1904
   1905	000324				.EXOBJ::
   1906	000324	012700 	000000G			MOV	#.EXMTB,R0	; EXAMINE TABLE POINTER TO R0
   1907	000330					CALL	.TSCAN		; SCAN THE TABLE
	000330	004737 	000000G			 JSR	PC,.TSCAN
   1908	000334	011001 				MOV	(R0),R1		; LEGAL BITS TO R1
   1909	000336	005101 				COM	R1		; INVERT THEM
   1910	000340	040137 	000000G			BIC	R1,.LGLWD	; SET UP NEW LEGAL WORD
   1911	000344	014002 				MOV	-(R0),R2	; NAME POINTER TO R2
   1912	000346					CALLR	@4(R0)		; READ AND PRINT THE REGISTER
	000346	000170 	000004 			 JMP	@4(R0)
   1913						;
   1914	000352				.EXMEL::
   1915	000352	012703 	000002 			MOV	#^D2,R3		; PDP-11 OFFSET TO R3
   1916	000356					CALLR	.EXAME		; DO THE EXAMINE
	000356	000137 	001604'			 JMP	.EXAME
   1917						;
   1918	000362				.EXMKL::
   1919	000362	005003 				CLR	R3		; KL MEMORY OFFSET TO R3
   1920	000364					CALLR	.EXAMT		; DO THE EXAMINE
	000364	000137 	002614'			 JMP	.EXAMT
   1921						;
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 46
.EDEWD -- THE EXAMINE / DEPOSIT "<ELEVEN> <NUMERICAL OBJECT>"

   1923					.SBTTL	.EDEWD -- THE EXAMINE / DEPOSIT "<ELEVEN> <NUMERICAL OBJECT>" COMMAND 7602.29
   1924
   1925	000370				.EDEWD::
   1926	000370				.EDEWP::
   1927	000370	013700 	000000G			MOV	.EDELA,R0	; ADDRESS TO R0
   1928	000374	162700 	000002 			SUB	#^D2,R0		; PREVIOUS WORD ADDRESS
   1929	000400					RETURN			; TO CALLER
	000400	000207 				 RTS	PC
   1930	000402				.EDEWI::
   1931	000402				.EDEWN::
   1932	000402	013700 	000000G			MOV	.EDELA,R0	; ADDRESS TO R0
   1933	000406	062700 	000002 			ADD	#^D2,R0		; NEXT WORD ADDRESS
   1934	000412					RETURN			; TO CALLER
	000412	000207 				 RTS	PC
DECMD -- DEPOSIT / EXAMINE COMM	MACRO M1113  10-NOV-81 17:48  PAGE 47
.EDKLD -- THE EXAMINE / DEPOSIT "<TEN> <NUMERICAL OBJECT>" COM

   1936					.SBTTL	.EDKLD -- THE EXAMINE / DEPOSIT "<TEN> <NUMERICAL OBJECT>" COMMAND 7609.10
   1937
   1938						.ENABL	LSB
   1939
   1940	000414				.EDKLP::
   1941	000414					CALL	.EDKLC		; DO COMMON CODE
	000414	004737 	000512'			 JSR	PC,.EDKLC
   1942	000420					CALL	.TPDEC		; DECREMENT ONCE
	000420	004737 	000000G			 JSR	PC,.TPDEC
   1943	000424	000422 				BR	10$		; EXIT THRU COMMON CODE
   1944						;
   1945	000426				.EDKLN::
   1946	000426					CALL	.EDKLC		; DO COMMON CODE
	000426	004737 	000512'			 JSR	PC,.EDKLC
   1947	000432					CALL	.TPINC		; INCREMENT ONCE
	000432	004737 	000000G			 JSR	PC,.TPINC
   1948	000436	000415 				BR	10$		; EXIT THRU COMMON CODE
   1949						;
   1950	000440				.EDKLD::
   1951	000440					CALL	.EDKLC		; DO COMMON CODE
	000440	004737 	000512'			 JSR	PC,.EDKLC
   1952	000444	012701 	000000G			MOV	#.KLINC,R1	; POINT TO THE INCREMENT
   1953	000450					CALL	.TPSUB		; DO THE SUBTRACTION
	000450	004737 	000000G			 JSR	PC,.TPSUB
   1954	000454	000406 				BR	10$		; EXIT THRU COMMON CODE
   1955						;
   1956	000456				.EDKLI::
   1957	000456					CALL	.EDKLC		; DO COMMON CODE
	000456	004737 	000512'			 JSR	PC,.EDKLC
   1958	000462	012701 	000000G			MOV	#.KLINC,R1	; POINT TO THE INCREMENT
   1959	000466					CALL	.TPADD		; DO THE ADDITION
	000466	004737 	000000G			 JSR	PC,.TPADD
   1960	000472				10$:
   1961	000472	032760 	177600 	000002 		BIT	#^C177,2(R0)	; CHECK THE RESULT
   1962	000500	001015 				BNE	EDNKLA		; ERROR IF TOO LARGE
   1963	000502	005760 	000004 			TST	4(R0)		; HOW ABOUT HIGH BITS?
   1964	000506	001012 				BNE	EDNKLA		; TOO LARGE
   1965	000510	000410 				BR	20$		; ALL OK -- RETURN
   1966						;
   1967	000512				.EDKLC::
   1968	000512	012700 	000000G			MOV	#.EDKLX,R0	; AUX ADDRESS POINTER TO R0
   1969	000516	012701 	000000G			MOV	#.EDKLA,R1	; EXAM / DEPOS ADDRESS TO R1
   1970	000522	012120 				MOV	(R1)+,(R0)+	; LOAD CURRENT ADDRESS
   1971	000524	012120 				MOV	(R1)+,(R0)+	; INTO AUXILLIARY ADDRESS BUFFER
   1972	000526	011110 				MOV	(R1),(R0)	; SO
   1973	000530	024040 				CMP	-(R0),-(R0)	; BACK THE POINTER UP
   1974	000532				20$:
   1975	000532					RETURN			; AND GO ON
	000532	000207 				 RTS	PC
   1976
   1977						.DSABL	LSB
   1978
   1979	000534				EDNKLA:
   1980	000534					ERROR$	KLA		; ERROR -- KL ADDRESS ERROR
	000534	012746 	043241 			 MOV	#^RKLA,-(SP)
	000540	104400 				 TRAP	TC.ERR
   1981						;
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 48
.EDKLD -- THE EXAMINE / DEPOSIT "<TEN> <NUMERICAL OBJECT>" COM

   1983					.TITLE	DFUNC -- KL10 DIAGNOSTIC FUNCTION MODULE 7603.30
   1984
   1985						.IDENT	"006130"
   1986					;
   1987					;                             COPYRIGHT (C) 1975, 1979 BY
   1988					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   1989					;
   1990					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   1991					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   1992					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   1993					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   1994					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   1995					;
   1996					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   1997					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   1998					;       CORPORATION.
   1999					;
   2000					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2001					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2002					;
   2003					;		MODULE: KL10 DIAGNOSTIC FUNCTION
   2004					;
   2005					;		VERSION: 06-13
   2006					;
   2007					;		AUTHOR: R. BELANGER
   2008					;
   2009					;		DATE: 7603.30
   2010					;
   2011					;	THIS MODULE CONTAINS:
   2012					;
   2013					;	1) KL10 DIAGNOSTIC FUNCTION CODE
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 49
.DFCOM -- COMMON DIAGNOSTIC FUNCTION ROUTINE 7603.30

   2015					.SBTTL	.DFCOM -- COMMON DIAGNOSTIC FUNCTION ROUTINE 7603.30
   2016
   2017					;+
   2018					; .DFCOM -- COMMON DIAGNOSTIC FUNCTION ROUTINE
   2019					;
   2020					; THIS ROUTINE WILL INPUT A DIAGNOSTIC FUNCTION READ, WRITE, OR
   2021					; EXECUTE CODE AND RETURN IT IN R0, AFTER CHECKING THAT THE KL
   2022					; IS NOT RUNNING, AND SEEING THAT THE FUNCTION CODE IS IN RANGE.
   2023					;
   2024					; INPUT ARGUMENTS:
   2025					;
   2026					;	NONE.
   2027					;
   2028					; OUTPUT ARGUMENTS:
   2029					;
   2030					;	R0 HOLDS THE FUNCTION CODE.
   2031					;
   2032					; ERROR CODES RETURNED:
   2033					;
   2034					;	IFC -- ILLEGAL FUNCTION CODE
   2035					;	MRA -- MISSING REQUIRED ARGUMENT.
   2036					;-
   2037
   2038	000542				.DFCOM::
   2039	000542					CALL	.CKRUN		; SEE IF THE KL IS RUNNING
	000542	004737 	000000G			 JSR	PC,.CKRUN
   2040	000546	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   2041	000550	005046 				CLR	-(SP)		; .
   2042	000552	005046 				CLR	-(SP)		; ..
   2043	000554	010600 				MOV	SP,R0		; ...POINT TO IT
   2044	000556					CALL	.GTKLN		; ...READ THE FUNCTION CODE
	000556	004737 	000000G			 JSR	PC,.GTKLN
   2045	000562	005760 	000004 			TST	4(R0)		; ...SEE IF WE HAVE A LEGAL CODE
   2046	000566	001026 				BNE	DFCIFC		; ...NO -- COMPLAIN
   2047	000570	005760 	000002 			TST	2(R0)		; ...
   2048	000574	001023 				BNE	DFCIFC		; ...
   2049	000576	105760 	000001 			TSTB	1(R0)		; ...
   2050	000602	001020 				BNE	DFCIFC		; ...
   2051	000604	132710 	177740 			BITB	#^C37,(R0)	; ...IS THIS AN EXECUTE?
   2052	000610	001411 				BEQ	10$		; ...NO -- CONTINUE
   2053	000612	032737 	040000 	000000G		BIT	#KF.RUN,.KLFLG	; ...IS THE KL RUNNING?
   2054	000620	001405 				BEQ	10$		; ...NO -- JUST KEEP GOING
   2055	000622	013737 	000000G	000000G		MOV	.KLFLG,.SVKLF	; ...SAVE THE CURRENT FLAGS
   2056	000630					CALL	.KLHLT		; ...HALT THE KL
	000630	004737 	000000G			 JSR	PC,.KLHLT
   2057	000634				10$:
   2058	000634					POP	R0		; ...GET THE CODE INTO R0
	000634	012600 				 MOV	(SP)+,R0
   2059	000636	006300 				ASL	R0		; ..TIMES 2
   2060	000640	022626 				CMP	(SP)+,(SP)+	; ..CLEAR THE STACK
   2061	000642					RETURN			; TO CALLER
	000642	000207 				 RTS	PC
   2062	000644				DFCIFC:
   2063	000644					ERROR$	IFC		; ERROR -- ILLEGAL FUNCTION CODE
	000644	012746 	034463 			 MOV	#^RIFC,-(SP)
	000650	104400 				 TRAP	TC.ERR
   2064						;
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 50
.DFRED -- DIAGNOSTIC FUNCTION READ 7602.15

   2066					.SBTTL	.DFRED -- DIAGNOSTIC FUNCTION READ 7602.15
   2067
   2068					;+
   2069					; .DFRED -- DIAGNOSTIC FUNCTION READ
   2070					;
   2071					; THIS ROUTINE WILL EXECUTE A DIAGNOSTIC FUNCTION READ AND DISPLAY
   2072					; THE RESULT ON THE CONSOLE DEVICE.
   2073					;
   2074					; INPUT ARGUMENTS:
   2075					;
   2076					;	NONE.
   2077					;
   2078					; OUTPUT ARGUMENTS:
   2079					;
   2080					;	NONE.
   2081					;
   2082					; ERROR CODES RETURNED:
   2083					;
   2084					;	IFC -- ILLEGAL FUNCTION CODE.
   2085					;	FRF -- FUNCTION READ FAILED.
   2086					;-
   2087
   2088	000652				.DFRED::
   2089	000652					CALL	.DFCOM		; DO COMMON CODE
	000652	004737 	000542'			 JSR	PC,.DFCOM
   2090	000656	010037 	000060'			MOV	R0,STOPFR	; [5.1014]SAVE START FUNCTION CODE
   2091	000662					CALL	.CKEOS		; CHECK END OF SYMBOL
	000662	004737 	000000G			 JSR	PC,.CKEOS
   2092	000666				1$:	CALL	.XFRCK		; SEE THAT WE HAVE A LEGAL READ CODE
	000666	004737 	001222'			 JSR	PC,.XFRCK
   2093	000672	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   2094	000674	005046 				CLR	-(SP)		; .
   2095	000676	005046 				CLR	-(SP)		; ..
   2096	000700	010601 				MOV	SP,R1		; ...POINT TO THE BUFFER
   2097	000702					PUSH	R0		; ...SAVE THE READ CODE
	000702	010046 				 MOV	R0,-(SP)
   2098	000704					CALL	.FREAD		; ....DO THE READ
	000704	004737 	000000G			 JSR	PC,.FREAD
   2099	000710	012700 	000000'			MOV	#DFRMSG,R0	; ....MESSAGE POINTER TO R0
   2100	000714					CALL	.TYMSG		; ....TYPE IT
	000714	004737 	000000G			 JSR	PC,.TYMSG
   2101	000720	011600 				MOV	(SP),R0		; ....READ CODE TO R0
   2102	000722	006200 				ASR	R0		; ....DIVIDED BY 2
   2103	000724					CALL	.TYP3D		; ....PRINT IT
	000724	004737 	000000G			 JSR	PC,.TYP3D
   2104	000730					CALL	.TYSLS		; ....AND A SLASH
	000730	004737 	000000G			 JSR	PC,.TYSLS
   2105	000734					CALL	.TYSPC		; ....AND A SPACE
	000734	004737 	000000G			 JSR	PC,.TYSPC
   2106	000740	010100 				MOV	R1,R0		; ....POINT TO THE DATA
   2107	000742					CALL	.TYKLN		; ....PRINT IT
	000742	004737 	000000G			 JSR	PC,.TYKLN
   2108	000746					CALL	.TCRLF		; ....END THE LINE
	000746	004737 	000000G			 JSR	PC,.TCRLF
   2109	000752					CALL	.RSTKL		; ....RESTART THE KL
	000752	004737 	000000G			 JSR	PC,.RSTKL
   2110	000756					POP	R0		; ....READ CODE INTO R0
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 50-1
.DFRED -- DIAGNOSTIC FUNCTION READ 7602.15

	000756	012600 				 MOV	(SP)+,R0
   2111	000760	062706 	000006 			ADD	#^D6,SP		; ...CLEAR THE STACK
   2112	000764	005737 	000062'		5$:	TST	RNGFR		; [5.1014]IS THIS A RANGE IN PROGRESS?
   2113	000770	001406 				BEQ	7$		; [5.1014]NO -- GO ON
   2114	000772	020037 	000060'			CMP	R0,STOPFR	; [5.1014]YES -- ARE WE DONE?
   2115	000776	001403 				BEQ	7$		; [5.1014]YES -- GO NO
   2116	001000	063700 	000064'			ADD	INCFR,R0	; [5.1014]NO -- NEXT READ
   2117	001004	000730 				BR	1$		; [5.1014]DO NEXT READ
   2118	001006	005037 	000062'		7$:	CLR	RNGFR		; [5.1014]RANGE DONE
   2119	001012	122715 	000054 			CMPB	#',,(R5)	; [5.1014]IS THIS A LIST?
   2120	001016	001002 				BNE	10$		; [5.1014]NO -- GO ON
   2121	001020	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COMMA
   2122	001022	000713 				BR	.DFRED		; [5.1014]DO NEXT
   2123	001024	122715 	000072 		10$:	CMPB	#':,(R5)	; [5.1014]IS THIS A LIST?
   2124	001030	001025 				BNE	30$		; [5.1014]NO -- GO ON
   2125	001032	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COMMA
   2126	001034					CALL	.DFCOM		; [5.1014]DO COMMON CODE
	001034	004737 	000542'			 JSR	PC,.DFCOM
   2127	001040					CALL	.CKEOS		; [5.1014]CHECK END OF SYMBOL
	001040	004737 	000000G			 JSR	PC,.CKEOS
   2128	001044	005237 	000062'			INC	RNGFR		; [5.1014]SET RANGE ON PROGRESS FLAG
   2129	001050	012737 	000002 	000064'		MOV	#2,INCFR	; [5.1014]SET FORWARD RANGE DEFAULT
   2130	001056	020037 	000060'			CMP	R0,STOPFR	; [5.1014]FORWARD RANGE
   2131	001062	003002 				BGT	20$		; [5.1014]YES -- GO ON
   2132	001064	005437 	000064'			NEG	INCFR		; [5.1014]NO -- NEGATE INCREMENT
   2133	001070				20$:	PUSH	STOPFR		; [5.1014]SAVE INITIAL FUNCTION READ
	001070	013746 	000060'			 MOV	STOPFR,-(SP)
   2134	001074	010037 	000060'			MOV	R0,STOPFR	; [5.1014]SET STOPFR CODE
   2135	001100					POP	R0		; [5.1014]SET R0 TO INITIAL READ
	001100	012600 				 MOV	(SP)+,R0
   2136	001102	000730 				BR	5$		; [5.1014]DO RANGE INCREMENT
   2137	001104				30$:	RETURN			; [5.1014]EXIT
	001104	000207 				 RTS	PC
   2138						;
   2139
   2140	000000				.PSECT	MESSAG
   2141	000000				DFRMSG:
   2142	000000	   106 	   122 	   040 		.ASCIZ	%FR %
	000003	   000
   2143	000060				.PSECT	DATA
   2144
   2145	000060	000000 			STOPFR:	.WORD	0		; [5.1014]FINAL/FIRST FUNCTION READ CODE
   2146	000062	000000 			RNGFR:	.WORD	0		; [5.1014]RANGE IN PROGRESS FLAG
   2147	000064	000000 			INCFR:	.WORD	0		; [5.1014]INCREMENT VALUE
   2148
   2149	001106				.PSECT
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 51
.DFWRT -- DIAGNOSTIC FUNCTION WRITE 7608.20

   2151					.SBTTL	.DFWRT -- DIAGNOSTIC FUNCTION WRITE 7608.20
   2152
   2153					;+
   2154					; .DFWRT -- DIAGNOSTIC FUNCTION WRITE
   2155					;
   2156					; THIS ROUTINE WILL EXECUTE A DIAGNOSTIC FUNCTION WRITE
   2157					;
   2158					; INPUT ARGUMENTS:
   2159					;
   2160					;	NONE.
   2161					;
   2162					; OUTPUT ARGUMENTS:
   2163					;
   2164					;	NONE.
   2165					;
   2166					; ERROR CODES RETURNED:
   2167					;
   2168					;	IFC -- ILLEGAL FUNCTION CODE.
   2169					;	FWF -- FUNCTION WRITE FAILED.
   2170					;-
   2171
   2172	001106				.DFWRT::
   2173	001106					CALL	.DFCOM		; DO COMMON CODE
	001106	004737 	000542'			 JSR	PC,.DFCOM
   2174	001112					CALL	.CKCOL		; CHECK END-OF-SYMBOL
	001112	004737 	000000G			 JSR	PC,.CKCOL
   2175	001116					CALL	.XFWCK		; SEE IF WE HAVE A GOOD WRITE CODE
	001116	004737 	001240'			 JSR	PC,.XFWCK
   2176	001122	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   2177	001124	005046 				CLR	-(SP)		; .
   2178	001126	005046 				CLR	-(SP)		; ..
   2179	001130	010601 				MOV	SP,R1		; ...SAVE THE BUFFER POINTER
   2180	001132					PUSH 	R0		; ...SAVE THE WRITE CODE
	001132	010046 				 MOV	R0,-(SP)
   2181	001134	010100 				MOV	R1,R0		; ....POINT TO THE BUFFER
   2182	001136					CALL	.GTKLN		; ....READ THE DATA
	001136	004737 	000000G			 JSR	PC,.GTKLN
   2183	001142					CALL	.CKEOS		; ....CHECK SYMBOL END
	001142	004737 	000000G			 JSR	PC,.CKEOS
   2184	001146	010001 				MOV	R0,R1		; ....DATA POINTER TO R1
   2185	001150					POP	R0		; ....GET THE WRITE CODE
	001150	012600 				 MOV	(SP)+,R0
   2186	001152					CALL	.FWRIT		; ...DO THE WRITE
	001152	004737 	000000G			 JSR	PC,.FWRIT
   2187	001156	062706 	000006 			ADD	#^D6,SP		; ...RESET THE STACK
   2188	001162					CALLR	.RSTKL		; RESTORE THE KL AND EXIT
	001162	000137 	000000G			 JMP	.RSTKL
   2189						;
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 52
.DFXCT -- DIAGNOSTIC FUNCTION EXECUTE 7602.15

   2191					.SBTTL	.DFXCT -- DIAGNOSTIC FUNCTION EXECUTE 7602.15
   2192
   2193					;+
   2194					; .DFXCT -- DIAGNOSTIC FUNCTION EXECUTE
   2195					;
   2196					; THIS SUBROUTINE WILL EXECUTE A DIAGNOSTIC FUNCTION EXECUTE.
   2197					;
   2198					; INPUT ARGUMENTS:
   2199					;
   2200					;	NONE.
   2201					;
   2202					; OUTPUT ARGUMENTS:
   2203					;
   2204					;	NONE.
   2205					;
   2206					; ERROR CODES RETURNED:
   2207					;
   2208					;	IFC -- ILLEGAL FUNCTION CODE.
   2209					;	FXF -- FUNCTION EXECUTE FAILED.
   2210					;-
   2211
   2212	001166				.DFXCT::
   2213	001166					CALL	.DFCOM		; DO COMMON CODE
	001166	004737 	000542'			 JSR	PC,.DFCOM
   2214	001172					CALL	.CKEOS		; CHECK SYMBOL END
	001172	004737 	000000G			 JSR	PC,.CKEOS
   2215	001176					CALL	.XFXCK		; CHECK THE FXCT CODE OUT
	001176	004737 	001256'			 JSR	PC,.XFXCK
   2216	001202					CALL	.FXCT		; DO THE FUNCTION EXECUTE
	001202	004737 	000000G			 JSR	PC,.FXCT
   2217	001206	122715 	000054 			CMPB	#',,(R5)	; [5.1014]IS THIS A LIST
   2218	001212	001002 				BNE	10$		; [5.1014]NO -- GO ON
   2219	001214	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COMMA
   2220	001216	000763 				BR	.DFXCT		; [5.1014]DO NEXT
   2221	001220				10$:	RETURN			; [5.1014]EXIT
	001220	000207 				 RTS	PC
   2222						;
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 53
.XFXCK -- SUBROUTINES TO RANGE CHECK DIAG FUNCTIONS 7509.26

   2224					.SBTTL	.XFXCK -- SUBROUTINES TO RANGE CHECK DIAG FUNCTIONS 7509.26
   2225
   2226					;+
   2227					; .XFRCK -- SUBROUTINE TO RANGE CHECK FUNCTION READ CODES.
   2228					; .XFWCK -- SUBROUTINE TO RANGE CHECK FUNCTION WRITE CODES.
   2229					; .XFXCK -- SUBROUTINE TO RANGE CHECK FUNCTION EXECUTE CODES.
   2230					;
   2231					; THESE SUBROUTINES RANGE CHECK THE ARGUMENT CODES FOR THE FUNCTION
   2232					; READ, WRITE AND EXECUTE SUBROUTINES.
   2233					;
   2234					; INPUT ARGUMENTS:
   2235					;
   2236					;	R0 HOLDS THE FUNCTION CODE TO BE CHECKED
   2237					;
   2238					; OUTPUT ARGUMENTS:
   2239					;
   2240					;	NONE.
   2241					;
   2242					; ERROR CODES RETURNED:
   2243					;
   2244					;	IFC -- ILLEGAL FUNCTION CODE.
   2245					;	OFC -- ODD FUNCTION CODE.
   2246					;-
   2247
   2248						.ENABL	LSB
   2249
   2250	001222				.XFRCK::			; HERE TO CHECK FUNCTION READ CODE
   2251	001222	020027 	000200 			CMP	R0,#FR.100	; IS IT .LT. FR.100?
   2252	001226	103422 				BLO	FNCIFC		; NO -- ERROR
   2253	001230	020027 	000376 			CMP	R0,#FR.177	; YES -- IS IT .GT. FR.177?
   2254	001234	101017 				BHI	FNCIFC		; YES -- ERROR
   2255	001236	000412 				BR	10$		; NO -- SEE IF IT'S ODD
   2256						;
   2257	001240				.XFWCK::			; HERE TO CHECK FUNCTION WRITE CODE
   2258	001240	020027 	000100 			CMP	R0,#FW.040	; IS IT .LT. FW.040?
   2259	001244	103413 				BLO	FNCIFC		; NO -- ERROR
   2260	001246	020027 	000176 			CMP	R0,#FW.LAR	; YES -- IS IT .GT. FW.077?
   2261	001252	101010 				BHI	FNCIFC		; YES -- ERROR
   2262	001254	000403 				BR	10$		; NO -- SEE IF IT'S ODD
   2263						;
   2264	001256				.XFXCK::			; HERE TO CHECK FUNCTION EXECUTE CODE
   2265	001256	020027 	000076 			CMP	R0,#FX.037	; IS IT .GT. FX.037?
   2266	001262	101004 				BHI	FNCIFC		; YES -- ERROR
   2267	001264				10$:
   2268	001264	032700 	000001 			BIT	#BIT00,R0	; NO -- IS IT ODD?
   2269	001270	001004 				BNE	FNCOFC		; YES -- ERROR
   2270	001272					RETURN			; NO -- ALL OK, RETURN TO CALLER
	001272	000207 				 RTS	PC
   2271	001274				FNCIFC:
   2272	001274					ERROR$	IFC		; ERROR -- ILLEGAL FUNCTION CODE
	001274	012746 	034463 			 MOV	#^RIFC,-(SP)
	001300	104400 				 TRAP	TC.ERR
   2273						;
   2274	001302				FNCOFC:
   2275	001302					ERROR$	OFC		; ERROR -- ODD FUNCTION CODE
	001302	012746 	057263 			 MOV	#^ROFC,-(SP)
	001306	104400 				 TRAP	TC.ERR
DFUNC -- KL10 DIAGNOSTIC FUNCTI	MACRO M1113  10-NOV-81 17:48  PAGE 53-1
.XFXCK -- SUBROUTINES TO RANGE CHECK DIAG FUNCTIONS 7509.26

   2276						;
   2277
   2278						.DSABL	LSB
DISCC -- DISCONNECT COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 55
.XFXCK -- SUBROUTINES TO RANGE CHECK DIAG FUNCTIONS 7509.26

   2281					.TITLE	DISCC -- DISCONNECT COMMAND MODULE 7702.28
   2282
   2283						.IDENT	"005000"
   2284					;
   2285					;                             COPYRIGHT (C) 1975, 1979 BY
   2286					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2287					;
   2288					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2289					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2290					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2291					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   2292					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2293					;
   2294					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2295					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2296					;       CORPORATION.
   2297					;
   2298					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2299					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2300					;
   2301					;		MODULE: DISCONNECT COMMAND
   2302					;
   2303					;		VERSION: 05-00
   2304					;
   2305					;		AUTHOR: R. BELANGER
   2306					;
   2307					;		DATE: 7702.28
   2308					;
   2309					;	THIS MODULE CONTAINS:
   2310					;
   2311					;	1) DISCONNECT COMMAND CODE
   2312
   2313						.MCALL	DIR$,RQST$
DISCC -- DISCONNECT COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 56
.DISCC -- THE "DISCONNECT" COMMAND 7702.28

   2315					.SBTTL	.DISCC -- THE "DISCONNECT" COMMAND 7702.28
   2316
   2317					;+
   2318					;  .DISCC --  THE "DISCONNECT" COMMAND
   2319					;
   2320					; THIS SUBROUTINE CHECKS THE SYNTAX OF THE "DISCONNECT" COMMAND
   2321					; AND REQUESTS THE KLINIK DISCONNECT TASK, "KLDISC". THE KLINIK DISCONNECT
   2322					; TASK WILL THEN DISCONNECT THE KLINIK LINE, LOG THE DISCONNECT AND
   2323					; RETURN THE THE RSX20F COMMAND PARSER.
   2324					;
   2325					; INPUT ARGUMENTS:
   2326					;
   2327					;	NONE.
   2328					;
   2329					; OUTPUT ARGUMENTS:
   2330					;
   2331					;	NONE.
   2332					;
   2333					; ERROR CODES RETURNED:
   2334					;
   2335					;	NONE.
   2336					;-
   2337
   2338	001310				.DISCC::
   2339	001310					CALL	.CKEOC		; MUST HAVE E-O-C
	001310	004737 	000000G			 JSR	PC,.CKEOC
   2340	001314	112737 	000003 	000001G		MOVB	#3,.KLNSW+1	; FLAG DISCONNECT
   2342	001322					DIR$	#RQSKLD		; REQUEST DISCONNECT TASK
	001322	012746 	000000'			MOV	#RQSKLD,-(SP)
	001326	104375 				EMT	375
   2344	001330					CALLR	.EXITP		; GO AWAY FOR NOW
	001330	000137 	000000G			 JMP	.EXITP
   2345						;
   2346
   2347	000000					.PSECT	DPBS
   2348
   2349	000000				RQSKLD:
   2350	000000					RQST$	KLDISC,,10
	000000	   013 	   007 			.BYTE	11.,7
	000002	043244 	035473 			.RAD50	/KLDISC/
	000006	000000 	000000 			.WORD	0,0
	000012	000010 				.WORD	10
	000014	   000 	   000 			.BYTE	,
   2351
   2352	001334					.PSECT
   2353					.TITLE	EDELE -- DEPOSIT / EXAMINE ELEVEN COMMAND MODULE 7603.30
   2354
   2355						.IDENT	"006130"
   2356
   2357					;
   2358					;                             COPYRIGHT (C) 1975, 1979 BY
   2359					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2360					;
   2361					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2362					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2363					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2364					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 56-1
.DISCC -- THE "DISCONNECT" COMMAND 7702.28

   2365					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2366					;
   2367					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2368					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2369					;       CORPORATION.
   2370					;
   2371					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2372					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2373					;
   2374					;		MODULE: DEPOSIT / EXAMINE ELEVEN COMMAND
   2375					;
   2376					;		VERSION: 06-13
   2377					;
   2378					;		AUTHOR: R. BELANGER
   2379					;
   2380					;		DATE: 7603.30
   2381					;
   2382					;	THIS MODULE CONTAINS:
   2383					;
   2384					;	1) DEPOSIT / EXAMINE ELEVEN COMMAND CODE
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 57
.DPOSE -- THE "DEPOSIT <ELEVEN>" COMMAND 7602.29

   2386					.SBTTL	.DPOSE -- THE "DEPOSIT <ELEVEN>" COMMAND 7602.29
   2387
   2388					;+
   2389					; .DPOSE -- THE "DEPOSIT <ELEVEN>" COMMAND.
   2390					;
   2391					; THIS SUBROUTINE WILL DEPOSIT THE DATA SPECIFIED INTO THE PDP-11
   2392					; ADDRESS SPECIFIED.
   2393					;
   2394					; INPUT ARGUMENTS:
   2395					;
   2396					;	NONE.
   2397					;
   2398					; OUTPUT ARGUMENTS:
   2399					;
   2400					;	THE PDP-11 ADDRESS DEPOSITED IS IN ".EDELA"
   2401					;	THE DATA DEPOSITED IS IN ".ELDDW".
   2402					;
   2403					; ERROR CODES RETURNED:
   2404					;
   2405					;	NONE.
   2406					;-
   2407
   2408	001334				.DPOSE::
   2409	001334					CALL	.CKARG		; SEE IF WE HAVE AN ARGUMENT
	001334	004737 	000000G			 JSR	PC,.CKARG
   2410	001340	002406 				BLT	10$		; NUMERIC -- GO AROUND TABLE SCAN
   2411	001342	012700 	000000G			MOV	#.DPETB,R0	; DEPOSIT EXTENSION TABLE POINTER TO R0
   2412	001346					CALL	.TSCAN		; SCAN IT
	001346	004737 	000000G			 JSR	PC,.TSCAN
   2413	001352					CALLR	@2(R0)		; DISPATCH FOR IT
	001352	000170 	000002 			 JMP	@2(R0)
   2414						;
   2415	001356				10$:
   2416	001356					CALL	.GTELN		; READ THE ADDRESS
	001356	004737 	000000G			 JSR	PC,.GTELN
   2417
   2418	001362	032700 	000001 			BIT	#BIT00,R0	; IS IT ODD?
   2419	001366	001050 				BNE	DPOOAI		; YES -- GIVE "OAI" ERROR
   2420	001370					PUSH	R0		; NO -- SAVE IT
	001370	010046 				 MOV	R0,-(SP)
   2421	001372					CALL	.CKCOL		; .CHECK SEPARATOR
	001372	004737 	000000G			 JSR	PC,.CKCOL
   2422	001376					CALL	.GTELN		; .READ THE DATA
	001376	004737 	000000G			 JSR	PC,.GTELN
   2423	001402	010001 				MOV	R0,R1		; .DATA TO R1
   2424	001404					POP	R0		; .ADDRESS TO R0
	001404	012600 				 MOV	(SP)+,R0
   2425
   2426					;	[CONTINUED ON THE FOLLOWING PAGE]
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 58
.DPOSE -- THE "DEPOSIT <ELEVEN>" COMMAND 7602.29

   2428					;	[CONTINUED FROM THE PREVIOUS PAGE]
   2429
   2430	001406				.DPSEE::			; EXTENDED DEPOSIT ENTRY POINT
   2431	001406					CALL	.CKEOC		; CHECK FOR E-O-C
	001406	004737 	000000G			 JSR	PC,.CKEOC
   2432	001412	032700 	000001 			BIT	#BIT00,R0	; IS THE ADDRESS ODD?
   2433	001416	001034 				BNE	DPOOAI		; YES -- GIVE "OAI" ERROR
   2434	001420					PUSH	R0		; NO -- SAVE THE ADDRESS
	001420	010046 				 MOV	R0,-(SP)
   2435	001422					PUSH	R1		; .AND THE DEPOSIT DATA
	001422	010146 				 MOV	R1,-(SP)
   2436	001424	010037 	000000G			MOV	R0,.EDELA	; ..LEAVE TRACKS
   2437	001430	010137 	000000G			MOV	R1,.ELDDW	; ..MORE TRACKS
   2438	001434	013737 	000000G	000000G		MOV	.TRP4V,.SSTTB	; ..SET UP TRAP AT 4 TRAP
   2439	001442	011001 				MOV	(R0),R1		; ..READ ORIGINAL CONTENTS
   2440	001444					CALL	.TYELA		; ..PRINT THE ADDRESS
	001444	004737 	000000G			 JSR	PC,.TYELA
   2441	001450	112700 	000134 			MOVB	#'\,R0		; ..BACK SLASH
   2442	001454					CALL	.TYCHR		; ..PRINT IT
	001454	004737 	000000G			 JSR	PC,.TYCHR
   2443	001460					CALL	.TYSPC		; ..AND A SPACE
	001460	004737 	000000G			 JSR	PC,.TYSPC
   2444	001464	010100 				MOV	R1,R0		; ..DATA TO R0
   2445	001466					CALL	.TYELN		; ..PRINT THAT
	001466	004737 	000000G			 JSR	PC,.TYELN
   2446	001472					POP	R1		; ..RESTORE DATA
	001472	012601 				 MOV	(SP)+,R1
   2447	001474					POP	R0		; .AND ADDRESS
	001474	012600 				 MOV	(SP)+,R0
   2448	001476	010110 				MOV	R1,(R0)		; DO THE DEPOSIT
   2449	001500	005037 	000000G			CLR	.SSTTB		; RESET TRAP AT 4 TRAP
   2450	001504					CALLR	.TCRLF		; TO CALLER
	001504	000137 	000000G			 JMP	.TCRLF
   2451						;
   2452	001510				DPOOAI:
   2453	001510					ERROR$	OAI		; ERROR -- ODD ADDRESS ILLEGAL
	001510	012746 	056761 			 MOV	#^ROAI,-(SP)
	001514	104400 				 TRAP	TC.ERR
   2454						;
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 59
.DPEWD -- THE "DEPOSIT <ELEVEN> <NUMERICAL OBJECT>" COMMAND 76

   2456					.SBTTL	.DPEWD -- THE "DEPOSIT <ELEVEN> <NUMERICAL OBJECT>" COMMAND 7602.29
   2457
   2458						.ENABL	LSB
   2459
   2460	001516				.DPEWT::			; DEPOSIT <ELEVEN> THIS
   2461	001516	013700 	000000G			MOV	.EDELA,R0	; ADDRESS TO R0
   2462	001522	000413 				BR	10$		; CHECK FOR ARGUMENTS
   2463						;
   2464	001524				.DPEWD::			; DEPOSIT <ELEVEN> DECREMENT
   2465	001524					CALL	.EDEWD		; DECREMENT THE ADDRESS
	001524	004737 	000370'			 JSR	PC,.EDEWD
   2466	001530	000410 				BR	10$		; EXIT THRU COMMON CODE
   2467						;
   2468	001532				.DPEWI::			; DEPOSIT <ELEVEN> INCREMENT
   2469	001532					CALL	.EDEWI		; INCREMENT THE ADDRESS
	001532	004737 	000402'			 JSR	PC,.EDEWI
   2470	001536	000405 				BR	10$		; EXIT THRU COMMON CODE
   2471						;
   2472	001540				.DPEWN::			; DEPOSIT <ELEVEN> NEXT
   2473	001540					CALL	.EDEWN		; GET THE NEXT ADDRESS
	001540	004737 	000402'			 JSR	PC,.EDEWN
   2474	001544	000402 				BR	10$		; EXIT THRU COMMON CODE
   2475						;
   2476	001546				.DPEWP::			; DEPOSIT <ELEVEN> PREVIOUS
   2477	001546					CALL	.EDEWP		; GET THE PREVIOUS ADDRESS
	001546	004737 	000370'			 JSR	PC,.EDEWP
   2478	001552				10$:
   2479	001552	122715 	000075 			CMPB	#'=,(R5)	; DOES AN ARGUMENT FOLLOW?
   2480	001556	001403 				BEQ	20$		; YES -- GO GET IT
   2481	001560	013701 	000000G			MOV	.ELDDW,R1	; NO -- USE OLD DATA
   2482	001564	000710 				BR	.DPSEE		; AND DO THE DEPOSIT
   2483						;
   2484	001566				20$:
   2485	001566	105725 				TSTB	(R5)+		; GET OVER THE COLON
   2486	001570					PUSH	R0		; SAVE THE ADDRESS
	001570	010046 				 MOV	R0,-(SP)
   2487	001572					CALL	.GTELN		; .READ THE DATA
	001572	004737 	000000G			 JSR	PC,.GTELN
   2488	001576	010001 				MOV	R0,R1		; .DATA TO R1
   2489	001600					POP	R0		; .ADDRESS TO R0
	001600	012600 				 MOV	(SP)+,R0
   2490	001602	000701 				BR	.DPSEE		; DO THE DEPOSIT
   2491						;
   2492
   2493						.DSABL	LSB
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 60
.EXAME -- THE "EXAMINE <ELEVEN>" COMMAND 7602.29

   2495					.SBTTL	.EXAME -- THE "EXAMINE <ELEVEN>" COMMAND 7602.29
   2496
   2497					;+
   2498					; .EXAME -- THE "EXAMINE <ELEVEN> COMMAND.
   2499					;
   2500					; THIS ROUTINE WILL EXAMINE AND DISPLAY THE CONTEN OF ONE PDP-11
   2501					; ELEVEN MEMORY LOCATION ON THE CONSOLE DEVICE.
   2502					;
   2503					; INPUT ARGUMENTS:
   2504					;
   2505					;	NONE.
   2506					;
   2507					; OUTPUT ARGUMENTS:
   2508					;
   2509					;	THE ADDRESS EXAMINED IS IN ".EDELA"
   2510					;	THE EXAMINED DATA IS IN ".ELEDW"
   2511					;
   2512					; ERROR CODES RETURNED:
   2513					;
   2514					;	NONE.
   2515					;-
   2516
   2517	001604				.EXAME::
   2518	001604					CALL	.CKARG		; SEE IF WE HAVE AN ARGUMENT
	001604	004737 	000000G			 JSR	PC,.CKARG
   2519	001610	002406 				BLT	10$		; NUMERIC -- GO AROUND TABLE SCAN
   2520	001612	012700 	000000G			MOV	#.EXETB,R0	; EXTENSION TABLE POINTER TO R0
   2521	001616					CALL	.TSCAN		; SCAN IT
	001616	004737 	000000G			 JSR	PC,.TSCAN
   2522	001622					CALLR	@2(R0)		; DO WHAT IS SAYS TO
	001622	000170 	000002 			 JMP	@2(R0)
   2523						;
   2524	001626				10$:
   2525	001626					CALL	.GTELN		; READ THE ADDRESS
	001626	004737 	000000G			 JSR	PC,.GTELN
   2526
   2527					;	[CONTINUED ON THE FOLLOWING PAGE]
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 61
.EXAME -- THE "EXAMINE <ELEVEN>" COMMAND 7602.29

   2529					;	[CONTINUED FROM THE PREVIOUS PAGE]
   2530
   2531	001632				.EXMEE::			; EXTENDED EXAMINE ENTRY POINT
   2532	001632	010037 	000066'			MOV	R0,STOPEX	; [5.1014]SAVE INITIAL ADDRESS
   2533	001636					CALL	.CKEOC		; CHECK FOR E-O-C
	001636	004737 	000000G			 JSR	PC,.CKEOC
   2534	001642	032700 	000001 		1$:	BIT	#BIT00,R0	; IS IT ODD?
   2535	001646	001101 				BNE	EXAOAI		; YES -- GIVE "OAI" ERROR
   2536	001650	013737 	000000G	000000G		MOV	.TRP4V,.SSTTB	; SET UP TRAP AT 4 TRAP
   2537	001656	010037 	000000G			MOV	R0,.EDELA	; .LEAVE SOME TRACKS
   2538	001662	011001 				MOV	(R0),R1		; DO THE EXAMINE
   2539	001664					PUSH	R0		; [5.1014]SAVE CURRENT ADDRESS
	001664	010046 				 MOV	R0,-(SP)
   2540	001666	005037 	000000G			CLR	.SSTTB		; RESET TRAP AT 4 TRAP
   2541	001672	010137 	000000G			MOV	R1,.ELEDW	; MORE TRACKS
   2542	001676					CALL	.TYELA		; TYPE THE ADDRESS
	001676	004737 	000000G			 JSR	PC,.TYELA
   2543	001702	112700 	000134 			MOVB	#'\,R0		; BACKSLASH
   2544	001706					CALL	.TYCHR		; TYPE IT
	001706	004737 	000000G			 JSR	PC,.TYCHR
   2545	001712					CALL	.TYSPC		; AND A SPACE
	001712	004737 	000000G			 JSR	PC,.TYSPC
   2546	001716	010100 				MOV	R1,R0		; DATA TO R0
   2547	001720					CALL	.TYELN		; TYPE THAT
	001720	004737 	000000G			 JSR	PC,.TYELN
   2548	001724					CALL	.TCRLF		; END THE LINE
	001724	004737 	000000G			 JSR	PC,.TCRLF
   2549	001730				5$:	POP	R0		; [5.1014]RESTORE ADDRESS
	001730	012600 				 MOV	(SP)+,R0
   2550	001732	005737 	000070'			TST	RNGEX		; [5.1014]RANGE IN PROGRESS?
   2551	001736	001406 				BEQ	7$		; [5.1014]NO -- GO ON
   2552	001740	020037 	000066'			CMP	R0,STOPEX	; [5.1014]YES -- DONE?
   2553	001744	001403 				BEQ	7$		; [5.1014]YES -- GO ON
   2554	001746	063700 	000072'			ADD	INCEX,R0	; [5.1014]NO -- NEXT ADDRESS
   2555	001752	000733 				BR	1$		; [5.1014]DO EXAMINE
   2556	001754	005037 	000070'		7$:	CLR	RNGEX		; [5.1014]CLEAR RANGE IN PROGRESS
   2557	001760	122715 	000054 			CMPB	#',,(R5)	; [5.1014]IS THIS A LIST?
   2558	001764	001002 				BNE	20$		; [5.1014]NO -- GO NO
   2559	001766	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COMMA
   2560	001770	000705 				BR	.EXAME		; [5.1014]DO NEXT
   2561	001772	122715 	000072 		20$:	CMPB	#':,(R5)	; [5.1014]IS THIS A RANGE?
   2562	001776	001024 				BNE	40$		; [5.1014]NO -- EXIT
   2563	002000	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COLON
   2564	002002					CALL	.GTELN		; [5.1014]GET FINAL ADDRESS
	002002	004737 	000000G			 JSR	PC,.GTELN
   2565	002006					CALL	.CKEOC		; [5.1014]CHECK END OF COMMAND
	002006	004737 	000000G			 JSR	PC,.CKEOC
   2566	002012	005237 	000070'			INC	RNGEX		; [5.1014]SET RANGE IN PROGRESS
   2567	002016	012737 	000002 	000072'		MOV	#2,INCEX	; [5.1014]SET FORWARD INCREMENT
   2568	002024	020037 	000066'			CMP	R0,STOPEX	; [5.1014]FORWARD INCREMENT?
   2569	002030	003002 				BGT	30$		; [5.1014]YES -- GO ON
   2570	002032	005437 	000072'			NEG	INCEX		; [5.1014]NO -- NEGATE INCREMENT
   2571	002036				30$:	PUSH	STOPEX		; [5.1014]SAVE INITIAL ADDRESS
	002036	013746 	000066'			 MOV	STOPEX,-(SP)
   2572	002042	010037 	000066'			MOV	R0,STOPEX	; [5.1014]SET FINAL VALUE
   2573	002046	000730 				BR	5$		; [5.1014]DO RANGE INCREMENT
   2574	002050				40$:	RETURN			; [5.1014]DONE
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 61-1
.EXAME -- THE "EXAMINE <ELEVEN>" COMMAND 7602.29

	002050	000207 				 RTS	PC
   2575						;
   2576	002052				EXAOAI:
   2577	002052					ERROR$	OAI		; ERROR -- ODD ADDRESS ILLEGAL
	002052	012746 	056761 			 MOV	#^ROAI,-(SP)
	002056	104400 				 TRAP	TC.ERR
   2578						;
   2579
   2580	000066				.PSECT	DATA
   2581
   2582	000066	000000 			STOPEX:	.WORD	0		; [5.1014]FINAL/FIRST EXAMINE ADDRESS
   2583	000070	000000 			RNGEX:	.WORD	0		; [5.1014]RANGE IN PROGRESS FLAG
   2584	000072	000000 			INCEX:	.WORD	0		; [5.1014]INCREMENT VALUE
   2585
   2586	002060				.PSECT
EDELE -- DEPOSIT / EXAMINE ELEV	MACRO M1113  10-NOV-81 17:48  PAGE 62
.EXEWD -- THE "EXAMINE <ELEVEN> <NUMERICAL OBJECT>" COMMAND 76

   2588					.SBTTL	.EXEWD -- THE "EXAMINE <ELEVEN> <NUMERICAL OBJECT>" COMMAND 7602.29
   2589
   2590						.ENABL	LSB
   2591
   2592	002060				.EXEWT::			; EXAMINE <ELEVEN> THIS
   2593	002060	013700 	000000G			MOV	.EDELA,R0	; ADDRESS TO R0
   2594	002064	000662 				BR	.EXMEE		; DO THE EXAMINE
   2595						;
   2596	002066				.EXEWD::			; EXAMINE <ELEVEN> DECREMENT
   2597	002066					CALL	.EDEWD		; DECREMENT IT
	002066	004737 	000370'			 JSR	PC,.EDEWD
   2598	002072	000657 				BR	.EXMEE		; DO THE EXAMINE
   2599						;
   2600	002074				.EXEWI::			; EXAMINE <ELEVEN> INCREMENT
   2601	002074					CALL	.EDEWI		; INCREMENT IT
	002074	004737 	000402'			 JSR	PC,.EDEWI
   2602	002100	000654 				BR	.EXMEE		; DO THE EXAMINE
   2603						;
   2604	002102				.EXEWN::			; EXAMINE <ELEVEN> NEXT
   2605	002102					CALL	.EDEWN		; GET THE NEXT ADDRESS
	002102	004737 	000402'			 JSR	PC,.EDEWN
   2606	002106	000651 				BR	.EXMEE		; DO THE EXAMINE
   2607						;
   2608	002110				.EXEWP::			; EXAMINE <ELEVEN> PREVIOUS
   2609	002110					CALL	.EDEWP		; GET THE PREVIOUS ADDRESS
	002110	004737 	000370'			 JSR	PC,.EDEWP
   2610	002114	000646 				BR	.EXMEE		; DO THE EXAMINE
   2611						;
   2612
   2613						.DSABL	LSB
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 64
.EXEWD -- THE "EXAMINE <ELEVEN> <NUMERICAL OBJECT>" COMMAND 76

   2616					.TITLE	EDTEN -- DEPOSIT / EXAMINE TEN COMMAND MODULE 7603.21
   2617
   2618						.IDENT	"006130"
   2619
   2620					;
   2621					;                             COPYRIGHT (C) 1975, 1979 BY
   2622					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2623					;
   2624					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2625					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2626					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2627					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   2628					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2629					;
   2630					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2631					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2632					;       CORPORATION.
   2633					;
   2634					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2635					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2636					;
   2637					;		MODULE: DEPOSIT / EXAMINE TEN COMMAND
   2638					;
   2639					;		VERSION: 06-13
   2640					;
   2641					;		AUTHOR: R. BELANGER
   2642					;
   2643					;		DATE: 7603.21
   2644					;
   2645					;	THIS MODULE CONTAINS:
   2646					;
   2647					;	1) DEPOSIT / EXAMINE TEN COMMAND CODE
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 65
.DEPAR -- THE "DEPOSIT AR" COMMAND 7603.21

   2649					.SBTTL	.DEPAR -- THE "DEPOSIT AR" COMMAND 7603.21
   2650
   2651					;+
   2652					; .DEPAR -- THE "DEPOSIT AR" COMMAND.
   2653					;
   2654					; THIS ROUTINE WILL DEPOSIT THE DATA SPECIFIED INTO THE KL AR REGISTER.
   2655					;
   2656					; INPUT ARGUMENTS:
   2657					;
   2658					;	NONE.
   2659					;
   2660					; OUTPUT ARGUMENTS:
   2661					;
   2662					;	NONE.
   2663					;
   2664					; ERROR CODES RETURNED:
   2665					;
   2666					;	NONE.
   2667					;-
   2668
   2669	002116				.DEPAR::
   2670	002116					CALL	.CKRUN		; SEE IF THE KL IS RUNNING
	002116	004737 	000000G			 JSR	PC,.CKRUN
   2671	002122					CALL	.CKCOL		; CHECK FOR A COLON
	002122	004737 	000000G			 JSR	PC,.CKCOL
   2672	002126	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   2673	002130	005046 				CLR	-(SP)		; .
   2674	002132	005046 				CLR	-(SP)		; ..
   2675	002134	010600 				MOV	SP,R0		; ...POINT TO IT
   2676	002136					CALL	.GTNUM		; ...READ A NUMBER
	002136	004737 	000000G			 JSR	PC,.GTNUM
   2677	002142					CALL	.CKEOC		; ...CHECK FOR E-O-C
	002142	004737 	000000G			 JSR	PC,.CKEOC
   2678	002146					PUSH	.KLFLG		; ...SAVE ".KLFLG"
	002146	013746 	000000G			 MOV	.KLFLG,-(SP)
   2679	002152	032716 	100000 			BIT	#KF.CLK,(SP)	; ....IS THE CLOCK RUNNING?
   2680	002156	001402 				BEQ	10$		; ....NO -- GO ON
   2681	002160					CALL	.KLHLT		; ....STOP THE KL - DEAD
	002160	004737 	000000G			 JSR	PC,.KLHLT
   2682	002164				10$:
   2683	002164	010001 				MOV	R0,R1		; ....DATA POINTER TO R1
   2684	002166					CALL	.WRTAR		; ....WRITE THE AR
	002166	004737 	000000G			 JSR	PC,.WRTAR
   2685	002172					POP	.SVKLF		; ....SET UP ".SVKLF"
	002172	012637 	000000G			 MOV	(SP)+,.SVKLF
   2686	002176	062706 	000006 			ADD	#^D6,SP		; ...RESET THE STACK
   2687	002202					CALLR	.KLRST		; RESTART THE KL AND EXIT
	002202	000137 	000000G			 JMP	.KLRST
   2688						;
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 66
.DPOST -- THE "DEPOSIT <TEN>" COMMAND 7602.15

   2690					.SBTTL	.DPOST -- THE "DEPOSIT <TEN>" COMMAND 7602.15
   2691
   2692					;+
   2693					; .DPOST -- THE "DEPOSIT <TEN>" COMMAND.
   2694					;
   2695					; THIS SUBROUTINE WILL DEPOSIT THE DATA SPECIFIED INTO THE DESIRED
   2696					; KL MEMORY LOCATION.
   2697					;
   2698					; INPUT ARGUMENTS:
   2699					;
   2700					;	NONE.
   2701					;
   2702					; OUTPUT ARGUMENTS:
   2703					;
   2704					;	THE ADDRESS DEPOSITED IS IN ".EDKLA"
   2705					;	THE DATA DEPOSITED IS IN ".DPBFR"
   2706					;
   2707					; ERROR CODES RETURNED:
   2708					;
   2709					;	APE -- KL APR ERROR
   2710					;	DMF -- DEPOSIT KL MEMORY FAILED
   2711					;	ESD -- EBOX STOPPED - DEPOSIT
   2712					;	KLA -- KL ADDRESS ERROR
   2713					;	KCN -- KL CLOCK NOT RUNNING
   2714					;	MRA -- MISSING REQUIRED ARGUMENT
   2715					;	NOR -- NUMBER OUT OF RANGE.
   2716					;	VFY -- VERIFY FAILED
   2717					;-
   2718
   2719	002206				.DPOST::
   2720	002206					CALL	.CKARG		; SEE IF AN ARGUMENT FOLLOWS
	002206	004737 	000000G			 JSR	PC,.CKARG
   2721	002212	002406 				BLT	10$		; NUMERIC -- GO AROUND TABLE SCAN
   2722	002214	012700 	000000G			MOV	#.DPETB,R0	; EXTENSION TABLE POINTER TO R0
   2723	002220					CALL	.TSCAN		; SCAN IT
	002220	004737 	000000G			 JSR	PC,.TSCAN
   2724	002224					CALLR	@2(R0)		; DO WHAT IT SAYS TO
	002224	000170 	000002 			 JMP	@2(R0)
   2725						;
   2726	002230				10$:
   2727	002230	012700 	000000G			MOV	#.EDKLX,R0	; ADDRESS POINTER TO R0
   2728	002234					CALL	.GTKLA		; READ THE ADDRESS
	002234	004737 	000000G			 JSR	PC,.GTKLA
   2729	002240					CALL	.CKCOL		; CHECK FOR A COLON
	002240	004737 	000000G			 JSR	PC,.CKCOL
   2730	002244	010001 				MOV	R0,R1		; GOT IT, SAVE THE POINTER
   2731	002246	012700 	000000G			MOV	#.DPBFX,R0	; DATA POINTER TO R0
   2732	002252					CALL	.GTKLN		; READ THE DATA
	002252	004737 	000000G			 JSR	PC,.GTKLN
   2733
   2734					;	[CONTINUED ON THE FOLLOWING PAGE]
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 67
.DPOST -- THE "DEPOSIT <TEN>" COMMAND 7602.15

   2736					;	[CONTINUED FROM THE PREVIOUS PAGE]
   2737
   2738	002256				.DPSTE::			; EXTENDED DEPOSIT ENTRY POINT
   2739	002256					CALL	.CKEOC		; CHECK E-O-C CHARACTER
	002256	004737 	000000G			 JSR	PC,.CKEOC
   2740	002262	032737 	100000 	000000G		BIT	#KF.CLK,.KLFLG	; IS THE CLOCK RUNNING?
   2741	002270	001510 				BEQ	DPOKCN		; NO -- GIVE "KCN" ERROR
   2742	002272	012702 	000000G			MOV	#.EDKLA,R2	; ADDRESS BUFFER POINTER TO R2
   2743	002276	012122 				MOV	(R1)+,(R2)+	; LOAD THE NEW ADDRESS
   2744	002300	012122 				MOV	(R1)+,(R2)+	; INTO THE ADDRESS BUFFER
   2745	002302	011112 				MOV	(R1),(R2)	; SO
   2746	002304	024242 				CMP	-(R2),-(R2)	; BACK THE POINTER UP
   2747	002306	010201 				MOV	R2,R1		; PUT IT IN R1
   2748	002310	012702 	000000G			MOV	#.DPBFR,R2	; DEPOSIT DATA POINTER TO R2
   2749	002314	012022 				MOV	(R0)+,(R2)+	; LOAD THE NEW DATA
   2750	002316	012022 				MOV	(R0)+,(R2)+	; INTO THE DEPOSIT DATA BUFFER
   2751	002320	011012 				MOV	(R0),(R2)	; SO
   2752	002322	024242 				CMP	-(R2),-(R2)	; BACK THE POINTER UP
   2753	002324					PUSH	R2		; SAVE THE DATA POINTER
	002324	010246 				 MOV	R2,-(SP)
   2754	002326					PUSH	R1		; .AND THE ADDRESS POINTER
	002326	010146 				 MOV	R1,-(SP)
   2755	002330	010600 				MOV	SP,R0		; ..SAVE THE POINTER TO THE BLOCK
   2756	002332					PUSH	R0		; ..SO
	002332	010046 				 MOV	R0,-(SP)
   2757	002334					PUSH	#.EXBFR		; ...POINT TO EXAMINE BUFFER
	002334	012746 	000000G			 MOV	#.EXBFR,-(SP)
   2758	002340					PUSH	R1		; ....FOR THIS ADDRESS
	002340	010146 				 MOV	R1,-(SP)
   2759	002342	010601 				MOV	SP,R1		; .....POINT TO THE BLOCK
   2760	002344	012700 	000200 			MOV	#ED.PHY,R0	; .....PHYSICAL REFERENCE
   2761	002350					CALL	.EXKLM		; .....EXAMINE IT FIRST
	002350	004737 	000000G			 JSR	PC,.EXKLM
   2762	002354					POP	R0		; .....GET THE ADDRESS POINTER
	002354	012600 				 MOV	(SP)+,R0
   2763	002356					CALL	.TYKLA		; ....PRINT IT
	002356	004737 	000000G			 JSR	PC,.TYKLA
   2764	002362					CALL	.TYSLS		; ....AND A <SLASH>
	002362	004737 	000000G			 JSR	PC,.TYSLS
   2765	002366					CALL	.TYSPC		; ....NOW A <SPACE>
	002366	004737 	000000G			 JSR	PC,.TYSPC
   2766	002372					POP	R0		; ....GET THE DATA POINTER
	002372	012600 				 MOV	(SP)+,R0
   2767	002374					CALL	.TYKLN		; ...TYPE THE DATA
	002374	004737 	000000G			 JSR	PC,.TYKLN
   2768	002400					CALL	.TCRLF		; ...AND A <CRLF>
	002400	004737 	000000G			 JSR	PC,.TCRLF
   2769
   2770					;	[CONTINUED ON THE FOLLOWING PAGE]
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 68
.DPOST -- THE "DEPOSIT <TEN>" COMMAND 7602.15

   2772					;	[CONTINUED FROM THE PREVIOUS PAGE]
   2773
   2774	002404					POP	R1		; ...POINT TO THE DEPOSIT BLOCK
	002404	012601 				 MOV	(SP)+,R1
   2775	002406	012700 	000200 			MOV	#ED.PHY,R0	; ..PHYSICAL REFERENCE
   2776	002412					CALL	.DPKLM		; ..DO THE DEPOSIT
	002412	004737 	000000G			 JSR	PC,.DPKLM
   2777	002416	005737 	000000G			TST	.VFYFL		; ..VERIFY THE DEPOSIT?
   2778	002422	001426 				BEQ	20$		; ..NO -- JUST EXIT
   2779	002424	012766 	000000G	000002 		MOV	#.EXBFR,2(SP)	; ..YES -- CHANGE THE BUFFER POINTER
   2780	002432	012700 	000200 			MOV	#ED.PHY,R0	; ..PHYSICAL REFERENCE
   2781	002436					CALL	.EXKLM		; ..EXAMINE IT
	002436	004737 	000000G			 JSR	PC,.EXKLM
   2782	002442	012700 	000000G			MOV	#.DPBFR,R0	; ..DEPOSITED DATA
   2783	002446	012701 	000000G			MOV	#.EXBFR,R1	; ..EXAMINED DATA
   2784	002452					CALL	.TPCMP		; ..SEE IF THEY COMPARE
	002452	004737 	000000G			 JSR	PC,.TPCMP
   2785	002456	001020 				BNE	DPOVFE		; ..NO -- COMPLAIN
   2786	002460					CALL	.STPKL		; ..STOP THE KL
	002460	004737 	000000G			 JSR	PC,.STPKL
   2787	002464					CALL	.RDAPR		; ..SEE IF THERE ARE ANY APR ERRORS
	002464	004737 	003236'			 JSR	PC,.RDAPR
   2788	002470					CALL	.RSTKL		; ..RESTART THE KL
	002470	004737 	000000G			 JSR	PC,.RSTKL
   2789	002474	005700 				TST	R0		; ..ARE THERE ANY ERRORS?
   2790	002476	001002 				BNE	DPOAPE		; ..YES -- COMPLAIN
   2791	002500				20$:
   2792	002500	022626 				CMP	(SP)+,(SP)+	; ..CLEAR THE STACK
   2793	002502					RETURN			; TO CALLER
	002502	000207 				 RTS	PC
   2794	002504				DPOAPE:
   2795	002504					ERROR$	APE		; ERROR -- KL APR ERROR
	002504	012746 	004305 			 MOV	#^RAPE,-(SP)
	002510	104400 				 TRAP	TC.ERR
   2796						;
   2797	002512				DPOKCN:
   2798	002512					ERROR$	KCN		; ERROR -- KL CLOCK NOT RUNNING
	002512	012746 	042506 			 MOV	#^RKCN,-(SP)
	002516	104400 				 TRAP	TC.ERR
   2799						;
   2800	002520				DPOVFE:
   2801	002520					ERROR$	VFY		; ERROR -- VERIFY FAILED
	002520	012746 	105211 			 MOV	#^RVFY,-(SP)
	002524	104400 				 TRAP	TC.ERR
   2802						;
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 69
.DPKLD -- THE "DEPOSIT <TEN> <NUMERICAL OBJECT>" COMMAND 7602.

   2804					.SBTTL	.DPKLD -- THE "DEPOSIT <TEN> <NUMERICAL OBJECT>" COMMAND 7602.29
   2805
   2806						.ENABL	LSB
   2807
   2808	002526				.DPKLT::			; DEPOSIT <TEN> THIS
   2809	002526	012700 	000000G			MOV	#.EDKLX,R0	; ADDRESS POINTER TO R0
   2810	002532	000413 				BR	10$		; CHECK FOR ARGUMENTS
   2811						;
   2812	002534				.DPKLD::			; DEPOSIT <TEN> DECREMENT
   2813	002534					CALL	.EDKLD		; DO THE DECREMENT
	002534	004737 	000440'			 JSR	PC,.EDKLD
   2814	002540	000410 				BR	10$		; EXIT THRU COMMON CODE
   2815						;
   2816	002542				.DPKLI::			; DEPOSIT <TEN> INCREMENT
   2817	002542					CALL	.EDKLI		; DO THE INCREMENT
	002542	004737 	000456'			 JSR	PC,.EDKLI
   2818	002546	000405 				BR	10$		; EXIT THRU COMMON CODE
   2819						;
   2820	002550				.DPKLN::			; DEPOSIT <TEN> NEXT
   2821	002550					CALL	.EDKLN		; GO GET NEXT ADDRESS
	002550	004737 	000426'			 JSR	PC,.EDKLN
   2822	002554	000402 				BR	10$		; EXIT THRU COMMON CODE
   2823						;
   2824	002556				.DPKLP::			; DEPOSIT <TEN> PREVIOUS
   2825	002556					CALL	.EDKLP		; GO GET PREVIOUS ADDRESS
	002556	004737 	000414'			 JSR	PC,.EDKLP
   2826	002562				10$:
   2827	002562	010001 				MOV	R0,R1		; ADDRESS POINTER TO R1
   2828	002564	122715 	000075 			CMPB	#'=,(R5)	; IS THERE AN ARGUMENT FOLLOWING?
   2829	002570	001403 				BEQ	20$		; YES -- GO GET IT
   2830	002572	012700 	000000G			MOV	#.DPBFX,R0	; NO -- USE OLD DATA
   2831	002576	000627 				BR	.DPSTE		; AND DO THE DEPOSIT
   2832						;
   2833	002600				20$:
   2834	002600	105725 				TSTB	(R5)+		; GET OVER THE COLON
   2835	002602	012700 	000000G			MOV	#.DPBFX,R0	; POINT TO THE DATA BUFFER
   2836	002606					CALL	.GTKLN		; GET A NUMBER
	002606	004737 	000000G			 JSR	PC,.GTKLN
   2837	002612	000621 				BR	.DPSTE		; DO THE DEPOSIT
   2838						;
   2839
   2840						.DSABL	LSB
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 70
.EXAMT -- THE "EXAMINE <TEN>" COMMAND 7602.05

   2842					.SBTTL	.EXAMT -- THE "EXAMINE <TEN>" COMMAND 7602.05
   2843
   2844					;+
   2845					; .EXAMT -- THE "EXAMINE <TEN>" COMMAND.
   2846					;
   2847					; THIS SUBROUTINE READS A KL ADDRESS, EXAMINES THAT ADDRESS,
   2848					; AND PRINTS THE CONTENT OF THAT ADDRESS.
   2849					;
   2850					; INPUT ARGUMENTS:
   2851					;
   2852					;	NONE.
   2853					;
   2854					; OUTPUT ARGUMENTS:
   2855					;
   2856					;	NONE.
   2857					;
   2858					; ERROR CODES RETURNED:
   2859					;
   2860					;	EMF -- EXAMINE MEMORY FAILED.
   2861					;	ESE -- EBOX STOPPED - EXAMINE
   2862					;	KLA -- KL ADDRESS ERROR
   2863					;	KCN -- KL CLOCK NOT RUNNING
   2864					;	MRA -- MISSING REQUIRED ARGUMENT
   2865					;-
   2866
   2867	002614				.EXAMT::
   2868	002614					CALL	.CKARG		; SEE IF WE HAVE AN ARGUMENT
	002614	004737 	000000G			 JSR	PC,.CKARG
   2869	002620	002406 				BLT	10$		; NUMERIC -- GO AROUND TABLE SCAN
   2870	002622	012700 	000000G			MOV	#.EXETB,R0	; EXTENSION TABLE POINTER TO R0
   2871	002626					CALL	.TSCAN		; SCAN THE TABLE
	002626	004737 	000000G			 JSR	PC,.TSCAN
   2872	002632					CALLR	@2(R0)		; DO WHAT IT SAYS TO
	002632	000170 	000002 			 JMP	@2(R0)
   2873						;
   2874	002636				10$:
   2875	002636	012700 	000000G			MOV	#.EDKLX,R0	; POINT TO ADDRESS BUFFER
   2876	002642					CALL	.GTKLA		; GO GET THE ADDRESS
	002642	004737 	000000G			 JSR	PC,.GTKLA
   2877
   2878					;	[CONTINUED ON THE FOLLOWING PAGE]
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 71
.EXAMT -- THE "EXAMINE <TEN>" COMMAND 7602.05

   2880					;	[CONTINUED FROM THE PREVIOUS PAGE]
   2881
   2882	002646				.EXMTE::			; EXTENDED EXAMINE ENTRY POINT
   2883	002646					CALL	.CKEOC		; CHECK E-O-C CHARACTER
	002646	004737 	000000G			 JSR	PC,.CKEOC
   2884	002652	012037 	000074'			MOV	(R0)+,STOPTX	; [5.1014]SAVE INITIAL ADDRESS
   2885	002656	012037 	000076'			MOV	(R0)+,STOPTX+2	; [5.1014]SAVE INITIAL ADDRESS
   2886	002662	011037 	000100'			MOV	(R0),STOPTX+4	; [5.1014]SAVE INITIAL ADDRESS
   2887	002666	024040 				CMP	-(R0),-(R0)	; [5.1014]RESTORE POINTER
   2888	002670	032737 	100000 	000000G	1$:	BIT	#KF.CLK,.KLFLG	; IS THE KL CLOCK ON?
   2889	002676	001535 				BEQ	EXTKCN		; NO -- GIVE "KCN" ERROR
   2890	002700					PUSH	R0		; [5.1014]YES -- SAVE ADDRESS POINTER
	002700	010046 				 MOV	R0,-(SP)
   2891	002702					PUSH	#.EXBFR		; SAVE THE DATA POINTER
	002702	012746 	000000G			 MOV	#.EXBFR,-(SP)
   2892	002706	012702 	000000G			MOV	#.EDKLA,R2	; .ADDRESS BUFFER POINTER TO R2
   2893	002712	012022 				MOV	(R0)+,(R2)+	; .LOAD THE NEW ADDRESS
   2894	002714	012022 				MOV	(R0)+,(R2)+	; .INTO THE ADDRESS BUFFER
   2895	002716	011012 				MOV	(R0),(R2)	; .SO
   2896	002720	024242 				CMP	-(R2),-(R2)	; .BACK THE POINTER UP
   2897	002722					PUSH	R2		; .ADDRESS POINTER
	002722	010246 				 MOV	R2,-(SP)
   2898	002724	010601 				MOV	SP,R1		; ..POINT TO THE DATA BLOCK
   2899	002726	012700 	000200 			MOV	#ED.PHY,R0	; ..PHYSICAL REFERENCE
   2900	002732					CALL	.EXKLM		; ..DO THE EXAMINE
	002732	004737 	000000G			 JSR	PC,.EXKLM
   2901	002736					POP	R0		; ..POINT TO THE ADDRESS
	002736	012600 				 MOV	(SP)+,R0
   2902	002740					CALL	.TYKLA		; .PRINT THE ADDRESS
	002740	004737 	000000G			 JSR	PC,.TYKLA
   2903	002744					CALL	.TYSLS		; .TYPE A SLASH
	002744	004737 	000000G			 JSR	PC,.TYSLS
   2904	002750					CALL	.TYSPC		; .AND A SPACE
	002750	004737 	000000G			 JSR	PC,.TYSPC
   2905	002754					POP	R0		; .POINT TO THE DATA
	002754	012600 				 MOV	(SP)+,R0
   2906	002756					CALL	.TYKLN		; PRINT THE DATA
	002756	004737 	000000G			 JSR	PC,.TYKLN
   2907	002762					CALL	.TCRLF		; AND END THE LINE
	002762	004737 	000000G			 JSR	PC,.TCRLF
   2908	002766					POP	R0		; [5.1014]RESTORE ADDRESS POINTER
	002766	012600 				 MOV	(SP)+,R0
   2909	002770	005737 	000110'		5$:	TST	RNGTX		; [5.1014]RANGE IN PROGRESS?
   2910	002774	001412 				BEQ	7$		; [5.1014]NO -- GO ON
   2911	002776	012701 	000074'			MOV	#STOPTX,R1	; [5.1014]YES -- FINAL ADDRESS
   2912	003002					CALL	.TPCMP		; [5.1014]DONE?
	003002	004737 	000000G			 JSR	PC,.TPCMP
   2913	003006	001405 				BEQ	7$		; [5.1014]YES -- GO ON
   2914	003010	012701 	000102'			MOV	#INCTX,R1	; [5.1014]NO -- POINT TO INCREMENT
   2915	003014					CALL	.TPADD		; [5.1014]INCREMENT ADDRESS
	003014	004737 	000000G			 JSR	PC,.TPADD
   2916	003020	000723 				BR	1$		; [5.1014]EXAMINE NEXT ADDRESS
   2917	003022	005037 	000110'		7$:	CLR	RNGTX		; [5.1014]CLEAR RANGE IN PROGRESS FLAG
   2918	003026	122715 	000054 			CMPB	#',,(R5)	; [5.1014]IS THIS A LIST?
   2919	003032	001002 				BNE	20$		; [5.1014]NO -- GO NO
   2920	003034	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COMMA
   2921	003036	000666 				BR	.EXAMT		; [5.1014]DO NEXT
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 71-1
.EXAMT -- THE "EXAMINE <TEN>" COMMAND 7602.05

   2922	003040	122715 	000072 		20$:	CMPB	#':,(R5)	; [5.1014]IS THIS A RANGE?
   2923	003044	001051 				BNE	40$		; [5.1014]NO -- GO ON
   2924	003046	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COLON
   2925	003050					CALL	.GTKLA		; [5.1014]GET FINAL ADDRESS
	003050	004737 	000000G			 JSR	PC,.GTKLA
   2926	003054					CALL	.CKEOC		; [5.1014]CHECK FOR END OF COMMAND
	003054	004737 	000000G			 JSR	PC,.CKEOC
   2927	003060	005237 	000110'			INC	RNGTX		; [5.1014]SET RANGE IN PROGRESS
   2928	003064	012737 	000001 	000102'		MOV	#1,INCTX	; [5.1014]SET FORWARD RANGE
   2929	003072	005037 	000104'			CLR	INCTX+2		; [5.1014]CLEAR INCREMENT
   2930	003076	005037 	000106'			CLR	INCTX+4		; [5.1014]CLEAR INCREMENT
   2931	003102	012701 	000074'			MOV	#STOPTX,R1	; [5.1014]INITIAL ADDRESS POINTER
   2932	003106					CALL	.TPCMP		; [5.1014]FORWARD RANGE?
	003106	004737 	000000G			 JSR	PC,.TPCMP
   2933	003112	003006 				BGT	30$		; [5.1014]YES -- GO ON
   2934	003114					PUSH	R0		; [5.1014]NO -- SAVE FINAL ADDRESS
	003114	010046 				 MOV	R0,-(SP)
   2935	003116	012700 	000102'			MOV	#INCTX,R0	; [5.1014]RANGE INCREMENT
   2936	003122					CALL	.TPNEG		; [5.1014]NEGATE IT
	003122	004737 	000000G			 JSR	PC,.TPNEG
   2937	003126					POP	R0		; [5.1014]RESTORE ADDRESS
	003126	012600 				 MOV	(SP)+,R0
   2938	003130				30$:	PUSH	STOPTX		; [5.1014]SAVE INITIAL ADDRESS
	003130	013746 	000074'			 MOV	STOPTX,-(SP)
   2939	003134					PUSH	STOPTX+2	; [5.1014]SAVE INITIAL ADDRESS
	003134	013746 	000076'			 MOV	STOPTX+2,-(SP)
   2940	003140					PUSH	STOPTX+4	; [5.1014]SAVE INITIAL ADDRESS
	003140	013746 	000100'			 MOV	STOPTX+4,-(SP)
   2941	003144	012037 	000074'			MOV	(R0)+,STOPTX	; [5.1014]SET FINAL ADDRESS
   2942	003150	012037 	000076'			MOV	(R0)+,STOPTX+2	; [5.1014]SET FINAL ADDRESS
   2943	003154	012037 	000100'			MOV	(R0)+,STOPTX+4	; [5.1014]SET FINAL ADDRESS
   2944	003160					POP	-(R0)		; [5.1014]SET INITIAL ADDRESS
	003160	012640 				 MOV	(SP)+,-(R0)
   2945	003162					POP	-(R0)		; [5.1014]SET INITIAL ADDRESS
	003162	012640 				 MOV	(SP)+,-(R0)
   2946	003164					POP	-(R0)		; [5.1014]SET INITIAL ADDRESS
	003164	012640 				 MOV	(SP)+,-(R0)
   2947	003166	000700 				BR	5$		; [5.1014]DO INCREMENT
   2948	003170				40$:	RETURN			; [5.1014]EXIT
	003170	000207 				 RTS	PC
   2949						;
   2950	003172				EXTKCN:
   2951	003172					ERROR$	KCN		; ERROR -- KL CLOCK NOT RUNNING
	003172	012746 	042506 			 MOV	#^RKCN,-(SP)
	003176	104400 				 TRAP	TC.ERR
   2952						;
   2953
   2954	000074				.PSECT	DATA
   2955
   2956	000074	000000 	000000 	000000 	STOPTX:	.WORD	0,0,0		; [5.1014]FINAL/FIRST ADDRESS
   2957	000102	000000 	000000 	000000 	INCTX:	.WORD	0,0,0		; [5.1014]RANGE INCREMENT
   2958	000110	000000 			RNGTX:	.WORD	0		; [5.1014]RANGE IN PROGRESS FLAG
   2959
   2960	003200				.PSECT
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 72
.EXKLD -- THE "DEPOSIT <TEN> <NUMERICAL OBJECT>" COMMAND 7609.

   2962					.SBTTL	.EXKLD -- THE "DEPOSIT <TEN> <NUMERICAL OBJECT>" COMMAND 7609.10
   2963
   2964						.ENABL	LSB
   2965
   2966	003200				.EXKLT::			; EXAMINE <TEN> THIS
   2967	003200	012700 	000000G			MOV	#.EDKLA,R0	; ADDRESS POINTER TO R0
   2968	003204	000620 				BR	.EXMTE		; DO THE EXAMINE
   2969						;
   2970	003206				.EXKLD::			; EXAMINE <TEN> DECREMENT
   2971	003206					CALL	.EDKLD		; DECREMENT IT
	003206	004737 	000440'			 JSR	PC,.EDKLD
   2972	003212	000615 				BR	.EXMTE		; DO THE EXAMINE
   2973						;
   2974	003214				.EXKLI::			; EXAMINE <TEN> INCREMENT
   2975	003214					CALL	.EDKLI		; INCREMENT IT
	003214	004737 	000456'			 JSR	PC,.EDKLI
   2976	003220	000612 				BR	.EXMTE		; DO THE EXAMINE
   2977						;
   2978	003222				.EXKLN::			; EXAMINE <TEN> NEXT
   2979	003222					CALL	.EDKLN		; GET NEXT ADDRESS
	003222	004737 	000426'			 JSR	PC,.EDKLN
   2980	003226	000607 				BR	.EXMTE		; DO THE EXAMINE
   2981						;
   2982	003230				.EXKLP::			; EXAMINE <TEN> PREVIOUS
   2983	003230					CALL	.EDKLP		; GET THE PREVIOUS ADDDRESS
	003230	004737 	000414'			 JSR	PC,.EDKLP
   2984	003234	000604 				BR	.EXMTE		; DO THE EXAMINE
   2985						;
   2986
   2987						.DSABL	LSB
EDTEN -- DEPOSIT / EXAMINE TEN 	MACRO M1113  10-NOV-81 17:48  PAGE 73
.RDAPR -- SUBROUTINE TO READ THE STATE OF THE KL APR 7509.24

   2989					.SBTTL	.RDAPR -- SUBROUTINE TO READ THE STATE OF THE KL APR 7509.24
   2990
   2991					;+
   2992					; .RDAPR -- SUBROUTINE TO READ THE STATE OF THE KL APR.
   2993					;
   2994					; THIS SUBROUTINE READS THE ERROR STATE OF THE KL APR AND RETURNS
   2995					; THAT ERROR STATE IN R0 AND ".APRWD".
   2996					;
   2997					; THE FORMAT OF THE DATA RETURNED IS:
   2998					;
   2999					;	AP.PWF -- BIT00 -- [APR PWR FAIL IN H] -- POWER FAIL
   3000					;	AP.SAP -- BIT01 -- [APR S ADR P ERR IN H] -- SBUS ADR PARITY ERROR
   3001					;	AP.CDP -- BIT02 -- [APR C DIR P ERR IN H] -- CACHE DIR PARITY ERROR
   3002					;	AP.MPE -- BIT03 -- [APR MB PAR ERR IN H] -- MB PARITY ERROR
   3003					;	AP.IPF -- BIT04 -- [APR I/O PF ERR IN H] -- I/O PAGE FAIL ERROR
   3004					;	AP.NXM -- BIT05 -- [APR NXM ERR IN H] -- NON-EX-MEMORY ERROR
   3005					;	AP.SBE -- BIT06 -- [APR SBUS ERR IN H] -- SBUS ERROR
   3006					;
   3007					; INPUT ARGUMENTS:
   3008					;
   3009					;	NONE.
   3010					;
   3011					; OUTPUT ARGUMENTS:
   3012					;
   3013					;	R0 CONTAINS A COPY OF THE KL APR ERROR FLAGS
   3014					;	".APRWD" CONTAINS A COPY OF THE KL APR ERROR FLAGS
   3015					;
   3016					; ERROR CODES RETURNED:
   3017					;
   3018					;	FRF -- FUNCTION READ FAILED.
   3019					;-
   3020
   3021	003236				.RDAPR::
   3022	003236					PUSH	R1		; SAVE R1 ON THE STACK
	003236	010146 				 MOV	R1,-(SP)
   3023	003240	005001 				CLR	R1		; .CLEAR R1
   3024	003242	012700 	000220 			MOV	#FR.APR,R0	; .FR TO READ APR ERRORS
   3025	003246					CALL	.FREAD		; .READ APR ERRORS
	003246	004737 	000000G			 JSR	PC,.FREAD
   3026	003252	012701 	177751 			MOV	#-^D23,R1	; .SHIFT COUNT TO R1
   3027	003256					CALL	.TPSHI		; .SHIFT ERROR BITS INTO POSITION
	003256	004737 	000000G			 JSR	PC,.TPSHI
   3028	003262	042710 	177600 			BIC	#177600,(R0)	; .FLUSH UNWANTED BITS
   3029	003266	011037 	000000G			MOV	(R0),.APRWD	; .SAVE THE WORD
   3030	003272	011000 				MOV	(R0),R0		; .PUT A COPY IN R0
   3031	003274					POP	R1		; .RESTORE R1
	003274	012601 				 MOV	(SP)+,R1
   3032	003276					RETURN			; AND GO AWAY
	003276	000207 				 RTS	PC
   3033						;
EXCTC -- EXECUTE (XCT) COMMAND 	MACRO M1113  10-NOV-81 17:48  PAGE 75
.RDAPR -- SUBROUTINE TO READ THE STATE OF THE KL APR 7509.24

   3036					.TITLE	EXCTC -- EXECUTE (XCT) COMMAND MODULE 7603.30
   3037
   3038						.IDENT	"005000"
   3039					;
   3040					;                             COPYRIGHT (C) 1975, 1979 BY
   3041					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3042					;
   3043					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3044					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3045					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3046					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3047					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3048					;
   3049					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3050					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3051					;       CORPORATION.
   3052					;
   3053					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3054					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3055					;
   3056					;		MODULE: EXECUTE COMMAND
   3057					;
   3058					;		VERSION: 05-00
   3059					;
   3060					;		AUTHOR: R. BELANGER
   3061					;
   3062					;		DATE: 7603.30
   3063					;
   3064					;	THIS MODULE CONTAINS:
   3065					;
   3066					;	1) EXECUTE COMMAND CODE
EXCTC -- EXECUTE (XCT) COMMAND 	MACRO M1113  10-NOV-81 17:48  PAGE 76
.EXCTC -- THE "XCT" (EXECUTE) COMMAND 7602.17

   3068					.SBTTL	.EXCTC -- THE "XCT" (EXECUTE) COMMAND 7602.17
   3069
   3070					;+
   3071					; .EXCTC -- THE "XCT" (EXECUTE) COMMAND
   3072					;
   3073					; THIS ROUTINE SIMULATES THE "XCT" SWITCH OF THE KL CONSOLE.
   3074					;
   3075					; INPUT ARGUMENTS:
   3076					;
   3077					; 	R0 POINTS TO THE KL INSTRUCTION TO BE EXECUTED.
   3078					;
   3079					; OUTPUT ARGUMENTS:
   3080					;
   3081					;	NONE.
   3082					;
   3083					; ERROR CODES RETURNED:
   3084					;
   3085					;	IOC -- ILLEGAL KL OPCODE.
   3086					;	MRA -- MISSING REQUIRED ARGUMENT.
   3087					;	XTO -- KL EXECUTE TIMED OUT.
   3088					;-
   3089
   3090	003300				.EXCTC::			; HERE FROM PARSER
   3091	003300	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   3092	003302	005046 				CLR	-(SP)		; .
   3093	003304	005046 				CLR	-(SP)		; ..
   3094	003306	010600 				MOV	SP,R0		; ...POINT TO IT
   3095	003310					CALL	.GTKLN		; ...READ THE INSTRUCTION
	003310	004737 	000000G			 JSR	PC,.GTKLN
   3096	003314					CALL	.CKEOC		; ...CHECK E-O-C CHARACTER
	003314	004737 	000000G			 JSR	PC,.CKEOC
   3097	003320	032760 	000017 	000004 		BIT	#17,4(R0)	; ...CHECK HIGH PART OF OPCODE
   3098	003326	001005 				BNE	10$		; ...OK -- GO ON
   3099	003330	032760 	174000 	000002 		BIT	#^C3777,2(R0)	; ...CHECK LOW PART OF OPCODE
   3100	003336	001403 				BEQ	EXCIOC		; ...NONE THERE -- GIVE "IOC" ERROR
   3101	003340	010600 				MOV	SP,R0		; ...POINT TO THE INSTRUCTION
   3102	003342				10$:
   3103	003342					CALLR	.EXECT		; ...ALL OK -- GO DO IT
	003342	000137 	000000G			 JMP	.EXECT
   3104						;
   3105	003346				EXCIOC:
   3106	003346					ERROR$	IOC		; ERROR -- ILLEGAL OPCODE
	003346	012746 	035233 			 MOV	#^RIOC,-(SP)
	003352	104400 				 TRAP	TC.ERR
   3107						;
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 77
.EXCTC -- THE "XCT" (EXECUTE) COMMAND 7602.17

   3109					.TITLE	EXDTE -- EXAMINE DTE-20 REGISTERS COMMAND
   3110
   3111						.IDENT	"006110"
   3112					;
   3113					;                             COPYRIGHT (C) 1979 BY
   3114					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3115					;
   3116					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3117					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3118					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3119					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3120					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3121					;
   3122					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3123					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3124					;       CORPORATION.
   3125					;
   3126					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3127					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3128					;
   3129					;		MODULE: EXAMINE DTE-20 COMMAND
   3130					;
   3131					;		VERSION: 06-11
   3132					;
   3133					;		AUTHOR: K. LEFEBVRE
   3134					;
   3135					;		DATE: 24-SEP-79
   3136					;
   3137					;	THIS MODULE CONTAINS:
   3138					;
   3139					;	1) EXAMINE DTE-20 REGISTERS COMMAND
   3140
   3141						.MCALL	.INH6,.ENB6
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 78
.EXDTE -- THE "EXAMINE DTE-20" COMMAND 7603.20

   3143					.SBTTL	.EXDTE -- THE "EXAMINE DTE-20" COMMAND 7603.20
   3144
   3145					;+
   3146					; .EXDTE -- THE "EXAMINE DTE-20" COMMAND.
   3147					;
   3148					; THIS ROUTINE WILL READ AND DISPLAY THE CONTENTS OF ALL THE DTE-20
   3149					; REGISTERS ON THE CONSOLE DEVICE.
   3150					;
   3151					;	THIS ROUTINE TYPES OUT ALL THE REGISTERS IN THE NEW FORMAT
   3152					;	AS WAS REQUIRED FOR TCO 5.1001
   3153					;
   3154					; INPUT ARGUMENTS:
   3155					;
   3156					;	NONE.
   3157					;
   3158					; OUTPUT ARGUMENTS:
   3159					;
   3160					;	NONE.
   3161					;
   3162					; ERROR CODES RETURNED:
   3163					;
   3164					;	NONE.
   3165					;-
   3166
   3167	003354				.EXDTE::
   3168	003354					CALL	.CKEOC		; CHECK E-O-C
	003354	004737 	000000G			 JSR	PC,.CKEOC
   3169	003360					CALLR	TYPDTE		; TYPE OUT DTE REGISTERS
	003360	000137 	003364'			 JMP	TYPDTE
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 79
TYPDTE -- TYPE OUT DTE REGISTERS SYMBOLICALLY

   3171					.SBTTL	TYPDTE -- TYPE OUT DTE REGISTERS SYMBOLICALLY
   3172
   3173					;+
   3174					; TYPDTE -- TYPE OUT DTE-20 REGISTERS SYMBOLLICALLY
   3175					;
   3176					; THIS ROUTINE WILL TYPE OUT THE CONTENTS OF ALL THE DTE-20 REGISTERS
   3177					; IN OCTAL AND WILL ALSO DECODE SOME OF THEM.
   3178					;
   3179					;	THIS ROUTINE WAS ADDED FOR TCO 5.1001
   3180					;
   3181					; INPUT ARGUMENTS:
   3182					;
   3183					;	NONE
   3184					;
   3185					; OUTPUT ARGUMENTS:
   3186					;
   3187					;	NONE
   3188					;
   3189					; ERROR CODES RETURNED:
   3190					;
   3191					;	NONE
   3192					;-
   3193
   3194	003364				TYPDTE:
   3195	003364	013700 	000000G			MOV	.PRDTE,R0	; DTE BASE REGISTER ADDRESS
   3196	003370	012701 	000112'			MOV	#DTEBUF,R1	; DTE REGISTER SAVE BUFFER
   3197	003374	012702 	000020 			MOV	#16.,R2		; REGISTER COUNT
   3199	003400					.INH6			; INHIBIT INTERRUPTS
	003400	013746 	177776 			MOV	@#PS,-(SP)
	003404	112737 	000300 	177776 		MOVB	#300,@#PS
   3201	003412	012021 			10$:	MOV	(R0)+,(R1)+	; SAVE DTE REGISTERS
   3202	003414	077202 				SOB	R2,10$		; DONE?
   3204	003416					.ENB6			; ENABLE INTERRUPTS
	003416	012637 	177776 			MOV	(SP)+,@#PS
   3206	003422	005002 				CLR	R2		; REGISTER COUNT
   3207	003424	016200 	000152'		20$:	MOV	DTEREG(R2),R0	; HEADER ADDRESS
   3208	003430					CALL	.TYMSG		; TYPE HEADER
	003430	004737 	000000G			 JSR	PC,.TYMSG
   3209	003434	016200 	000112'			MOV	DTEBUF(R2),R0	; REGISTER CONTENTS
   3210	003440					CALL	.TYELN		; TYPE VALUE
	003440	004737 	000000G			 JSR	PC,.TYELN
   3211	003444					CALL	@SYMTAB(R2)	; TYPE  CONTENTS SYMBOLLICALLY
	003444	004772 	000212'			 JSR	PC,@SYMTAB(R2)
   3212	003450	005722 				TST	(R2)+		; NEXT REGISTER
   3213	003452	020227 	000036 			CMP	R2,#30.		; DONE?
   3214	003456	003762 				BLE	20$		; NO
   3215	003460					RETURN			; YES
	003460	000207 				 RTS	PC
   3216
   3217	000112				.PSECT	DATA
   3218
   3219	000112				DTEBUF:	.BLKW	16.		; REGISTER BUFFER
   3220
   3221	000152				DTEREG:				; HEADER TEXT POINTERS
   3222	000152	000004'				.WORD	HDDLY
   3223	000154	000016'				.WORD	HDDEX3
   3224	000156	000032'				.WORD	HDDEX2
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 79-1
TYPDTE -- TYPE OUT DTE REGISTERS SYMBOLICALLY

   3225	000160	000046'				.WORD	HDDEX1
   3226	000162	000062'				.WORD	HDTAD1
   3227	000164	000076'				.WORD	HDTAD2
   3228	000166	000111'				.WORD	HDT10B
   3229	000170	000125'				.WORD	HDT11B
   3230	000172	000140'				.WORD	HDT10A
   3231	000174	000154'				.WORD	HDT11A
   3232	000176	000167'				.WORD	HDT10D
   3233	000200	000203'				.WORD	HDT11D
   3234	000202	000216'				.WORD	HDDAG1
   3235	000204	000232'				.WORD	HDDAG2
   3236	000206	000246'				.WORD	HDSTAT
   3237	000210	000262'				.WORD	HDDAG3
   3238
   3239	000212				SYMTAB:				; SYMBOLIC TYPE ROUTINES
   3240	000212	000252'				.WORD	NOOP			; DLYCNT
   3241	000214	000252'				.WORD	NOOP			; DEXWD3
   3242	000216	000252'				.WORD	NOOP			; DEXWD2
   3243	000220	003520'				.WORD	TYPDX1			; DEXWD1
   3244	000222	000252'				.WORD	NOOP			; TENAD1
   3245	000224	003570'				.WORD	TYPAD2			; TENAD2
   3246	000226	000252'				.WORD	NOOP			; TO10BC
   3247	000230	000252'				.WORD	NOOP			; TO11BC
   3248	000232	000252'				.WORD	NOOP			; TO10AD
   3249	000234	000252'				.WORD	NOOP			; TO11AD
   3250	000236	000252'				.WORD	NOOP			; TO10DT
   3251	000240	000252'				.WORD	NOOP			; TO11DT
   3252	000242	004012'				.WORD	TYPDG1			; DIAG1
   3253	000244	000252'				.WORD	NOOP			; DIAG2
   3254	000246	003462'				.WORD	STATYP			; STATUS
   3255	000250	004064'				.WORD	TYPDG3			; DIAG3
   3256
   3257	000252				NOOP:	RETURN			; NO SYMBOLIC TYPE OUT
	000252	000207 				 RTS	PC
   3258
   3259	000004				.PSECT	MESSAG
   3260
   3261	000004	   040 	   104 	   114 	HDDLY:	.ASCIZ/ DLYCNT: /
	000007	   131 	   103 	   116
	000012	   124 	   072 	   040
	000015	   000
   3262	000016	   015 	   012 	   040 	HDDEX3:	.ASCIZ<15><12>/ DEXWD3: /
	000021	   104 	   105 	   130
	000024	   127 	   104 	   063
	000027	   072 	   040 	   000
   3263	000032	   015 	   012 	   040 	HDDEX2:	.ASCIZ<15><12>/ DEXWD2: /
	000035	   104 	   105 	   130
	000040	   127 	   104 	   062
	000043	   072 	   040 	   000
   3264	000046	   015 	   012 	   040 	HDDEX1:	.ASCIZ<15><12>/ DEXWD1: /
	000051	   104 	   105 	   130
	000054	   127 	   104 	   061
	000057	   072 	   040 	   000
   3265	000062	   015 	   012 	   040 	HDTAD1:	.ASCIZ<15><12>/ TENAD1: /
	000065	   124 	   105 	   116
	000070	   101 	   104 	   061
	000073	   072 	   040 	   000
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 79-2
TYPDTE -- TYPE OUT DTE REGISTERS SYMBOLICALLY

   3266	000076	   040 	   040 	   124 	HDTAD2:	.ASCIZ/  TENAD2: /
	000101	   105 	   116 	   101
	000104	   104 	   062 	   072
	000107	   040 	   000
   3267	000111	   015 	   012 	   040 	HDT10B:	.ASCIZ<15><12>/ TO10BC: /
	000114	   124 	   117 	   061
	000117	   060 	   102 	   103
	000122	   072 	   040 	   000
   3268	000125	   040 	   040 	   124 	HDT11B:	.ASCIZ/  TO11BC: /
	000130	   117 	   061 	   061
	000133	   102 	   103 	   072
	000136	   040 	   000
   3269	000140	   015 	   012 	   040 	HDT10A:	.ASCIZ<15><12>/ TO10AD: /
	000143	   124 	   117 	   061
	000146	   060 	   101 	   104
	000151	   072 	   040 	   000
   3270	000154	   040 	   040 	   124 	HDT11A:	.ASCIZ/  TO11AD: /
	000157	   117 	   061 	   061
	000162	   101 	   104 	   072
	000165	   040 	   000
   3271	000167	   015 	   012 	   040 	HDT10D:	.ASCIZ<15><12>/ TO10DT: /
	000172	   124 	   117 	   061
	000175	   060 	   104 	   124
	000200	   072 	   040 	   000
   3272	000203	   040 	   040 	   124 	HDT11D:	.ASCIZ/  TO11DT: /
	000206	   117 	   061 	   061
	000211	   104 	   124 	   072
	000214	   040 	   000
   3273	000216	   015 	   012 	   040 	HDDAG1:	.ASCIZ<15><12>/ DIAG1 : /
	000221	   104 	   111 	   101
	000224	   107 	   061 	   040
	000227	   072 	   040 	   000
   3274	000232	   015 	   012 	   040 	HDDAG2:	.ASCIZ<15><12>/ DIAG2 : /
	000235	   104 	   111 	   101
	000240	   107 	   062 	   040
	000243	   072 	   040 	   000
   3275	000246	   015 	   012 	   040 	HDSTAT:	.ASCIZ<15><12>/ STATUS: /
	000251	   123 	   124 	   101
	000254	   124 	   125 	   123
	000257	   072 	   040 	   000
   3276	000262	   015 	   012 	   040 	HDDAG3:	.ASCIZ<15><12>/ DIAG3 : /
	000265	   104 	   111 	   101
	000270	   107 	   063 	   040
	000273	   072 	   040 	   000
   3277
   3278	003462				.PSECT
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 80
STATYP -- SYMBOLIC STATUS REGISTER TYPE OUT

   3280					.SBTTL	STATYP -- SYMBOLIC STATUS REGISTER TYPE OUT
   3281
   3282					;	THIS ROUTINE WAS ADDED FOR TCO 5.1001
   3283
   3284	003462				STATYP:
   3285	003462	016203 	000112'			MOV	DTEBUF(R2),R3	; DTE REGISTER CONTENTS
   3286	003466	012701 	000254'			MOV	#STATAB,R1	; FIRST MESSAGE PTR
   3287	003472	005703 			10$:	TST	R3		; REGISTER=0
   3288	003474	001410 				BEQ	30$		; YES-DONE
   3289	003476	006303 				ASL	R3		; SHIFT HIGH BIT TO CARRY
   3290	003500	103003 				BCC	20$		; BIT CLEAR?
   3291	003502	011100 				MOV	@R1,R0		; POINT TO MESSAGE
   3292	003504					CALL	.TYMSG		; NO-TYPE MESSAGE
	003504	004737 	000000G			 JSR	PC,.TYMSG
   3293	003510	062701 	000002 		20$:	ADD	#2,R1		; ADDRESS NEXT MESSAGE
   3294	003514	000766 				BR	10$		; CHECK NEXT BIT
   3295	003516				30$:	RETURN			; EXIT
	003516	000207 				 RTS	PC
   3296
   3297	000254				.PSECT	DATA
   3298
   3299	000254				STATAB:				; STATUS MESSAGE TABLE
   3300	000254	000276'				.WORD	STA15
   3301	000256	000334'				.WORD	STA14
   3302	000260	000357'				.WORD	STA13
   3303	000262	000414'				.WORD	STA12
   3304	000264	000436'				.WORD	STA11
   3305	000266	000475'				.WORD	STA10
   3306	000270	000515'				.WORD	STA9
   3307	000272	000551'				.WORD	STA8
   3308	000274	000610'				.WORD	STA7
   3309	000276	000641'				.WORD	STA6
   3310	000300	000666'				.WORD	STA5
   3311	000302	000727'				.WORD	STA4
   3312	000304	000757'				.WORD	STA3
   3313	000306	001004'				.WORD	STA2
   3314	000310	001036'				.WORD	STA1
   3315	000312	001100'				.WORD	STA0
   3316
   3317	000276				.PSECT	MESSAG
   3318
   3319	000276	   015 	   012 	   040 	STA15:	.ASCIZ<15><12>/   TO 10 NORMAL TERMINATION/
	000301	   040 	   040 	   124
	000304	   117 	   040 	   061
	000307	   060 	   040 	   116
	000312	   117 	   122 	   115
	000315	   101 	   114 	   040
	000320	   124 	   105 	   122
	000323	   115 	   111 	   116
	000326	   101 	   124 	   111
	000331	   117 	   116 	   000
   3320	000334	   015 	   012 	   040 	STA14:	.ASCIZ<15><12>/   BIT 14 UNUSED/
	000337	   040 	   040 	   102
	000342	   111 	   124 	   040
	000345	   061 	   064 	   040
	000350	   125 	   116 	   125
	000353	   123 	   105 	   104
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 80-1
STATYP -- SYMBOLIC STATUS REGISTER TYPE OUT

	000356	   000
   3321	000357	   015 	   012 	   040 	STA13:	.ASCIZ<15><12>/   TO 10 ERROR TERMINATION/
	000362	   040 	   040 	   124
	000365	   117 	   040 	   061
	000370	   060 	   040 	   105
	000373	   122 	   122 	   117
	000376	   122 	   040 	   124
	000401	   105 	   122 	   115
	000404	   111 	   116 	   101
	000407	   124 	   111 	   117
	000412	   116 	   000
   3322	000414	   015 	   012 	   040 	STA12:	.ASCIZ<15><12>/   RAM IS ZEROS/
	000417	   040 	   040 	   122
	000422	   101 	   115 	   040
	000425	   111 	   123 	   040
	000430	   132 	   105 	   122
	000433	   117 	   123 	   000
   3323	000436	   015 	   012 	   040 	STA11:	.ASCIZ<15><12>/   10 REQUESTED 11 INTERRUPT/
	000441	   040 	   040 	   061
	000444	   060 	   040 	   122
	000447	   105 	   121 	   125
	000452	   105 	   123 	   124
	000455	   105 	   104 	   040
	000460	   061 	   061 	   040
	000463	   111 	   116 	   124
	000466	   105 	   122 	   122
	000471	   125 	   120 	   124
	000474	   000
   3324	000475	   015 	   012 	   040 	STA10:	.ASCIZ<15><12>/   DEX WORD 1/
	000500	   040 	   040 	   104
	000503	   105 	   130 	   040
	000506	   127 	   117 	   122
	000511	   104 	   040 	   061
	000514	   000
   3325	000515	   015 	   012 	   040 	STA9:	.ASCIZ<15><12>/   11 MEMORY PARITY ERROR/
	000520	   040 	   040 	   061
	000523	   061 	   040 	   115
	000526	   105 	   115 	   117
	000531	   122 	   131 	   040
	000534	   120 	   101 	   122
	000537	   111 	   124 	   131
	000542	   040 	   105 	   122
	000545	   122 	   117 	   122
	000550	   000
   3326	000551	   015 	   012 	   040 	STA8:	.ASCIZ<15><12>/   11 REQUESTED 10 INTERRUPT/
	000554	   040 	   040 	   061
	000557	   061 	   040 	   122
	000562	   105 	   121 	   125
	000565	   105 	   123 	   124
	000570	   105 	   104 	   040
	000573	   061 	   060 	   040
	000576	   111 	   116 	   124
	000601	   105 	   122 	   122
	000604	   125 	   120 	   124
	000607	   000
   3327	000610	   015 	   012 	   040 	STA7:	.ASCIZ<15><12>/   TO 11 TRANSFER DONE/
	000613	   040 	   040 	   124
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 80-2
STATYP -- SYMBOLIC STATUS REGISTER TYPE OUT

	000616	   117 	   040 	   061
	000621	   061 	   040 	   124
	000624	   122 	   101 	   116
	000627	   123 	   106 	   105
	000632	   122 	   040 	   104
	000635	   117 	   116 	   105
	000640	   000
   3328	000641	   015 	   012 	   040 	STA6:	.ASCIZ<15><12>/   E BUFFER SELECT/
	000644	   040 	   040 	   105
	000647	   040 	   102 	   125
	000652	   106 	   106 	   105
	000655	   122 	   040 	   123
	000660	   105 	   114 	   105
	000663	   103 	   124 	   000
   3329	000666	   015 	   012 	   040 	STA5:	.ASCIZ<15><12>/   TO 11 TRANSFER STOP BY NULL/
	000671	   040 	   040 	   124
	000674	   117 	   040 	   061
	000677	   061 	   040 	   124
	000702	   122 	   101 	   116
	000705	   123 	   106 	   105
	000710	   122 	   040 	   123
	000713	   124 	   117 	   120
	000716	   040 	   102 	   131
	000721	   040 	   116 	   125
	000724	   114 	   114 	   000
   3330	000727	   015 	   012 	   040 	STA4:	.ASCIZ<15><12>/   E BUS PARITY ERROR/
	000732	   040 	   040 	   105
	000735	   040 	   102 	   125
	000740	   123 	   040 	   120
	000743	   101 	   122 	   111
	000746	   124 	   131 	   040
	000751	   105 	   122 	   122
	000754	   117 	   122 	   000
   3331	000757	   015 	   012 	   040 	STA3:	.ASCIZ<15><12>/   RESTRICTED MODE/
	000762	   040 	   040 	   122
	000765	   105 	   123 	   124
	000770	   122 	   111 	   103
	000773	   124 	   105 	   104
	000776	   040 	   115 	   117
	001001	   104 	   105 	   000
   3332	001004	   015 	   012 	   040 	STA2:	.ASCIZ<15><12>/   DEPOSIT-EXAMINE DONE/
	001007	   040 	   040 	   104
	001012	   105 	   120 	   117
	001015	   123 	   111 	   124
	001020	   055 	   105 	   130
	001023	   101 	   115 	   111
	001026	   116 	   105 	   040
	001031	   104 	   117 	   116
	001034	   105 	   000
   3333	001036	   015 	   012 	   040 	STA1:	.ASCIZ<15><12>/   TO 11 BYTE ERROR TERMINATION/
	001041	   040 	   040 	   124
	001044	   117 	   040 	   061
	001047	   061 	   040 	   102
	001052	   131 	   124 	   105
	001055	   040 	   105 	   122
	001060	   122 	   117 	   122
	001063	   040 	   124 	   105
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 80-3
STATYP -- SYMBOLIC STATUS REGISTER TYPE OUT

	001066	   122 	   115 	   111
	001071	   116 	   101 	   124
	001074	   111 	   117 	   116
	001077	   000
   3334	001100	   015 	   012 	   040 	STA0:	.ASCIZ<15><12>/   INTERRUPTS ON/
	001103	   040 	   040 	   111
	001106	   116 	   124 	   105
	001111	   122 	   122 	   125
	001114	   120 	   124 	   123
	001117	   040 	   117 	   116
	001122	   000
   3335
   3336	003520				.PSECT
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 81
TYPDX1 -- SYMBOLIC DEXWD1-DEXWD3 TYPE OUT

   3338					.SBTTL	TYPDX1 -- SYMBOLIC DEXWD1-DEXWD3 TYPE OUT
   3339
   3340					;	THIS ROUTINE WAS ADDED FOR TCO 5.1001
   3341
   3342	003520				TYPDX1:
   3343	003520	012700 	001123'			MOV	#DX1MS1,R0	; DATA MESSAGE
   3344	003524					CALL	.TYMSG		; TYPE IT
	003524	004737 	000000G			 JSR	PC,.TYMSG
   3345	003530	012700 	000106'			MOV	#DTEBUF-4,R0	; ADDR OF REGISTERS
   3346	003534	060200 				ADD	R2,R0		; POINT TO DEX WORD 1
   3347	003536					CALL	.TYKLN		; TYPE IT
	003536	004737 	000000G			 JSR	PC,.TYKLN
   3348	003542	016203 	000112'			MOV	DTEBUF(R2),R3	; DEXWD1 VALUE
   3349	003546	042703 	000017 			BIC	#17,R3		; DEXWD1 BITS 4-15
   3350	003552	005703 				TST	R3		; BITS 4-15 MBZ
   3351	003554	001404 				BEQ	10$		; ARE THEY ZERO
   3352	003556	012700 	001143'			MOV	#DX1MS2,R0	; NO- MESSAGE
   3353	003562					CALL	.TYMSG		; TYPE IT
	003562	004737 	000000G			 JSR	PC,.TYMSG
   3354	003566				10$:	RETURN			; EXIT
	003566	000207 				 RTS	PC
   3355
   3356	001123				.PSECT	MESSAG
   3357
   3358	001123	   015 	   012 	   040 	DX1MS1:	.ASCIZ<15><12>/   KL10 DATA=/
	001126	   040 	   040 	   113
	001131	   114 	   061 	   060
	001134	   040 	   104 	   101
	001137	   124 	   101 	   075
	001142	   000
   3359	001143	   015 	   012 	   040 	DX1MS2:	.ASCIZ<15><12>/   DEXWD1 BITS 4-15 NON-ZERO/
	001146	   040 	   040 	   104
	001151	   105 	   130 	   127
	001154	   104 	   061 	   040
	001157	   102 	   111 	   124
	001162	   123 	   040 	   064
	001165	   055 	   061 	   065
	001170	   040 	   116 	   117
	001173	   116 	   055 	   132
	001176	   105 	   122 	   117
	001201	   000
   3360
   3361	003570				.PSECT
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 82
TYPAD2 -- SYMBOLIC TENAD1-TENAD2 TYPE OUT

   3363					.SBTTL	TYPAD2 -- SYMBOLIC TENAD1-TENAD2 TYPE OUT
   3364
   3365					;	THIS ROUTINE WAS ADDED FOR TCO 5.1001
   3366
   3367	003570				TYPAD2:
   3368	003570	012700 	001202'			MOV	#TA2MS1,R0	; ADDRESS SPACE MESSAGE
   3369	003574					CALL	.TYMSG		; TYPE IT
	003574	004737 	000000G			 JSR	PC,.TYMSG
   3370	003600	016203 	000110'			MOV	DTEBUF-2(R2),R3	; REGISTER CONTENTS
   3371	003604	000303 				SWAB	R3		; GET SPACE BITS
   3372		000004 				.REPT	4
   3373						ASR	R3
   3374						.ENDR
	003606	006203 				ASR	R3
	003610	006203 				ASR	R3
	003612	006203 				ASR	R3
	003614	006203 				ASR	R3
   3375	003616	042703 	177761 			BIC	#177761,R3	; SPACE BITS
   3376	003622	020327 	000012 			CMP	R3,#12		; RESERVED?
   3377	003626	003402 				BLE	10$		; NO
   3378	003630	012703 	000012 			MOV	#12,R3		; YES
   3379	003634	016300 	000314'		10$:	MOV	SPCTAB(R3),R0	; MESSAGE ADDR
   3380	003640					CALL	.TYMSG		; TYPE SPACE
	003640	004737 	000000G			 JSR	PC,.TYMSG
   3381	003644	012700 	001226'			MOV	#TA2MS2,R0	; OPERATION MESSAGE
   3382	003650					CALL	.TYMSG		; TYPE IT
	003650	004737 	000000G			 JSR	PC,.TYMSG
   3383	003654	016203 	000110'			MOV	DTEBUF-2(R2),R3	; REGISTER CONTENTS
   3384	003660	012700 	001453'			MOV	#DEPOS,R0	; DEPOSIT MESSAGE
   3385	003664	032703 	010000 			BIT	#10000,R3	; IS TI A DEPOSIT?
   3386	003670	001002 				BNE	40$		; YES
   3387	003672	012700 	001463'			MOV	#EXAM,R0	; NO-EXAMINE
   3388	003676				40$:	CALL	.TYMSG		; TYPE IT
	003676	004737 	000000G			 JSR	PC,.TYMSG
   3389	003702	012700 	001246'			MOV	#TA2MS3,R0	; PRO/REL MESSAGE
   3390	003706					CALL	.TYMSG		; TYPE IT
	003706	004737 	000000G			 JSR	PC,.TYMSG
   3391	003712	012700 	001473'			MOV	#PRON,R0	; PRO ON MESSAGE
   3392	003716	032703 	004000 			BIT	#4000,R3	; IS IT ON?
   3393	003722	001402 				BEQ	50$		; YES
   3394	003724	012700 	001477'			MOV	#PROFF,R0	; NO-OFF
   3395	003730				50$:	CALL	.TYMSG		; TYPE IT
	003730	004737 	000000G			 JSR	PC,.TYMSG
   3396	003734	032703 	003600 			BIT	#3600,R3	; CHECK MBZ BITS, ARE THEY?
   3397	003740	001404 				BEQ	60$		; YES
   3398	003742	012700 	001305'			MOV	#TA2MS4,R0	; NO-ERROR MESSAGE
   3399	003746					CALL	.TYMSG		; TYPE IT
	003746	004737 	000000G			 JSR	PC,.TYMSG
   3400	003752	012700 	001344'		60$:	MOV	#TA2MS5,R0	; ADDRESS MESSAGE
   3401	003756					CALL	.TYMSG		; TYPE IT
	003756	004737 	000000G			 JSR	PC,.TYMSG
   3402	003762	005046 				CLR	-(SP)		; ADDR BUFFER
   3403	003764	042703 	177600 			BIC	#177600,R3	; CLEAR EXTRA BITS
   3404	003770	010346 				MOV	R3,-(SP)	; ADDR BUFFER
   3405	003772	016246 	000112'			MOV	DTEBUF(R2),-(SP); ADDR BUFFER
   3406	003776	010600 				MOV	SP,R0		; BUFFER ADDRESS
   3407	004000					CALL	.TYKLA		; TYPE KL ADDR
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 82-1
TYPAD2 -- SYMBOLIC TENAD1-TENAD2 TYPE OUT

	004000	004737 	000000G			 JSR	PC,.TYKLA
   3408	004004	062706 	000006 			ADD	#6,SP		; POP OFF ADDR BUFFER
   3409	004010				80$:	RETURN			; EXIT
	004010	000207 				 RTS	PC
   3410
   3411	000314				.PSECT	DATA
   3412
   3413	000314				SPCTAB:
   3414	000314	001367'				.WORD	SPC1
   3415	000316	001373'				.WORD	SPC2
   3416	000320	001410'				.WORD	SPC3
   3417	000322	001414'				.WORD	SPC4
   3418	000324	001431'				.WORD	SPC5
   3419	000326	001442'				.WORD	SPC6
   3420
   3421	001202				.PSECT	MESSAG
   3422
   3423	001202	   015 	   012 	   040 	TA2MS1:	.ASCIZ<15><12>/   ADDRESS SPACE=/
	001205	   040 	   040 	   101
	001210	   104 	   104 	   122
	001213	   105 	   123 	   123
	001216	   040 	   123 	   120
	001221	   101 	   103 	   105
	001224	   075 	   000
   3424	001226	   015 	   012 	   040 	TA2MS2:	.ASCIZ<15><12>/   OPERATION=/
	001231	   040 	   040 	   117
	001234	   120 	   105 	   122
	001237	   101 	   124 	   111
	001242	   117 	   116 	   075
	001245	   000
   3425	001246	   015 	   012 	   040 	TA2MS3:	.ASCIZ<15><12>/   PROTECTION-RELOCATION IS /
	001251	   040 	   040 	   120
	001254	   122 	   117 	   124
	001257	   105 	   103 	   124
	001262	   111 	   117 	   116
	001265	   055 	   122 	   105
	001270	   114 	   117 	   103
	001273	   101 	   124 	   111
	001276	   117 	   116 	   040
	001301	   111 	   123 	   040
	001304	   000
   3426	001305	   015 	   012 	   040 	TA2MS4:	.ASCIZ<15><12>/   TENAD1 BITS 7-10 NON-ZERO/
	001310	   040 	   040 	   124
	001313	   105 	   116 	   101
	001316	   104 	   061 	   040
	001321	   102 	   111 	   124
	001324	   123 	   040 	   067
	001327	   055 	   061 	   060
	001332	   040 	   116 	   117
	001335	   116 	   055 	   132
	001340	   105 	   122 	   117
	001343	   000
   3427	001344	   015 	   012 	   040 	TA2MS5:	.ASCIZ<15><12>/   KL10 ADDRESS=/
	001347	   040 	   040 	   113
	001352	   114 	   061 	   060
	001355	   040 	   101 	   104
	001360	   104 	   122 	   105
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 82-2
TYPAD2 -- SYMBOLIC TENAD1-TENAD2 TYPE OUT

	001363	   123 	   123 	   075
	001366	   000
   3428	001367	   105 	   120 	   124 	SPC1:	.ASCIZ/EPT/
	001372	   000
   3429	001373	   105 	   130 	   105 	SPC2:	.ASCIZ/EXEC VIRTUAL/
	001376	   103 	   040 	   126
	001401	   111 	   122 	   124
	001404	   125 	   101 	   114
	001407	   000
   3430	001410	   125 	   120 	   124 	SPC3:	.ASCIZ/UPT/
	001413	   000
   3431	001414	   125 	   123 	   105 	SPC4:	.ASCIZ/USER VIRTUAL/
	001417	   122 	   040 	   126
	001422	   111 	   122 	   124
	001425	   125 	   101 	   114
	001430	   000
   3432	001431	   120 	   110 	   131 	SPC5:	.ASCIZ/PHYSICAL/
	001434	   123 	   111 	   103
	001437	   101 	   114 	   000
   3433	001442	   122 	   105 	   123 	SPC6:	.ASCIZ/RESERVED/
	001445	   105 	   122 	   126
	001450	   105 	   104 	   000
   3434	001453	   104 	   105 	   120 	DEPOS:	.ASCIZ/DEPOSIT/
	001456	   117 	   123 	   111
	001461	   124 	   000
   3435	001463	   105 	   130 	   101 	EXAM:	.ASCIZ/EXAMINE/
	001466	   115 	   111 	   116
	001471	   105 	   000
   3436	001473	   117 	   116 	   040 	PRON:	.ASCIZ/ON /
	001476	   000
   3437	001477	   117 	   106 	   106 	PROFF:	.ASCIZ/OFF/
	001502	   000
   3438
   3439	004012				.PSECT
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 83
TYPDG1 -- SYMBOLIC DIAG1 TYPE OUT

   3441					.SBTTL	TYPDG1 -- SYMBOLIC DIAG1 TYPE OUT
   3442
   3443					;	THIS ROUTINE WAS ADDED FOR TCO 5.1001
   3444
   3445	004012				TYPDG1:
   3446	004012	016203 	000112'			MOV	DTEBUF(R2),R3	; DIAG1
   3447	004016	042703 	170037 			BIC	#170037,R3	; GET STATUS BITS
   3448		000004 				.REPT	4		; LEFT JUSTIFY
   3449						ASL	R3
   3450						.ENDR
	004022	006303 				ASL	R3
	004024	006303 				ASL	R3
	004026	006303 				ASL	R3
	004030	006303 				ASL	R3
   3451	004032	012701 	000330'			MOV	#DIATAB,R1	; FIRST MESSAGE PTR
   3452	004036	005703 			10$:	TST	R3		; DONE?
   3453	004040	001410 				BEQ	30$		; YES-EXIT
   3454	004042	006303 				ASL	R3		; BIT SET?
   3455	004044	103003 				BCC	20$		; NO
   3456	004046	011100 				MOV	@R1,R0		; MESSAGE ADDR
   3457	004050					CALL	.TYMSG		; YES-TYPE MESSAGE
	004050	004737 	000000G			 JSR	PC,.TYMSG
   3458	004054	062701 	000002 		20$:	ADD	#2,R1		; NEXT MESSAGE
   3459	004060	000766 				BR	10$		; NEXT
   3460	004062				30$:	RETURN			; EXIT
	004062	000207 				 RTS	PC
   3461
   3462	000330				.PSECT	DATA
   3463
   3464	000330				DIATAB:
   3465	000330	001503'				.WORD	DG1B11
   3466	000332	001534'				.WORD	DG1B10
   3467	000334	001560'				.WORD	DG1B9
   3468	000336	001605'				.WORD	DG1B8
   3469	000340	001651'				.WORD	DG1B7
   3470	000342	001714'				.WORD	DG1B6
   3471	000344	001757'				.WORD	DG1B5
   3472
   3473	001503				.PSECT	MESSAG
   3474
   3475	001503	   015 	   012 	   040 	DG1B11:	.ASCIZ<15><12>/   KL CLOCK ERROR STOP/
	001506	   040 	   040 	   113
	001511	   114 	   040 	   103
	001514	   114 	   117 	   103
	001517	   113 	   040 	   105
	001522	   122 	   122 	   117
	001525	   122 	   040 	   123
	001530	   124 	   117 	   120
	001533	   000
   3476	001534	   015 	   012 	   040 	DG1B10:	.ASCIZ<15><12>/   KL IN RUN MODE/
	001537	   040 	   040 	   113
	001542	   114 	   040 	   111
	001545	   116 	   040 	   122
	001550	   125 	   116 	   040
	001553	   115 	   117 	   104
	001556	   105 	   000
   3477	001560	   015 	   012 	   040 	DG1B9:	.ASCIZ<15><12>/   KL IN HALT LOOP/
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 83-1
TYPDG1 -- SYMBOLIC DIAG1 TYPE OUT

	001563	   040 	   040 	   113
	001566	   114 	   040 	   111
	001571	   116 	   040 	   110
	001574	   101 	   114 	   124
	001577	   040 	   114 	   117
	001602	   117 	   120 	   000
   3478	001605	   015 	   012 	   040 	DG1B8:	.ASCIZ<15><12>/   MAJOR STATE IS DEPOSIT-EXAMINE/
	001610	   040 	   040 	   115
	001613	   101 	   112 	   117
	001616	   122 	   040 	   123
	001621	   124 	   101 	   124
	001624	   105 	   040 	   111
	001627	   123 	   040 	   104
	001632	   105 	   120 	   117
	001635	   123 	   111 	   124
	001640	   055 	   105 	   130
	001643	   101 	   115 	   111
	001646	   116 	   105 	   000
   3479	001651	   015 	   012 	   040 	DG1B7:	.ASCIZ<15><12>/   MAJOR STATE IS TO-10 TRANSFER/
	001654	   040 	   040 	   115
	001657	   101 	   112 	   117
	001662	   122 	   040 	   123
	001665	   124 	   101 	   124
	001670	   105 	   040 	   111
	001673	   123 	   040 	   124
	001676	   117 	   055 	   061
	001701	   060 	   040 	   124
	001704	   122 	   101 	   116
	001707	   123 	   106 	   105
	001712	   122 	   000
   3480	001714	   015 	   012 	   040 	DG1B6:	.ASCIZ<15><12>/   MAJOR STATE IS TO-11 TRANSFER/
	001717	   040 	   040 	   115
	001722	   101 	   112 	   117
	001725	   122 	   040 	   123
	001730	   124 	   101 	   124
	001733	   105 	   040 	   111
	001736	   123 	   040 	   124
	001741	   117 	   055 	   061
	001744	   061 	   040 	   124
	001747	   122 	   101 	   116
	001752	   123 	   106 	   105
	001755	   122 	   000
   3481	001757	   015 	   012 	   040 	DG1B5:	.ASCIZ<15><12>/   DTE IN 10-11 DIAGNOSTIC MODE/
	001762	   040 	   040 	   104
	001765	   124 	   105 	   040
	001770	   111 	   116 	   040
	001773	   061 	   060 	   055
	001776	   061 	   061 	   040
	002001	   104 	   111 	   101
	002004	   107 	   116 	   117
	002007	   123 	   124 	   111
	002012	   103 	   040 	   115
	002015	   117 	   104 	   105
	002020	   000
   3482
   3483	004064				.PSECT
EXDTE -- EXAMINE DTE-20 REGISTE	MACRO M1113  10-NOV-81 17:48  PAGE 84
TYPDG3 -- SYMBOLIC DIAG3 TYPE OUT

   3485					.SBTTL	TYPDG3 -- SYMBOLIC DIAG3 TYPE OUT
   3486
   3487					;	THIS ROUTINE WAS ADDED FOR TCO 5.1001
   3488
   3489	004064				TYPDG3:
   3490	004064	016203 	000112'			MOV	DTEBUF(R2),R3	; DIAG3
   3491	004070	032703 	000002 			BIT	#2,R3		; NPR ERROR?
   3492	004074	001404 				BEQ	10$		; NO-EXIT
   3493	004076	012700 	002021'			MOV	#DG3B1,R0	; YES-MESSAGE
   3494	004102					CALL	.TYMSG		; TYPE IT
	004102	004737 	000000G			 JSR	PC,.TYMSG
   3495	004106				10$:	CALLR	.TCRLF		; EXIT
	004106	000137 	000000G			 JMP	.TCRLF
   3496
   3497	002021				.PSECT	MESSAG
   3498
   3499	002021	   015 	   012 	   040 	DG3B1:	.ASCIZ<15><12>/   NPR UNIBUS PARITY ERROR/
	002024	   040 	   040 	   116
	002027	   120 	   122 	   040
	002032	   125 	   116 	   111
	002035	   102 	   125 	   123
	002040	   040 	   120 	   101
	002043	   122 	   111 	   124
	002046	   131 	   040 	   105
	002051	   122 	   122 	   117
	002054	   122 	   000
   3500
   3501	004112				.PSECT
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 86
TYPDG3 -- SYMBOLIC DIAG3 TYPE OUT

   3504					.TITLE	EXREG -- EXAMINE 22 AND 36 BIT REGISTER COMMAND MODULE 7603.30
   3505
   3506						.IDENT	"006010"
   3507					;
   3508					;                             COPYRIGHT (C) 1979 BY
   3509					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3510					;
   3511					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3512					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3513					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3514					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3515					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3516					;
   3517					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3518					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3519					;       CORPORATION.
   3520					;
   3521					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3522					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3523					;
   3524					;		MODULE: EXAMINE 22 AND 36 BIT REGISTER COMMAND
   3525					;
   3526					;		VERSION: 06-01
   3527					;
   3528					;		AUTHOR: R. BELANGER
   3529					;
   3530					;		DATE: 7603.30
   3531					;
   3532					;	THIS MODULE CONTAINS:
   3533					;
   3534					;	1) EXAMINE 22 AND 36 BIT REGISTER COMMAND CODE
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 87
.EXAD  -- KL DATA PATH BOARD EXAMINES 7602.16

   3536					.SBTTL	.EXAD  -- KL DATA PATH BOARD EXAMINES 7602.16
   3537
   3538						.ENABL	LSB
   3539
   3540	004112				.EXAD::				; ADDER REGISTER
   3541	004112	012700 	005026'			MOV	#.RDADR,R0	; DISPATCH POINTER TO R0
   3542	004116	000445 				BR	20$		; DO COMMON CODE
   3543						;
   3544	004120				.EXADX::			; ADDRER EXTENSION
   3545	004120	012700 	005034'			MOV	#.RDADX,R0	; DISPATCH POINTER TO R0
   3546	004124	000442 				BR	20$		; DO COMMON CODE
   3547						;
   3548	004126				.EXARR::			; ARITHMETIC REGISTER
   3549	004126	012700 	005042'			MOV	#.RDARR,R0	; DISPATCH POINTER TO R0
   3550	004132	000437 				BR	20$		; DO COMMON CODE
   3551						;
   3552	004134				.EXARX::			; AR EXTENSION
   3553	004134	012700 	005050'			MOV	#.RDARX,R0	; DISPATCH POINTER TO R0
   3554	004140	000434 				BR	20$		; DO COMMON CODE
   3555						;
   3556	004142				.EXBRR::			; BUFFER REGISTER
   3557	004142	012700 	005056'			MOV	#.RDBRR,R0	; DISPATCH POINTER TO R0
   3558	004146	000431 				BR	20$		; DO COMMON CODE
   3559						;
   3560	004150				.EXBRX::			; BR EXTENSION
   3561	004150	012700 	005064'			MOV	#.RDBRX,R0	; DISPATCH POINTER TO R0
   3562	004154	000426 				BR	20$		; DO COMMON CODE
   3563						;
   3564	004156				.EXEBS::			; EBUS REGISTER
   3565	004156	012700 	005072'			MOV	#.RDEBS,R0	; DISPATCH POINTER TO R0
   3566	004162	000423 				BR	20$		; DO COMMON CODE
   3567						;
   3568	004164				.EXFMR::			; FAST MEMORY REGISTER
   3569	004164	012700 	005100'			MOV	#.RDFMR,R0	; DISPATCH POINTER TO R0
   3570	004170	000420 				BR	20$		; DO COMMON CODE
   3571						;
   3572	004172				.EXMQR::			; MQ REGSITER
   3573	004172	012700 	005106'			MOV	#.RDMQR,R0	; DISPATCH POINTER TO R0
   3574	004176	000415 				BR	20$		; DO COMMON CODE
   3575						;
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 88
.EXVAB -- KL PC BOARD AND SMALL REGISTER EXAMINES 7602.16

   3577					.SBTTL	.EXVAB -- KL PC BOARD AND SMALL REGISTER EXAMINES 7602.16
   3578
   3579	004200				.EXVAB::			; ADDRESS BREAK REGISTER
   3580	004200	012700 	005456'			MOV	#.RDVAB,R0	; DISPATCH POINTER TO R0
   3581	004204	000410 				BR	10$		; DO COMMON CODE
   3582						;
   3583	004206				.EXVMA::			; VMA REGISTER
   3584	004206	012700 	005464'			MOV	#.RDVMA,R0	; DISPATCH POINTER TO R0
   3585	004212	000405 				BR	10$		; DO COMMON CODE
   3586						;
   3587	004214				.EXVMH::			; VMA HELD REGISTER
   3588	004214	012700 	005472'			MOV	#.RDVMH,R0	; DISPATCH POINTER TO R0
   3589	004220	000402 				BR	10$		; DO COMMON CODE
   3590						;
   3591	004222				.EXVPC::			; PROGRAM COUNTER
   3592	004222	012700 	005450'			MOV	#.RDVPC,R0	; DISPATCH POINTER TO R0
   3593					;	BR	10$		; DO COMMON CODE
   3594						;
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 89
.EXVAB -- KL PC BOARD AND SMALL REGISTER EXAMINES 7602.16

   3596					;	[CONTINUED FROM THE PREVIOUS PAGE]
   3597
   3598	004226				10$:				; HERE FOR VMA BOARD EXAMINES
   3599	004226	005037 	000000G			CLR	.LDZFL		; DON'T PRINT LEADING ZEROES
   3600	004232				20$:				; HERE FOR DATA PATH BOARD EXAMINES
   3601	004232					CALL	.CKEOC		; CHECK E-O-C
	004232	004737 	000000G			 JSR	PC,.CKEOC
   3602	004236	005046 				CLR	-(SP)		; CLEAR A BUFFER ON THE STACK
   3603	004240	005046 				CLR	-(SP)		; .
   3604	004242	005046 				CLR	-(SP)		; ..
   3605	004244	010601 				MOV	SP,R1		; ...POINT TO THE BUFFER
   3606	004246					PUSH	R0		; ...SAVE THE DISPATCH ADDRESS
	004246	010046 				 MOV	R0,-(SP)
   3607	004250					CALL	.STPKL		; ....STOP THE KL
	004250	004737 	000000G			 JSR	PC,.STPKL
   3608	004254					CALL	@(SP)+		; ....READ THE REGISTER
	004254	004736 				 JSR	PC,@(SP)+
   3609	004256					CALL	.RSTKL		; ...YES -- RESTART THE KL
	004256	004737 	000000G			 JSR	PC,.RSTKL
   3610	004262	010200 				MOV	R2,R0		; ...MESSAGE POINTER TO R0
   3611	004264					CALL	.TYMSG		; ...PRINT IT
	004264	004737 	000000G			 JSR	PC,.TYMSG
   3612	004270					CALL	.TYSLS		; ...NOW A SLASH
	004270	004737 	000000G			 JSR	PC,.TYSLS
   3613	004274					CALL	.TYSPC		; ...AND A SPACE
	004274	004737 	000000G			 JSR	PC,.TYSPC
   3614	004300	010100 				MOV	R1,R0		; ...POINT TO THE DATA
   3615	004302					CALL	.TYKLN		; ...PRINT THAT
	004302	004737 	000000G			 JSR	PC,.TYKLN
   3616	004306	062706 	000006 			ADD	#^D6,SP		; ...CLEAR THE STACK
   3617	004312					CALLR	.TCRLF		; ...END THE LINE AND EXIT
	004312	000137 	000000G			 JMP	.TCRLF
   3618						;
   3619
   3620						.DSABL	LSB
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 90
.EXAMF -- THE "EXAMINE FLAGS" COMMAND 7602.23

   3622					.SBTTL	.EXAMF -- THE "EXAMINE FLAGS" COMMAND 7602.23
   3623
   3624					;+
   3625					; .EXAMF -- THE "EXAMINE FLAGS" COMMAND.
   3626					;
   3627					; THIS ROUTINE WILL READ AND DISPLAY THE KL PC FLAGS ON THE
   3628					; CONSOLE DEVICE.
   3629					;
   3630					; INPUT ARGUMENTS:
   3631					;
   3632					;	NONE.
   3633					;
   3634					; OUTPUT ARGUMENTS:
   3635					;
   3636					;	NONE.
   3637					;
   3638					; ERROR CODES RETURNED:
   3639					;
   3640					;	NONE.
   3641					;-
   3642
   3643	004316				.EXAMF::
   3644	004316					CALL	.CKEOC		; CHECK E-O-C
	004316	004737 	000000G			 JSR	PC,.CKEOC
   3645	004322					CALL	.STPKL		; STOP THE KL
	004322	004737 	000000G			 JSR	PC,.STPKL
   3646	004326					CALL	.RDFLG		; READ THE FLAGS
	004326	004737 	005116'			 JSR	PC,.RDFLG
   3647	004332					CALL	.RSTKL		; RESTART THE KL
	004332	004737 	000000G			 JSR	PC,.RSTKL
   3648	004336	010001 				MOV	R0,R1		; FLAGS TO R1
   3649	004340	001422 				BEQ	30$		; NONE ON -- SAY SO
   3650	004342	012700 	002121'			MOV	#EXFMSG,R0	; HEADER
   3651	004346					CALL	.TYLIN		; PRINT IT
	004346	004737 	000000G			 JSR	PC,.TYLIN
   3652	004352				10$:
   3653	004352	012700 	002105'			MOV	#FONMSG,R0	; ASSUME IT IS ON
   3654	004356	032701 	010000 			BIT	#BIT12,R1	; IS THE FLAG ON?
   3655	004362	001002 				BNE	20$		; YES -- GO ON
   3656	004364	012700 	002113'			MOV	#FOFMSG,R0	; NO -- SAY SO
   3657	004370				20$:
   3658	004370					CALL	.TYMSG		; PRINT THE STATE OF THE BIT
	004370	004737 	000000G			 JSR	PC,.TYMSG
   3659	004374	042701 	010000 			BIC	#BIT12,R1	; CLEAR THIS BIT OUT
   3660	004400	006301 				ASL	R1		; MOVE NEXT BIT IN
   3661	004402	001363 				BNE	10$		; LOOP TILL R1 .EQ. 0
   3662	004404	000404 				BR	40$		; DONE -- EXIT
   3663	004406				30$:
   3664	004406	012700 	002056'			MOV	#NOFMSG,R0	; "NO FLAGS"
   3665	004412					CALL	.TYMSG		; PRINT IT
	004412	004737 	000000G			 JSR	PC,.TYMSG
   3666	004416				40$:
   3667	004416					CALLR	.TCRLF		; END LINE AND RETURN
	004416	000137 	000000G			 JMP	.TCRLF
   3668						;
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 91
.EXAMF -- THE "EXAMINE FLAGS" COMMAND 7602.23

   3670	002056				.PSECT	MESSAG
   3671
   3672	002056				NOFMSG:
   3673	002056	   116 	   117 	   040 		.ASCIZ	%NO KL PC FLAGS ARE SET%
	002061	   113 	   114 	   040
	002064	   120 	   103 	   040
	002067	   106 	   114 	   101
	002072	   107 	   123 	   040
	002075	   101 	   122 	   105
	002100	   040 	   123 	   105
	002103	   124 	   000
   3674	002105				FONMSG:
   3675	002105	   040 	   040 	   130 		.ASCIZ	%  X  %
	002110	   040 	   040 	   000
   3676	002113				FOFMSG:
   3677	002113	   040 	   040 	   040 		.ASCIZ	%     %
	002116	   040 	   040 	   000
   3678	002121				EXFMSG:
   3679	002121	   040 	   117 	   126 		.ASCIZ	% OVF  CY0  CY1  FOV  BIS  USR  UIO  LIP  AFI  AT1  AT0  FUF  NDV%
	002124	   106 	   040 	   040
	002127	   103 	   131 	   060
	002132	   040 	   040 	   103
	002135	   131 	   061 	   040
	002140	   040 	   106 	   117
	002143	   126 	   040 	   040
	002146	   102 	   111 	   123
	002151	   040 	   040 	   125
	002154	   123 	   122 	   040
	002157	   040 	   125 	   111
	002162	   117 	   040 	   040
	002165	   114 	   111 	   120
	002170	   040 	   040 	   101
	002173	   106 	   111 	   040
	002176	   040 	   101 	   124
	002201	   061 	   040 	   040
	002204	   101 	   124 	   060
	002207	   040 	   040 	   106
	002212	   125 	   106 	   040
	002215	   040 	   116 	   104
	002220	   126 	   000
   3680
   3681	004422				.PSECT
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 92
.EXAMK -- THE "EXAMINE KL" COMMAND 7602.23

   3683					.SBTTL	.EXAMK -- THE "EXAMINE KL" COMMAND 7602.23
   3684
   3685					;+
   3686					; .EXAMK -- THE "EXAMINE KL" COMMAND
   3687					;
   3688					; THIS ROUTINE WILL EXAMINE AND DISPLAY THE FOLLOWING ITEMS ON THE
   3689					; CONSOLE DEVICE:
   3690					;
   3691					;	(A) KL PROGRAM COUNTER
   3692					;	(B) KL VMA REGISTER
   3693					;	(C) KL PI SYSTEM STATE
   3694					;	(D) KL PC FLAGS
   3695					;
   3696					; INPUT ARGUMENTS:
   3697					;
   3698					;	NONE.
   3699					;
   3700					; OUTPUT ARGUMENTS:
   3701					;
   3702					;	NONE.
   3703					;
   3704					; ERROR CODES RETURNED:
   3705					;
   3706					;	NONE.
   3707					;-
   3708
   3709	004422				.EXAMK::
   3710	004422					CALL	.CKEOC		; CHECK E-O-C
	004422	004737 	000000G			 JSR	PC,.CKEOC
   3711	004426					PUSH	.KLFLG		; SAVE ".KLFLG"
	004426	013746 	000000G			 MOV	.KLFLG,-(SP)
   3712	004432					CALL	.STPKL		; .STOP THE KL
	004432	004737 	000000G			 JSR	PC,.STPKL
   3713	004436	012702 	000000G			MOV	#PCMSG,R2	; .MESSAGE POINTER TO R2
   3714	004442					CALL	.EXVPC		; .READ AND PRINT THE KL PC
	004442	004737 	004222'			 JSR	PC,.EXVPC
   3715	004446	012702 	000000G			MOV	#VMAMSG,R2	; .MESSAGE POINTER TO R2
   3716	004452					CALL	.EXVMA		; .READ AND PRINT THE KL VMA
	004452	004737 	004206'			 JSR	PC,.EXVMA
   3717	004456					CALL	.EXMPI		; .DISPLAY THE PI SYSTEM
	004456	004737 	004612'			 JSR	PC,.EXMPI
   3718	004462					CALL	.EXAMF		; .DISPLAY THE KL PC FLAGS
	004462	004737 	004316'			 JSR	PC,.EXAMF
   3719	004466					POP	.SVKLF		; .SET UP ".SVKLF"
	004466	012637 	000000G			 MOV	(SP)+,.SVKLF
   3720	004472					CALLR	.RSTKL		; RESTART THE KL
	004472	000137 	000000G			 JMP	.RSTKL
   3721						;
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 93
.EXCRA -- SMALL REGISTER EXAMINES 7609.10

   3723					.SBTTL	.EXCRA -- SMALL REGISTER EXAMINES 7609.10
   3724
   3725						.ENABL	LSB
   3726
   3727	004476				.EXCRA::			; CRAM ADDRESS REGISTER
   3728	004476	012700 	005322'			MOV	#.RDCRA,R0	; DISPATCH POINTER TO R0
   3729	004502	000416 				BR	10$		; DO COMMON CODE
   3730						;
   3731	004504				.EXCRL::			; CRAM LOC REGISTER
   3732	004504	012700 	005330'			MOV	#.RDCRL,R0	; DISPATCH POINTER TO R0
   3733	004510	000413 				BR	10$		; DO COMMON CODE
   3734						;
   3735	004512				.EXDRA::			; DRAM ADDRESS REGISTER
   3736	004512	012700 	005336'			MOV	#.RDDRA,R0	; DISPATCH POINTER TO R0
   3737	004516	000410 				BR	10$		; DO COMMON CODE
   3738						;
   3739	004520				.EXFER::			; FLOATING EXPONENT REGISTER
   3740	004520	012700 	005344'			MOV	#.RDFER,R0	; DISPATCH POINTER TO R0
   3741	004524	000405 				BR	10$		; DO COMMON CODE
   3742						;
   3743	004526				.EXSBR::			; CRAM SBR RET REGISTER
   3744	004526	012700 	005352'			MOV	#.RDSBR,R0	; DISPATCH POINTER TO R0
   3745	004532	000402 				BR	10$		; DO COMMON CODE
   3746						;
   3747	004534				.EXSCR::
   3748	004534	012700 	005360'			MOV	#.RDSCR,R0	; DISPATCH POINTER TO R0
   3749					;	BR	10$		; DO COMMON CODE
   3750						;
   3751
   3752					;	[CONTINUED ON THE FOLLOWING PAGE]
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 94
.EXCRA -- SMALL REGISTER EXAMINES 7609.10

   3754					;	[CONTINUED FROM THE PREVIOUS PAGE]
   3755
   3756	004540				10$:				; HERE FOR SMALL REGISTER READS
   3757	004540					CALL	.CKEOC		; CHECK E-O-C
	004540	004737 	000000G			 JSR	PC,.CKEOC
   3758	004544					PUSH	R0		; SAVE DISPATCH ADDRESS
	004544	010046 				 MOV	R0,-(SP)
   3759	004546					CALL	.STPKL		; .STOP THE KL
	004546	004737 	000000G			 JSR	PC,.STPKL
   3760	004552					CALL	@(SP)+		; .READ THE REGISTER
	004552	004736 				 JSR	PC,@(SP)+
   3761	004554					PUSH	R0		; SAVE THE REGISTER DATA
	004554	010046 				 MOV	R0,-(SP)
   3762	004556					CALL	.RSTKL		; .YES -- RESTART THE KL
	004556	004737 	000000G			 JSR	PC,.RSTKL
   3763	004562	010200 				MOV	R2,R0		; .MESSAGE POINTER TO R0
   3764	004564					CALL	.TYMSG		; .PRINT IT
	004564	004737 	000000G			 JSR	PC,.TYMSG
   3765	004570					CALL	.TYSLS		; .AND A SLASH
	004570	004737 	000000G			 JSR	PC,.TYSLS
   3766	004574					CALL	.TYSPC		; .AND A SPACE
	004574	004737 	000000G			 JSR	PC,.TYSPC
   3767	004600					POP	R0		; .GET THE DATA
	004600	012600 				 MOV	(SP)+,R0
   3768	004602					CALL	.TYELN		; PRINT IT
	004602	004737 	000000G			 JSR	PC,.TYELN
   3769	004606					CALLR	.TCRLF		; END THE LINE AND EXIT
	004606	000137 	000000G			 JMP	.TCRLF
   3770						;
   3771
   3772						.DSABL	LSB
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 96
.EXMPI -- THE "EXAMINE PI" COMMAND 7602.23

   3775					.SBTTL	.EXMPI -- THE "EXAMINE PI" COMMAND 7602.23
   3776
   3777					;+
   3778					; .EXMPI -- THE "EXAMINE PI" COMMAND
   3779					;
   3780					; THIS ROUTINE READS THE STATE OF THE KL PI SYSTEM AND DISPLAYS IT
   3781					; ON THE CONSOLE DEVICE.
   3782					;
   3783					; INPUT ARGUMENTS:
   3784					;
   3785					;	NONE.
   3786					;
   3787					; OUTPUT ARGUMENTS:
   3788					;
   3789					;	NONE.
   3790					;
   3791					; ERROR CODES RETURNED:
   3792					;
   3793					;	NONE.
   3794					;-
   3795
   3796	004612				.EXMPI::
   3797	004612					CALL	.CKEOC		; CHECK THE E-O-C CHARACTER
	004612	004737 	000000G			 JSR	PC,.CKEOC
   3798	004616	005002 				CLR	R2		; CLEAR R2
   3799	004620					CALL	.STPKL		; STOP THE KL
	004620	004737 	000000G			 JSR	PC,.STPKL
   3800	004624					CALL	.RDPI		; READ THE PI SYSTEM STATE
	004624	004737 	005242'			 JSR	PC,.RDPI
   3801	004630					CALL	.RSTKL		; RESTART THE KL
	004630	004737 	000000G			 JSR	PC,.RSTKL
   3802	004634	010001 				MOV	R0,R1		; DATA POINTER TO R1
   3803	004636	012700 	002222'			MOV	#EPMSG0,R0	; MESSAGE POINTER TO R0
   3804	004642					CALL	.TYMSG		; PRINT IT
	004642	004737 	000000G			 JSR	PC,.TYMSG
   3805	004646	012700 	000000G			MOV	#ONMSG,R0	; "ON"
   3806	004652	052102 				BIS	(R1)+,R2	; PI ACTIVE + PI ON TO R2
   3807	004654	032702 	000200 			BIT	#200,R2		; IS IT ON?
   3808	004660	001002 				BNE	10$		; YES -- GO ON
   3809	004662	012700 	000000G			MOV	#OFFMSG,R0	; NO -- SO SAY "OFF"
   3810
   3811					;	[CONTINUED ON THE FOLLOWING PAGE]
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 97
.EXMPI -- THE "EXAMINE PI" COMMAND 7602.23

   3813					;	[CONTINUED FROM THE PREVIOUS PAGE]
   3814
   3815	004666				10$:
   3816	004666					CALL	.TYMSG		; PRINT IT
	004666	004737 	000000G			 JSR	PC,.TYMSG
   3817	004672	012700 	002236'			MOV	#EPMSG1,R0	; "PI ON"
   3818	004676					CALL	.TYMSG		; PRINT IT
	004676	004737 	000000G			 JSR	PC,.TYMSG
   3819	004702	010200 				MOV	R2,R0		; GET ACTIVE BITS
   3820	004704	042700 	177600 			BIC	#^C177,R0	; FLUSH JUNK
   3821	004710					CALL	.TYP3D		; PRINT THEM
	004710	004737 	000000G			 JSR	PC,.TYP3D
   3822	004714	012700 	002250'			MOV	#EPMSG2,R0	; "PI HOLD"
   3823	004720					CALL	.TYMSG		; PRINT IT
	004720	004737 	000000G			 JSR	PC,.TYMSG
   3824	004724	112100 				MOVB	(R1)+,R0	; GET THE PI HOLD BITS
   3825	004726	042700 	177600 			BIC	#^C177,R0	; FLUSH JUNK
   3826	004732					CALL	.TYP3D		; PRINT THEM
	004732	004737 	000000G			 JSR	PC,.TYP3D
   3827	004736	012700 	002264'			MOV	#EPMSG3,R0	; "PI GEN"
   3828	004742					CALL	.TYMSG		; PRINT IT
	004742	004737 	000000G			 JSR	PC,.TYMSG
   3829	004746	112100 				MOVB	(R1)+,R0	; GET THE GEN BITS
   3830	004750	042700 	177600 			BIC	#^C177,R0	; FLUSH JUNK
   3831	004754					CALL	.TYP3D		; PRINT THEM
	004754	004737 	000000G			 JSR	PC,.TYP3D
   3832	004760					CALLR	.TCRLF		; END THE LINE AND RETURN
	004760	000137 	000000G			 JMP	.TCRLF
   3833						;
   3834	002222				.PSECT	MESSAG
   3835
   3836	002222				EPMSG0:
   3837	002222	   120 	   111 	   040 		.ASCIZ	%PI ACTIVE: %
	002225	   101 	   103 	   124
	002230	   111 	   126 	   105
	002233	   072 	   040 	   000
   3838	002236				EPMSG1:
   3839	002236	   054 	   040 	   120 		.ASCIZ	%, PI ON: %
	002241	   111 	   040 	   117
	002244	   116 	   072 	   040
	002247	   000
   3840	002250				EPMSG2:
   3841	002250	   054 	   040 	   120 		.ASCIZ	%, PI HOLD: %
	002253	   111 	   040 	   110
	002256	   117 	   114 	   104
	002261	   072 	   040 	   000
   3842	002264				EPMSG3:
   3843	002264	   054 	   040 	   120 		.ASCIZ	%, PI GEN: %
	002267	   111 	   040 	   107
	002272	   105 	   116 	   072
	002275	   040 	   000
   3844	004764				.PSECT
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 98
.EXREG -- THE "EXAMINE REGISTERS" COMMAND 7602.16

   3846					.SBTTL	.EXREG -- THE "EXAMINE REGISTERS" COMMAND 7602.16
   3847
   3848	004764				.EXREG::
   3849	004764					CALL	.CKEOC		; CHECK E-O-C
	004764	004737 	000000G			 JSR	PC,.CKEOC
   3850	004770					CALL	.STPKL		; STOP THE KL
	004770	004737 	000000G			 JSR	PC,.STPKL
   3851	004774	012701 	000000G			MOV	#.EXMTB,R1	; TABLE POINTER TO R1
   3852	005000	012703 	000000G			MOV	#EXRTBL,R3	; COUNT TO R3
   3853	005004				10$:
   3854	005004	012102 				MOV	(R1)+,R2	; MESSAGE ADDRESS TO R2
   3855	005006					PUSH	R1		; SAVE R1
	005006	010146 				 MOV	R1,-(SP)
   3856	005010					CALL	@2(R1)		; .READ AND PRINT THE REGISTER
	005010	004771 	000002 			 JSR	PC,@2(R1)
   3857	005014					POP	R1		; .RESTORE R1
	005014	012601 				 MOV	(SP)+,R1
   3858	005016	022121 				CMP	(R1)+,(R1)+	; ADVANCE THE POINTER
   3859	005020	077307 				SOB	R3,10$		; LOOP TILL COUNT EXHAUSTED
   3860	005022					CALLR	.RSTKL		; RESTART THE KL
	005022	000137 	000000G			 JMP	.RSTKL
   3861						;
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 99
.RDDPB -- SUBROUTINES TO READ THE KL DATA PATH BOARDS 7509.23

   3863					.SBTTL	.RDDPB -- SUBROUTINES TO READ THE KL DATA PATH BOARDS 7509.23
   3864
   3865					;+
   3866					; .RDADR -- SUBROUTINE TO READ THE KL ADDER REGISTER.
   3867					; .RDADX -- SUBROUTINE TO READ THE KL ADDER EXTENSION REGISTER.
   3868					; .RDARR -- SUBROUTINE TO READ THE KL ARITHMETIC REGISTER.
   3869					; .RDARX -- SUBROUTINE TO READ THE KL ARITHMETIC REGISTER EXTENSION.
   3870					; .RDBRR -- SUBROUTINE TO READ THE KL BUFFER REGISTER.
   3871					; .RDBRX -- SUBROUTINE TO READ THE KL BUFFER REGISTER EXTENSION.
   3872					; .RDEBS -- SUBROUTINE TO READ THE KL EBUS REGISTER.
   3873					; .RDFMR -- SUBROUTINE TO READ THE KL FAST MEMORY REGISTER.
   3874					; .RDMQR -- SUBROUTINE TO READ THE KL MULTIPLIER QUOTIENT REGISTER.
   3875					;
   3876					; THESE SUBROUTINES READ AND RETURN THE CONTENT OF THE SPECIFIED KL
   3877					; DATA PATH REGISTER IN A TRIPLET POINTED TO BY R1 IN THE CALL.
   3878					;
   3879					; INPUT ARGUMENTS:
   3880					;
   3881					;	R1 CONTAINS A POINTER TO A 3 WORD DATA BUFFER
   3882					;
   3883					; OUTPUT ARGUMENTS:
   3884					;
   3885					;	R0 CONTAINS A POINTER TO THE DATA.
   3886					;
   3887					; ERROR CODES RETURNED:
   3888					;
   3889					;	FRF -- FUNCTION READ FAILED.
   3890					;-
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 100
.RDDPB -- SUBROUTINES TO READ THE KL DATA PATH BOARDS 7509.23

   3892						.ENABL	LSB
   3893
   3894	005026				.RDADR::
   3895	005026	012700 	000256 			MOV	#FR.RAD,R0	; READ THE KL ADDER
   3896	005032	000427 				BR	10$		; COMMON CODE
   3897						;
   3898	005034				.RDADX::
   3899	005034	012700 	000254 			MOV	#FR.ADX,R0	; READ THE KL ADDER EXTENSION
   3900	005040	000424 				BR	10$		; COMMON CODE
   3901						;
   3902	005042				.RDARR::
   3903	005042	012700 	000240 			MOV	#FR.RAR,R0	; READ THE KL ARITHMETIC REGISTER
   3904	005046	000421 				BR	10$		; COMMON CODE
   3905						;
   3906	005050				.RDARX::
   3907	005050	012700 	000252 			MOV	#FR.ARX,R0	; READ THE KL AR EXTENSION REGISTER
   3908	005054	000416 				BR	10$		; COMMON CODE
   3909						;
   3910	005056				.RDBRR::
   3911	005056	012700 	000242 			MOV	#FR.RBR,R0	; READ THE KL BUFFER REGISTER
   3912	005062	000413 				BR	10$		; COMMON CODE
   3913						;
   3914	005064				.RDBRX::
   3915	005064	012700 	000250 			MOV	#FR.BRX,R0	; READ THE KL BR EXTENSION REGISTER
   3916	005070	000410 				BR	10$		; COMMON CODE
   3917						;
   3918	005072				.RDEBS::
   3919	005072	012700 	000356 			MOV	#FR.EBS,R0	; READ THE KL EBUS REGISTER
   3920	005076	000405 				BR	10$		; COMMON CODE
   3921						;
   3922	005100				.RDFMR::
   3923	005100	012700 	000246 			MOV	#FR.RFM,R0	; READ THE KL FAST MEMORY REGISTER
   3924	005104	000402 				BR	10$		; COMMON CODE
   3925						;
   3926	005106				.RDMQR::
   3927	005106	012700 	000244 			MOV	#FR.RMQ,R0	; READ THE KL MULTIPLIER QUOTIENT REGISTER
   3928									; FALL INTO COMMON CODE
   3929	005112				10$:
   3930	005112					CALLR	.FREAD		; READ IT AND EXIT
	005112	000137 	000000G			 JMP	.FREAD
   3931						;
   3932
   3933						.DSABL	LSB
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 101
.RDFLG -- SUBROUTINE TO READ THE KL PC FLAGS 7511.24

   3935					.SBTTL	.RDFLG -- SUBROUTINE TO READ THE KL PC FLAGS 7511.24
   3936
   3937					;+
   3938					; .RDFLG -- SUBROUTINE TO READ THE KL PC FLAGS.
   3939					;
   3940					; THIS SUBROUTINE READS AND RETURNS THE STATE OF THE KL PC FLAGS IN R0.
   3941					;
   3942					; INPUT ARGUMENTS:
   3943					;
   3944					;	NONE.
   3945					;
   3946					; OUTPUT ARGUMENTS:
   3947					;
   3948					;	R0 CONTAINS THE KL PC FLAGS
   3949					;
   3950					; THE FOLLOWING IS A LIST OF THE KL FLAGS RETURNED IN R0:
   3951					;
   3952					;	BIT #	PC FLAG BIT AND MEANING		KL BIT
   3953					;	-----	----------------------------	--------
   3954					;
   3955					;	12	PC.OVF -- KL OVERFLOW FLAG -- 00
   3956					;	11	PC.CY0 -- KL CARRY 0 FLAG -- 01
   3957					;	10	PC.CY1 -- KL CARRY 1 FLAG -- 02
   3958					;	09	PC.FOV -- KL FLOATING OVERFLOW FLAG -- 03
   3959					;	08	PC.BIS -- KL BYTE INCREMENT SUPPRESSION FLAG -- 04
   3960					;	07	PC.USR -- KL USER MODE FLAG -- 05
   3961					;	06	PC.UIO -- KL USER IOT MODE FLAG -- 06
   3962					;	05	PC.LIP -- KL LAST INSTRUCTION PUBLIC FLAG -- 07
   3963					;	04	PC.AFI -- KL ADDRESS FAILURE INHIBIT FLAG -- 08
   3964					;	03	PC.AT1 -- KL APR TRAP 1 FLAG -- 09
   3965					;	02	PC.AT0 -- KL APR TRAP 0 FLAG -- 10
   3966					;	01	PC.FUF -- KL FLOATING UNDERFLOW FLAG -- 11
   3967					;	00	PC.NDV -- KL NO DIVIDE FLAG -- 12
   3968					;
   3969					; ERROR CODES RETURNED:
   3970					;
   3971					;	FRF -- FUNCTION READ FAILED.
   3972					;-
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 102
.RDFLG -- SUBROUTINE TO READ THE KL PC FLAGS 7511.24

   3974	005116				.RDFLG::
   3975	005116					PUSH	<R1,R2>		; SAVE R1 AND R2 ON THE STACK
	005116	010146 				 MOV	R1,-(SP)
	005120	010246 				 MOV	R2,-(SP)
   3976	005122	005001 				CLR	R1		; ..CLEAR R1
   3977	005124	005002 				CLR	R2		; ..AND R2
   3978	005126	012700 	000202 			MOV	#FR.101,R0	; ..FR CODE FOR LOW FLAGS
   3979	005132					CALL	.FREAD		; ..READ THEM
	005132	004737 	000000G			 JSR	PC,.FREAD
   3980	005136	012701 	177764 			MOV	#-^D12,R1	; ..SHIFT COUNT TO R1
   3981	005142					CALL	.TPSHI		; ..SHIFT OUR WORD
	005142	004737 	000000G			 JSR	PC,.TPSHI
   3982	005146	042710 	177700 			BIC	#177700,(R0)	; ..MASK OUT FLAG BITS
   3983	005152	051002 				BIS	(R0),R2		; ..PUT THE LOW FLAGS IN R2
   3984	005154	005001 				CLR	R1		; ..AGAIN
   3985	005156	012700 	000200 			MOV	#FR.100,R0	; ..FR CODE FOR MOST OF THE FLAGS
   3986	005162					CALL	.FREAD		; ..READ THEM
	005162	004737 	000000G			 JSR	PC,.FREAD
   3987	005166	012701 	177772 			MOV	#-^D6,R1	; ..SHIFT COUNT TO R1
   3988	005172					CALL	.TPSHI		; ..SHIFT THE DATA
	005172	004737 	000000G			 JSR	PC,.TPSHI
   3989	005176	042710 	170077 			BIC	#170077,(R0)	; ..JUST THE BITS WE WANT
   3990	005202	051002 				BIS	(R0),R2		; ..SAVE THE HIGH FLAGS IN R2
   3991	005204	005001 				CLR	R1		; ..CLEAR R1 AGAIN
   3992	005206	012700 	000264 			MOV	#FR.132,R0	; ..FR CODE FOR LAST FLAG BIT
   3993	005212					CALL	.FREAD		; ..READ IT
	005212	004737 	000000G			 JSR	PC,.FREAD
   3994	005216	032760 	000001 	000004 		BIT	#BIT00,4(R0)	; ..IS IT ON?
   3995	005224	001402 				BEQ	10$		; ..NO -- JUST EXIT
   3996	005226	052702 	010000 			BIS	#PC.OVF,R2	; ..YES -- SET IT IN OUR WORD
   3997	005232				10$:
   3998	005232	010200 				MOV	R2,R0		; ..PUT A COPY IN R0
   3999	005234					POP	<R2,R1>		; ..RESTORE REGISTERS
	005234	012602 				 MOV	(SP)+,R2
	005236	012601 				 MOV	(SP)+,R1
   4000	005240					RETURN			; TO CALLER
	005240	000207 				 RTS	PC
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 103
.RDPI  -- SUBROUTINE TO READ THE PI BOARDS 7510.16

   4002					.SBTTL	.RDPI  -- SUBROUTINE TO READ THE PI BOARDS 7510.16
   4003
   4004					;+
   4005					; .RDPI -- SUBROUTINE TO READ THE KL PI BOARDS.
   4006					;
   4007					; THIS SUBROUTINE READS THE KL PI BOARDS AND STORES THE STATUS IN
   4008					; A TWO WORD TABLE, ".PITAB", WHICH IS POINTED TO BY R0 ON SUCCESSFUL
   4009					; RETURN.
   4010					;
   4011					; WORD 0 OF ".PITAB" CONTAINS:
   4012					;
   4013					;	(A) PIH 1 THRU PIH 7 (BITS 14 THRU 08),
   4014					;	(B) PI ACTIVE (BIT 07),
   4015					;	(C) PI ON 1 THRU PI ON 7 (BITS 06 THRU 00).
   4016					;
   4017					; WORD 2 OF ".PITAB" CONTAINS:
   4018					;
   4019					;	(A) PI GEN 1 THRU PI GEN 7 (BITS 06 THRU 00).
   4020					;
   4021					; INPUT ARGUMENTS:
   4022					;
   4023					;	NONE.
   4024					;
   4025					; OUTPUT ARGUMENTS:
   4026					;
   4027					;	R0 POINTS TO ".PITAB".
   4028					;
   4029					; ERROR CODES RETURNED:
   4030					;
   4031					;	FRF -- FUNCTION READ FAILED.
   4032					;-
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 104
.RDPI  -- SUBROUTINE TO READ THE PI BOARDS 7510.16

   4034	005242				.RDPI::
   4035	005242					PUSH	<R1,R2,R3>	; SAVE REGISTERS
	005242	010146 				 MOV	R1,-(SP)
	005244	010246 				 MOV	R2,-(SP)
	005246	010346 				 MOV	R3,-(SP)
   4036	005250	012703 	000346'			MOV	#RDPITB,R3	; ...TABLE POINTER TO R3
   4037	005254	012702 	000000G			MOV	#.PITAB,R2	; ...SAVE AREA POINTER TO R2
   4038	005260				10$:
   4039	005260	005001 				CLR	R1		; ...CLEAR R1
   4040	005262	012300 				MOV	(R3)+,R0	; ...FR CODE TO R0
   4041	005264					CALL	.FREAD		; ...READ IT
	005264	004737 	000000G			 JSR	PC,.FREAD
   4042	005270	012301 				MOV	(R3)+,R1	; ...SHIFT COUNT TO R1
   4043	005272					CALL	.TPSHI		; ...SHIFT IT
	005272	004737 	000000G			 JSR	PC,.TPSHI
   4044	005276	042310 				BIC	(R3)+,(R0)	; ...CLEAR UNWANTED BIT(S)
   4045	005300	011022 				MOV	(R0),(R2)+	; ...PUT IT IN SAVE AREA
   4046	005302	022703 	000362'			CMP	#RDPITE,R3	; ...ARE WE AT END OF TABLE?
   4047	005306	001364 				BNE	10$		; ...NO -- KEEP GOING
   4048	005310	011300 				MOV	(R3),R0		; ...YES -- POINT TO SAVE AREA
   4049	005312					POP	<R3,R2,R1>	; ...RESTORE REGISTERS
	005312	012603 				 MOV	(SP)+,R3
	005314	012602 				 MOV	(SP)+,R2
	005316	012601 				 MOV	(SP)+,R1
   4050	005320					RETURN			; TO CALLER
	005320	000207 				 RTS	PC
   4051
   4052	000346				.PSECT	DATA
   4053
   4054	000346				RDPITB:
   4055	000346	000200 				.WORD	FR.PI0		; FIRST READ CODE
   4056	000350	177756 				.WORD	-^D18		; SHIFT COUNT
   4057	000352	100000 				.WORD	BIT15		; MASK
   4058	000354	000202 				.WORD	FR.PI1		; SECOND READ CODE
   4059	000356	177756 				.WORD	-^D18		; SHIFT COUNT
   4060	000360	177600 				.WORD	177600		; MASK
   4061		000362'			RDPITE=.
   4062	000362	000000G				.WORD	.PITAB		; POINTER TO SAVE AREA
   4063
   4064	005322				.PSECT
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 105
.RDSMR -- SUBROUTINE TO READ SMALL KL REGISTERS 7511.05

   4066					.SBTTL	.RDSMR -- SUBROUTINE TO READ SMALL KL REGISTERS 7511.05
   4067
   4068					;+
   4069					; .RDCRA -- SUBROUTINE TO READ THE KL CRAM ADDR REGISTER.
   4070					; .RDCRL -- SUBROUTINE TO READ THE KL CRAM LOC REGISTER.
   4071					; .RDDRA -- SUBROUTINE TO READ THE KL DRAM ADDR REGISTER.
   4072					; .RDFER -- SUBROUTINE TO READ THE KL FLOATING EXPONENT REGISTER.
   4073					; .RDSCR -- SUBROUTINE TO READ THE KL SHIFT COUNT REGISTER.
   4074					; .RDSBR -- SUBROUTINE TO READ THE KL CRAM SUBROUTINE RETURN REGISTER.
   4075					;
   4076					; THESE SUBROUTINES READ THE CONTENT OF THE SPECIFIED REGISTER
   4077					; AND RETURN IT IN R0. NOTE THAT THE CONTENT OF EACH REGISTER IS LESS
   4078					; THAN 16 BITS AND MUST BE READ USING TWO FUNCTION READS.
   4079					;
   4080					; INPUT ARGUMENTS:
   4081					;
   4082					;	NONE.
   4083					;
   4084					; OUTPUT ARGUMENTS:
   4085					;
   4086					;	R0 HOLDS THE CONTENT OF THE SPECIFIED REGISTER
   4087					;
   4088					; ERROR CODES RETURNED:
   4089					;
   4090					;	FRF -- FUNCTION READ FAILED.
   4091					;-
   4092
   4093						.ENABL	LSB
   4094
   4095	005322				.RDCRA::
   4096	005322	012700 	000364'			MOV	#CRATAB,R0	; POINT TO CRAM ADDRESS TABLE
   4097	005326	000416 				BR	10$		; DO COMMON CODE
   4098						;
   4099	005330				.RDCRL::
   4100	005330	012700 	000400'			MOV	#CRLTAB,R0	; POINT TO CR LOC TABLE
   4101	005334	000413 				BR	10$		; DO COMMON CODE
   4102						;
   4103	005336				.RDDRA::
   4104	005336	012700 	000414'			MOV	#DRATAB,R0	; POINT TO DRAM ADDR TABLE
   4105	005342	000410 				BR	10$		; DO COMMON CODE
   4106						;
   4107	005344				.RDFER::
   4108	005344	012700 	000430'			MOV	#FERTAB,R0	; POINT TO FE TABLE
   4109	005350	000405 				BR	10$		; DO COMMON CODE
   4110						;
   4111	005352				.RDSBR::
   4112	005352	012700 	000444'			MOV	#SBRTAB,R0	; POINT TO CRAM SBR RET TABLE
   4113	005356	000402 				BR	10$		; DO COMMON CODE
   4114						;
   4115	005360				.RDSCR::
   4116	005360	012700 	000460'			MOV	#SCRTAB,R0	; POINT TO SHIFT COUNT TABLE
   4117					;	BR	10$		; FALL INTO COMMON CODE
   4118
   4119					;	[CONTINUED ON THE FOLLOWING PAGE]
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 106
.RDSMR -- SUBROUTINE TO READ SMALL KL REGISTERS 7511.05

   4121					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4122
   4123	005364				10$:				; HERE FROM PREVIOUS PAGE
   4124	005364					PUSH	<R1,R2>		; SAVE CALLER'S REGISTERS
	005364	010146 				 MOV	R1,-(SP)
	005366	010246 				 MOV	R2,-(SP)
   4125	005370	010002 				MOV	R0,R2		; ..POINTER TO R2
   4126	005372	005001 				CLR	R1		; ..CLEAR R1
   4127	005374	012200 				MOV	(R2)+,R0	; ..READ THE HIGH ORDER BITS
   4128	005376					CALL	.FREAD		; ..DO IT
	005376	004737 	000000G			 JSR	PC,.FREAD
   4129	005402	012201 				MOV	(R2)+,R1	; ..SHIFT COUNT TO R1
   4130	005404					CALL	.TPSHI		; ..SHIFT IT
	005404	004737 	000000G			 JSR	PC,.TPSHI
   4131	005410	042210 				BIC	(R2)+,(R0)	; ..MASK OUT UNWANTED BITS
   4132	005412					PUSH	(R0)		; ..SAVE THE BITS
	005412	011046 				 MOV	(R0),-(SP)
   4133	005414	012200 				MOV	(R2)+,R0	; ...READ THE LOW ORDER BITS
   4134	005416	005001 				CLR	R1		; ...CLEAR R1
   4135	005420					CALL	.FREAD		; ...DO IT
	005420	004737 	000000G			 JSR	PC,.FREAD
   4136	005424	012201 				MOV	(R2)+,R1	; ...SHIFT COUNT TO R1
   4137	005426					CALL	.TPSHI		; ...SHIFT IT
	005426	004737 	000000G			 JSR	PC,.TPSHI
   4138	005432	042210 				BIC	(R2)+,(R0)	; ...MASK OUT UNWANTED BITS
   4139	005434	051610 				BIS	(SP),(R0)	; ...SET IN THE HIGH ORDER BITS
   4140	005436	011000 				MOV	(R0),R0		; ...PUT IT IN R0
   4141	005440	005726 				TST	(SP)+		; ...CLEAR THE STACK
   4142	005442					POP	<R2,R1>		; ..RESTORE REGISTERS
	005442	012602 				 MOV	(SP)+,R2
	005444	012601 				 MOV	(SP)+,R1
   4143	005446					RETURN			; TO CALLER
	005446	000207 				 RTS	PC
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 107
.RDSMR -- SUBROUTINE TO READ SMALL KL REGISTERS 7511.05

   4145					; TABLES FOR SMALL REGISTER READS
   4146
   4147	000364				.PSECT	DATA
   4148
   4149	000364				CRATAB:
   4150	000364	000312 				.WORD	FR.CA1		; FR FOR CRAM ADDR HIGH BITS
   4151	000366	177750 				.WORD	-^D24		; SHIFT COUNT FOR SAME
   4152	000370	174077 				.WORD	174077		; BIT MASK FOR SAME
   4153	000372	000310 				.WORD	FR.CA2		; FR FOR CRAM ADDR LOW BITS
   4154	000374	177742 				.WORD	-^D30		; SHIFT COUNT FOR SAME
   4155	000376	177700 				.WORD	177700		; BIT MASK FOR SAME
   4156
   4157	000400				CRLTAB:
   4158	000400	000316 				.WORD	FR.CL1		; FR FOR CRAM LOC HIGH BITS
   4159	000402	177750 				.WORD	-^D24		; SHIFT COUNT FOR SAME
   4160	000404	174077 				.WORD	174077		; BIT MASK FOR SAME
   4161	000406	000314 				.WORD	FR.CL2		; FR FOR CRAM LOC LOW BITS
   4162	000410	177742 				.WORD	-^D30		; SHIFT COUNT FOR SAME
   4163	000412	177700 				.WORD	177700		; BIT MASK FOR SAME
   4164
   4165	000414				DRATAB:
   4166	000414	000260 				.WORD	FR.DA1		; FR FOR DRAM ADDR HIGH BITS
   4167	000416	177764 				.WORD	-^D12		; SHIFT COUNT FOR SAME
   4168	000420	177077 				.WORD	177077		; BIT MASK FOR SAME
   4169	000422	000262 				.WORD	FR.DA2		; FR FOR DRAM ADDR LOW BITS
   4170	000424	177756 				.WORD	-^D18		; SHIFT COUNT FOR SAME
   4171	000426	177700 				.WORD	177700		; BIT MASK FOR SAME
   4172
   4173	000430				FERTAB:
   4174	000430	000266 				.WORD	FR.FE1		; FR FOR FE HIGH BITS
   4175	000432	177755 				.WORD	-^D19		; SHIFT COUNT FOR SAME
   4176	000434	176037 				.WORD	176037		; BIT MASK FOR SAME
   4177	000436	000264 				.WORD	FR.FE2		; FR FOR FE LOW BITS
   4178	000440	177750 				.WORD	-^D24		; SHIFT COUNT FOR SAME
   4179	000442	177740 				.WORD	177740		; BIT MASK FOR SAME
   4180
   4181	000444				SBRTAB:
   4182	000444	000306 				.WORD	FR.SR1		; FR FOR SBR RET HIGH BITS
   4183	000446	177750 				.WORD	-^D24		; SHIFT COUNT FOR SAME
   4184	000450	174077 				.WORD	174077		; BIT MASK FOR SAME
   4185	000452	000304 				.WORD	FR.SR2		; FR FOR SBR RET LOW BITS
   4186	000454	177742 				.WORD	-^D30		; SHIFT COUNT FOR SAME
   4187	000456	177700 				.WORD	177700		; BIT MASK FOR SAME
   4188
   4189	000460				SCRTAB:
   4190	000460	000262 				.WORD	FR.SC1		; FR FOR SHIFT COUNT HIGH BITS
   4191	000462	177755 				.WORD	-^D19		; SHIFT COUNT FOR SAME
   4192	000464	177417 				.WORD	177417		; BIT MASK FOR SAME
   4193	000466	000260 				.WORD	FR.SC2		; FR FOR SHIFT COUNT LOW BITS
   4194	000470	177750 				.WORD	-^D24		; SHIFT COUNT FOR SAME
   4195	000472	177760 				.WORD	177760		; BIT MASK FOR SAME
   4196
   4197	005450				.PSECT
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 108
.RDVXX -- KL VMA BOARD READ SUBROUTINES 7510.21

   4199					.SBTTL	.RDVXX -- KL VMA BOARD READ SUBROUTINES 7510.21
   4200
   4201					;+
   4202					; .RDVPC -- SUBROUTINE TO READ THE KL PROGRAM COUNTER REGISTER
   4203					; .RDVAB -- SUBROUTINE TO READ THE KL ADDRESS BREAK REGISTER.
   4204					; .RDVMA -- SUBROUTINE TO READ THE KL VMA REGISTER.
   4205					; .RDVMH -- SUBROUTINE TO READ THE KL VMAH REGISTER.
   4206					;
   4207					; THESE SUBROUTINES READ AND ASSEMBLE THE DESIRED VMA BOARD REGISTER
   4208					; INTO A THREE WORD BLOCK POINTED TO BY R1 IN THE CALL.
   4209					;
   4210					; INPUT ARGUMENTS:
   4211					;
   4212					;	R1 POINTS TO A TWO WORD BUFFER FOR THE SPECIFIED REGISTER
   4213					;
   4214					; OUTPUT ARGUMENTS:
   4215					;
   4216					;	R1 POINTS TO A TWO WORD BUFFER FOR THE SPECIFIED REGISTER
   4217					;
   4218					; ERROR CODES RETURNED:
   4219					;
   4220					;	FRF -- FUNCTION READ FAILED.
   4221					;-
   4222
   4223						.ENABL	LSB
   4224
   4225	005450				.RDVPC::
   4226	005450	012700 	000474'			MOV	#PCTAB,R0	; POINTER TO PC TABLE
   4227	005454	000410 				BR	10$
   4228						;
   4229	005456				.RDVAB::
   4230	005456	012700 	000502'			MOV	#ABTAB,R0	; POINTER TO ADDRESS BREAK TABLE
   4231	005462	000405 				BR	10$
   4232						;
   4233	005464				.RDVMA::
   4234	005464	012700 	000510'			MOV	#VMATB,R0	; POINTER TO VMA TABLE
   4235	005470	000402 				BR	10$
   4236						;
   4237	005472				.RDVMH::
   4238	005472	012700 	000516'			MOV	#VMHTB,R0	; POINTER TO VMAH TABLE
   4239	005476				10$:
   4240	005476					CALL	R5,.REGSV	; SAVE R5 - R1 ON THE STACK
	005476	004537 	000000G			 JSR	R5,.REGSV
   4241	005502	010005 				MOV	R0,R5		; TABLE POINTER TO R5
   4242	005504	012704 	000004 			MOV	#^D4,R4		; ITERATION COUNT TO R4
   4243	005510	010103 				MOV	R1,R3		; USER BUFFER ADDRESS TO R3
   4244	005512	012502 				MOV	(R5)+,R2	; FUNCTION READ BASE TO R2
   4245	005514					PUSH	(R5)+		; MASK WORD TO TOP OF THE STACK
	005514	012546 				 MOV	(R5)+,-(SP)
   4246	005516	011505 				MOV	(R5),R5		; .SHIFT BASE TO R5
   4247	005520	010100 				MOV	R1,R0		; .CLEAR CALLER'S AREA
   4248	005522					CALL	.TPCLR		; .SO
	005522	004737 	000000G			 JSR	PC,.TPCLR
   4249
   4250					;	[CONTINUED ON THE FOLLOWING PAGE]
EXREG -- EXAMINE 22 AND 36 BIT 	MACRO M1113  10-NOV-81 17:48  PAGE 109
.RDVXX -- KL VMA BOARD READ SUBROUTINES 7510.21

   4252					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4253
   4254	005526				20$:				; .GET HERE FROM .RDVXX, ABOVE
   4255	005526	010200 				MOV	R2,R0		; .SET THE FUNCTION READ NUMBER
   4256	005530	006300 				ASL	R0		; .TIMES 2
   4257	005532	005001 				CLR	R1		; .CLEAR R1
   4258	005534					CALL	.FREAD		; .READ IT
	005534	004737 	000000G			 JSR	PC,.FREAD
   4259	005540	041620 				BIC	(SP),(R0)+	; .SP POINTS TO BIT MASK
   4260	005542	041610 				BIC	(SP),(R0)	; .R0 POINTS TO READ BLOCK
   4261	005544	005740 				TST	-(R0)		; .NOW BACK THE POINTER UP
   4262	005546	010501 				MOV	R5,R1		; .GET THE SHIFT COUNT INTO R1
   4263	005550					CALL	.TPSHI		; .AND SHIFT IT
	005550	004737 	000000G			 JSR	PC,.TPSHI
   4264	005554	052023 				BIS	(R0)+,(R3)+	; .SET THE BITS IN THE USER BUFFER
   4265	005556	051013 				BIS	(R0),(R3)	; .SO
   4266	005560	005743 				TST	-(R3)		; .BACK CALLER'S POINTER UP
   4271	005562	122225 				CMPB	(R2)+,(R5)+	; .INCREMENT READ NUMBER AND SHIFT COUNT
   4273	005564	077420 				SOB	R4,20$		; .DO THIS FOUR TIMES
   4274	005566	042763 	177600 	000002 		BIC	#177600,2(R3)	; .GET RID OF BITS HIGHER THAN 13
   4275	005574	005726 				TST	(SP)+		; CLEAR THE STACK
   4276	005576					RETURN			; RETURN TO CALLER
	005576	000207 				 RTS	PC
   4277
   4278						.DSABL	LSB
   4279
   4280					; TABLES FOR VMA BOARD READS
   4281
   4282	000474				.PSECT	DATA
   4283
   4284	000474				PCTAB:
   4285	000474	000150 				.WORD	FR.150/2	; BASE READ FOR PC REGISTER
   4286	000476	135673 				.WORD	135673		; BIT MASK   "  "     "
   4287	000500	177776 				.WORD	-^D2		; SHIFT CNT  "  "     "
   4288	000502				ABTAB:
   4289	000502	000150 				.WORD	FR.150/2	; BASE READ FOR ADDRESS BREAK REGISTER
   4290	000504	167356 				.WORD	167356		; BIT MASK   "	   "	  "	 "
   4291	000506	000000 				.WORD	0		; SHIFT CNT  "	   "	  "	 "
   4292	000510				VMATB:
   4293	000510	000154 				.WORD	FR.154/2	; BASE READ FOR VMA REGISTER
   4294	000512	135673 				.WORD	135673		; BIT MASK   "	 "     "
   4295	000514	177776 				.WORD	-^D2		; SHIFT CNT  "	 "     "
   4296	000516				VMHTB:
   4297	000516	000154 				.WORD	FR.154/2	; BASE READ FOR VMAH REGISTER
   4298	000520	167356 				.WORD	167356		; BIT MASK   "	 "	"
   4299	000522	000000 				.WORD	0		; SHIFT CNT  "	 "	"
   4300
   4301	005600				.PSECT
   4302					.TITLE	GTTIM -- INPUT AND DISPLAY DATE AND TIME MODULE 7703.04
   4303
   4304						.IDENT	"006060"
   4305
   4306					;
   4307					;                             COPYRIGHT (C) 1975, 1979 BY
   4308					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4309					;
   4310					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 109-1
.RDVXX -- KL VMA BOARD READ SUBROUTINES 7510.21

   4311					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4312					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4313					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4314					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4315					;
   4316					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4317					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4318					;       CORPORATION.
   4319					;
   4320					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4321					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4322					;
   4323					;		MODULE: INPUT AND DISPLAY DATE AND TIME
   4324					;
   4325					;		VERSION: 06-06
   4326					;
   4327					;		AUTHOR: R. BELANGER
   4328					;
   4329					;		DATE: 7703.04
   4330					;
   4331					;	THIS MODULE CONTAINS:
   4332					;
   4333					;	1) INPUT DATE AND TIME CODE
   4334					;	2) DISPLAY DATE AND TIME CODE
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 110
.GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE 7702.15

   4336					.SBTTL	.GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE 7702.15
   4337
   4338					;+
   4339					; .GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE
   4340					;
   4341					; THIS SUBROUTINE WILL EVALUATE A PREVIOUSLY INPUT ASCII STRING OF THE
   4342					; FORM "DD-MMM-YYYY" AND RETURN THE VALUE OF THE YEAR, MONTH AND DAY
   4343					; IN A THREE BYTE BLOCK.
   4344					;
   4345					; INPUT ARGUMENTS:
   4346					;
   4347					;	R0 POINTS TO A THREE BYTE DATA BLOCK
   4348					;	R5 POINTS TO THE INPUT STREAM
   4349					;
   4350					; OUTPUT ARGUMENTS:
   4351					;
   4352					;	R0 POINTS TO THE THREE BYTE DATA BLOCK
   4353					;
   4354					; ERROR CODES RETURNED:
   4355					;
   4356					;	DBT -- DATE BEFORE TODAY
   4357					;	DOR -- DATE OUT OF RANGE
   4358					;	IDF -- ILLEGAL DATE FORMAT
   4359					;	YOR -- YEAR OUT OF RANGE
   4360					;-
   4361
   4362						.MCALL	DIR$, GTIM$S
   4363
   4364	005600				.GTDAT::
   4365	005600	013737 	000000G	000000G		MOV	.IRADX,.RDXSV	; SAVE THE CURRENT RADIX
   4366	005606	012737 	000012 	000000G		MOV	#^D10,.IRADX	; SET THE RADIX TO DECIMAL
   4367	005614					PUSH	<R5,R2,R1,R0>	; SAVE CALLER'S POINTER
	005614	010546 				 MOV	R5,-(SP)
	005616	010246 				 MOV	R2,-(SP)
	005620	010146 				 MOV	R1,-(SP)
	005622	010046 				 MOV	R0,-(SP)
   4368	005624	012701 	000524'			MOV	#.DTBUF,R1	; ....TIME BUFFER POINTER TO R1
   4369	005630					GTIM$S	R1		; ....READ CURRENT DATE AND TIME
	005630	010146 				MOV	R1,-(SP)
	005632	012746 				MOV	(PC)+,-(SP)
	005634	   073 	   002 			.BYTE	59.,2
	005636	104375 				EMT	375
   4370	005640	112120 				MOVB	(R1)+,(R0)+	; ....SET DEFAULT YEAR
   4371	005642	105721 				TSTB	(R1)+		; ....ADVANCE POINTER
   4372	005644	112120 				MOVB	(R1)+,(R0)+	; ....SET DEFAULT MONTH
   4373	005646	105721 				TSTB	(R1)+		; ....ADVANCE POINTER
   4374	005650	111120 				MOVB	(R1),(R0)+	; ....SET DEFAULT DAY
   4375	005652	010002 				MOV	R0,R2		; ....SAVE POINTER TO CALLER'S BUFFER
   4376	005654	012701 	000000G			MOV	#.CIBFR,R1	; ....BUFFER POINTER TO R1
   4377	005660	010105 				MOV	R1,R5		; ....AND R5
   4378	005662	012700 	002277'			MOV	#GTDMS0,R0	; ....PROMPT FOR DATE
   4379	005666					CALL	.TYMSF		; ....FORCE IT OUT
	005666	004737 	000000G			 JSR	PC,.TYMSF
   4380	005672					CALL	.GTLIN		; ....READ THE RESPONSE
	005672	004737 	000000G			 JSR	PC,.GTLIN
   4381	005676	001467 				BEQ	35$		; ....DEFAULT IF NULL
   4382	005700					CALL	.CKARG		; ....SEE WHAT KIND OF ARGUMENT FOLLOWS
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 110-1
.GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE 7702.15

	005700	004737 	000000G			 JSR	PC,.CKARG
   4383	005704	001551 				BEQ	GTDIDF		; ....ILLEGAL IF ALPHABETIC
   4384	005706					PUSH	R5		; ....SAVE THE BUFFER POINTER
	005706	010546 				 MOV	R5,-(SP)
   4385	005710				10$:
   4386	005710	111504 				MOVB	(R5),R4		; .....LOOK AT ONE CHARACTER
   4387	005712	001407 				BEQ	20$		; .....DONE IF NULL
   4388	005714	122704 	000055 			CMPB	#'-,R4		; .....IS IT A <HYPHEN>?
   4389	005720	001002 				BNE	15$		; .....NO -- GO ON
   4390	005722	112715 	000040 			MOVB	#.SPACE,(R5)	; .....YES -- MAKE IT A <SPACE>
   4391	005726				15$:
   4392	005726	105725 				TSTB	(R5)+		; .....ADVANCE THE POINTER
   4393	005730	000767 				BR	10$		; .....AND LOOK FOR MORE
   4394						;
   4395	005732				20$:
   4396	005732					POP	R5		; .....RESTORE THE POINTER
	005732	012605 				 MOV	(SP)+,R5
   4397	005734	005046 				CLR	-(SP)		; ....CLEAR A BUFFER ON THE STACK
   4398	005736	005046 				CLR	-(SP)		; .....
   4399	005740	005046 				CLR	-(SP)		; ......
   4400	005742	010600 				MOV	SP,R0		; .......POINT TO THE BUFFER
   4401	005744					CALL	.GTNBR		; .......READ THE DAY
	005744	004737 	000000G			 JSR	PC,.GTNBR
   4402	005750	111042 				MOVB	(R0),-(R2)	; .......AND SET IT
   4403	005752					PUSH	R0		; .......SAVE THE POINTER
	005752	010046 				 MOV	R0,-(SP)
   4404	005754					CALL	.CKARG		; .......SEE IF ALPHABETIC FOLLOWS
	005754	004737 	000000G			 JSR	PC,.CKARG
   4405	005760	002523 				BLT	GTDIDF		; .......NUMERIC -- GIVE "IDF" ERROR
   4406	005762	012700 	000000G			MOV	#.MONTB,R0	; ........MONTH TABLE POINTER TO R0
   4407	005766					CALL	.TSCAN		; ........SCAN FOR THE MONTH
	005766	004737 	000000G			 JSR	PC,.TSCAN
   4408	005772	116042 	000002 			MOVB	2(R0),-(R2)	; ........STASH THE MONTH AWAY
   4409	005776					POP	R0		; ........RESTORE THE BUFFER POINTER
	005776	012600 				 MOV	(SP)+,R0
   4410	006000	112504 				MOVB	(R5)+,R4	; .......GET THE LAST CHARACTER
   4411	006002	132764 	000010 	000000G		BITB	#CH.EOC,.CHTAB(R4)
   4412	006010	001020 				BNE	30$		; .......EXIT IF E-O-C
   4413	006012					CALL	.TPCLR		; .......RESET THE BUFFER
	006012	004737 	000000G			 JSR	PC,.TPCLR
   4414	006016					CALL	.CKARG		; .......SEE IF NUMERIC FOLLOWS
	006016	004737 	000000G			 JSR	PC,.CKARG
   4415	006022	001502 				BEQ	GTDIDF		; .......GIVE "IDF" ERROR IF NOT
   4416	006024					CALL	.GTNBR		; .......READ THE YEAR
	006024	004737 	000000G			 JSR	PC,.GTNBR
   4417	006030	022710 	003554 			CMP	#^D1900,(R0)	; .......DID HE SAY 19XX?
   4418	006034	003003 				BGT	25$		; .......NO -- GO ON
   4419	006036	162710 	003554 			SUB	#^D1900,(R0)	; .......YES -- FIX IT UP
   4420	006042	002475 				BLT	GTDYOR		; .......ERROR -- YOR
   4421	006044				25$:
   4422	006044	111042 				MOVB	(R0),-(R2)	; .......SET THE YEAR - 1900
   4423	006046					CALL	.CKEOC		; .......MUST HAVE E-O-C
	006046	004737 	000000G			 JSR	PC,.CKEOC
   4424	006052				30$:
   4425	006052	062706 	000006 			ADD	#^D6,SP		; .......RESET THE STACK
   4426	006056				35$:
   4427	006056	011600 				MOV	(SP),R0		; ....RESTORE CALLER'S POINTER
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 110-2
.GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE 7702.15

   4428	006060	116002 	000001 			MOVB	1(R0),R2	; ....MONTH TO R2
   4429	006064	012701 	172452 			MOV	#^C5325,R1	; ....BIT MASK TO R1
   4430	006070	122702 	000002 			CMPB	#^D2,R2		; ....IS THIS FEBRUARY?
   4431	006074	001411 				BEQ	45$		; ....YES -- DO SPECIAL CKECKS
   4432	006076	126027 	000002 	000037 		CMPB	2(R0),#^D31	; ....NO -- HOW MANY DAYS?
   4433	006104	003046 				BGT	GTDDOR		; ....GIVE "DOR" ERROR IF .GT. ^D31
   4434	006106	002414 				BLT	50$		; ....ALL OK IF .LT. ^D31
   4435	006110				40$:
   4436	006110	006201 				ASR	R1		; ....SHIFT THE BIT MASK
   4437	006112	077202 				SOB	R2,40$		; ....BY THE MONTH
   4438	006114	103011 				BCC	50$		; ....ALL OK IF CC-C IS CLEAR
   4439	006116	000441 				BR	GTDDOR		; ....OTHERWISE GIVE "DOR" ERROR
   4440						;
   4441	006120				45$:
   4442	006120	126027 	000002 	000035 		CMPB	2(R0),#^D29	; ....HATH FEBRUARY 29 DAYS?
   4443	006126	003035 				BGT	GTDDOR		; ....NEVER MORE -- GIVE "DOR" ERROR
   4444	006130	002403 				BLT	50$		; ....ALWAYS LESS -- EXIT
   4445	006132	132710 	000003 			BITB	#3,(R0)		; ....IS THIS A LEAP YEAR?
   4446	006136	001031 				BNE	GTDDOR		; ....NO -- GIVE "DOR" ERROR
   4447	006140				50$:
   4448	006140	012701 	000524'			MOV	#.DTBUF,R1	; ....POINT TO THE DATE BUFFER
   4449	006144	122021 				CMPB	(R0)+,(R1)+	; ....SEE IF YEAR IS OK
   4450	006146	002422 				BLT	GTDDBT		; ....NO -- GIVE "DBT" ERROR
   4451	006150	003007 				BGT	55$		; ....YES -- BEYOND THIS YEAR??
   4452	006152	105721 				TSTB	(R1)+		; ....NO -- ADVANCE THE POINTER
   4453	006154	122021 				CMPB	(R0)+,(R1)+	; ....IS THE MONTH OK?
   4454	006156	002416 				BLT	GTDDBT		; ....NO -- GIVE "DBT" ERROR
   4455	006160	003003 				BGT	55$		; ....YES -- BEYOND THIS YEAR??
   4456	006162	105721 				TSTB	(R1)+		; ....NO -- ADVANCE THE POINTER
   4457	006164	121011 				CMPB	(R0),(R1)	; ....IS THE DAY OK?
   4458	006166	002412 				BLT	GTDDBT		; ....NO -- GIVE "DBT" ERROR
   4459	006170				55$:
   4460	006170					POP	<R0,R1,R2,R5>	; ....YES -- RESTORE REGISTERS
	006170	012600 				 MOV	(SP)+,R0
	006172	012601 				 MOV	(SP)+,R1
	006174	012602 				 MOV	(SP)+,R2
	006176	012605 				 MOV	(SP)+,R5
   4461	006200	013737 	000000G	000000G		MOV	.RDXSV,.IRADX	; RESET THE RADIX
   4462	006206	005737 	000000G			TST	.INCHC		; LOOK AT THE CHARACTER COUNT
   4463	006212					RETURN			; EXIT
	006212	000207 				 RTS	PC
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 111
.GTDAT -- SUBROUTINE TO INPUT THE CURRENT DATE 7702.15

   4465	006214				GTDDBT:				; +++001
   4466	006214					ERROR$	DBT		; ERROR -- DATE BEFORE TODAY
	006214	012746 	014544 			 MOV	#^RDBT,-(SP)
	006220	104400 				 TRAP	TC.ERR
   4467						;
   4468	006222				GTDDOR:				;  +++001
   4469	006222					ERROR$	DOR		; ERROR -- DATE OUT OF RANGE
	006222	012746 	015552 			 MOV	#^RDOR,-(SP)
	006226	104400 				 TRAP	TC.ERR
   4470						;
   4471	006230				GTDIDF:
   4472	006230					ERROR$	IDF		; ERROR -- ILLEGAL DATE FORMAT
	006230	012746 	034346 			 MOV	#^RIDF,-(SP)
	006234	104400 				 TRAP	TC.ERR
   4473						;
   4474	006236				GTDYOR:				;  +++001
   4475	006236					ERROR$	YOR		; ERROR -- YEAR OUT OF RANGE
	006236	012746 	117252 			 MOV	#^RYOR,-(SP)
	006242	104400 				 TRAP	TC.ERR
   4476						;
   4477
   4478	000524				.PSECT	DATA
   4479
   4480	000524				.DTBUF::
   4481	000524	000000 	000000 	000000 		.WORD	0,0,0,0,0,0,0,0
	000532	000000 	000000 	000000
	000540	000000 	000000
   4482
   4483	002277				.PSECT	MESSAG
   4484
   4485	002277				GTDMS0:
   4486	002277	   104 	   101 	   124 		.ASCIZ	%DATE: %
	002302	   105 	   072 	   040
	002305	   000
   4487
   4488	006244				.PSECT
   4489
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 112
.GTTIM -- SUBROUTINE TO INPUT A TIME VALUE 7702.15

   4491					.SBTTL	.GTTIM -- SUBROUTINE TO INPUT A TIME VALUE 7702.15
   4492
   4493					;+
   4494					; .GTTIM -- SUBROUTINE TO INPUT A TIME VALUE
   4495					;
   4496					; THIS SUBROUTINE WILL ACCEPT A TIME VALUE FROM THE CONSOLE INPUT
   4497					; DEVICE OF THE FORMAT "HH:MM" OR "HHMM", AND RETURN IT EXPRESSED
   4498					; AS SECONDS-SINCE-MIDNIGHT / 2 (SSM).
   4499					;
   4500					; INPUT ARGUMENTS:
   4501					;
   4502					;	R0 POINTS TO THE DESTINATION FOR THE VALUE
   4503					;
   4504					; OUTPUT ARGUMENTS:
   4505					;
   4506					;	R0 POINTS TO THE TIME VALUE
   4507					;	CC-Z WILL BE SET TO INDICATE NO TIME WAS SPECIFIED (DEFAULT)
   4508					;
   4509					; ERROR CODES RETURNED:
   4510					;
   4511					;	ITF -- ILLEGAL TIME FORMAT
   4512					;	TOR -- TIME OUT OF RANGE
   4513					;-
   4514
   4515	006244				.GTTIM::
   4516	006244	013737 	000000G	000000G		MOV	.IRADX,.RDXSV	; SAVE THE CURRENT RADIX
   4517	006252	012737 	000012 	000000G		MOV	#^D10,.IRADX	; SET THE INPUT RADIX TO DECIMAL
   4518	006260					PUSH	<R5,R2,R1,R0>	; SAVE CALLER'S REGISTERS
	006260	010546 				 MOV	R5,-(SP)
	006262	010246 				 MOV	R2,-(SP)
	006264	010146 				 MOV	R1,-(SP)
	006266	010046 				 MOV	R0,-(SP)
   4519	006270	012702 	177777 			MOV	#-^D1,R2	; ....SET DEFAULT ARGUMENT
   4520	006274	012700 	002306'			MOV	#GTTMS0,R0	; ....PROMPT FOR TIME
   4521	006300					CALL	.TYMSF		; ....FORCE IT OUT
	006300	004737 	000000G			 JSR	PC,.TYMSF
   4522	006304	012701 	000000G			MOV	#.CIBFR,R1	; ....BUFFER POINTER TO R1
   4523	006310	010105 				MOV	R1,R5		; ....SET UP THE BUFFER POINTER
   4524	006312					CALL	.GTLIN		; ....READ THE INPUT
	006312	004737 	000000G			 JSR	PC,.GTLIN
   4525	006316	001514 				BEQ	30$		; ....EXIT IF NULL (DEFAULT)
   4526	006320					CALL	.CKSYM		; ....GET OVER LEADING BLANKS
	006320	004737 	000000G			 JSR	PC,.CKSYM
   4527	006324	132764 	000010 	000000G		BITB	#CH.EOC,.CHTAB(R4)
   4528	006332	001106 				BNE	30$		; ....EXIT IF E-O-C
   4529	006334					CALL	.CKARG		; ....SEE WHAT FOLLOWS
	006334	004737 	000000G			 JSR	PC,.CKARG
   4530	006340	001516 				BEQ	GTTITF		; ....ERROR IF NON-NUMERIC
   4531	006342	005046 				CLR	-(SP)		; ....CLEAR A BUFFER ON THE STACK
   4532	006344	005046 				CLR	-(SP)		; .....
   4533	006346	005046 				CLR	-(SP)		; ......
   4534	006350	010600 				MOV	SP,R0		; .......POINT TO THE BUFFER
   4535	006352					CALL	.GTNBR		; .......READ HOURS
	006352	004737 	000000G			 JSR	PC,.GTNBR
   4536	006356	122704 	000072 			CMPB	#':,R4		; .......IS NEXT CHARACTER A COLON?
   4537	006362	001437 				BEQ	10$		; .......YES -- GO READ MINUTE
   4538	006364					CALL	.CKEOC		; .......NO -- MUST HAVE E-O-C
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 112-1
.GTTIM -- SUBROUTINE TO INPUT A TIME VALUE 7702.15

	006364	004737 	000000G			 JSR	PC,.CKEOC
   4539	006370	005046 				CLR	-(SP)		; .......SET UP A DIVISOR ON THE STACK
   4540	006372	005046 				CLR	-(SP)		; ........
   4541	006374					PUSH	#^D100		; .........SO
	006374	012746 	000144 			 MOV	#^D100,-(SP)
   4542	006400	010601 				MOV	SP,R1		; ..........POINT TO THE DIVISOR
   4543	006402					CALL	.TPDIV		; ..........DO THE DIVISION
	006402	004737 	000000G			 JSR	PC,.TPDIV
   4544	006406	022711 	000073 			CMP	#^D59,(R1)	; ..........IS THE REMAINDER .LT. ^D59?
   4545	006412	002474 				BLT	GTTTOR		; .......... +++001 NO -- GIVE "TOR" ERROR
   4546	006414					PUSH	(R1)		; ..........YES -- SAVE THE REMAINDER
	006414	011146 				 MOV	(R1),-(SP)
   4547	006416	022710 	000027 			CMP	#^D23,(R0)	; ...........IS THE HOUR OK?
   4548	006422	002470 				BLT	GTTTOR		; ........... +++001 NO -- GIVE "TOR" ERROR
   4549	006424	011000 				MOV	(R0),R0		; ...........YES -- GET IT
   4550	006426	012701 	000074 			MOV	#^D60,R1	; ...........MULTIPLIER TO R1
   4551	006432					CALL	$MUL		; ...........DO THE MULTIPLICATION
	006432	004737 	000000G			 JSR	PC,$MUL
   4552	006436	010100 				MOV	R1,R0		; ...........PRODUCT TO R0
   4553	006440	062600 				ADD	(SP)+,R0	; ...........COMPUTE SECONDS SINCE MIDNIGHT
   4554	006442	012701 	000036 			MOV	#^D30,R1	; ..........MULTIPLIER
   4555	006446					CALL	$MUL		; ..........DO IT
	006446	004737 	000000G			 JSR	PC,$MUL
   4556	006452	010102 				MOV	R1,R2		; ..........SAVE IT IN R2
   4557	006454	062706 	000006 			ADD	#^D6,SP		; ..........RESET THE STACK
   4558	006460	000431 				BR	20$		; .......AND EXIT
   4559						;
   4560	006462				10$:
   4561	006462	105725 				TSTB	(R5)+		; .......GET OVER THE COLON
   4562	006464	011000 				MOV	(R0),R0		; .......GET THE HOUR
   4563	006466	022700 	000027 			CMP	#^D23,R0	; .......IS THE HOUR OK?
   4564	006472	002444 				BLT	GTTTOR		; ....... +++001 NO -- GIVE "TOR" ERROR
   4565	006474	012701 	000074 			MOV	#^D60,R1	; .......CONVERT TO MINUTES
   4566	006500					CALL	$MUL		; .......SO
	006500	004737 	000000G			 JSR	PC,$MUL
   4567	006504	010102 				MOV	R1,R2		; .......STASH IT AWAY
   4568	006506	010600 				MOV	SP,R0		; .......RESET POINTER
   4569	006510					CALL	.TPCLR		; .......FLUSH THE BUFFER
	006510	004737 	000000G			 JSR	PC,.TPCLR
   4570	006514					CALL	.GTNBR		; .......READ THE NEXT NUMBER
	006514	004737 	000000G			 JSR	PC,.GTNBR
   4571	006520	011000 				MOV	(R0),R0		; .......GET THE MINUTES
   4572	006522	022700 	000073 			CMP	#^D59,R0	; .......IS THE MINUTE OK?
   4573	006526	002426 				BLT	GTTTOR		; ....... +++001 NO -- GIVE "TOR" ERROR
   4574	006530	060200 				ADD	R2,R0		; .......ADD THE HOUR
   4575	006532	012701 	000036 			MOV	#^D30,R1	; .......CONVERT TO SECONDS
   4576	006536					CALL	$MUL		; .......SO
	006536	004737 	000000G			 JSR	PC,$MUL
   4577	006542	010102 				MOV	R1,R2		; .......SAVE IT IN R2
   4578	006544				20$:
   4579	006544	062706 	000006 			ADD	#^D6,SP		; .......RESET THE STACK
   4580	006550				30$:
   4581	006550					POP	R0		; ....RESTORE R0
	006550	012600 				 MOV	(SP)+,R0
   4582	006552	010210 				MOV	R2,(R0)		; ...SET THE TIME
   4583	006554					POP	<R1,R2,R5>	; ...RESTORE REGISTERS
	006554	012601 				 MOV	(SP)+,R1
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 112-2
.GTTIM -- SUBROUTINE TO INPUT A TIME VALUE 7702.15

	006556	012602 				 MOV	(SP)+,R2
	006560	012605 				 MOV	(SP)+,R5
   4584	006562	013737 	000000G	000000G		MOV	.RDXSV,.IRADX	; RESET THE RADIX
   4585	006570	005737 	000000G			TST	.INCHC		; LOOK AT THE CHARACTER COUNT
   4586	006574					RETURN			; AND EXIT
	006574	000207 				 RTS	PC
   4587	006576				GTTITF:
   4588	006576					ERROR$	ITF		; ERROR -- ILLEGAL TIME FORMAT
	006576	012746 	035546 			 MOV	#^RITF,-(SP)
	006602	104400 				 TRAP	TC.ERR
   4589						;
   4590	006604				GTTTOR:				;  +++001
   4591	006604					ERROR$	TOR		; +++001 ERROR -- TIME OUT OF RANGE
	006604	012746 	077552 			 MOV	#^RTOR,-(SP)
	006610	104400 				 TRAP	TC.ERR
   4592						;
   4593
   4594	002306				.PSECT	MESSAG
   4595
   4596	002306				GTTMS0:
   4597	002306	   124 	   111 	   115 		.ASCIZ	%TIME: %
	002311	   105 	   072 	   040
	002314	   000
   4598
   4599	006612				.PSECT
   4600
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 113
.TYDAT -- SUBROUTINE TO TYPE A DATE 7702.16

   4602					.SBTTL	.TYDAT -- SUBROUTINE TO TYPE A DATE 7702.16
   4603
   4604					;+
   4605					; .TYDAT -- SUBROUTINE TO TYPE A DATE
   4606					;
   4607					; THIS SUBROUTINE WILL OUTPUT A DATE ON THE CONSOLE DEVICE IN THE
   4608					; FOLLOWING FORMAT: "DD-MMM-YY".
   4609					;
   4610					; INPUT ARGUMENTS:
   4611					;
   4612					;	R0 POINTS TO A THREE BYTE BLOCK CONTAINING THE DATE
   4613					;
   4614					; OUTPUT ARGUMENTS:
   4615					;
   4616					;	NONE.
   4617					; ERROR CODES RETURNED:
   4618					;
   4619					;	NONE.
   4620					;-
   4621
   4622
   4623	006612				.TYDAT::
   4624	006612					PUSH	<.ORADX,R0,R2>	; SAVE CALLER'S REGISTERS
	006612	013746 	000000G			 MOV	.ORADX,-(SP)
	006616	010046 				 MOV	R0,-(SP)
	006620	010246 				 MOV	R2,-(SP)
   4625	006622	012737 	000012 	000000G		MOV	#^D10,.ORADX	; ...SET THE RADIX TO DECIMAL
   4626	006630	010002 				MOV	R0,R2		; ...CALLER'S POINTER TO R2
   4627	006632	122222 				CMPB	(R2)+,(R2)+	; ...ADVANCE THE POINTER
   4628	006634	111200 				MOVB	(R2),R0		; ...GET THE DAY
   4629	006636					CALL	.TYELA		; ...PRINT IT
	006636	004737 	000000G			 JSR	PC,.TYELA
   4630	006642					CALL	.TYMIN		; ...AND A <DASH>
	006642	004737 	000000G			 JSR	PC,.TYMIN
   4631	006646	114200 				MOVB	-(R2),R0	; ...GET THE MONTH
   4632	006650	006300 				ASL	R0		; ...MAKE IT AN EVEN INDEX
   4633	006652	016000 	000542'			MOV	TYDMTB-2(R0),R0	; ...POINT TO THE STRING
   4634	006656					CALL	.TYMSG		; ...PRINT IT
	006656	004737 	000000G			 JSR	PC,.TYMSG
   4635	006662					CALL	.TYMIN		; ...AND A <DASH>
	006662	004737 	000000G			 JSR	PC,.TYMIN
   4636	006666	122742 	000011 			CMPB	#^D9,-(R2)	; ...'09 OR EARLIER?
   4637	006672	002404 				BLT	10$		; ...NO -- GO ON
   4638	006674	012700 	000060 			MOV	#'0,R0		; ...YES -- FORCE THE LEADING ZERO
   4639	006700					CALL	.TYCHR		; ...SO
	006700	004737 	000000G			 JSR	PC,.TYCHR
   4640	006704				10$:
   4641	006704	111200 				MOVB	(R2),R0		; ...GET THE YEAR
   4642	006706					CALL	.TYELA		; ...PRINT IT
	006706	004737 	000000G			 JSR	PC,.TYELA
   4643	006712					POP	<R2,R0,.ORADX>	; ...RESTORE THE REGISTERS
	006712	012602 				 MOV	(SP)+,R2
	006714	012600 				 MOV	(SP)+,R0
	006716	012637 	000000G			 MOV	(SP)+,.ORADX
   4644	006722					CALLR	.TYSPC		; PRINT A <SPACE> AND EXIT
	006722	000137 	000000G			 JMP	.TYSPC
   4645						;
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 113-1
.TYDAT -- SUBROUTINE TO TYPE A DATE 7702.16

   4646
   4647	000544				.PSECT	DATA
   4648
   4649	000544				TYDMTB:
   4650	000544	000000G				.WORD	JANMSG
   4651	000546	000000G				.WORD	FEBMSG
   4652	000550	000000G				.WORD	MARMSG
   4653	000552	000000G				.WORD	APRMSG
   4654	000554	000000G				.WORD	MAYMSG
   4655	000556	000000G				.WORD	JUNMSG
   4656	000560	000000G				.WORD	JULMSG
   4657	000562	000000G				.WORD	AUGMSG
   4658	000564	000000G				.WORD	SEPMSG
   4659	000566	000000G				.WORD	OCTMSG
   4660	000570	000000G				.WORD	NOVMSG
   4661	000572	000000G				.WORD	DECMSG
   4662
   4663	006726				.PSECT
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 114
.TYTIM -- TIME OUTPUT SUBROUTINE 7702.16

   4665					.SBTTL	.TYTIM -- TIME OUTPUT SUBROUTINE 7702.16
   4666
   4667					;+
   4668					; .TYTIM -- TIME OUTPUT SUBROUTINE
   4669					;
   4670					; THIS SUBROUTINE WILL PRINT THE TIME ON THE CONSOLE OUTPUT DEVICE
   4671					; IN THE FOLLOWING FORMAT: "HH:MM"
   4672					;
   4673					; INPUT ARGUMENTS:
   4674					;
   4675					;	R0 POINTS TO THE TIME VALUE TO BE PRINTED
   4676					;	   IN SECONDS-SINCE-MIDNIGHT FORMAT (SSM).
   4677					;
   4678					; OUTPUT ARGUMENTS:
   4679					;
   4680					;	NONE.
   4681					;
   4682					; ERROR CODES RETURNED:
   4683					;
   4684					;	NONE.
   4685					;-
   4686
   4687
   4688	006726				.TYTIM::
   4689	006726					PUSH	<.ORADX,R0,R1>	; SAVE CALLER'S REGISTERS
	006726	013746 	000000G			 MOV	.ORADX,-(SP)
	006732	010046 				 MOV	R0,-(SP)
	006734	010146 				 MOV	R1,-(SP)
   4690	006736	012737 	000012 	000000G		MOV	#^D10,.ORADX	; ...SET OUTPUT RADIX TO DECIMAL
   4691	006744	011000 				MOV	(R0),R0		; ...GET THE TIME IN SSM/2
   4692	006746	012701 	003410 			MOV	#^D1800,R1	; ...DIVISOR FOR HOURS
   4693	006752					CALL	$DIV		; ...COMPUTE THE HOURS
	006752	004737 	000000G			 JSR	PC,$DIV
   4694	006756					PUSH	R0		; ...SAVE THEM
	006756	010046 				 MOV	R0,-(SP)
   4695	006760	010100 				MOV	R1,R0		; ....REMAINDER TO R0
   4696	006762	012701 	000036 			MOV	#^D30,R1	; ....DIVISOR FOR MINUTES
   4697	006766					CALL	$DIV		; ....COMPUTE THE MINUTES
	006766	004737 	000000G			 JSR	PC,$DIV
   4698	006772	010001 				MOV	R0,R1		; ....SAVE THEM IN R1
   4699	006774	022716 	000011 			CMP	#^D9,(SP)	; ....0900 OR EARLIER?
   4700	007000	002404 				BLT	10$		; ....NO -- GO ON
   4701	007002	012700 	000060 			MOV	#'0,R0		; ....YES -- FORCE THE LEADING ZERO
   4702	007006					CALL	.TYCHR		; ....SO
	007006	004737 	000000G			 JSR	PC,.TYCHR
   4703	007012				10$:
   4704	007012					POP	R0		; ....GET THE HOUR
	007012	012600 				 MOV	(SP)+,R0
   4705	007014					CALL	.TYELA		; ...PRINT IT
	007014	004737 	000000G			 JSR	PC,.TYELA
   4706	007020					CALL	.TYCOL		; ...TYPE A <COLON>
	007020	004737 	000000G			 JSR	PC,.TYCOL
   4707	007024	022701 	000011 			CMP	#^D9,R1		; ...9 MINUTES OR EARLIER?
   4708	007030	002404 				BLT	20$		; ...NO -- GO ON
   4709	007032	012700 	000060 			MOV	#'0,R0		; ...YES -- FORCE THE LEADING ZERO
   4710	007036					CALL	.TYCHR		; ...SO
	007036	004737 	000000G			 JSR	PC,.TYCHR
GTTIM -- INPUT AND DISPLAY DATE	MACRO M1113  10-NOV-81 17:48  PAGE 114-1
.TYTIM -- TIME OUTPUT SUBROUTINE 7702.16

   4711	007042				20$:
   4712	007042	010100 				MOV	R1,R0		; ...GET THE MINUTE
   4713	007044					CALL	.TYELA		; ...PRINT IT
	007044	004737 	000000G			 JSR	PC,.TYELA
   4714	007050					POP	<R1,R0,.ORADX>	; ...RESTORE THE REGISTERS
	007050	012601 				 MOV	(SP)+,R1
	007052	012600 				 MOV	(SP)+,R0
	007054	012637 	000000G			 MOV	(SP)+,.ORADX
   4715	007060					CALLR	.TYSPC		; TYPE A <SPACE> AND EXIT
	007060	000137 	000000G			 JMP	.TYSPC
   4716						;
HALTC -- HALT FUNCTION MODULE 7	MACRO M1113  10-NOV-81 17:48  PAGE 115
.TYTIM -- TIME OUTPUT SUBROUTINE 7702.16

   4718					.TITLE	HALTC -- HALT FUNCTION MODULE 7707.12
   4719
   4720						.IDENT	"005000"
   4721					;
   4722					;                             COPYRIGHT (C) 1975, 1979 BY
   4723					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4724					;
   4725					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   4726					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4727					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4728					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4729					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4730					;
   4731					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4732					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4733					;       CORPORATION.
   4734					;
   4735					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4736					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4737					;
   4738					;		MODULE: HALT FUNCTION
   4739					;
   4740					;		VERSION: 03-06
   4741					;
   4742					;		AUTHOR: R. BELANGER
   4743					;
   4744					;		DATE: 7707.12
   4745					;
   4746					;	THIS MODULE CONTAINS:
   4747					;
   4748					;	1) HALT FUNCTION CODE
HALTC -- HALT FUNCTION MODULE 7	MACRO M1113  10-NOV-81 17:48  PAGE 116
.HALTC -- THE "HALT" COMMAND 7710.11

   4750					.SBTTL	.HALTC -- THE "HALT" COMMAND 7710.11
   4751
   4752					;+
   4753					; .HALTC -- THE "HALT" COMMAND
   4754					;
   4755					; THIS ROUTINE HALTS THE KL WITH THE CLOCK RUNNING. (EXAMINE
   4756					; AND DEPOSIT ARE STILL SUPPORTED).
   4757					;
   4758					; INPUT ARGUMENTS:
   4759					;
   4760					;	NONE.
   4761					;
   4762					; OUTPUT ARGUMENTS:
   4763					;
   4764					;	NONE.
   4765					;
   4766					; ERROR CODES RETURNED:
   4767					;
   4768					;	ILS -- ILLEGAL SEPARATOR CHARACTER.
   4769					;-
   4770
   4771	007064				.HALTC::
   4772	007064					CALL	.CKEOC		; CHECK E-O-C
	007064	004737 	000000G			 JSR	PC,.CKEOC
   4773	007070					CALLR	.KLSTP		; HALT THE KL AND RETURN
	007070	000137 	000000G			 JMP	.KLSTP
   4774						;
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 117
.HALTC -- THE "HALT" COMMAND 7710.11

   4776					.TITLE	INITC -- INITIALIZE COMMAND MODULE 7602.16
   4777
   4778						.IDENT	"006110"
   4779
   4780					;
   4781					;                             COPYRIGHT (C) 1975, 1979 BY
   4782					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4783					;
   4784					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   4785					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4786					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4787					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4788					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4789					;
   4790					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4791					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4792					;       CORPORATION.
   4793					;
   4794					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4795					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4796					;
   4797					;		MODULE: INITIALIZE COMMAND
   4798					;
   4799					;		VERSION: 06-11
   4800					;
   4801					;		AUTHOR: R. BELANGER
   4802					;
   4803					;		DATE: 7602.16
   4804					;
   4805					;	THIS MODULE CONTAINS:
   4806					;
   4807					;	1) INITIALIZE COMMAND CODE
   4808					;
   4809					;	MODIFIED BY A. PECKHAM 7612.10 TO DELETE REFERENCES TO .SECFL
   4810
   4811						.MCALL	ALUN$,CLEF$S,DIR$,SETF$S,SVTK$S
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 118
.INITC -- THE "INITIALIZE" COMMAND 7602.16

   4813					.SBTTL	.INITC -- THE "INITIALIZE" COMMAND 7602.16
   4814
   4815					;+
   4816					; .INITC -- THE "INITIALIZE" COMMAND
   4817					;
   4818					; THIS ROUTINE (RE)INITIALIZES THE COMMAND PARSER
   4819					;
   4820					; INPUT ARGUMENTS:
   4821					;
   4822					;	NONE.
   4823					;
   4824					; OUTPUT ARGUMENTS:
   4825					;
   4826					;	".KLFLG" IS SET UP
   4827					;
   4828					; ERROR CODES RETURNED:
   4829					;
   4830					;	NONE.
   4831					;-
   4832
   4833	007074				.INITC::
   4834	007074					CALL	.CKEOC		; CHECK FOR E-O-C
	007074	004737 	000000G			 JSR	PC,.CKEOC
   4835	007100				.INIC0::
   4836	007100	000414 				BR	.INKLF		; INIT THE PARSER AND RETURN
   4837						;
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 119
.INIT  -- INITIALIZATION SUBROUTINE 7509.26

   4839					.SBTTL	.INIT  -- INITIALIZATION SUBROUTINE 7509.26
   4840
   4841					;+
   4842					; .INIT -- SUBROUTINE TO INITIALIZE THE COMMAND PARSER.
   4843					;
   4844					; THIS SUBROUTINE CLEARS INTERNAL BUFFERS AND INITIALIZES
   4845					; THE FOLLOWING REGISTERS:
   4846					;
   4847					;	(A) ".KLFLG" -- THE KL STATUS FLAG WORD,
   4848					;	(B) ".CLKWD" -- THE KL CLOCK STATUS WORD,
   4849					;	(C) ".PSCWD" -- THE KL PARITY CONTROL WORD.
   4850					;
   4851					; INPUT ARGUMENTS:
   4852					;
   4853					;	NONE.
   4854					;
   4855					; OUTPUT ARGUMENTS:
   4856					;
   4857					;	".KLFLG" IS SET UP
   4858					;
   4859					; ERROR CODES RETURNED:
   4860					;
   4861					;	CES -- KL CLOCK ERROR STOP.
   4862					;	CFH -- CAN'T FIND KL HALT LOOP.
   4863					;	DSF -- DTE-20 STATUS FAILURE.
   4864					;	FRF -- FUNCTION READ FAILED.
   4865					;	FWF -- FUNCTION WRITE FAILED.
   4866					;-
   4867
   4868	007102				.INIT::
   4869	007102					PUSH	R0		; SAVE R0
	007102	010046 				 MOV	R0,-(SP)
   4870	007104	000257 				CCC			; .CLEAR N, Z, V, C BITS
   4871	007106	012700 	000000G			MOV	#.DFBLK,R0	; .CLEAR THE DF BUFFERS
   4872	007112				10$:
   4873	007112	005020 				CLR	(R0)+		; .CLEAR A WORD
   4874	007114	020027 	000000G			CMP	R0,#DFBEND	; .ARE WE DONE?
   4875	007120	103774 				BLO	10$		; .NO -- KEEP GOING
   4876	007122	012737 	000200 	000000G		MOV	#KF.DEF,.KLFLG	; .YES -- INIT ".KLFLG"
   4877	007130					POP	R0		; .RESTORE R0
	007130	012600 				 MOV	(SP)+,R0
   4878
   4879					;	[CONTINUED ON THE FOLLOWING PAGE]
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 120
.INKLF -- SUBROUTINE TO SET UP KL STATE WORD 7601.09

   4881					.SBTTL	.INKLF -- SUBROUTINE TO SET UP KL STATE WORD 7601.09
   4882
   4883					;+
   4884					; .INKLF -- SUBROUTINE TO SET UP THE KL STATE FLAG WORD, ".KLFLG".
   4885					;
   4886					; THIS SUBROUTINE SETS UP THE STATE OF THE FOLLOWING
   4887					; FLAG BITS IN THE KL STATE FLAG WORD, ".KLFLG":
   4888					;
   4889					;	(A) "KF.CLK" -- KL CLOCK RUNNING FLAG,
   4890					;	(B) "KF.RUN" -- KL RUN FLOP SET FLAG,
   4891					;	(C) "KF.KLO" -- KL OPCODE ENABLED FLAG.
   4892					;
   4893					; .INKLF MAY BE CALLED DIRECTLY AS DESCRIBED IN THE CALLING SEQUENCE,
   4894					; OR BY ".INIT" WHICH FALLS INTO ".INKLF".
   4895					;
   4896					; INPUT ARGUMENTS:
   4897					;
   4898					;	NONE.
   4899					;
   4900					; OUTPUT ARGUMENTS:
   4901					;
   4902					;	".KLFLG" IS SET UP.
   4903					;
   4904					; ERROR CODES RETURNED:
   4905					;
   4906					;	CES -- KL CLOCK ERROR STOP.
   4907					;	CFH -- CAN'T FIND KL HALT LOOP.
   4908					;	DSF -- DTE-20 STATUS FAILURE.
   4909					;	DTC -- DTE-20 CONFUSED.
   4910					;	FRF -- FUNCTION READ FAILED.
   4911					;	FWF -- FUNCTION WRITE FAILED.
   4912					;-
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 121
.INKLF -- SUBROUTINE TO SET UP KL STATE WORD 7601.09

   4914	007132				.INKLF::
   4915	007132					SETF$S	#E.FHTO		; SET THE HALT TIMEOUT EVENT FLAG
	007132	012746 	000001 			MOV	#E.FHTO,-(SP)
	007136	012746 				MOV	(PC)+,-(SP)
	007140	   041 	   002 			.BYTE	33.,2
	007142	104375 				EMT	375
   4916	007144	103461 				BCS	60$		; ERROR IF CC-C IS SET
   4918	007146	005737 	000000G			TST	.KLERQ		; [5.1006]KL CRASH?
   4919	007152	001055 				BNE	50$		; [5.1006]YES -- EXIT
   4921	007154					PUSH	<R0,R1,R2,R3>	; NO -- SAVE CALLER'S REGISTERS
	007154	010046 				 MOV	R0,-(SP)
	007156	010146 				 MOV	R1,-(SP)
	007160	010246 				 MOV	R2,-(SP)
	007162	010346 				 MOV	R3,-(SP)
   4922	007164					CALL	.DTSTA		; ....READ THE DTE-20 STATUS REGISTER
	007164	004737 	000000G			 JSR	PC,.DTSTA
   4923	007170	032700 	000010 			BIT	#ST.MOD,R0	; ....IS THE DTE-20 PRIVILEGED?
   4925	007174	001047 				BNE	INIDNP		; ....UGH, BLETCH -- NO
   4927	007176					CALL	.CESCK		; ....YES -- SEE IF CLOCK ERROR STOP IS UP
	007176	004737 	000000G			 JSR	PC,.CESCK
   4928	007202	012702 	000000G			MOV	#.KLFLG,R2	; ....FLAG POINTER TO R2
   4929	007206	042712 	140000 			BIC	#KF.CLK!KF.RUN,(R2)
   4930									; ....CLEAR THE CLOCK AND RUNNING FLAGS
   4931	007212	005037 	000000G			CLR	.EDKLX		; ....RESET THE ADDRESS TO ZERO
   4932	007216	005037 	000002G			CLR	.EDKLX+2	; ....
   4933	007222	012700 	000200 			MOV	#ED.PHY,R0	; ....PHYSICAL REFERENCE
   4934	007226	012701 	000574'			MOV	#.INEXT,R1	; ....POINT TO DATA BLOCK
   4935	007232					CALL	.EXKLM		; ....EXAMINE KL MEMORY
	007232	004737 	000000G			 JSR	PC,.EXKLM
   4936	007236	052712 	100600 			BIS	#KF.CON!KF.KLO!KF.CLK,(R2) ;*
   4937									; ....SET THE CLOCK RUNNING FLAG
   4938	007242	012703 	000144 			MOV	#^D100,R3	; ....LOOP COUNT TO R3
   4939	007246				10$:
   4940	007246					CALL	.DTDW1		; ....READ DIAG WORD 1
	007246	004737 	000000G			 JSR	PC,.DTDW1
   4941	007252	032700 	002000 			BIT	#D1.RUN,R0	; ....IS RUN ON?
   4945	007256	001002 				BNE	20$		; ....YES -- GO ON
   4946	007260	077306 				SOB	R3,10$		; ....NO -- LOOP TILL COUNT EXHAUSTED
   4947	007262	000405 				BR	30$		; ....CAN'T FIND IT, GIVE UP
   4948						;
   4949
   4950					;	[CONTINUED ON THE FOLLOWING PAGE]
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 122
.INKLF -- SUBROUTINE TO SET UP KL STATE WORD 7601.09

   4952					;	[CONTINUED FROM THE PREVIOUS PAGE]
   4953
   4954	007264				20$:
   4955	007264	032700 	001000 			BIT	#D1.HLP,R0	; ....IS THE HALT LOOP THERE TOO?
   4957	007270	001014 				BNE	INIDTC		; ....YES -- GIVE "DTC" ERROR
   4959	007272	052712 	040000 			BIS	#KF.RUN,(R2)	; ....NO -- FOUND IT OK, SET THE FLAG
   4960	007276				30$:
   4974	007276					POP	<R3,R2,R1,R0>	; ....RESTORE CALLER'S REGISTERS
	007276	012603 				 MOV	(SP)+,R3
	007300	012602 				 MOV	(SP)+,R2
	007302	012601 				 MOV	(SP)+,R1
	007304	012600 				 MOV	(SP)+,R0
   4975	007306				50$:	RETURN			; TO CALLER
	007306	000207 				 RTS	PC
   4976	007310				60$:
   4977	007310	000137 	000000G			JMP	.EXITP		; ERROR EXIT
   4978						;
   4979	007314				INIDNP:
   4980	007314					ERROR$	DNP		; ERROR -- DTE-20 NOT PRIVILEGED
	007314	012746 	015500 			 MOV	#^RDNP,-(SP)
	007320	104400 				 TRAP	TC.ERR
   4981						;
   4982	007322				INIDTC:
   4983	007322					ERROR$	DTC		; ERROR --DTE-20 CONFUSED
	007322	012746 	016043 			 MOV	#^RDTC,-(SP)
	007326	104400 				 TRAP	TC.ERR
   4984						;
   4985
   4986	000574				.PSECT	DATA
   4987
   4988	000574				.INEXT:
   4989	000574	000000G				.WORD	.EDKLX		; ADDRESS 0
   4990	000576	000000G				.WORD	.EXBFR		; PLACE FOR DATA
   4991
   4992	007330				.PSECT
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 123
.INICP -- INITIALIZE THE COMMAND PARSER 7601.21

   4994					.SBTTL	.INICP -- INITIALIZE THE COMMAND PARSER 7601.21
   4995
   4996					;+
   4997					; .INICP -- ROUTINE TO INTIALIZE THE COMMAND PARSER.
   4998					;
   4999					; THIS SUBROUTINE WILL INITIALIZE THE RSX20F INTERFACE TO THE COMMAND
   5000					; PARSER. THE CONSOLE INPUT AND OUTPUT DEVICES ARE ASSIGNED AND ATTACHED,
   5001					; THE SST TRAPS ARE ENABLED, AND THE EVENT FLAGS ARE CLEARED.
   5002					;
   5003					; INPUT ARGUMENTS:
   5004					;
   5005					;	NONE.
   5006					;
   5007					; OUTPUT ARGUMENTS:
   5008					;
   5009					;	NONE.
   5010					;
   5011					; ERROR CODES RETURNED:
   5012					;
   5013					;	IF THE SST VECTORS CANNOT BE INITIALIZED THE PARSER EXITS.
   5014					;	IF THE CONSOLE OUTPUT DEVICE CANNOT BE ASSIGNED, THE PARSER EXITS.
   5015					;	IF THE CONSOLE OUTPUT DEVICE CANNOT BE ASSIGNED, THE PARSER EXITS.
   5016					;	IF THE CONSOLE DEVICE CANNOT BE ATTACHED, THE PARSER EXITS.
   5017					;-
   5018
   5019	007330				.INICP::
   5020	007330	010637 	000000G			MOV	SP,.SVESP	; INIT THE STACK POINTER
   5021	007334	005005 				CLR	R5		; CLEAR THE GPR'S
   5022	007336	005004 				CLR	R4
   5023	007340	005003 				CLR	R3
   5024	007342	005002 				CLR	R2
   5025	007344	005001 				CLR	R1
   5026	007346	005000 				CLR	R0
   5027	007350					SVTK$S	#.SSTTB,#SSTLEN	; INIT SST'S
	007350	012746 	000000G			MOV	#SSTLEN,-(SP)
	007354	012746 	000000G			MOV	#.SSTTB,-(SP)
	007360	012746 				MOV	(PC)+,-(SP)
	007362	   071 	   003 			.BYTE	57.,3
	007364	104375 				EMT	375
   5028	007366	103452 				BCS	10$		; DIE IF WE CAN'T DO THAT MUCH
   5029	007370					DIR$	#.ASCOD		; ASSIGN THE CONSOLE OUTPUT DEVICE
	007370	012746 	000026'			MOV	#.ASCOD,-(SP)
	007374	104375 				EMT	375
   5030	007376	103446 				BCS	10$		; DIE IF WE CAN'T DO THAT, EITHER
   5031	007400					DIR$	#.ASCID		; ASSIGN THE CONSOLE INPUT DEVICE
	007400	012746 	000016'			MOV	#.ASCID,-(SP)
	007404	104375 				EMT	375
   5032	007406	103442 				BCS	10$		; GIVE ERROR TRAP IF CC-C IS SET
   5033	007410					DIR$	#.ASLST		; [5.1000]ASSIGN LP DEVICE
	007410	012746 	000036'			MOV	#.ASLST,-(SP)
	007414	104375 				EMT	375
   5034
   5035					;	[CONTINUED ON THE FOLLOWING PAGE]
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 124
.INICP -- INITIALIZE THE COMMAND PARSER 7601.21

   5037					; 	[CONTINUED FROM THE PREVIOUS PAGE]
   5038
   5039	007416					CLEF$S	#E.FCTC		; CLEAR CONTROL-C EVENT FLAG
	007416	012746 	000000G			MOV	#E.FCTC,-(SP)
	007422	012746 				MOV	(PC)+,-(SP)
	007424	   037 	   002 			.BYTE	31.,2
	007426	104375 				EMT	375
   5040	007430					CLEF$S	#E.FHTO		; CLEAR HALT TIMEOUT EVENT FLAG
	007430	012746 	000001 			MOV	#E.FHTO,-(SP)
	007434	012746 				MOV	(PC)+,-(SP)
	007436	   037 	   002 			.BYTE	31.,2
	007440	104375 				EMT	375
   5041	007442					CLEF$S	#E.FCID		; CLEAR CONSOLE INPUT DONE EVENT FLAG
	007442	012746 	000002 			MOV	#E.FCID,-(SP)
	007446	012746 				MOV	(PC)+,-(SP)
	007450	   037 	   002 			.BYTE	31.,2
	007452	104375 				EMT	375
   5042	007454					SETF$S	#E.FCOD		; SET CONSOLE OUTPUT DONE EVENT FLAG
	007454	012746 	000003 			MOV	#E.FCOD,-(SP)
	007460	012746 				MOV	(PC)+,-(SP)
	007462	   041 	   002 			.BYTE	33.,2
	007464	104375 				EMT	375
   5044	007466					SETF$S	#E.FLOD		; SET LIST DEVICE OUTPUT DONE EVENT FLAG
	007466	012746 	000005 			MOV	#E.FLOD,-(SP)
	007472	012746 				MOV	(PC)+,-(SP)
	007474	   041 	   002 			.BYTE	33.,2
	007476	104375 				EMT	375
   5046	007500					CALL	.TCRLF		; INIT CONSOLE
	007500	004737 	000000G			 JSR	PC,.TCRLF
   5047	007504					CALL	.INIC0		; INIT ".KLFLG"
	007504	004737 	007100'			 JSR	PC,.INIC0
   5048	007510	000177 	000000G			JMP	@.STRTV		; START THE PARSER
   5049						;
   5050	007514				10$:
   5051	007514					CALLR	.EXITP		; EXIT GRACEFULLY
	007514	000137 	000000G			 JMP	.EXITP
   5052						;
INITC -- INITIALIZE COMMAND MOD	MACRO M1113  10-NOV-81 17:48  PAGE 125
.INICP -- INITIALIZE THE COMMAND PARSER 7601.21

   5054					; ASSIGN CONSOLE INPUT DEVICE
   5055
   5056	000016				.PSECT	DPBS
   5057
   5058	000016				.ASCID::
   5062	000016					ALUN$	CIDLUN,TT,0
	000016	   007 	   004 			.BYTE	7,4
	000020	000001 				.WORD	CIDLUN
	000022	   124 				.ASCII	/T/
	000023	   124 				.ASCII	/T/
	000024	000000 				.WORD	0
   5064
   5065					; ASSIGN CONSOLE OUTPUT DEVICE
   5066
   5067	000026				.ASCOD::
   5071	000026					ALUN$	CODLUN,TT,0
	000026	   007 	   004 			.BYTE	7,4
	000030	000002 				.WORD	CODLUN
	000032	   124 				.ASCII	/T/
	000033	   124 				.ASCII	/T/
	000034	000000 				.WORD	0
   5073
   5074					; ASSIGN LINEPRINTER DEVICE
   5075
   5076	000036				.ASLST::
   5077	000036					ALUN$	LSTLUN,LP,0
	000036	   007 	   004 			.BYTE	7,4
	000040	000003 				.WORD	LSTLUN
	000042	   114 				.ASCII	/L/
	000043	   120 				.ASCII	/P/
	000044	000000 				.WORD	0
   5078
   5079	007520				.PSECT
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 127
.INICP -- INITIALIZE THE COMMAND PARSER 7601.21

   5082					.TITLE	KLEDEF -- KLERR SNAPSHOT DEFAULT COMMANDS
   5083
   5084						.IDENT	"006270"
   5085
   5086					;
   5087					;                             COPYRIGHT (C) 1979 BY
   5088					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5089					;
   5090					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5091					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5092					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5093					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5094					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5095					;
   5096					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5097					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5098					;       CORPORATION.
   5099					;
   5100					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5101					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5102					;
   5103					;		MODULE: KLERR DEFAULT COMMANDS
   5104					;
   5105					;		VERSION: 06-27
   5106					;
   5107					;		AUTHOR: K. LEFEBVRE
   5108					;
   5109					;		DATE: 12-DEC-79
   5110					;
   5111					;		EDIT HISTORY
   5112					;
   5113					; SL9160  16-SEP-80	S. LEAPLINE	DON'T DO TAKE IF KL HALTED
   5114					;
   5115					.MACRO	DEFCMD	NUM,COMMAND
   5116
   5117					.PSECT	DATA
   5118						.WORD	CMD'NUM
   5119
   5120					.PSECT	MESSAG
   5121					CMD'NUM:.ASCIZ	%COMMAND%
   5122
   5123					.PSECT	DATA
   5124
   5125					.ENDM	DEFCMD
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 128
.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS

   5127					.SBTTL	.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS
   5128
   5129					;+
   5130					; .KLE -- ROUTINE TO RETURN DEFAULT KLERR SNAPSHOT COMMANDS
   5131					;
   5132					; THIS ROUTINE CONTAINS BUILT INTO IT THE DEFAULT KLERR SNAPSHOT
   5133					; COMMANDS THAT ARE EXECUTED ANYTIME THE KL CRASHES. THEY ARE
   5134					; ASSEMBLED IN TO MAKE IT DIFFICULT FOR SITES TO MODIFY THEM AND
   5135					; CORRUPT THE SNAPSHOT.
   5136					;
   5137					;		THIS ROUTINE ADDED FOR TCO 4.1.1049
   5138					;
   5139					; INPUT ARGUMENTS:
   5140					;
   5141					;	NONE
   5142					;
   5143					; OUTPUT ARGUMENTS:
   5144					;
   5145					;	NONE
   5146					;
   5147					; ERROR CODES RETURNED:
   5148					;
   5149					;	NONE
   5150					;-
   5151
   5153	007520				.KLE::
   5154	007520					PUSH	<R1,R0>		; SAVE REGISTERS
	007520	010146 				 MOV	R1,-(SP)
	007522	010046 				 MOV	R0,-(SP)
   5155	007524	012701 	000000G			MOV	#.CIBFR,R1	; INPUT BUFFER POINTER
   5156	007530	105737 	000000G			TSTB	.KLEVL		; POINTER VALID FLAG (FOR OVERLAY)
   5157	007534	001005 				BNE	5$		; YES -- GET COMMAND
   5158	007536	012737 	000600'	000000G		MOV	#KLETAB,.KLEPT	; NO -- SET POINTER
   5159	007544	105237 	000000G			INCB	.KLEVL		; SET POINTER VALID
   5160	007550	013700 	000000G		5$:	MOV	.KLEPT,R0	; CURRENT COMMAND POINTER
   5161	007554	062737 	000002 	000000G		ADD	#2,.KLEPT	; UPDATE POINTER
   5162	007562	011000 				MOV	(R0),R0		; GET COMMAND ADDRESS
   5163	007564	001412 				BEQ	30$		; ALL COMMANDS DONE
   5164	007566	112021 			10$:	MOVB	(R0)+,(R1)+	; MOVE COMMAND TO INPUT BUFFER
   5165	007570	001376 				BNE	10$		; DONE?
   5166	007572	005301 				DEC	R1		; YES -- REMOVE LAST NULL
   5167	007574	162701 	000000G			SUB	#.CIBFR,R1	; GET COMMAND LENGTH
   5168	007600	010137 	000002G			MOV	R1,.CISTS+2	; SAVE LENGTH
   5169	007604				20$:	POP	<R0,R1>		; RESTORE REGISTERS
	007604	012600 				 MOV	(SP)+,R0
	007606	012601 				 MOV	(SP)+,R1
   5170	007610					RETURN			; EXIT
	007610	000207 				 RTS	PC
   5171	007612	132737 	000000G	000000G	30$:	BITB	#M.TAKP,.MISC	; HAVE WE ALREADY DONE PARSER.CMD ?
   5172	007620	001014 				BNE	35$		; BRANCH IF YES
   5173	007622	105737 	000000G			TSTB	.ATOTAK		; SHOULD WE DO THE TAKE OF PARSER.CMD ?
   5174	007626	001011 				BNE	35$		; BRANCH IF NOT
   5175	007630	152737 	000000G	000000G		BISB	#M.TAKP,.MISC	; SAY WE HAVE DONE PARSER.CMD ALREADY
   5176	007636	012737 	000656'	000000G		MOV	#TAKTAB,.KLEPT	; [SL9160] ADDRESS OF THE TAKE TABLE
   5177	007644	105237 	000000G			INCB	.KLEVL		; [SL9160] SET COMMAND VALID FLAG
   5178	007650	000737 				BR	5$		; [SL9160] DO THE TAKE
   5179	007652	042737 	000000G	000000G	35$:	BIC	#M.TAKP,.MISC	; [SL9160] CLEAR THE TAKE FLAG
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 128-1
.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS

   5180	007660	005037 	000000G			CLR	.KLEDF		; CLEAR DEFAULT COMMAND FLAG
   5181	007664	012700 	002315'			MOV	#EOSMSG,R0	; END-OF-SNAPSHOT MESSAGE PTR
   5182	007670					CALL	.TYMSG		; TYPE IT
	007670	004737 	000000G			 JSR	PC,.TYMSG
   5183	007674	005037 	000002G			CLR	.CISTS+2	; CLEAR COMMAND LENGTH
   5184	007700	105737 	000000G			TSTB	.KLSNP		; SNAPSHOT COMMAND IN PROGRESS?
   5185	007704	001404 				BEQ	40$		; NO -- GO ON
   5186	007706	005037 	000000G			CLR	.KLERQ		; YES -- CLEAR SNAPSHOT FLAG
   5187	007712	105037 	000000G			CLRB	.KLSNP		; SAY SNAPSHOT COMMAND DONE
   5188	007716	032737 	000000G	000000G	40$:	BIT	#KL.REQ,.KLIWD	; KLI REQUESTED
   5189	007724	001727 				BEQ	20$		; NO -- GET INPUT FROM CTY
   5190	007726					CALL	.TCRLF		; YES -- OUTPUT EOS
	007726	004737 	000000G			 JSR	PC,.TCRLF
   5191	007732					CALLR	.EXITP		; EXIT TO KLI
	007732	000137 	000000G			 JMP	.EXITP
   5192
   5193	002315				.PSECT	MESSAG
   5194
   5195	002315				EOSMSG:
   5196	002315	   040 	   074 	   105 		.ASCIZ	% <END OF SNAPSHOT> %
	002320	   116 	   104 	   040
	002323	   117 	   106 	   040
	002326	   123 	   116 	   101
	002331	   120 	   123 	   110
	002334	   117 	   124 	   076
	002337	   040 	   000
   5197
   5198	000600				.PSECT	DATA
   5199
   5200
   5201	000600				KLETAB::
   5202	000600					DEFCMD	1,<SET OUTPUT LOG>
	000600	002341'				.WORD	CMD1
	002341	   123 	   105 	   124 	CMD1:.ASCIZ	%SET OUTPUT LOG%
	002344	   040 	   117 	   125
	002347	   124 	   120 	   125
	002352	   124 	   040 	   114
	002355	   117 	   107 	   000
   5203	000602					DEFCMD	1A,<EXAMINE KL>
	000602	002360'				.WORD	CMD1A
	002360	   105 	   130 	   101 	CMD1A:.ASCIZ	%EXAMINE KL%
	002363	   115 	   111 	   116
	002366	   105 	   040 	   113
	002371	   114 	   000
   5204	000604					DEFCMD	1B,<CLEAR OUTPUT TTY>
	000604	002373'				.WORD	CMD1B
	002373	   103 	   114 	   105 	CMD1B:.ASCIZ	%CLEAR OUTPUT TTY%
	002376	   101 	   122 	   040
	002401	   117 	   125 	   124
	002404	   120 	   125 	   124
	002407	   040 	   124 	   124
	002412	   131 	   000
   5205	000606					DEFCMD	1C,<SET CONSOLE MAINTENANCE>
	000606	002414'				.WORD	CMD1C
	002414	   123 	   105 	   124 	CMD1C:.ASCIZ	%SET CONSOLE MAINTENANCE%
	002417	   040 	   103 	   117
	002422	   116 	   123 	   117
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 128-2
.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS

	002425	   114 	   105 	   040
	002430	   115 	   101 	   111
	002433	   116 	   124 	   105
	002436	   116 	   101 	   116
	002441	   103 	   105 	   000
   5206	000610					DEFCMD	1D,<SHOW HARDWARE>
	000610	002444'				.WORD	CMD1D
	002444	   123 	   110 	   117 	CMD1D:.ASCIZ	%SHOW HARDWARE%
	002447	   127 	   040 	   110
	002452	   101 	   122 	   104
	002455	   127 	   101 	   122
	002460	   105 	   000
   5207	000612					DEFCMD	2,<EXAMINE DTE>
	000612	002462'				.WORD	CMD2
	002462	   105 	   130 	   101 	CMD2:.ASCIZ	%EXAMINE DTE%
	002465	   115 	   111 	   116
	002470	   105 	   040 	   104
	002473	   124 	   105 	   000
   5208	000614					DEFCMD	3,<FREAD 100:177>
	000614	002476'				.WORD	CMD3
	002476	   106 	   122 	   105 	CMD3:.ASCIZ	%FREAD 100:177%
	002501	   101 	   104 	   040
	002504	   061 	   060 	   060
	002507	   072 	   061 	   067
	002512	   067 	   000
   5209	000616					DEFCMD	3A,<WHAT AC>
	000616	002514'				.WORD	CMD3A
	002514	   127 	   110 	   101 	CMD3A:.ASCIZ	%WHAT AC%
	002517	   124 	   040 	   101
	002522	   103 	   000
   5210	000620					DEFCMD	4,<SWEEP>
	000620	002524'				.WORD	CMD4
	002524	   123 	   127 	   105 	CMD4:.ASCIZ	%SWEEP%
	002527	   105 	   120 	   000
   5211	000622					DEFCMD	4A,<SET AC 0>
	000622	002532'				.WORD	CMD4A
	002532	   123 	   105 	   124 	CMD4A:.ASCIZ	%SET AC 0%
	002535	   040 	   101 	   103
	002540	   040 	   060 	   000
   5212	000624					DEFCMD	5,<XCT CONI 0,15!	CONI APR,15>
	000624	002543'				.WORD	CMD5
	002543	   130 	   103 	   124 	CMD5:.ASCIZ	%XCT CONI 0,15!	CONI APR,15%
	002546	   040 	   103 	   117
	002551	   116 	   111 	   040
	002554	   060 	   054 	   061
	002557	   065 	   041 	   011
	002562	   103 	   117 	   116
	002565	   111 	   040 	   101
	002570	   120 	   122 	   054
	002573	   061 	   065 	   000
   5213	000626					DEFCMD	5A,<EXAMINE TEN 15>
	000626	002576'				.WORD	CMD5A
	002576	   105 	   130 	   101 	CMD5A:.ASCIZ	%EXAMINE TEN 15%
	002601	   115 	   111 	   116
	002604	   105 	   040 	   124
	002607	   105 	   116 	   040
	002612	   061 	   065 	   000
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 128-3
.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS

   5214	000630					DEFCMD	6,<XCT BLKI 4,15!	RDERA>
	000630	002615'				.WORD	CMD6
	002615	   130 	   103 	   124 	CMD6:.ASCIZ	%XCT BLKI 4,15!	RDERA%
	002620	   040 	   102 	   114
	002623	   113 	   111 	   040
	002626	   064 	   054 	   061
	002631	   065 	   041 	   011
	002634	   122 	   104 	   105
	002637	   122 	   101 	   000
   5215	000632					DEFCMD	6A,<EXAMINE TEN 15>
	000632	002642'				.WORD	CMD6A
	002642	   105 	   130 	   101 	CMD6A:.ASCIZ	%EXAMINE TEN 15%
	002645	   115 	   111 	   116
	002650	   105 	   040 	   124
	002653	   105 	   116 	   040
	002656	   061 	   065 	   000
   5216	000634					DEFCMD	7,<XCT CONI 4,15!	CONI PI,15>
	000634	002661'				.WORD	CMD7
	002661	   130 	   103 	   124 	CMD7:.ASCIZ	%XCT CONI 4,15!	CONI PI,15%
	002664	   040 	   103 	   117
	002667	   116 	   111 	   040
	002672	   064 	   054 	   061
	002675	   065 	   041 	   011
	002700	   103 	   117 	   116
	002703	   111 	   040 	   120
	002706	   111 	   054 	   061
	002711	   065 	   000
   5217	000636					DEFCMD	7A,<EXAMINE TEN 15>
	000636	002713'				.WORD	CMD7A
	002713	   105 	   130 	   101 	CMD7A:.ASCIZ	%EXAMINE TEN 15%
	002716	   115 	   111 	   116
	002721	   105 	   040 	   124
	002724	   105 	   116 	   040
	002727	   061 	   065 	   000
   5218	000640					DEFCMD	10,<XCT DATAI 10,15!	DATAI PAG,15>
	000640	002732'				.WORD	CMD10
	002732	   130 	   103 	   124 	CMD10:.ASCIZ	%XCT DATAI 10,15!	DATAI PAG,15%
	002735	   040 	   104 	   101
	002740	   124 	   101 	   111
	002743	   040 	   061 	   060
	002746	   054 	   061 	   065
	002751	   041 	   011 	   104
	002754	   101 	   124 	   101
	002757	   111 	   040 	   120
	002762	   101 	   107 	   054
	002765	   061 	   065 	   000
   5219	000642					DEFCMD	10B,<EXAMINE TEN 15>
	000642	002770'				.WORD	CMD10B
	002770	   105 	   130 	   101 	CMD10B:.ASCIZ	%EXAMINE TEN 15%
	002773	   115 	   111 	   116
	002776	   105 	   040 	   124
	003001	   105 	   116 	   040
	003004	   061 	   065 	   000
   5220	000644					DEFCMD	11,<XCT CONI 10,15!	CONI PAG,15>
	000644	003007'				.WORD	CMD11
	003007	   130 	   103 	   124 	CMD11:.ASCIZ	%XCT CONI 10,15!	CONI PAG,15%
	003012	   040 	   103 	   117
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 128-4
.KLE -- ROUTINE TO RETURN DEFAULT KLERR COMMANDS

	003015	   116 	   111 	   040
	003020	   061 	   060 	   054
	003023	   061 	   065 	   041
	003026	   011 	   103 	   117
	003031	   116 	   111 	   040
	003034	   120 	   101 	   107
	003037	   054 	   061 	   065
	003042	   000
   5221	000646					DEFCMD	11A,<EXAMINE TEN 15>
	000646	003043'				.WORD	CMD11A
	003043	   105 	   130 	   101 	CMD11A:.ASCIZ	%EXAMINE TEN 15%
	003046	   115 	   111 	   116
	003051	   105 	   040 	   124
	003054	   105 	   116 	   040
	003057	   061 	   065 	   000
   5222	000650					DEFCMD	12,<SET OUTPUT TTY>
	000650	003062'				.WORD	CMD12
	003062	   123 	   105 	   124 	CMD12:.ASCIZ	%SET OUTPUT TTY%
	003065	   040 	   117 	   125
	003070	   124 	   120 	   125
	003073	   124 	   040 	   124
	003076	   124 	   131 	   000
   5223	000652					DEFCMD	13,<CLEAR OUTPUT LOG>
	000652	003101'				.WORD	CMD13
	003101	   103 	   114 	   105 	CMD13:.ASCIZ	%CLEAR OUTPUT LOG%
	003104	   101 	   122 	   040
	003107	   117 	   125 	   124
	003112	   120 	   125 	   124
	003115	   040 	   114 	   117
	003120	   107 	   000
   5224	000654	000000 				.WORD	0
   5225	000656				TAKTAB::
   5226	000656					DEFCMD	14,<TAKE>
	000656	003122'				.WORD	CMD14
	003122	   124 	   101 	   113 	CMD14:.ASCIZ	%TAKE%
	003125	   105 	   000
   5227	000660	000000 				.WORD	0
   5228	007736				.PSECT
KLEDEF -- KLERR SNAPSHOT DEFAUL	MACRO M1113  10-NOV-81 17:48  PAGE 129
.SNAP -- ROUTINE TO MANUALLY PERFORM A SNAPSHOT

   5231					.SBTTL	.SNAP -- ROUTINE TO MANUALLY PERFORM A SNAPSHOT
   5232
   5233					;+
   5234					; .SNAP -- ROUTINE TO MANUALLY TAKE A KL SNAPSHOT
   5235					;
   5236					; THIS ROUTINE WILL SET UP THE CONTROL FLAGS THAT WILL CAUSE THE PARSER
   5237					; TO AT IN THE KLERR FUNCTION OF TAKING A SNAPSHOT.
   5238					;
   5239					;		THIS ROUTINE ADDED FOR TCO 4.1.1049
   5240					;
   5241					; INPUT ARGUMENTS:
   5242					;
   5243					;	NONE
   5244					;
   5245					; OUTPUT ARGUMENTS:
   5246					;
   5247					;	NONE
   5248					;
   5249					; ERROR CODES RETURNED:
   5250					;
   5251					;	NONE
   5252					;-
   5253
   5255	007736				.SNAP::
   5256	007736					CALL	.CKEOC		; MUST HAVE E-O-C
	007736	004737 	000000G			 JSR	PC,.CKEOC
   5257	007742	005237 	000000G			INC	.KLERQ		; SET FLAG THAT SAYS SNAPSHOT REQUIRED
   5258	007746	005237 	000000G			INC	.KLEDF		; SET FLAG THAT CAUSES DEFAULT COMMANDS
   5259	007752	105037 	000000G			CLRB	.KLEVL		; CLEAR DEFAULT COMMAND VALID FLAG
   5260	007756	105237 	000000G			INCB	.KLSNP		; SAY SNAPSHOT COMMAND IN PROGRESS
   5261	007762					RETURN			; DONE
	007762	000207 				 RTS	PC
   5262
MARKC -- KL MARK/UNMARK-MICROCO	MACRO M1113  10-NOV-81 17:48  PAGE 131
.SNAP -- ROUTINE TO MANUALLY PERFORM A SNAPSHOT

   5266					.TITLE	MARKC -- KL MARK/UNMARK-MICROCODE COMMAND MODULE 7910.19
   5267
   5268						.IDENT	"006130"
   5269
   5270					;
   5271					;                             COPYRIGHT (C) 1975, 1979 BY
   5272					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5273					;
   5274					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5275					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5276					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5277					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5278					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5279					;
   5280					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5281					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5282					;       CORPORATION.
   5283					;
   5284					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5285					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5286					;
   5287					;
   5288					;		MODULE: KL CRAM DISPATCH FIELD READ
   5289					;
   5290					;		VERSION: 06-13
   5291					;
   5292					;		AUTHOR: R. BELANGER
   5293					;
   5294					;		DATE: 7910.19
   5295					;
   5296					;	THIS MODULE CONTAINS:
   5297					;
   5298					;	1) MARK MICROCODE COMMAND
   5299					;	2) UNMARK MICROCODE COMMAND
MARKC -- KL MARK/UNMARK-MICROCO	MACRO M1113  10-NOV-81 17:48  PAGE 132
.MARKC -- THE "MARK/UNMARK-MICROCODE" COMMAND 7910.19

   5301					.SBTTL	.MARKC -- THE "MARK/UNMARK-MICROCODE" COMMAND 7910.19
   5302
   5303					;+
   5304					; .MARKC -- THE "MARK-MICROCODE" COMMAND
   5305					; .UMRKC -- THE "UNMARK-MICROCODE" COMMAND
   5306					;
   5307					; THESE SUBROUTINES WILL EITHER MARK OR UNMARK A SINGLE LOCATION IN THE
   5308					; KL CRAM.  NO CHECK IS MADE TO SEE WHETHER OR NOT THE LOCATION IS ALREADY
   5309					; IN THE DESIRED STATE; THE COMMAND IS SIMPLY EXECUTED
   5310					;
   5311					; INPUT ARGUMENTS:
   5312					;
   5313					;	NONE.
   5314					;
   5315					; OUTPUT ARGUMENTS:
   5316					;
   5317					;	NONE.
   5318					;	R0, R1, R2 -- ALTERED.
   5319					;
   5320					; ERROR CODES RETURNED:
   5321					;
   5322					;	NONE.
   5323					;
   5324					; NOTE:
   5325					;
   5326					;	NO ATTEMPT IS MADE TO RESTORE THE STATE OF THE KL CLOCK OR THE
   5327					;	KL RUN FLOP.  THIS ROUTINE ESSENTIALLY CLOBBERS ANY HARDWARE
   5328					;	CONTEXT THAT EXISTS WHEN IT IS CALLED AND EXITS WITH THE KL
   5329					;	CLOCK OFF.
   5330					;-
   5331						.ENABL	LSB
   5332
   5333	007764				.UMRKC::
   5334	007764	005046 				CLR	-(SP)		; SET THE "UNMARK" FLAG
   5335	007766	000402 				BR	10$		; .AND ENTER COMMON CODE
   5336						;
   5337	007770				.MARKC::
   5338	007770	012746 	000001 			MOV	#1,-(SP)	; SET THE "MARK" FLAG
   5339	007774				10$:
   5340	007774					CALL	.CKRUN		; .BETTER NOT BE RUNNING...
	007774	004737 	000000G			 JSR	PC,.CKRUN
   5341	010000					CALL	.GTELN		; .READ THE CRAM ADDRESS
	010000	004737 	000000G			 JSR	PC,.GTELN
   5342	010004	010002 				MOV	R0,R2		; .COPY ADDRESS TO R2
   5343	010006					CALL	.RDCRM		; .READ THE CRAM LOCATION SPECIFIED
	010006	004737 	000000G			 JSR	PC,.RDCRM
   5344	010012	012701 	000400 			MOV	#400,R1		; .MARK BIT TO R1
   5345	010016	005716 				TST	(SP)		; .TEST "MARK" FLAG
   5346	010020	001003 				BNE	20$		; .MARK -- GO DO IT
   5347	010022	040160 	000006 			BIC	R1,6(R0)	; .UNMARK -- DO IT NOW
   5348	010026	000402 				BR	30$		; .AND EXIT IN COMMON CODE
   5349						;
   5350	010030				20$:
   5351	010030	050160 	000006 			BIS	R1,6(R0)	; .MARK THE MICROCODE
   5352	010034				30$:
   5353	010034	010001 				MOV	R0,R1		; .COPY BUFFER POINTER TO R1
   5354	010036	010200 				MOV	R2,R0		; .COPY ADDRESS TO R0
MARKC -- KL MARK/UNMARK-MICROCO	MACRO M1113  10-NOV-81 17:48  PAGE 132-1
.MARKC -- THE "MARK/UNMARK-MICROCODE" COMMAND 7910.19

   5355	010040					CALL	.WRCRM		; .REWRITE THE CRAM
	010040	004737 	000000G			 JSR	PC,.WRCRM
   5356	010044	122715 	000054 			CMPB	#',,(R5)	; [5.1014]IS THIS A LIST?
   5357	010050	001004 				BNE	40$		; [5.1014]NO -- GO ON
   5358	010052	105725 				TSTB	(R5)+		; [5.1014]YES -- REMOVE COMMA
   5359	010054	005726 				TST	(SP)+		; [5.1014]REMOVE AND TEST "MARK" FLAG
   5360	010056	001344 				BNE	.MARKC		; [5.1014]MARK COMMAND
   5361	010060	000741 				BR	.UMRKC		; [5.1014]UNMARK COMMAND
   5362	010062	005726 			40$:	TST	(SP)+		; [5.1014]POP STACK
   5363	010064					RETURN			; [5.1014]EXIT
	010064	000207 				 RTS	PC
   5364						;
   5365
   5366						.DSABLE	LSB
RESTC -- RESET COMMAND DISPATCH	MACRO M1113  10-NOV-81 17:48  PAGE 134
.MARKC -- THE "MARK/UNMARK-MICROCODE" COMMAND 7910.19

   5369					.TITLE	RESTC -- RESET COMMAND DISPATCH 7707.12
   5370
   5371						.IDENT	"005000"
   5372					;
   5373					;                             COPYRIGHT (C) 1975, 1979 BY
   5374					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5375					;
   5376					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5377					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5378					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5379					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5380					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5381					;
   5382					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5383					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5384					;       CORPORATION.
   5385					;
   5386					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5387					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5388					;
   5389					;		MODULE: RESET COMMAND DISPATCH
   5390					;
   5391					;		VERSION: 05-00
   5392					;
   5393					;		AUTHOR: R. BELANGER
   5394					;
   5395					;		DATE: 7707.12
   5396					;
   5397					;	THIS MODULE CONTAINS:
   5398					;
   5399					;	1) RESET COMMAND DISPATCH
RESTC -- RESET COMMAND DISPATCH	MACRO M1113  10-NOV-81 17:48  PAGE 135
.RESTC -- THE "RESET" COMMAND DISPATCH 7710.11

   5401					.SBTTL	.RESTC -- THE "RESET" COMMAND DISPATCH 7710.11
   5402
   5403					;+
   5404					; .RESTC -- THE "RESET" COMMAND DISPATCH
   5405					;
   5406					; THIS ROUTINE IS THE TOP LEVEL OF THE RESET COMMAND. ".RESTC" CHECKS
   5407					; ARGUMENTS FOR RESET AND DISPATCHES TO THE PROPER ROUTINE
   5408					;
   5409					; INPUT ARGUMENTS:
   5410					;
   5411					;	NONE.
   5412					;
   5413					; OUTPUT ARGUMENTS:
   5414					;
   5415					;	R0 POINTS TO THE LEGAL BITS FOR THE RESET OBJECT.
   5416					;
   5417					; ERROR CODES RETURNED:
   5418					;
   5419					;	KLR -- ILLEGAL WHILE KL IS RUNNING.
   5420					;-
   5421
   5422	010066				.RESTC::
   5423	010066	111504 				MOVB	(R5),R4		; LOOK AT THIS CHARACTER
   5424	010070	132764 	000010 	000000G		BITB	#CH.EOC,.CHTAB(R4)
   5425	010076	001015 				BNE	10$		; DEFAULT RESET ON E-O-C
   5426	010100					CALL	.CKARG		; GET OVER LEADING BLANKS
	010100	004737 	000000G			 JSR	PC,.CKARG
   5427	010104	012700 	000000G			MOV	#.RESTB,R0	; TABLE POINTER TO R0
   5428	010110					CALL	.TSCAN		; SCAN THE TABLE
	010110	004737 	000000G			 JSR	PC,.TSCAN
   5429	010114	012001 				MOV	(R0)+,R1	; LEGAL BITS TO R1
   5430	010116	005101 				COM	R1		; INVERT THEM
   5431	010120	040137 	000000G			BIC	R1,.LGLWD	; SET UP NEW LEGAL WORD
   5432	010124					CALL	.CKEOC		; CHECK FOR E-O-C
	010124	004737 	000000G			 JSR	PC,.CKEOC
   5433	010130					CALLR	@(R0)+		; DO THE RESET
	010130	000130 				 JMP	@(R0)+
   5434						;
   5435	010132				10$:
   5436	010132					CALL	.CKRNP		; SEE IF THE KL IS RUNNING
	010132	004737 	000000G			 JSR	PC,.CKRNP
   5437	010136					CALL	.STPKL		; STOP THE KL
	010136	004737 	000000G			 JSR	PC,.STPKL
   5438	010142					CALLR	.RESTP		; RESET THE KL AND EXIT
	010142	000137 	000000G			 JMP	.RESTP
   5439						;
RESTC -- RESET COMMAND DISPATCH	MACRO M1113  10-NOV-81 17:48  PAGE 136
.RSALL -- THE "RESET ALL" COMMAND 7602.18

   5441					.SBTTL	.RSALL -- THE "RESET ALL" COMMAND 7602.18
   5442
   5443	010146				.RSALL::
   5444	010146					PUSH	.KLFLG		; SAVE ".KLFLG"
	010146	013746 	000000G			 MOV	.KLFLG,-(SP)
   5445	010152	032716 	100000 			BIT	#KF.CLK,(SP)	; .IS THE CLOCK ON?
   5446	010156	001426 				BEQ	RSAKCN		; .NO -- GIVE "KCN" ERROR
   5447	010160					CALL	.STPKL		; .STOP THE KL
	010160	004737 	000000G			 JSR	PC,.STPKL
   5448	010164					CALL	.RESTD		; .RESET THE DTE-20
	010164	004737 	000000G			 JSR	PC,.RESTD
   5449	010170					CALL	.RSAPR		; .RESET APR
	010170	004737 	010242'			 JSR	PC,.RSAPR
   5450	010174					CALL	.RSPAG		; .RESET PAG
	010174	004737 	010274'			 JSR	PC,.RSPAG
   5451	010200					CALL	.RSTPI		; .RESET PI
	010200	004737 	010264'			 JSR	PC,.RSTPI
   5452	010204					POP	.SVKLF		; .SET UP ".SVKLF"
	010204	012637 	000000G			 MOV	(SP)+,.SVKLF
   5453	010210					CALLR	.RSTKL		; RESTART THE KL
	010210	000137 	000000G			 JMP	.RSTKL
   5454						;
   5455	010214				.RSDTE::
   5456	010214					CALLR	.RESTD		; RESET THE DTE-20
	010214	000137 	000000G			 JMP	.RESTD
   5457						;
   5458	010220				.RSTIN::
   5459	010220					CALL	.CKRUN		; SEE IF THE KL IS RUNNING
	010220	004737 	000000G			 JSR	PC,.CKRUN
   5460	010224					CALL	.STPKL		; STOP THE KL
	010224	004737 	000000G			 JSR	PC,.STPKL
   5461	010230					CALLR	.RESTI		; RESET TO DEFAULTS AND EXIT
	010230	000137 	000000G			 JMP	.RESTI
   5462						;
   5463	010234				RSAKCN:
   5464	010234					ERROR$	KCN		; ERROR -- KL CLOCK NOT RUNNING
	010234	012746 	042506 			 MOV	#^RKCN,-(SP)
	010240	104400 				 TRAP	TC.ERR
   5465						;
RESTC -- RESET COMMAND DISPATCH	MACRO M1113  10-NOV-81 17:48  PAGE 137
.RSTPI -- THE "RESET PI" COMMAND 7607.21

   5467					 .SBTTL	.RSTPI -- THE "RESET PI" COMMAND 7607.21
   5468
   5469						.ENABL	LSB
   5470
   5471	010242				.RSAPR::			; RESET APR
   5472	010242	012700 	000662'			MOV	#RSAPRI,R0	; INSTRUCTION POINTER TO R0
   5473	010246	000410 				BR	10$		; DO COMMON CODE
   5474						;
   5475	010250				.RSERR::			; RESET ERROR
   5476	010250	012700 	000670'			MOV	#RSERRI,R0	; INSTRUCTION POINTER TO R0
   5477	010254	000405 				BR	10$		; DO COMMON CODE
   5478						;
   5479	010256				.RSTIO::			; RESET IO
   5480	010256	012700 	000676'			MOV	#RSTIOI,R0	; INSTRUCTION POINTER TO R0
   5481	010262	000402 				BR	10$		; DO COMMON CODE
   5482						;
   5483	010264				.RSTPI::			; RESET PI
   5484	010264	012700 	000704'			MOV	#RSTPII,R0	; INSTRUCTION POINTER TO R0
   5485	010270				10$:
   5486	010270					CALLR	.EXCTF		; EXECUTE IT
	010270	000137 	000000G			 JMP	.EXCTF
   5487						;
   5488
   5489						.DSABL	LSB
   5490
   5491	000662				.PSECT	DATA
   5492
   5493	000662				RSAPRI:
   5494	000662					IOKL$	CONO	APR,,267760
	000662	   360 	   157 			 .BYTE	$$A,$$B
	000664	   001 	   002 			 .BYTE	$$C,$$D
	000666	   016 	   000 			 .BYTE	$$E,$$F
   5495	000670				RSERRI:
   5496	000670					IOKL$	CONO	APR,,27760
	000670	   360 	   057 			 .BYTE	$$A,$$B
	000672	   000 	   002 			 .BYTE	$$C,$$D
	000674	   016 	   000 			 .BYTE	$$E,$$F
   5497	000676				RSTIOI:
   5498	000676					IOKL$	CONO	APR,,200000
	000676	   000 	   000 			 .BYTE	$$A,$$B
	000700	   001 	   002 			 .BYTE	$$C,$$D
	000702	   016 	   000 			 .BYTE	$$E,$$F
   5499	000704				RSTPII:
   5500	000704					IOKL$	CONO	PI,,10000
	000704	   000 	   020 			 .BYTE	$$A,$$B
	000706	   000 	   006 			 .BYTE	$$C,$$D
	000710	   016 	   000 			 .BYTE	$$E,$$F
   5501
   5502	010274				.PSECT
RESTC -- RESET COMMAND DISPATCH	MACRO M1113  10-NOV-81 17:48  PAGE 138
.RSPAG -- THE "RESET PAG" COMMAND 7607.21

   5504					.SBTTL	.RSPAG -- THE "RESET PAG" COMMAND 7607.21
   5505
   5506	010274				.RSPAG::
   5507	010274					PUSH	.KLFLG		; SAVE ".KLFLG"
	010274	013746 	000000G			 MOV	.KLFLG,-(SP)
   5508	010300	032716 	100000 			BIT	#KF.CLK,(SP)	; .IS THE CLOCK ON?
   5509	010304	001442 				BEQ	RSPKCN		; .NO -- GIVE "KCN" ERROR
   5510	010306					CALL	.STPKL		; .STOP THE KL
	010306	004737 	000000G			 JSR	PC,.STPKL
   5511	010312					PUSH	R1		; .SAVE R1
	010312	010146 				 MOV	R1,-(SP)
   5512	010314					PUSH	#16		; ..BUILD A CLEAR WORD ON THE STACK
	010314	012746 	000016 			 MOV	#16,-(SP)
   5513	010320	005046 				CLR	-(SP)		; ...
   5514	010322	005046 				CLR	-(SP)		; ....
   5515	010324	010601 				MOV	SP,R1		; .....GET THE POINTER
   5516	010326	005046 				CLR	-(SP)		; .....NOW SET UP
   5517	010330					PUSH	#100		; ......SCRATCH ADDRESS
	010330	012746 	000100 			 MOV	#100,-(SP)
   5518	010334	010600 				MOV	SP,R0		; .......GET THE POINTER
   5519	010336					PUSH	R1		; .......DATA POINTER TO STACK
	010336	010146 				 MOV	R1,-(SP)
   5520	010340					PUSH	R0		; ........ADDRESS POINTER TO STACK
	010340	010046 				 MOV	R0,-(SP)
   5521	010342	010601 				MOV	SP,R1		; .........BLOCK POINTER TO R1
   5522	010344	012700 	000040 			MOV	#ED.EXV,R0	; .........EXEC VIRTUAL SPACE
   5523	010350					CALL	.DPKLM		; .........DO THE DEPOSIT
	010350	004737 	000000G			 JSR	PC,.DPKLM
   5524	010354	062706 	000016 			ADD	#^D14,SP	; .........RESET THE STACK
   5525	010360	012700 	000712'			MOV	#RSPGI0,R0	; ..INSTRUCTION POINTER TO R0
   5526	010364					CALL	.EXCTF		; ..EXECUTE IT
	010364	004737 	000000G			 JSR	PC,.EXCTF
   5527	010370	012700 	000720'			MOV	#RSPGI1,R0	; ..NEXT INSTRUCTION
   5528	010374					CALL	.EXCTF		; ..EXECUTE IT
	010374	004737 	000000G			 JSR	PC,.EXCTF
   5529	010400					POP	R1		; ..RESTORE R1
	010400	012601 				 MOV	(SP)+,R1
   5530	010402					POP	.SVKLF		; .SET UP ".SVKLF"
	010402	012637 	000000G			 MOV	(SP)+,.SVKLF
   5531	010406					CALLR	.RSTKL		; RESART THE KL AND EXIT
	010406	000137 	000000G			 JMP	.RSTKL
   5532						;
RESTC -- RESET COMMAND DISPATCH	MACRO M1113  10-NOV-81 17:48  PAGE 139
.RSPAG -- THE "RESET PAG" COMMAND 7607.21

   5534	010412				RSPKCN:
   5535	010412					ERROR$	KCN		; ERROR -- KL CLOCK NOT RUNNING
	010412	012746 	042506 			 MOV	#^RKCN,-(SP)
	010416	104400 				 TRAP	TC.ERR
   5536						;
   5537
   5538	000712				.PSECT	DATA
   5539
   5540	000712				RSPGI0:
   5541	000712					IOKL$	CONO	PAG,,0
	000712	   000 	   000 			 .BYTE	$$A,$$B
	000714	   000 	   012 			 .BYTE	$$C,$$D
	000716	   016 	   000 			 .BYTE	$$E,$$F
   5542	000720				RSPGI1:
   5543	000720					IOKL$	DATAO	PAG,,100
	000720	   100 	   000 			 .BYTE	$$A,$$B
	000722	   200 	   011 			 .BYTE	$$C,$$D
	000724	   016 	   000 			 .BYTE	$$E,$$F
   5544
   5545	010420				.PSECT
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 140
.RSPAG -- THE "RESET PAG" COMMAND 7607.21

   5547					.TITLE	RUNCM -- RUN/TAKE COMMAND MODULE 7607.14
   5548
   5549						.IDENT	"006110"
   5550
   5551					;
   5552					;                             COPYRIGHT (C) 1975, 1979 BY
   5553					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5554					;
   5555					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5556					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5557					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5558					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5559					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5560					;
   5561					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5562					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5563					;       CORPORATION.
   5564					;
   5565					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5566					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5567					;
   5568					;		MODULE: RUN COMMAND
   5569					;
   5570					;		VERSION: 06-11
   5571					;
   5572					;		AUTHOR: R. BELANGER
   5573					;
   5574					;		DATE: 7607.14
   5575					;
   5576					;	THIS MODULE CONTAINS:
   5577					;
   5578					;	1) RUN COMMAND CODE
   5579					;	2) REQUEST DIRECTIVE PARAMETER BLOCK
   5580					;
   5581					;  MODIFICATIONS:
   5582					;
   5583					;	NO.	DATE		PROGRAMMER	REASON
   5584					;	---	----		----------	------
   5585					;    [5.1000]	24-AUG-79	K. LEFEBVRE	ADD "TAKE" COMMAND
   5586
   5587						.MCALL	DIR$, RQST$
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 141
.RUNCM -- THE "RUN" AND "MCR" COMMANDS 7607.14

   5589					.SBTTL	.RUNCM -- THE "RUN" AND "MCR" COMMANDS 7607.14
   5590
   5591					;+
   5592					; .RUNCM -- THE "RUN" AND "MCR" COMMANDS
   5593					;
   5594					; THIS ROUTINE REQUESTS THE TASK SPECIFIED IN THE COMMAND TO BE RUN
   5595					; AND EXITS THE COMMAND PARSER
   5596					;
   5597					; INPUT ARGUMENTS:
   5598					;
   5599					;	NONE.
   5600					;
   5601					; OUTPUT ARGUMENTS:
   5602					;
   5603					;	NONE.
   5604					;
   5605					; ERROR CODES RETURNED:
   5606					;
   5607					;	ITN -- ILLEGAL TASK NAME
   5608					;	NST -- NO SUCH TASK
   5609					;	TAA -- TASK IS ALREADY ACTIVE
   5610					;-
   5611
   5612	010420				.RUNCM::
   5613	010420					CALL	.CKSYM		; GET OVER LEADING BLANKS
	010420	004737 	000000G			 JSR	PC,.CKSYM
   5614	010424					CALL	.GTR50		; GET THE .RAD50 TASK NAME
	010424	004737 	010676'			 JSR	PC,.GTR50
   5615	010430	001425 				BEQ	RUNITN		; BAD NEWS IF NONE THERE
   5616	010432					PUSH	R0		; SAVE THE TASK NAME
	010432	010046 				 MOV	R0,-(SP)
   5617	010434					CALL	.GTR50		; .READ THE SECOND HALF
	010434	004737 	010676'			 JSR	PC,.GTR50
   5618	010440					CALL	.CKEOC		; .MUST HAVE E-O-C
	010440	004737 	000000G			 JSR	PC,.CKEOC
   5619	010444					POP	.RNDPB+4	; .SET THE TASK NAME IN THE DPB
	010444	012637 	000052'			 MOV	(SP)+,.RNDPB+4
   5620	010450					DIR$	#.RNDPB		; REQUEST THE TASK
	010450	012746 	000046'			MOV	#.RNDPB,-(SP)
	010454	104375 				EMT	375
   5621	010456	103402 				BCS	10$		; ERROR IF CC-C IS SET
   5622	010460					CALLR	.EXITP		; EXIT
	010460	000137 	000000G			 JMP	.EXITP
   5623						;
   5624
   5625					;	[CONTINUED ON THE FOLLOWING PAGE]
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 142
.RUNCM -- THE "RUN" AND "MCR" COMMANDS 7607.14

   5627					;	[CONTINUED FROM THE PREVIOUS PAGE]
   5628
   5629	010464				10$:
   5630	010464	013700 	000000G			MOV	$DSW,R0		; LOOK AT THE DIRECTIVE STATUS
   5631	010470	022700 	000000G			CMP	#IE.INS,R0	; IS THERE SUCH A TASK?
   5632	010474	001406 				BEQ	RUNNST		; NO -- GIVE "NST" ERROR
   5633	010476	022700 	000000G			CMP	#IE.ACT,R0	; YES -- IS IT ALREADY ACTIVE?
   5634	010502	001406 				BEQ	RUNTAA		; YES -- GIVE "TAA" ERROR
   5635	010504				RUNITN:
   5636	010504					ERROR$	ITN		; ERROR -- ILLEGAL TASK NAME
	010504	012746 	035556 			 MOV	#^RITN,-(SP)
	010510	104400 				 TRAP	TC.ERR
   5637						;
   5638	010512				RUNNST:
   5639	010512					ERROR$	NST		; ERROR -- NO SUCH TASK
	010512	012746 	055214 			 MOV	#^RNST,-(SP)
	010516	104400 				 TRAP	TC.ERR
   5640						;
   5641	010520				RUNTAA:
   5642	010520					ERROR$	TAA		; ERROR -- TASK ALREADY ACTIVE
	010520	012746 	076451 			 MOV	#^RTAA,-(SP)
	010524	104400 				 TRAP	TC.ERR
   5643						;
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 143
.RUNCM -- THE "RUN" AND "MCR" COMMANDS 7607.14

   5645					; DPB FOR REQUEST DIRECTIVE
   5646
   5647					;	!===============================================!
   5648					; 00	!	DPB SIZE	!	  DIC		!
   5649					;	!-----------------------------------------------!
   5650					; 02	!	    TASK NAME IN .RAD50 (HIGH)		!
   5651					;	!-----------------------------------------------!
   5652					; 04	!	    TASK NAME IN .RAD50 (LOW)		!
   5653					;	!-----------------------------------------------!
   5654					; 06	!	     PARTITION NAME (IGNORED)		!
   5655					;	!-----------------------------------------------!
   5656					; 10	!	     PARTITION NAME (IGNORED)		!
   5657					;	!-----------------------------------------------!
   5658					; 12	!		TASK PRIORITY			!
   5659					;	!-----------------------------------------------!
   5660					; 14	!		UIC (IGNORED)			!
   5661					;	!===============================================!
   5662
   5663	000046				.PSECT	DPBS
   5664
   5665	000046				.RNDPB::
   5666	000046					RQST$	...TSK,,,,
	000046	   013 	   007 			.BYTE	11.,7
	000050	131574 	100003 			.RAD50	/...TSK/
	000054	000000 	000000 			.WORD	0,0
	000060	000000 				.WORD
	000062	   000 	   000 			.BYTE	,
   5667
   5668	010526				.PSECT
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 144
.TAKEC -- THE "TAKE" COMMAND

   5670					.SBTTL	.TAKEC -- THE "TAKE" COMMAND
   5671
   5672					;+
   5673					; .TAKEC -- THE "TAKE" COMMAND
   5674					;
   5675					; THIS ROUTINE REQUESTS AN INDIRECT COMMAND FILE, OPENS IT WITH
   5676					; READ ACCESS, AND INDICATES THAT FURTHER COMMAND INPUT SHOULD
   5677					; COME FROM THIS FILE.
   5678					;	THIS COMMAND WAS ADDED FOR TCO 5.1000
   5679					;
   5680					; INPUT ARGUMENTS:
   5681					;
   5682					;	NONE
   5683					;
   5684					; OUTPUT ARGUMENTS:
   5685					;
   5686					;	NONE
   5687					;
   5688					; ERROR CODES RETURNED:
   5689					;
   5690					;	CAL -- CAN'T ASSIGN LUN
   5691					;	DNF -- DIRECTORY FILE NOT FOUND
   5692					;	FLF -- FILE LOOKUP FAILURE
   5693					;	FOF -- FILE OPEN FAILURE
   5694					;	FRD -- FILE READ FAILURE
   5695					;	IFN -- ILLEGAL FILE NAME
   5696					;	IRE -- ILLEGAL RECURSION
   5697					;	NSF -- NO SUCH FILE
   5698					;-
   5699
   5700	010526				.TAKEC::
   5701	010526	012737 	062072 	000000G		MOV	#^RPAR,.INFN	; DEFAULT COMMAND FILE NAME
   5702	010534	012737 	073632 	000002G		MOV	#^RSER,.INFN+2	; PARSER.CMD
   5703	010542					CALL	.CKSYM		; GET OVER LEADING BLANKS
	010542	004737 	000000G			 JSR	PC,.CKSYM
   5704	010546					CALL	.GTR50		; GET THE RAD50 FILE NAME
	010546	004737 	010676'			 JSR	PC,.GTR50
   5705	010552	001406 				BEQ	10$		; DEFAULT NAME IF NONE GIVEN
   5706	010554	010037 	000000G			MOV	R0,.INFN	; SAVE 1ST HALF FILE NAME
   5707	010560					CALL	.GTR50		; GET 2ND HALF FILE NAME
	010560	004737 	010676'			 JSR	PC,.GTR50
   5708	010564	010037 	000002G			MOV	R0,.INFN+2	; SAVE 2ND HALF FILE NAME
   5709	010570				10$:	CALL	.CKEOC		; MUST HAVE E-O-C
	010570	004737 	000000G			 JSR	PC,.CKEOC
   5710	010574	005737 	000000G			TST	.INDFG		; ALREADY DOING INDIRECT FILE?
   5711	010600	001030 				BNE	TAKIRE		; YES -- ERROR
   5712	010602				.TAKE1::			; [5.1006]ALTERNATE ENTRY POINT FOR KLE
   5713	010602	012700 	000000G			MOV	#.INFN,R0	; NO -- INPUT FILE NAME PTR
   5714	010606	012701 	000000G			MOV	#.INFNB,R1	; INPUT FILE NAME BLOCK PTR
   5715	010612	012702 	000005 			MOV	#INDLUN,R2	; INPUT FILE LUN
   5716	010616					CALL	.LOKUP		; LOOK UP INPUT FILE
	010616	004737 	000000G			 JSR	PC,.LOKUP
   5717	010622	103422 				BCS	TAKNSF		; NO SUCH FILE IF CC-C IS SET
   5718	010624	012704 	000000G			MOV	#IO.ACR,R4	; READ ACCESS
   5719	010630					CALL	.OPEN		; OPEN FILE FOR READ
	010630	004737 	000000G			 JSR	PC,.OPEN
   5720	010634	005037 	000000G			CLR	.INBBC		; NOTHING READ IN YET
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 144-1
.TAKEC -- THE "TAKE" COMMAND

   5721	010640	005037 	000000G			CLR	.INPOS		; NO BUFFER YET
   5722	010644	005037 	000000G			CLR	.INVBN		; READ FIRST BLOCK
   5723	010650	005037 	000002G			CLR	.INVBN+2	; READ FIRST BLOCK
   5724	010654	005237 	000000G			INC	.INDFG		; REDIRECT INPUT TO FILE
   5725	010660					RETURN			; RETURN
	010660	000207 				 RTS	PC
   5726						;
   5727	010662				TAKIRE:
   5728	010662					ERROR$	IRE		; ERROR -- ILLEGAL RECURSION
	010662	012746 	035425 			 MOV	#^RIRE,-(SP)
	010666	104400 				 TRAP	TC.ERR
   5729	010670				TAKNSF:
   5730	010670				20$:	ERROR$	NSF		; ERROR -- NO SUCH FILE
	010670	012746 	055176 			 MOV	#^RNSF,-(SP)
	010674	104400 				 TRAP	TC.ERR
   5731						;
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 145
.GTR50 -- GET A .RAD50 WORD 7602.18

   5733					.SBTTL	.GTR50 -- GET A .RAD50 WORD 7602.18
   5734
   5735					;+
   5736					; .GTR50 -- GET A .RAD50 WORD
   5737					;
   5738					; THIS ROUTINE WILL CONVERT THE NEXT THREE ASCII CHARACTERS IN THE
   5739					; INPUT STREAM TO .RAD50 FORMAT.
   5740					;
   5741					; INPUT ARGUMENTS:
   5742					;
   5743					;	R5 POINTS TO THE INPUT STREAM.
   5744					;
   5745					; OUTPUT ARGUMENTS:
   5746					;
   5747					;	R0 HOLDS THE .RAD50 SYMBOL.
   5748					;
   5749					; ERROR CODES RETURNED:
   5750					;
   5751					;	NONE.
   5752					;	IF THE ROUTINE CANNOT CONVERT THE FIRST CHARACTER, CC-Z IS SET.
   5753					;-
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 146
.GTR50 -- GET A .RAD50 WORD 7602.18

   5755	010676				.GTR50::
   5756	010676					PUSH	<R1,R2>		; SAVE REGISTERS
	010676	010146 				 MOV	R1,-(SP)
	010700	010246 				 MOV	R2,-(SP)
   5757	010702	005046 				CLR	-(SP)		; ..SAVE A BUFFER
   5758	010704	012702 	000000G			MOV	#.T50TB,R2	; ...FACTOR TABLE POINTER TO R2
   5759	010710				10$:
   5760	010710	012201 				MOV	(R2)+,R1	; ...GET CURRENT MULTIPLIER
   5761	010712	001427 				BEQ	50$		; ...DONE IF .EQ. 0
   5762	010714	112500 				MOVB	(R5)+,R0	; ...GET THE CHARACTER INTO R0
   5763	010716	120027 	000101 			CMPB	R0,#'A		; ...IS IT ALPHABETIC?
   5764	010722	103403 				BLO	20$		; ...NO -- TRY NUMERIC
   5765	010724	120027 	000132 			CMPB	R0,#'Z		; ...IS IT REALLY ALPHABETIC?
   5766	010730	101410 				BLOS	30$		; ...YES -- ADD IT TO RESULT
   5767	010732				20$:
   5768	010732	120027 	000060 			CMPB	R0,#'0		; ...NO -- IS IT NUMERIC?
   5769	010736	103413 				BLO	40$		; ...NO -- EXIT
   5770	010740	120027 	000071 			CMPB	R0,#'9		; ...YES -- IS IT REALLY NUMERIC?
   5771	010744	101010 				BHI	40$		; ...NO -- EXIT
   5772	010746	162700 	177722 			SUB	#<<'0-36>-<'A-1>>,R0
   5773	010752				30$:
   5774	010752	162700 	000100 			SUB	#<'A-1>,R0	; ...CONVERT ALPHABETIC
   5775	010756					CALL	$MUL		; ...COMPUTE CHARACTER VALUE
	010756	004737 	000000G			 JSR	PC,$MUL
   5776	010762	060116 				ADD	R1,(SP)		; ...ACCUMULATE RESULT
   5777	010764	000751 				BR	10$		; ...AND GET NEXT CHARACTER
   5778						;
   5779	010766				40$:
   5780	010766	105745 				TSTB	-(R5)		; ...BACK UP THE BYTE POINTER
   5781	010770	010004 				MOV	R0,R4		; ...PUT THE CHARACTER IN R4
   5782	010772				50$:
   5783	010772					POP	R0		; ...RETURN THE RESULT
	010772	012600 				 MOV	(SP)+,R0
   5784	010774					POP	<R2,R1>		; ..RESTORE REGISTERS
	010774	012602 				 MOV	(SP)+,R2
	010776	012601 				 MOV	(SP)+,R1
   5785	011000	005700 				TST	R0		; LOOK AT R0
   5786	011002					RETURN			; TO CALLER
	011002	000207 				 RTS	PC
RUNCM -- RUN/TAKE COMMAND MODUL	MACRO M1113  10-NOV-81 17:48  PAGE 147
.QUITC -- THE "QUIT" COMMAND 7602.16

   5788					.SBTTL	.QUITC -- THE "QUIT" COMMAND 7602.16
   5789
   5790					;+
   5791					; .QUITC -- THE "QUIT" COMMAND.
   5792					;
   5793					; THIS ROUTINE EXECUTES THE "QUIT" (EXIT) FUNCTION.
   5794					;
   5795					; INPUT ARGUMENTS:
   5796					;
   5797					;	NONE.
   5798					;
   5799					; OUTPUT ARGUMENTS:
   5800					;
   5801					;	NONE.
   5802					;
   5803					; ERROR CODES RETURNED:
   5804					;
   5805					;	NONE.
   5806					;-
   5807
   5808	011004				.QUITC::
   5809	011004					CALL	.CKEOC		; MUST HAVE E-O-C
	011004	004737 	000000G			 JSR	PC,.CKEOC
   5810	011010					CALLR	.EXITP		; EXIT THE PARSER
	011010	000137 	000000G			 JMP	.EXITP
   5811						;
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 149
.QUITC -- THE "QUIT" COMMAND 7602.16

   5814					.TITLE	SCACB -- SET AC-BLOCK COMMAND MODULE
   5815
   5816						.IDENT	"006110"
   5817
   5818					;                             COPYRIGHT (C) 1979 BY
   5819					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5820					;
   5821					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5822					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5823					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5824					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5825					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5826					;
   5827					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5828					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5829					;       CORPORATION.
   5830					;
   5831					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5832					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5833					;
   5834					;		MODULE: SET AC-BLOCK
   5835					;
   5836					;		VERSION: 06-11
   5837					;
   5838					;		AUTHOR: K.LEFEBVRE
   5839					;
   5840					;		DATE: 12-SEP-79
   5841					;
   5842					;	THIS MODULE CONTAINS:
   5843					;
   5844					;		1) SET AC-BLOCK N COMMAND
   5845					;		2) SWEEP N COMMAND
   5846					;
   5847					;	THESE COMMANDS WERE ADDED FOR TCO 5.1002
   5848
   5849						.MCALL	SETF$S
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 150
.SCACB -- SET AC-BLOCK COMMAND

   5851					.SBTTL	.SCACB -- SET AC-BLOCK COMMAND
   5852
   5853					;+
   5854					; .SCACB -- SET AC-BLOCK COMMAND
   5855					;
   5856					; THIS ROUTINE WILL CAUSE THE SPECIFIED BLOCK TO BE THE CURRENT
   5857					; AC BLOCK REFERENCED BY THE KL.
   5858					;
   5859					; INPUT ARGUMENTS:
   5860					;
   5861					;	NONE
   5862					;
   5863					; OUTPUT ARGUMENTS:
   5864					;
   5865					;	NONE
   5866					;
   5867					; ERROR CODES RETURNED:
   5868					;
   5869					;	ILI -- ILLEGAL UNSTRUCTION
   5870					;	MRA -- MISSING REQUIRED ARGUMENT
   5871					;	NOR -- INPUT ARGUMENT NUMBER OUT OF RANGE
   5872					;-
   5873
   5874	011014				.SCACB::
   5875	011014	005737 	000000G			TST	.NOTSW		; IS THIS A CLEAR?
   5876	011020	001014 				BNE	SCAILI		; YES -- NOT ALLOWED
   5877	011022					CALL	.CKARG		; NO -- CHECK FOR AN ARGUMENT
	011022	004737 	000000G			 JSR	PC,.CKARG
   5878	011026					CALL	.GTELN		; GET THE ARGUMENT
	011026	004737 	000000G			 JSR	PC,.GTELN
   5879	011032	020027 	000007 			CMP	R0,#7		; IS THE ARGUMENT IN RANGE?
   5880	011036	101010 				BHI	SCANOR		; NO -- ERROR
   5881	011040					CALL	.CKRUN		; MAKE SURE KL NOT RUNNING
	011040	004737 	000000G			 JSR	PC,.CKRUN
   5882	011044	010002 				MOV	R0,R2		; SET BLOCK NO.
   5883	011046					CALLR	.SACBK		; YES -- SET AC BLOCK
	011046	000137 	011066'			 JMP	.SACBK
   5884
   5885	011052				SCAILI:
   5886	011052					ERROR$	ILI		; ERROR -- ILLEGAL INSTRUCTION
	011052	012746 	035051 			 MOV	#^RILI,-(SP)
	011056	104400 				 TRAP	TC.ERR
   5887	011060				SCANOR:
   5888	011060					ERROR$	NOR		; ERROR -- INPUT NUMBER OUT OF RANGE
	011060	012746 	054752 			 MOV	#^RNOR,-(SP)
	011064	104400 				 TRAP	TC.ERR
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 151
.SACBK -- SET AC BLOCK ROUTINE

   5890					.SBTTL	.SACBK -- SET AC BLOCK ROUTINE
   5891
   5892					;+
   5893					; .SACBK -- SUBROUTINE TO SET KL AC BLOCK
   5894					;
   5895					; THIS ROUTINE WILL:
   5896					;	1. INSERT INSTR OBJECT INTO KL LOC 100
   5897					;	2. EXECUTE DATAO PAG,,100 TO SET AC BLOCK
   5898					;
   5899					; INPUT ARGUMENTS:
   5900					;
   5901					;	R2=AC BLOCK NO. TO SET
   5902					;
   5903					; OUTPUT ARGUMENTS:
   5904					;
   5905					;	NONE
   5906					;
   5907					; ERROR CODES RETURNED:
   5908					;
   5909					;	CCC -- CAN'T CLEAR KL10 CLOCK
   5910					;	CCR -- CAN'T CLEAR KL10 RUN FLOP
   5911					;	CCS -- KL10 CLOCK CAN'T START
   5912					;	CES -- CLOCK ERROR STOP
   5913					;	CFH -- CAN'T FIND KL10 HALT LOOP
   5914					;	CSC -- CAN'T SYNC KL10 CLOCK
   5915					;	DMF -- DEPOSIT KL10 MEMORY FAILED
   5916					;	DSF -- DTE20 STATUS FAILURE
   5917					;	ECT -- EBOX CLOCK TIME OUT
   5918					;	ESD -- EBOX STOPPED - DEPOSIT
   5919					;	FRF -- FUNCTION READ FAILED
   5920					;	FWF -- FUNCTION WRITE FAILED
   5921					;	FXF -- FUNCTION EXECUTE FAILED
   5922					;	MAE -- MODE ARGUMENT ERROR
   5923					;	XTO -- EXECUTE TIMED OUT
   5924					;-
   5925
   5926	011066				.SACBK::
   5927	011066	005000 				CLR	R0		; CALL .WHACB ON EXIT FLAG
   5928	011070				.SACB1::			; ALTERNATE ENTRY POINT
   5929	011070					PUSH	<R0,R2>		; SAVE NEW AC BLOCK NO.
	011070	010046 				 MOV	R0,-(SP)
	011072	010246 				 MOV	R2,-(SP)
   5930	011074	006302 				ASL	R2		; POSITION AC BLOCK NO.
   5931	011076	006302 				ASL	R2		; POSITION AC BLOCK NO.
   5932	011100	006302 				ASL	R2		; POSITION AC BLOCK NO.
   5933	011102	110237 	000741'			MOVB	R2,ACDAT+3	; PUT BLOCK NO. INTO INSTR
   5934	011106	012701 	000726'			MOV	#DEPBLK,R1	; SET UP DEPOSIT DATA BLOCK
   5935	011112	012700 	000200 			MOV	#ED.PHY,R0	; PUT IN PHYSICAL SPACE
   5936					;	MOV	#ED.EXV,R0	; PUT IN EXEC VIRTUAL SPACE
   5937	011116					CALL	.DPKLM		; DEPOSIT INSTR OBJECT IN MEMORY
	011116	004737 	000000G			 JSR	PC,.DPKLM
   5938	011122	103404 				BCS	10$		; ERROR
   5939	011124	012700 	000744'			MOV	#SETACI,R0	; INSTR PTR
   5940	011130					CALL	.EXCTF		; EXECUTE INSTR
	011130	004737 	000000G			 JSR	PC,.EXCTF
   5941	011134				10$:	POP	<R2,R0>		; RESTORE R2
	011134	012602 				 MOV	(SP)+,R2
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 151-1
.SACBK -- SET AC BLOCK ROUTINE

	011136	012600 				 MOV	(SP)+,R0
   5942	011140	005700 				TST	R0		; PRINT AC BLOCK?
   5943	011142	001002 				BNE	20$		; NO -- EXIT
   5944	011144					CALL	.WHACB		; YES -- OUTPUT CURRENT AC BLOCK NO.
	011144	004737 	011152'			 JSR	PC,.WHACB
   5945	011150				20$:	RETURN			; EXIT
	011150	000207 				 RTS	PC
   5946
   5947	000726				.PSECT	DATA
   5948
   5949	000726	000732'			DEPBLK:	.WORD	TEMADR		; OBJECT ADDR PTR
   5950	000730	000736'				.WORD	ACDAT		; DEPOSIT DATA PTR
   5951	000732	000100 			TEMADR:	.WORD	100		; ADDR BITS 20-35
   5952	000734	000000 				.WORD	0		; ADDR BITS 14-19
   5953	000736	000000 			ACDAT:	.WORD	0		; DATA BITS 20-35
   5954	000740	000000 				.WORD	0		; DATA BITS 4-19
   5955	000742	000010 				.WORD	10		; DATA BITS 0-3
   5956
   5957	000744				SETACI:	IOKL$	DATAO	PAG,,100	; SET AC INSTR
	000744	   100 	   000 			 .BYTE	$$A,$$B
	000746	   200 	   011 			 .BYTE	$$C,$$D
	000750	   016 	   000 			 .BYTE	$$E,$$F
   5958
   5959	011152				.PSECT
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 152
.WHACB -- WHAT AC BLOCK COMMAND

   5961					.SBTTL	.WHACB -- WHAT AC BLOCK COMMAND
   5962
   5963	011152				.WHACB::
   5964	011152					PUSH	R1		; SAVE R1
	011152	010146 				 MOV	R1,-(SP)
   5965	011154	012700 	003127'			MOV	#WACMSG,R0	; WHAT AC BLOCK MESSAGE
   5966	011160					CALL	.TYMSG		; PRINT IT
	011160	004737 	000000G			 JSR	PC,.TYMSG
   5967	011164	005001 				CLR	R1		; NO FM ADDR BUFFER
   5968	011166					CALL	.RDFMA		; GET CURRENT AC BUFFER
	011166	004737 	000000G			 JSR	PC,.RDFMA
   5969	011172	000300 				SWAB	R0		; BLOCK NO. IN LOW BYTE NOW
   5970	011174	042700 	177600 			BIC	#177600,R0	; GET RID OF EXCESS BITS
   5974	011200	005046 				CLR	-(SP)		; NO. BUFFER ON STACK
   5975	011202	005046 				CLR	-(SP)		; BUFFER
   5976	011204	010046 				MOV	R0,-(SP)	; BUFFER
   5977	011206	010600 				MOV	SP,R0		; BUFFER PTR
   5978	011210	005037 	000000G			CLR	.LDZFL		; NO LEADING ZEROS
   5979	011214					CALL	.TYKLN		; OUTPUT VALUE
	011214	004737 	000000G			 JSR	PC,.TYKLN
   5980	011220	062706 	000006 			ADD	#6,SP		; POP OFF BUFFER
   5981	011224					CALL	.TCRLF		; TYPE CR-LF
	011224	004737 	000000G			 JSR	PC,.TCRLF
   5982	011230					POP	R1		; RESTORE R1
	011230	012601 				 MOV	(SP)+,R1
   5983	011232					RETURN			; DONE
	011232	000207 				 RTS	PC
   5984
   5985	003127				.PSECT	MESSAG
   5986
   5987	003127	   040 	   101 	   103 	WACMSG:	.ASCIZ	% AC-BLOCK: %
	003132	   055 	   102 	   114
	003135	   117 	   103 	   113
	003140	   072 	   040 	   000
   5988
   5989	011234				.PSECT
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 153
.SWPC -- SWEEP AC BLOCK COMMAND

   5991					.SBTTL	.SWPC -- SWEEP AC BLOCK COMMAND
   5992
   5993					;+
   5994					; .SWPC -- SWEEP AC BLOCK COMMAND ROUTINE
   5995					;
   5996					; THIS ROUTINE
   5997					;
   5998					; INPUT ARGUMENTS:
   5999					;
   6000					;	NONE
   6001					;
   6002					; OUTPUT ARGUMENTS:
   6003					;
   6004					;	NONE
   6005					;
   6006					; ERROR CODES RETURNED:
   6007					;
   6008					;	XXX
   6009					;-
   6010
   6011	011234				.SWPC::
   6012	011234	005037 	000000G			CLR	.PASS		; [4.1.1049]CLEAR PASS FLAG
   6013	011240	005037 	000752'			CLR	FMERR		; [4.1.1049]CLEAR ERROR COUNT
   6014	011244					PUSH	.NOERR		; SAVE ERROR,HALT STATUS
	011244	013746 	000000G			 MOV	.NOERR,-(SP)
   6015	011250	012737 	000401 	000000G		MOV	#401,.NOERR	; IGNORE KL ERRORS
   6016	011256	012737 	000001 	000000G		MOV	#1,.SWPIP	; SET SWEEP IN PROGRESS
   6017	011264	005001 				CLR	R1		; NO DATA BUFFER
   6018	011266					CALL	.RDFMA		; READ CURRENT BLOCK NO.
	011266	004737 	000000G			 JSR	PC,.RDFMA
   6019	011272	000300 				SWAB	R0		; GET BLOCK IN LOW BYTE
   6020	011274	042700 	177600 			BIC	#177600,R0	; CLEAR EXTRA BITS
   6021	011300	010037 	000764'			MOV	R0,SAVBLK	; SAVE BLOCK NO.
   6022	011304					CALL	.RDIPE		; READ PARITY FLAGS
	011304	004737 	000000G			 JSR	PC,.RDIPE
   6023	011310					PUSH	R0		; [4.1.1049]SAVE PARITY FLAG
	011310	010046 				 MOV	R0,-(SP)
   6024	011312	032700 	000010 			BIT	#10,R0		; FM ERROR?
   6025	011316	001416 				BEQ	10$		; NO -- GO ON
   6026	011320	012700 	003143'			MOV	#FMHED,R0	; YES -- FM ERROR MESSAGE HEADER
   6027	011324					CALL	.TYMSG		; TYPE IT
	011324	004737 	000000G			 JSR	PC,.TYMSG
   6028	011330	012700 	000754'			MOV	#FMBUF,R0	; DATA BUFFER
   6029	011334	013702 	000764'			MOV	SAVBLK,R2	; CURRENT BLOCK NO.
   6030	011340					CALL	.RDFMO		; READ CURRENT FM DATA
	011340	004737 	000000G			 JSR	PC,.RDFMO
   6031	011344					CALL	.TYAC1		; TYPE FM DATA
	011344	004737 	000000G			 JSR	PC,.TYAC1
   6032	011350					CALL	.RSSWP		; RESET KL
	011350	004737 	011672'			 JSR	PC,.RSSWP
   6033	011354				10$:	POP	R0		; [4.1.1049]RESTORE PARITY FLAG
	011354	012600 				 MOV	(SP)+,R0
   6034	011356	132764 	000010 	000000G		BITB	#CH.EOC,.CHTAB(R4)	; IS THERE AN ARGUMENT?
   6035	011364	001011 				BNE	15$		; NO -- SWEEP ALL BLOCKS
   6036	011366					CALL	.GTELN		; YES -- GET IT
	011366	004737 	000000G			 JSR	PC,.GTELN
   6037	011372	020027 	000007 			CMP	R0,#7		; IS ARGUMENT IN RANGE?
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 153-1
.SWPC -- SWEEP AC BLOCK COMMAND

   6038	011376	101230 				BHI	SCANOR		; NO -- ERROR
   6039	011400	010002 				MOV	R0,R2		; YES -- SET ARGUMENT
   6040	011402					CALL	.SWPAC		; SWEEP BLOCK
	011402	004737 	011534'			 JSR	PC,.SWPAC
   6041	011406	000437 				BR	30$		; DONE
   6042	011410	032700 	000010 		15$:	BIT	#10,R0		; [4.1.1049]FM ERROR?
   6043	011414	001442 				BEQ	40$		; [4.1.1049]NO -- DONE
   6044	011416	012702 	000007 		17$:	MOV	#7,R2		; YES -- START WITH LAST BLOCK
   6045	011422				20$:	CALL	.SWPAC		; SWEEP IT
	011422	004737 	011534'			 JSR	PC,.SWPAC
   6046	011426	005302 				DEC	R2		; NEXT AC BLOCK
   6047	011430	002374 				BGE	20$		; DONE?
   6048	011432	005737 	000752'			TST	FMERR		; [4.1.1049]ANY ERRORS?
   6049	011436	001423 				BEQ	30$		; [4.1.1049]NO -- GO ON
   6050	011440	005737 	000000G			TST	.PASS		; [4.1.1049]YES -- PASS 2?
   6051	011444	001005 				BNE	25$		; [4.1.1049]YES -- ABORT RELOAD
   6052	011446	005237 	000000G			INC	.PASS		; [4.1.1049]NO -- SET SECOND PASS
   6053	011452	005037 	000752'			CLR	FMERR		; [4.1.1049]CLEAR ERROR COUNT
   6054	011456	000757 				BR	17$		; [4.1.1049]RESWEEP
   6055	011460	012700 	003207'		25$:	MOV	#FMABO,R0	; [4.1.1049]ABORT MESSAGE
   6056	011464					CALL	.TYLIN		; [4.1.1049]TYPE IT
	011464	004737 	000000G			 JSR	PC,.TYLIN
   6057	011470	032737 	000000G	000000G		BIT	#KL.REQ,.KLIWD	; [4.1.1049]KLI REQUESTED
   6058	011476	001403 				BEQ	30$		; [4.1.1049]NO -- DONE
   6059	011500	052737 	000000G	000000G		BIS	#KL.ABO,.KLIWD	; [4.1.1049]YES -- ABORT RELOAD
   6060	011506	013702 	000764'		30$:	MOV	SAVBLK,R2	; YES -- RESTORE ORIGINAL AC BLOCK
   6061	011512	012700 	000001 			MOV	#1,R0		; SET NO WHAT AC FLAG
   6062	011516					CALL	.SACB1		; SET AC BLOCK
	011516	004737 	011070'			 JSR	PC,.SACB1
   6063	011522	005037 	000000G		40$:	CLR	.SWPIP		; CLEAR SWEEP IN PROGRESS
   6064	011526					POP	.NOERR		; RESTORE ERROR,HALT STATUS
	011526	012637 	000000G			 MOV	(SP)+,.NOERR
   6065	011532					RETURN			; EXIT
	011532	000207 				 RTS	PC
   6066
   6067	000752				.PSECT	DATA
   6068
   6069	000752	000000 			FMERR:	.WORD	0		; [4.1.1049]ERROR COUNT
   6070	000754	000000 	000000 	000000 	FMBUF:	.WORD	0,0,0,0
	000762	000000
   6071
   6072	000764	000000 			SAVBLK:	.WORD	0		; ORIGINAL AC BLOCK NO.
   6073
   6074	003143				.PSECT	MESSAG
   6075
   6076	003143	   040 	   106 	   115 	FMHED:	.ASCIZ	% FM PARITY ERROR-(BLOCK:ADDR/DATA) %
	003146	   040 	   120 	   101
	003151	   122 	   111 	   124
	003154	   131 	   040 	   105
	003157	   122 	   122 	   117
	003162	   122 	   055 	   050
	003165	   102 	   114 	   117
	003170	   103 	   113 	   072
	003173	   101 	   104 	   104
	003176	   122 	   057 	   104
	003201	   101 	   124 	   101
	003204	   051 	   040 	   000
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 153-2
.SWPC -- SWEEP AC BLOCK COMMAND

   6077	003207	   040 	   125 	   116 	FMABO:	.ASCIZ	% UNRECOVERABLE FM PARITY ERROR - RELOAD CANCELED%
	003212	   122 	   105 	   103
	003215	   117 	   126 	   105
	003220	   122 	   101 	   102
	003223	   114 	   105 	   040
	003226	   106 	   115 	   040
	003231	   120 	   101 	   122
	003234	   111 	   124 	   131
	003237	   040 	   105 	   122
	003242	   122 	   117 	   122
	003245	   040 	   055 	   040
	003250	   122 	   105 	   114
	003253	   117 	   101 	   104
	003256	   040 	   103 	   101
	003261	   116 	   103 	   105
	003264	   114 	   105 	   104
	003267	   000
   6078
   6079	011534				.PSECT
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 154
.SWPAC -- SWEEP ALL AC BLOCKS FOR FM PARITY ERROR

   6081					.SBTTL	.SWPAC -- SWEEP ALL AC BLOCKS FOR FM PARITY ERROR
   6082
   6083					;+
   6084					; .SWPAC -- SUBROUTINE TO READ ALL AC'S TO LOCATE FM PARITY ERRORS
   6085					;
   6086					; THIS ROUTINE WILL:
   6087					;	0. TYPE CURRENT LOCKED UP FM ADDR AND DATA
   6088					;	1. DISABLE PARITY ERROR STOPS AND CLEAR CLOCK ERROR STOP
   6089					;	2. PUT KL IN HALT LOOP
   6090					;	3. START KL CLOCK
   6091					;	4. SET AC BLOCK
   6092					;	5. READ AC'S
   6093					;	6. IF FM PARITY ERROR SET TYPE ERROR
   6094					;	7. REPEAT 4-6 FOR EACH BLOCK
   6095					;	8. RESTORE ORIGINAL AC BLOCK
   6096					;
   6097					; INPUT ARGUMENTS:
   6098					;
   6099					;	R2=AC BLOCK TO SWEEP
   6100					;
   6101					; OUTPUT ARGUMENTS:
   6102					;
   6103					;	NONE
   6104					;
   6105					; ERROR CODES RETURNED:
   6106					;
   6107					;	CCC -- CAN'T CLEAR KL10 CLOCK
   6108					;	CCR -- CAN'T CLEAR KL10 RUN FLOP
   6109					;	CCS -- KL10 CLOCK CAN'T START
   6110					;	CES -- CLOCK ERROR STOP
   6111					;	CFH -- CAN'T FIND KL10 HALT LOOP
   6112					;	CSC -- CAN'T SYNC KL10 CLOCK
   6113					;	DMF -- DEPOSIT KL10 MEMORY FAILED
   6114					;	DSF -- DTE20 STATUS FAILURE
   6115					;	ECT -- EBOX CLOCK TIME OUT
   6116					;	ESD -- EBOX STOPPED - DEPOSIT
   6117					;	EMF -- EXAMINE KL10 MEMORY FAILED
   6118					;	ESE -- EBOX STOPPED - EXAMINE
   6119					;	FRF -- FUNCTION READ FAILED
   6120					;	FSW -- FM SWEEP ERROR
   6121					;	FWF -- FUNCTION WRITE FAILED
   6122					;	FXF -- FUNCTION EXECUTE FAILED
   6123					;	XTO -- EXECUTE TIMED OUT
   6124					;-
   6125
   6126	011534				.SWPAC::
   6127	011534	012700 	000001 			MOV	#1,R0		; SET NO WHAT AC FLAG
   6128	011540					CALL	.SACB1		; SET AC BLOCK
	011540	004737 	011070'			 JSR	PC,.SACB1
   6129	011544	012737 	000020 	000776'		MOV	#20,ACADR	; SET UP FOR 16 AC'S
   6130	011552	005337 	000776'		10$:	DEC	ACADR		; DONE ALL AC'S
   6131	011556	002441 				BLT	20$		; YES -- EXIT
   6132	011560	012701 	000772'			MOV	#EXBLK,R1	; NO- SET EXAMINE DATA BLOCK
   6133	011564	012700 	000200 			MOV	#ED.PHY,R0	; EXAMINE PHYSICAL MEMORY
   6134	011570					CALL	.EXKLM		; EXAMINE AC
	011570	004737 	000000G			 JSR	PC,.EXKLM
   6135	011574	103366 				BCC	10$		; NO ERROR, NEXT AC
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 154-1
.SWPAC -- SWEEP ALL AC BLOCKS FOR FM PARITY ERROR

   6136	011576					CALL	.DTDW1		; GET DTE STATUS WORD 1
	011576	004737 	000000G			 JSR	PC,.DTDW1
   6137	011602	032700 	004000 			BIT	#D1.CES,R0	; CLOCK ERROR STOP?
   6138	011606	001426 				BEQ	SWPFSW		; NO -- OTHER ERROR
   6139	011610					CALL	.RDFMP		; YES -- CHECK	FOR FM PARITY ERROR
	011610	004737 	000000G			 JSR	PC,.RDFMP
   6140	011614	005700 				TST	R0		; PARITY ERROR? 0=ERROR, 1=OK
   6141	011616	001022 				BNE	SWPFSW		; NO -- ERROR
   6142	011620	005237 	000752'			INC	FMERR		; [4.1.1049]YES -- COUNT IT
   6143	011624	012700 	000754'			MOV	#FMBUF,R0	; FM REGISTER BUFFER
   6144	011630					CALL	.RDFMO		; READ FM INFO
	011630	004737 	000000G			 JSR	PC,.RDFMO
   6145	011634					CALL	.TYACE		; TYPE AC INFO
	011634	004737 	000000G			 JSR	PC,.TYACE
   6146	011640					CALL	.RSSWP		; RESET SWEEP PARITY STOPS
	011640	004737 	011672'			 JSR	PC,.RSSWP
   6147	011644	012701 	000766'			MOV	#GOOBLK,R1	; [4.1.1049]GOOD DATA BLOCK
   6148	011650	012700 	000200 			MOV	#ED.PHY,R0	; [4.1.1049]PHYSICAL SPACE
   6149	011654					CALL	.DPKLM		; [4.1.1049]WRITE BACK GOOD DATA
	011654	004737 	000000G			 JSR	PC,.DPKLM
   6150	011660	000734 				BR	10$		; NEXT AC
   6151	011662				20$:	RETURN			; EXIT
	011662	000207 				 RTS	PC
   6152						;
   6153	011664				SWPFSW:
   6154	011664					ERROR$	FSW		; ERROR -- FM SWEEP ERROR
	011664	012746 	024217 			 MOV	#^RFSW,-(SP)
	011670	104400 				 TRAP	TC.ERR
   6155
   6156	000766				.PSECT	DATA
   6157
   6158	000766	000776'			GOOBLK:	.WORD	ACADR
   6159	000770	000756'				.WORD	FMBUF+2
   6160	000772	000776'			EXBLK:	.WORD	ACADR		; AC ADDR PTR
   6161	000774	001002'				.WORD	EXDAT		; EXAMINE DATA BUFFER PTR
   6162	000776	000000 			ACADR::	.WORD	0		; AC ADDR BITS 20-35
   6163	001000	000000 				.WORD	0		; AC ADDR BITS 14-19
   6164	001002	000000 			EXDAT::	.WORD	0		; AC DATA BITS 20-35
   6165	001004	000000 				.WORD	0		; AC DATA BITS 4-19
   6166	001006	000000 				.WORD	0		; AC DATA BITS 0-3
   6167
   6168	011672				.PSECT
SCACB -- SET AC-BLOCK COMMAND M	MACRO M1113  10-NOV-81 17:48  PAGE 155
.RSSWP -- RESET PARITY STOPS FOR FM SWEEP

   6170					.SBTTL	.RSSWP -- RESET PARITY STOPS FOR FM SWEEP
   6171
   6172					;+
   6173					; .RSSWP -- SUBROUTINE TO CLEAR CES, SET FM STOP, AND RESET AC BLOCK
   6174					;
   6175					; THIS ROUTINE WILL:
   6176					;	1. RESET KL
   6177					;	2. START CLOCK
   6178					;	3. RESET AC BLOCK
   6179					;
   6180					; INPUT ARGUMENTS:
   6181					;
   6182					;	R2- AC BLOCK NO. TO SET
   6183					;
   6184					; OUTPUT ARGUMENTS:
   6185					;
   6186					;	NONE
   6187					;
   6188					; ERROR CODES RETURNED:
   6189					;
   6190					;	CCC -- CAN'T CLEAR KL10 CLOCK
   6191					;	CCR -- CAN'T CLEAR KL10 RUN FLOP
   6192					;	CCS -- KL10 CLOCK CAN'T START
   6193					;	CES -- CLOCK ERROR STOP
   6194					;	CFH -- CAN'T FIND KL10 HALT LOOP
   6195					;	CSC -- CAN'T SYNC KL10 CLOCK
   6196					;	DMF -- DEPOSIT KL10 MEMORY FAILED
   6197					;	DSF -- DTE20 STATUS FAILURE
   6198					;	ECT -- EBOX CLOCK TIME OUT
   6199					;	ESD -- EBOX STOPPED - DEPOSIT
   6200					;	FRF -- FUNCTION READ FAILED
   6201					;	FWF -- FUNCTION WRITE FAILED
   6202					;	FXF -- FUNCTION EXECUTE FAILED
   6203					;	MAE -- MODE ARGUMENT ERROR
   6204					;	XTO -- EXECUTE TIMED OUT
   6205					;-
   6206	011672				.RSSWP::
   6207	011672					SETF$S	#E.FHTO		; SET HALT TIME-OUT FLAG
	011672	012746 	000001 			MOV	#E.FHTO,-(SP)
	011676	012746 				MOV	(PC)+,-(SP)
	011700	   041 	   002 			.BYTE	33.,2
	011702	104375 				EMT	375
   6208	011704					CALL	.RESTP		; RESET KL AND PARITY STOPS
	011704	004737 	000000G			 JSR	PC,.RESTP
   6209	011710					CALL	.STCLK		; START CLOCK
	011710	004737 	000000G			 JSR	PC,.STCLK
   6210	011714	012700 	000001 			MOV	#1,R0		; SET NO WHAT AC FLAG
   6211	011720					CALL	.SACB1		; SET AC BLOCK
	011720	004737 	011070'			 JSR	PC,.SACB1
   6212	011724				10$:	RETURN
	011724	000207 				 RTS	PC
   6213						;
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 157
.RSSWP -- RESET PARITY STOPS FOR FM SWEEP

   6216					.TITLE	SCOUTC -- SET/CLEAR OUTPUT COMMAND MODULE
   6217
   6218						.IDENT	"006120"
   6219
   6220					;                             COPYRIGHT (C) 1979 BY
   6221					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6222					;
   6223					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6224					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6225					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6226					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6227					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6228					;
   6229					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6230					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6231					;       CORPORATION.
   6232					;
   6233					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6234					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6235					;
   6236					;		MODULE: SET / CLEAR OUTPUT COMMAND
   6237					;
   6238					;		VERSION: 06-00
   6239					;
   6240					;		AUTHOR: K.LEFEBVRE
   6241					;
   6242					;		DATE: 6-SEP-79
   6243					;
   6244					;	THIS MODULE CONTAINS:
   6245					;
   6246					;	1) SET / CLEAR OUTPUT COMMAND CODE
   6247					;
   6248					;		THESE ROUTINES WERE ADDED FOR TCO 5.1000
   6249
   6250						.MCALL	DIR$,ALUN$,QIOW$,GTIM$S,QIOW$S
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 158
.SCOUT -- SET/CLEAR OUTPUT COMMAND

   6252					.SBTTL	.SCOUT -- SET/CLEAR OUTPUT COMMAND
   6253
   6254					;+
   6255					; .SCOUT -- SET/CLEAR OUTPUT COMMAND ROUTINE
   6256					;
   6257					; THIS ROUTINE WILL EXECUTE THE SET/CLEAR OUTPUT COMMAND. IF
   6258					; THE COMMAND "SET OUTPUT" IS GIVEN WITHOUT ANY OBJECT THEN THE
   6259					; TTY IS TURNED ON. IF THE COMMAND "CLEAR OUTPUT" IS GIVEN
   6260					; WITHOUT ANY OBJECT THEN THE LPT AND LOG ARE TURNED OFF AND THE
   6261					; TTY IS TURNED ON. WHENEVER A CLEAR OUTPUT IS GIVEN WITH OR
   6262					; WITHOUT AN OBJECT A CHECK IS MADE TO MAKE SURE SOME DEVICE IS
   6263					; OUTPUTTING. IF NO DEVICES ARE THEN THE TTY IS TURNED ON.
   6264					;
   6265					; INPUT ARGUMENTS:
   6266					;
   6267					;	NONE
   6268					;
   6269					; OUTPUT ARGUMENTS:
   6270					;
   6271					;	NONE
   6272					;
   6273					; ERROR CODES RETURNED:
   6274					;
   6275					;	CAL -- CAN'T ASSIGN LUN
   6276					;	DNF -- DIRECTORY FILE NOT FOUND
   6277					;	FCF -- FILE CLOSE FAILURE
   6278					;	FEF -- FILE EXTEND FAILURE
   6279					;	FEN -- FILE ENTER FAILURE
   6280					;	FLF -- FILE LOOKUP FAILURE
   6281					;	FOF -- FILE OPEN FAILURE
   6282					;	FWT -- FILE WRITE FAILURE
   6283					;-
   6284
   6285	011726				.SCOUT::
   6286	011726	132764 	000010 	000000G		BITB	#CH.EOC,.CHTAB(R4)	; IS THERE AN OBJECT?
   6287	011734	001414 				BEQ	20$		; NO -- GET OBJECT
   6288	011736	005737 	000000G			TST	.NOTSW		; YES -- IS THIS A CLEAR?
   6289	011742	001406 				BEQ	10$		; NO -- SET CONSOLE OUTPUT
   6290	011744					CALL	.SCOTL		; YES -- CLEAR LOG OUTPUT
	011744	004737 	012014'			 JSR	PC,.SCOTL
   6291	011750					CALL	.SCOTP		; CLEAR PRINTER OUTPUT
	011750	004737 	012374'			 JSR	PC,.SCOTP
   6292	011754				5$:	CALLR	.WHOUT		; OUTPUT STATUS
	011754	000137 	012530'			 JMP	.WHOUT
   6293	011760				10$:	CALL	.SCOTY		; SET CONSOLE OUTPUT
	011760	004737 	012462'			 JSR	PC,.SCOTY
   6294	011764	000773 				BR	5$		; OUTPUT STATUS
   6295	011766				20$:	CALL	.CKOBJ		; MUST HAVE AN OBJECT
	011766	004737 	000000G			 JSR	PC,.CKOBJ
   6296	011772	012700 	000000G			MOV	#.SCOTT,R0	; TABLE POINTER TO R0
   6297	011776					CALL	.TSCAN		; SCAN THE TABLE
	011776	004737 	000000G			 JSR	PC,.TSCAN
   6298	012002					CALL	.CKEOC		; MUST HAVE E-O-C
	012002	004737 	000000G			 JSR	PC,.CKEOC
   6299	012006					CALL	@2(R0)		; EXECUTE THE COMMAND
	012006	004770 	000002 			 JSR	PC,@2(R0)
   6300	012012	000760 				BR	5$		; OUTPUT STATUS
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 158-1
.SCOUT -- SET/CLEAR OUTPUT COMMAND

   6301						;
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 159
.SCOTL -- SET/CLEAR OUTPUT LOG COMMAND

   6303					.SBTTL	.SCOTL -- SET/CLEAR OUTPUT LOG COMMAND
   6304
   6305					;+
   6306					; .SCOTL -- SET/CLEAR OUTPUT LOG COMMAND ROUTINE
   6307					;
   6308					; THIS ROUTINE WILL OPEN OR CLOSE A LOG FILE AND DIRECT OUTPUT
   6309					; TO THIS FILE.
   6310					;
   6311					; INPUT ARGUMENTS:
   6312					;
   6313					;	NONE
   6314					;
   6315					; OUTPUT ARGUMENTS:
   6316					;
   6317					;	NONE
   6318					;
   6319					; ERROR CODES RETURNED:
   6320					;
   6321					;	CAL -- CAN'T ASSIGN LUN
   6322					;	DNF -- DIRECTORY FILE NOT FOUND
   6323					;	FCF -- FILE CLOSE FAILURE
   6324					;	FEF -- FILE EXTEND FAILURE
   6325					;	FEN -- FILE ENTER FAILURE
   6326					;	FLF -- FILE LOOKUP FAILURE
   6327					;	FOF -- FILE OPEN FAILURE
   6328					;	FWT -- FILE WRITE FAILURE
   6329					;-
   6330
   6331	012014				.SCOTL::
   6332	012014	005737 	000000G			TST	.NOTSW		; IS THIS A CLEAR?
   6333	012020	001433 				BEQ	25$		; NO -- TURN LOGGING ON
   6334	012022	105737 	000000G			TSTB	.OUTLG		; LOGGING ALREADY OFF?
   6335	012026	001530 				BEQ	30$		; YES -- EXIT
   6336	012030	012700 	003335'			MOV	#LGFMSG,R0	; NO -- FINISH LOG MESSAGE
   6337	012034					CALL	.TYMSG		; TYPE IT
	012034	004737 	000000G			 JSR	PC,.TYMSG
   6338	012040					CALL	TYLGMS		; LOG TIME AND DATE
	012040	004737 	012312'			 JSR	PC,TYLGMS
   6339	012044					CALL	.TCRLF		; OUTPUT CR-LF
	012044	004737 	000000G			 JSR	PC,.TCRLF
   6340	012050					CALL	.TCRLF		; OUTPUT CR-LF
	012050	004737 	000000G			 JSR	PC,.TCRLF
   6341	012054					CALL	.WRITZ		; OUTPUT FINAL BLOCK
	012054	004737 	000000G			 JSR	PC,.WRITZ
   6342	012060	012700 	000000G			MOV	#.OTFN,R0	; FILE NAME
   6343	012064	012701 	000000G			MOV	#.OTATT,R1	; ATTRIBUTE BLOCK
   6344	012070	012702 	000004 			MOV	#LOGLUN,R2	; LUN
   6345	012074					CALL	.CLOSE		; CLOSE FILE
	012074	004737 	000000G			 JSR	PC,.CLOSE
   6346	012100	105037 	000000G			CLRB	.OUTLG		; YES -- CLEAR LOG FLAG
   6347	012104					CALLR	.SCOTC		; MAKE SURE SOME OUTPUT DEVICE IS ON
	012104	000137 	012506'			 JMP	.SCOTC
   6348						;
   6349	012110	105737 	000000G		25$:	TSTB	.OUTLG		; LOGGING ALREADY ON?
   6350	012114	001075 				BNE	30$		; YES -- EXIT
   6351	012116	012700 	000000G			MOV	#.OTFN,R0	; NO -- FILE NAME
   6352	012122	012701 	000000G			MOV	#.OTFNB,R1	; FILE NAME BLOCK
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 159-1
.SCOTL -- SET/CLEAR OUTPUT LOG COMMAND

   6353	012126	012702 	000004 			MOV	#LOGLUN,R2	; LUN
   6354	012132	012704 	000000G			MOV	#IO.ACE,R4	; OPEN ACCESS RIGHTS
   6355	012136					CALL	.LOKUP		; LOOK UP FILE
	012136	004737 	000000G			 JSR	PC,.LOKUP
   6356	012142	103013 				BCC	27$		; FILE FOUND IF CC-C IS CLEAR
   6357	012144					CALL	.ENTER		; CREATE AND ENTER THE FILE
	012144	004737 	000000G			 JSR	PC,.ENTER
   6358	012150					CALL	.OPEN		; OPEN THE NEW FILE
	012150	004737 	000000G			 JSR	PC,.OPEN
   6359	012154	012737 	001002 	000000G		MOV	#1002,.OTATT	; SET FILE TYPE/ATTRIBUTES
   6360	012162	012737 	000001 	000006G		MOV	#1,.OTATT+6	; SET HIGHEST ALLOCATED BLOCK
   6361	012170	000402 				BR	29$		; GO ON
   6362	012172				27$:	CALL	.OPEN		; OPEN FILE
	012172	004737 	000000G			 JSR	PC,.OPEN
   6363	012176	012737 	000000G	000000G	29$:	MOV	#.BUFSZ,.OTBBC	; EMPTY BUFFER
   6364	012204	012737 	000000G	000000G		MOV	#.OTBUF,.OTPOS	; BUFFER ADDR
   6365	012212	013737 	000010G	000000G		MOV	.OTATT+10,.OTVBN	; HIGHEST USED BLOCK
   6366	012220	013737 	000012G	000002G		MOV	.OTATT+12,.OTVBN+2	; HIGHEST USED BLOCK
   6367	012226	012737 	000000G	000000G		MOV	#.RECRD,.RECPT	; RESET RECORD POINTER
   6368	012234	005037 	000000G			CLR	.RECNT		; CLEAR RECORD COUNT
   6369	012240	105237 	000000G			INCB	.OUTLG		; SET LOG FLAG
   6370	012244	012700 	003270'			MOV	#LGSMSG,R0	; START UP LOG MESSAGE
   6371	012250					CALL	.TYMSG		; TYPE IT
	012250	004737 	000000G			 JSR	PC,.TYMSG
   6372	012254					CALL	TYLGMS		; LOG TIME AND DATE
	012254	004737 	012312'			 JSR	PC,TYLGMS
   6373	012260	012700 	003323'			MOV	#LGVMSG,R0	; VERSION MESSAGE
   6374	012264					CALL	.TYMSG		; TYPE IT
	012264	004737 	000000G			 JSR	PC,.TYMSG
   6375	012270	012700 	000000G			MOV	#.VERNO,R0	; VERSION
   6376	012274					CALL	.TYMSG		;TYPE IT
	012274	004737 	000000G			 JSR	PC,.TYMSG
   6377	012300					CALL	.TCRLF		; OUTPUT CR-LF
	012300	004737 	000000G			 JSR	PC,.TCRLF
   6378	012304					CALL	.TCRLF		; OUTPUT CR-LF
	012304	004737 	000000G			 JSR	PC,.TCRLF
   6379	012310				30$:	RETURN			; RETURN
	012310	000207 				 RTS	PC
   6380						;
   6381	012312				TYLGMS:	PUSH	R1		; SAVE R1,R0
	012312	010146 				 MOV	R1,-(SP)
   6382	012314	012701 	001010'			MOV	#LOGBUF,R1	; DATE BUFFER
   6383	012320					GTIM$S	R1		; GET DATE
	012320	010146 				MOV	R1,-(SP)
	012322	012746 				MOV	(PC)+,-(SP)
	012324	   073 	   002 			.BYTE	59.,2
	012326	104375 				EMT	375
   6384	012330	005046 				CLR	-(SP)		; CLEAR SPACE ON STACK
   6385	012332	005046 				CLR	-(SP)		; CLEAR SPACE ON STACK
   6386	012334	010600 				MOV	SP,R0		; POINT R0 TO BUFFER
   6387	012336	112120 				MOVB	(R1)+,(R0)+	; SET YEAR
   6388	012340	105721 				TSTB	(R1)+		; SKIP BYTE
   6389	012342	112120 				MOVB	(R1)+,(R0)+	; SET MONTH
   6390	012344	105721 				TSTB	(R1)+		; SKIP BYTE
   6391	012346	112120 				MOVB	(R1)+,(R0)+	; SET DAY
   6392	012350	010600 				MOV	SP,R0		; RESET PTR
   6393	012352					CALL	.TYDAT		; TYPE DATE
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 159-2
.SCOTL -- SET/CLEAR OUTPUT LOG COMMAND

	012352	004737 	006612'			 JSR	PC,.TYDAT
   6394	012356	012700 	000000G			MOV	#.SSM,R0	; SET SECONDS
   6395	012362					CALL	.TYTIM		; TYPE TIME
	012362	004737 	006726'			 JSR	PC,.TYTIM
   6396	012366	022626 				CMP	(SP)+,(SP)+	; CLEAR STACK
   6397	012370					POP	R1		; RESTORE R1
	012370	012601 				 MOV	(SP)+,R1
   6398	012372					RETURN			; EXIT
	012372	000207 				 RTS	PC
   6399						;
   6400
   6401	001010				.PSECT	DATA
   6402
   6403	001010				LOGBUF:	.BLKW	10
   6404
   6405	003270				.PSECT	MESSAG
   6406
   6407	003270				LGSMSG:
   6408	003270	   012 	   052 	   052 		.ASCIZ	<12>%******* LOGGING STARTED  %
	003273	   052 	   052 	   052
	003276	   052 	   052 	   040
	003301	   114 	   117 	   107
	003304	   107 	   111 	   116
	003307	   107 	   040 	   123
	003312	   124 	   101 	   122
	003315	   124 	   105 	   104
	003320	   040 	   040 	   000
   6409	003323				LGVMSG:
   6410	003323	   054 	   122 	   123 		.ASCIZ	%,RSX-20F %
	003326	   130 	   055 	   062
	003331	   060 	   106 	   040
	003334	   000
   6411	003335				LGFMSG:
   6412	003335	   012 	   052 	   052 		.ASCIZ	<12>%******* LOGGING FINISHED  %
	003340	   052 	   052 	   052
	003343	   052 	   052 	   040
	003346	   114 	   117 	   107
	003351	   107 	   111 	   116
	003354	   107 	   040 	   106
	003357	   111 	   116 	   111
	003362	   123 	   110 	   105
	003365	   104 	   040 	   040
	003370	   000
   6413
   6414	012374				.PSECT
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 160
.SCOTP -- SET/CLEAR OUTPUT LPT COMMAND

   6416					.SBTTL	.SCOTP -- SET/CLEAR OUTPUT LPT COMMAND
   6417
   6418					;+
   6419					; .SCOTP -- SET/CLEAR OUTPUT LPT COMMAND ROUTINE
   6420					;
   6421					; THIS ROUTINE WILL ATTACH OR DETATCH THE LINE PRINTER AND
   6422					; SET A FLAG TO DIRECT OUTPUT TO IT.
   6423					;
   6424					; INPUT ARGUMENTS:
   6425					;
   6426					;	NONE
   6427					;
   6428					; OUTPUT ARGUMENTS:
   6429					;
   6430					;	NONE
   6431					;
   6432					; ERROR CODES RETURNED:
   6433					;
   6434					;	CAP -- CAN'T ATTACH LINEPRINTER
   6435					;-
   6436
   6437	012374				.SCOTP::
   6438	012374	005737 	000000G			TST	.NOTSW		; IS THIS A CLEAR PRINTER?
   6439	012400	001413 				BEQ	30$		; NO -- TURN ON PRINTER
   6440	012402	105737 	000000G			TSTB	.OUTLP		; YES -- IS LINE PRINTER ON?
   6441	012406	001421 				BEQ	40$		; NO -- DON'T TURN OFF
   6442	012410					DIR$	#.DTLST		; YES -- DETACH THE PRINTER
	012410	012746 	000100'			MOV	#.DTLST,-(SP)
	012414	104375 				EMT	375
   6443	012416	103416 				BCS	SCOCAP		; ERROR IF CC-C IS SET
   6444	012420	105037 	000000G			CLRB	.OUTLP		; CLEAR PRINT FLAG
   6445	012424					CALLR	.SCOTC		; MAKE SURE SOME OUTPUT DEVICE IS ON
	012424	000137 	012506'			 JMP	.SCOTC
   6446						;
   6447	012430	105737 	000000G		30$:	TSTB	.OUTLP		; IS LINE PRINTER ALREADY ON?
   6448	012434	001006 				BNE	40$		; YES -- DON'T TURN ON
   6449	012436					DIR$	#.ATLST		; NO -- ATTACH THE PRINTER
	012436	012746 	000064'			MOV	#.ATLST,-(SP)
	012442	104375 				EMT	375
   6450	012444	103403 				BCS	SCOCAP		; ERROR IF CC-C IS SET
   6451	012446	105237 	000000G			INCB	.OUTLP		; SET THE PRINT FLAG
   6452	012452				40$:	RETURN			; RETURN
	012452	000207 				 RTS	PC
   6453						;
   6454	012454				SCOCAP:
   6455	012454					ERROR$	CAP		; ERROR -- CAN'T ATTACH LINEPRINTER
	012454	012746 	011370 			 MOV	#^RCAP,-(SP)
	012460	104400 				 TRAP	TC.ERR
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 161
.SCOTY -- SET/CLEAR OUTPUT TTY COMMAND

   6457					.SBTTL	.SCOTY -- SET/CLEAR OUTPUT TTY COMMAND
   6458
   6459					;+
   6460					; .SCOTY -- SET/CLEAR OUTPUT TTY COMMAND ROUTINE
   6461					;
   6462					; THIS ROUTINE WILL SET OR CLEAR A FLAG THAT DIRECTS OUTPUT TO THE
   6463					; TTY.
   6464					;
   6465					; INPUT ARGUMENTS:
   6466					;
   6467					;	NONE
   6468					;
   6469					; OUTPUT ARGUMENTS:
   6470					;
   6471					;	NONE
   6472					;
   6473					; ERROR CODES RETURNED:
   6474					;
   6475					;	NONE
   6476					;-
   6477
   6478	012462				.SCOTY::
   6479	012462	005737 	000000G			TST	.NOTSW		; IS THIS A CLEAR
   6480	012466	001404 				BEQ	50$		; NO -- SET TYPE OUTPUT
   6481	012470	105037 	000000G			CLRB	.OUTTY		; CLEAR TYPE FLAG
   6482	012474					CALLR	.SCOTC		; MAKE SURE SOME OUTPUT DEVICE IS ON
	012474	000137 	012506'			 JMP	.SCOTC
   6483	012500	105237 	000000G		50$:	INCB	.OUTTY		; SET TYPE FLAG
   6484	012504				60$:	RETURN			; EXIT
	012504	000207 				 RTS	PC
   6485						;
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 162
.SCOTC -- SET/CLEAR OUTPUT CHECK ROUTINE

   6487					.SBTTL	.SCOTC -- SET/CLEAR OUTPUT CHECK ROUTINE
   6488
   6489					;+
   6490					; .SCOTL -- SET/CLEAR OUTPUT CHECK ROUTINE
   6491					;
   6492					; THIS ROUTINE WILL CHECK TO SEE THAT OUTPUT IS DIRECTED TO SOME
   6493					; DEVICE. IF THERE IS NO OUTPUT DEVICE THEN THE TTY IS TURNED ON.
   6494					;
   6495					; INPUT ARGUMENTS:
   6496					;
   6497					;	NONE
   6498					;
   6499					; OUTPUT ARGUMENTS:
   6500					;
   6501					;	NONE
   6502					;
   6503					; ERROR CODES RETURNED:
   6504					;
   6505					;	NONE
   6506					;-
   6507
   6508	012506				.SCOTC::
   6509	012506	105737 	000000G			TSTB	.OUTLG		; LOG ON?
   6510	012512	001005 				BNE	70$		; YES -- EXIT
   6511	012514	105737 	000000G			TSTB	.OUTLP		; NO -- PRINT ON?
   6512	012520	001002 				BNE	70$		; YES -- EXIT
   6513	012522	105237 	000000G			INCB	.OUTTY		; NO -- TURN ON TYPE
   6514	012526				70$:	RETURN			; EXIT
	012526	000207 				 RTS	PC
   6515						;
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 163
.WHOUT -- WHAT OUTPUT COMMAND

   6517					.SBTTL	.WHOUT -- WHAT OUTPUT COMMAND
   6518
   6519					;+
   6520					; .WHOUT -- WHAT OUTPUT COMMAND ROUTINE
   6521					;
   6522					; THIS ROUTINE WILL OUPUT THE STATUS OF THE CURRENT OUTPUT DEVICES.
   6523					;
   6524					; INPUT ARGUMENTS:
   6525					;
   6526					;	NONE
   6527					;
   6528					; OUTPUT ARGUMENTS:
   6529					;
   6530					;	NONE
   6531					;
   6532					; ERROR CODES RETURNED:
   6533					;
   6534					;	NONE
   6535					;-
   6536
   6537	012530				.WHOUT::
   6538	012530	012700 	003371'			MOV	#WHOTMS,R0	; MESSAGE POINTER TO R0
   6539	012534					CALL	.TYMSG		; PRINT IT
	012534	004737 	000000G			 JSR	PC,.TYMSG
   6540	012540	005046 				CLR	-(SP)		; CLEAR COMMA FLAG
   6541	012542	105737 	000000G			TSTB	.OUTTY		; TTY ACTIVE?
   6542	012546	001405 				BEQ	10$		; NO -- NEXT DEVICE
   6543	012550	012700 	000000G			MOV	#TTYMSG,R0	; YES -- TTY MESSAGE POINTER TO R0
   6544	012554					CALL	.TYMSG		; PRINT IT
	012554	004737 	000000G			 JSR	PC,.TYMSG
   6545	012560	005216 				INC	(SP)		; SET COMMA FLAG
   6546	012562	105737 	000000G		10$:	TSTB	.OUTLP		; LPT ACTIVE?
   6547	012566	001411 				BEQ	20$		; NO -- NEXT DEVICE
   6548	012570	005716 				TST	(SP)		; YES -- TYPE COMMA?
   6549	012572	001402 				BEQ	15$		; NO -- TYPE DEVICE
   6550	012574					CALL	.TYCOM		; YES -- TYPE COMMA
	012574	004737 	000000G			 JSR	PC,.TYCOM
   6551	012600	012700 	000000G		15$:	MOV	#LPTMSG,R0	; LPT MESSAGE POINTER TO R0
   6552	012604					CALL	.TYMSG		; PRINT IT
	012604	004737 	000000G			 JSR	PC,.TYMSG
   6553	012610	005216 				INC	(SP)		; SET COMMA FLAG
   6554	012612	105737 	000000G		20$:	TSTB	.OUTLG		; LOG ACTIVE?
   6555	012616	001410 				BEQ	30$		; NO -- EXIT
   6556	012620	005716 				TST	(SP)		; YES -- TYPE COMMA?
   6557	012622	001402 				BEQ	25$		; NO -- TYPE DEVICE
   6558	012624					CALL	.TYCOM		; YES -- TYPE COMMA
	012624	004737 	000000G			 JSR	PC,.TYCOM
   6559	012630	012700 	000000G		25$:	MOV	#LOGMSG,R0	; LOG MESSAGE POINTER TO R0
   6560	012634					CALL	.TYMSG		; PRINT IT
	012634	004737 	000000G			 JSR	PC,.TYMSG
   6561	012640	005726 			30$:	TST	(SP)+		; REMOVE COMMA FLAG
   6562	012642					CALLR	.TCRLF		; TYPE MESSAGE AND EXIT
	012642	000137 	000000G			 JMP	.TCRLF
   6563						;
   6564
   6565	003371				.PSECT	MESSAG
   6566
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 163-1
.WHOUT -- WHAT OUTPUT COMMAND

   6567	003371				WHOTMS:
   6568	003371	   040 	   117 	   125 		.ASCIZ	% OUTPUT DEVICES: %
	003374	   124 	   120 	   125
	003377	   124 	   040 	   104
	003402	   105 	   126 	   111
	003405	   103 	   105 	   123
	003410	   072 	   040 	   000
   6569
   6570	012646				.PSECT
SCOUTC -- SET/CLEAR OUTPUT COMM	MACRO M1113  10-NOV-81 17:48  PAGE 164
.WHOUT -- WHAT OUTPUT COMMAND

   6572					; THESE DPBS ARE USED TO ASSIGN THE LINE PRINTER TO THE PARSER TASK BY
   6573					; LOGICAL UNIT NUMBER (LUN), AND ARE OF THE FORM:
   6574					;
   6575					;	!===============================================!
   6576					; 00	!	DPB SIZE	!	    DIC		!
   6577					;	!-----------------------------------------------!
   6578					; 02	!	      LOGICAL UNIT NUMBER		!
   6579					;	!-----------------------------------------------!
   6580					; 04	!	       ASCII DEVICE NAME		!
   6581					;	!-----------------------------------------------!
   6582					; 06	!	      DEVICE UNIT NUMBER		!
   6583					;	!===============================================!
   6584
   6585	000064				.PSECT	DPBS
   6586
   6587	000064				.ATLST:				; ATTACH LPT DIRECTIVE
   6588	000064					QIOW$	IO.ATT,LSTLUN,E.FLOD,0,0,0
	000064	   003 	   006 			.BYTE	3,$$$ARG
	000066	000000G				.WORD	IO.ATT
	000070	000003 				.WORD	LSTLUN
	000072	   005 	   000 			.BYTE	E.FLOD,0
	000074	000000 				.WORD	0
	000076	000000 				.WORD	0
   6589
   6590	000100				.DTLST:			; DETATCH LPT DIRECTIVE
   6591	000100					QIOW$	IO.DET,LSTLUN,E.FLOD,0,0,0
	000100	   003 	   006 			.BYTE	3,$$$ARG
	000102	000000G				.WORD	IO.DET
	000104	000003 				.WORD	LSTLUN
	000106	   005 	   000 			.BYTE	E.FLOD,0
	000110	000000 				.WORD	0
	000112	000000 				.WORD	0
   6592
   6593	012646				.PSECT
SETCM -- SET / CLEAR COMMAND DI	MACRO M1113  10-NOV-81 17:48  PAGE 166
.WHOUT -- WHAT OUTPUT COMMAND

   6596					.TITLE	SETCM -- SET / CLEAR COMMAND DISPATCH MODULE 7603.30
   6597
   6598						.IDENT	"005000"
   6599					;
   6600					;                             COPYRIGHT (C) 1975, 1979 BY
   6601					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6602					;
   6603					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6604					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6605					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6606					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6607					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6608					;
   6609					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6610					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6611					;       CORPORATION.
   6612					;
   6613					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6614					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6615					;
   6616					;		MODULE: SET / CLEAR COMMAND DISPATCH
   6617					;
   6618					;		VERSION: 05-00
   6619					;
   6620					;		AUTHOR: R. BELANGER
   6621					;
   6622					;		DATE: 7603.30
   6623					;
   6624					;	THIS MODULE CONTAINS:
   6625					;
   6626					;	1) SET / CLEAR COMMAND DISPATCH CODE
SETCM -- SET / CLEAR COMMAND DI	MACRO M1113  10-NOV-81 17:48  PAGE 167
.SETCM -- THE "SET" AND "CLEAR" COMMAND DISPATCHES 7602.19

   6628					.SBTTL	.SETCM -- THE "SET" AND "CLEAR" COMMAND DISPATCHES 7602.19
   6629
   6630					;+
   6631					; .CLRCM -- THE "CLEAR" COMMAND
   6632					; .SETCM -- THE "SET" COMMAND
   6633					;
   6634					; THESE ROUTINES ARE THE TOP LEVEL FOR THE SET AND CLEAR COMMANDS.
   6635					; ARGUMENTS ARE CHECKED AND A DISPATCH IS MADE FOR THE OBJECT
   6636					; SPECIFIED IN THE COMMAND LINE
   6637					;
   6638					; INPUT ARGUMENTS:
   6639					;
   6640					;	NONE.
   6641					;
   6642					; OUTPUT ARGUMENTS:
   6643					;
   6644					;	NONE.
   6645					;
   6646					; ERROR CODES RETURNED:
   6647					;
   6648					;	ILC -- ILLEGAL COMMAND.
   6649					;-
   6650
   6651						.ENABL	LSB
   6652
   6653	012646				.CLRCM::
   6654	012646					CALL	.CKOBJ		; SEE IF OBJECT FOLLOWS
	012646	004737 	000000G			 JSR	PC,.CKOBJ
   6655	012652	005737 	000000G			TST	.NOTSW		; LOOK AT THE "NOT" SWITCH
   6656	012656	001007 				BNE	10$		; ALREADY SAYS CLEAR -- GO ON
   6657	012660	005137 	000000G			COM	.NOTSW		; INVERT THE "NOT" SWITCH
   6658	012664	000404 				BR	10$		; AND TREAT AS A "SET" COMMAND
   6659						;
   6660	012666				.SETCM::
   6661	012666					CALL	.CKOBJ		; LOOK FOR AN OBJECT
	012666	004737 	000000G			 JSR	PC,.CKOBJ
   6662	012672	005037 	000000G			CLR	.NOTSW		; CLEAR THE "NOT" SWITCH
   6663	012676				.SETC0::			; "SET NOT" ENTRY POINT
   6664	012676				10$:
   6665	012676	012700 	000000G			MOV	#.SETTB,R0	; TABLE POINTER TO R0
   6666	012702					CALL	.TSCAN		; SCAN IT
	012702	004737 	000000G			 JSR	PC,.TSCAN
   6667	012706	011001 				MOV	(R0),R1		; LEGAL BITS TO R1
   6668	012710	005101 				COM	R1		; INVERT THEM
   6669	012712	040137 	000000G			BIC	R1,.LGLWD	; SET UP NEW LEGAL WORD
   6670	012716					CALLR	@2(R0)		; DO WHAT IT SAYS TO
	012716	000170 	000002 			 JMP	@2(R0)
   6671						;
   6672
   6673						.DSABL	LSB
SETCM -- SET / CLEAR COMMAND DI	MACRO M1113  10-NOV-81 17:48  PAGE 168
.WHATC -- THE "WHAT" COMMAND DISPATCH 7607.14

   6675					.SBTTL	.WHATC -- THE "WHAT" COMMAND DISPATCH 7607.14
   6676
   6677					;+
   6678					; .WHATC -- THE "WHAT" COMMAND DISPATCH
   6679					;
   6680					; THIS ROUTINE IS THE TOPMOST LEVEL OF THE "WHAT COMMAND WHICH
   6681					; PERFORMS THE DISPATCH FOR THE SPECIFIED OBJECT.
   6682					;
   6683					; INPUT ARGUMENTS:
   6684					;
   6685					;	NONE.
   6686					;
   6687					; OUTPUT ARGUMENTS:
   6688					;
   6689					;	NONE.
   6690					;
   6691					; ERROR CODES RETURNED:
   6692					;
   6693					;	NONE.
   6694					;-
   6695
   6696	012722				.WHATC::
   6697	012722	012700 	000000G			MOV	#.WHATB,R0	; TABLE POINTER TO R0
   6698	012726					CALL	.CKOBJ		; MUST HAVE AN OBJECT
	012726	004737 	000000G			 JSR	PC,.CKOBJ
   6699	012732					CALL	.TSCAN		; SCAN IT
	012732	004737 	000000G			 JSR	PC,.TSCAN
   6700	012736					CALL	.CKEOC		; MUST HAVE E-O-C
	012736	004737 	000000G			 JSR	PC,.CKEOC
   6701	012742					CALLR	@2(R0)		; DO WHAT IT SAYS
	012742	000170 	000002 			 JMP	@2(R0)
   6702						;
SETCM -- SET / CLEAR COMMAND DI	MACRO M1113  10-NOV-81 17:48  PAGE 169
.SCNOT -- THE "SET / CLEAR NOT" COMMAND 7602.19

   6704					.SBTTL	.SCNOT -- THE "SET / CLEAR NOT" COMMAND 7602.19
   6705
   6706	012746				.SCNOT::			; SET/CLEAR "NO"
   6707	012746					CALL	.CKOBJ		; MUST HAVE AN OBJECT
	012746	004737 	000000G			 JSR	PC,.CKOBJ
   6708	012752	005137 	000000G			COM	.NOTSW		; INVERT THE "NOT" SWITCH
   6709	012756	000747 				BR	.SETC0		; AND GET NEXT OBJECT