Google
 

Trailing-Edge - PDP-10 Archives - bb-x141b-bb - klinit.l10
There are 3 other files named klinit.l10 in the archive. Click here to see a list.
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55
TABLE OF CONTENTS

     8-  437	MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
    12-  570	DMBMCP -- DTE-20 OPERATION MACROS
    32- 1163	REGISTER SAVE/RESTORE TRANSLATION MACROS
    52- 1783	$LDNGO	-- LOAD AC BLOCKS AND GO
    53- 1840	$ZERAC	-- ZERO AC SETS 0 TO 6
    54- 1871	$XCDT	-- INSTRUCTION EXECUTER
    56- 1986	$SETCA	-- CONFIGURE CACHE
    60- 2218	$MCBLD	-- LOAD THE RAMS
    63- 2361	RDMCV - READ MICROCODE VERSION/EDIT LEVEL
    69- 2753	$FILE	-- WRITE THE CONFIGURATION FILE
    71- 3027	$FILE	-- WRITE BOOTSTRAP RECORD
    72- 3066	$FILE	-- WRITE END-OF-FILE RECORD
    73- 3082	$FILE	-- WRITE MEMORY CONTROLLER RECORDS
    74- 3117	$FILE	-- WRITE CACHE RECORDS
    75- 3149	$FILE -- WRITE MICROCODE RECORDS
    76- 3175	$FILE	-- WRITE PAGE TABLE SELECTION
    78- 3243	$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
    80- 3556	$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
    81- 3685	$CHKMM -- CHECK MOS MEMORY CONFIGURATION
    83- 3835	$CONFG -- EDITOR DISPATCH
    84- 3871	CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
    85- 3946	CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
    86- 3987	CFGMOS -- MOS CONFIGURATION EDITOR
    87- 4047	$MAPMM -- MAP MOS CONTROLLER BLOCKS
    89- 4111	$SWEEP	-- SWEEP AND INVALIDATE THE CACHE
    91- 4185	$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
    93- 4312	$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES
    98- 4513	$DELETE	-- DELETE A FILE
    99- 4543	$SETFN	-- SET FILE NAME IN FILE NAME BLOCK
   101- 4613	$IOERR	-- REPORT I/O ERROR
   104- 4731	$LOOKUP	-- LOOK UP AN EXISTING FILE
   106- 4820	$ENTER	-- ENTER A NEW FILE
   108- 4906	$PURGE	-- PURGE FILES CURRENTLY OPEN
   110- 4971	$READC	-- START READING A RECORD
   111- 4999	$READS	-- SKIP THE CURRENT RECORD
   112- 5023	$READW	-- READ A WORD
   113- 5056	$READB	-- READ A BYTE
   114- 5086	$READ	-- READ NEXT VIRTUAL BLOCK
   116- 5159	$WRITC	-- START WRITING A RECORD
   117- 5186	$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK
   118- 5216	$WRITW	-- WRITE A WORD
   119- 5250	$WRITB	-- WRITE A BYTE
   120- 5276	$WRITE	-- WRITE NEXT VIRTUAL BLOCK
   122- 5349	$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK
   124- 5418	$WCRAM	-- WRITE C-RAM WORD
   125- 5487	$RCRAM	-- READ C-RAM WORD
   126- 5586	$ACRAM	-- ADDRESS C-RAM WORD
   128- 5660	$WDRAM	-- WRITE D-RAM WORD
   129- 5713	$RDRAM	-- READ D-RAM WORD
   130- 5769	$ADRAM	-- ADDRESS D-RAM WORD
   132- 5861	$DPOS	-- DEPOSIT KL MEMORY ROUTINE
   133- 5898	$EXAM	-- EXAMINE KL MEMORY ROUTINE
   136- 6019	$DFRD	-- DIAGNOSTIC READ FUNCTION
   138- 6097	$DFWR	-- DIAGNOSTIC WRITE FUNCTION
   141- 6197	$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION
   143- 6273	$GETCA	-- SET CACHE CONFIGURATION TABLES
   146- 6375	$GETMM	-- SET UP MEMORY CONFIGURATION TABLES
KLIGP -- GET PAGE TABLE SELECTI	MACRO M1113  03-APR-86 20:55
TABLE OF CONTENTS

   149- 6506	$GETPA	-- GET PAGE TABLE SELECTION
   151- 6605	$GETTF -- READ MF20 TIMING FILE DATA
   155- 6856	$KLMR	-- DO A MASTER RESET ON THE KL
   155- 6921	$KLSR	-- SOFT RESET FOR RAM LOADERS
   157- 7024	$INIT	-- PROGRAM INITIALIZATION
   158- 7134	$DFPC -- KL PC READ SUBROUTINE 7510.21
   161- 7264	$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED
   162- 7331	$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
   163- 7380	LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
   165- 7474	$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED
   166- 7508	LQCCM	-- ASK WHICH CACHES TO CONFIGURE
   168- 7583	$DLGEX	-- ASK WHERE TO EXIT
   171- 7683	$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY
   173- 7836	$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER
   175- 8005	$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED
   176- 8191	$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED
   184- 8612	$POWER	-- POWER FAILURE RESTART
   186- 8700	$WRMRS	-- WARM RESTART (FAULT CONTINUATION)
   191- 8939	GLOBAL DATA STORAGE
   195- 9221	$START	-- MAIN PROGRAM FLOW CONTROL
   196- 9338	$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
   197- 9379	$RSAVE	-- SAVE REGISTERS FOR ROUTINES
   198- 9393	$ASCIZ	-- TRANSFER ASCII STRING
   199- 9414	$TRACK	-- SPECIAL TRACK ROUTINE
   200- 9568	$TENST	-- START KL BOOT
   202- 9698	$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME
   203- 9737	$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY
   205- 9809	$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII
   206- 9860	$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD
   208- 9954	$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
   209-10018	$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
   210-10094	TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
   212-10152	$TENAD	-- DISPLAY KL ADDRESS/16K
   214-10234	$WRD22	-- DISPLAY 22 BIT KL WORD
   215-10262	$WRD36	-- DISPLAY 36 BIT KL WORD
   218-10382	$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII
   219-10435	$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
   221-10511	$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD
   222-10557	$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII
   224-10676	$TTRD	-- READ A LINE FROM THE CONSOLE TTY
   226-10803	$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY
   227-10854	$TTWR	-- WRITE A LINE TO THE CONSOLE TTY
   228-10884	$ECHO	-- ECHO CTY OUTPUT TO LP
   229-10971	$EXBLD	-- LOAD THE BOOT
   233-11203	$EXCT	-- EXECUTE KL INSTRUCTION
   234-11234	$STRKL	-- START THE KL PROCESSOR
   235-11290	$WTKL	-- WAIT FOR KL PROGRAM TO HALT
   236-11319	$LDAR	-- LOAD THE AR REGISTER
   237-11344	STPKL	-- HALT THE KL CPU
   238-11401	$MBPHS	-- PHASE THE KL CLOCKS
   239-11453	$BURST	-- BURST THE M-BOX CLOCK
RSXFC	-- RSX20F PARAMETER FIL	MACRO M1113  03-APR-86 20:55  PAGE 1


      1						.TITLE	RSXFC	-- RSX20F PARAMETER FILE (TOPS-10 SYSTEM DEFINITION)
      2						.IDENT	/013100/
      3					;
      4					;                             COPYRIGHT (C) 1977, 1978, 1985 BY
      5					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
      6					;				ALL RIGHTS RESERVED
      7					;
      8					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
      9					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
     10					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
     11					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
     12					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
     13					;
     14					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
     15					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
     16					;       CORPORATION.
     17					;
     18					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
     19					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
     20					;
     21					; VERSION 13-10
     22					;
     23					; ALAN D. PECKHAM  19-APR-77
     24					;
     25					; MODIFIED BY:
     26					;
     27					;		R. BELANGER -- ELIMINATE 1090T "ARPA" CONFIGURATTION
     28					;		R. BELANGER -- ADD 1091 CONFIGURATION
     29					;
     30					; FUNCTION: THIS MODULE PROVIDES THE PARAMETERS FOR ASSEMBLY OF RSX20F FOR
     31					;  THE TOPS-10 SYSTEM.
     32					;
     33					; EQUATED SYMBOLS
     34					;
     35		000001 				$TOP10	=1	; DEFINE TOPS-10 OPTION
     36
     37		000001 				$LP20	=1	; INCLUDE LP20 DRIVER
     38		000002 				L$$P20	=2	; INCLUDE 2 LP-20'S
     39		000001 				$CD11	=1	; INCLUDE CD11 CARD READER DRIVER
     40		000001 				$RP04	=1	; INCLUDE RP04 DISK DRIVER
     41		000001 				$FE	=1	; INCLUDE FE PSEUDO-DEVICE DRIVER
     42		000001 				$F11	=1	; INCLUDE FILES-11 ACP
     43		000001 				$DH11	=1	; INCLUDE DH11 DRIVER
     44		000010 				D$$H11	=8.	; INCLUDE 8 DH-11'S
     45		000001 				$DBDTE	=1	; INCLUDE DTE20 DEBUGGING CODE
     46		000001 				$DTE	=1	; INCLUDE DTE20 DTE DRIVER
     47		000001 				R$$11D	=1	; RSX-11D BASE
     48
     49					.IF DF	$T1091
     50						$TOP10	=1	; DEFINE TOPS-10 BASE FOR 1091
     51					.ENDC			; $T1091
     52
     53					.IF DF	$TOP10
     54					.IF NDF	$T1091
     55		000001 				$DTA	=1	; INCLUDE DECTAPE DRIVER FOR TOPS-10
     56					.IFF
     57						$RX11	=1	; INCLUDE FLOPPY DRIVER FOR TOPS-10/1091
RSXFC	-- RSX20F PARAMETER FIL	MACRO M1113  03-APR-86 20:55  PAGE 1-1


     58					.ENDC			; $T1091
     59					.ENDC			; $TOP10
     60
     61					.IF DF	$TOP20
     62						$RX11	=1	; INCLUDE FLOPPY DRIVER
     63					.ENDC			; $TOP20
RSXFC	-- RSX20F PARAMETER FIL	MACRO M1113  03-APR-86 20:55  PAGE 2


     65
     66						.TITLE	KLINIT - KL CPU INITIALIZATION PROGRAM
     67						.IDENT	/015500/
     68						.ENABL	AMA
     69						.LIST	MEB
     70						.NLIST	CND
     71
     72					;
     73					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
     74					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
     75					;			ALL RIGHTS RESERVED.
     76					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
     77					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
     78					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
     79					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
     80					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
     81					;
     82					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
     83					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
     84					;       CORPORATION.
     85					;
     86					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
     87					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
     88					;
     89					; VERSION: 15-50
     90					;
     91					; ALAN D. PECKHAM  29-MAR-77
     92					;
     93					; MODIFIED BY:
     94					;
     95					;	M. RUDENKO	09-FEB-84	CHANGE VERSION TO 15
     96					;					ADD MG20 CONFIGURATION
     97					;					ADD MCA25 PAGE TABLE SELECTION
     98					;
     99					;	D. WEAVER	02-AUG-83	CHANGE VERSION TO 13
    100					;					WARM RESTART CODE
    101					;
    102					;	S. LEAPLINE	06-MAR-80	FIX RACE CONDITION IN BOOT
    103					;					TCO 4.1.1100
    104					;
    105					;	K. LEFEBVRE	25-JAN-80	LOG RAM ERRORS TO ERROR FILE
    106					;					TCO 4.1.1073
    107					;
    108					;	R.  BELANGER	22-OCT-79	ADD CACHE SWEEP ON RELOAD OR BOOT
    109					;					TCO 5.1013
    110					;
    111					;	K. LEFEBVRE	19-SEP-79	ADD LP SUPPORT FOR TRACK FEATURE
    112					;					TCO 5.1005
    113					;
    114					;	R. BELANGER	16-JUL-79	ADD ENVIRONMENTAL REPORTING
    115					;					TCO 4.2333
    116					;
    117					;	R. BELANGER	11-JUL-79	ADD FORCE MEMORY CONFIGURATION OPTION.
    118					;					ADD FORCE DBE SCAN ON MF-20 POWERFAIL.
    119					;					TCO 4.2322
    120					;
    121					;	K. LEFEBVRE	13-MAR-79	ADD EXPANDED CRAM/DRAM ERROR REPORT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 2-1


    122					;					TCO 4.2209
    123					;
    124					;	K. LEFEBVRE	01-MAR-79	ADD PERMANENT TRACK FEATURE
    125					;					TCO 4.2210
    126					;
    127					;	R. BELANGER	01-MAR-79	ADD REVERSE MEMORY CONFIGURATION
    128					;					TCO 4.2204
    129					;
    130					;	R. BELANGER	06-DEC-78	ADD NEW KEEP-ALIVE-CEASE PROCESSING
    131					;					TCO 4.2107
    132					;
    133					;	R. BELANGER	16-NOV-78	ADD TOPS-10 SMP FEATURES
    134					;					CHANGE VERSION TO 11
    135					;
    136					;	R. BELANGER	25-JUL-78	INTEGRATE MOS CONFIGURATOR
    137					;					CHANGE VERSION TO 10
    138					;
    139					;	R. BELANGER	27-JAN-78	CHANGE VERSION TO 7
    140					;					REMOVE "$ARPA" CONDITIONALS
    141					;					ADD "$RV" CONDITIONAL
    142					;					REMOVE "SXCT" CODE FOR REV. 10 MACHINES
    143					;
    144					;	R. BELANGER	10-SEP-77	CHANGE VERSION TO 6
    145					;					INCLUDE INTERNAL AND EXTERNAL
    146					;					MEMORY CONFIGURATORS
    147					;
    148					; THIS MODULE CONTAINS SYMBOLS AND MACROS USED GENERALLY BY ALL KLINIT
    149					;  MODULES.
    150					;
    151					; SET VERSION OF KLINIT HERE
    152					;
    153		000015 			KLI$$V	=	15		; VERSION 15
    154		000050 			KLI$$E	=	50		; EDIT 50
    155					;
    156					;
    157		000126 			KLI$$K	=	'V		; KEY FOR RELEASE
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 3


    159					;+
    160					; NOW SET THE SWITCHES WHICH WILL DETERMINE WHAT KLINIT WILL
    161					; INTERFACE TO.
    162					;
    163					;	C.ACHE	IF DEFINED WILL ALLOW KLINIT TO HANDLE CACHES
    164					;
    165					;	F.TRCK	IF DEFINED WILL INCLUDE CODING TO ALLOW TRACKING OF FUNCTIONS
    166					;		BEING DONE ON THE KL CPU
    167					;
    168					;	F.PTCH	IF DEFINED WILL INCLUDE A FREE AREA LABELED "PATCH" IN WHICH
    169					;		TO INSERT CODING PATCHES DURING PROGRAM DEBUGGING
    170					;
    171					; DEFINITIONS MADE HERE:
    172					;-
    173
    177
    179		000101 			KLI$$F	=	'A		; TOPS10 REV 10 FORM OF KLINIT.
    181
    185
    186		000000 			C.ACHE	=	0		; SYSTEM HAS CACHE
    187
    188		000001 			F.TRCK	=	1		; [TCO 4.2210] INCLUDE FUNCTION TRACK
    189
    190		000001 			FTKLI	=	1		; [4.1.1073]ASSEMBLE EROOR LOG INTERFACE
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 4


    192					;
    193					; GLOBAL MACROS
    194					;
    195						.MCALL	$DEF,DIR$
    196	000000					$DEF
    197
    198					;
    199					; LOCAL MACROS
    200					;
    201					;+
    202					; MACRO TO SET IDENT FOR KLINIT MODULES.
    203					; FORMAT OF CALL IS:
    204					;	IDENT$	VERSION,EDIT
    205					; OR
    206					;	IDENT$	VERSION,EDIT,KLI$$F
    207					; IF MODULE CODING CHANGES WITH DIFFERENT FORMS
    208					;-
    209
    210						.MACRO	IDENT$ VER,EDT,FRM,XA,XB,XC,NUM
    211						.IF	B,NUM
    212						.IF	B,FRM
    213						IDENT$	\VER,\EDT,0,,,,0
    214						.IFF
    215						.IF	EQ,<FRM-'A>
    216						IDENT$	\VER,\EDT,A,,,,0
    217						.IFF
    218						.IF	EQ,<FRM-'B>
    219						IDENT$	\VER,\EDT,B,,,,0
    220						.IFF
    221						IDENT$	\VER,\EDT,C,,,,0
    222						.ENDC
    223						.ENDC
    224						.ENDC
    225						.MEXIT
    226						.IFF
    227						.IF	GE,VER-10
    228						.IF	GE,EDT-10
    229						.LIST
    230						.IDENT	/'FRM'VER'EDT'0/
    231						.NLIST
    232						.IFF
    233						.LIST
    234						.IDENT	/'FRM'VER'0'EDT'0/
    235						.NLIST
    236						.ENDC
    237						.IFF
    238						.IF	GE,EDT-10
    239						.LIST
    240						.IDENT	/'FRM'0'VER'EDT'0/
    241						.NLIST
    242						.IFF
    243						.LIST
    244						.IDENT	/'FRM'0'VER'0'EDT'0/
    245						.NLIST
    246						.ENDC
    247						.ENDC
    248						.ENDC
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 4-1


    249						.ENDM	IDENT$
    250
    251						.MACRO	CALL	X,Y
    252						.NTYPE	$$,X
    253						.IF	EQ,$$&70
    254						 JSR	X,Y
    255						.IFF
    256						 JSR	PC,X
    257						.ENDC
    258						.ENDM	CALL
    259
    260						.MACRO	CALLR	X
    261						 JMP	X
    262						.ENDM	CALLR
    263
    264						.MACRO	RETURN	X
    265						.IF	NB,<X>
    266						 RTS	X
    267						.IFF
    268						 RTS	PC
    269						.ENDC
    270						.ENDM	RETURN
    271
    272						.MACRO	PUSH	LOCS
    273						.IRP	L,<LOCS>
    274						 MOV	L,-(SP)
    275						.ENDR
    276						.ENDM	PUSH
    277
    278						.MACRO	POP	LOCS
    279						.IRP	L,<LOCS>
    280						 MOV	(SP)+,L
    281						.ENDR
    282						.ENDM	POP
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 5


    284					;
    285					; SHIFT MACROS
    286					;
    287						.MACRO	SL	R,N
    288						.IF	GT,N-7
    289						 SWAB	R
    290						.REPT	N-10
    291						 ASL	R
    292						.ENDR
    293						.IFF
    294						.REPT	N
    295						 ASL	R
    296						.ENDR
    297						.ENDC
    298						.ENDM	SL
    299
    300						.MACRO	SR	R,N
    301						.IF	GT,N-7
    302						 SWAB	R
    303						.REPT	N-10
    304						 ASR	R
    305						.ENDR
    306						.IFF
    307						.REPT	N
    308						 ASR	R
    309						.ENDR
    310						.ENDC
    311						.ENDM	SR
    312
    313						.MACRO	ERROR$	CODE
    314						MOV	#^R'CODE,$LGERR
    315						SEC
    316						RETURN
    317						.ENDM	ERROR$
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 6


    319					;
    320					; KL INSTRUCTION AND DATA CREATION MACROS
    321					;
    322		000005 			I.10L	=	5		; KL INSTRUCTIONS TAKE 5 -11 BYTES !!!!
    323		000005 			W.10L	=	5		; KL WORDS TAKE 5 BYTES ALSO.
    324
    325						.MACRO	I10$	OP,AC,I,AD,XR
    326						 BY$$0=0
    327						 BY$$1=0
    328						 BY$$2=0
    329						.IRPC	AD1,AD
    330						 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
    331						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    332						 BY$$0=<BY$$0*10&370>+<AD1>
    333						.ENDM
    334						 BY$$2=<AC+0&1*200>+<I+0&1*100>+<XR+0&17*4>+BY$$2
    335						 BY$$3=<OP&37*10>+<AC+0/2&7>
    336						 BY$$4=<OP/40>
    337						 .BYTE	BY$$0,BY$$1,BY$$2
    338						 .BYTE	BY$$3,BY$$4
    339						.ENDM	I10$
    340
    341						.MACRO	IO10$	OP,DV,I,AD,XR
    342						 BY$$0=0
    343						 BY$$1=0
    344						 BY$$2=0
    345						.IRPC	AD1,AD
    346						 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
    347						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    348						 BY$$0=<BY$$0*10&370>+<AD1>
    349						.ENDM
    350						 BY$$2=<OP&1*200>+<I+0&1*100>+<XR+0&17+0*4>+BY$$2
    351						 BY$$3=<DV&374>+<OP/2&3>
    352						 BY$$4=16+<DV/400&1>
    353						 .BYTE	BY$$0,BY$$1,BY$$2
    354						 .BYTE	BY$$3,BY$$4
    355						.ENDM	IO10$
    356
    357						.MACRO	WD22$	AD
    358						 BY$$0=0
    359						 BY$$1=0
    360						 BY$$2=0
    361						.IRPC	AD1,AD
    362						 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
    363						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    364						 BY$$0=<BY$$0*10&370>+<AD1>
    365						.ENDM
    366						 .BYTE	BY$$0,BY$$1,BY$$2
    367						.ENDM	WD22$
    368
    369						.MACRO	WD36$	LH,RH
    370						 BY$$0=0
    371						 BY$$1=0
    372						 BY$$2=0
    373						 BY$$3=0
    374						 BY$$4=0
    375						.IRPC	AD1,LH
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 6-1


    376						 BY$$4=<BY$$4*10&010>+<BY$$3/40&007>
    377						 BY$$3=<BY$$3*10&370>+<BY$$2/40&007>
    378						 BY$$2=<BY$$2*10&340>+<AD1*4>
    379						.ENDM
    380						.IRPC	AD1,RH
    381						 BY$$2=<BY$$2&374>+<BY$$1/40&003>
    382						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    383						 BY$$0=<BY$$0*10&370>+<AD1>
    384						.ENDM
    385						 .BYTE	BY$$0,BY$$1,BY$$2
    386						 .BYTE	BY$$3,BY$$4
    387						.ENDM	WD36$
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 7


    389					;
    390					; MESSAGE FORMATING AND PRINT MACROS
    391					;
    392						.MACRO	MESSAGE	MSG
    393						 .ASCIZ	\'MSG'\
    394						.ENDM	MESSAGE
    395
    396						.MACRO	WARNING	MSG
    397						 .ASCIZ	\% 'MSG'\
    398						.ENDM	WARNING
    399
    400						.MACRO	ERROR	MSG
    401						 .ASCIZ	\? 'MSG'\
    402						.ENDM	ERROR
    403
    404						.MACRO	PRINT	ADR
    405						.IF	NB,<ADR>
    406						 MOV	ADR,R0
    407						.ENDC
    408						 JSR	PC,$TTMSG
    409						.ENDM	PRINT
    410
    411					;---	SPECIAL TRACK MACRO
    412
    413						.MACRO	TRACK	FN,ADR1,ADR2,?A1
    414						.IF	DF,F.TRCK
    415						 JSR	R0,A1
    416						 .WORD	"FN
    417						 .WORD	ADR1
    418						 .WORD	ADR2
    419					A1:	 JSR	PC,$TRACK
    420						 MOV	(SP)+,R0
    421						.ENDC
    422						.ENDM	TRACK
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 8


    424					;
    425					; EQUATED SYMBOLS
    426					;
    427		000006 			E.FFIL	=	6		; [4.1.1073]LOGGING EVENT FLAG
    428		000200 			ED.PHY	=	200
    429		000001 			TTILUN	=	1		; TT: INPUT LOGICAL UNIT
    430		000002 			TTOLUN	=	2		; TT: OUTPUT LOGICAL UNIT
    431		000003 			LPOLUN	=	3		; LP: OUTPUT LOGICAL UNIT
    432		000004 			SYILUN	=	4		; SY: INPUT LOGICAL UNIT
    433		000005 			SYOLUN	=	5		; SY: OUTPUT LOGICAL UNIT
    434		000006 			SYFLUN	=	6		; SY: GENERAL FUNCTION LOGICAL UNIT
    435		000006 			LOGLUN	=	6		; [4.1.1073] SY: ERROR LOGGING LUN
    436		000040 			CTLS	=	40		; MAXIMUM NUMBER OF CONTROLLERS.
    437						.SBTTL	MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
    438
    439						.IDENT	/001020/
    440
    441					;                            COPYRIGHT (C) 1975, 1984, 1985 BY
    442					;                    DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
    443					;			ALL RIGHTS RESERVED.
    444					;      THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
    445					;      ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
    446					;      OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
    447					;      OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
    448					;      NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
    449					;
    450					;      THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
    451					;      NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
    452					;      CORPORATION.
    453					;
    454					;      DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
    455					;      SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
    456					;
    457					;	VERSION:	01-02
    458					;
    459					;	AUTHOR:		R. BELANGER
    460					;
    461					;	DATE:		11-AUG-78
    462					;
    463					;	MODIFICATIONS:
    464					;
    465					;	EDIT	PROGRAMMER		REASON
    466					;	----	----------		------
    467					;	001	R. BELANGER		FIX BUG IN "PMSG"
    468					;     4.2218	K. LEFEBVRE		FIX BUG IN "EXAM"
    469
    470						.MCALL	$DEF
    471
    472	000000					$DEF
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 9
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE

    474						.MACRO	CALL	X,Y
    475						.NTYPE	$$,X
    476						.IF	EQ,$$&70
    477						 JSR	X,Y
    478						.IFF
    479						 JSR	PC,X
    480						.ENDC
    481						.ENDM	CALL
    482
    483						.MACRO	CALLR	X
    484						 JMP	X
    485						.ENDM	CALLR
    486
    487						.MACRO	RETURN	X
    488						.IF	NB,<X>
    489						 RTS	X
    490						.IFF
    491						 RTS	PC
    492						.ENDC
    493						.ENDM	RETURN
    494
    495						.MACRO	PUSH	LOCS
    496						.IRP	L,<LOCS>
    497						 MOV	L,-(SP)
    498						.ENDR
    499						.ENDM	PUSH
    500
    501						.MACRO	POP	LOCS
    502						.IRP	L,<LOCS>
    503						 MOV	(SP)+,L
    504						.ENDR
    505						.ENDM	POP
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 10
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE

    507					.MACRO	SL	REG,NUM
    508							.IF	GT,NUM-7
    509							.IFT
    510						  SWAB	REG
    511							.REPT	NUM-^D8
    512						  ASL	REG
    513							.ENDR
    514							.IFF
    515							.REPT	NUM
    516						  ASL	REG
    517							.ENDR
    518							.ENDC
    519					.ENDM
    520
    521					.MACRO	SR	REG,NUM
    522							.IF	GT,NUM-7
    523							.IFT
    524						  SWAB	REG
    525							.REPT	NUM-^D8
    526						  ASR	REG
    527							.ENDR
    528							.IFF
    529							.REPT	NUM
    530						  ASR	REG
    531							.ENDR
    532							.ENDC
    533					.ENDM
    534
    535					.MACRO	EXOR	REG,DESTIN,SCRTCH
    536							.IF	NB,SCRTCH
    537							.IFT
    538						  MOV	REG,SCRTCH
    539						  BIC	DESTIN,SCRTCH
    540						  BIC	REG,DESTIN
    541						  BIS	SCRTCH,DESTIN
    542							.IFF
    543						  MOV	REG,-(SP)
    544						  BIC	DESTIN,(SP)
    545						  BIC	REG,DESTIN
    546						  BIS	(SP)+,DESTIN
    547							.ENDC
    548					.ENDM
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 11
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE

    550
    551		000000 			STPCLK=	000	; STOP CLOCK
    552		000001 			STRCLK=	001	; START CLOCK
    553		000002 			SSCLK=	002	; SINGLE STEP THE MBOX CLOCK
    554		000003 			SECLK=	003	; SINGLE STEP EBOX CLOCK
    555		000004 			CECLK=	004	; CONDITIONAL EBOX CLOCK
    556		000006 			CLRMR=	006	; CLEAR MR RESET
    557		000007 			SETMR=	007	; SET MR RESET
    558		000005 			BRCLK=	005	; BURST THE CLOCK
    559		000011 			SETRUN=	011	; SET THE RUN FLOP
    560		000012 			CONBUT=	012	; SET THE CONTINUE BUTTON
    561		000077 			LDAR=	077	; LOAD THE AR REGISTER
    562
    563		000002 			$SBDIAG=BLKO
    564		000004 			$$SBDIAG=PI
    565		000000 			$APRID=BLKI
    566		000000 			$$APRID=APR
    567		000000 			$RDERA=BLKI
    568		000004 			$$RDERA=PI
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 12
DMBMCP -- DTE-20 OPERATION MACROS

    570					.SBTTL	DMBMCP -- DTE-20 OPERATION MACROS
    571
    572					;+
    573					; DFRD -- DIAGNOSTIC FUNCTION READ TRANSLATION MACRO
    574					;
    575					; DFRD TRANSLATES THE DIAGNOSTIC EMT 116 IN TO A CALL TO "$DDFRD"
    576					;
    577					; SEQUENCE OF OPERATION:
    578					;
    579					;	1. R1 IS SAVED ON THE STACK
    580					;	2. R1 IS SET POINTING TO STORAGE
    581					;	3. CALL TO "$DDFRD" IS MADE
    582					;
    583					; ERROR RETURN -- CC-C SET
    584					;
    585					; SUCCESS RETURN -- CC-C CLEAR
    586					;
    587					;	R0 -- POINTS TO DEXWDS IN ".DFRBK"
    588					;
    589					; STACK SUMMARY:
    590					;
    591					;	STACK IS UNAFFECTED
    592					;
    593					; CALLER'S RESPONSIBILITIES:
    594					;
    595					;	NONE
    596					;
    597					;-
    598
    599					.MACRO	DFRD	FUNC,ADDR
    600					.IF	NB,FUNC
    601						 MOV	#FUNC,R0	; ** FUNCTION READ CODE TO R0
    602					.ENDC	; .IF NB,FUNC
    603						 MOV	R1,-(SP)	; ** SAVE R1
    604					.IF	NB,ADDR
    605						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    606					.IFF
    607						 CLR	R1		; ** NO DATA BUFFER
    608					.IFTF
    609						 JSR	PC,$DDFRD	; ** EXECUTE THE FUNCTION READ
    610						 MOV	(SP)+,R1	; ** RESTORE R1
    611					.ENDC	; .IF NB,ADDR
    612					.ENDM	; DFRD
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 13
DMBMCP -- DTE-20 OPERATION MACROS

    614					;+
    615					; DFRDT -- DIAGNOSTIC FUNCTION READ (TRAILING) TRANSLATION MACRO
    616					;
    617					; DFRDT TRANSLATES THE DIAGNOSTIC EMT 140 INTO A "DFRD" MACRO (Q.V.)
    618					;-
    619
    620					.MACRO	DFRDT	FUNC,ADDR
    621					.IF	NB,FUNC
    622						 MOV	#FUNC,R0	; ** FUNCTION READ CODE TO R0
    623					.ENDC	; .IF NB,FUNC
    624						 MOV	R1,-(SP)	; ** SAVE R1
    625					.IF	NB,ADDR
    626						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    627					.IFF
    628						 CLR	R1		; ** NO DATA BUFFER
    629					.IFTF
    630						 JSR	PC,$DDFRD	; ** EXECUTE THE FUNCTION READ
    631						 MOV	(SP)+,R1	; ** RESTORE R1
    632					.ENDC	; .IF NB,ADDR
    633					.ENDM	; DFRDT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 14
DMBMCP -- DTE-20 OPERATION MACROS

    635					;+
    636					; DFWRT -- DIAGNOSTIC FUNCTION WRITE TRANSTATION MACRO
    637					;
    638					; DFWRT  TRANSLATES A DIAGNOSTIC EMT 141 IN TO A CALL TO "$DDFWR"
    639					;
    640					; SEQUENCE OF OPERATION:
    641					;
    642					;	1. DATA POINTER IS LOADED INTO R1
    643					;	2. FUNCTION CODE IS LOADED INTO R0
    644					;	3. CALL IS MADE TO "$DFWR"
    645					;
    646					; ERROR RETURN -- CC-C SET
    647					;
    648					; SUCCESS RETURN -- CC-C CLEAR
    649					;
    650					;	R0, R1 -- UNCHANGED
    651					;
    652					; STACK SUMMARY:
    653					;
    654					;	STACK IS UNAFFECTED
    655					;
    656					; CALLER'S REPONSIBILITIES:
    657					;
    658					;	NONE
    659					;-
    660
    661					.MACRO	DFWRT	ADDR,FUNC
    662					.IF	NB,FUNC
    663						 MOV	#FUNC,R0	; ** FUNCTION WRITE CODE TO R0
    664					.ENDC	; .IF NB,FUNC
    665					.IF	NB,ADDR
    666						 MOV	R1,-(SP)	; ** SAVE R1
    667						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    668					.IFTF
    669						 JSR	PC,$DDFWR	; ** EXECUTE THE FUNCTION WRITE
    670					.IFT
    671						 MOV	(SP)+,R1	; ** RESTORE R1
    672					.ENDC	; .IF NB,ADDR
    673					.ENDM	; DFWRT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 15
DMBMCP -- DTE-20 OPERATION MACROS

    675					;+
    676					; DFWRTT -- DIAGNOSIC FUNCTION WRITE (TRAILING) TRANSLATION MACRO
    677					;
    678					; DFWRT TRANSLATES A DIAGNOSTIC EMT 140 INTO A CALL TO "$DDFWR"
    679					;
    680					; SEQUENCE OF OPERATION:
    681					;
    682					;	1. DATA POINTER IS LOADED INTO R1
    683					;	2. FUNCTION CODE IS LOADED INTO R0
    684					;	3. CALL IS MADE TO "$DDFWR"
    685					;
    686					; ERROR RETURN -- CC-C SET
    687					;
    688					; SUCCESS RETURN -- CC-C CLEAR
    689					;
    690					;	R0, R1 -- UNCHANGED
    691					;
    692					; STACK SUMMARY:
    693					;
    694					;	STACK IS UNAFFECTED
    695					;
    696					; CALLER'S REPONSIBILITIES:
    697					;
    698					;	NONE
    699					;-
    700
    701					.MACRO	DFWRTT	ADDR,FUNC
    702					.IF	NB,FUNC
    703						 MOV	#FUNC,R0	; ** FUNCTION WRITE CODE TO R0
    704					.ENDC	; .IF NB,FUNC
    705					.IF	NB,ADDR
    706						 MOV	R1,-(SP)	; ** SAVE R1
    707						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    708					.IFTF
    709						 JSR	PC,$DDFWR	; ** EXECUTE THE FUNCTION WRITE
    710					.IFT
    711						 MOV	(SP)+,R1	; ** RESTORE R1
    712					.ENDC	; .IF NB,ADDR
    713					.ENDM	; DFWRTT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 16
DMBMCP -- DTE-20 OPERATION MACROS

    715					;+
    716					; DFXCT -- DIAGNOSTIC FUNCTION EXECUTE MACRO
    717					;
    718					; DFXCT TRANSLATES A DIAGNOSTIC EMT 114 IN TO A CALL TO "$DDFXC"
    719					;
    720					; SEQUENCE OF OPERATION:
    721					;
    722					;	1. FUNCTION CODE IS LOADED INTO R0
    723					;	2. CALL IS MADE TO "$DDFXC"
    724					;
    725					; ERROR RETURN -- CC-C SET
    726					;
    727					; SUCCESS RETURN -- CC-C CLEAR
    728					;
    729					;	R0, R1 -- UNCHANGED
    730					;
    731					; STACK SUMMARY:
    732					;
    733					;	STACK IS UNAFFECTED
    734					;
    735					; CALLER'S REPONSIBILITIES:
    736					;
    737					;	NONE
    738					;-
    739
    740					.MACRO	DFXCT	FUNC
    741					.IF	NB,FUNC
    742						 MOV	#FUNC,R0	; ** FUNCTION CODE TO R0
    743					.ENDC	; .IF NB,FUNC
    744						 JSR	PC,$DDFXC	; ** EXECUTE THE FUNCTION EXECUTE
    745					.ENDM	; DFXCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 17
DMBMCP -- DTE-20 OPERATION MACROS

    747					;+
    748					; DFXCTT -- DIAGNOSIC FUNCTION EXECUTE (TRAILING) TRANSLATION MACRO
    749					;
    750					; DFXCTT TRANSLATES A DIAGNOSTIC EMT 115 INTO A CALL TO "$DDFXC"
    751					;
    752					; SEQUENCE OF OPERATION:
    753					;
    754					;	1. FUNCTION CODE IS LOADED INTO R0
    755					;	2. CALL IS MADE TO "$DDFXC"
    756					;
    757					; ERROR RETURN -- CC-C SET
    758					;
    759					; SUCCESS RETURN -- CC-C CLEAR
    760					;
    761					;	R0, R1 -- UNCHANGED
    762					;
    763					; STACK SUMMARY:
    764					;
    765					;	STACK IS UNAFFECTED
    766					;
    767					; CALLER'S REPONSIBILITIES:
    768					;
    769					;	NONE
    770					;-
    771
    772					.MACRO	DFXCTT	FUNC
    773					.IF	NB,FUNC
    774						 MOV	#FUNC,R0	; ** FUNCTION CODE TO R0
    775					.ENDC	; .IF NB,FUNC
    776						 JSR	PC,$DDFXC	; ** EXECUTE THE FUNCTION EXECUTE
    777					.ENDM	; DFXCTT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 18
DMBMCP -- DTE-20 OPERATION MACROS

    779					;+
    780					; DPOS -- DIAGNOSTIC KL10 DEPOSIT MACRO
    781					;
    782					; DPOS TRANSLATES THE DIAGNOSTIC EMT 105 INTO A CALL TO "$DPOS"
    783					;
    784					; SEQUENCE OF OPERATION:
    785					;
    786					;	1. DATA POINTER IS LOADED INTO R0
    787					;	2. KL10 ADDRESS POINTER IS LOADED INTO R1
    788					;	3. THE CALL TO "$DPOS" IS EXECUTED
    789					;
    790					; ERROR RETURN -- CC-C IS SET
    791					;
    792					; SUCCESS RETURN - CC-C IS CLEAR
    793					;
    794					;	R0 AND R1 ARE UNCHANGED
    795					;
    796					; STACK SUMMARY:
    797					;
    798					;	STACK IS UNAFFECTED
    799					;
    800					; CALLER'S RESPONSIBILITIES:
    801					;
    802					;	NONE
    803					;-
    804
    805					.MACRO	DPOS	ADDR,DATA
    806					.IF	NB,DATA
    807						 MOV	#DATA,R0	; ** DATA POINTER TO R0
    808					.ENDC	; .IF NB,DATA
    809					.IF	NB,	ADDR
    810						 MOV	R1,-(SP)	; ** SAVE R1
    811						 MOV	#ADDR,R1	; ** ADDRESS POINTER TO R1
    812					.IFTF
    813						 JSR	PC,$DPOS	; ** EXECUTE THE DEPOSIT
    814					.IFT
    815						 MOV	(SP)+,R1	; ** RESTORE R1
    816					.ENDC	; .IF NB,ADDR
    817					.ENDM	; DPOS
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 19
DMBMCP -- DTE-20 OPERATION MACROS

    819					;+
    820					; DPOST -- DIAGNOSTIC KL10 DEPOSIT (TRAILING) MACRO
    821					;
    822					; DPOST TRANSLATES THE DIAGNOSTIC EMT 106 INTO A CALL TO "$DPOST"
    823					;
    824					; SEQUENCE OF OPERATION:
    825					;
    826					;	1. DATA POINTER IS LOADED INTO R0
    827					;	2. KL10 ADDRESS POINTER IS LOADED INTO R1
    828					;	3. THE CALL TO "$DPOS" IS EXECUTED
    829					;
    830					; ERROR RETURN -- CC-C IS SET
    831					;
    832					; SUCESS RETURN - CC-C IS CLEAR
    833					;
    834					;	R0 AND R1 ARE UNCHANGED
    835					;
    836					; STACK SUMMARY:
    837					;
    838					;	STACK IS UNAFFECTED
    839					;
    840					; CALLERS RESPONSIBILITIES:
    841					;
    842					;	NONE
    843					;-
    844
    845					.MACRO	DPOST	ADDR,DATA
    846					.IF	NB,	ADDR
    847						 MOV	#ADDR,R0	; ** ADDRESS TO R0
    848					.ENDC	; .IF NB,ADDR
    849					.IF	NB,DATA
    850						 MOV	R1,-(SP)	; ** SAVE R1
    851						 MOV	#DATA,R1	; ** DATA POINTER TO R1
    852					.IFTF
    853						 JSR	PC,$DPOST	; ** EXECUTE THE DEPOSIT
    854					.IFT
    855						 MOV	(SP)+,R1	; ** RESTORE R1
    856					.ENDC	; .IF NB,DATA
    857					.ENDM	; DPOST
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 20
DMBMCP -- DTE-20 OPERATION MACROS

    859					;+
    860					; EXAM -- DIAGNOSTIC KL10 EXAMINE TRANSLATION MACRO
    861					;
    862					; EXAM TRANSLATES A DIAGNOSTIC EMT 103 INTO A CALL TO "$EXAM"
    863					;
    864					; SEQUENCE OF OPERATION
    865					;
    866					;	1. R0 POINTS TO THE KL10 ADDRESS
    867					;	2. THE CALL TO "$EXAM" IS EXECUTED
    868					;	3. R0 POINTS TO RETURNED DATA BUFFER
    869					;
    870					; ERROR RETURN -- CC-C IS SET
    871					;
    872					; SUCCESS RETURN -- CC-C CLEAR
    873					;
    874					;
    875					; STACK SUMMARY:
    876					;
    877					;	STACK IS UNAFFECTED
    878					;
    879					; CALLER'S RESPONSIBILITIES:
    880					;
    881					;	NONE
    882					;-
    883
    884					.MACRO	EXAM	ADDR,DATA
    885					.IF	NB,ADDR
    886						 MOV	#ADDR,R0	; ** ADDRESS POINTER TO R0
    887					.ENDC	; .IF NB,ADDR
    888					.IF	NB,DATA
    889						 MOV	R1,-(SP)	; ** SAVE R1
    890						 MOV	#DATA,R1	; ** DATA BUFFER POINTER TO R1
    891					.IFF
    892						MOV	R1,-(SP)	; [4.2218] SAVE R1
    893						MOV	#.WORK,R1	; [4.2218] WORK SPACE
    894					.IFTF
    895						 JSR	PC,$EXAMD	; ** EXECUTE THE KL10 EXAMINE
    896					.IFT
    897						 MOV	(SP)+,R1	; ** RESTORE R1
    898					.IFF
    899						MOV	#.WORK,R0	; [4.2218] PTR TO 36 BIT DATA
    900						MOV	(SP)+,R1	; [4.2218] RESTORE R1
    901					.ENDC	; .IF NB,DATA
    902					.ENDM	; EXAM
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 21
DMBMCP -- DTE-20 OPERATION MACROS

    904					;+
    905					; EXAMT -- DIAGNOSTIC KL10 EXAMINE (TRAILING) TRANSLATION MACRO
    906					;
    907					; EXAMT TRANSLATES A DIAGNOSTIC EMT 104 INTO A CALL TO "$EXAM"
    908					;
    909					; SEQUENCE OF OPERATION
    910					;
    911					;	1. R1 POINTS TO THE RETURNED DATA BUFFER
    912					;	2. R0 POINTS TO THE KL10 ADDRESS
    913					;	3. THE CALL TO "$EXAM" IS EXECUTED
    914					;
    915					; ERROR RETURN -- CC-C IS SET
    916					;
    917					; SUCCESS RETURN -- CC-C CLEAR
    918					;
    919					;	R1 IS MOVED TO R0 TO MAINTAIN COMPATABILITY
    920					;
    921					; STACK SUMMARY:
    922					;
    923					;	STACK IS UNAFFECTED
    924					;
    925					; CALLER'S RESPONSIBILITIES:
    926					;
    927					;	NONE
    928					;-
    929
    930					.MACRO	EXAMT	ADDR,DATA
    931					.IF	NB,ADDR
    932						 MOV	#ADDR,R0	; ** ADDRESS POINTER TO R0
    933					.ENDC	; .IF NB,ADDR
    934					.IF	NB,DATA
    935						 MOV	R1,-(SP)	; ** SAVE R1
    936						 MOV	#DATA,R1	; ** DATA BUFFER POINTER TO R1
    937					.IFTF
    938						 JSR	PC,$EXAMT	; ** EXECUTE THE KL10 EXAMINE
    939					.IFT
    940						 MOV	(SP)+,R1	; ** RESTORE R1
    941					.ENDC	; .IF NB,DATA
    942					.ENDM	; EXAMT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 22
DMBMCP -- DTE-20 OPERATION MACROS

    944					;+
    945					; DFSCLK -- DAGNOSTIC SINGLE STEP CLOCK TRANSLATION MACRO
    946					;
    947					; DFSCLK TRANSALTES A DIAGNOSTIC EMT 122 INTO A "DFXCT SSCLK"
    948					;
    949					; SEE "DFXCT" FOR DETAILS
    950					;-
    951
    952					.MACRO DFSCLK
    953						DFXCT	SSCLK
    954					.ENDM	; DFSCLK
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 23
DMBMCP -- DTE-20 OPERATION MACROS

    956					;+
    957					; DFPC -- DIAGNOSTIC PC READ TRANSLATION MACRO
    958					;
    959					; DFPC RETURNS THE KL10 PC IN A TRIPLET POINTED TO BY R0
    960					;-
    961
    962					.MACRO	DFPC	ADDR
    963					.IF	NB,ADDR
    964						 MOV	#ADDR,R0	; ** BUFFER POINTER TO R0
    965					.ENDC	; .IF NB,ADDR
    966						 JSR	PC,$DFPC	; ** READ THE KL10 PC
    967					.ENDM	; DFPC
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 24
DMBMCP -- DTE-20 OPERATION MACROS

    969					;+
    970					; BURST -- BURST MBOX CLOCK TRANSLATION MACRO
    971					;
    972					; BURST TRANSLATES A DIAGNOSTIC EMT 131 INTO A CALL TO "$BURST"
    973					;
    974					; SEQUENCE OF OPERATION:
    975					;
    976					;	1. THE MBOX CLOCK BURST COUNT IS LOADED INTO R0
    977					;	2. THE CALL TO "$BURST" IS MADE
    978					;
    979					; ERROR RETURN -- CC-C SET
    980					;
    981					; SUCCESS RETURN -- CC-C CLEAR
    982					;
    983					; STACK SUMMARY:
    984					;
    985					;	STACK IS UNAFFECTED
    986					;
    987					; CALLER'S RESPONSIBILITIES:
    988					;
    989					;	NONE
    990					;-
    991
    992					.MACRO	BURST ARG
    993					.IF	NB,ARG
    994						 MOV	#ARG,R0		; ** BURST COUNT TO R0
    995					.ENDC	; .IF NB,ARG
    996						 JSR	PC,$BURST	; ** BURST THE MBOX CLOCK
    997					.ENDM	; BURST
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 25
DMBMCP -- DTE-20 OPERATION MACROS

    999					;+
   1000					; DTEBAS -- RETURN DTE-20 BASE ADDRESS TRANSLATION MACRO
   1001					;
   1002					; DTEBAS RETURNS THE THE BASE ADDRESS OF THE PRIVILEGED DTE-20 FROM
   1003					; ".PRDTE" IN THE REGISTER SPECIFIED
   1004					;-
   1005
   1006					.MACRO	DTEBAS	REG
   1007					.IF 	NB,REG
   1008						 MOV	.PRDTE,REG	; ** DTE-20 BASE ADDRESS TO REG
   1009					.IFF
   1010						MOV	.PRDTE,R0	; ** DTE-20 BASE ADDRESS TO R0
   1011					.ENDC	; .IF NB,REG
   1012					.ENDM	; DTEBAS
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 26
DMBMCP -- DTE-20 OPERATION MACROS

   1014					;+
   1015					; LODAR -- DIAGNOSTIC KL10 AR LOAD TRANSLATION MACRO
   1016					;
   1017					; LODAR TRANSLATES A DIAGNOSTIC EMT 102 INTO A CALL TO "$LDAR"
   1018					;
   1019					; SEQUENCE OF OPERATION:
   1020					;
   1021					;	1. R0 POINTS TO THE DATA TO BE LOADED INTO THE KL10 AR REGISTER
   1022					;	2. THE CALL TO "$LDAR" IS MADE
   1023					;
   1024					; ERROR RETURN -- CC-C SET
   1025					;
   1026					; SUCCESS RETURN -- CC-C CLEAR
   1027					;
   1028					; STACK SUMMARY:
   1029					;
   1030					;	STACK IS UNAFFECTED
   1031					;
   1032					; CALLER'S RESPONSIBILITIES:
   1033					;
   1034					;	NONE
   1035					;-
   1036
   1037					.MACRO	LODAR	DATA
   1038					.IF	NB,DATA
   1039						 MOV	#DATA,R0	; ** DATA POINTER TO R0
   1040					.ENDC	; .IF NB,DATA
   1041						 JSR	PC,$LDAR	; ** LOAD THE KL10 AR REGISTER
   1042					.ENDM	; LODAR
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 28
DMBMCP -- DTE-20 OPERATION MACROS

   1045					;+
   1046					; EXCT -- DIAGNOSTIC KL10 INSTRUCTION EXECUTE TRANSLATION MACRO
   1047					;
   1048					; EXCT TRANSLATES A DIAGNOSTIC EMT 101 INTO A CALL TO "$EXCT"
   1049					;
   1050					; SEQUENCE OF OPERATION:
   1051					;
   1052					;	1. POINTER TO KL10 INSTRUCTION IS LOADED INTO R0
   1053					;	2. CALL TO "$EXCT" IS MADE
   1054					;
   1055					; ERROR RETURN -- CC-C SET
   1056					;
   1057					; SUCCESS RETURN -- CC-C CLEAR
   1058					;
   1059					; STACK SUMMARY:
   1060					;
   1061					;	STACK IS UNAFFECTED
   1062					;
   1063					; CALLER'S RESPONSIBILITIES:
   1064					;
   1065					;	NONE
   1066					;-
   1067
   1068					.MACRO	EXCT	INST
   1069					.IF	NB,INST
   1070						 MOV	#INST,R0	; ** KL10 INSTRUCTION POINTER TO R0
   1071					.ENDC	; .IF NB,INST
   1072						 JSR	PC,$EXCT	; ** EXECUTE IT
   1073					.ENDM	; $EXCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 29
DMBMCP -- DTE-20 OPERATION MACROS

   1075					;+
   1076					; SM -- DIAGNOSTIC START MICROCODE TRANSLATION MACRO
   1077					;
   1078					; SM TRANSLATES A DIAGNOSTIC EMT 100 INTO A "MASTER RESET/ START CLOCK" SEQUENCE
   1079					;
   1080					; SEQUENCE:
   1081					;
   1082					;	1. A KL10 MASTER RESET SEQUENCE IS EXECUTED
   1083					;	2. THE KL10 CLOCK IS STARTED
   1084					;
   1085					; ERROR RETURN -- CC-C SET
   1086					;
   1087					; SUCCESS RETURN -- CC-C CLEAR
   1088					;
   1089					; STACK SUMMARY:
   1090					;
   1091					;	STACK IS UNAFFECTED
   1092					;
   1093					; CALLER'S RESPONSIBILITIES:
   1094					;
   1095					;	NONE
   1096					;-
   1097
   1098					.MACRO	SM
   1099						 JSR	PC,$KLMR	; ** MASTER RESET THE KL10
   1100						 MOV	#STRCLK,R0	; ** START CLOCK FUNCTION CODE TO R0
   1101						 JSR	PC,$DDFXC	; ** START THE KL10 CLOCK
   1102					.ENDM	; SM
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 30
DMBMCP -- DTE-20 OPERATION MACROS

   1104					;+
   1105					; WWADR -- DIAGNOSTIC CRAM ADDRESS LOAD TRANSLATION MACRO
   1106					;
   1107					; WWADR TRANSLATES A DIAGNOSTIC EMT 075 INTO A CALL TO "$ACRAM"
   1108					;
   1109					; SEQUENCE OF OPERATION
   1110					;
   1111					;	1. CRAM ADDRESS IS LOADED INTO R0
   1112					;	2. CALL TO "$ACRAM" IS MADE
   1113					;
   1114					; ERROR RETURN -- CC-C SET
   1115					;
   1116					; SUCCESS RETURN -- CC-C CLEAR
   1117					;
   1118					; STACK SUMMARY:
   1119					;
   1120					;	STACK IS UNAFFECTED
   1121					;
   1122					; CALLER'S RESPONSIBILITIES:
   1123					;
   1124					;	NONE:
   1125					;-
   1126
   1127					.MACRO	WWADR	ADDR
   1128					.IF	NB,ADDR
   1129						 MOV	#ADDR,R0	; ** CRAM ADDRESS TO R0
   1130					.ENDC	; .IF NB,ADDR
   1131						 MOV	R0,-(SP)	; ** SAVE R0
   1132						 JSR	PC,$KLMR	; ** RESET THE KL10
   1133						 MOV	(SP)+,R0	; ** RESTORE R0
   1134						 JSR	PC,$ACRAM	; ** LOAD THE CRAM ADDRESS REGISTER
   1135					.ENDM	; WWADR
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 31
DMBMCP -- DTE-20 OPERATION MACROS

   1137					;+
   1138					; MRESET -- DIAGNOSTIC KL10 MASTER RESET TRANSLATION MACRO
   1139					;
   1140					; MRESET TRANSLATES A DIAGNOSTIC EMT 076 INTO A CALL TO "$KLMR"
   1141					;
   1142					; SEQUENCE OF OPERATION:
   1143					;
   1144					;	1. THE CALL TO "$KLMR" IS EXECUTED
   1145					;
   1146					; ERROR RETURN -- CC-C SET
   1147					;
   1148					; SUCCESS RETURN -- CC-C CLEAR
   1149					;
   1150					; STACK SUMMARY:
   1151					;
   1152					;	STACK IS UNAFFECTED
   1153					;
   1154					; CALLER'S RESPONSIBILITIES:
   1155					;
   1156					;	NONE
   1157					;-
   1158
   1159					.MACRO	MRESET
   1160						 JSR	PC,$KLMR	; ** MASTER RESET THE KL10
   1161					.ENDM	; MRESET
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 32
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1163					.SBTTL REGISTER SAVE/RESTORE TRANSLATION MACROS
   1164
   1165					;+
   1166					; REGSAV -- R1 - R5 SAVE TRANSLATION MACRO
   1167					; REGRST -- R1 - R5 RESTORE TRANSLATION MACRO
   1168					;
   1169					; SEQUENCE OF OPERATION:
   1170					;
   1171					;	1. REGSAV -- R1 - R5 ARE SAVED ON THE STACK
   1172					;	2. REGRST -- R1 - R5 ARE RESTORED FROM THE STACK
   1173					;
   1174					; ALWAYS RETURNS SUCCESS
   1175					;
   1176					; STACK SUMMARY:
   1177					;
   1178					;	SP+00 ==> SAVED R1
   1179					;	SP+02 ==> SAVED R2
   1180					;	SP+04 ==> SAVED R3
   1181					;	SP+06 ==> SAVED R4
   1182					;	SP+10 ==> SAVED R5
   1183					;	SP+12 ==> SUBROUTINE RETURN PC
   1184					;
   1185					; CALLER'S RESPONSIBILITIES
   1186					;
   1187					;	CALLS TO THESE ROUTINES MUST BE PARALLEL AND SYMMETRIC
   1188					;	A ROUTINE WHICH CALLS REGSAV UPON ENTRY MAY RESTORE R0 - R5 AND EXIT
   1189					;	TO ITS CALLER VIA A SIMPLE "RTS PC"
   1190					;-
   1191
   1192					.MACRO	REGSAV
   1193						 JSR	PC,SAV.5	; ** SAVE R1 - R5 ON THE STACK
   1194					.ENDM	; REGSAV
   1195
   1196					.MACRO	REGRST
   1197						 JSR	PC,RST.5	; ** RESTORE R1 - R5 AND RETURN
   1198					.ENDM	; REGRST
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 33
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1200					;+
   1201					; VARIOUS PRINT MACROS
   1202					;
   1203					; PFORCE -- NOOP
   1204					; PNORML -- NOOP
   1205					; PNTBAK -- NOOP
   1206					;
   1207					; CHARACTERISTICS:
   1208					;
   1209					;	OBVIOUS
   1210					;-
   1211
   1212					.MACRO	PFORCE
   1213					.ENDM	; PFORCE
   1214
   1215					.MACRO	PNORML
   1216					.ENDM	; PNORML
   1217
   1218					.MACRO	PNTBAK
   1219					.ENDM	; PNTBAK
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 34
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1221					;+
   1222					; PNT36 -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
   1223					;
   1224					; PNT36 TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD36"
   1225					;
   1226					; SEQUENCE OF OPERATION:
   1227					;
   1228					;	1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
   1229					;	2. THE CALL TO "$WDD36" IS MADE
   1230					;
   1231					; ALWAYS RETURNS SUCCESS
   1232					;
   1233					; STACK SUMMARY:
   1234					;
   1235					;	STACK IS UNAFFECTED
   1236					;
   1237					; CALLER'S RESPONSIBILITIES:
   1238					;
   1239					;	NONE
   1240					;-
   1241
   1242					.MACRO	PNT36	ADDR
   1243					.IF	NB,ADDR
   1244						 MOV	#ADDR,R0	; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
   1245					.ENDC	; .IF NB,ADDR
   1246						 JSR	PC,$WDD36	; ** CALL TO PRINT ROUTINE
   1247					.ENDM	; PNT36
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 35
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1249					;+
   1250					; PNTADR -- 22-BIT KL10 ADDRESS PRINT TRANSLATION MACRO
   1251					;
   1252					; PNTADR TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD22"
   1253					;
   1254					; SEQUENCE OF OPERATION:
   1255					;
   1256					;	1. THE POINTER TO THE 22-BIT DATA IS LOADED INTO R0
   1257					;	2. THE CALL TO "$WDD22" IS MADE
   1258					;
   1259					; ALWAYS RETURNS SUCCESS
   1260					;
   1261					; STACK SUMMARY:
   1262					;
   1263					;	STACK IS UNAFFECTED
   1264					;
   1265					; CALLER'S RESPONSIBILITIES:
   1266					;
   1267					;	NONE
   1268					;-
   1269
   1270					.MACRO	PNTADR	ADDR
   1271					.IF	NB,ADDR
   1272						 MOV	#ADDR,R0	; ** ADDRESS OF 22-BIT KL10 ADDRESS TO R0
   1273					.ENDC	; .IF NB,ADDR
   1274						 JSR	PC,$WDD22	; ** CALL TO PRINT ROUTINE
   1275					.ENDM	; PNTADR
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 36
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1277					;+
   1278					; PNTNBR -- NUMERIC PRINT TRANSLATION MACRO
   1279					;
   1280					; PNTNBR TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TDB2O"
   1281					;
   1282					; SEQUENCE OF OPERATION:
   1283					;
   1284					;	"$TDB2O" IS CALLED
   1285					;
   1286					; ALWAYS RETURNS SUCCESS
   1287					;
   1288					; STACK SUMMARY:
   1289					;
   1290					;	STACK IS UNAFFECTED
   1291					;
   1292					; CALLER'S RESPONSIBILITIES:
   1293					;
   1294					;	NONE
   1295					;-
   1296
   1297					.MACRO	PNTNBR
   1298						 MOV	R0,-(SP)	; ** SAVE R0
   1299						 BIC	#^C777,R0	; ** MASK OFF UNWANTED BITS
   1300						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1301						 MOV	(SP)+,R0	; ** RESTORE R0
   1302					.ENDM	; PNTNBR
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 37
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1304					;+
   1305					; PNT36B -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
   1306					;
   1307					; PNT36B TRANSLATES A DIAGNOSTIC EMT 134 INTO A CALL TO "$WDD36"
   1308					;
   1309					; SEQUENCE OF OPERATION:
   1310					;
   1311					;	1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
   1312					;	2. THE CALL TO "$WDD36" IS MADE
   1313					;
   1314					; ALWAYS RETURNS SUCCESS
   1315					;
   1316					; STACK SUMMARY:
   1317					;
   1318					;	STACK IS UNAFFECTED
   1319					;
   1320					; CALLER'S RESPONSIBILITIES:
   1321					;
   1322					;	NONE
   1323					;-
   1324
   1325					.MACRO	PNT36B	ADDR
   1326					.IF	NB,ADDR
   1327						 MOV	#ADDR,R0	; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
   1328					.ENDC	; .IF NB,ADDR
   1329						 JSR	PC,$WDD36	; ** CALL TO PRINT ROUTINE
   1330					.ENDM	; PNT36B
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 38
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1332					;+ PNTOCT -- PRINT OCTAL NUMBER TRANSLATION MACRO
   1333					;
   1334					; PNTOCT TRANSLATES A DIAGNOSTIC EMT 035 INTO A CALL TO "$TDB2O"
   1335					;
   1336					; SEQUENCE OF OPERATION
   1337					;
   1338					;	1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
   1339					;	2. THE CALL IS MADE TO "$TDB2O"
   1340					;
   1341					; ALWAYS RETURNS SUCCESS
   1342					;
   1343					; STACK SUMMARY:
   1344					;
   1345					;	STACK IS UNAFFECTED
   1346					;
   1347					; CALLER'S RESPONSIBILITIES:
   1348					;
   1349					;	NONE
   1350					;-
   1351
   1352					.MACRO	PNTOCT	NUMB
   1353					.IF	NB,NUMB
   1354						.NTYPE	$$T$$,NUMB
   1355					.IF	EQ,$$T$$&70
   1356						 MOV	NUMB,R0		; ** GET THE NUMBER INTO R0
   1357					.IFF
   1358						 MOV	#NUMB,R0	; ** GET THE NUMBER INTO R0
   1359					.ENDC	; .IF EQ,$$T$$&70
   1360					.ENDC	; .IF NB,NUMB
   1361						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1362					.ENDM	; PNTOCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 39
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1364					;+ PNTOCS -- PRINT OCTAL NUMBER TRANSLATION MACRO
   1365					;
   1366					; PNTOCS TRANSLATES A DIAGNOSTIC EMT 036 INTO A CALL TO "$TDB2O"
   1367					;
   1368					; SEQUENCE OF OPERATION
   1369					;
   1370					;	1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
   1371					;	2. THE CALL IS MADE TO "$TDB2O"
   1372					;
   1373					; ALWAYS RETURNS SUCCESS
   1374					;
   1375					; STACK SUMMARY:
   1376					;
   1377					;	STACK IS UNAFFECTED
   1378					;
   1379					; CALLER'S RESPONSIBILITIES:
   1380					;
   1381					;	NONE
   1382					;-
   1383
   1384					.MACRO	PNTOCS	NUMB
   1385					.IF	NB,NUMB
   1386						.NTYPE	$$T$$,NUMB
   1387					.IF	EQ,$$T$$&70
   1388						 MOV	NUMB,R0		; ** GET THE NUMBER INTO R0
   1389					.IFF
   1390						 MOV	#NUMB,R0	; ** GET THE NUMBER INTO R0
   1391					.ENDC	; .IF EQ,$$T$$&70
   1392					.ENDC	; .IF NB,NUMB
   1393						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1394					.ENDM	; PNTOCS
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 40
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1396					;+ PNTDEC -- PRINT DECIMAL NUMBER TRANSLATION MACRO
   1397					;
   1398					; PNTDEC TRANSLATES A DIAGNOSTIC EMT 037 INTO A CALL TO "$TDB2I"
   1399					;
   1400					; SEQUENCE OF OPERATION
   1401					;
   1402					;	1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
   1403					;	2. THE CALL IS MADE TO "$TDB2I"
   1404					;
   1405					; ALWAYS RETURNS SUCCESS
   1406					;
   1407					; STACK SUMMARY:
   1408					;
   1409					;	STACK IS UNAFFECTED
   1410					;
   1411					; CALLER'S RESPONSIBILITIES:
   1412					;
   1413					;	NONE
   1414					;-
   1415
   1416					.MACRO	PNTDEC	NUMB
   1417					.IF	NB,NUMB
   1418						.NTYPE	$$T$$,NUMB
   1419					.IF	EQ,$$T$$&70
   1420						 MOV	NUMB,R0		; ** GET THE NUMBER INTO R0
   1421					.IFF
   1422						 MOV	#NUMB,R0	; ** GET THE NUMBER INTO R0
   1423					.ENDC	; .IF EQ,$$T$$&70
   1424					.ENDC	; .IF NB,NUMB
   1425						 JSR	PC,$TDB2I	; ** PRINT THE NUMBER
   1426					.ENDM	; PNTDEC
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 41
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1428					;+
   1429					; PNTODT -- FORMATTED OCTAL PRINT TRANSLATION MACRO
   1430					;
   1431					; PNTODT TRANSLATES A DIAGNOSTIC EMT 047 INTO A CALL TO "$TDB2O"
   1432					;
   1433					; SEQUENCE OF OPERATION:
   1434					;
   1435					;	1. THE NUMBER IN R0 IS MASKED TO THE PROPER WIDTH
   1436					;	2. THE CALL TO "$TDB2O" IS MADE
   1437					;
   1438					; ALWAYS RETURNS SUCCESS
   1439					;
   1440					; STACK SUMMARY:
   1441					;
   1442					;	STACK IS UNAFFECTED
   1443					;
   1444					; CALLER'S RESPONSIBILITIES:
   1445					;
   1446					;	NONE
   1447					;-
   1448
   1449					.MACRO	PNTODT	ARG
   1450					.IF	NB,ARG
   1451						 MOV	R0,-(SP)	; ** SAVE R0
   1452					.IF	EQ,ARG-1
   1453						 BIC	#^C7,R0		; ** MASK OUT UNWANTED BITS
   1454					.ENDC	; .IF EQ, ARG-1
   1455					.IF	EQ,ARG-2
   1456						 BIC	#^C77,R0	; ** MASK OUT UNWANTED BITS
   1457					.ENDC	; .IF EQ, ARG-2
   1458					.IF	EQ,ARG-3
   1459						 BIC	#^C777,R0	; ** MASK OUT UNWANTED BITS
   1460					.ENDC	; .IF EQ, ARG-3
   1461					.IF	EQ,ARG-4
   1462						 BIC	#^C7777,R0	; ** MASK OUT UNWANTED BITS
   1463					.ENDC	; .IF EQ, ARG-4
   1464					.IF	EQ,ARG-5
   1465						 BIC	#^C77777,R0	; ** MASK OUT UNWANTED BITS
   1466					.ENDC	; .IF EQ, ARG-5
   1467					.IFTF
   1468						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1469					.IFT
   1470						 MOV	(SP)+,R0	; ** RESTORE R0
   1471					.ENDC	;.IF NB,ARG
   1472					.ENDM	; PNTODT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 42
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1474					;+
   1475					; PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
   1476					;
   1477					; PMSG TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO  "$TTDMS"
   1478					;
   1479					; SEQUENCE OF OPERATION:
   1480					;
   1481					;	1. A POINTER TO THE MESSAGE IS LOADED INTO R0
   1482					;	2. THE CALL TO "$TTDMS" IS MADE
   1483					;
   1484					; ALWAYS RETURNS SUCCESS
   1485					;
   1486					; STACK SUMMARY:
   1487					;
   1488					;	STACK IS UNAFFECTED
   1489					;
   1490					; CALLER'S RESPONSIBILITIES
   1491					;
   1492					;	NONE
   1493					;-
   1494
   1495					.MACRO	PMSG	MSG,?L1,?L2
   1496						 MOV	#L1,R0		; ** MESSAGE POINTER TO R0
   1497						 JSR	PC,$TTDMS	; ** OUTPUT THE MESSAGE
   1498						 BR	L2		; ** BRANCH AROUND TEXT
   1499						 ;
   1500					L1:	 .ASCIZ	%MSG%
   1501						 .EVEN
   1502					L2:
   1503					.ENDM	; PMSG
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 43
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1505					;+
   1506					; PNTAL -- DIAGNOSTIC PRINT ASCII LINE TRANSLATION MACRO
   1507					;
   1508					; PNTAL TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO  "$TTDMS"
   1509					;
   1510					; SEQUENCE OF OPERATION:
   1511					;
   1512					;	1. A POINTER TO THE MESSAGE IS LOADED INTO R0
   1513					;	2. THE CALL TO "$TTDMS" IS MADE
   1514					;
   1515					; ALWAYS RETURNS SUCCESS
   1516					;
   1517					; STACK SUMMARY:
   1518					;
   1519					;	STACK IS UNAFFECTED
   1520					;
   1521					; CALLER'S RESPONSIBILITIES
   1522					;
   1523					;	NONE
   1524					;-
   1525
   1526					.MACRO	PNTAL
   1527						 JSR	PC,$TTDMS	; ** OUTPUT THE MESSAGE
   1528					.ENDM	; PNTAL
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 44
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1530					;+
   1531					; $PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
   1532					;
   1533					; $PMSG TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TTDMS"
   1534					;
   1535					; SEQUENCE OF OPERATION
   1536					;
   1537					;	1. MESSAGE POINTER IS LOADED INTO R0
   1538					;	2. CALL IS MADE TO "$TTDMS"
   1539					;
   1540					; ALWAYS RETURNS SUCCESS
   1541					;
   1542					; STACK SUMMARY:
   1543					;
   1544					;	STACK IS UNAFFECTED
   1545					;-
   1546
   1547					.MACRO	$PMSG	ARG
   1548					.IF	NB,ARG
   1549						 MOV	#ARG,R0		; ** TEXT POINTER TO R0
   1550					.ENDC	; .IF NB,ARG
   1551						 JSR	PC,$TTDMS	; ** OUTPUT THE MESSAGE
   1552					.ENDM	; $PMSG
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 45
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1554					;+
   1555					; PSPACE ET. AL. -- VARIOUS PRINT MACROS
   1556					;
   1557					; PSPACE PRINTS A <SPACE>
   1558					; PTAB PRINTS A <TAB>
   1559					; PSLASH PRINTS A <SLASH>
   1560					; PBELL PRINTS A <BELL>
   1561					; PCRLF PRINTS A <CR><LF>
   1562					;
   1563					; SEQUENCE OF OPERATION:
   1564					;
   1565					;	THE APPROPRIATE CALL IS MADE
   1566					;
   1567					; ALWAYS RETURNS SUCCESS
   1568					;
   1569					; STACK SUMMARY:
   1570					;
   1571					;	STACK IS UNAFFECTED
   1572					;
   1573					; CALLER'S RESPONSIBILITIES:
   1574					;
   1575					;	NONE
   1576					;-
   1577
   1578					.MACRO	PSPACE
   1579						 JSR	PC,$TTSPC	; ** PRINT A <SPACE>
   1580					.ENDM	; PSPACE
   1581
   1582					.MACRO	PSLASH
   1583						 JSR	PC,$TTSLS	; ** PRINT A <SLASH>
   1584					.ENDM	; PSLASH
   1585
   1586					.MACRO	PBELL
   1587						 JSR	PC,$TTBEL	; ** PRINT A <BELL>
   1588					.ENDM	; PBELL
   1589
   1590					.MACRO	PTAB
   1591						 JSR	PC,$TTTAB	; ** PRINT A <TAB>
   1592					.ENDM	; PTAB
   1593
   1594					.MACRO	PCRLF
   1595						 JSR	PC,$TCRLF	; ** PRINT A <CR><LF>
   1596					.ENDM	; PCRLF
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 46
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1598					;+
   1599					; TTIOCT -- DIAGNOSTIC OCTAL INPUT TRANSLATION MACRO
   1600					;
   1601					; TTIOCT TRANSLATES A DIAGNOSTIC OCTAL INPUT EMT INTO A CALL TO "$TDO2B"
   1602					;
   1603					; SEQUENCE OF OPERATION:
   1604					;
   1605					;	THE CALL TO "$TDO2B" IS EXECUTED
   1606					;
   1607					; SUCCESS RETURN -- CC-C CLEAR
   1608					;
   1609					; ERROR RETURN -- CC-C SET
   1610					;
   1611					;	NUMBER IN R0 IN EITHER CASE
   1612					;
   1613					; STACK SUMMARY:
   1614					;
   1615					;	STACK IS UNAFFECTED
   1616					;
   1617					; CALLER'S RESPONSIBILITIES:
   1618					;
   1619					;	NONE
   1620					;-
   1621
   1622					.MACRO	TTIOCT
   1623						 JSR	PC,$TDO2B	; ** READ OCTAL NUMBER
   1624					.ENDM	; TTIOCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 47
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1626					;+
   1627					; TTIDEC -- DIAGNOSTIC DECIMAL INPUT TRANSLATION MACRO
   1628					;
   1629					; TTIDEC TRANSLATES A DIAGNOSTIC DECIMAL INPUT EMT INTO A CALL TO "$TDI2B"
   1630					;
   1631					; SEQUENCE OF OPERATION:
   1632					;
   1633					;	THE CALL TO "$TDI2B" IS EXECUTED
   1634					;
   1635					; SUCCESS RETURN -- CC-C CLEAR
   1636					;
   1637					; ERROR RETURN -- CC-C SET
   1638					;
   1639					;	NUMBER IN R0 IN EITHER CASE
   1640					;
   1641					; STACK SUMMARY:
   1642					;
   1643					;	STACK IS UNAFFECTED
   1644					;
   1645					; CALLER'S RESPONSIBILITIES:
   1646					;
   1647					;	NONE
   1648					;-
   1649
   1650					.MACRO	TTIDEC
   1651						 JSR	PC,$TDI2B	; ** READ DECIMAL NUMBER
   1652					.ENDM	; TTIDEC
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 48
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1654					;+
   1655					; TTILIN -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
   1656					;
   1657					; TTILIN TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
   1658					;
   1659					; SEQUENCE OF OPERATION:
   1660					;
   1661					;	THE CALL TO "$TTRD" IS EXECUTED
   1662					;
   1663					; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
   1664					;
   1665					; ESCAPES THROUGH "$ERROR" ON ERROR
   1666					;
   1667					; STACK SUMMARY:
   1668					;
   1669					;	STACK IS UNAFFECTED
   1670					;
   1671					; CALLER'S RESPONSIBILITIES:
   1672					;
   1673					;	NONE
   1674					;-
   1675
   1676					.MACRO	TTILIN
   1677						 JSR	PC,$TTRD	; ** READ TERMINAL INPUT
   1678					.ENDM	; TTILIN
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 49
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1680					;+
   1681					; TTILNW -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
   1682					;
   1683					; TTILNW TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
   1684					;
   1685					; SEQUENCE OF OPERATION:
   1686					;
   1687					;	THE CALL TO "$TTRD" IS EXECUTED
   1688					;
   1689					; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
   1690					;
   1691					; ESCAPES THROUGH "$ERROR" ON ERROR
   1692					;
   1693					; STACK SUMMARY:
   1694					;
   1695					;	STACK IS UNAFFECTED
   1696					;
   1697					; CALLER'S RESPONSIBILITIES:
   1698					;
   1699					;	NONE
   1700					;-
   1701
   1702					.MACRO	TTILNW
   1703						 JSR	PC,$TTRD	; ** READ TERMINAL INPUT
   1704					.ENDM	; TTILNW
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 50
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1706					;+
   1707					; FATAL -- MEMORY BOOT ERROR CALL TRANSLATION MACRO
   1708					;
   1709					; FATAL EXECUTES A CALL TO "$FATAL" WHERE THE MEMORY BOOT IS ABORTED
   1710					; AFTER THE ERROR CODE IS PRINTED
   1711					;
   1712					; SEQUENCE OF OPERATION:
   1713					;
   1714					;	THE CALL TO "$FATAL" IS EXECUTED
   1715					;
   1716					; NEVER RETURNS (GUARANTEED ESCAPE)
   1717					;
   1718					; STACK SUMMARY:
   1719					;
   1720					;	POINTER TO ERROR TEXT IS ON TOP OF THE STACK
   1721					;
   1722					; CALLER'S RESPONSIBILITIES:
   1723					;
   1724					;	NONE
   1725					;-
   1726
   1727					.MACRO	FATAL	TXT
   1728					.IF NB,	<TXT>
   1729					ER$'TXT==.
   1730						 JSR	PC,$FATAL	; ** FATAL "TXT" ERROR
   1731						 .ASCIZ	%TXT%
   1732						.EVEN
   1733					.IFF
   1734						.ERROR			; ** UNDEFINED ERROR TRAP!!
   1735					.ENDC	; .IF NB, <TXT>
   1736					.ENDM	; FATAL
KLINIT - KL CPU INITIALIZATION 	MACRO M1113  03-APR-86 20:55  PAGE 51
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1738
   1739
   1740						.TITLE	KLIAC	-- AC PROGRAM CONTROL
   1741	000000					IDENT$	5,3								; ADP02
						.IDENT	/005030/
   1742
   1743					;
   1744					; COPYRIGHT (C)  1977, 1984 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   1745					;
   1746					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   1747					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   1748					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   1749					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   1750					;
   1751					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   1752					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   1753					; EQUIPMENT CORPORATION.
   1754					;
   1755					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   1756					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   1757					;
   1758					; VERSION 05-03									; ADP02
   1759					;
   1760					; ALAN D. PECKHAM  29-MAR-77
   1761					;
   1762					; MODIFIED BY:
   1763					;
   1764					;	R. BELANGER	24-AUG-78	CLEAR ALL EIGHT (0 - 7) AC BLOCKS.
   1765					;
   1766					; FUNCTION: KL AC MANIPULATION.
   1767					;
   1768					; EQUATED SYMBOLS
   1769					;
   1770		000003 			DATAO	=	3		; KL I/O SUBFUNCTION CODE.
   1771		000010 			PAG	=	10		; KL DEVICE.
   1772					;
   1773					; LOCAL DATA
   1774					;
   1775	000000					.PSECT	DATA,D
   1776	000000				DACAB:	WD36$	400000 000000	; OBJECT FOR DATAO PAG TO SET AC BLOCK.
	000000	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000003	   000 	   010 			 .BYTE	BY$$3,BY$$4
   1777	000005				DACBI:	IO10$	DATAO PAG,,0	; KL INSTRUCTION TO SET AC BLOCK.
	000005	   000 	   000 	   200 		 .BYTE	BY$$0,BY$$1,BY$$2
	000010	   011 	   016 			 .BYTE	BY$$3,BY$$4
   1778	000012				DACAD:	WD22$	0		; BUCKET FOR AC ADDRESSES.
	000012	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   1779	000015				DACBF:	WD36$	0 0		; GENERAL 36 BIT BUCKET.
	000015	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000020	   000 	   000 			 .BYTE	BY$$3,BY$$4
   1780						.EVEN
   1781	000000					.PSECT
KLIAC	-- AC PROGRAM CONTROL	MACRO M1113  03-APR-86 20:55  PAGE 52
$LDNGO	-- LOAD AC BLOCKS AND GO

   1783						.SBTTL	$LDNGO	-- LOAD AC BLOCKS AND GO
   1784					;+
   1785					; LOAD THE SPECIFIED AC BLOCKS WITH INSTRUCTIONS AND DATA AND
   1786					; CONDITIONALLY START THE KL AT A GIVEN LOCATION. THE LOADING IS DRIVEN
   1787					; BY A LIST WHICH IS POINTED TO BY R0. THE ENTRIES ARE:
   1788					;
   1789					;  CHOOSE AC BLOCK AND LOAD N ACS STARTING WITH M
   1790					;
   1791					;	.BYTE	ACBLK*10,M,N	; WHERE AND HOW MUCH
   1792					;	.BLKB	N*5		; WORDS TO LOAD
   1793					;
   1794					;  START KL AT AC M AND RETURN
   1795					;
   1796					;	.BYTE	ACBLK*10,M,-1	; WHERE TO START
   1797					;
   1798					;  RETURN WITHOUT STARTING KL
   1799					;
   1800					;	.BYTE	-1		; END OF LOAD LIST
   1801					;
   1802					;  A PREVIOUS CONTEXT AC BLOCK MAY BE SPECIFIED IN THE BOTTOM 3 BITS
   1803					;  OF THE AC BLOCK BYTE. IF LEFT ZERO, THE PREVIOUS CONTEXT WILL BE
   1804					;  AC BLOCK ZERO.
   1805					;
   1806					; INPUTS:
   1807					;	R0	- POINTER TO AC LOAD LIST.
   1808					;
   1809					; OUTPUTS:
   1810					;	CARRY IS SET IF ERROR OCCURRED DURING LOAD OR START.
   1811					;-
   1812
   1813	000000	004537 	024204'		$LDNGO::JSR	R5,$RSAVE	; SAVE MY REGISTERS.
   1814	000004	010005 				MOV	R0,R5		; COPY LOAD LIST.
   1815	000006	105137 	000003'			COMB	DACAB+3		; INVALIDATE THE CURRENT AC BLOCK.		; ADP02
   1816	000012	112500 			10$:	MOVB	(R5)+,R0	; NEXT AC BLOCK NUMBER
   1817	000014	100434 				BMI	80$		; STOP IF NEGATIVE.
   1818	000016	123700 	000003'			CMPB	DACAB+3,R0	; IF THE SAME AS LAST TIME
   1819	000022	001411 				BEQ	30$		; THEN DON'T CHANGE AC BLOCK
   1820	000024	110037 	000003'			MOVB	R0,DACAB+3	; OTHERWISE GET BLOCK AND
   1821	000030	012700 	000005'			MOV	#DACBI,R0	; EXECUTE DATAO PAG
   1822	000034	012701 	000000'			MOV	#DACAB,R1	; WITH OUR DATA.
   1823	000040					CALL	$XCDT		; AVOID USING AN AC.
	000040	004737 	000206'			 JSR	PC,$XCDT
   1824	000044	103421 				BCS	90$
   1825	000046	012700 	000012'		30$:	MOV	#DACAD,R0	; GET PLACE FOR
   1826	000052	112510 				MOVB	(R5)+,(R0)	; THE NEXT AC ADDRESS
   1827	000054	112502 				MOVB	(R5)+,R2	; AND GET NUMBER OF ACS.
   1828	000056	100411 				BMI	50$		; IF NEG, START AT AC.
   1829	000060	010501 			40$:	MOV	R5,R1		; GET ADDRESS OF DATA
   1830	000062					CALL	$DPOS		; AND STORE IT.
	000062	004737 	013074'			 JSR	PC,$DPOS
   1831	000066	103410 				BCS	90$
   1832	000070	105210 				INCB	(R0)		; INCREMENT ADDRESS
   1833	000072	062705 	000005 			ADD	#5,R5		; AND LIST POINTER
   1834	000076	077210 				SOB	R2,40$		; AND GO BACK IF MORE.
   1835	000100	000744 				BR	10$		; OTHERWISE GET NEXT DIRECTION.
   1836	000102				50$:	CALLR	$STRKL		; START KL AT ADDRESS.
	000102	000137 	030726'			 JMP	$STRKL
KLIAC	-- AC PROGRAM CONTROL	MACRO M1113  03-APR-86 20:55  PAGE 52-1
$LDNGO	-- LOAD AC BLOCKS AND GO

   1837	000106	000241 			80$:	CLC			; END OF LOAD.
   1838	000110				90$:	RETURN
	000110	000207 				 RTS	PC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1113  03-APR-86 20:55  PAGE 53
$ZERAC	-- ZERO AC SETS 0 TO 6

   1840						.SBTTL	$ZERAC	-- ZERO AC SETS 0 TO 6
   1841					;+
   1842					; ZERO ALL ACS INCLUDING SET 7 WHICH BELONGS TO THE MICROCODE.
   1843					;
   1844					; NO INPUTS
   1845					;
   1846					; OUTPUTS:
   1847					;	CARRY IS SET ON ERROR.
   1848					;-
   1849
   1850	000112	004537 	024204'		$ZERAC::JSR	R5,$RSAVE	; SAVE HIS REGISTERS.
   1851	000116	012703 	000070 			MOV	#70,R3		; ZERO AC SET 6 TO 0.				; ADP02
   1852
   1853	000122	110337 	000003'		10$:	MOVB	R3,DACAB+3	; NEXT AC BLOCK.				;**-1
   1854	000126	012701 	000000'			MOV	#DACAB,R1	; GET DATA FOR
   1855	000132	012700 	000005'			MOV	#DACBI,R0	; DATAO PAG TO
   1856	000136					CALL	$XCDT		; SET THE CURRENT AC SET.
	000136	004737 	000206'			 JSR	PC,$XCDT
   1857	000142	103420 				BCS	90$
   1858	000144	012702 	000020 			MOV	#20,R2		; ZERO 20 ACS.
   1859	000150	012701 	000000'			MOV	#.ZERO,R1	; (DATA TO DEPOSIT)
   1860	000154	012700 	000012'			MOV	#DACAD,R0	; GET POINTER TO ADDRESS
   1861	000160	105010 				CLRB	(R0)		; AND START AT ZERO.
   1862	000162				20$:	CALL	$DPOS		; CLEAR THE AC.
	000162	004737 	013074'			 JSR	PC,$DPOS
   1863	000166	103406 				BCS	90$
   1864	000170	105210 				INCB	(R0)		; GO ON
   1865	000172	077205 				SOB	R2,20$		; TO THE NEXT ONE.
   1866	000174	162703 	000010 			SUB	#10,R3		; IF ANOTHER AC SET TO DO			; ADP01
   1867	000200	002350 				BGE	10$		; THEN DO IT.					; ADP01
   1868	000202	000241 				CLC			; (MAKE SURE CARRY IS CLEAR)			; ADP01
   1869	000204				90$:	RETURN
	000204	000207 				 RTS	PC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1113  03-APR-86 20:55  PAGE 54
$XCDT	-- INSTRUCTION EXECUTER

   1871						.SBTTL	$XCDT	-- INSTRUCTION EXECUTER
   1872					;+
   1873					; EXECUTE AN INSTRUCTION AND SUBSTITUTE THE GIVEN DATA INTO THE AR
   1874					; AFTER THE AR FETCH. THIS IS DONE BY LOADING THE INSTRUCTION AND
   1875					; STEPPING THE CLOCK UNTIL "CON AR LOADED H" IS UP. THE DATA IS THEN
   1876					; WRITTEN INTO THE AR OVER THE PREVIOUS FETCHED DATA AND THE INSTRUCTION
   1877					; IS ALLOWED TO FINISH. NOTE THAT THIS ASSUMES THAT THE FETCH IS
   1878					; SUCCESSFUL.
   1879					;
   1880					; INPUTS:
   1881					;	R0	- ADDRESS OF KL INSTRUCTION TO EXECUTE.
   1882					;	R1	- ADDRESS OF 36 BIT DATA WORD TO SUBSTITUTE.
   1883					;
   1884					; OUTPUTS:
   1885					;	CARRY IS SET IF ERROR OCCURS.
   1886					;-
   1887
   1888	000206	004537 	024204'		$XCDT::	JSR	R5,$RSAVE	; SAVE THE REGISTERS AND
   1889	000212	010103 				MOV	R1,R3		; COPY THE POINTER TO THE DATA.
   1890	000214					CALL	$LDAR		; LOAD THE INSTRUCTION
	000214	004737 	031176'			 JSR	PC,$LDAR
   1891	000220	103436 				BCS	90$		; AND
   1892	000222	012700 	012000 			MOV	#.CONBT,R0	; PUSH THE CONTINUE BUTTON.
   1893	000226					CALL	$DFXC
	000226	004737 	013760'			 JSR	PC,$DFXC
   1894	000232	103431 				BCS	90$
   1895	000234	012700 	000022 			MOV	#18.,R0		; GIVE THE CLOCK
   1896	000240					CALL	$BURST		; AN 18. TICK LEAD.
	000240	004737 	031612'			 JSR	PC,$BURST
   1897	000244	103424 				BCS	90$
   1898	000246	012702 	000144 			MOV	#100.,R2	; LIMIT THE CLOCK TO 100. TICKS
   1899	000252	012701 	000015'			MOV	#DACBF,R1	; AND GET SCRATCH BUFFER.
   1900	000256	012700 	132000 		20$:	MOV	#<132*1000>,R0	; NOW READ
   1901	000262					CALL	$DFRD		; A DIAGNOSTIC REGISTER AND
	000262	004737 	013444'			 JSR	PC,$DFRD
   1902	000266	103413 				BCS	90$
   1903	000270	132761 	000020 	000001 		BITB	#20,1(R1)	; IF "CON AR LOADED H"
   1904	000276	001010 				BNE	30$		; IS NOT UP,
   1905	000300	012700 	002000 			MOV	#.SSCLK,R0	; STEP THE CLOCK
   1906	000304					CALL	$DFXC
	000304	004737 	013760'			 JSR	PC,$DFXC
   1907	000310	103402 				BCS	90$
   1908	000312	077217 				SOB	R2,20$		; AND LOOK AGAIN.
   1909	000314	000261 				SEC			; THIS TOOK TOO LONG.
   1910	000316				90$:	RETURN
	000316	000207 				 RTS	PC
   1911	000320	012700 	004000 		30$:	MOV	#.CECLK,R0	; THE AR IS RIPE TO LOAD, SO
   1912	000324					CALL	$DFXC		; PHASE THE CLOCKS
	000324	004737 	013760'			 JSR	PC,$DFXC
   1913	000330	103772 				BCS	90$
   1914	000332	010301 				MOV	R3,R1		; GET THE SUBSTITUTE WORD
   1915	000334	012700 	077000 			MOV	#.LDAR,R0	; AND LOAD IT
   1916	000340					CALL	$DFWR		; INTO THE AR.
	000340	004737 	013556'			 JSR	PC,$DFWR
   1917	000344	103764 				BCS	90$
   1918	000346	012700 	001000 			MOV	#.STRCL,R0	; LET THE INSTRUCTION COMPLETE.
   1919	000352					CALLR	$DFXC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1113  03-APR-86 20:55  PAGE 54-1
$XCDT	-- INSTRUCTION EXECUTER

	000352	000137 	013760'			 JMP	$DFXC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1113  03-APR-86 20:55  PAGE 55
$XCDT	-- INSTRUCTION EXECUTER

   1921
   1922
   1923						.TITLE	KLICA -- LOAD CACHE REFILL RAM
   1924	000356					IDENT$	5,1
						.IDENT	/005010/
   1925					;
   1926					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   1927					; ALL RIGHTS RESERVED.
   1928					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   1929					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   1930					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   1931					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   1932					;
   1933					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   1934					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   1935					; EQUIPMENT CORPORATION.
   1936					;
   1937					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   1938					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   1939					;
   1940					; VERSION 05-01
   1941					;
   1942					; ALAN D. PECKHAM  8-APR-77
   1943					;
   1944					; MODIFIED BY:
   1945					;
   1946					; FUNCTION: COMPUTE THE REFILL ALGORITHM FOR THE GIVEN CACHE CONFIGURATION
   1947					;  AND WRITE IT TO THE CACHE REFILL RAM.
   1948					;
   1950					; EQUATED SYMBOLS
   1951					;
   1952		000000 			APR	=	0		; KL DEVICE.
   1953		000002 			BLKO	=	2		; KL I/O SUBFUNCTION CODE.
   1954		000014 			CCA	=	14		; KL DEVICE.
   1955		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
   1956		000001 			DATAI	=	1		; KL I/O SUBFUNCTION CODE.
   1957		000540 			HRR	=	540		; KL INSTRUCTION CODE.
   1958		000254 			JRST	=	254		; KL INSTRUCTION CODE.
   1959		000322 			JUMPE	=	322		; KL INSTRUCTION CODE.
   1960		000010 			PAG	=	10		; KL DEVICE.
   1961		000400 			SETZ	=	400		; KL INSTRUCTION CODE.
   1962					;
   1963					; LOCAL DATA
   1964					;
   1965	000022					.PSECT	DATA,D
   1966						.ODD			; DCAWRF MUST BE ON EVEN BOUNDRY.
   1967	000023	   000 	   000 	   010 	DCAPGM:	.BYTE	0,0,10		; LOAD AC0-AC7 OF AC SET 0.
   1968	000026					WD36$	0 0		; AC0
	000026	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000031	   000 	   000 			 .BYTE	BY$$3,BY$$4
   1969	000033				DCASIA:	IO10$	DATAI CCA,,0	; AC1 - A SWPIA INSTRUCTION.
	000033	   000 	   000 	   200 		 .BYTE	BY$$0,BY$$1,BY$$2
	000036	   014 	   016 			 .BYTE	BY$$3,BY$$4
   1970	000040				DCARCA:	IO10$	CONO PAG,,0	; AC2 - RESET CACHE & PAGING STATUS.
	000040	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000043	   012 	   016 			 .BYTE	BY$$3,BY$$4
   1971	000045					I10$	JUMPE 0,,3	; AC3
KLICA -- LOAD CACHE REFILL RAM	MACRO M1113  03-APR-86 20:55  PAGE 55-1
$XCDT	-- INSTRUCTION EXECUTER

	000045	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000050	   220 	   006 			 .BYTE	BY$$3,BY$$4
   1972	000052					I10$	HRR 6,,0	; AC4
	000052	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000055	   003 	   013 			 .BYTE	BY$$3,BY$$4
   1973	000057					I10$	SETZ 0,,0	; AC5
	000057	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000062	   000 	   010 			 .BYTE	BY$$3,BY$$4
   1974	000064				DCAWRF:	IO10$	BLKO APR,,0	; AC6 - WRFIL INSTRUCTION.
	000064	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000067	   001 	   016 			 .BYTE	BY$$3,BY$$4
   1975	000071					I10$	JRST 0,,3	; AC7
	000071	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000074	   140 	   005 			 .BYTE	BY$$3,BY$$4
   1976	000076	   000 	   001 	   377 		.BYTE	0,1,-1		; START AT AC1 OF AC SET 0.
   1977	000101				DCARFL:	.BLKB	5		; WORK TABLE.
   1978						.EVEN
   1979	000000					.PSECT	TEXT,D
   1980	000000				TCACEF:	ERROR	<CACHE ENABLE FAILED>
	000000	   077 	   040 	   103 		 .ASCIZ	\? CACHE ENABLE FAILED\
	000003	   101 	   103 	   110
	000006	   105 	   040 	   105
	000011	   116 	   101 	   102
	000014	   114 	   105 	   040
	000017	   106 	   101 	   111
	000022	   114 	   105 	   104
	000025	   000
   1981	000026				TCAACE:	MESSAGE	<ALL CACHES ENABLED>
	000026	   101 	   114 	   114 		 .ASCIZ	\ALL CACHES ENABLED\
	000031	   040 	   103 	   101
	000034	   103 	   110 	   105
	000037	   123 	   040 	   105
	000042	   116 	   101 	   102
	000045	   114 	   105 	   104
	000050	   000
   1982	000051				TCASCE:	MESSAGE	<CACHES X,X,X, ENABLED>
	000051	   103 	   101 	   103 		 .ASCIZ	\CACHES X,X,X, ENABLED\
	000054	   110 	   105 	   123
	000057	   040 	   130 	   054
	000062	   130 	   054 	   130
	000065	   054 	   040 	   105
	000070	   116 	   101 	   102
	000073	   114 	   105 	   104
	000076	   000
   1983	000077				TCAACD:	MESSAGE	<CACHES DISABLED>
	000077	   103 	   101 	   103 		 .ASCIZ	\CACHES DISABLED\
	000102	   110 	   105 	   123
	000105	   040 	   104 	   111
	000110	   123 	   101 	   102
	000113	   114 	   105 	   104
	000116	   000
   1984	000356					.PSECT
KLICA -- LOAD CACHE REFILL RAM	MACRO M1113  03-APR-86 20:55  PAGE 56
$SETCA	-- CONFIGURE CACHE

   1986						.SBTTL	$SETCA	-- CONFIGURE CACHE
   1987					;+
   1988					; INITIALIZE THE CACHE REFILL RAM IF CACHE IS TO BE TURNED ON AND
   1989					; REPORT THE CACHE STATUS.
   1990					;
   1991					; INPUTS:
   1992					;	.NCACH	- NUMBER OF CACHES TO BE USED.
   1993					;	.CACHN	- NUMBERS OF THE CACHES TO BE USED.
   1994					;
   1995					; OUTPUTS:
   1996					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   1997					;-
   1998
   1999	000356	012700 	000023'		$SETCA::MOV	#DCAPGM,R0	; GET OUR KL PROGRAM
   2000	000362					CALL	$LDNGO		; LOAD AND START IT.
	000362	004737 	000000'			 JSR	PC,$LDNGO
   2001	000366	103564 				BCS	200$
   2002	000370	105737 	000064'			TSTB	.NCACH		; IF NO CACHES WERE REQUESTED
   2003	000374	003557 				BLE	190$		; THEN NO ACTION NECESSARY.
   2004	000376	012701 	000066'			MOV	#DCAWRF+2,R1	; GET DATA AREA AND
   2005	000402	042711 	000003 			BIC	#3,(R1)		; CLEAR IT OUT.
   2006	000406	005041 				CLR	-(R1)
   2007	000410	005005 				CLR	R5		; +++001 R5 >MUST< INITIALLY BE CLEAR!!!
   2008	000412	113700 	000065'			MOVB	.CACHN,R0	; SET LRU IN CASE OF SINGLE CACHE.
   2009	000416	006200 				ASR	R0		; SHIFT LOW ORDER BIT
   2010	000420	103002 				BCC	20$		; INTO KL INSTRUCTION -
   2011	000422	052711 	100000 			BIS	#100000,(R1)	; (KIND OF A HACK....)
   2012	000426	050061 	000002 		20$:	BIS	R0,2(R1)	; INSTALL REST.
   2013									; INITIALIZE COUNTERS:
   2014	000432	105003 				CLRB	R3		; NEW CACHE NUMBER.
   2015	000434	105004 			30$:	CLRB	R4		; MRU CACHE.
   2016	000436	105005 			40$:	CLRB	R5		; LRU CACHE
   2017	000440	122737 	000001 	000064'	50$:	CMPB	#1,.NCACH	; ONLY ONE CACHE ?
   2018	000446	001504 				BEQ	180$		; YES, BYPASS THIS STUFF.
   2019	000450	042721 	100000 			BIC	#100000,(R1)+	; CLEAR OUT DATA BITS.
   2020	000454	042711 	000003 			BIC	#000003,(R1)
   2021	000460	012702 	000101'			MOV	#DCARFL,R2	; INITIALIZE TABLE.
   2022	000464	110522 				MOVB	R5,(R2)+	; LRU CACHE
   2023	000466	005000 				CLR	R0		; FIND LOW CACHE NUMBER
   2024	000470	000401 				BR	70$
   2025	000472	005200 			60$:	INC	R0
   2026	000474	120005 			70$:	CMPB	R0,R5
   2027	000476	001775 				BEQ	60$
   2028	000500	120004 				CMPB	R0,R4
   2029	000502	001773 				BEQ	60$
   2030	000504	012701 	000003 			MOV	#3,R1		; AND HIGH CACHE NUMBER
   2031	000510	000401 				BR	90$
   2032	000512	005301 			80$:	DEC	R1
   2033	000514	120105 			90$:	CMPB	R1,R5
   2034	000516	001775 				BEQ	80$
   2035	000520	120104 				CMPB	R1,R4
   2036	000522	001773 				BEQ	80$
   2037	000524	005705 				TST	R5		; AND INSTALL IN TABLE
   2038	000526	100003 				BPL	100$		; AS INTERMEDIATE CACHES.
   2039	000530	110022 				MOVB	R0,(R2)+
   2040	000532	110122 				MOVB	R1,(R2)+
   2041	000534	000402 				BR	110$
KLICA -- LOAD CACHE REFILL RAM	MACRO M1113  03-APR-86 20:55  PAGE 56-1
$SETCA	-- CONFIGURE CACHE

   2042	000536	110122 			100$:	MOVB	R1,(R2)+
   2043	000540	110022 				MOVB	R0,(R2)+
   2044	000542	110422 			110$:	MOVB	R4,(R2)+	; MRU CACHE
   2045	000544	110312 				MOVB	R3,(R2)		; NEW CACHE.
   2046	000546	120342 			120$:	CMPB	R3,-(R2)	; ADJUST LIST TO REFLECT
   2047	000550	001376 				BNE	120$		; NEW CACHE IN USE.
   2048	000552	022702 	000101'			CMP	#DCARFL,R2
   2049	000556	003402 				BLE	130$
   2050	000560	012702 	000101'			MOV	#DCARFL,R2
   2051	000564	116222 	000001 		130$:	MOVB	1(R2),(R2)+
   2052	000570	022702 	000105'			CMP	#DCARFL+4,R2
   2053	000574	003373 				BGT	130$
   2054	000576	012702 	000101'			MOV	#DCARFL,R2	; NOW, SCREEN OUT
   2055	000602	012701 	000065'		140$:	MOV	#.CACHN,R1	; UNWANTED LRUS.
   2056	000606	113700 	000064'			MOVB	.NCACH,R0
   2057	000612	122112 			150$:	CMPB	(R1)+,(R2)
   2058	000614	001403 				BEQ	160$
   2059	000616	077003 				SOB	R0,150$
   2060	000620	005202 				INC	R2
   2061	000622	000767 				BR	140$
   2062	000624	012701 	000064'		160$:	MOV	#DCAWRF,R1
   2063	000630	112200 				MOVB	(R2)+,R0	; GET LRU AND
   2064	000632	006200 				ASR	R0		; SHIFT LOW ORDER BIT
   2065	000634	103002 				BCC	170$		; INTO KL INSTRUCTION -
   2066	000636	052711 	100000 			BIS	#100000,(R1)	; (KIND OF A HACK....)
   2067	000642	050061 	000002 		170$:	BIS	R0,2(R1)	; INSTALL REST OF LRU.
   2068	000646	122212 				CMPB	(R2)+,(R2)	; CHECK ORDER AND
   2069	000650	003003 				BGT	180$
   2070	000652	052761 	000002 	000002 		BIS	#000002,2(R1)	; AND INSTALL IT.
   2071	000660	012700 	000000'		180$:	MOV	#.ZERO,R0	; GIVE THE DATA TO THE AC PROGRAM
   2072	000664					CALL	$DPOS		; TO STORE IN THE REFILL RAM.
	000664	004737 	013074'			 JSR	PC,$DPOS
   2073	000670	103423 				BCS	200$
   2074	000672	062711 	000004 			ADD	#4,(R1)		; INCREMENT THE COUNTS
   2075	000676	105205 				INCB	R5
   2076	000700	122705 	000003 			CMPB	#3,R5
   2077	000704	002255 				BGE	50$		; TO LOOP.
   2078	000706	105105 				COMB	R5
   2079	000710	005105 				COM	R5
   2080	000712	100651 				BMI	40$
   2081	000714	105204 				INCB	R4
   2082	000716	122704 	000003 			CMPB	#3,R4
   2083	000722	002245 				BGE	40$
   2084	000724	105203 				INCB	R3
   2085	000726	122703 	000003 			CMPB	#3,R3
   2086	000732	002240 				BGE	30$
   2087	000734				190$:	CALLR	LCARPT		; REPORT WHAT CACHES ENABLED.
	000734	000137 	000754'			 JMP	LCARPT
   2088	000740				200$:	PRINT	#TCACEF		; CACHE ENABLE FAILED.
	000740	012700 	000000'			 MOV	#TCACEF,R0
	000744	004737 	027634'			 JSR	PC,$TTMSG
   2089	000750	000261 				SEC
   2090	000752					RETURN
	000752	000207 				 RTS	PC
KLICA -- LOAD CACHE REFILL RAM	MACRO M1113  03-APR-86 20:55  PAGE 57
$SETCA	-- CONFIGURE CACHE

   2092					;+
   2093					; REPORT THE CACHE CONFIGURATION
   2094					;-
   2095
   2096	000754	012701 	000077'		LCARPT:	MOV	#TCAACD,R1	; GET MESSAGE FOR NO CACHE
   2097	000760	113702 	000064'			MOVB	.NCACH,R2	; AND IF NONE,
   2098	000764	003433 				BLE	80$		; PRINT THE MESSAGE.
   2099	000766	012701 	000026'			MOV	#TCAACE,R1	; USE ALL CACHE MESSAGE IF
   2100	000772	022702 	000004 			CMP	#4,R2		; ALL CACHES ARE BEING USED.
   2101	000776	003426 				BLE	80$
   2102	001000	012701 	000051'			MOV	#TCASCE,R1	; MUST BE A PARTIAL CONFIGURATION.
   2103	001004	010105 				MOV	R1,R5
   2104	001006	122725 	000123 		10$:	CMPB	#'S,(R5)+	; LOOK FOR PLACE TO
   2105	001012	001375 				BNE	10$
   2106	001014	122725 	000040 			CMPB	#' ,(R5)+	; INSERT CACHE NUMBERS.
   2107	001020	001372 				BNE	10$
   2108	001022	012703 	000065'			MOV	#.CACHN,R3
   2109	001026	112315 			20$:	MOVB	(R3)+,(R5)	; GET NEXT NUMBER
   2110	001030	152725 	000060 			BISB	#'0,(R5)+	; AND MAKE PRINTABLE.
   2111	001034	112725 	000054 			MOVB	#',,(R5)+
   2112	001040	077206 				SOB	R2,20$		; DO FOR ALL NUMBERS.
   2113	001042	111765 	177777 		30$:	MOVB	(PC),-1(R5)	; NOW CLEAN UP
   2114	001046	122725 	000040 			CMPB	#' ,(R5)+
   2115	001052	001373 				BNE	30$
   2116	001054				80$:	PRINT	R1
	001054	010100 				 MOV	R1,R0
	001056	004737 	027634'			 JSR	PC,$TTMSG
   2117	001062	000241 				CLC
   2118	001064				90$:	RETURN
	001064	000207 				 RTS	PC
   2119
KLICA -- LOAD CACHE REFILL RAM	MACRO M1113  03-APR-86 20:55  PAGE 58
$SETCA	-- CONFIGURE CACHE

   2122
   2123						.TITLE	KLICB -- LOAD THE MICROCODE
   2124	001066					IDENT$	5,3,KLI$$F
						.IDENT	/A05030/
   2125					;
   2126					; COPYRIGHT (C)  1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   2127					; ALL RIGHTS RESERVED.
   2128					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   2129					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   2130					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   2131					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   2132					;
   2133					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   2134					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   2135					; EQUIPMENT CORPORATION.
   2136					;
   2137					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   2138					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   2139					;
   2140					; VERSION 05-02
   2141					;
   2142					; ALAN D. PECKHAM  11-APR-77
   2143					;
   2144					; MODIFICATIONS:
   2145					;
   2146					;	K. LEFEBVRE	13-MAR-79	EXPANDED CRAM/DRAM ERROR REPORT
   2147					;					TCO 4.2209
   2148					; 001	S. LEAPLINE	19-AUG-81	READ MICROCODE FILENAME FROM CONFIG FILE
   2149					;	M. RUDENKO	25-JUL-84	READ MICROCODE VERSION AND EDIT LEVEL
   2150					;					FROM CRAM
   2151					;
   2152					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL
   2153					;  MICROCODE FROM THE FILE 'KL.MCB'.
   2154					;
   2155					; EQUATED SYMBOLS
   2156					;
   2157		000000 			APR	=	0		; KL DEVICE.
   2158		000000 			BLKI	=	0		; KL I/O SUBFUNCTION CODE.
   2159					;
   2160					; LOCAL DATA
   2161					;
   2162	000106					.PSECT	DATA,D
   2163	000106	000000 			MAJVER:	.WORD	0		; [**] MICROCODE VERSION #
   2164	000110	000000 			SUBVER: .WORD	0		; [**] MICROCODE SUB VERSION #
   2165	000112	000000 			UEDIT:	.WORD	0		; [**] MICROCODE EDIT LEVEL
   2166	000114	043240 	000000 	000000 	DCBFNM:	.RAD50	/KL       MCB/	; MICROCODE FILE NAME.
	000122	050672
   2167	000124	000000 				.WORD	0		; GET LATEST VERSION.
   2168	000126	   005 	   005 			.BYTE	5,5
   2169	000130	054523 	000000 			.WORD	"SY,0
   2170	000134	000000 			DCBADR:	.WORD	0		; RAM ADDRESS FROM RECORD.
   2171	000136	000000 	000000 	000000 	DCBDAT:	.WORD	0,0,0,0,0,0	; RAM DATA WORK AREA.
	000144	000000 	000000 	000000
   2172	000152	000000 			DCBCNT:	.WORD	0		; VERIFY DIFFERENCE COUNT.
   2173	000154	000000 			DCBFIX:	.WORD	0		; [4.2209] MICROCODE FIX FLAG
   2174	000156	000000 	000000 	000000 	DCBCBF:	.WORD	0,0,0,0,0,0	; HOLDING AREA FOR C-RAM WORD.
	000164	000000 	000000 	000000
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 58-1
$SETCA	-- CONFIGURE CACHE

   2175	000172	000000 	000000 	000000 	DCBDBF:	.WORD	0,0,0		; D-RAM WORD HOLDING AREA.
   2176						.EVEN			; DCBBF MUST BE ON A WORD BOUNDRY.
   2177					;DCBBF:	WD36$	0 0		; APRID RESULT.
   2178					;DCBA17:	WD22$	17		; AC17 ADDRESS.
   2179					;DCBAPR:	IO10$	BLKI APR,,17	; APRID INSTRUCTION.
   2180	000200	   113 	   114 	   111 	TTTPR:	.ASCIZ	/KLI -- /			;[4.2209]
	000203	   040 	   055 	   055
	000206	   040 	   000
   2181						.EVEN
   2182	000117					.PSECT	TEXT,D
   2183	000117				TCBDCW:	ERROR	<C-RAM DIFFERS AT XXXXXX>
	000117	   077 	   040 	   103 		 .ASCIZ	\? C-RAM DIFFERS AT XXXXXX\
	000122	   055 	   122 	   101
	000125	   115 	   040 	   104
	000130	   111 	   106 	   106
	000133	   105 	   122 	   123
	000136	   040 	   101 	   124
	000141	   040 	   130 	   130
	000144	   130 	   130 	   130
	000147	   130 	   000
   2184	000151				TCBDDW:	ERROR	<D-RAM DIFFERS AT XXXXXX>
	000151	   077 	   040 	   104 		 .ASCIZ	\? D-RAM DIFFERS AT XXXXXX\
	000154	   055 	   122 	   101
	000157	   115 	   040 	   104
	000162	   111 	   106 	   106
	000165	   105 	   122 	   123
	000170	   040 	   101 	   124
	000173	   040 	   130 	   130
	000176	   130 	   130 	   130
	000201	   130 	   000
   2185	000203				TCBMLF:	ERROR	<MICROCODE LOAD FAILED>
	000203	   077 	   040 	   115 		 .ASCIZ	\? MICROCODE LOAD FAILED\
	000206	   111 	   103 	   122
	000211	   117 	   103 	   117
	000214	   104 	   105 	   040
	000217	   114 	   117 	   101
	000222	   104 	   040 	   106
	000225	   101 	   111 	   114
	000230	   105 	   104 	   000
   2186	000233				TCBMVF:	ERROR	<MICROCODE VERIFY FAILED>
	000233	   077 	   040 	   115 		 .ASCIZ	\? MICROCODE VERIFY FAILED\
	000236	   111 	   103 	   122
	000241	   117 	   103 	   117
	000244	   104 	   105 	   040
	000247	   126 	   105 	   122
	000252	   111 	   106 	   131
	000255	   040 	   106 	   101
	000260	   111 	   114 	   105
	000263	   104 	   000
   2187	000265				TCBFXF:	ERROR	<MICROCODE FIX FAILED>			; [4.2209]
	000265	   077 	   040 	   115 		 .ASCIZ	\? MICROCODE FIX FAILED\
	000270	   111 	   103 	   122
	000273	   117 	   103 	   117
	000276	   104 	   105 	   040
	000301	   106 	   111 	   130
	000304	   040 	   106 	   101
	000307	   111 	   114 	   105
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 58-2
$SETCA	-- CONFIGURE CACHE

	000312	   104 	   000
   2188	000314				TCBMVL:	MESSAGE	<MICROCODE VERSION XX.X[XXX] LOADED>
	000314	   115 	   111 	   103 		 .ASCIZ	\MICROCODE VERSION XX.X[XXX] LOADED\
	000317	   122 	   117 	   103
	000322	   117 	   104 	   105
	000325	   040 	   126 	   105
	000330	   122 	   123 	   111
	000333	   117 	   116 	   040
	000336	   130 	   130 	   056
	000341	   130 	   133 	   130
	000344	   130 	   130 	   135
	000347	   040 	   114 	   117
	000352	   101 	   104 	   105
	000355	   104 	   000
   2189	000357				TCBMVV:	MESSAGE	<MICROCODE VERSION XX.X[XXX] VERIFIED>
	000357	   115 	   111 	   103 		 .ASCIZ	\MICROCODE VERSION XX.X[XXX] VERIFIED\
	000362	   122 	   117 	   103
	000365	   117 	   104 	   105
	000370	   040 	   126 	   105
	000373	   122 	   123 	   111
	000376	   117 	   116 	   040
	000401	   130 	   130 	   056
	000404	   130 	   133 	   130
	000407	   130 	   130 	   135
	000412	   040 	   126 	   105
	000415	   122 	   111 	   106
	000420	   111 	   105 	   104
	000423	   000
   2190	000424				TCBBAD:	MESSAGE	<BAD  >					; [4.2209]
	000424	   102 	   101 	   104 		 .ASCIZ	\BAD  \
	000427	   040 	   040 	   000
   2191	000432				TCBGOD:	MESSAGE	<GOOD >					; [4.2209]
	000432	   107 	   117 	   117 		 .ASCIZ	\GOOD \
	000435	   104 	   040 	   000
   2192	000440				TCBXOR:	MESSAGE	<XOR  >					; [4.2209]
	000440	   130 	   117 	   122 		 .ASCIZ	\XOR  \
	000443	   040 	   040 	   000
   2193	000446				TCBMRE:	WARNING	<READ ERROR ON CONFIG FILE - LOADING DEFAULT MICROCODE> ;001
	000446	   045 	   040 	   122 		 .ASCIZ	\% READ ERROR ON CONFIG FILE - LOADING DEFAULT MICROCODE\
	000451	   105 	   101 	   104
	000454	   040 	   105 	   122
	000457	   122 	   117 	   122
	000462	   040 	   117 	   116
	000465	   040 	   103 	   117
	000470	   116 	   106 	   111
	000473	   107 	   040 	   106
	000476	   111 	   114 	   105
	000501	   040 	   055 	   040
	000504	   114 	   117 	   101
	000507	   104 	   111 	   116
	000512	   107 	   040 	   104
	000515	   105 	   106 	   101
	000520	   125 	   114 	   124
	000523	   040 	   115 	   111
	000526	   103 	   122 	   117
	000531	   103 	   117 	   104
	000534	   105 	   000
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 58-3
$SETCA	-- CONFIGURE CACHE

   2194	001066					.PSECT
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 59
$SETCA	-- CONFIGURE CACHE

   2196					;+
   2197					; LOAD THE BINARY RAM FILE INTO THE KL OR USE THE FILE TO
   2198					; VERIFY THE RAM CODE.
   2199					; THE RAM BINARY FILE HAS THREE RECORD TYPES.
   2200					;	*D-RAM RECORDS:
   2201					;	.WORD	2+<6*N>		; BYTE COUNT RECORD LENGTH.
   2202					;	.WORD	ADR		; D-RAM ADDRESS (SHOULD BE EVEN).
   2203					;	.BLKW	3*N		; D-RAM CODE WORDS.
   2204					;	*C-RAM RECORDS:
   2205					;	.WORD	2+<14*N>	; BYTE COUNT RECORD LENGTH.
   2206					;	.WORD	100000+ADR	; C-RAM ADDRESS.
   2207					;	.BLKW	6*N		; C-RAM CODE WORDS.
   2208					;	*END OF FILE:
   2209					;	.WORD	2		; BYTE COUNT RECORD LENGTH.
   2210					;	.WORD	100000!ADR	; C-RAM STARTING ADDRESS
   2211					;				; (NORMALLY ZERO).
   2212					;
   2213					; THE C-RAM RECORDS MUST BE SORTED IN ASCENDING ORDER BY ADDRESS
   2214					; SO THAT UNUSED WORDS MAY BE CLEARED WITHOUT HAVING TO CLEAR ALL
   2215					; THE C-RAM LOCATIONS.
   2216					;-
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 60
$MCBLD	-- LOAD THE RAMS

   2218						.SBTTL	$MCBLD	-- LOAD THE RAMS
   2219					;+
   2220					; LOAD OR VERIFY THE C&D-RAMS AND REPORT THE VERSION.
   2221					;
   2222					; INPUTS:
   2223					;	.DRSW	- IF NON-ZERO, LOAD RAMS, OTHERWISE VERIFY.
   2224					;
   2225					; OUTPUTS:
   2226					;	CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   2227					;+
   2228					; GET THE FILE AND INITIALIZE THE KL FOR MICROCODE OPERATIONS.
   2229					;-
   2230
   2231	001066				$MCBLD::
   2232	001066	105737 	000025'			TSTB	.MCBSW		; 001 - FILENAME ALREADY SPECIFIED ??
   2233	001072	001007 				BNE	5$		; 001 - BRANCH IF YES
   2234	001074					CALL	LQMRFN		; 001 - READ MICROCODE FILENAME FROM CONFIG FILE
	001074	004737 	001246'			 JSR	PC,LQMRFN
   2235	001100	103004 				BCC	5$		; 001 - BRANCH IF NO ERRORS
   2236	001102					PRINT	#TCBMRE		; 001 - TELL HIM WERE LOADING THE DEFAULT
	001102	012700 	000446'			 MOV	#TCBMRE,R0
	001106	004737 	027634'			 JSR	PC,$TTMSG
   2237	001112	012700 	000114'		5$:	MOV	#DCBFNM,R0	; GET UCODE FILE NAME AND
   2238	001116	012710 				MOV	(PC)+,(R0)	; ASSUME MODEL A MICROCODE
   2239	001120	043241 				.RAD50	/KLA/		; FOR MODEL A CPU.
   2240	001122	105737 	000044'			TSTB	.EASW		; IF
   2241	001126	003402 				BLE	10$		; MODEL B THEN
   2242	001130	012710 				MOV	(PC)+,(R0)	; CHOOSE
   2243	001132	043270 				.RAD50	/KLX/		; MODEL B MICROCODE
   2244	001134	105737 	000025'		10$:	TSTB	.MCBSW		; IF FILE NAME SPECIFIED
   2245	001140	003402 				BLE	20$		; BY OPERATOR
   2246	001142	012700 	000456'			MOV	#.MCBFN,R0	; THEN USE HIS.
   2247	001146				20$:	CALL	$LOOKUP		; AND OPEN IT.
	001146	004737 	007562'			 JSR	PC,$LOOKUP
   2248	001152	103411 				BCS	40$
   2249	001154	005037 	000152'			CLR	DCBCNT		; INITIALIZE RAM DIFFERENCE COUNT.
   2250	001160	012703 	000136'			MOV	#DCBDAT,R3	; DATA AREA AND
   2251	001164	005002 				CLR	R2		; NEXT C-RAM ADDRESS TO DEPOSIT.
   2252	001166					CALL	$KLMR		; RESET THE WORLD.
	001166	004737 	015232'			 JSR	PC,$KLMR
   2253	001172	103077 				BCC	LCBRC
   2254	001174				30$:	RETURN
	001174	000207 				 RTS	PC
   2255
   2256	001176	122737 	000000G	000526'	40$:	CMPB	#IE.NSF,.SYSTA	; IF FILE NOT FOUND
   2257	001204	001373 				BNE	30$
   2258	001206					CALL	$IOERR		; DECLARE THE ERROR.
	001206	004737 	007346'			 JSR	PC,$IOERR
   2259	001212	000137 	002636'			JMP	LCBFL		; REPORT OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 61
$MCBLD	-- LOAD THE RAMS

   2261					;+
   2262					; READ 3 OR 6 WORDS FROM THE MICROCODE FILE.
   2263					;
   2264					; INPUTS:
   2265					;	R3	- POINTER TO AREA TO RECIEVE DATA.
   2266					;
   2267					; OUTPUTS:
   2268					;	CARRY SET IF ERROR. R0, R4 & R5 ARE DESTROYED.
   2269					;-
   2270
   2271						.ENABL	LSB
   2272	001216	012705 	000003 		LCB3W:	MOV	#3,R5		; GET 3 WORDS.
   2273	001222	000402 				BR	10$
   2274	001224	012705 	000006 		LCB6W:	MOV	#6,R5		; GET 6 WORDS.
   2275	001230	010304 			10$:	MOV	R3,R4
   2276	001232				20$:	CALL	$READW
	001232	004737 	010324'			 JSR	PC,$READW
   2277	001236	103402 				BCS	30$
   2278	001240	010024 				MOV	R0,(R4)+
   2279	001242	077505 				SOB	R5,20$
   2280	001244				30$:	RETURN
	001244	000207 				 RTS	PC
   2281						.DSABL	LSB
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 62
$MCBLD	-- LOAD THE RAMS

   2283					;+
   2284					;
   2285					; LOCAL SUBROUTINE TO READ THE MICROCODE FILE NAME FROM KL.CFG. IF NOT FOUND
   2286					; THE DEFAULT(DEC SUPPLIED) MICROCODE IS LOADED.
   2287					;
   2288					;-
   2289
   2290	001246				LQMRFN:
   2291	001246	012700 	001534'			MOV	#DQBFNM,R0		; GET THE FILE TO LOOK UP
   2292	001252					CALL	$LOOKUP			; LOOK UP THE FILE
	001252	004737 	007562'			 JSR	PC,$LOOKUP
   2293	001256	103002 				BCC	10$			; BRANCH IF FOUND
   2294	001260	000241 				CLC				; NO ERROR IF NOT FOUND
   2295	001262	000442 				BR	60$			; EXIT
   2296	001264				10$:
   2297	001264					CALL	$READC			; READ FIRST RECORD
	001264	004737 	010216'			 JSR	PC,$READC
   2298	001270	103434 				BCS	50$			; EXIT ON ERROR
   2299	001272	022700 	000004 			CMP	#4,R0			; THIS RECORD OURS ??
   2300	001276	001411 				BEQ	30$			; BRANCH IF YES
   2301	001300	005700 				TST	R0			; END-OF-FILE ??
   2302	001302	001003 				BNE	20$			; NO, SKIP THIS RECORD
   2303	001304				15$:
   2304	001304					CALL	$CLOSE			; CLOSE THE FILE
	001304	004737 	007056'			 JSR	PC,$CLOSE
   2305	001310	000427 				BR	60$			; AND EXIT
   2306	001312				20$:
   2307	001312					CALL	$READS			; SKIP THIS RECORD
	001312	004737 	010254'			 JSR	PC,$READS
   2308	001316	103421 				BCS	50$			; EXIT ON ERROR
   2309	001320	000761 				BR	10$			; READ THE NEXT RECORD
   2310	001322				30$:
   2311	001322					CALL	$READB			; READ THE NEXT BYTE
	001322	004737 	010420'			 JSR	PC,$READB
   2312	001326	103415 				BCS	50$			; EXIT ON ERROR
   2313	001330	110037 	000025'			MOVB	R0,.MCBSW		; SAVE THE FILENAME SWITCH
   2314	001334	001763 				BEQ	15$			; IF NO FILENAME, EXIT
   2315	001336	012701 	000004 			MOV	#4,R1			; SETUP TO READ THE FILENAME
   2316	001342	012702 	000456'			MOV	#.MCBFN,R2		; PLACE IT HERE
   2317	001346				40$:
   2318	001346					CALL	$READW			; READ A WORD
	001346	004737 	010324'			 JSR	PC,$READW
   2319	001352	103403 				BCS	50$			; EXIT ON ERROR
   2320	001354	010022 				MOV	R0,(R2)+		; SAVE IT
   2321	001356	077105 				SOB	R1,40$			; LOOP FOR ALL
   2322	001360	000751 				BR	15$			; EXIT
   2323	001362				50$:
   2324	001362					CALL	$PURGE			; PURGE THE FILE
	001362	004737 	010124'			 JSR	PC,$PURGE
   2325	001366	000261 				SEC
   2326	001370				60$:
   2327	001370					RETURN
	001370	000207 				 RTS	PC
   2328
   2329					;+
   2330					; IDENTIFY A RECORD AND DISPATCH ON RECORD TYPE.
   2331					; END-OF-FILE IS HANDLED HERE - THE C-RAM STARTING ADDRESS IS
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 62-1
$MCBLD	-- LOAD THE RAMS

   2332					; USED TO START THE MICROCODE, THE FILE IS CLOSED, AND WE GO
   2333					; TO IDENTIFY THE MICROCODE VERSION.
   2334					;
   2335					; NECESSARY EVILS:
   2336					;	.SYIRC	- THE NUMBER OF BYTES LEFT IN THE CURRENT RECORD.
   2337					;-
   2338
   2339	001372				LCBRC:	CALL	$READC		; GET ADDRESS.
	001372	004737 	010216'			 JSR	PC,$READC
   2340	001376	103437 				BCS	10$
   2341	001400	010037 	000134'			MOV	R0,DCBADR
   2342	001404	100402 				BMI	5$		; C-RAM RECORD OR END OF FILE
   2343	001406	000137 	002172'			JMP	LCBDRM		; D-RAM RECORD
   2344	001412	042737 	100000 	000134'	5$:	BIC	#BIT15,DCBADR	; (REMOVE FLAG)
   2345	001420	005737 	000534'			TST	.SYIRC
   2346	001424	003101 				BGT	LCBCRM		; C-RAM RECORD OR
   2347	001426					CALL	RDMCV		; [**] FETCH U_CODE VERSION/EDIT
	001426	004737 	001502'			 JSR	PC,RDMCV
   2348
   2349	001432	013700 	000134'			MOV	DCBADR,R0	; C-RAM START ADDRESS.
   2350	001436	005737 	000152'			TST	DCBCNT		; IF VERIFY AND DIFFERENCE FOUND
   2351	001442	001015 				BNE	10$		; SIGNAL ERROR.
   2352	001444					CALL	$ACRAM		; SET C-RAM STARTING ADDRESS
	001444	004737 	012166'			 JSR	PC,$ACRAM
   2353	001450	103412 				BCS	10$		; AND
   2354	001452	012700 	001000 			MOV	#.STRCL,R0
   2355	001456					CALL	$DFXC		; START THE CLOCK.
	001456	004737 	013760'			 JSR	PC,$DFXC
   2356	001462					CALL	$CLOSE		; CLOSE THE FILE
	001462	004737 	007056'			 JSR	PC,$CLOSE
   2357	001466					CALL	$CLLOG		; [4.1.1073]CLOSE LOG FILE
	001466	004737 	000000G			 JSR	PC,$CLLOG
   2358	001472	000137 	002674'			JMP	LCBVR		; IDENTIFY RAM VERSION.
   2359	001476	000137 	002636'		10$:	JMP	LCBFL		; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 63
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2361					.SBTTL	RDMCV - READ MICROCODE VERSION/EDIT LEVEL
   2362					;+
   2363					;  HERE TO FETCH MICRO CODE VERSION AND EDIT #'S
   2364					;
   2365					;  INPUTS:
   2366					;	NONE
   2367					;
   2368					;  OUTPUTS:
   2369					;	MAJVER	- MAJOR VERSION #
   2370					;	SUBVER	- SUB-VERSION #
   2371					;	UEDIT	- EDIT LEVEL
   2372					;
   2373					;  REGISTERS ALTERED:
   2374					;	NONE
   2375					;
   2376					;  MAJOR VERSION IS IN BITS 29-31 33-35 OF CRAM ADDRESS 136
   2377					;  SUB-VERSION IS IN BITS 37-39 OF CRAM ADDRESS 136
   2378					;  EDIT LEVEL IS IN BITS 29-31 33-35 37-39 OF CRAM ADDRESS 137
   2379					;-
   2380
   2381	001502	004537 	024204'		RDMCV:	JSR	R5,$RSAVE	; [**]
   2382	001506	012701 	000156'			MOV	#DCBCBF,R1	; [**] 6 WORD BUFFER TO HOLD 80 BIT CRAM DATA
   2383	001512	012700 	000137 			MOV	#137,R0		; [**] CRAM ADDRESS THAT HAS U_CODE EDIT #
   2384	001516	005004 				CLR	R4		; [**] FLAG THAT WE WANT EDIT LEVEL
   2385	001520				10$:	CALL	$RCRAM		; [**] FETCH CRAM DATA
	001520	004737 	011564'			 JSR	PC,$RCRAM
   2386	001524	016100 	000006 			MOV	6(R1),R0	; [**] FETCH CRAM BITS <16:31>
   2387	001530	000300 				SWAB	R0		; [**] GET CRAM BITS 29-31 INTO R0 <8:10> ...
   2388	001532	006200 				ASR	R0		; [**] THEN INTO <7:9> ...
   2389	001534	006200 				ASR	R0		; [**] FINALLY INTO <6:8> WHERE IT BELONGS.
   2390	001536	042700 	177077 			BIC	#^C700,R0	; [**] CLEAR UNDESIRED NOISE
   2391	001542	016102 	000004 			MOV	4(R1),R2	; [**] FETCH CRAM <32:47>
   2392	001546	000302 				SWAB	R2		; [**] START BIT MOVING <33:35>
   2393	001550	010203 				MOV	R2,R3		; [**] SAVE FOR LATER GETTING <37:39>
   2394	001552	006202 				ASR	R2		; [**] CRAM <33:35> NOW IN R2 <3:5>
   2395	001554	042702 	177707 			BIC	#^C70,R2	; [**] MASK OUT UNDESIRED BITS
   2396	001560	050200 				BIS	R2,R0		; [**] AND INCLUDE IT IN THE BUFFER
   2397	001562	042703 	177770 			BIC	#^C7,R3		; [**] EXTRACT BITS 37-39, LEAVE THEM AT <0:2>
   2398	001566	005704 				TST	R4		; [**] 0 = GET EDIT;  1 = GET VERSION
   2399	001570	001007 				BNE	20$		; [**] GO GET VERSION
   2400	001572	050300 				BIS	R3,R0		; [**] AND HERE IS THE LAST DIGIT
   2401	001574	010037 	000112'			MOV	R0,UEDIT	; [**] SAVE FOR LATER DISPLAY
   2402	001600	005204 				INC	R4		; [**] INDICATE WE NOW WANT VERSION #
   2403	001602	012700 	000136 			MOV	#136,R0		; [**] HERE IS WHERE TO FIND IT
   2404	001606	000744 				BR	10$		; [**] GO DO IT
   2405	001610	010337 	000110'		20$:	MOV	R3,SUBVER	; [**] STORE SUB-VERSION
   2406	001614	006200 				ASR	R0		; [**] SLIDE ...
   2407	001616	006200 				ASR	R0		; [**] TO THE ...
   2408	001620	006200 				ASR	R0		; [**] RIGHTMOST
   2409	001622	010037 	000106'			MOV	R0,MAJVER	; [**] STORE RESULT
   2410	001626					RETURN
	001626	000207 				 RTS	PC
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 64
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2412					;+
   2413					; PROCESS C-RAM RECORD.
   2414					;
   2415					; NECESSARY EVILS:
   2416					;	R3	- POINTS TO THE CURRENT C-RAM WORD FROM THE FILE.
   2417					;	R2	- CONTAINS THE NEXT EXPECTED C-RAM ADDRESS TO BE
   2418					;		  WRITTEN.
   2419					;	DCBADR	- CONTAINS THE ADDRESS FOR THE C-RAM WORD READ
   2420					;		  FROM THE FILE.
   2421					;	.DRSW	- IF NON-ZERO, THEN VERIFY.
   2422					;	.SYIRC	- COUNT OF BYTES LEFT IN CURRENT RECORD.
   2423					;-
   2424
   2425	001630	005037 	000154'		LCBCRM:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2426	001634	105737 	000027'			TSTB	.DRSW		; TEST FUNCTION...
   2427	001640	001013 				BNE	20$		; IF WE ARE LOADING,
   2428	001642	020237 	000134'		10$:	CMP	R2,DCBADR	; AND WORDS ARE BEING SKIPPED
   2429	001646	001412 				BEQ	30$
   2430	001650	012701 	000000'			MOV	#.ZERO,R1	; THEN ZERO THE WORDS OUT.
   2431	001654	010200 				MOV	R2,R0
   2432	001656					CALL	$WCRAM
	001656	004737 	011304'			 JSR	PC,$WCRAM
   2433	001662	103541 				BCS	80$
   2434	001664	005202 				INC	R2
   2435	001666	000765 				BR	10$
   2436	001670	013702 	000134'		20$:	MOV	DCBADR,R2
   2437	001674				30$:	CALL	LCB6W		; GET THE C-RAM WORD AND
	001674	004737 	001224'			 JSR	PC,LCB6W
   2438	001700	103532 				BCS	80$
   2439	001702	010200 			35$:	MOV	R2,R0		; SET UP POINTER.
   2440	001704	105737 	000027'			TSTB	.DRSW		; IF WE VERIFY,
   2441	001710	001417 				BEQ	50$
   2442	001712	012701 	000156'			MOV	#DCBCBF,R1	; GET HOLDING AREA,
   2443	001716					CALL	$RCRAM		; READ IT IN
	001716	004737 	011564'			 JSR	PC,$RCRAM
   2444	001722	103521 				BCS	80$
   2445	001724	042761 	000020 	000004 		BIC	#20,4(R1)	; [4.1.1072]CLEAR MARK BIT
   2446	001732	012705 	000006 			MOV	#6,R5		; AND COMPARE 6 WORDS
   2447	001736	010300 				MOV	R3,R0
   2448	001740	022021 			40$:	CMP	(R0)+,(R1)+
   2449	001742	001023 				BNE	70$
   2450	001744	077503 				SOB	R5,40$
   2451	001746	000404 				BR	60$		; OTHERWISE
   2452	001750	010301 			50$:	MOV	R3,R1		; GET THE WORD ADDRESS
   2453	001752					CALL	$WCRAM		; AND WRITE INTO THE RAM.
	001752	004737 	011304'			 JSR	PC,$WCRAM
   2454	001756	103503 				BCS	80$
   2455	001760	005737 	000154'		60$:	TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2456	001764	001402 				BEQ	65$		; [4.2209] NO-- CONTINUE
   2457	001766	005337 	000152'			DEC	DCBCNT		; [4.2209] YES-- DECREMENT ERROR COUNT
   2458	001772	005037 	000154'		65$:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2459	001776	005202 				INC	R2		; BUMP C-RAM ADDRESS AND
   2460	002000	005737 	000534'			TST	.SYIRC		; IF MORE DATA, THEN
   2461	002004	001333 				BNE	30$		; GET NEXT WORD OR
   2462	002006	000137 	001372'			JMP	LCBRC		; GET NEW RECORD.
   2463	002012				70$:	CALL	$OPLOG		; [4.1.1073]OPEN LOG FILE
	002012	004737 	000000G			 JSR	PC,$OPLOG
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 64-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2464	002016	005737 	000154'			TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2465	002022	001405 				BEQ	72$		; [4.2209] NO-- CONTINUE
   2466	002024	012700 	000265'			MOV	#TCBFXF,R0	; [4.2209] YES-- TYPE MESSAGE
   2467	002030					CALL	$TTMSG		; [4.2209] TYPE IT
	002030	004737 	027634'			 JSR	PC,$TTMSG
   2468	002034	000756 				BR	65$		; [4.2209] TRY NEXT WORD
   2469	002036	010200 			72$:	MOV	R2,R0		; ERROR - PUT ADDRESS
   2470	002040	012701 	000117'			MOV	#TCBDCW,R1	; INTO ERROR MESSAGE
   2471	002044					CALL	LCBRME		; AND INFORM OPERATOR.
	002044	004737 	002516'			 JSR	PC,LCBRME
   2472	002050	103446 				BCS	80$		; FIVE UNFIXED ERRORS.
   2473	002052	012701 	000156'			MOV	#DCBCBF,R1	; [4.2209] BAD BUFFER TO TYPE
   2474	002056	012700 	000424'			MOV	#TCBBAD,R0	; [4.2209] HEADER TO TYPE
   2475	002062	005004 				CLR	R4		; [4.2209] CRAM TYPE OUT SWITCH
   2476	002064					CALL	LCBVFY		; [4.2209] TYPE BAD DATA
	002064	004737 	002572'			 JSR	PC,LCBVFY
   2477	002070	010301 				MOV	R3,R1		; [4.2209] GOOD BUFFER TO TYPE
   2478	002072	012700 	000432'			MOV	#TCBGOD,R0	; [4.2209] HEADER TO TYPE
   2479	002076					CALL	LCBVFY		; [4.2209] TYPE GOOD DATA
	002076	004737 	002572'			 JSR	PC,LCBVFY
   2480	002102	012700 	000156'			MOV	#DCBCBF,R0	; [4.2209] BAD DATA PTR
   2481	002106	010301 				MOV	R3,R1		; [4.2209] GOOD DATA PTR
   2482	002110	012705 	000006 			MOV	#6,R5		; [4.2209] NUMBER OF WORDS
   2483	002114	012104 			75$:	MOV	(R1)+,R4	; [4.2209] GET GOOD DATA
   2484	002116	074420 				XOR	R4,(R0)+	; [4.2209] GET DIFFERENCES
   2485	002120	077503 				SOB	R5,75$		; [4.2209] DONE?
   2486	002122	012701 	000156'			MOV	#DCBCBF,R1	; [4.2209] YES-- XOR DATA TO TYPE
   2487	002126	012700 	000440'			MOV	#TCBXOR,R0	; [4.2209] HEADER TO TYPE
   2488	002132	005004 				CLR	R4		; [4.2209] CRAM TYPE OUT SWITCH
   2489	002134					CALL	LCBVFY		; [4.2209] TYPE XOR DATA
	002134	004737 	002572'			 JSR	PC,LCBVFY
   2490	002140	105737 	000027'			TSTB	.DRSW		; [4.2209] YES-- TRY TO FIX?
   2491	002144	002305 				BGE	60$		; [4.2209] NO-- EXIT
   2492	002146	010301 				MOV	R3,R1		; [4.2209] YES-- SET UP GOOD DATA
   2493	002150	010200 				MOV	R2,R0		; [4.2209] ADDR TO WRITE
   2494	002152					CALL	$WCRAM		; [4.2209] WRITE DATA
	002152	004737 	011304'			 JSR	PC,$WCRAM
   2495	002156	103403 				BCS	80$		; [4.2209] WRITE FAILED
   2496	002160	005237 	000154'			INC	DCBFIX		; [4.2209] SET FIXED FLAG
   2497	002164	000646 				BR	35$		; [4.2209] VERIFY FIX
   2498	002166	000137 	002636'		80$:	JMP	LCBFL		; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 65
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2500					;+
   2501					; PROCESS D-RAM RECORD.
   2502					;
   2503					; NECESSARY EVILS:
   2504					;	R3	- POINTS TO D-RAM WORD READ FROM FILE.
   2505					;	DCBADR	- ADDRESS FOR D-RAM WORD FROM FILE.
   2506					;	.DRSW	- IF NON-ZERO, THEN VERIFY.
   2507					;-
   2508
   2509	002172	005037 	000154'		LCBDRM:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2510	002176					CALL	LCB3W		; READ D-RAM WORD AND
	002176	004737 	001216'			 JSR	PC,LCB3W
   2511	002202	103543 				BCS	40$
   2512	002204	013700 	000134'			MOV	DCBADR,R0	; SET UP POINTERS.
   2513	002210	105737 	000027'			TSTB	.DRSW		; TEST FUNCTION...
   2514	002214	001005 				BNE	10$
   2515	002216	010301 				MOV	R3,R1		; GET THE WORD AND
   2516	002220					CALL	$WDRAM		; WRITE IT OUT.
	002220	004737 	012314'			 JSR	PC,$WDRAM
   2517	002224	103021 				BCC	20$
   2518	002226	000531 				BR	40$
   2519	002230	012701 	000172'		10$:	MOV	#DCBDBF,R1	; GET A HOLDING AREA
   2520	002234					CALL	$RDRAM		; AND READ IT IN
	002234	004737 	012474'			 JSR	PC,$RDRAM
   2521	002240	103524 				BCS	40$
   2522	002242	010300 				MOV	R3,R0
   2523	002244	042711 	000020 			BIC	#20,(R1)	; CLEAR PARITY BITS
   2524	002250	022120 				CMP	(R1)+,(R0)+	; AND COMPARE.
   2525	002252	001025 				BNE	30$
   2526	002254	042711 	000020 			BIC	#20,(R1)
   2527	002260	022120 				CMP	(R1)+,(R0)+
   2528	002262	001021 				BNE	30$
   2529	002264	021110 				CMP	(R1),(R0)
   2530	002266	001017 				BNE	30$
   2531	002270	005737 	000154'		20$:	TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2532	002274	001402 				BEQ	25$		; [4.2209] NO-- CONTINUE
   2533	002276	005337 	000152'			DEC	DCBCNT		; [4.2209] YES-- DECREMENT ERROR COUNT
   2534	002302	005037 	000154'		25$:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2535	002306	062737 	000002 	000134'		ADD	#2,DCBADR	; BUMP D-RAM ADDRESS.
   2536	002314	005737 	000534'			TST	.SYIRC		; END OF RECORD ?
   2537	002320	001324 				BNE	LCBDRM		; NO, STILL GOING,
   2538	002322	000137 	001372'			JMP	LCBRC		; OTHERWISE GET NEW RECORD.
   2539	002326				30$:	CALL	$OPLOG		; [4.1.1073]OPEN LOG FILE
	002326	004737 	000000G			 JSR	PC,$OPLOG
   2540	002332	005737 	000154'			TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2541	002336	001405 				BEQ	32$		; [4.2209] NO-- CONTINUE
   2542	002340	012700 	000265'			MOV	#TCBFXF,R0	; [4.2209] YES-- TYPE MESSAGE
   2543	002344					CALL	$TTMSG		; [4.2209] TYPE IT
	002344	004737 	027634'			 JSR	PC,$TTMSG
   2544	002350	000754 				BR	25$		; [4.2209] TRY NEXT WORD
   2545	002352	013700 	000134'		32$:	MOV	DCBADR,R0	; ERROR - PUT ADDRESS
   2546	002356	012701 	000151'			MOV	#TCBDDW,R1	; IN ERROR MESSAGE
   2547	002362					CALL	LCBRME		; AND INFORM OPERATOR.
	002362	004737 	002516'			 JSR	PC,LCBRME
   2548	002366	103451 				BCS	40$		; FIVE UNFIXED ERRORS
   2549	002370	012704 	000001 			MOV	#1,R4		; [4.2209] DRAM TYPE OUT SWITCH
   2550	002374	012701 	000172'			MOV	#DCBDBF,R1	; [4.2209] BAD BUFFER
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 65-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2551	002400	012700 	000424'			MOV	#TCBBAD,R0	; [4.2209] HEADER
   2552	002404					CALL	LCBVFY		; [4.2209] TYPE GOOD DATA
	002404	004737 	002572'			 JSR	PC,LCBVFY
   2553	002410	010301 				MOV	R3,R1		; [4.2209] GOOD BUFFER
   2554	002412	012700 	000432'			MOV	#TCBGOD,R0	; [4.2209] HEADER
   2555	002416					CALL	LCBVFY		; [4.2209] TYPE GOOD DATA
	002416	004737 	002572'			 JSR	PC,LCBVFY
   2556	002422	012700 	000172'			MOV	#DCBDBF,R0	; [4.2209] BAD BUFFER
   2557	002426	010301 				MOV	R3,R1		; [4.2209] GOOD DATA
   2558	002430	012705 	000003 			MOV	#3,R5		; [4.2209] NUMBER OF WORDS
   2559	002434	012104 			35$:	MOV	(R1)+,R4	; [4.2209] GET GOOD DATA
   2560	002436	074420 				XOR	R4,(R0)+	; [4.2209] GET DIFFERENCES
   2561	002440	077503 				SOB	R5,35$		; [4.2209] DONE?
   2562	002442	012701 	000172'			MOV	#DCBDBF,R1	; [4.2209] YES-- XOR BUFFER
   2563	002446	012700 	000440'			MOV	#TCBXOR,R0	; [4.2209] HEADER
   2564	002452	012704 	000001 			MOV	#1,R4		; [4.2209] DRAM TYPE OUT HEADER
   2565	002456					CALL	LCBVFY		; [4.2209] TYPE XOR DATA
	002456	004737 	002572'			 JSR	PC,LCBVFY
   2566	002462	105737 	000027'			TSTB	.DRSW		; [4.2209] TRY TO FIX?
   2567	002466	002300 				BGE	20$		; [4.2209] NO-- NEXT WORD
   2568	002470	013700 	000134'			MOV	DCBADR,R0	; [4.2209] YES-- SET UP ADDRESS
   2569	002474	010301 				MOV	R3,R1		; [4.2209] SET UP DATA
   2570	002476					CALL	$WDRAM		; [4.2209] WRITE IT
	002476	004737 	012314'			 JSR	PC,$WDRAM
   2571	002502	103403 				BCS	40$		; [4.2209] WRITE FAILED
   2572	002504	005237 	000154'			INC	DCBFIX		; [4.2209] SET FIXED FLAG
   2573	002510	000647 				BR	10$		; [4.2209] VERIFY FIX
   2574	002512	000137 	002636'		40$:	JMP	LCBFL		; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 66
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2576					;+
   2577					; INSERT RAM ADDRESS IN ERROR MESSAGE AND PRINT IT. BUMP ERROR COUNT
   2578					; AND IF TOO HIGH, SO INDICATE.
   2579					;
   2580					; INPUTS:
   2581					;	R1	- ADDRESS OF MESSAGE TO DISPLAY.
   2582					;	R0	- RAM ADDRESS TO DISPLAY IN OCTAL AFTER "AT ".
   2583					;
   2584					; OUTPUT:
   2585					;	CARRY SET IF TOO MANY ERRORS.
   2586					;-
   2587
   2588	002516	004537 	024204'		LCBRME:	JSR	R5,$RSAVE
   2589	002522	010105 				MOV	R1,R5		; GET MESSAGE ADDRESS
   2590	002524	122725 	000101 		10$:	CMPB	#'A,(R5)+	; AND LOOK FOR "AT"
   2591	002530	001375 				BNE	10$
   2592	002532	122725 	000124 			CMPB	#'T,(R5)+
   2593	002536	001372 				BNE	10$
   2594	002540	005205 				INC	R5		; PASS BY SPACE
   2595	002542					CALL	$TRB2O		; AND INSERT RAM ADDRESS.
	002542	004737 	026500'			 JSR	PC,$TRB2O
   2596	002546	105015 				CLRB	(R5)		; THIS IS THE END OF THE MESSAGE.
   2597	002550					PRINT	R1		; TYPE OUT OFFENDING ADDRESS.
	002550	010100 				 MOV	R1,R0
	002552	004737 	027634'			 JSR	PC,$TTMSG
   2598	002556	005237 	000152'			INC	DCBCNT		; ONE MORE DIFFERENCE.
   2599	002562	022737 	000005 	000152'		CMP	#5,DCBCNT	; LAST STRAW ?
   2600	002570					RETURN			; SETS CARRY IF MCBCNT>5.
	002570	000207 				 RTS	PC
   2601
   2602					;+
   2603					; TYPE MESSAGE HEADER THEN A SPECIFIED NUMBER OF WORDS AS BINARY VALUES.
   2604					;
   2605					; INPUTS:
   2606					;	R0-	MESSAGE HEADER.
   2607					;	R1-	DATA BUFFER TO TYPE AS BINARY DIGITS.
   2608					;	R4-	CRAM/DRAM TYPE OUT SWITCH
   2609					;
   2610					; OUTPUTS:
   2611					;	NONE-	NO REGISTERS AFFECTED
   2612					;-
   2613
   2614	002572				LCBVFY:	PUSH	<R0>		; [4.2209] SAVE R0
	002572	010046 				 MOV	R0,-(SP)
   2615	002574	012700 	000200'			MOV	#TTTPR,R0	; [4.2209] PREFIX HEADER
   2616	002600					CALL	$TTDMS		; [4.2209] TYPE PREFIX HEADER
	002600	004737 	027566'			 JSR	PC,$TTDMS
   2617	002604					POP	<R0>		; [4.2209] RESTORE R0
	002604	012600 				 MOV	(SP)+,R0
   2618	002606					CALL	$TTDMS		; [4.2209] TYPE MESSAGE HEADER
	002606	004737 	027566'			 JSR	PC,$TTDMS
   2619	002612	005704 				TST	R4		; [4.2209] TEST SWITCH
   2620	002614	001403 				BEQ	5$		; [4.2209] CRAM
   2621	002616					CALL	$TRDRM		; [4.2209] TYPE DRAM
	002616	004737 	025656'			 JSR	PC,$TRDRM
   2622	002622	000402 				BR	7$		; [4.2209] CONTINUE
   2623	002624				5$:	CALL	$TRCRM		; [4.2209] TYPE CRAM
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 66-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

	002624	004737 	025512'			 JSR	PC,$TRCRM
   2624	002630				7$:	CALL	$TCRLF		; [4.2209] TYPE CR-LF
	002630	004737 	027530'			 JSR	PC,$TCRLF
   2625	002634					RETURN			; [4.2209] DONE
	002634	000207 				 RTS	PC
   2626
   2627					;+
   2628					; OPERATION FAILED - NOTIFY OPERATOR.
   2629					;-
   2630
   2631	002636				LCBFL:	CALL	$CLLOG		; [4.1.1073]CLOSE LOG FILE
	002636	004737 	000000G			 JSR	PC,$CLLOG
   2632	002642	012700 	000203'			MOV	#TCBMLF,R0	; ASSUME LOAD
   2633	002646	105737 	000027'			TSTB	.DRSW		; AND IF VERIFY,
   2634	002652	001402 				BEQ	10$
   2635	002654	012700 	000233'			MOV	#TCBMVF,R0	; GET VERIFY MESSAGE.
   2636	002660				10$:	PRINT
	002660	004737 	027634'			 JSR	PC,$TTMSG
   2637	002664					CALL	$PURGE
	002664	004737 	010124'			 JSR	PC,$PURGE
   2638	002670	000261 				SEC
   2639	002672					RETURN
	002672	000207 				 RTS	PC
KLICB -- LOAD THE MICROCODE	MACRO M1113  03-APR-86 20:55  PAGE 67
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2641					;+
   2642					; IDENTIFY THE MICROCODE VERSION NUMBER.
   2643					;-
   2644
   2645	002674	105737 	000027'		LCBVR: TSTB	.DRSW		; GET MESSAGE:
   2646	002700	001003 				BNE	10$
   2647	002702	012702 	000314'			MOV	#TCBMVL,R2	; MICROCODE LOADED OR
   2648	002706	000402 				BR	20$
   2649	002710	012702 	000357'		10$:	MOV	#TCBMVV,R2	; MICROCODE VERIFIED.
   2650	002714	010205 			20$:	MOV	R2,R5		; GET POSITION TO INSERT
   2651	002716	122725 	000117 		30$:	CMPB	#'O,(R5)+	; MICROCODE VERSION.
   2652	002722	001375 				BNE	30$
   2653	002724	122725 	000116 			CMPB	#'N,(R5)+
   2654	002730	001372 				BNE	30$
   2655	002732	005205 				INC	R5
   2656	002734	013700 	000106'			MOV	MAJVER,R0	; [**] FETCH MAJOR VERSION #
   2657	002740					CALL	$TRB2O		; [**] CONVERT TO ASCII AND INSERT IN BUFFER
	002740	004737 	026500'			 JSR	PC,$TRB2O
   2658	002744	122715 	000056 		35$:	CMPB	#'.,(R5)	; [**] FIND DECIMAL POINT TO WRITE SUB-VERSION
   2659	002750	001403 				BEQ	40$		; [**] GOT IT ... DISPLAY SUB-VERSION
   2660	002752	112725 	177777 			MOVB	#-1,(R5)+	; [**] FLUSH CHAR AND ...
   2661	002756	000772 				BR	35$		; [**] TRY AGAIN
   2662	002760	005205 			40$:	INC	R5		; [**] SKIP OVER DECIMAL POINT
   2663	002762	013700 	000110'			MOV	SUBVER,R0	; [**] GET SUB-VERSION
   2664	002766					CALL	$TRB2O		; [**] CONVERT TO ASCII AND INSERT IN BUFFER
	002766	004737 	026500'			 JSR	PC,$TRB2O
   2665	002772	005205 				INC	R5		; [**] SKIP OVER "["
   2666	002774	013700 	000112'			MOV	UEDIT,R0	; [**] FETCH EDIT #
   2667	003000					CALL	$TRB2O		; [**] CONVERT TO ASCII AND INSERT IN BUFFER
	003000	004737 	026500'			 JSR	PC,$TRB2O
   2668	003004	122715 	000135 		45$:	CMPB	#'],(R5)	; [**] FIND THE OTHER "]"
   2669	003010	001403 				BEQ	60$		; [**] OK ... PRINT MESSAGE
   2670	003012	112725 	177777 			MOVB	#-1,(R5)+	; [**] FLUSH FILLER AND ...
   2671	003016	000772 				BR	45$		; [**] CONTINUE SCANNING
   2672	003020				60$:	PRINT	R2		; PRINT THE MESSAGE.
	003020	010200 				 MOV	R2,R0
	003022	004737 	027634'			 JSR	PC,$TTMSG
   2673	003026	005705 				TST	R5		; HOW DID IT TURN OUT ?
   2674	003030	001001 				BNE	70$
   2675	003032	000261 				SEC			; BADLY.....
   2676	003034				70$:	RETURN
	003034	000207 				 RTS	PC
   2677
   2678						.TITLE	KLICF -- CREATE NEW CONFIGURATION IN FILE
   2679	003036					IDENT$	15,12
						.IDENT	/015120/
   2680					;
   2681					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   2682					; ALL RIGHTS RESERVED.
   2683					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   2684					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   2685					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   2686					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   2687					;
   2688					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   2689					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   2690					; EQUIPMENT CORPORATION.
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 67-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2691					;
   2692					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   2693					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   2694					;
   2695					; VERSION 15-12
   2696					;
   2697					; ALAN D. PECKHAM  11-APR-77
   2698					;
   2699					; MODIFIED BY:
   2700					;
   2701					;	R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION
   2702					;					TCO 4.2204
   2703					;	R. BELANGER	16-NOV-78	INTEGRATE TOPS-10 SMP FEATURES
   2704					;					TCO 4.2093
   2705					;	R. BELANGER	25-JUL-78	INTEGRATE MOS CONFIGURATOR
   2706					;
   2707					;	S. LEAPLINE	19-AUG-81	SAVE MICROCODE FILENAME IN CONFIG
   2708					;
   2709					;	M. RUDENKO	19-MAR-84	ADD MCA25 PAGE SELECT CONFIG
   2710					;
   2711					; FUNCTION: THIS MODULE WRITES OUT THE NEW CONFIGURATION TO
   2712					;  KL.CFG IF THE CONFIGURATION HAS BEEN CHANGED.
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 68
RDMCV - READ MICROCODE VERSION/EDIT LEVEL

   2714					;
   2715					; EQUATED SYMBOLS
   2716					;
   2717		000005 			MXTYP	=	5		; LARGEST RECORD TYPE WE HANDLE.
   2718					;
   2719					; LOCAL DATA
   2720					;
   2721	000210					.PSECT	DATA,D
   2722	000210				DCFCFN:
   2723	000210	043240 	000000 	000000 		.RAD50	/KL       CFG/	;CONFIGURATION FILE NAME.
	000216	011667
   2724	000220	000000 				.WORD	0		;CREATE NEXT VERSION.
   2725	000222	   005 	   005 			.BYTE	5,5
   2726	000224	054523 	000000 			.WORD	"SY,0
   2727	000230				DCFLFN:
   2728	000230	043240 	000000 	000000 		.RAD50	/KL       CFG/	;CONFIGURATION FILE NAME.
	000236	011667
   2729	000240	177777 				.WORD	-1		;DELETE LOWEST VERSION.
   2730	000242	   005 	   005 			.BYTE	5,5
   2731	000244	054523 	000000 			.WORD	"SY,0
   2732	000250				DCFRJT:
   2733	000250	003314'				.WORD	LCFREF		; 0 - EOF RECORD
   2734	000252	003176'				.WORD	LCFRMM		; 1 - CONTROLLER RECORD
   2736	000254	003276'				.WORD	LCFRCA		; 2 - CACHE RECORD
   2740	000256	003256'				.WORD	LCFRBF		; 3 - BOOTSTRAP RECORD
   2741	000260	003516'				.WORD	LCFRMC		; 4 - MICROCODE RECORD
   2742	000262	003266'				.WORD	LCFRPA		; [**] 5 - CACHE PAGER RECORD
   2746	000536					.PSECT	TEXT,D
   2747	000536				TCFCFA:
   2748	000536					MESSAGE	<CONFIGURATION FILE WRITTEN>		; [4.2251]
	000536	   103 	   117 	   116 		 .ASCIZ	\CONFIGURATION FILE WRITTEN\
	000541	   106 	   111 	   107
	000544	   125 	   122 	   101
	000547	   124 	   111 	   117
	000552	   116 	   040 	   106
	000555	   111 	   114 	   105
	000560	   040 	   127 	   122
	000563	   111 	   124 	   124
	000566	   105 	   116 	   000
   2749	000571				TCFCFE:
   2750	000571					ERROR	<CONFIGURATION FILE NOT CHANGED>
	000571	   077 	   040 	   103 		 .ASCIZ	\? CONFIGURATION FILE NOT CHANGED\
	000574	   117 	   116 	   106
	000577	   111 	   107 	   125
	000602	   122 	   101 	   124
	000605	   111 	   117 	   116
	000610	   040 	   106 	   111
	000613	   114 	   105 	   040
	000616	   116 	   117 	   124
	000621	   040 	   103 	   110
	000624	   101 	   116 	   107
	000627	   105 	   104 	   000
   2751	003036					.PSECT
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 69
$FILE	-- WRITE THE CONFIGURATION FILE

   2753						.SBTTL	$FILE	-- WRITE THE CONFIGURATION FILE
   2754
   2755					;+
   2756					; CONFIGURATION FILE FORMAT:
   2757					;
   2758					; GENERAL --
   2759					;
   2760					;	RECORDS IN THE CONFIGURATION FILE HAVE THE FOLLOWING GENERAL FORMAT:
   2761					;
   2762					;		+-----------+
   2763					;		!  .WORD N  !
   2764					;		+-----------+
   2765					;		! RECORD ID !
   2766					;		+-----------+
   2767					;		! .BLKB N-2 !
   2768					;		+-----------+
   2769					;
   2770					; END-OF-FILE RECORD:
   2771					;
   2772					;	THE END-OF FILE RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
   2773					;
   2774					;		+-----------+
   2775					;		!  .WORD 2  !
   2776					;		+-----------+
   2777					;		!  .WORD 0  !
   2778					;		+-----------+
   2779					;
   2780					; MEMORY CONTROLLER RECORD:
   2781					;
   2782					;	A MEMORY CONTROLLER RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
   2783					;
   2784					;		+-----------+
   2785					;		!  .WORD 6  !
   2786					;		+-----------+
   2787					;		!  .WORD 1  !
   2788					;		+-----------+
   2789					;		!  .BLKB 4  !
   2790					;		+-----------+
   2791					;
   2792					; CACHE RECORD:
   2793					;
   2794					;	A CACHE RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
   2795					;
   2796					;		+-----------+
   2797					;		!  .WORD X  !	(X = .NCACH + 3)
   2798					;		+-----------+
   2799					;		!  .WORD 2  !
   2800					;		+-----------+
   2801					;		!  .BLKB Y  !	(Y = .NCACH)
   2802					;		+-----------+
   2803					;
   2804					; BOOTSTRAP RECORD:
   2805					;
   2806					;	THE BOOTSTRAP RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
   2807					;
   2808					;		+-----------+
   2809					;		!  .WORD N  !	(N >= 4)
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 69-1
$FILE	-- WRITE THE CONFIGURATION FILE

   2810					;		+-----------+
   2811					;		!  .WORD 3  !
   2812					;		+-----------+
   2813					;		!  .BLKB 1  !
   2814					;		+-----------+
   2815					;		!  .BLKB 1  !
   2816					;		+-----------+
   2817					;		!  .BLKW 4  !
   2818					;		+-----------+
   2819					;
   2820					;	THE FIRST TWO BYTES IN THE RECORD ARE ".BTSW" AND ".UFNSW".  IF
   2821					;	THE USER SPECIFIED A FILENAME FOR THE BOOTSTRAP, THE FILENAME IS
   2822					;	SAVED IN THE LAST FOUR WORDS OF THE BOOTSTRAP RECORD.
   2823					;
   2824					; MICROCODE RECORD:
   2825					;
   2826					;	A MICROCODE RECORD IS FIXED LENGTH IN THE FOLLOWING FORMAT:
   2827					;
   2828					;		+-----------+
   2829					;		!  .WORD 14 !
   2830					;		+-----------+
   2831					;		!  .WORD 4  !
   2832					;		+-----------+
   2833					;		!  .BLKB 1  !
   2834					;		+-----------+
   2835					;		!  .BLKW 4  !
   2836					;		+-----------+
   2837					;	A NON EXISTENT RECORD IN THE FILE IMPLIES THE DEFAULT, ALL, OR YES
   2838					;	OPTION IS TO BE TAKEN
   2839					;
   2840					; CACHE PAGER RECORD [**] :
   2841					;
   2842					;	A (MCA25) CACHE PAGER RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
   2843					;
   2844					;		+-----------+
   2845					;		!  .WORD 4  !
   2846					;		+-----------+
   2847					;		!  .WORD 5  !
   2848					;		+-----------+
   2849					;		!  .BLKB 2  !
   2850					;		+-----------+
   2851					;
   2852					;-
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 70
$FILE	-- WRITE THE CONFIGURATION FILE

   2854	003036				$FILE::
   2855	003036	105737 	000047'			TSTB	.FILSW		; WRITE CONFIGURATION FILE??
   2856	003042	100002 				BPL	5$		; [**] YES -- CONTINUE
   2857	003044	000137 	003474'			JMP	LCFRTN		; NO -- JUST EXIT
   2858	003050	105737 	000050'		5$:	TSTB	.BTSW		; YES -- BOOTSTRAP MODIFIED??
   2859	003054	001014 				BNE	10$		; YES -- WRITE THE  FILE
   2860	003056	105737 	000025'			TSTB	.MCBSW		; MICROCODE FILENAME SPECIFIED
   2861	003062	001011 				BNE	10$		; YES, WRITE THE FILE
   2863	003064	105737 	000031'			TSTB	.DCSW		; IF NO CACHE OR
   2864	003070	001006 				BNE	10$
   2865	003072	105737 	000032'			TSTB	.DMSW		; MEMORY MODIFICATION,
   2869	003076	001003 				BNE	10$		; [**] MEMORY CHANGED -- WRITE FILE
   2870	003100	105737 	000034'			TSTB	.PTSW		; [**] IF NO PAGE TABLE SELECTION...
   2871	003104	001573 				BEQ	LCFRTN		; LEAVE THE FILE ALONE.
   2872	003106				10$:
   2873	003106	005004 				CLR	R4		; SET INPUT FILE SWITCH.
   2874	003110	012700 	000210'			MOV	#DCFCFN,R0	; FIRST, FIND OLD FILE
   2875	003114					CALL	$LOOKUP
	003114	004737 	007562'			 JSR	PC,$LOOKUP
   2876	003120	103005 				BCC	20$
   2877	003122	122737 	000000G	000526'		CMPB	#IE.NSF,.SYSTA	; IF NOT THERE
   2878	003130	001164 				BNE	LCFERR
   2879	003132	005304 				DEC	R4		; SET INDICATOR.
   2880	003134				20$:
   2881	003134	012700 	000210'			MOV	#DCFCFN,R0	; OPEN 'KL.CFG'
   2882	003140					CALL	$ENTER		; FOR OUTPUT.
	003140	004737 	007734'			 JSR	PC,$ENTER
   2883	003144	103556 				BCS	LCFERR
   2884	003146	005704 				TST	R4		; IF NO INPUT FILE
   2885	003150	002461 				BLT	LCFREF		; THEN DON'T READ IT.
   2886					;
   2887					; READ THE NEXT RECORD FROM THE FILE AND DISPATCH ON ITS RECORD TYPE
   2888					;
   2889	003152				LCFNXT:
   2890	003152					CALL	$READC		; READ NEXT RECORD
	003152	004737 	010216'			 JSR	PC,$READC
   2891	003156	103547 				BCS	LCFPRG
   2892	003160	010001 				MOV	R0,R1		; AND SAVE ID.
   2893	003162	022701 	000005 			CMP	#MXTYP,R1	; IS IT MY RECORD ?
   2894	003166	002406 				BLT	LCFCPY		; NO, JUST TRANSFER.
   2895	003170	006300 				ASL	R0
   2896	003172	000170 	000250'			JMP	@DCFRJT(R0)	; PROCESS THE RECORD.
   2897						;
   2898					;
   2899					; PROCESS MEMORY CONTROLLER RECORDS
   2900					;
   2901	003176				LCFRMM:
   2902	003176	105737 	000032'			TSTB	.DMSW		; IF MEMORY CONFIGURATION IS CHANGED
   2903	003202	001040 				BNE	LCFSKP		; THEN SKIP RECORD, OTHERWISE
   2904					;
   2905					; COPY A RECORD FROM THE INPUT FILE TO THE OUTPUT FILE
   2906					;
   2907	003204				LCFCPY:
   2908	003204	013700 	000534'			MOV	.SYIRC,R0	; TRANSFER RECORD TO OUTPUT FILE.
   2909	003210	062700 	000002 			ADD	#2,R0
   2910	003214					CALL	$WRITC		; (BYTE COUNT)
	003214	004737 	010624'			 JSR	PC,$WRITC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 70-1
$FILE	-- WRITE THE CONFIGURATION FILE

   2911	003220	103526 				BCS	LCFPRG
   2912	003222	010100 				MOV	R1,R0
   2913	003224					CALL	$WRITW		; (ID #)
	003224	004737 	010736'			 JSR	PC,$WRITW
   2914	003230	103522 				BCS	LCFPRG
   2915	003232				10$:
   2916	003232	005737 	000534'			TST	.SYIRC		; ANY MORE STUFF ?
   2917	003236	003745 				BLE	LCFNXT		; NO, WE ARE FINISHED.
   2918	003240					CALL	$READB
	003240	004737 	010420'			 JSR	PC,$READB
   2919	003244	103514 				BCS	LCFPRG
   2920	003246					CALL	$WRITB
	003246	004737 	011032'			 JSR	PC,$WRITB
   2921	003252	103511 				BCS	LCFPRG
   2922	003254	000766 				BR	10$		; LOOP UNTIL WE RUN OUT OF BYTES.
   2923						;
   2924					;
   2925					; PROCESS THE BOOTSTRAP RECORD
   2926					;
   2927	003256				LCFRBF:
   2928	003256	105737 	000050'			TSTB	.BTSW		; BOOTSTRAP FLAG MODIFIED??
   2929	003262	001750 				BEQ	LCFCPY		; NO -- COPY RECORD
   2930	003264	000407 				BR	LCFSKP		; YES --SKIP RECORD
   2931						;
   2932					;
   2933					; PROCESS THE CACHE PAGER RECORD [**]
   2934					;
   2935	003266				LCFRPA:
   2936	003266	105737 	000034'			TSTB	.PTSW		; [**] CACHE PAGER MODIFIED?
   2937	003272	001744 				BEQ	LCFCPY		; [**] NO -- COPY RECORD
   2938	003274	000403 				BR	LCFSKP		; [**] YES -- SKIP RECORD
   2939						;
   2941					;
   2942					; PROCESS THE CACHE RECORD
   2943					;
   2944	003276				LCFRCA:
   2945	003276	105737 	000031'			TSTB	.DCSW		; IF CACHE IS NOT CHANGED
   2946	003302	001740 				BEQ	LCFCPY		; THEN COPY CACHE RECORD, OTHERWISE
   2948					;
   2949					; SKIP AN INPUT RECORD
   2950					;
   2951	003304				LCFSKP:
   2952	003304					CALL	$READS		; SKIP THIS RECORD.
	003304	004737 	010254'			 JSR	PC,$READS
   2953	003310	103472 				BCS	LCFPRG
   2954	003312	000717 				BR	LCFNXT		; GET A NEW RECORD.
   2955						;
   2957					;
   2958					; HERE ON END-OF-FILE RECORD
   2959					;
   2960	003314				LCFREF:
   2961	003314	105737 	000031'			TSTB	.DCSW		; IF CACHE WAS CHANGED
   2962	003320	001403 				BEQ	10$
   2963	003322					CALL	LCFWCA		; THEN WRITE THE CACHE RECORD.
	003322	004737 	003772'			 JSR	PC,LCFWCA
   2964	003326	103463 				BCS	LCFPRG
   2965	003330				10$:
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 70-2
$FILE	-- WRITE THE CONFIGURATION FILE

   2966	003330	105737 	000032'			TSTB	.DMSW		; IF THE MEMORY CONFIGURATION
   2971	003334	001403 				BEQ	20$		; WAS CHANGED, THEN
   2972	003336					CALL	LCFWMM		; WRITE THE CONTROLLER RECORDS.
	003336	004737 	003664'			 JSR	PC,LCFWMM
   2973	003342	103455 				BCS	LCFPRG
   2974	003344				20$:
   2975	003344	105737 	000050'			TSTB	.BTSW		; BOOT FLAG CHANGED??
   2976	003350	001403 				BEQ	30$		; NO -- GO ON
   2977	003352					CALL	LCFWBF		; YES -- WRITE BOOT RECORD
	003352	004737 	003526'			 JSR	PC,LCFWBF
   2978	003356	103447 				BCS	LCFPRG		;ERROF CC-C IS SET
   2979	003360				30$:
   2980	003360	105737 	000025'			TSTB	.MCBSW		; MICROCODE FILENAME MODIFIED ?
   2981	003364	001403 				BEQ	40$		; NO, GO ON
   2982	003366					CALL	LCFWMC		; WRITE THE MICROCODE RECORD
	003366	004737 	004060'			 JSR	PC,LCFWMC
   2983	003372	103441 				BCS	LCFPRG		; ERROR
   2984	003374				40$:
   2985	003374	105737 	000034'			TSTB	.PTSW		; [**] CACHE PAGER MODIFIED?
   2986	003400	001403 				BEQ	50$		; [**] NO -- GO ON
   2987	003402					CALL	LCFWPA		; [**] YES -- WRITE PAGE TABLE SELECTION
	003402	004737 	004142'			 JSR	PC,LCFWPA
   2988	003406	103433 				BCS	LCFPRG		; [**] ERROR
   2989	003410				50$:
   2990	003410					CALL	LCFWEF		; NOW WRITE END OF FILE.
	003410	004737 	003642'			 JSR	PC,LCFWEF
   2991	003414	103430 				BCS	LCFPRG
   2992	003416					CALL	$CLOSE		; CLOSE THE FILE AND
	003416	004737 	007056'			 JSR	PC,$CLOSE
   2993	003422	103425 				BCS	LCFPRG
   2994	003424	005704 				TST	R4		; DELETE THE OLD VERSION
   2995	003426	002404 				BLT	90$		; IF THERE IS ONE.
   2996	003430	012700 	000230'			MOV	#DCFLFN,R0
   2997	003434					CALL	$DELETE
	003434	004737 	007214'			 JSR	PC,$DELETE
   2998	003440				90$:
   2999	003440					PRINT	#TCFCFA		; INFORM THE OPERATOR.
	003440	012700 	000536'			 MOV	#TCFCFA,R0
	003444	004737 	027634'			 JSR	PC,$TTMSG
   3000	003450	105037 	000050'			CLRB	.BTSW		; RESET THE BOOTSTRAP SWITCH
   3001	003454	105037 	000025'			CLRB	.MCBSW		; RESET MICROCODE FLAG
   3003	003460	105037 	000031'			CLRB	.DCSW
   3005	003464	105037 	000032'			CLRB	.DMSW		; FILE NOW CORRESPONDS
   3006	003470	105037 	000034'			CLRB	.PTSW		; [**] RESET PAGE TABLE SWITCH
   3007					;
   3008					; NORMAL EXIT
   3009					;
   3010	003474				LCFRTN:
   3011	003474					RETURN			; TO NEW CONFIGURATION.
	003474	000207 				 RTS	PC
   3012					;
   3013					; ERROR EXIT
   3014					;
   3015	003476				LCFPRG:
   3016	003476					CALL	$PURGE		; ERROR !  PURGE FILE
	003476	004737 	010124'			 JSR	PC,$PURGE
   3017	003502				LCFERR:
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 70-3
$FILE	-- WRITE THE CONFIGURATION FILE

   3018	003502					PRINT	#TCFCFE		; TELL OPERATOR
	003502	012700 	000571'			 MOV	#TCFCFE,R0
	003506	004737 	027634'			 JSR	PC,$TTMSG
   3019	003512	000261 				SEC
   3020	003514					RETURN			; AND GO AWAY.
	003514	000207 				 RTS	PC
   3021
   3022	003516				LCFRMC:
   3023	003516	105737 	000025'			TSTB	.MCBSW		; FILENAME SPECIFIED ??
   3024	003522	001630 				BEQ	LCFCPY		; NO, SKIP THIS RECORD
   3025	003524	000667 				BR	LCFSKP		; YES, SKIP IT
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 71
$FILE	-- WRITE BOOTSTRAP RECORD

   3027						.SBTTL	$FILE	-- WRITE BOOTSTRAP RECORD
   3028
   3029					;+
   3030					; ROUTINES TO WRITE THE INDIVIDUAL RECORDS
   3031					;-
   3032
   3033					;
   3034					; WRITE THE BOOTSTRAP RECORD
   3035					;
   3036
   3037	003526				LCFWBF:
   3038	003526	012700 	000004 			MOV	#4,R0		; WRITE BOOTSTRAP RECORD
   3039	003532	105737 	000026'			TSTB	.UFNSW		; DID HE SPECIFY A FILE-NAME??
   3040	003536	001402 				BEQ	10$		; NO -- GO ON
   3041	003540	062700 	000010 			ADD	#10,R0		; YES -- ALLOW FOR IT
   3042	003544				10$:
   3043	003544					CALL	$WRITC		; WRITE THE RECORD HEADER
	003544	004737 	010624'			 JSR	PC,$WRITC
   3044	003550	103433 				BCS	30$		; ERROR IF CC-C IS SET
   3045	003552	012700 	000003 			MOV	#3,R0		; RECORD ID
   3046	003556					CALL	$WRITW		; WRITE IT
	003556	004737 	010736'			 JSR	PC,$WRITW
   3047	003562	103426 				BCS	30$		; ERROR IF CC-C IS SET
   3048	003564	113700 	000050'			MOVB	.BTSW,R0	; BOOTSTRAP SWITCH TO R0
   3049	003570					CALL	$WRITB		; WRITE IT
	003570	004737 	011032'			 JSR	PC,$WRITB
   3050	003574	103421 				BCS	30$		; ERROR IF CC-C IS SET
   3051	003576	113700 	000026'			MOVB	.UFNSW,R0	; FILE-NAME SWITCH TO R0
   3052	003602					CALL	$WRITB		; WRITE IT
	003602	004737 	011032'			 JSR	PC,$WRITB
   3053	003606	103414 				BCS	30$		; ERROR IF CC-C IS SET
   3054	003610	005737 	001566'			TST	.SYORC		; ARE WE DONE??
   3055	003614	001411 				BEQ	30$		; YES -- EXIT
   3056	003616	012701 	000004 			MOV	#4,R1		; NO -- SET UP TO WRITE FILE-NAME
   3057	003622	012702 	000476'			MOV	#.USRFN,R2	; POINT TO THE FILE-NAME
   3058	003626				20$:
   3059	003626	012200 				MOV	(R2)+,R0	; GET ONE WORD AT A TIME
   3060	003630					CALL	$WRITW		; WRITE IT
	003630	004737 	010736'			 JSR	PC,$WRITW
   3061	003634	103401 				BCS	30$		; ERROR IF CC-C IS SET
   3062	003636	077105 				SOB	R1,20$		; DO ALL 4 ELEMENTS
   3063	003640				30$:
   3064	003640					RETURN			; EXIT
	003640	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 72
$FILE	-- WRITE END-OF-FILE RECORD

   3066						.SBTTL	$FILE	-- WRITE END-OF-FILE RECORD
   3067
   3068					;
   3069					; WRITE END-OF-FILE RECORD
   3070					;
   3071
   3072	003642				LCFWEF:
   3073	003642	012700 	000002 			MOV	#2,R0		; WRITE EOF RECORD.
   3074	003646					CALL	$WRITC
	003646	004737 	010624'			 JSR	PC,$WRITC
   3075	003652	103403 				BCS	10$
   3076	003654	005000 				CLR	R0
   3077	003656					CALLR	$WRITW
	003656	000137 	010736'			 JMP	$WRITW
   3078						;
   3079	003662				10$:
   3080	003662					RETURN
	003662	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 73
$FILE	-- WRITE MEMORY CONTROLLER RECORDS

   3082						.SBTTL	$FILE	-- WRITE MEMORY CONTROLLER RECORDS
   3083
   3084					;
   3085					; WRITE MEMORY CONTROLLER RECORD(S)
   3086					;
   3087
   3088	003664				LCFWMM:
   3089	003664	005002 				CLR	R2		; WRITE OUT MEMORY RECORDS.
   3090	003666				10$:
   3091	003666	105762 	000072'			TSTB	.CTLTP(R2)	; CHECK IF CONTROLLER USED.
   3092	003672	001432 				BEQ	20$		; NOT USED -- TRY FOR THE NEXT CONTROLLER
   3093	003674	012700 	000006 			MOV	#6,R0		; OK - INCLUDE IN FILE.
   3094	003700					CALL	$WRITC		; (LENGTH)
	003700	004737 	010624'			 JSR	PC,$WRITC
   3095	003704	103431 				BCS	30$
   3096	003706	012700 	000001 			MOV	#1,R0
   3097	003712					CALL	$WRITW		; (ID #)
	003712	004737 	010736'			 JSR	PC,$WRITW
   3098	003716	103424 				BCS	30$
   3099	003720	010200 				MOV	R2,R0
   3100	003722					CALL	$WRITB		; (CONTROLLER #)
	003722	004737 	011032'			 JSR	PC,$WRITB
   3101	003726	103420 				BCS	30$
   3102	003730	116200 	000072'			MOVB	.CTLTP(R2),R0
   3103	003734					CALL	$WRITB		; (TYPE)
	003734	004737 	011032'			 JSR	PC,$WRITB
   3104	003740	103413 				BCS	30$
   3105	003742	006302 				ASL	R2		; WORD INDEX
   3106	003744	016200 	000134'			MOV	.CFGTB(R2),R0
   3107	003750	006202 				ASR	R2		; BACK TO BYTE INDEX
   3108	003752					CALL	$WRITW		; (MODULES/BLOCKS/INTERLEAVE/BUS-MODE)
	003752	004737 	010736'			 JSR	PC,$WRITW
   3109	003756	103404 				BCS	30$
   3110	003760				20$:
   3111	003760	005202 				INC	R2		; CHECK ALL CONTROLLERS.
   3112	003762	022702 	000041 			CMP	#CTLS+1,R2	; [4.2204] AND REVERSE CONFIGURATION FLAG
   3113	003766	003337 				BGT	10$
   3114	003770				30$:
   3115	003770					RETURN
	003770	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 74
$FILE	-- WRITE CACHE RECORDS

   3117						.SBTTL	$FILE	-- WRITE CACHE RECORDS
   3118
   3119
   3120					;
   3121					; WRITE CACHE RECORD(S)
   3122					;
   3124
   3125	003772				LCFWCA:
   3126	003772	113700 	000064'			MOVB	.NCACH,R0	; WRITE OUT CACHE RECORD.
   3127	003776	010001 				MOV	R0,R1
   3128	004000	062700 	000003 			ADD	#3,R0
   3129	004004					CALL	$WRITC		; (LENGTH)
	004004	004737 	010624'			 JSR	PC,$WRITC
   3130	004010	103422 				BCS	20$
   3131	004012	012700 	000002 			MOV	#2,R0
   3132	004016					CALL	$WRITW		; (ID #)
	004016	004737 	010736'			 JSR	PC,$WRITW
   3133	004022	103415 				BCS	20$
   3134	004024	110100 				MOVB	R1,R0
   3135	004026					CALL	$WRITB		; (# CACHES)
	004026	004737 	011032'			 JSR	PC,$WRITB
   3136	004032	103411 				BCS	20$
   3137	004034	005701 				TST	R1
   3138	004036	001407 				BEQ	20$
   3139	004040	012702 	000065'			MOV	#.CACHN,R2
   3140	004044				10$:
   3141	004044	112200 				MOVB	(R2)+,R0
   3142	004046					CALL	$WRITB		; (CACHE #S)
	004046	004737 	011032'			 JSR	PC,$WRITB
   3143	004052	103401 				BCS	20$
   3144	004054	077105 				SOB	R1,10$
   3145	004056				20$:
   3146	004056					RETURN
	004056	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 75
$FILE -- WRITE MICROCODE RECORDS

   3149						.SBTTL	$FILE -- WRITE MICROCODE RECORDS
   3150
   3151					;
   3152					; WRITE MICROCODE RECORDS
   3153					;
   3154
   3155	004060				LCFWMC:
   3156	004060	012700 	000014 			MOV	#14,R0		; SIZE OF RECORD
   3157	004064					CALL	$WRITC		; WRITE IT
	004064	004737 	010624'			 JSR	PC,$WRITC
   3158	004070	103423 				BCS	20$		; ERROR
   3159	004072	012700 	000004 			MOV	#4,R0		; OUR RECORD TYPE
   3160	004076					CALL	$WRITW		; WRITE IT
	004076	004737 	010736'			 JSR	PC,$WRITW
   3161	004102	103416 				BCS	20$		; ERROR
   3162	004104	113700 	000025'			MOVB	.MCBSW,R0	; FILENAME SWITCH
   3163	004110					CALL	$WRITB		; WRITE IT
	004110	004737 	011032'			 JSR	PC,$WRITB
   3164	004114	103411 				BCS	20$		; ERROR
   3165	004116	012701 	000004 			MOV	#4,R1		; NUMBER OF WORDS IN FILENAME
   3166	004122	012702 	000456'			MOV	#.MCBFN,R2	; WHERE ITS AT
   3167	004126				10$:
   3168	004126	012200 				MOV	(R2)+,R0	; GET A WORD
   3169	004130					CALL	$WRITW		; AND WRITE IT
	004130	004737 	010736'			 JSR	PC,$WRITW
   3170	004134	103401 				BCS	20$		; ERROR
   3171	004136	077105 				SOB	R1,10$		; LOOP FOR ALL
   3172	004140				20$:
   3173	004140					RETURN
	004140	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 76
$FILE	-- WRITE PAGE TABLE SELECTION

   3175						.SBTTL	$FILE	-- WRITE PAGE TABLE SELECTION
   3176
   3177					;
   3178					; WRITE (MCA25) PAGE TABLE SELECTION [**]
   3179					;
   3180
   3181	004142				LCFWPA:
   3182	004142	012700 	000004 			MOV	#4,R0		; [**] RECORD SIZE
   3183	004146					CALL	$WRITC		; [**] WRITE IT
	004146	004737 	010624'			 JSR	PC,$WRITC
   3184	004152	103411 				BCS	10$		; [**] QUIT ON ERROR
   3185	004154	012700 	000005 			MOV	#5,R0		; [**] RECORD TYPE
   3186	004160					CALL	$WRITW		; [**] WRITE IT
	004160	004737 	010736'			 JSR	PC,$WRITW
   3187	004164	103404 				BCS	10$		; [**] QUIT ON ERROR
   3188	004166	013700 	000524'			MOV	.PTSEL,R0	; [**] FETCH NEW SELECTION
   3189	004172					CALL	$WRITW		; [**] WRITE IT
	004172	004737 	010736'			 JSR	PC,$WRITW
   3190	004176				10$:
   3191	004176					RETURN			; [**] FINIS
	004176	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1113  03-APR-86 20:55  PAGE 77
$FILE	-- WRITE PAGE TABLE SELECTION

   3193
   3194						.TITLE	KLICI -- INTERNAL AND MOS DIALOGUE
   3195	004200					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3196					;
   3197					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   3198					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3199					;			ALL RIGHTS RESERVED.
   3200					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3201					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3202					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3203					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3204					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3205					;
   3206					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3207					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3208					;       CORPORATION.
   3209					;
   3210					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3211					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3212					;
   3213					;
   3214					;	MODULE: INTERNAL AND MOS DIALOGUE
   3215					;
   3216					;	VERSION:  10-00
   3217					;
   3218					;	DATE: 25-JUL-78
   3219					;
   3220					;	AUTHOR: R. BELANGER
   3221					;
   3222					;	MODIFICATIONS:
   3223					;
   3224					;	NO.	DATE		PROGRAMMER	REASON
   3225					;	---	----		----------	------
   3226					;
   3227					;			LOCAL DATA
   3228					;
   3229
   3230	000632					.PSECT	TEXT,D
   3231	000632				CFIMQ1:
   3232	000632					MESSAGE	<CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?>
	000632	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?\
	000635	   106 	   111 	   107
	000640	   125 	   122 	   105
	000643	   040 	   111 	   116
	000646	   124 	   105 	   122
	000651	   116 	   101 	   114
	000654	   040 	   103 	   117
	000657	   122 	   105 	   040
	000662	   115 	   105 	   115
	000665	   117 	   122 	   131
	000670	   040 	   133 	   101
	000673	   114 	   114 	   054
	000676	   131 	   105 	   123
	000701	   054 	   116 	   117
	000704	   135 	   077 	   000
   3233	000707				CFMMQ1:
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 77-1
$FILE	-- WRITE PAGE TABLE SELECTION

   3234	000707					MESSAGE	<CONFIGURE MOS MEMORY [ALL,YES,NO]?>
	000707	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE MOS MEMORY [ALL,YES,NO]?\
	000712	   106 	   111 	   107
	000715	   125 	   122 	   105
	000720	   040 	   115 	   117
	000723	   123 	   040 	   115
	000726	   105 	   115 	   117
	000731	   122 	   131 	   040
	000734	   133 	   101 	   114
	000737	   114 	   054 	   131
	000742	   105 	   123 	   054
	000745	   116 	   117 	   135
	000750	   077 	   000
   3235	000752				CFIMQ2:
   3236	000752					MESSAGE	<KLI -- MODULES/BLOCKS WITHIN CONTROLLER _>
	000752	   113 	   114 	   111 		 .ASCIZ	\KLI -- MODULES/BLOCKS WITHIN CONTROLLER _\
	000755	   040 	   055 	   055
	000760	   040 	   115 	   117
	000763	   104 	   125 	   114
	000766	   105 	   123 	   057
	000771	   102 	   114 	   117
	000774	   103 	   113 	   123
	000777	   040 	   127 	   111
	001002	   124 	   110 	   111
	001005	   116 	   040 	   103
	001010	   117 	   116 	   124
	001013	   122 	   117 	   114
	001016	   114 	   105 	   122
	001021	   040 	   137 	   000
   3237	001024				CFIMQ3:
   3238	001024					MESSAGE	< [ALL,NONE,SPECIFY]?>
	001024	   040 	   133 	   101 		 .ASCIZ	\ [ALL,NONE,SPECIFY]?\
	001027	   114 	   114 	   054
	001032	   116 	   117 	   116
	001035	   105 	   054 	   123
	001040	   120 	   105 	   103
	001043	   111 	   106 	   131
	001046	   135 	   077 	   000
   3239	001051				CFIMQ4:
   3240	001051					MESSAGE	<INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?>
	001051	   111 	   116 	   124 		 .ASCIZ	\INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?\
	001054	   105 	   122 	   116
	001057	   101 	   114 	   040
	001062	   103 	   117 	   122
	001065	   105 	   040 	   115
	001070	   105 	   115 	   117
	001073	   122 	   131 	   040
	001076	   111 	   116 	   124
	001101	   105 	   122 	   114
	001104	   105 	   101 	   126
	001107	   105 	   040 	   125
	001112	   120 	   120 	   105
	001115	   122 	   040 	   114
	001120	   111 	   115 	   111
	001123	   124 	   040 	   133
	001126	   064 	   054 	   062
	001131	   054 	   061 	   135
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 77-2
$FILE	-- WRITE PAGE TABLE SELECTION

	001134	   077 	   000
   3241	004200					.PSECT
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 78
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3243					.SBTTL	$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
   3244
   3245					;+
   3246					; $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
   3247					;
   3248					; $CFIMD SETS UP THE INTERNAL MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
   3249					; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
   3250					;
   3251					; $CFMMD -- SET UP MOS MEMORY CONFIGURATION TABLES
   3252					;
   3253					; $CFMMD SETS UP THE MOS MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
   3254					; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
   3255					;-
   3256
   3257	004200				$CFMMD::
   3258	004200	105737 	000000G			TSTB	MF20		; DO WE HAVE MOS MEMORY??
   3259	004204	001410 				BEQ	10$		; NO -- JUST EXIT
   3260	004206	012703 	000013 			MOV	#13,R3		; YES -- MAX LEGAL BLOCK NUMBER TO R3
   3261	004212	012704 	000010 			MOV	#10,R4		; ITERATION COUNT TO R4
   3262	004216	010402 				MOV	R4,R2		; IS ALSO BASE CONTROLLER NUMBER
   3263	004220	012700 	000707'			MOV	#CFMMQ1,R0	; MESSAGE POINTER TO R0
   3264	004224	000421 				BR	CFGXMC		; GO TO COMMON CODE
   3265						;
   3266	004226				10$:
   3267	004226					CALLR	$CFGXX		; EXIT TO CONFIGURE MEMORY
	004226	000137 	020232'			 JMP	$CFGXX
   3268						;
   3269
   3270						.ENABL	LSB
   3271
   3272	004232				$CFIMD::
   3273	004232	105737 	000000G			TSTB	MA20		; DO WE HAVE INTERNAL MEMORY??
   3274	004236	001005 				BNE	5$		; YES -- GO ON
   3275	004240	105737 	000000G			TSTB	MB20		; NO -- HOW ABOUT MB20'S??
   3276	004244	001002 				BNE	5$		; YES -- GO ON
   3277	004246					CALLR	$DLGXM		; NO -- TRY FOR EXTERNAL MEMORY
	004246	000137 	020350'			 JMP	$DLGXM
   3278						;
   3279	004252				5$:
   3280	004252	012703 	000003 			MOV	#3,R3		; YES -- MAX LEGAL BLOCK NUMBER TO R3
   3281	004256	012700 	000632'			MOV	#CFIMQ1,R0	; MESSAGE POINTER TO R0
   3282	004262	005002 				CLR	R2		; INIT COUNTER
   3283	004264	012704 	000004 			MOV	#4,R4		; MAXIMUM OF FOUR INTERNAL CONTROLLERS
   3284					;
   3285					; ASK THE TOP-LEVEL QUESTION
   3286					;
   3287	004270				CFGXMC:
   3288	004270				10$:
   3289	004270	105737 	000032'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   3290	004274	002440 				BLT	20$		; NO -- TAKE DEFAULT PATH
   3291	004276					CALL	$TTMSG		; YES -- ASK THE FIRST QUESTION
	004276	004737 	027634'			 JSR	PC,$TTMSG
   3292	004302					CALL	$TTRD		; READ THE RESPONSE
	004302	004737 	027130'			 JSR	PC,$TTRD
   3293	004306	012705 	000304'			MOV	#.TTIBF,R5	; POINT TO THE INPUT BUFFER
   3294	004312	105715 				TSTB	(R5)		; DEFAULT??
   3295	004314	001430 				BEQ	20$		; YES -- DO "ALL"
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 78-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3296	004316	022715 	046101 			CMP	#"AL,(R5)	; "ALL"??
   3297	004322	001425 				BEQ	20$		; YES -- DO ALL
   3298	004324	022715 	047516 			CMP	#"NO,(R5)	; "NO"??
   3299	004330	001424 				BEQ	30$		; YES  -- DO NONE
   3300	004332	022715 	042531 			CMP	#"YE,(R5)	; "YES"??
   3301	004336	001435 				BEQ	50$		; YES --  FIND OUT WHAT
   3302	004340	022715 	040502 			CMP	#"BA,(R5)	; "BACK"??
   3303	004344	001007 				BNE	15$		; NO -- ERROR
   3304	004346	022703 	000003 			CMP	#3,R3		; YES -- IS THIS INTERNAL MEMORY??
   3305	004352	001002 				BNE	14$		; NO -- GO THOUGH VECTORS
   3306	004354					CALLR	$DLGMB		; YES -- BACK UP ONE
	004354	000137 	020360'			 JMP	$DLGMB
   3307						;
   3308	004360				14$:
   3309	004360					CALLR	$DLMB1		; BACK UP THRU VECTORS
	004360	000137 	020364'			 JMP	$DLMB1
   3310						;
   3311					;
   3312					; UNRECOGNIZED COMMAND
   3313					;
   3314	004364				15$:
   3315	004364					PRINT	#COMCSE		; COMMAND SYNTAX ERROR
	004364	012700 	005552'			 MOV	#COMCSE,R0
	004370	004737 	027634'			 JSR	PC,$TTMSG
   3316	004374	000531 				BR	150$		; TRY AGAIN
   3317						;
   3318					;
   3319					; ENTRY FOR "ALL" CONTROLLERS <DEFAULT PATH>
   3320					;
   3321	004376				20$:
   3322	004376	005001 				CLR	R1		; SET R1 TO SAY "ALL"
   3323	004400	000402 				BR	40$		; DO COMMON CODE
   3324						;
   3325					;
   3326					; ENTRY FOR "NO(NE)" CONTROLLERS
   3327					;
   3328	004402				30$:
   3329	004402	012701 	100000 			MOV	#BIT15,R1	; SET R1 TO SAY "NO(NE)"
   3330					;
   3331					; COMMON CODE FOR "ALL" OR "NO(NE)" CONTROLLERS
   3332					;
   3333					; WHAT'S WHERE:
   3334					;
   3335					;	R0 -- CONTROLLER NUMBER PASSED TO CHECK ROUTINE
   3336					;	R1 -- ALLOCATION FLAG
   3337					;		0 = ALL CONTROLLERS
   3338					;		100000 = NO CONTROLLERS
   3339					;	R2 -- CONTROLLER NUMBER
   3340					;	R3 -- MODULE/BLOCK NUMBER LIMIT
   3341					;	R4 -- ITERATION COUNT
   3342					;
   3343	004406				40$:
   3344	004406	105762 	000000G			TSTB	TYPNUM(R2)	; DOES THIS CONTROLLER EXIST??
   3345	004412	001404 				BEQ	45$		; NO -- TRY FOR THE NEXT ONE
   3346	004414	010200 				MOV	R2,R0		; YES -- CONTROLLER NUMBER TO R0
   3347	004416	006300 				ASL	R0		; WORD INDEX
   3348	004420	010160 	000134'			MOV	R1,.CFGTB(R0)	; SET ALLOCATION OR DELETION REQUEST
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 78-2
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3349	004424				45$:
   3350	004424	105722 				TSTB	(R2)+		; ADVANCE CONTROLLER INDEX
   3351	004426	077411 				SOB	R4,40$		; DO THIS FOR ALL
   3352	004430	000501 				BR	130$		; AND EXIT
   3353						;
   3354					;
   3355					; ENTRY FOR "YES" (LONG DIALOGUE)
   3356					;
   3357	004432				50$:
   3358	004432	005001 				CLR	R1		; INIT BIT-MASK
   3359	004434				60$:
   3360	004434	105762 	000000G			TSTB	TYPNUM(R2)	; IS THIS CONTROLLER HERE??
   3361	004440	001472 				BEQ	120$		; NO -- TRY THE NEXT ONE
   3362	004442	012700 	000752'			MOV	#CFIMQ2,R0	; YES -- MESSAGE POINTER TO R0
   3363	004446					CALL	$TTDMS		; TYPE PREAMBLE
	004446	004737 	027566'			 JSR	PC,$TTDMS
   3364	004452	010200 				MOV	R2,R0		; CONTROLLER NUMBER TO R0
   3365	004454					CALL	$TDB2O		; CONVERT TO OCTAL ASCII
	004454	004737 	026450'			 JSR	PC,$TDB2O
   3366	004460	012700 	001024'			MOV	#CFIMQ3,R0	; MESSAGE POINTER TO R0
   3367	004464					CALL	$TTDMS		; END THE QUESTION
	004464	004737 	027566'			 JSR	PC,$TTDMS
   3368	004470					CALL	$TCRLF		; AND THE LINE
	004470	004737 	027530'			 JSR	PC,$TCRLF
   3369	004474					CALL	$TTRD		; READ RESPONSE
	004474	004737 	027130'			 JSR	PC,$TTRD
   3370	004500	012705 	000304'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   3371	004504	105715 				TSTB	(R5)		; DEFAULT??
   3372	004506	001412 				BEQ	70$		; YES -- DO "ALL"
   3373	004510	022715 	046101 			CMP	#"AL,(R5)	; "ALL"??
   3374	004514	001407 				BEQ	70$		; YES -- DO IT
   3375	004516	022715 	047516 			CMP	#"NO,(R5)	; "NONE"??
   3376	004522	001406 				BEQ	80$		; YES -- DO IT
   3377	004524	022715 	040502 			CMP	#"BA,(R5)	; "BACK"??
   3378	004530	001006 				BNE	90$		; NO -- HOPE ITS NUMERIC...
   3379	004532	000452 				BR	150$		; YES -- GO DO IT
   3380						;
   3381					;
   3382					; "ALL" MODULES/BLOCKS THIS CONTROLLER
   3383					;
   3384	004534				70$:
   3385	004534	005001 				CLR	R1		; SET R1 TO "ALL"
   3386	004536	000420 				BR	100$		; AND DO IT
   3387						;
   3388					;
   3389					; "NO(NE)" MODULES/BLOCKS THIS CONTROLLER
   3390					;
   3391	004540				80$:
   3392	004540	012701 	100000 			MOV	#BIT15,R1	; SET R1 TO "NONE"
   3393	004544	000415 				BR	100$
   3394						;
   3395					;
   3396					; HERE TO SPECIFY MODULES/BLOCKS WITHIN THIS CONTROLLER
   3397					;
   3398					; WHAT'S WHERE:
   3399					;
   3400					;	R0 -- PASSED CONTROLLER NUMBER
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 78-3
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3401					;	R1 -- ALLOCATION MASK
   3402					;	R2 -- CONTROLLER NUMBER
   3403					;	R3 -- MODULE/BLOCK NUMBER LIMIT
   3404					;	R4 -- ITERATION COUNT
   3405					;
   3406	004546				90$:
   3407	004546					CALL	$TRO2B		; CONVERT TO OCTAL NUMERIC
	004546	004737 	026562'			 JSR	PC,$TRO2B
   3408	004552	103435 				BCS	140$		; FIDDLE FINGERS!
   3409	004554	020300 				CMP	R3,R0		; IN RANGE??
   3410	004556	002433 				BLT	140$		; NO -- COMPLAIN
   3411	004560	006300 				ASL	R0		; YES -- GET WORD INDEX
   3412	004562	056001 	000000G			BIS	BITTBL(R0),R1	; LIGHT THE BIT
   3413	004566	122725 	000054 			CMPB	#',,(R5)+	; CONTINUE??
   3414	004572	001765 				BEQ	90$		; YES -- CONTINUE
   3415	004574	105745 				TSTB	-(R5)		; NO -- TERMINATE OK??
   3416	004576	001272 				BNE	15$		; NO -- COMPLAIN
   3417					;
   3418					; COMMON CODE FOR "ALL", "NO(NE)", OR SPECIFIC MODULES/BLOCKS THIS CONTROLLER
   3419					;
   3420	004600				100$:
   3421	004600	010200 				MOV	R2,R0		; YES -- CONTROLLER NUMBER TO R0
   3422	004602	022703 	000003 			CMP	#3,R3		; IS THIS INTERNAL MEMORY??
   3423	004606	001004 				BNE	110$		; NO -- MOS MEMORY
   3424	004610					CALL	$CHKIM		; YES -- CHECK INTERNAL CONFIGURATION
	004610	004737 	005064'			 JSR	PC,$CHKIM
   3425	004614	103706 				BCS	50$		; OOPS!
   3426	004616	000403 				BR	120$		; ALL OK -- GO ON
   3427						;
   3428	004620				110$:
   3429	004620					CALL	$CHKMM		; CHECK MOS CONFIGURATION
	004620	004737 	005310'			 JSR	PC,$CHKMM
   3430	004624	103702 				BCS	50$		; BAD NEWS...
   3431	004626				120$:
   3432	004626	105722 				TSTB	(R2)+		; ADVANCE CONTROLLER COUNTER
   3433	004630	005304 				DEC	R4		; DECREMENT ITERATION COUNT
   3434	004632	001277 				BNE	50$		; LOOP THROUGH ALL CONTROLLERS
   3435	004634				130$:
   3436	004634	022703 	000003 			CMP	#3,R3		; DONE -- IS THIS INTERNAL MEMORY??
   3437	004640	001420 				BEQ	CFIMIL		; YES -- GO GET INTERLEAVE FACTOR
   3438	004642					CALLR	$CFGXX		; NO -- GO CONFIGURE THE MEMORY
	004642	000137 	020232'			 JMP	$CFGXX
   3439						;
   3440					;
   3441					; ERROR PROCESSING
   3442					;
   3443	004646				140$:
   3444	004646					PRINT	#COMCSE		; ERROR MESSAGE
	004646	012700 	005552'			 MOV	#COMCSE,R0
	004652	004737 	027634'			 JSR	PC,$TTMSG
   3445	004656	000666 				BR	60$		; TRY AGAIN
   3446						;
   3447	004660				150$:
   3448	004660	012700 	000632'			MOV	#CFIMQ1,R0	; YES -- ASSUME INTERNAL MEMORY
   3449	004664	022703 	000003 			CMP	#3,R3		; IS IT REALLY??
   3450	004670	001402 				BEQ	160$		; YES -- GO ON
   3451	004672	012700 	000707'			MOV	#CFMMQ1,R0	; NO -- SET MOS MESSAGE
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 78-4
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3452	004676				160$:
   3453	004676	000137 	004270'			JMP	10$		; AND BACK UP
   3454						;
   3455						.DSABL	LSB
   3456					;
   3457					; HERE TO GET INTERNAL CORE MEMORY INTERLEAVE FACTOR
   3458					;
   3459	004702				CFIMIL:
   3460	004702	105737 	000032'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   3461	004706	002452 				BLT	50$		; NO -- TAKE DEFAULT PATH
   3462	004710	012700 	000134'			MOV	#.CFGTB,R0	; YES -- POINT TO CONFIGURATION TABLE
   3463	004714	012704 	000004 			MOV	#4,R4		; ITERATION COUNT TO R4
   3464	004720				10$:
   3465	004720	005720 				TST	(R0)+		; IS THIS ONE CONFIGURABLE??
   3466	004722	100002 				BPL	20$		; YES -- GO ON
   3467	004724	077403 				SOB	R4,10$		; NO -- TRY FOR THE NEXT ONE
   3468	004726	000442 				BR	50$		; NO INTERNAL MEMORY -- EXIT
   3469						;
   3470	004730				20$:
   3471	004730					PRINT	#CFIMQ4		; ASK THE QUESTION
	004730	012700 	001051'			 MOV	#CFIMQ4,R0
	004734	004737 	027634'			 JSR	PC,$TTMSG
   3472	004740					CALL	$TTRD		; READ THE RESPONSE
	004740	004737 	027130'			 JSR	PC,$TTRD
   3473	004744	012705 	000304'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   3474	004750	005000 				CLR	R0		; INIT DEFAULT
   3475	004752	022715 	040502 			CMP	#"BA,(R5)	; "BACK"??
   3476	004756	001430 				BEQ	60$		; YES -- DO IT
   3477	004760	105715 				TSTB	(R5)		; NO -- DEFAULT??
   3478	004762	001413 				BEQ	25$		; YES -- SET IT
   3479	004764					CALL	$TRI2B		; NO -- CONVERT TO NUMERIC
	004764	004737 	025424'			 JSR	PC,$TRI2B
   3480	004770	103425 				BCS	70$		; OOPS!
   3481	004772	005700 				TST	R0		; DID HE TYPE ANYTHING??
   3482	004774	001423 				BEQ	70$		; NO -- NOT ALLOWED
   3483	004776	022700 	000003 			CMP	#3,R0		; YES -- DID HE SAY "3"??
   3484	005002	001420 				BEQ	70$		; YES -- NOT ALLOWED
   3485	005004	022700 	000004 			CMP	#4,R0		; NO -- IN RANGE??
   3486	005010	002415 				BLT	70$		; NO -- COMPLAIN
   3487	005012				25$:
   3488	005012	012704 	000004 			MOV	#4,R4		; YES -- ITERATION COUNT TO R4
   3489	005016	012701 	000144'			MOV	#.CFGTB+8.,R1	; POINT TO END OF INTERNAL CONTROLLERS+1
   3490	005022				30$:
   3491	005022	005741 				TST	-(R1)		; BACK UP OVER NEXT ENTRY
   3492	005024	100402 				BMI	40$		; NOT THERE IF NEGATIVE
   3493	005026	110061 	000001 			MOVB	R0,1(R1)	; SET THE BUS-MODE IN HIGH BYTE
   3494	005032				40$:
   3495	005032	077405 				SOB	R4,30$		; LOOP TILL DONE
   3496	005034				50$:
   3497	005034					CALLR	$DLGXM		; DONE -- TRY EXTERNAL MEMORY
	005034	000137 	020350'			 JMP	$DLGXM
   3498						;
   3499	005040				60$:
   3500	005040					CALLR	$CFIMD		; BACK UP
	005040	000137 	004232'			 JMP	$CFIMD
   3501						;
   3502	005044				70$:
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 78-5
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3503	005044					PRINT	#COMCSE		; ERROR MESSAGE
	005044	012700 	005552'			 MOV	#COMCSE,R0
	005050	004737 	027634'			 JSR	PC,$TTMSG
   3504	005054	000725 				BR	20$		; TRY AGAIN
   3505						;
KLICI -- INTERNAL AND MOS DIALO	MACRO M1113  03-APR-86 20:55  PAGE 79
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3507
   3508
   3509						.TITLE	KLICM -- CHECK INTERNAL MEMORY CONFIGURATION
   3510	005056					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3511					;
   3512					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   3513					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3514					;			ALL RIGHTS RESERVED.
   3515					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3516					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3517					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3518					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3519					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3520					;
   3521					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3522					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3523					;       CORPORATION.
   3524					;
   3525					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3526					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3527					;
   3528					;
   3529					;	MODULE: INTERNAL CONFIGURATION CHECK
   3530					;
   3531					;	VERSION: 10-00
   3532					;
   3533					;	DATE: 25-JUL-78
   3534					;
   3535					;	AUTHOR: R. BELANGER
   3536					;
   3537					;	MODIFICATIONS:
   3538					;
   3539					;	NO.	DATE		PROGRAMMER	REASON
   3540					;	---	----		----------	------
   3541					;
   3542					;			LOCAL DATA
   3543					;
   3544	000264					.PSECT	DATA,D
   3545	000264				SETIMF:
   3546	000264	   000 				.BYTE	0
   3547	000265				SETMMF:
   3548	000265	   000 				.BYTE	0
   3549	001136					.PSECT	TEXT,D
   3550	001136				CIMNXC:
   3551	001136					ERROR	<NONEXISTENT CONTROLLER>
	001136	   077 	   040 	   116 		 .ASCIZ	\? NONEXISTENT CONTROLLER\
	001141	   117 	   116 	   105
	001144	   130 	   111 	   123
	001147	   124 	   105 	   116
	001152	   124 	   040 	   103
	001155	   117 	   116 	   124
	001160	   122 	   117 	   114
	001163	   114 	   105 	   122
	001166	   000
   3552	001167				CIMNXM:
   3553	001167					ERROR	<NONEXISTENT MODULE/BLOCK>
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 79-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

	001167	   077 	   040 	   116 		 .ASCIZ	\? NONEXISTENT MODULE/BLOCK\
	001172	   117 	   116 	   105
	001175	   130 	   111 	   123
	001200	   124 	   105 	   116
	001203	   124 	   040 	   115
	001206	   117 	   104 	   125
	001211	   114 	   105 	   057
	001214	   102 	   114 	   117
	001217	   103 	   113 	   000
   3554	005056					.PSECT
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 80
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

   3556					.SBTTL	$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
   3557
   3558					;+
   3559					; $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
   3560					;
   3561					; $CHKIM WILL VERIFY THAT THE MASK WORD FOR INTERNAL CORE MEMORY CONFIGURATION
   3562					; IS VALID IN THAT THE MODULE SPECIFIED DOES EXIST IN THE PHYSICAL RESOURCES.
   3563					;
   3564					; INPUT ARGUMENTS:
   3565					;
   3566					;	R0 -- CONTROLLER NUMBER
   3567					;	R1 -- MODULE SELECTION BIT-MASK
   3568					;	CONTI(R0) -- BIT-MASK OF AVAILABLE MODULES
   3569					;	TYPNUM(R0) -- CONTROLLER AVAILABILITY FLAG WORD
   3570					;
   3571					; OUTPUT ARGUMENTS:
   3572					;
   3573					;	R0,R1 -- UNDEFINED
   3574					;	.CFGTB+0(R0) -- EDITED MODULE SELECTION BIT-MASK
   3575					;	CONTI(R0) -- EDITED MODULE SELECTION BIT-MASK
   3576					;
   3577					; SUCCESS RETURN:
   3578					;
   3579					;	CC-C CLEAR
   3580					;
   3581					; ERROR RETURN:
   3582					;
   3583					;	CC-C SET AND CONTI(R0) UNCHANGED.
   3584					;-
   3585
   3586					;
   3587					; HERE TO ACTUALLY SET THE SPECIFIED CONFIGURATION
   3588					;
   3589
   3590	005056				$SETIM::
   3591	005056	105237 	000264'			INCB	SETIMF		; SAY "SET"
   3592	005062	000402 				BR	CHKIMC		; DO COMMON CODE
   3593						;
   3594					;
   3595					; HERE TO SIMPLY CHECK THE DESIRED CONFIGURATION
   3596					;
   3597
   3598	005064				$CHKIM::
   3599	005064	105037 	000264'			CLRB	SETIMF		; SAY "CHECK"
   3600					;
   3601					; COMMON SET/CHECK CODE
   3602					;
   3603	005070				CHKIMC:
   3604	005070					PUSH	R2		; SAVE R2
	005070	010246 				 MOV	R2,-(SP)
   3605	005072					PUSH	R3		; AND R3
	005072	010346 				 MOV	R3,-(SP)
   3606	005074	005046 				CLR	-(SP)		; GET A BUFFER FOR BIT MASK
   3607	005076	122760 	000001 	000000G		CMPB	#1,TYPNUM(R0)	; IS THIS AN MA20??
   3608	005104	001411 				BEQ	10$		; YES -- GO ON
   3609	005106	122760 	000003 	000000G		CMPB	#3,TYPNUM(R0)	; NO -- IS IT AN MB20??
   3610	005114	001405 				BEQ	10$		; YES -- GO ON
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 80-1
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

   3611	005116					PRINT	#CIMNXC		; NO -- COMPLAIN
	005116	012700 	001136'			 MOV	#CIMNXC,R0
	005122	004737 	027634'			 JSR	PC,$TTMSG
   3612	005126	000434 				BR	50$		; AND EXIT
   3613						;
   3614	005130				10$:
   3615	005130	005701 				TST	R1		; DOES HE WANT ALL MODULES??
   3616	005132	001442 				BEQ	70$		; YES -- GIVE IT TO HIM
   3617	005134	100404 				BMI	20$		; NO -- DOES HE WANT SOME??
   3618	005136	116016 	000000G			MOVB	CONTI(R0),(SP)	; YES -- PHYSICAL BIT-MAP TO STACK
   3619	005142	005002 				CLR	R2		; INIT BIT-MASK INDEX
   3620	005144	000410 				BR	30$		; CHECK WHAT HE WANTS
   3621						;
   3622					;
   3623					; WHAT'S WHERE:
   3624					;
   3625					;	R0 -- CONTROLLER NUMBER
   3626					;	R1 -- ALLOCATION BIT MASK
   3627					;		.LT. 0 -- DELETE ENTIRE CONTROLLER
   3628					;		.EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
   3629					;		.GT. 0 -- ALLOCATE SOME MUDULES IN CONTROLLER
   3630					;	R2 -- BIT MASK INDEX
   3631					;	R3 -- CURRENT BIT MASK
   3632					;	(SP) -- BIT MASK TO/FROM MEMORY BOOT
   3633					;
   3634					; HERE TO DELETE AN ENTIRE CONTROLLER
   3635					;
   3636	005146				20$:
   3637	005146	012716 	100000 			MOV	#BIT15,(SP)	; FLAG NONE FOR SAVE/RESTORE
   3638	005152	105737 	000264'			TSTB	SETIMF		; IS THIS A SET??
   3639	005156	001430 				BEQ	70$		; NO -- JUST EXIT
   3640	005160	105060 	000000G			CLRB	TYPNUM(R0)	; YES -- CLEAR CONTROLLER FLAG
   3641	005164	000425 				BR	70$		; AND EXIT
   3642						;
   3643					;
   3644					; HERE TO ALLOCATE MODULES WITHIN A CONTROLLER
   3645					;
   3646	005166				30$:
   3647	005166	016203 	000000G			MOV	BITTBL(R2),R3	; GET MASK FOR TARGET MODULE
   3648	005172	030301 				BIT	R3,R1		; DOES HE WANT THIS ONE??
   3649	005174	001002 				BNE	40$		; YES -- GO ON
   3650	005176	140316 				BICB	R3,(SP)		; NO -- GET RID OF IT
   3651	005200	000411 				BR	60$		; AND GO ON
   3652						;
   3653	005202				40$:
   3654	005202	130316 				BITB	R3,(SP)		; WANTS THIS ONE -- IS IT THERE??
   3655	005204	001007 				BNE	60$		; YES -- GO ON
   3656	005206					PRINT	#CIMNXM		; NO -- COMPLAIN
	005206	012700 	001167'			 MOV	#CIMNXM,R0
	005212	004737 	027634'			 JSR	PC,$TTMSG
   3657	005216	005726 				TST	(SP)+		; FLUSH STACK
   3658	005220				50$:
   3659	005220	000261 				SEC			; SET ERROR FLAG
   3660	005222	000424 				BR	90$		; AND EXIT
   3661						;
   3662	005224				60$:
   3663	005224	005722 				TST	(R2)+		; POINT TO NEXT MASK BIT
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 80-2
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

   3664	005226	022702 	000010 			CMP	#10,R2		; ARE WE DONE??
   3665	005232	003355 				BGT	30$		; NO -- CONTINUE
   3666	005234	005716 				TST	(SP)		; YES -- DID HE DELETE THEM ALL??
   3667	005236	001743 				BEQ	20$		; YES -- DELETE THE CONTROLLER TOO
   3668	005240				70$:
   3669	005240	012602 				MOV	(SP)+,R2	; NO -- EDITED MASK TO R2
   3670	005242	001411 				BEQ	80$		; ZERO BIT MASK IS ONE FLAVOR OF ALL
   3671	005244	120260 	000000G			CMPB	R2,CONTI(R0)	; HAS ANYTHING CHANGED??
   3672	005250	001406 				BEQ	80$		; NO -- GO ON
   3673	005252	010201 				MOV	R2,R1		; YES -- COPY WORD TO R1
   3674	005254	105737 	000264'			TSTB	SETIMF		; IS THIS A SET??
   3675	005260	001402 				BEQ	80$		; NO -- GO ON
   3676	005262	110260 	000000G			MOVB	R2,CONTI(R0)	; YES -- EDITED MASK TO PHYSICAL TABLE
   3677	005266				80$:
   3678	005266	006300 				ASL	R0		; WORD INDEX
   3679	005270	010160 	000134'			MOV	R1,.CFGTB(R0)	; SET WORD INTO CONFIGURATION TABLE
   3680	005274				90$:
   3681	005274					POP	R3		; RESTORE REGISTERS
	005274	012603 				 MOV	(SP)+,R3
   3682	005276					POP	R2		; SO
	005276	012602 				 MOV	(SP)+,R2
   3683	005300					RETURN			; TO CALLER
	005300	000207 				 RTS	PC
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 81
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

   3685					.SBTTL	$CHKMM -- CHECK MOS MEMORY CONFIGURATION
   3686
   3687					;
   3688					; HERE TO SET THE CONFIGURATION FOR AN MF20 CONTROLLER
   3689					;
   3690	005302				$SETMM::
   3691	005302	105237 	000265'			INCB	SETMMF		; SAY "SET"
   3692	005306	000402 				BR	CHKMMC		; DO COMMON CODE
   3693						;
   3694					;
   3695					; HERE TO CHECK THE CONFIGURATION FOR AN MF20 CONTROLLER
   3696					;
   3697	005310				$CHKMM::
   3698	005310	105037 	000265'			CLRB	SETMMF		; SAY "CHECK"
   3699					;
   3700					; COMMON CHECK/SET CODE
   3701					;
   3702					;	R0 -- CONTROLLER NUMBER
   3703					;	R1 -- ALLOCATION MASK
   3704					;
   3705	005314				CHKMMC:
   3706	005314					PUSH	R2		; SAVE R2
	005314	010246 				 MOV	R2,-(SP)
   3707	005316					PUSH	R3		; AND R3
	005316	010346 				 MOV	R3,-(SP)
   3708	005320					PUSH	R4		; R4 TOO
	005320	010446 				 MOV	R4,-(SP)
   3709	005322	122760 	000005 	000000G		CMPB	#5,TYPNUM(R0)	; IS THIS AN MF20??
   3710	005330	001405 				BEQ	10$		; YES  -- GO ON
   3711	005332					PRINT	#CIMNXC		; NO -- COMPLAIN
	005332	012700 	001136'			 MOV	#CIMNXC,R0
	005336	004737 	027634'			 JSR	PC,$TTMSG
   3712	005342	000440 				BR	40$		; AND EXIT
   3713						;
   3714	005344				10$:
   3715	005344	005002 				CLR	R2		; INIT BIT-MASK INDEX
   3716	005346	005046 				CLR	-(SP)		; INIT BIT-MASK
   3717	005350	010004 				MOV	R0,R4		; COPY CONTROLLER NUMBER TO R4
   3718	005352					CALL	BAF0		; FIND BASE OF THIS MF20 TABLE
	005352	004737 	000000G			 JSR	PC,BAF0
   3719	005356	005701 				TST	R1		; WHAT DOES HE WANT??
   3720	005360	001446 				BEQ	80$		; ALL
   3721	005362	100015 				BPL	30$		; SOMETHING
   3722					;
   3723					; WHAT'S WHERE:
   3724					;
   3725					;	R0 -- POINTS TO MF20 BLOCK TABLE
   3726					;	R1 -- ALLOCATION MASK
   3727					;		.LT. 0 -- DELETE ENTIRE CONTROLLER
   3728					;		.EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
   3729					;		.GT. 0 -- DELETE SOME BLOCKS WITHIN CONTROLLER
   3730					;	R2 -- BIT MASK INDEX
   3731					;	R3 -- CURRENT BIT MASK
   3732					;	R4 -- CONTROLLER NUMBER
   3733					;	(SP) -- ACCUMULATED ALLOCATION MASK FOR RETURN
   3734					;
   3735					; HERE TO DELETE AN ENTIRE CONTROLLER
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 81-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

   3736					;
   3737	005364				20$:
   3738	005364	012716 	100000 			MOV	#BIT15,(SP)	; MARK DELETION DONE
   3739	005370	105737 	000265'			TSTB	SETMMF		; IS THIS A SET??
   3740	005374	001440 				BEQ	80$		; NO -- JUST EXIT
   3741	005376				25$:
   3742	005376	105020 				CLRB	(R0)+		; YES -- MARK THAT WE DON'T WANT THIS BLOCK
   3743	005400	005202 				INC	R2		; ADVANCE COUNTER
   3744	005402	022702 	000014 			CMP	#14,R2		; ARE WE DONE??
   3745	005406	003373 				BGT	25$		; NO -- CONTINUE DELETING
   3746	005410	105064 	000000G			CLRB	TYPNUM(R4)	; DONE -- DELETE THE CONTROLLER
   3747	005414	000430 				BR	80$		; AND EXIT
   3748						;
   3749					;
   3750					; HERE TO ALLOCATE/DELETE BLOCKS TO/FROM A CONTROLLER
   3751					;
   3752	005416				30$:
   3753	005416	016203 	000000G			MOV	BITTBL(R2),R3	; GET MASK BIT INTO R3
   3754	005422	030301 				BIT	R3,R1		; DOES HE WANT THIS ONE??
   3755	005424	001413 				BEQ	60$		; NO -- GO DELETE IT
   3756	005426	105710 				TSTB	(R0)		; YES -- DOES IT EXIST??
   3757	005430	001007 				BNE	50$		; YES -- ALLOCATE IT
   3758	005432					PRINT	#CIMNXM		; NO -- COMPLAIN
	005432	012700 	001167'			 MOV	#CIMNXM,R0
	005436	004737 	027634'			 JSR	PC,$TTMSG
   3759	005442	005726 				TST	(SP)+		; FLUSH STACK
   3760	005444				40$:
   3761	005444	000261 				SEC			; SET ERROR FLAG
   3762	005446	000416 				BR	90$		; AND EXIT
   3763						;
   3764	005450				50$:
   3765	005450	050316 				BIS	R3,(SP)		; MARK DESIRED BLOCK
   3766	005452	000404 				BR	70$		; AND TRY FOR NEXT
   3767						;
   3768	005454				60$:
   3769	005454	105737 	000265'			TSTB	SETMMF		; IS THIS A SET??
   3770	005460	001401 				BEQ	70$		; NO -- GO ON
   3771	005462	105010 				CLRB	(R0)		; YES -- DELETE BLOCK FROM PHYSICAL TABLE
   3772	005464				70$:
   3773	005464	005200 				INC	R0		; STEP POINTER
   3774	005466	005722 				TST	(R2)+		; ADVANCE TO NEXT BLOCK
   3775	005470	022702 	000030 			CMP	#30,R2		; DONE??
   3776	005474	003350 				BGT	30$		; NO -- CONTINUE TESTING
   3777	005476				80$:
   3778	005476	006304 				ASL	R4		; YES -- CONVERT TO WORD INDEX
   3779	005500	012664 	000134'			MOV	(SP)+,.CFGTB(R4) ; SET CONFIGURATION MASK IN TABLE
   3780	005504				90$:
   3781	005504					POP	R4		; RESTORE REGISTERS
	005504	012604 				 MOV	(SP)+,R4
   3782	005506					POP	R3
	005506	012603 				 MOV	(SP)+,R3
   3783	005510					POP	R2
	005510	012602 				 MOV	(SP)+,R2
   3784	005512					RETURN			; TO CALLER
	005512	000207 				 RTS	PC
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1113  03-APR-86 20:55  PAGE 82
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

   3786
   3787						.TITLE	KLICO -- CONFIGURATION EDITOR
   3788	005514					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3789					;
   3790					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   3791					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3792					;			ALL RIGHTS RESERVED.
   3793					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3794					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3795					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3796					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3797					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3798					;
   3799					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3800					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3801					;       CORPORATION.
   3802					;
   3803					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3804					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3805					;
   3806					;
   3807					;	MODULE: CONFIGURATION EDITOR
   3808					;
   3809					;	VERSION: 10-00
   3810					;
   3811					;	DATE: 25-JUL-78
   3812					;
   3813					;	AUTHOR: R. BELANGER
   3814					;
   3815					;	MODIFICATIONS:
   3816					;
   3817					;	NO.	DATE		PROGRAMMER	REASON
   3818					;	---	----		----------	------
   3819					;
   3820					;
   3821					;
   3822					;			LOCAL DATA
   3823					;
   3824	001222					.PSECT	TEXT,D
   3825	001222				CFGINM:
   3826	001222					WARNING <INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
	001222	   045 	   040 	   111 		 .ASCIZ	\% INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
	001225	   116 	   124 	   105
	001230	   122 	   116 	   101
	001233	   114 	   040 	   103
	001236	   117 	   122 	   105
	001241	   040 	   115 	   105
	001244	   115 	   117 	   122
	001247	   131 	   040 	   122
	001252	   105 	   123 	   117
	001255	   125 	   122 	   103
	001260	   105 	   123 	   040
	001263	   104 	   117 	   040
	001266	   116 	   117 	   124
	001271	   040 	   115 	   101
	001274	   124 	   103 	   110
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 82-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

	001277	   040 	   106 	   111
	001302	   114 	   105 	   000
   3827	001305				CFGXNM:
   3828	001305					WARNING <EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
	001305	   045 	   040 	   105 		 .ASCIZ	\% EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
	001310	   130 	   124 	   105
	001313	   122 	   116 	   101
	001316	   114 	   040 	   103
	001321	   117 	   122 	   105
	001324	   040 	   115 	   105
	001327	   115 	   117 	   122
	001332	   131 	   040 	   122
	001335	   105 	   123 	   117
	001340	   125 	   122 	   103
	001343	   105 	   123 	   040
	001346	   104 	   117 	   040
	001351	   116 	   117 	   124
	001354	   040 	   115 	   101
	001357	   124 	   103 	   110
	001362	   040 	   106 	   111
	001365	   114 	   105 	   000
   3829	001370				CFGMNM:
   3830	001370					WARNING <MOS MEMORY RESOURCES DO NOT MATCH FILE>
	001370	   045 	   040 	   115 		 .ASCIZ	\% MOS MEMORY RESOURCES DO NOT MATCH FILE\
	001373	   117 	   123 	   040
	001376	   115 	   105 	   115
	001401	   117 	   122 	   131
	001404	   040 	   122 	   105
	001407	   123 	   117 	   125
	001412	   122 	   103 	   105
	001415	   123 	   040 	   104
	001420	   117 	   040 	   116
	001423	   117 	   124 	   040
	001426	   115 	   101 	   124
	001431	   103 	   110 	   040
	001434	   106 	   111 	   114
	001437	   105 	   000
   3831	001441				CFGMAC:
   3832	001441					WARNING <MOS MEMORY IS ALREADY CONFIGURED>
	001441	   045 	   040 	   115 		 .ASCIZ	\% MOS MEMORY IS ALREADY CONFIGURED\
	001444	   117 	   123 	   040
	001447	   115 	   105 	   115
	001452	   117 	   122 	   131
	001455	   040 	   111 	   123
	001460	   040 	   101 	   114
	001463	   122 	   105 	   101
	001466	   104 	   131 	   040
	001471	   103 	   117 	   116
	001474	   106 	   111 	   107
	001477	   125 	   122 	   105
	001502	   104 	   000
   3833	005514					.PSECT
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 83
$CONFG -- EDITOR DISPATCH

   3835						.SBTTL	$CONFG -- EDITOR DISPATCH
   3836
   3837	005514				$CONFG::
   3838	005514	105037 	000032'			CLRB	.DMSW		; RESET FLAG
   3839	005520	105737 	000000G			TSTB	MA20		; DO WE HAVE INTERNAL MEMORY??
   3840	005524	001003 				BNE	10$		; YES -- CONFIGURE IT
   3841	005526	105737 	000000G			TSTB	MB20		; NO -- HOW ABOUT MB20'S
   3842	005532	001403 				BEQ	20$		; NO -- GO ON
   3843	005534				10$:
   3844	005534					CALL	CFGINT		; YES -- CONFIGURE IT
	005534	004737 	005624'			 JSR	PC,CFGINT
   3845	005540	103430 				BCS	70$		; ERROR IF CC-C SET
   3846	005542				20$:
   3847	005542	105737 	000000G			TSTB	DMA20		; DO WE HAVE EXTERNAL MEMORY??
   3848	005546	001403 				BEQ	30$		; NO -- GO ON
   3849	005550					CALL	CFGEXT		; YES -- CONFIGURE IT
	005550	004737 	006076'			 JSR	PC,CFGEXT
   3850	005554	103422 				BCS	70$		; ERROR IF CC-C SET
   3851
   3852	005556				30$:
   3853	005556	105737 	000000G			TSTB	MF20		; DO WE HAVE MOS MEMORY??
   3854	005562	001403 				BEQ	40$		; NO -- GO ON
   3855	005564					CALL	CFGMOS		; YES CONFIGURE IT
	005564	004737 	006234'			 JSR	PC,CFGMOS
   3856	005570	103414 				BCS	70$		; ERROR IF CC-C SET
   3857	005572				40$:
   3858	005572	113746 	000032'			MOVB	.DMSW,-(SP)	; DONE -- SAVE FLAG
   3859	005576	105037 	000032'			CLRB	.DMSW		; INIT FOR RETURN
   3860	005602	105737 	000024'			TSTB	.DLGSW		; ARE WE BEING TOLD WHAT TO DO??
   3861	005606	001402 				BEQ	50$		; YES -- SET FLAG TO WRITE FILE
   3862	005610	105716 				TSTB	(SP)		; NO -- DID ANYTHING CHANGE??
   3863	005612	001402 				BEQ	60$		; NO -- JUST EXIT
   3864	005614				50$:
   3865	005614	105237 	000032'			INCB	.DMSW		; YES -- FLAG FILE WRITE
   3866	005620				60$:
   3867	005620	005726 				TST	(SP)+		; CLEAR STACK
   3868	005622				70$:
   3869	005622					RETURN			; TO CALLER
	005622	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 84
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR

   3871						.SBTTL	CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
   3872
   3873	005624				CFGINT:
   3874	005624	012704 	000004 			MOV	#4,R4		; INIT ITERATION COUNTER
   3875	005630	005002 				CLR	R2		; INIT CONTROLER NUMBER
   3876	005632	005003 				CLR	R3		; RESET ERROR FLAG
   3877	005634				10$:
   3878	005634	010200 				MOV	R2,R0		; CONTROLLER NUMBER TO R0
   3879	005636	006200 				ASR	R0		; BYTE INDEX
   3880	005640	016201 	000134'			MOV	.CFGTB(R2),R1	; EDITED CONFIGURATION MASK
   3881	005644	100015 				BPL	20$		; WANTS IT CONFIGURED
   3882	005646	105760 	000000G			TSTB	TYPNUM(R0)	; THIS CONTROLLER EXIST??
   3883	005652	001461 				BEQ	60$		; NO -- DON'T BOTHER DELETING
   3884	005654	126060 	000000G	000072'		CMPB	TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
   3885	005662	001402 				BEQ	15$		; YES -- GO ON
   3886	005664					CALL	70$		; NO -- WARN HIM
	005664	004737 	006034'			 JSR	PC,70$
   3887	005670				15$:
   3888	005670					CALL	$SETIM		; AND DELETE IT
	005670	004737 	005056'			 JSR	PC,$SETIM
   3889	005674	103477 				BCS	90$		; ERROR IF CC-C SET
   3890	005676	000447 				BR	60$		; AND TRY FOR NEXT
   3891						;
   3892	005700				20$:
   3893	005700	105760 	000000G			TSTB	TYPNUM(R0)	; DOES THIS CONTROLLER EXIST??
   3894	005704	001006 				BNE	30$		; YES -- GO ON
   3895	005706	012762 	100000 	000134'		MOV	#BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
   3896	005714					CALL	70$		; WARN OPERATOR
	005714	004737 	006034'			 JSR	PC,70$
   3897	005720	000436 				BR	60$		; GO AROUND AGAIN
   3898						;
   3899	005722				30$:
   3900	005722	126060 	000000G	000072'		CMPB	TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
   3901	005730	001403 				BEQ	35$		; YES -- GO ON
   3902	005732					CALL	70$		; NO -- WARN OPERATOR
	005732	004737 	006034'			 JSR	PC,70$
   3903	005736	105001 				CLRB	R1		; SAY "ALL"
   3904	005740				35$:
   3905	005740	120160 	000000G			CMPB	R1,CONTI(R0)	; ARE THESE THE SAME??
   3906	005744	001414 				BEQ	40$		; YES -- GO ON
   3907	005746	105701 				TSTB	R1		; IS IT "ALL"??
   3908	005750	001412 				BEQ	40$		; YES -- SAME DIFFERENCE
   3909	005752					PUSH	R1		; SAVE R1
	005752	010146 				 MOV	R1,-(SP)
   3910	005754					CALL	$SETIM		; DELETE THE MODULES
	005754	004737 	005056'			 JSR	PC,$SETIM
   3911	005760					POP	R1		; RESTORE R1
	005760	012601 				 MOV	(SP)+,R1
   3912	005762	103005 				BCC	40$		; ALL OK IF CC-C IS CLEAR
   3913	005764	105060 	000134'			CLRB	.CFGTB(R0)	; SET TO "ALL"
   3914	005770					CALL	70$		; WARN OPERATOR OR EXIT
	005770	004737 	006034'			 JSR	PC,70$
   3915	005774	000410 				BR	60$		; GO ON TO NEXT CONTROLLER
   3916						;
   3917	005776				40$:
   3918	005776	000301 				SWAB	R1		; SWAP THE BYTES
   3919	006000	042701 	177774 			BIC	#^C3,R1		; FLUSH JUNK
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 84-1
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR

   3920	006004	001002 				BNE	50$		; GO ON IF .NE.
   3921	006006	012701 	000003 			MOV	#3,R1		; (0 V 4) => 3
   3922	006012				50$:
   3923	006012	110137 	000000G			MOVB	R1,INTMOD	; SET THE INTERLEAVE MODE
   3924	006016				60$:
   3925	006016	005722 				TST	(R2)+		; ADVANCE CONTROLLER INDEX
   3926	006020	077473 				SOB	R4,10$		; LOOP TILL DONE
   3927	006022	105037 	000000G			CLRB	MABRD		; DONE -- RESET FLAGS
   3928	006026	105037 	000000G			CLRB	RDDONE		; SO
   3929	006032					RETURN			; TO CALLER
	006032	000207 				 RTS	PC
   3930	006034				70$:
   3931	006034	005703 				TST	R3		; ALREADY PRINTED??
   3932	006036	001006 				BNE	80$		; YES -- GO ON
   3933	006040					PUSH	R0		; NO -- SAVE R0
	006040	010046 				 MOV	R0,-(SP)
   3934	006042					PRINT	#CFGINM		; TELL HIM
	006042	012700 	001222'			 MOV	#CFGINM,R0
	006046	004737 	027634'			 JSR	PC,$TTMSG
   3935	006052					POP	R0		; RESTORE R0
	006052	012600 				 MOV	(SP)+,R0
   3936	006054				80$:
   3937	006054	005203 				INC	R3		; FLAG PRINT
   3938	006056	105237 	000032'			INCB	.DMSW		; AND CONTROL
   3939	006062	105737 	000024'			TSTB	.DLGSW		; IS HE TALKING TO US??
   3940	006066	001002 				BNE	90$		; NO -- GO ON
   3941	006070	000137 	024012'			JMP	$ERROR		; YES -- QUIT NOW
   3942						;
   3943	006074				90$:
   3944	006074					RETURN			; TO CALLER
	006074	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 85
CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR

   3946						.SBTTL	CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
   3947
   3948	006076				CFGEXT:
   3949	006076	012700 	000004 			MOV	#4,R0		; CONTROLLER NUMBER 4
   3950	006102	013701 	000144'			MOV	.CFGTB+10,R1	; ALLOCATION DATA TO R1
   3951	006106	100005 				BPL	10$		; HE WANTS IT
   3952	006110	105737 	000004G			TSTB	TYPNUM+4	; IS IT THERE??
   3953	006114	001446 				BEQ	50$		; NO -- SO DON'T BOTHER
   3954	006116					CALLR	INIDMA		; YES -- SO DELETE IT
	006116	000137 	000000G			 JMP	INIDMA
   3955						;
   3956	006122				10$:
   3957	006122	105737 	000004G			TSTB	TYPNUM+4	; IS IT THERE??
   3958	006126	001004 				BNE	20$		; YES -- ALLOCATE IT
   3959	006130	012737 	100000 	000144'		MOV	#BIT15,.CFGTB+10 ; NO -- LOGICALLY DELETE IT
   3960	006136	000414 				BR	30$		; PRINT THE MESSAGE AND EXIT
   3961						;
   3962	006140				20$:
   3963	006140	005737 	000000G			TST	DMA2TS		; IS IT REALLY THERE??
   3964	006144	003411 				BLE	30$		; NO -- COMPLAIN
   3965	006146	110100 				MOVB	R1,R0		; YES -- GET THE INTERLEAVE MODE INTO R0
   3966	006150	001430 				BEQ	50$		; EXIT NOW IF OPTIMAL
   3967	006152	042700 	177774 			BIC	#^C3,R0		; FLUSH JUNK
   3968	006156	006300 				ASL	R0		; WORD INDEX
   3969	006160	036037 	000236'	000000G		BIT	BMMSTB(R0),DMANXM ; IS IT OK??
   3970	006166	001413 				BEQ	40$		; YES -- GO ON
   3971	006170				30$:
   3972	006170					PRINT	#CFGXNM		; NO -- COMPLAIN
	006170	012700 	001305'			 MOV	#CFGXNM,R0
	006174	004737 	027634'			 JSR	PC,$TTMSG
   3973	006200	105237 	000032'			INCB	.DMSW		; FLAG CONTROL
   3974	006204	105737 	000024'			TSTB	.DLGSW		; IS SOMEONE TALKING TO US??
   3975	006210	001010 				BNE	50$		; NO -- JUST EXIT
   3976	006212	000137 	024012'			JMP	$ERROR		; YES -- BAIL OUT NOW
   3977						;
   3978	006216				40$:
   3979	006216	005701 				TST	R1		; IS MODE NOW ZERO??
   3980	006220	001002 				BNE	45$		; NO -- GO ON
   3981	006222	012701 	000003 			MOV	#3,R1		; YES -- MAKE IT 4-WAY
   3982	006226				45$:
   3983	006226	110137 	000000G			MOVB	R1,DMABM	; SET THE BUS MODE
   3984	006232				50$:
   3985	006232					RETURN			; TO CALLER
	006232	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 86
CFGMOS -- MOS CONFIGURATION EDITOR

   3987						.SBTTL	CFGMOS -- MOS CONFIGURATION EDITOR
   3988
   3989	006234				CFGMOS:
   3990	006234	012704 	000010 			MOV	#10,R4		; INIT ITERATION COUNTER
   3991	006240	012702 	000020 			MOV	#20,R2		; ALSO BASE CONTROLLER NUMBER
   3992	006244	005003 				CLR	R3		; INIT FLAG
   3993	006246				10$:
   3994	006246	010200 				MOV	R2,R0		; CONTROLER NUMBER TO R0
   3995	006250	006200 				ASR	R0		; REAL CONTROLLER NUMBER
   3996	006252	122760 	000002 	000000G		CMPB	#2,CONTI(R0)	; WHAT STATE ARE WE IN??
   3997	006260	003005 				BGT	15$		; OK TO CONFIGURE
   3998	006262					PRINT	#CFGMAC		; ALREADY CONFIGURED
	006262	012700 	001441'			 MOV	#CFGMAC,R0
	006266	004737 	027634'			 JSR	PC,$TTMSG
   3999	006272	000441 				BR	45$		; NEXT...
   4000						;
   4001	006274				15$:
   4002	006274	016201 	000134'			MOV	.CFGTB(R2),R1	; CONFIGURATION MASK
   4003	006300	002004 				BGE	20$		; WANTS IT IF .GE. 0
   4004	006302	105760 	000000G			TSTB	TYPNUM(R0)	; IS CONTROLLER THERE??
   4005	006306	001022 				BNE	35$		; YES -- DELETE IT
   4006	006310	000430 				BR	40$		; NO -- TRY FOR NEXT CONTROLLER
   4007						;
   4008	006312				20$:
   4009	006312	105760 	000000G			TSTB	TYPNUM(R0)	; IS THE CONTROLLER THERE??
   4010	006316	003006 				BGT	30$		; YES -- GO ON
   4011	006320	012762 	100000 	000134'		MOV	#BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
   4012	006326					CALL	50$		; WARN OPERATOR
	006326	004737 	006400'			 JSR	PC,50$
   4013	006332	000417 				BR	40$		; AND GO ON
   4014						;
   4015	006334				30$:
   4016	006334					CALL	$MAPMM		; GET THE MOS MAP FOR THIS CONTROLLER
	006334	004737 	006436'			 JSR	PC,$MAPMM
   4017	006340	020100 				CMP	R1,R0		; ARE THE MASKS THE SAME??
   4018	006342	001413 				BEQ	40$		; YES -- DON'T DELETE MODULES
   4019	006344	005701 				TST	R1		; NO -- DID HE MEAN ALL??
   4020	006346	001411 				BEQ	40$		; YES -- GO ON
   4021	006350	010200 				MOV	R2,R0		; NO -- GET CONTROLLER NUMBER
   4022	006352	006200 				ASR	R0		; RIGHT
   4023	006354				35$:
   4024	006354					CALL	$SETMM		; AND SET IT
	006354	004737 	005302'			 JSR	PC,$SETMM
   4025	006360	103004 				BCC	40$		; ALL OK IF CC-C IS CLEAR
   4026	006362					CALL	50$		; WARN OPERATOR OR EXIT
	006362	004737 	006400'			 JSR	PC,50$
   4027	006366	005062 	000134'			CLR	.CFGTB(R2)	; SET TABLE TO "ALL"
   4028	006372				40$:
   4029	006372	005722 				TST	(R2)+		; NEXT CONTROLLER
   4030	006374	077454 				SOB	R4,10$		; LOOP TILL DONE
   4031	006376				45$:
   4032	006376					RETURN			; TO CALLER
	006376	000207 				 RTS	PC
   4033	006400				50$:
   4034	006400	005703 				TST	R3		; ALREADY PRINTED??
   4035	006402	001004 				BNE	60$		; YES -- GO ON
   4036	006404					PRINT	#CFGMNM		; NO PRINT IT
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 86-1
CFGMOS -- MOS CONFIGURATION EDITOR

	006404	012700 	001370'			 MOV	#CFGMNM,R0
	006410	004737 	027634'			 JSR	PC,$TTMSG
   4037	006414				60$:
   4038	006414	005203 				INC	R3		; FLAG PRINT
   4039	006416	105237 	000032'			INCB	.DMSW		; HERE TOO
   4040	006422	105737 	000024'			TSTB	.DLGSW		; SOMEONE OUT THERE??
   4041	006426	001401 				BEQ	70$		; YES
   4042	006430					RETURN			; NO -- RETURN
	006430	000207 				 RTS	PC
   4043	006432				70$:
   4044	006432	000137 	024012'			JMP	$ERROR		; BAIL OUT NOW...
   4045						;
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 87
$MAPMM -- MAP MOS CONTROLLER BLOCKS

   4047						.SBTTL	$MAPMM -- MAP MOS CONTROLLER BLOCKS
   4048
   4049	006436				$MAPMM::
   4050	006436					PUSH	R2		; SAVE R2
	006436	010246 				 MOV	R2,-(SP)
   4051	006440					PUSH	R4		; AND R4
	006440	010446 				 MOV	R4,-(SP)
   4052	006442	005046 				CLR	-(SP)		; BUFFER
   4053	006444	012704 	000014 			MOV	#14,R4		; ITERATION COUNTER
   4054	006450	005002 				CLR	R2		; INIT INDEX
   4055	006452					CALL	BAF0		; FIND BASE ADDRESS THIS CONTROLLER
	006452	004737 	000000G			 JSR	PC,BAF0
   4056	006456				10$:
   4057	006456	105720 				TSTB	(R0)+		; IS THE BLOCK THERE??
   4058	006460	001402 				BEQ	20$		; NO -- GO ON
   4059	006462	056216 	000000G			BIS	BITTBL(R2),(SP)	; YES -- LIGHT A BIT
   4060	006466				20$:
   4061	006466	005722 				TST	(R2)+		; AND NEXT BIT
   4062	006470	077406 				SOB	R4,10$		; LOOP TILL DONE
   4063	006472					POP	R0		; BIT MASK TO R0
	006472	012600 				 MOV	(SP)+,R0
   4064	006474					POP	R4		; RESTORE R4
	006474	012604 				 MOV	(SP)+,R4
   4065	006476					POP	R2		; RESTORE R2
	006476	012602 				 MOV	(SP)+,R2
   4066	006500					RETURN			; TO CALLER
	006500	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1113  03-APR-86 20:55  PAGE 88
$MAPMM -- MAP MOS CONTROLLER BLOCKS

   4068
   4069
   4070						.TITLE	KLICS -- SWEEP CACHE
   4071	006502					IDENT$	5,1
						.IDENT	/005010/
   4072					;
   4073					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4074					; ALL RIGHTS RESERVED.
   4075					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4076					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4077					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4078					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4079					;
   4080					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4081					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4082					; EQUIPMENT CORPORATION.
   4083					;
   4084					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4085					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4086					;
   4087					; VERSION 05-01
   4088					;
   4089					; ALAN D. PECKHAM  8-APR-77
   4090					;
   4091					; MODIFIED BY:
   4092					;
   4093					; FUNCTION: SWEEP AND INVALIDATE THE KL CACHE.
   4094					;
   4096					; EQUATED SYMBOLS
   4097					;
   4098		000014 			CCA	=	14		; KL DEVICE.
   4099		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
   4100		000001 			DATAI	=	1		; KL I/O SUBFUNCTION CODE.
   4101		000010 			PAG	=	10		; KL DEVICE.
   4102					;
   4103					; LOCAL DATA
   4104					;
   4105	000266					.PSECT	DATA,D
   4106	000266				DCSSIA:	IO10$	DATAI CCA,,0	; SWPIA INSTRUCTION.
	000266	   000 	   000 	   200 		 .BYTE	BY$$0,BY$$1,BY$$2
	000271	   014 	   016 			 .BYTE	BY$$3,BY$$4
   4107	000273				DCSRCA:	IO10$	CONO PAG,,0	; RESET CACHE & PAGING STATUS.
	000273	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000276	   012 	   016 			 .BYTE	BY$$3,BY$$4
   4108						.EVEN
   4109	006502					.PSECT
KLICS -- SWEEP CACHE	MACRO M1113  03-APR-86 20:55  PAGE 89
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

   4111						.SBTTL	$SWEEP	-- SWEEP AND INVALIDATE THE CACHE
   4112					;+
   4113					; SWEEP THE CACHE OUT AND TURN IT OFF.
   4114					;
   4115					; INPUTS:
   4116					;	.NCACH	- NUMBER OF CACHES CONFIGURED.
   4117					;	.CACHN	- NUMBERS OF THE CACHES ENABLED.
   4118					;
   4119					; NO OUTPUTS
   4120					;-
   4121
   4122	006502				$SWEEP::
   4123	006502	105737 	000043'			TSTB	.CASW		; CHECK CACHE CONDITION AND
   4124	006506	003415 				BLE	90$		; RETURN IF NO CACHE.
   4125	006510					PUSH	<R1,R0>
	006510	010146 				 MOV	R1,-(SP)
	006512	010046 				 MOV	R0,-(SP)
   4126	006514	012700 	000266'			MOV	#DCSSIA,R0	; FIRST, INVALIDATE THE CACHE
   4127	006520					CALL	$EXCT		; WITH A SWPIA.
	006520	004737 	030636'			 JSR	PC,$EXCT
   4128	006524	103404 				BCS	80$
   4129	006526	012700 	000273'			MOV	#DCSRCA,R0	; THEN TURN OFF CACHE LOOK & LOAD
   4130	006532					CALL	$EXCT		; WITH A CONO PAG,,0.
	006532	004737 	030636'			 JSR	PC,$EXCT
   4131	006536				80$:
   4132	006536					POP	<R0,R1>
	006536	012600 				 MOV	(SP)+,R0
	006540	012601 				 MOV	(SP)+,R1
   4133	006542				90$:
   4134	006542					RETURN
	006542	000207 				 RTS	PC
   4135
KLICS -- SWEEP CACHE	MACRO M1113  03-APR-86 20:55  PAGE 90
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

   4138
   4139						.TITLE	KLICX -- EXTERNAL MEMORY CONFIGURATION DIALOG
   4140	006544					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   4141					;
   4142					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   4143					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4144					;			ALL RIGHTS RESERVED.
   4145					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   4146					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4147					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4148					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4149					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4150					;
   4151					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4152					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4153					;       CORPORATION.
   4154					;
   4155					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4156					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4157					;
   4158					;
   4159					;	MODULE: EXTERNAL MEMORY CONFIGURATION DIALOG
   4160					;
   4161					;	VERSION: 10-00
   4162					;
   4163					;	DATE: 25-JUL-78
   4164					;
   4165					;	AUTHOR: R. BELANGER
   4166					;
   4167					;	MODIFICATIONS:
   4168					;
   4169					;	NO.	DATE		PROGRAMMER	REASON
   4170					;	---	----		----------	------
   4171					;
   4172					;			LOCAL DATA
   4173					;
   4174	001504					.PSECT	TEXT,D
   4175	001504				CXMDOL:
   4176	001504					WARNING <EXTERNAL CORE MEMORY IS OFF-LINE>
	001504	   045 	   040 	   105 		 .ASCIZ	\% EXTERNAL CORE MEMORY IS OFF-LINE\
	001507	   130 	   124 	   105
	001512	   122 	   116 	   101
	001515	   114 	   040 	   103
	001520	   117 	   122 	   105
	001523	   040 	   115 	   105
	001526	   115 	   117 	   122
	001531	   131 	   040 	   111
	001534	   123 	   040 	   117
	001537	   106 	   106 	   055
	001542	   114 	   111 	   116
	001545	   105 	   000
   4177	001547				CFXMQ1:
   4178	001547	   103 	   117 	   116 		.ASCIZ	/CONFIGURE EXTERNAL CORE MEMORY [YES,NO]?/
	001552	   106 	   111 	   107
	001555	   125 	   122 	   105
	001560	   040 	   105 	   130
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1113  03-APR-86 20:55  PAGE 90-1
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

	001563	   124 	   105 	   122
	001566	   116 	   101 	   114
	001571	   040 	   103 	   117
	001574	   122 	   105 	   040
	001577	   115 	   105 	   115
	001602	   117 	   122 	   131
	001605	   040 	   133 	   131
	001610	   105 	   123 	   054
	001613	   116 	   117 	   135
	001616	   077 	   000
   4179	001620				CFXMQ2:
   4180	001620	   105 	   130 	   124 		.ASCIZ	/EXTERNAL CORE MEMORY BUS-MODE [OPTIMAL,1,2,4]?/
	001623	   105 	   122 	   116
	001626	   101 	   114 	   040
	001631	   103 	   117 	   122
	001634	   105 	   040 	   115
	001637	   105 	   115 	   117
	001642	   122 	   131 	   040
	001645	   102 	   125 	   123
	001650	   055 	   115 	   117
	001653	   104 	   105 	   040
	001656	   133 	   117 	   120
	001661	   124 	   111 	   115
	001664	   101 	   114 	   054
	001667	   061 	   054 	   062
	001672	   054 	   064 	   135
	001675	   077 	   000
   4181	001677				CXMIBM:
   4182	001677					ERROR	<ILLEGAL BUS-MODE>
	001677	   077 	   040 	   111 		 .ASCIZ	\? ILLEGAL BUS-MODE\
	001702	   114 	   114 	   105
	001705	   107 	   101 	   114
	001710	   040 	   102 	   125
	001713	   123 	   055 	   115
	001716	   117 	   104 	   105
	001721	   000
   4183	006544					.PSECT
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1113  03-APR-86 20:55  PAGE 91
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4185						.SBTTL	$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
   4186
   4187	006544				$CFXMD::
   4188	006544	105737 	000000G			TSTB	DMA20		; DO WE HAVE EXTERNAL MEMORY??
   4189	006550	001540 				BEQ	100$		; NO -- GO ON TO NEXT SECTION
   4190	006552	005737 	000000G			TST	DMA2TS		; YES -- IS IT ON-LINE??
   4191	006556	003005 				BGT	10$		; YES -- GO ON
   4192	006560					PRINT	#CXMDOL		; NO -- SAY SO
	006560	012700 	001504'			 MOV	#CXMDOL,R0
	006564	004737 	027634'			 JSR	PC,$TTMSG
   4193	006570	000530 				BR	100$		; AND EXIT
   4194						;
   4195	006572				10$:
   4196	006572	105737 	000032'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   4197	006576	002435 				BLT	40$		; NO -- TAKE DEFAULT PATH
   4198	006600					PRINT	#CFXMQ1		; YES -- ASK THE FIRST QUESTION
	006600	012700 	001547'			 MOV	#CFXMQ1,R0
	006604	004737 	027634'			 JSR	PC,$TTMSG
   4199	006610					CALL	$TTRD		; READ THE RESPONSE
	006610	004737 	027130'			 JSR	PC,$TTRD
   4200	006614	012705 	000304'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   4201	006620	105715 				TSTB	(R5)		; DEFAULT??
   4202	006622	001423 				BEQ	40$		; YES -- DO IT
   4203	006624	022715 	042531 			CMP	#"YE,(R5)	; NO -- IS IT "YES"??
   4204	006630	001420 				BEQ	40$		; YES -- DO IT
   4205	006632	022715 	047516 			CMP	#"NO,(R5)	; NO -- IS IT "NO"??
   4206	006636	001412 				BEQ	30$		; YES -- DO IT
   4207	006640	022715 	040502 			CMP	#"BA,(R5)	; NO -- IS IT "BACK"??
   4208	006644	001405 				BEQ	20$		; YES -- BACK UP ONE
   4209	006646					PRINT	#COMCSE		; NO -- ERROR
	006646	012700 	005552'			 MOV	#COMCSE,R0
	006652	004737 	027634'			 JSR	PC,$TTMSG
   4210	006656	000745 				BR	10$
   4211						;
   4212	006660				20$:
   4213	006660					CALLR	$DLMB2		; BACK UP TO PREVIOUS QUESTION
	006660	000137 	020372'			 JMP	$DLMB2
   4214						;
   4215	006664				30$:
   4216	006664	012701 	100000 			MOV	#BIT15,R1	; MAKE R1 SAY "NO"
   4217	006670	000401 				BR	50$		; DO COMMON CODE
   4218						;
   4219	006672				40$:
   4220	006672	005001 				CLR	R1		; MAKE R1 SAY "YES" <DEFAULT PATH>
   4221	006674				50$:
   4222	006674	010137 	000144'			MOV	R1,.CFGTB+10	; SET IT IN CONFIGURATION TABLE
   4223	006700	100464 				BMI	100$		; DONE IF DELETE...
   4224	006702				60$:
   4225	006702	105737 	000032'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   4226	006706	002461 				BLT	100$		; NO -- JUST EXIT
   4227	006710					PRINT	#CFXMQ2		; YES -- ASK THE SECOND QUESTION
	006710	012700 	001620'			 MOV	#CFXMQ2,R0
	006714	004737 	027634'			 JSR	PC,$TTMSG
   4228	006720					CALL	$TTRD		; READ THE RESPONSE
	006720	004737 	027130'			 JSR	PC,$TTRD
   4229	006724	005000 				CLR	R0		; INIT DEFAULT BUS-MODE
   4230	006726	012705 	000304'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1113  03-APR-86 20:55  PAGE 91-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4231	006732	105715 				TSTB	(R5)		; DEFAULT??
   4232	006734	001444 				BEQ	90$		; YES -- GO ON
   4233	006736	022715 	050117 			CMP	#"OP,(R5)	; NO -- "OPTIMAL"??
   4234	006742	001441 				BEQ	90$		; YES -- GO ON
   4235	006744	022715 	040502 			CMP	#"BA,(R5)	; NO -- "BACK"??
   4236	006750	001710 				BEQ	10$		; YES -- BACK UP ONE
   4237	006752					CALL	$TRI2B		; NO -- HAD BETTER BE NUMERIC
	006752	004737 	025424'			 JSR	PC,$TRI2B
   4238	006756	103426 				BCS	80$		; OOPS!
   4239	006760	005700 				TST	R0		; DID HE TYPE ZERO??
   4240	006762	001424 				BEQ	80$		; YES -- NOT ALLOWED
   4241	006764	022700 	000004 			CMP	#4,R0		; NO -- IN RANGE??
   4242	006770	002421 				BLT	80$		; NO -- COMPLAIN
   4243	006772	022700 	000003 			CMP	#3,R0		; YES -- IS IT "3"??
   4244	006776	001416 				BEQ	80$		; YES -- NOT ALLOWED
   4245	007000				70$:
   4246	007000	010001 				MOV	R0,R1		; NO -- ALL OK
   4247	007002	042701 	177774 			BIC	#^C3,R1		; FLUSH JUNK
   4248	007006	006301 				ASL	R1		; WORD INDEX
   4249	007010	016101 	000236'			MOV	BMMSTB(R1),R1	; BIT MASK TO R1
   4250	007014	030137 	000000G			BIT	R1,DMANXM	; IS THIS BUS-MODE LEGAL??
   4251	007020	001412 				BEQ	90$		; YES -- GO ON
   4252	007022					PRINT	#CXMIBM		; NO -- COMPLAIN
	007022	012700 	001677'			 MOV	#CXMIBM,R0
	007026	004737 	027634'			 JSR	PC,$TTMSG
   4253	007032	000723 				BR	60$		; AND TRY AGAIN
   4254						;
   4255	007034				80$:
   4256	007034					PRINT	#COMCSE		; ERROR MESSAGE
	007034	012700 	005552'			 MOV	#COMCSE,R0
	007040	004737 	027634'			 JSR	PC,$TTMSG
   4257	007044	000716 				BR	60$		; TRY AGAIN
   4258						;
   4259	007046				90$:
   4260	007046	010037 	000144'			MOV	R0,.CFGTB+10
   4261	007052				100$:
   4262	007052					CALLR	$DLGMF		; CONFIGURE MOS MEMORY
	007052	000137 	020354'			 JMP	$DLGMF
   4263						;
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1113  03-APR-86 20:55  PAGE 92
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4265
   4266
   4267						.TITLE	KLIDC -- FILE CLOSE ROUTINE
   4268	007056					IDENT$	5,0
						.IDENT	/005000/
   4269					;
   4270					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4271					; ALL RIGHTS RESERVED.
   4272					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4273					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4274					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4275					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4276					;
   4277					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4278					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4279					; EQUIPMENT CORPORATION.
   4280					;
   4281					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4282					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4283					;
   4284					; VERSION 05-00
   4285					;
   4286					; ALAN D. PECKHAM  15-APR-77
   4287					;
   4288					; MODIFIED BY:
   4289					;
   4290					; FUNCTION: THIS ROUTINE CLOSES THE FILE CURRENTLY OPEN. IF IT IS
   4291					;  AND OUTPUT FILE, THE LAST BLOCK IS WRITTEN OUT AND
   4292					;  THE ATTRIBUTES ARE WRITTEN.
   4293					;
   4294					; LOCAL MACROS
   4295					;
   4296						.MCALL	QIOW$
   4297					;
   4298					; LOCAL DATA
   4299					;
   4300	000300					.PSECT	DATA,D
   4301	000300				DDCDAI:	QIOW$	IO.DAC,SYILUN,1,,.SYSTA
	000300	   003 	   006 			.BYTE	3,$$$ARG
	000302	000000G				.WORD	IO.DAC
	000304	000004 				.WORD	SYILUN
	000306	   001 	   000 			.BYTE	1,
	000310	000526'				.WORD	.SYSTA
	000312	000000 				.WORD
   4302	000314				DDCDAO:	QIOW$	IO.DAC,SYOLUN,1,,.SYSTA,,<,DDCWAT>
	000314	   003 	   010 			.BYTE	3,$$$ARG
	000316	000000G				.WORD	IO.DAC
	000320	000005 				.WORD	SYOLUN
	000322	   001 	   000 			.BYTE	1,
	000324	000526'				.WORD	.SYSTA
	000326	000000 				.WORD
	000330	000000 				.WORD
	000332	000334'				.WORD	DDCWAT
   4303	000334	   004 	   016 		DDCWAT:	.BYTE	4,16		; ATTRIBUTES INFO
   4304	000336	002652'				.WORD	.SYATT
   4305	000340	   005 	   012 			.BYTE	5,12		; FILENAME INFO
   4306	000342	001574'				.WORD	.SYOFN+00
KLIDC -- FILE CLOSE ROUTINE	MACRO M1113  03-APR-86 20:55  PAGE 92-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4307	000344	   001 	   002 			.BYTE	1,2		; AND OWNER'S UIC
   4308	000346	001606'				.WORD	.SYOFN+12
   4309	000350	   000 	   000 			.BYTE	0,0		; END OF CONTROL WORDS.
   4310	007056					.PSECT
KLIDC -- FILE CLOSE ROUTINE	MACRO M1113  03-APR-86 20:55  PAGE 93
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4312						.SBTTL	$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES
   4313					;+
   4314					; CLOSE THE INPUT AND OUTPUT FILES.
   4315					;
   4316					; NO INPUTS
   4317					;
   4318					; OUTPUTS:
   4319					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   4320					;	R0 IS DESTROYED IF ERROR.
   4321					;-
   4322
   4323	007056	105737 	000532'		$CLOSE::TSTB	.SYISW		; IF INPUT FILE NOT OPEN
   4324	007062	001411 				BEQ	10$		; LEAVE IT ALONE.
   4325	007064					DIR$	#DDCDAI		; DE-ACCESS THE INPUT FILE.
	007064	012746 	000300'			MOV	#DDCDAI,-(SP)
	007070	104375 				EMT	375
   4326	007072	103441 				BCS	30$
   4327	007074	105737 	000526'			TSTB	.SYSTA
   4328	007100	002436 				BLT	30$
   4329	007102	105037 	000532'			CLRB	.SYISW		; INPUT FILE NOW CLOSED.
   4330	007106	105737 	000533'		10$:	TSTB	.SYOSW		; IF OUTPUT FILE NO OPEN
   4331	007112	001430 				BEQ	20$		; LEAVE IT ALONE.
   4332
   4333					; COLLECT OUT STATISTICS
   4334
   4335	007114	013737 	001614'	002662'		MOV	.SYOVB,.SYATT+10 ; RECORD TOP
   4336	007122	013737 	001616'	002664'		MOV	.SYOVB+2,.SYATT+12 ; BLOCK USED AND
   4337	007130	013737 	001570'	002666'		MOV	.SYOBA,.SYATT+14 ; DISPLACEMENT TO
   4338	007136	162737 	001620'	002666'		SUB	#.SYOBF,.SYATT+14 ; NEXT AVAILABLE BYTE.
   4339	007144					CALL	$WRITS		; WRITE OUT REST OF
	007144	004737 	010666'			 JSR	PC,$WRITS
   4340	007150	103411 				BCS	20$		; THE CURRENT BLOCK.
   4341	007152					DIR$	#DDCDAO		; DE-ACCESS THE OUTPUT FILE.
	007152	012746 	000314'			MOV	#DDCDAO,-(SP)
	007156	104375 				EMT	375
   4342	007160	103411 				BCS	40$
   4343	007162	105737 	000526'			TSTB	.SYSTA
   4344	007166	002406 				BLT	40$
   4345	007170	105037 	000533'			CLRB	.SYOSW		; OUTPUT FILE NOW CLOSED.
   4346	007174				20$:	RETURN
	007174	000207 				 RTS	PC
   4347
   4348	007176	012700 	000542'		30$:	MOV	#.SYIFN,R0	; CLOSE FAILED.
   4349	007202	000402 				BR	50$
   4350	007204	012700 	001574'		40$:	MOV	#.SYOFN,R0
   4351	007210				50$:	CALLR	$IOERR
	007210	000137 	007346'			 JMP	$IOERR
KLIDC -- FILE CLOSE ROUTINE	MACRO M1113  03-APR-86 20:55  PAGE 94
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4353
   4354
   4355						.TITLE	KLIDD -- DELETE A FILE
   4356	007214					IDENT$	5,0
						.IDENT	/005000/
   4357					;
   4358					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4359					; ALL RIGHTS RESERVED.
   4360					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4361					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4362					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4363					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4364					;
   4365					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4366					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4367					; EQUIPMENT CORPORATION.
   4368					;
   4369					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4370					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4371					;
   4372					; VERSION 05-00
   4373					;
   4374					; ALAN D. PECKHAM  15-APR-77
   4375					;
   4376					; MODIFIED BY:
   4377					;
   4378					; FUNCTION: THIS ROUTINE DELETES THE FILE SPECIFIED BY THE FILE NAME
   4379					;  POINTED TO BY R0.
   4380					;
   4381					; LOCAL MACROS
   4382					;
   4383						.MCALL	QIOW$
   4384					;
   4385					; LOCAL DATA
   4386					;
   4387	000352					.PSECT	DATA,D
   4388	000352				DDDFNA:	QIOW$	IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000352	   003 	   014 			.BYTE	3,$$$ARG
	000354	000000G				.WORD	IO.FNA
	000356	000006 				.WORD	SYFLUN
	000360	   001 	   000 			.BYTE	1,
	000362	000526'				.WORD	.SYSTA
	000364	000000 				.WORD
	000366	000000 				.WORD
	000370	000000 				.WORD
	000372	000000 				.WORD
	000374	000000 				.WORD
	000376	000000 				.WORD
	000400	002620'				.WORD	.SYFNB
   4389	000402				DDDDEL:	QIOW$	IO.DEL,SYFLUN,1,,.SYSTA,,<.SYFID>
	000402	   003 	   007 			.BYTE	3,$$$ARG
	000404	000000G				.WORD	IO.DEL
	000406	000006 				.WORD	SYFLUN
	000410	   001 	   000 			.BYTE	1,
	000412	000526'				.WORD	.SYSTA
	000414	000000 				.WORD
	000416	002620'				.WORD	.SYFID
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 94-1
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4390	000420				DDDRNA:	QIOW$	IO.RNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000420	   003 	   014 			.BYTE	3,$$$ARG
	000422	000000G				.WORD	IO.RNA
	000424	000006 				.WORD	SYFLUN
	000426	   001 	   000 			.BYTE	1,
	000430	000526'				.WORD	.SYSTA
	000432	000000 				.WORD
	000434	000000 				.WORD
	000436	000000 				.WORD
	000440	000000 				.WORD
	000442	000000 				.WORD
	000444	000000 				.WORD
	000446	002620'				.WORD	.SYFNB
   4391	007214					.PSECT
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 95
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4393					;+
   4394					; THIS PROGRAM USES THE RSX FILE PRIMITIVES TO DO ITS I/O
   4395					; IN ORDER TO AVOID THE INCLUSION OF THE FILES-11 PACKAGE WHICH IS
   4396					; SOME 2K IN SIZE, AND NOT OVERLAYABLE. THIS HAS A RISK IN THAT
   4397					; THE FILE PRIMITIVES ARE NOT DOCUMENTED, BUT THE INFORMATION IS
   4398					; AVAILABLE TO THOSE WHO WANT TO WADE THROUGH THE LISTINGS. THE
   4399					; FOLLOWING INFORMATION HOPEFULLY WILL BE OF AID TO THE READER
   4400					; OF THIS LISTING.
   4401					;
   4402					; FILES UNDER RSX ARE ACCESSED BY AN INTERNAL 'FILE ID' (FID) WHICH
   4403					; IS ASSOCIATED WITH THE USER'S FILE NAME THROUGH THE DIRECTORY.
   4404					; THUS, UNDER RSX, ACCESSING A FILE NAME IS SEPERATE FROM ACCESSING
   4405					; THE ACTUAL FILE. THE 3 PRIMITIVES IO.FNA, IO.RNA, IO.ENA ARE
   4406					; PROVIDED FOR FINDING, REMOVING, AND ENTERING A FILE NAME. THESE
   4407					; USE THE FILE NAME BLOCK (FNB) ONLY. IN ACCESSING THE DIRECTORY,
   4408					; THE FID OF THE DIRECTORY MUST BE FIRST FOUND WITHIN THE MASTER
   4409					; FILE DIRECTORY, WHICH HAS A FID OF -1,-1.
   4410					;
   4411					; ONCE THE DESIRED FID HAS BEEN FOUND, THE FILE CAN BE ACCESSED
   4412					; FOR THE TYPE OF I/O TO BE DONE: IO.ACR TO READ, IO.ACW TO
   4413					; READ/WRITE, IO.ACE TO READ/WRITE/EXTEND. THE FILE CAN THEN BE
   4414					; WORKED ON THROUGH IO.RVB AND IO.WVB (VIRTUAL BLOCKS START AT 1).
   4415					; WHEN FINISHED, THE USER SHOULD DO AN IO.DAC TO CLOSE THE FILE.
   4416					; THE PRIMITIVES IO.ACR,ACW,ACE USE THE FID AND ACCESS PARAMETERS,
   4417					; WHILE IO.DAC USES THE FID AND MAY SET THE FILE ATTRIBUTES IF
   4418					; ACCESS INCLUDES WRITING.
   4419					;
   4420					; FILES ARE MANIPULATED BY IO.CRE, IO.EXT, IO.DEL WHICH CREATE,
   4421					; EXTEND, OR DELETE A FILE. A DELETE WITH AN EXTEND PARAMETER WILL
   4422					; TRUNCATE A FILE.
   4423					;
   4424					; THE ATTRIBUTES MAY BE ACCESSED ON AN ACCESSED FILE THROUGH
   4425					; IO.RAT TO READ THE ATTRIBUTES AND IO.WAT TO WRITE.
   4426					;
   4427					; CARE MUST BE TAKEN NOT TO LOSE A FILE BY CREATING AND NOT HAVING
   4428					; IT IN SOME DIRECTORY.
   4429					;-
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 96
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4431					;+
   4432					; THE QIO PARAMETER BLOCK IS ORGANIZED AS FOLLOWS:
   4433					;
   4434					;	.WORD	0		;ADDRESS OF FID BLOCK.
   4435					;	.WORD	0		;ADDRESS OF ATTRIBUTE CONTROL LIST.
   4436					;	.WORD	0,0		;EXTEND PARAMETERS.
   4437					;	.WORD	0		;ACCESS PARAMETERS.
   4438					;	.WORD	0		;ADDRESS OF FILE NAME BLOCK.
   4439					;
   4440					; ANY UNUSED UNUSED PARAMETERS ARE TO BE ZERO.
   4441					;
   4442					; THE PARAMETERS THAT MAY BE USED FOR PRIMITIVES ARE:
   4443					;
   4444					;	FUNC.		FID	ACL	EXT	ACC	FNB
   4445					;	IO.FNA		-	-	-	-	M
   4446					;	IO.RNA		-	-	-	-	M
   4447					;	IO.ENA		-	-	-	-	M
   4448					;	IO.ACR		M	OR	-	M	-
   4449					;	IO.ACW		M	OR	-	M	-
   4450					;	IO.ACE		M	OR	-	M	-
   4451					;	IO.DAC		O	OW	-	-	-
   4452					;	IO.EXT		O	-	M	-	-
   4453					;	IO.CRE		M	OW	O	-	-
   4454					;	IO.DEL		O	-	OT	-	-
   4455					;	IO.RAT		O	OR	-	-	-
   4456					;	IO.WAT		O	OW	-	-	-
   4457					;
   4458					;	M - MANDATORY  O - OPTIONAL  '-' - MUST BE ZERO
   4459					;	R - READ ATTRIBUTES  W - WRITE ATTRIBUTES  T - TRUNCATE FILE
   4460					;-
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 97
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4462					;+
   4463					; THE FILE ID BLOCK IS A TWO WORD HOLDING AREA AND IS USUALLY
   4464					; THE FIRST TWO WORDS OF THE FNB, AS THAT IS WHERE THE FID IS
   4465					; RETURNED FROM A DIRECTORY OPERATION.
   4466					;
   4467					; THE FILE ATTRIBUTES ARE ACCESSED IN PIECES THROUGH A CONTROL
   4468					; LIST. ENTRIES IN THIS LIST ARE TWO WORDS LONG AND ARE TERMINATED
   4469					; BY A NULL BYTE:
   4470					;	.BYTE	0		;ATTRIBUTE # - POSITIVE TO WRITE ATTRIBUTE
   4471					;				;	       NEGATIVE TO READ ATTRIBUTE.
   4472					;	.BYTE	0		;LENGTH IN BYTES TO TRANSFER - IF ZERO
   4473					;				;THEN 1000 BYTES IS IMPLIED. THIS MUST
   4474					;				;BE <=MXLN (THE MAXIMUM LENGTH).
   4475					;	.WORD	0		;ADDRESS OF SENDING/RECIEVING AREA.
   4476					;
   4477					;	ATTR#	MXLN	DESCRIPTION
   4478					;	1	5	OWNERS UIC (MAY INCL 2&3)
   4479					;	2	3	FILE PROTECTION (MAY INCL 3)
   4480					;	3	1	USER CONTROLLED FILE CHARACTERISTICS
   4481					;	4	40	USER FILE ATTRIBUTES
   4482					;	5	12	FILE NAME (MAY INCL 6&7)
   4483					;	6	4	FILE TYPE (MAY INCL 7)
   4484					;	7	2	FILE VERSION
   4485					;	10	7	EXPIRATION DATE
   4486					;	11	12	STATISTICS BLOCK (READ ONLY)
   4487					;	12	0	COMPLETE FILE HEADER (READ ONLY)
   4488					;
   4489					; THE USER FILE ATTRIBUTES ARE DESCRIBED IN THE RSX-11 I/O
   4490					; OPERATIONS MANUAL IN APPENDIX A AS THE FIRST 20 BYTES OF
   4491					; THE FDB. THE STATISTICS BLOCK IS DESCRIBED IN APPENDIX H.
   4492					; THE FULL HEADER BLOCK IS DESCRIBED IN APPENDIX F.
   4493					;
   4494					; THE EXTEND PARAMETER IS A TWO WORD INDICATOR OF THE SIZE OF THE
   4495					; EXTEND:
   4496					;	.BYTE	0		;EXTENSION SIZE HIGH
   4497					;	.BYTE	400		;EXTENSION PARAMETER ENABLE. IF 410
   4498					;				;THEN EXTEND BY SYSTEM DEFAULT.
   4499					;	.WORD	0		;EXTENSION SIZE LOW.
   4500					; THE EXTENSION HIGH & LOW COMBINED PROVIDE A 24 BIT NUMBER OF
   4501					; BLOCKS TO EXTEND THE FILE BY. IF USED IN IO.DEL, ALL 31 BITS
   4502					; EXCLUDING THE ENABLE BIT (SIGN BIT) PARTICIPATE IN A FILE SIZE
   4503					; TO TRUNCATE TO.
   4504					;
   4505					; THE ACCESS PARAMETER SPECIFIES THE FILE WINDOW SIZE:
   4506					;	.BYTE	0		;WINDOW SIZE (NORMALLY ZERO)
   4507					;	.BYTE	400		;ACCESS PARAMETER ENABLE.
   4508					;
   4509					; THE FILE NAME BLOCK IS DESCRIBED IN THE RSX-11 I/O OPERATIONS
   4510					; REFERENCE MANUAL APPENDIX B. THE LAST FOUR BYTES ARE NOT USED.
   4511					;-
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 98
$DELETE	-- DELETE A FILE

   4513						.SBTTL	$DELETE	-- DELETE A FILE
   4514					;+
   4515					; DELETE THE GIVEN FILE FROM THE SYSTEM DEVICE
   4516					;
   4517					; INPUTS:
   4518					;	R0	- POINTER TO FILE NAME.
   4519					;
   4520					; OUTPUTS:
   4521					;	CARRY IS SET IF DELETE FAILED AND MESSAGE IS TYPED.
   4522					;	R0 IS DESTROYED IF ERROR OCCURS.
   4523					;-
   4524
   4525	007214				$DELETE::CALL	$SETFN		; GET FILE NAME.
	007214	004737 	007304'			 JSR	PC,$SETFN
   4526	007220					DIR$	#DDDFNA		; FIND FILE IN DIRECTORY
	007220	012746 	000352'			MOV	#DDDFNA,-(SP)
	007224	104375 				EMT	375
   4527	007226	103424 				BCS	10$
   4528	007230	105737 	000526'			TSTB	.SYSTA
   4529	007234	002421 				BLT	10$
   4530	007236					DIR$	#DDDDEL		; MARK IT FOR DELETION
	007236	012746 	000402'			MOV	#DDDDEL,-(SP)
	007242	104375 				EMT	375
   4531	007244	103415 				BCS	10$
   4532	007246	105737 	000526'			TSTB	.SYSTA
   4533	007252	002412 				BLT	10$
   4534	007254					CALL	$SETFN		; RESET FNB AND
	007254	004737 	007304'			 JSR	PC,$SETFN
   4535	007260					DIR$	#DDDRNA		; REMOVE NAME FROM DIRECTORY.
	007260	012746 	000420'			MOV	#DDDRNA,-(SP)
	007264	104375 				EMT	375
   4536	007266	103404 				BCS	10$
   4537	007270	105737 	000526'			TSTB	.SYSTA
   4538	007274	002401 				BLT	10$
   4539	007276					RETURN
	007276	000207 				 RTS	PC
   4540
   4541	007300				10$:	CALLR	$IOERR		; DELETE FAILED.
	007300	000137 	007346'			 JMP	$IOERR
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 99
$SETFN	-- SET FILE NAME IN FILE NAME BLOCK

   4543						.SBTTL	$SETFN	-- SET FILE NAME IN FILE NAME BLOCK
   4544					;+
   4545					; PUT FILE NAME IN FILE NAME BLOCK AND SET UP
   4546					; DPB TO FIND THE FILE. THE FILENAME IS POINTED TO BY R0.
   4547					;
   4548					; INPUTS:
   4549					;	R0	- ADDRESS OF FILE NAME TO USE:
   4550					;		  .RAD50	/FILENAME /	;(THREE WORDS)
   4551					;		  .RAD50	/TYP/		;(ONE WORD)
   4552					;		  .WORD		VERSION
   4553					;		  .WORD		UIC
   4554					;		  .ASCII	/DEVICE/	;(ONE WORD)
   4555					;		  .WORD		UNIT
   4556					;
   4557					; OUTPUTS:
   4558					;	.SYFNB	- IS SET UP FOR USE WITH THE GIVEN FILE NAME.
   4559					;-
   4560
   4561	007304				$SETFN::PUSH	<R1,R0>
	007304	010146 				 MOV	R1,-(SP)
	007306	010046 				 MOV	R0,-(SP)
   4562	007310	012701 	002620'			MOV	#.SYFNB,R1	; GET FNB ADDRESS
   4563	007314	005021 				CLR	(R1)+		; AND CLEAR FID
   4564	007316	005021 				CLR	(R1)+
   4565	007320	005021 				CLR	(R1)+
   4566	007322	012021 				MOV	(R0)+,(R1)+	; MOVE IN FILENAME
   4567	007324	012021 				MOV	(R0)+,(R1)+
   4568	007326	012021 				MOV	(R0)+,(R1)+
   4569	007330	012021 				MOV	(R0)+,(R1)+	; FILE TYPE
   4570	007332	011021 				MOV	(R0),(R1)+	; VERSION
   4571	007334	005021 				CLR	(R1)+		; STATUS AND
   4572	007336	005011 				CLR	(R1)		; NEXT POINTER.
   4573	007340					POP	<R0,R1>
	007340	012600 				 MOV	(SP)+,R0
	007342	012601 				 MOV	(SP)+,R1
   4574	007344					RETURN
	007344	000207 				 RTS	PC
KLIDD -- DELETE A FILE	MACRO M1113  03-APR-86 20:55  PAGE 100
$SETFN	-- SET FILE NAME IN FILE NAME BLOCK

   4576
   4577						.TITLE	KLIDE -- PRINT I/O ERROR MESSAGE
   4578	007346					IDENT$	5,1								; ADP01
						.IDENT	/005010/
   4579					;
   4580					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4581					; ALL RIGHTS RESERVED.
   4582					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4583					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4584					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4585					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4586					;
   4587					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4588					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4589					; EQUIPMENT CORPORATION.
   4590					;
   4591					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4592					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4593					;
   4594					; VERSION 05-01									; ADP01
   4595					;
   4596					; ALAN D. PECKHAM  15-APR-77
   4597					;
   4598					; MODIFIED BY:
   4599					;
   4600					; FUNCTION: THIS ROUTINE IS CALLED TO PRINT OUT THE ERROR CODE
   4601					;  IN CASE OF I/O ERROR. IT ALSO PRINTS THE DEVICE AND
   4602					;  FILE NAME ASSOCIATED TO THE ERROR.
   4603					;
   4604					; LOCAL DATA
   4605					;
   4606	001722					.PSECT	TEXT,D
   4607	001722				TDEDR:	ERROR	<DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'>	; ADP01
	001722	   077 	   040 	   104 		 .ASCIZ	\? DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
	001725	   111 	   122 	   105
	001730	   103 	   124 	   111
	001733	   126 	   105 	   040
	001736	   105 	   122 	   122
	001741	   117 	   122 	   040
	001744	   055 	   130 	   130
	001747	   130 	   040 	   117
	001752	   116 	   040 	   106
	001755	   111 	   114 	   105
	001760	   040 	   047 	   130
	001763	   130 	   130 	   072
	001766	   130 	   130 	   130
	001771	   130 	   130 	   130
	001774	   130 	   130 	   130
	001777	   056 	   130 	   130
	002002	   130 	   073 	   130
	002005	   130 	   130 	   130
	002010	   130 	   130 	   047
	002013	   000
   4608	002014				TDEIO:	ERROR	<I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'>		; ADP01
	002014	   077 	   040 	   111 		 .ASCIZ	\? I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
	002017	   057 	   117 	   040
	002022	   105 	   122 	   122
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1113  03-APR-86 20:55  PAGE 100-1
$SETFN	-- SET FILE NAME IN FILE NAME BLOCK

	002025	   117 	   122 	   040
	002030	   055 	   130 	   130
	002033	   130 	   040 	   117
	002036	   116 	   040 	   106
	002041	   111 	   114 	   105
	002044	   040 	   047 	   130
	002047	   130 	   130 	   072
	002052	   130 	   130 	   130
	002055	   130 	   130 	   130
	002060	   130 	   130 	   130
	002063	   056 	   130 	   130
	002066	   130 	   073 	   130
	002071	   130 	   130 	   130
	002074	   130 	   130 	   047
	002077	   000
   4609	002100				TDENSF:	ERROR	<FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND>			; ADP01
	002100	   077 	   040 	   106 		 .ASCIZ	\? FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND\
	002103	   111 	   114 	   105
	002106	   040 	   047 	   130
	002111	   130 	   130 	   072
	002114	   130 	   130 	   130
	002117	   130 	   130 	   130
	002122	   130 	   130 	   130
	002125	   056 	   130 	   130
	002130	   130 	   073 	   130
	002133	   130 	   130 	   130
	002136	   130 	   130 	   047
	002141	   040 	   116 	   117
	002144	   124 	   040 	   106
	002147	   117 	   125 	   116
	002152	   104 	   000
   4610	002154				TDEDFU:	ERROR	<DEVICE 'XXX:' FULL>
	002154	   077 	   040 	   104 		 .ASCIZ	\? DEVICE 'XXX:' FULL\
	002157	   105 	   126 	   111
	002162	   103 	   105 	   040
	002165	   047 	   130 	   130
	002170	   130 	   072 	   047
	002173	   040 	   106 	   125
	002176	   114 	   114 	   000
   4611	007346					.PSECT
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1113  03-APR-86 20:55  PAGE 101
$IOERR	-- REPORT I/O ERROR

   4613						.SBTTL	$IOERR	-- REPORT I/O ERROR
   4614					;+
   4615					; DISPLAY AN ERROR MESSAGE ACCORDING TO THE CODES FROM THE LAST
   4616					; I/O OPERATION AND RETURN WITH THE CARRY SET.
   4617					;
   4618					; INPUTS:
   4619					;	$DSW	- DIRECTIVE ERROR CODE OR SUCCESS CODE.
   4620					;	.SYSTA	- I/O OPERATION ERROR CODE.
   4621					;
   4622					; OUTPUT:
   4623					;	THE CARRY IS SET.
   4624					;-
   4625
   4626	007346	004537 	024204'		$IOERR::JSR	R5,$RSAVE
   4627	007352	010002 				MOV	R0,R2		; SAVE FILE NAME.
   4628	007354	012701 	001722'			MOV	#TDEDR,R1	; DIRECTIVE ERROR
   4629	007360	010105 				MOV	R1,R5
   4630	007362	113700 	000000G			MOVB	$DSW,R0
   4631	007366	100421 				BMI	10$		; OR
   4632	007370	113700 	000526'			MOVB	.SYSTA,R0
   4633	007374	012701 	002100'			MOV	#TDENSF,R1	; FILE NOT FOUND
   4634	007400	010105 				MOV	R1,R5
   4635	007402	122700 	000000G			CMPB	#IE.NSF,R0
   4636	007406	001425 				BEQ	30$		; OR
   4637	007410	012701 	002154'			MOV	#TDEDFU,R1	; DEVICE FULL
   4638	007414	010105 				MOV	R1,R5
   4639	007416	122700 	000000G			CMPB	#IE.DFU,R0
   4640	007422	001433 				BEQ	50$		; OR
   4641	007424	012701 	002014'			MOV	#TDEIO,R1	; OPERATION ERROR.
   4642	007430	010105 				MOV	R1,R5
   4643	007432	122725 	000055 		10$:	CMPB	#'-,(R5)+	; FIND POSITION FOR
   4644	007436	001375 				BNE	10$		; ERROR CODE
   4645	007440	005400 				NEG	R0		; AND
   4646	007442					CALL	$TRB2O		; INSERT IN OCTAL.
	007442	004737 	026500'			 JSR	PC,$TRB2O
   4647	007446	122715 	000040 		20$:	CMPB	#' ,(R5)	; ZAP REST OF FIELD.
   4648	007452	001403 				BEQ	30$
   4649	007454	112725 	177777 			MOVB	#-1,(R5)+
   4650	007460	000772 				BR	20$
   4651	007462	122725 	000047 		30$:	CMPB	#'',(R5)+	; NOW FIND
   4652	007466	001375 				BNE	30$		; FILENAME POSITION,
   4653	007470	010200 				MOV	R2,R0		; GET FILENAME BLOCK,				; ADP01
   4654	007472					CALL	$TRB2F		; AND INSERT FILE NAME.				; ADP01
	007472	004737 	025044'			 JSR	PC,$TRB2F
   4655	007476	122725 	000047 		40$:	CMPB	#'',(R5)+	; ZAP REST OF FIELD.
   4656	007502	001410 				BEQ	80$
   4657	007504	111765 	177777 			MOVB	(PC),-1(R5)
   4658	007510	000772 				BR	40$
   4659	007512	122725 	000047 		50$:	CMPB	#'',(R5)+
   4660	007516	001375 				BNE	50$
   4661	007520					CALL	LDEIDV
	007520	004737 	007536'			 JSR	PC,LDEIDV
   4662	007524				80$:	PRINT	R1		; DISPLAY MESSAGE
	007524	010100 				 MOV	R1,R0
	007526	004737 	027634'			 JSR	PC,$TTMSG
   4663	007532	000261 				SEC			; AND RETURN WITH SHAME.
   4664	007534					RETURN
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1113  03-APR-86 20:55  PAGE 101-1
$IOERR	-- REPORT I/O ERROR

	007534	000207 				 RTS	PC
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1113  03-APR-86 20:55  PAGE 102
$IOERR	-- REPORT I/O ERROR

   4666					;+
   4667					; INSERT DEVICE NAME AT AREA POINTED TO BY R5.
   4668					;
   4669					; INPUTS:
   4670					;	R5	- POINTER TO BYTES TO RECIEVE STRING.
   4671					;	R2	- POINTER TO FILE NAME.
   4672					;
   4673					; OUTPUTS:
   4674					;	A 3 CHARACTER STRING IS INSERTED AND R5 IS ADVANCED BY 4 TO
   4675					;	PASS BY THE ":".
   4676					;-
   4677
   4678	007536	116225 	000014 		LDEIDV:	MOVB	14(R2),(R5)+	; INSERT DEVICE NAME
   4679	007542	116225 	000015 			MOVB	15(R2),(R5)+
   4680	007546	116215 	000016 			MOVB	16(R2),(R5)	; DEVICE UNIT
   4681	007552	152725 	000060 			BISB	#'0,(R5)+
   4682	007556	005205 				INC	R5
   4683	007560					RETURN
	007560	000207 				 RTS	PC
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1113  03-APR-86 20:55  PAGE 103
$IOERR	-- REPORT I/O ERROR

   4685
   4686
   4687						.TITLE	KLIDL -- LOOKUP AN EXISTING FILE FOR INPUT
   4688	007562					IDENT$	5,0
						.IDENT	/005000/
   4689					;
   4690					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4691					; ALL RIGHTS RESERVED.
   4692					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4693					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4694					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4695					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4696					;
   4697					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4698					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4699					; EQUIPMENT CORPORATION.
   4700					;
   4701					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4702					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4703					;
   4704					; VERSION 05-00
   4705					;
   4706					; ALAN D. PECKHAM  15-APR-77
   4707					;
   4708					; MODIFIED BY:
   4709					;
   4710					; FUNCTION: THIS ROUTINE FINDS THE FILE WITH THE NAME POINTED TO BY R0
   4711					;  AND ACCESSES IT FOR READ.
   4712					;
   4713					; LOCAL MACROS
   4714					;
   4715						.MCALL	GLUN$,QIOW$
   4716					;
   4717					; LOCAL DATA
   4718					;
   4719	000450					.PSECT	DATA,D
   4720	000450				DDLGLN:	GLUN$	SYILUN,.SYIBF
	000450	   005 	   003 			.BYTE	5,3
	000452	000004 				.WORD	SYILUN
	000454	000566'				.WORD	.SYIBF
   4721	000456				DDLFNA:	QIOW$	IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000456	   003 	   014 			.BYTE	3,$$$ARG
	000460	000000G				.WORD	IO.FNA
	000462	000006 				.WORD	SYFLUN
	000464	   001 	   000 			.BYTE	1,
	000466	000526'				.WORD	.SYSTA
	000470	000000 				.WORD
	000472	000000 				.WORD
	000474	000000 				.WORD
	000476	000000 				.WORD
	000500	000000 				.WORD
	000502	000000 				.WORD
	000504	002620'				.WORD	.SYFNB
   4722	000506				DDLACR:	QIOW$	IO.ACR,SYILUN,1,,.SYSTA,,<.SYFID,DDLRAT,,,BIT15>
	000506	   003 	   013 			.BYTE	3,$$$ARG
	000510	000000G				.WORD	IO.ACR
	000512	000004 				.WORD	SYILUN
KLIDL -- LOOKUP AN EXISTING FIL	MACRO M1113  03-APR-86 20:55  PAGE 103-1
$IOERR	-- REPORT I/O ERROR

	000514	   001 	   000 			.BYTE	1,
	000516	000526'				.WORD	.SYSTA
	000520	000000 				.WORD
	000522	002620'				.WORD	.SYFID
	000524	000564'				.WORD	DDLRAT
	000526	000000 				.WORD
	000530	000000 				.WORD
	000532	100000 				.WORD	BIT15
   4723	000534				DDLRNA:	QIOW$	IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
	000534	   003 	   014 			.BYTE	3,$$$ARG
	000536	000000G				.WORD	IO.RNA
	000540	000006 				.WORD	SYFLUN
	000542	   001 	   000 			.BYTE	1,
	000544	000000 				.WORD
	000546	000000 				.WORD
	000550	000000 				.WORD
	000552	000000 				.WORD
	000554	000000 				.WORD
	000556	000000 				.WORD
	000560	000000 				.WORD
	000562	002620'				.WORD	.SYFNB
   4724	000564	   373 	   012 		DDLRAT:	.BYTE	-5,12		; READ FILE NAME
   4725	000566	000542'				.WORD	.SYIFN+00
   4726	000570	   377 	   002 			.BYTE	-1,2		; READ OWNER'S UIC
   4727	000572	000554'				.WORD	.SYIFN+12
   4728	000574	   000 	   000 			.BYTE	0,0		; END OF CONTROL LIST.
   4729	007562					.PSECT
KLIDL -- LOOKUP AN EXISTING FIL	MACRO M1113  03-APR-86 20:55  PAGE 104
$LOOKUP	-- LOOK UP AN EXISTING FILE

   4731						.SBTTL	$LOOKUP	-- LOOK UP AN EXISTING FILE
   4732					;+
   4733					; FIND AN EXISTING FILE ON THE SYSTEM DEVICE AND OPEN IT FOR INPUT.
   4734					; IF THE FILE NAME IS IN THE DIRECTORY BUT THERE IS NO FILE, THE FILE
   4735					; NAME IS DELETED.
   4736					;
   4737					; INPUTS:
   4738					;	R0	- POINTER TO FILE NAME.
   4739					;
   4740					; OUTPUTS:
   4741					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   4742					;-
   4743
   4744	007562				$LOOKUP::CALL	$SETFN		; TRANSFER FILE NAME AND
	007562	004737 	007304'			 JSR	PC,$SETFN
   4745	007566					DIR$	#DDLGLN		; GET DEVICE NAME
	007566	012746 	000450'			MOV	#DDLGLN,-(SP)
	007572	104375 				EMT	375
   4746	007574	103455 				BCS	30$		; AND
   4747	007576	013737 	000566'	000556'		MOV	.SYIBF+0,.SYIFN+14 ; PUT IN OUR
   4748	007604	113737 	000570'	000560'		MOVB	.SYIBF+2,.SYIFN+16 ; FILENAME BLOCK.
   4749	007612					DIR$	#DDLFNA		; FIND FILE IN DIRECTORY.
	007612	012746 	000456'			MOV	#DDLFNA,-(SP)
	007616	104375 				EMT	375
   4750	007620	103443 				BCS	30$
   4751	007622	105737 	000526'			TSTB	.SYSTA
   4752	007626	002432 				BLT	20$
   4753	007630					DIR$	#DDLACR		; ACCESS FILE TO READ.
	007630	012746 	000506'			MOV	#DDLACR,-(SP)
	007634	104375 				EMT	375
   4754	007636	103434 				BCS	30$
   4755	007640	105737 	000526'			TSTB	.SYSTA
   4756	007644	002412 				BLT	10$		; FILE CAN'T BE READ
   4757	007646	105237 	000532'			INCB	.SYISW		; INPUT FILE IS NOW OPEN.
   4758	007652	005037 	000564'			CLR	.SYIVB+2	; NO BLOCK OR
   4759	007656	005037 	000562'			CLR	.SYIVB
   4760	007662	005037 	000534'			CLR	.SYIRC		; RECORD READ YET.
   4761	007666					CALLR	$READ		; READ FIRST BLOCK.
	007666	000137 	010474'			 JMP	$READ
   4762	007672	122737 	000000G	000526'	10$:	CMPB	#IE.NSF,.SYSTA	; IF FILENAME EXISTS BUT
   4763	007700	001013 				BNE	30$		; FILE DOESN'T, THEN
   4764	007702					CALL	$SETFN		; RESET FILE NAME BLOCK AND
	007702	004737 	007304'			 JSR	PC,$SETFN
   4765	007706					DIR$	#DDLRNA		; DELETE FILE NAME FROM DIRECTORY.
	007706	012746 	000534'			MOV	#DDLRNA,-(SP)
	007712	104375 				EMT	375
   4766	007714	122737 	000000G	000526'	20$:	CMPB	#IE.NSF,.SYSTA	; IF FILE NOT FOUND,
   4767	007722	001002 				BNE	30$		; LEAVE ERROR REPORT
   4768	007724	000261 				SEC			; TO CALLER.
   4769	007726					RETURN
	007726	000207 				 RTS	PC
   4770
   4771	007730				30$:	CALLR	$IOERR		; LOOKUP FAILED.
	007730	000137 	007346'			 JMP	$IOERR
KLIDL -- LOOKUP AN EXISTING FIL	MACRO M1113  03-APR-86 20:55  PAGE 105
$LOOKUP	-- LOOK UP AN EXISTING FILE

   4773
   4774
   4775						.TITLE	KLIDN -- ENTER A FILE FOR OUTPUT
   4776	007734					IDENT$	5,0
						.IDENT	/005000/
   4777					;
   4778					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4779					; ALL RIGHTS RESERVED.
   4780					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4781					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4782					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4783					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4784					;
   4785					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4786					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4787					; EQUIPMENT CORPORATION.
   4788					;
   4789					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4790					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4791					;
   4792					; VERSION 05-00
   4793					;
   4794					; ALAN D. PECKHAM  15-APR-77
   4795					;
   4796					; MODIFIED BY:
   4797					;
   4798					; FUNCTION: THIS ROUTINE CREATES A FILE AND ACCESSES IT FOR EXTENDING.
   4799					;  THE FILE IS ALLOCATED 1 BLOCK INITIALLY.
   4800					;
   4801					; LOCAL MACROS
   4802					;
   4803						.MCALL	GLUN$,QIOW$
   4804					;
   4805					; LOCAL DATA
   4806					;
   4807	000576					.PSECT	DATA,D
   4808	000576				DDNGLN:	GLUN$	SYOLUN,.SYOBF
	000576	   005 	   003 			.BYTE	5,3
	000600	000005 				.WORD	SYOLUN
	000602	001620'				.WORD	.SYOBF
   4809	000604				DDNCRE:	QIOW$	IO.CRE,SYFLUN,1,,.SYSTA,,<.SYFID,,BIT15,1>
	000604	   003 	   012 			.BYTE	3,$$$ARG
	000606	000000G				.WORD	IO.CRE
	000610	000006 				.WORD	SYFLUN
	000612	   001 	   000 			.BYTE	1,
	000614	000526'				.WORD	.SYSTA
	000616	000000 				.WORD
	000620	002620'				.WORD	.SYFID
	000622	000000 				.WORD
	000624	100000 				.WORD	BIT15
	000626	000001 				.WORD	1
   4810	000630				DDNENA:	QIOW$	IO.ENA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000630	   003 	   014 			.BYTE	3,$$$ARG
	000632	000000G				.WORD	IO.ENA
	000634	000006 				.WORD	SYFLUN
	000636	   001 	   000 			.BYTE	1,
	000640	000526'				.WORD	.SYSTA
KLIDN -- ENTER A FILE FOR OUTPU	MACRO M1113  03-APR-86 20:55  PAGE 105-1
$LOOKUP	-- LOOK UP AN EXISTING FILE

	000642	000000 				.WORD
	000644	000000 				.WORD
	000646	000000 				.WORD
	000650	000000 				.WORD
	000652	000000 				.WORD
	000654	000000 				.WORD
	000656	002620'				.WORD	.SYFNB
   4811	000660				DDNACE:	QIOW$	IO.ACE,SYOLUN,1,,.SYSTA,,<.SYFID,DDNRAT,,,BIT15>
	000660	   003 	   013 			.BYTE	3,$$$ARG
	000662	000000G				.WORD	IO.ACE
	000664	000005 				.WORD	SYOLUN
	000666	   001 	   000 			.BYTE	1,
	000670	000526'				.WORD	.SYSTA
	000672	000000 				.WORD
	000674	002620'				.WORD	.SYFID
	000676	000722'				.WORD	DDNRAT
	000700	000000 				.WORD
	000702	000000 				.WORD
	000704	100000 				.WORD	BIT15
   4812	000706				DDNDEL:	QIOW$	IO.DEL,SYOLUN,1
	000706	   003 	   006 			.BYTE	3,$$$ARG
	000710	000000G				.WORD	IO.DEL
	000712	000005 				.WORD	SYOLUN
	000714	   001 	   000 			.BYTE	1,
	000716	000000 				.WORD
	000720	000000 				.WORD
   4813	000722	   373 	   012 		DDNRAT:	.BYTE	-5,12		; READ FILE NAME
   4814	000724	001574'				.WORD	.SYOFN+00
   4815	000726	   377 	   002 			.BYTE	-1,2		; AND OWNER'S UIC
   4816	000730	001606'				.WORD	.SYOFN+12
   4817	000732	   000 	   000 			.BYTE	0,0		; END OF CONTROL LIST.
   4818	007734					.PSECT
KLIDN -- ENTER A FILE FOR OUTPU	MACRO M1113  03-APR-86 20:55  PAGE 106
$ENTER	-- ENTER A NEW FILE

   4820						.SBTTL	$ENTER	-- ENTER A NEW FILE
   4821					;+
   4822					; ENTER A NEW FILE ONTO THE SYSTEM DEVICE AND OPEN IT FOR OUTPUT.
   4823					;
   4824					; INPUTS:
   4825					;	R0	- POINTER TO FILE NAME.
   4826					;
   4827					; OUTPUTS:
   4828					;	CARRY IS SET IF FILE WAS NOT CREATED AND MESSAGE IS DISPLAYED.
   4829					;	R0 IS DESTROYED IF ERROR OCCURS.
   4830					;-
   4831
   4832	007734				$ENTER::CALL	$SETFN		; TRANSFER FILE NAME.
	007734	004737 	007304'			 JSR	PC,$SETFN
   4833	007740					DIR$	#DDNGLN		; GET DEVICE NAME
	007740	012746 	000576'			MOV	#DDNGLN,-(SP)
	007744	104375 				EMT	375
   4834	007746	103464 				BCS	20$		; AND
   4835	007750	013737 	001620'	001610'		MOV	.SYOBF+0,.SYOFN+14 ; INSERT IT INTO
   4836	007756	113737 	001622'	001612'		MOVB	.SYOBF+2,.SYOFN+16 ; OUR OWN FILENAME BLOCK.
   4837	007764					DIR$	#DDNCRE		; CREATE NEW FILE AND ALLOCATE ONE BLOCK.
	007764	012746 	000604'			MOV	#DDNCRE,-(SP)
	007770	104375 				EMT	375
   4838	007772	103452 				BCS	20$		; IF SUCCESSFUL
   4839	007774	105737 	000526'			TSTB	.SYSTA
   4840	010000	002447 				BLT	20$
   4841	010002					DIR$	#DDNENA		; ENTER NAME IN DIRECTORY.
	010002	012746 	000630'			MOV	#DDNENA,-(SP)
	010006	104375 				EMT	375
   4842	010010	103434 				BCS	10$		; IF DIRECTORY OPERATION FAILED
   4843	010012	105737 	000526'			TSTB	.SYSTA		; WE MUST
   4844	010016	002431 				BLT	10$		; RELEASE THE FILE.
   4845	010020					DIR$	#DDNACE		; ACCESS THE FILE FOR EXTEND.
	010020	012746 	000660'			MOV	#DDNACE,-(SP)
	010024	104375 				EMT	375
   4846	010026	103434 				BCS	20$
   4847	010030	105737 	000526'			TSTB	.SYSTA
   4848	010034	002431 				BLT	20$
   4849	010036	105237 	000533'			INCB	.SYOSW		; OUTPUT FILE IS NOW OPEN.
   4850	010042	012737 	000001 	001616'		MOV	#1,.SYOVB+2	; WORKING ON FIRST BLOCK.
   4851	010050	005037 	001614'			CLR	.SYOVB
   4852	010054	012737 	001620'	001570'		MOV	#.SYOBF,.SYOBA	; INITIALIZE BLOCK
   4853	010062	012737 	001000 	001572'		MOV	#S.YOL,.SYOBC
   4854	010070	005037 	001566'			CLR	.SYORC		; AND RECORD COUNTS,
   4855	010074	005037 	002654'			CLR	.SYATT+2	; PLUS LARGEST RECORD SIZE.
   4856	010100					RETURN
	010100	000207 				 RTS	PC
   4857
   4858	010102				10$:	PUSH	$DSW
	010102	013746 	000000G			 MOV	$DSW,-(SP)
   4859	010106					DIR$	#DDNDEL		; DELETE FILE (NOT IN DIRECTORY).
	010106	012746 	000706'			MOV	#DDNDEL,-(SP)
	010112	104375 				EMT	375
   4860	010114					POP	$DSW
	010114	012637 	000000G			 MOV	(SP)+,$DSW
   4861	010120				20$:	CALLR	$IOERR		; ENTER FAILED.
	010120	000137 	007346'			 JMP	$IOERR
KLIDN -- ENTER A FILE FOR OUTPU	MACRO M1113  03-APR-86 20:55  PAGE 107
$ENTER	-- ENTER A NEW FILE

   4863
   4864
   4865						.TITLE	KLIDP -- FILE PURGE ROUTINE
   4866	010124					IDENT$	5,0
						.IDENT	/005000/
   4867					;
   4868					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4869					; ALL RIGHTS RESERVED.
   4870					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4871					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4872					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4873					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4874					;
   4875					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4876					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4877					; EQUIPMENT CORPORATION.
   4878					;
   4879					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4880					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4881					;
   4882					; VERSION 05-00
   4883					;
   4884					; ALAN D. PECKHAM  15-APR-77
   4885					;
   4886					; MODIFIED BY:
   4887					;
   4888					; FUNCTION: THIS ROUTINE PURGES THE FILE CURRENTLY OPEN. THE
   4889					;  OUTPUT FILE IS MARKED FOR DELETION AND ITS FILE NAME
   4890					;  IS REMOVED FROM THE DIRECTORY.
   4891					;
   4892					; LOCAL MACROS
   4893					;
   4894						.MCALL	QIOW$
   4895					;
   4896					; LOCAL DATA
   4897					;
   4898	000734					.PSECT	DATA,D
   4899	000734				DDPDAI:	QIOW$	IO.DAC,SYILUN,1	; DE-ACCESS INPUT FILE.
	000734	   003 	   006 			.BYTE	3,$$$ARG
	000736	000000G				.WORD	IO.DAC
	000740	000004 				.WORD	SYILUN
	000742	   001 	   000 			.BYTE	1,
	000744	000000 				.WORD
	000746	000000 				.WORD
   4900	000750				DDPDEL:	QIOW$	IO.DEL,SYOLUN,1	; MARK OUTPUT FILE FOR DELETE.
	000750	   003 	   006 			.BYTE	3,$$$ARG
	000752	000000G				.WORD	IO.DEL
	000754	000005 				.WORD	SYOLUN
	000756	   001 	   000 			.BYTE	1,
	000760	000000 				.WORD
	000762	000000 				.WORD
   4901	000764				DDPDAO:	QIOW$	IO.DAC,SYOLUN,1	; DE-ACCESS OUTPUT FILE.
	000764	   003 	   006 			.BYTE	3,$$$ARG
	000766	000000G				.WORD	IO.DAC
	000770	000005 				.WORD	SYOLUN
	000772	   001 	   000 			.BYTE	1,
	000774	000000 				.WORD
KLIDP -- FILE PURGE ROUTINE	MACRO M1113  03-APR-86 20:55  PAGE 107-1
$ENTER	-- ENTER A NEW FILE

	000776	000000 				.WORD
   4902	001000				DDPRNA:	QIOW$	IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
	001000	   003 	   014 			.BYTE	3,$$$ARG
	001002	000000G				.WORD	IO.RNA
	001004	000006 				.WORD	SYFLUN
	001006	   001 	   000 			.BYTE	1,
	001010	000000 				.WORD
	001012	000000 				.WORD
	001014	000000 				.WORD
	001016	000000 				.WORD
	001020	000000 				.WORD
	001022	000000 				.WORD
	001024	000000 				.WORD
	001026	002620'				.WORD	.SYFNB
   4903									; REMOVE OUTPUT FILENAME FROM DIRECTORY.
   4904	010124					.PSECT
KLIDP -- FILE PURGE ROUTINE	MACRO M1113  03-APR-86 20:55  PAGE 108
$PURGE	-- PURGE FILES CURRENTLY OPEN

   4906						.SBTTL	$PURGE	-- PURGE FILES CURRENTLY OPEN
   4907					;+
   4908					; CLOSE THE INPUT FILE AND DELETE THE CURRENT OUTPUT FILE.
   4909					; ALL ERRORS ARE IGNORED AND THE LUNS ARE ASSUMED FREED.
   4910					;
   4911					; NO INPUTS OR OUTPUTS
   4912					;-
   4913
   4914	010124	105737 	000532'		$PURGE::TSTB	.SYISW		; IF INPUT FILE NOT OPEN
   4915	010130	001405 				BEQ	10$		; LEAVE IT ALONE.
   4916	010132					DIR$	#DDPDAI		; DE-ACCESS THE INPUT FILE.
	010132	012746 	000734'			MOV	#DDPDAI,-(SP)
	010136	104375 				EMT	375
   4917	010140	105037 	000532'			CLRB	.SYISW		; INPUT FILE NOW CLOSED.
   4918	010144	105737 	000533'		10$:	TSTB	.SYOSW		; IF OUTPUT FILE NO OPEN
   4919	010150	001421 				BEQ	20$		; LEAVE IT ALONE.
   4920	010152					DIR$	#DDPDEL		; MARK FOR DELETION AND
	010152	012746 	000750'			MOV	#DDPDEL,-(SP)
	010156	104375 				EMT	375
   4921	010160					DIR$	#DDPDAO		; DE-ACCESS THE OUTPUT FILE.
	010160	012746 	000764'			MOV	#DDPDAO,-(SP)
	010164	104375 				EMT	375
   4922	010166					PUSH	R0
	010166	010046 				 MOV	R0,-(SP)
   4923	010170	012700 	001574'			MOV	#.SYOFN,R0	; GET THE FILE NAME
   4924	010174					CALL	$SETFN		; AND
	010174	004737 	007304'			 JSR	PC,$SETFN
   4925	010200					POP	R0
	010200	012600 				 MOV	(SP)+,R0
   4926	010202					DIR$	#DDPRNA		; REMOVE FROM THE DIRECTORY.
	010202	012746 	001000'			MOV	#DDPRNA,-(SP)
	010206	104375 				EMT	375
   4927	010210	105037 	000533'			CLRB	.SYOSW		; OUTPUT FILE NOW CLOSED.
   4928	010214				20$:	RETURN
	010214	000207 				 RTS	PC
KLIDP -- FILE PURGE ROUTINE	MACRO M1113  03-APR-86 20:55  PAGE 109
$PURGE	-- PURGE FILES CURRENTLY OPEN

   4930
   4931						.TITLE	KLIDR -- RECORD READ ROUTINES
   4932	010216					IDENT$	5,0
						.IDENT	/005000/
   4933					;
   4934					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4935					; ALL RIGHTS RESERVED.
   4936					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4937					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4938					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4939					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4940					;
   4941					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4942					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4943					; EQUIPMENT CORPORATION.
   4944					;
   4945					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4946					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4947					;
   4948					; VERSION 05-00
   4949					;
   4950					; ALAN D. PECKHAM  15-APR-77
   4951					;
   4952					; MODIFIED BY:
   4953					;
   4954					; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
   4955					;  READING OF RSX-BINARY RECORDS FROM THE CURRENTLY
   4956					;  OPEN FILE.
   4957					;
   4958					; LOCAL MACROS
   4959					;
   4960						.MCALL	QIOW$S
   4961					;
   4962					; LOCAL DATA
   4963					;
   4964	002201					.PSECT	TEXT,D
   4965	002201				TDRRDE:
   4966	002201					ERROR	<READ ERROR>
	002201	   077 	   040 	   122 		 .ASCIZ	\? READ ERROR\
	002204	   105 	   101 	   104
	002207	   040 	   105 	   122
	002212	   122 	   117 	   122
	002215	   000
   4967	002216				TDRRLE:
   4968	002216					ERROR	<INPUT RECORD LENGTH ERROR>
	002216	   077 	   040 	   111 		 .ASCIZ	\? INPUT RECORD LENGTH ERROR\
	002221	   116 	   120 	   125
	002224	   124 	   040 	   122
	002227	   105 	   103 	   117
	002232	   122 	   104 	   040
	002235	   114 	   105 	   116
	002240	   107 	   124 	   110
	002243	   040 	   105 	   122
	002246	   122 	   117 	   122
	002251	   000
   4969	010216					.PSECT
KLIDR -- RECORD READ ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 110
$READC	-- START READING A RECORD

   4971						.SBTTL	$READC	-- START READING A RECORD
   4972					;+
   4973					; READ THE RECORD TYPE FOR THE NEXT RECORD. IF THE PREVIOUS RECORD
   4974					; HAS NOT BEEN TOTALLY READ IN, SIGNAL ERROR. SAVE THE BYTE COUNT
   4975					; TO KEEP TRACK OF HOW MANY BYTES OF THE RECORD HAVE BEEN READ.
   4976					;
   4977					; NO INPUTS:
   4978					;
   4979					; OUTPUTS:
   4980					;	R0	- TYPE CODE OF NEW RECORD.
   4981					;	.SYIRC	- COUNT OF BYTES REMAINING IN RECORD.
   4982					;	CARRY IS SET IF LENGTH OR READ ERROR AND MESSAGE IS DISPLAYED.
   4983					;-
   4984
   4985	010216				$READC::
   4986	010216	005737 	000534'			TST	.SYIRC		; IF LAST RECORD IS NOT FINISHED,
   4987	010222	001116 				BNE	LDRER		; THEN ERROR.
   4988	010224				10$:
   4989	010224	012737 	000003 	000534'		MOV	#3,.SYIRC	; SET UP DUMMY COUNT AND
   4990	010232					CALL	$READW		; READ IN BYTE COUNT FOR NEXT RECORD.
	010232	004737 	010324'			 JSR	PC,$READW
   4991	010236	103405 				BCS	20$
   4992	010240	010037 	000534'			MOV	R0,.SYIRC	; STORE BYTE COUNT AND
   4993	010244	001767 				BEQ	10$		; (NULL RECORD)
   4994	010246					CALLR	$READW		; READ IN NEXT WORD.
	010246	000137 	010324'			 JMP	$READW
   4995						;
   4996	010252				20$:
   4997	010252					RETURN
	010252	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 111
$READS	-- SKIP THE CURRENT RECORD

   4999						.SBTTL	$READS	-- SKIP THE CURRENT RECORD
   5000					;+
   5001					; SKIP OVER THE REST OF THE CURRENT AND POSITION TO THE NEXT RECORD.
   5002					; IF NO RECORD IS BEING PROCESSED (RECORD COUNT=0), NO ACTION IS TAKEN.
   5003					;
   5004					; NO INPUTS
   5005					;
   5006					; OUTPUTS:
   5007					;	CARRY IS SET IF ERROR DURING READ AND MESSAGE IS DISPLAYED.
   5008					;-
   5009
   5010	010254				$READS::
   5011	010254	023737 	000534'	000540'		CMP	.SYIRC,.SYIBC	; IF RECORD IS WITHIN BLOCK
   5012	010262	003407 				BLE	10$		; THEN GO PAST IT,
   5013	010264	163737 	000540'	000534'		SUB	.SYIBC,.SYIRC	; OTHERWISE PASS PART OF THE RECORD,
   5014	010272					CALL	$READ		; GET NEXT BLOCK,
	010272	004737 	010474'			 JSR	PC,$READ
   5015	010276	103366 				BCC	$READS		; AND SEE IF RECORD IS DEPLETED.
   5016	010300					RETURN
	010300	000207 				 RTS	PC
   5017	010302				10$:
   5018	010302	063737 	000534'	000536'		ADD	.SYIRC,.SYIBA	; PUSH POINTERS PAST RECORD.
   5019	010310	163737 	000534'	000540'		SUB	.SYIRC,.SYIBC
   5020	010316	005037 	000534'			CLR	.SYIRC		; NO MORE RECORD !
   5021	010322					RETURN
	010322	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 112
$READW	-- READ A WORD

   5023						.SBTTL	$READW	-- READ A WORD
   5024					;+
   5025					; READ THE NEXT WORD FROM THE CURRENT RECORD. IF CURRENTLY ON
   5026					; AN ODD BOUNDARY, SKIP OVER THE CURRENT BYTE TO MAKE IT EVEN.
   5027					;
   5028					; NO INPUTS
   5029					;
   5030					; OUTPUTS:
   5031					;	R0	- THE WORD READ.
   5032					;	CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND MESSAGE IS DISPLAYED.
   5033					;-
   5034
   5035	010324				$READW::
   5036	010324	032737 	000001 	000536'		BIT	#1,.SYIBA	; MAKE SURE WE ARE
   5037	010332	001406 				BEQ	10$		; ON A WORD BOUNDARY.
   5038	010334	005337 	000534'			DEC	.SYIRC
   5039	010340	005237 	000536'			INC	.SYIBA
   5040	010344	005337 	000540'			DEC	.SYIBC
   5041	010350				10$:
   5042	010350	162737 	000002 	000534'		SUB	#2,.SYIRC	; UPDATE RECORD COUNT AND
   5043	010356	002440 				BLT	LDRER		; IF IT BOTTOMS, ERROR.
   5044	010360	005737 	000540'			TST	.SYIBC		; IF WE ARE AT THE END
   5045	010364	003003 				BGT	20$		; OF THE BUFFER
   5046	010366					CALL	$READ		; THEN READ ANOTHER ONE.
	010366	004737 	010474'			 JSR	PC,$READ
   5047	010372	103411 				BCS	30$
   5048	010374				20$:
   5049	010374	017700 	000536'			MOV	@.SYIBA,R0	; PICK UP WORD
   5050	010400	062737 	000002 	000536'		ADD	#2,.SYIBA	; BUMP ADDRESS
   5051	010406	162737 	000002 	000540'		SUB	#2,.SYIBC	; AND BYTE COUNT.
   5052	010414	000241 				CLC
   5053	010416				30$:
   5054	010416					RETURN
	010416	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 113
$READB	-- READ A BYTE

   5056						.SBTTL	$READB	-- READ A BYTE
   5057					;+
   5058					; READ THE NEXT BYTE FROM THE CURRENT RECORD.
   5059					;
   5060					; NO INPUTS
   5061					;
   5062					; OUTPUTS:
   5063					;	R0	- THE BYTE READ.
   5064					;	CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND A MESSAGE IS DISPLAYED.
   5065					;-
   5066
   5067	010420				$READB::
   5068	010420	005337 	000534'			DEC	.SYIRC		; UPDATE RECORD COUNT AND
   5069	010424	002415 				BLT	LDRER		; IF IT BOTTOMS, ERROR.
   5070	010426	005737 	000540'			TST	.SYIBC		; IF WE ARE AT THE END
   5071	010432	003003 				BGT	10$		; OF THE BUFFER
   5072	010434					CALL	$READ		; THEN READ ANOTHER ONE.
	010434	004737 	010474'			 JSR	PC,$READ
   5073	010440	103406 				BCS	20$
   5074	010442				10$:
   5075	010442	117700 	000536'			MOVB	@.SYIBA,R0	; PICK UP BYTE
   5076	010446	005237 	000536'			INC	.SYIBA		; BUMP ADDRESS
   5077	010452	005337 	000540'			DEC	.SYIBC		; AND BYTE COUNT.
   5078	010456				20$:
   5079	010456					RETURN
	010456	000207 				 RTS	PC
   5080
   5081	010460				LDRER:
   5082	010460					PRINT	#TDRRLE		; RECORD OVERRUN OR UNDERRUN.
	010460	012700 	002216'			 MOV	#TDRRLE,R0
	010464	004737 	027634'			 JSR	PC,$TTMSG
   5083	010470	000261 				SEC
   5084	010472					RETURN
	010472	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 114
$READ	-- READ NEXT VIRTUAL BLOCK

   5086						.SBTTL	$READ	-- READ NEXT VIRTUAL BLOCK
   5087					;+
   5088					; READ THE NEXT BLOCK FROM THE SYSTEM DEVICE AND RESET BUFFER PARAMETERS.
   5089					;
   5090					; NO INPUTS
   5091					;
   5092					; OUTPUTS:
   5093					;	.SYIBA	- POINTS TO THE BEGINING OF THE BUFFER READ.
   5094					;	.SYIBC	- COUNT OF BYTES READ.
   5095					;	CARRY IS SET ON READ ERROR AND MESSAGE IS DISPLAYED.
   5096					;-
   5097
   5098	010474				$READ::
   5099	010474	062737 	000001 	000564'		ADD	#1,.SYIVB+2	; GET NEXT BLOCK.
   5100	010502	005537 	000562'			ADC	.SYIVB
   5101
   5102					;	READ VIRTUAL BLOCK
   5103
   5104	010506					QIOW$S	#IO.RVB,#SYILUN,#1,,#.SYSTA,,<#.SYIBF,#S.YIL,,.SYIVB,.SYIVB+2>
	010506	013746 	000564'			MOV	.SYIVB+2,-(SP)
	010512	013746 	000562'			MOV	.SYIVB,-(SP)
	010516	005046 				CLR	-(SP)
	010520	012746 	001000 			MOV	#S.YIL,-(SP)
	010524	012746 	000566'			MOV	#.SYIBF,-(SP)
	010530	005046 				CLR	-(SP)
	010532	012746 	000526'			MOV	#.SYSTA,-(SP)
	010536	005046 				CLR	-(SP)
	010540	112716 	000001 			MOVB	#1,(SP)
	010544	012746 	000004 			MOV	#SYILUN,-(SP)
	010550	012746 	000000G			MOV	#IO.RVB,-(SP)
	010554	012746 				MOV	(PC)+,-(SP)
	010556	   003 	   013 			.BYTE	3,$$$T1
	010560	104375 				EMT	375
   5105	010562	103412 				BCS	10$
   5106	010564	105737 	000526'			TSTB	.SYSTA
   5107	010570	002407 				BLT	10$		; READ FAILED.
   5108	010572	012737 	000566'	000536'		MOV	#.SYIBF,.SYIBA	; SAVE BUFFER ADR
   5109	010600	013737 	000530'	000540'		MOV	.SYSTA+2,.SYIBC	; AND BYTE COUNT
   5110	010606					RETURN
	010606	000207 				 RTS	PC
   5111
   5112	010610				10$:
   5113	010610					PRINT	#TDRRDE		; PRINT ERROR MESSAGE.
	010610	012700 	002201'			 MOV	#TDRRDE,R0
	010614	004737 	027634'			 JSR	PC,$TTMSG
   5114	010620	000261 				SEC
   5115	010622					RETURN
	010622	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 115
$READ	-- READ NEXT VIRTUAL BLOCK

   5117
   5118
   5119						.TITLE	KLIDW -- RECORD WRITE ROUTINES
   5120	010624					IDENT$	5,0
						.IDENT	/005000/
   5121					;
   5122					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5123					; ALL RIGHTS RESERVED.
   5124					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5125					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5126					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5127					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5128					;
   5129					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5130					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5131					; EQUIPMENT CORPORATION.
   5132					;
   5133					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5134					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5135					;
   5136					; VERSION 05-00
   5137					;
   5138					; ALAN D. PECKHAM  15-APR-77
   5139					;
   5140					; MODIFIED BY:
   5141					;
   5142					; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
   5143					;  WRITING OF RSX-BINARY RECORDS TO THE CURRENTLY
   5144					;  OPEN FILE.
   5145					;
   5146					; LOCAL MACROS
   5147					;
   5148						.MCALL	QIOW$S
   5149					;
   5150					; LOCAL DATA
   5151					;
   5152	002252					.PSECT	TEXT,D
   5153	002252				TDWWRE:
   5154	002252					ERROR	<WRITE ERROR>
	002252	   077 	   040 	   127 		 .ASCIZ	\? WRITE ERROR\
	002255	   122 	   111 	   124
	002260	   105 	   040 	   105
	002263	   122 	   122 	   117
	002266	   122 	   000
   5155	002270				TDWRLE:
   5156	002270					ERROR	<OUTPUT RECORD LENGTH ERROR>
	002270	   077 	   040 	   117 		 .ASCIZ	\? OUTPUT RECORD LENGTH ERROR\
	002273	   125 	   124 	   120
	002276	   125 	   124 	   040
	002301	   122 	   105 	   103
	002304	   117 	   122 	   104
	002307	   040 	   114 	   105
	002312	   116 	   107 	   124
	002315	   110 	   040 	   105
	002320	   122 	   122 	   117
	002323	   122 	   000
   5157	010624					.PSECT
KLIDW -- RECORD WRITE ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 116
$WRITC	-- START WRITING A RECORD

   5159						.SBTTL	$WRITC	-- START WRITING A RECORD
   5160					;+
   5161					; START WRITING A RECORD OF GIVEN LENGTH. IF PREVIOUS RECORD UNFINISHED
   5162					; THE SIGNAL ERROR.
   5163					;
   5164					; INPUTS:
   5165					;	R0	- LENGTH OF RECORD TO BE WRITTEN.
   5166					;
   5167					; OUTPUTS:
   5168					;	CARRY SET IF LAST RECORD UNFINISHED OR WRITE ERROR AND MESSAGE
   5169					;	IS DISPLAYED.
   5170					;-
   5171
   5172	010624				$WRITC::
   5173	010624	005737 	001566'			TST	.SYORC		; IF LAST RECORD NOT FINISHED
   5174	010630	001034 				BNE	LDWER		; SIGNAL ERROR.
   5175	010632	020037 	002654'			CMP	R0,.SYATT+2	; CHECK IF LARGEST RECORD WRITTEN
   5176	010636	101402 				BLOS	10$		; AND
   5177	010640	010037 	002654'			MOV	R0,.SYATT+2	; RECORD IF LARGER.
   5178	010644				10$:
   5179	010644	012737 	000003 	001566'		MOV	#3,.SYORC	; SET UP DUMMY COUNT,
   5180	010652					CALL	$WRITW		; WRITE IN BYTE COUNT FOR NEXT RECORD,
	010652	004737 	010736'			 JSR	PC,$WRITW
   5181	010656	103402 				BCS	20$
   5182	010660	010037 	001566'			MOV	R0,.SYORC	; AND SAVE FOR RECORD COUNT.
   5183	010664				20$:
   5184	010664					RETURN
	010664	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 117
$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK

   5186						.SBTTL	$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK
   5187					;+
   5188					; CLEAR OUT THE REST OF THE CURRENT BLOCK AND WRITE IT. THIS ROUTINE IS
   5189					; USED TO WRITE OUT THE LAST RECORD INTO THE OUTPUT FILE.
   5190					;
   5191					; NO INPUTS
   5192					;
   5193					; OUTPUTS:
   5194					;	CARRY IS SET IF LAST RECORD IS UNFINISHED OR WRITE ERROR AND
   5195					;	MESSAGE IS DISPLAYED.
   5196					;-
   5197
   5198	010666				$WRITS::
   5199	010666	005737 	001566'			TST	.SYORC		; IF RECORD NOT FINISHED
   5200	010672	001013 				BNE	LDWER		; THEN THERE IS PROBLEM.
   5201	010674				10$:
   5202	010674	022737 	000777 	001572'		CMP	#S.YOL-1,.SYOBC	; ARE WE AT NEW PAGE ?
   5203	010702	003406 				BLE	20$		; YES, QUIT (CARRY IS CLEAR)
   5204	010704	005237 	001566'			INC	.SYORC		; SET UP DUMMY COUNT
   5205	010710	005000 				CLR	R0		; AND WRITE A ZERO
   5206	010712					CALL	$WRITB
	010712	004737 	011032'			 JSR	PC,$WRITB
   5207	010716	103366 				BCC	10$		; AND CHECK AGAIN.
   5208	010720				20$:
   5209	010720					RETURN
	010720	000207 				 RTS	PC
   5210
   5211	010722				LDWER:
   5212	010722					PRINT	#TDWRLE		; RECORD OVERRUN OR UNDERRUN.
	010722	012700 	002270'			 MOV	#TDWRLE,R0
	010726	004737 	027634'			 JSR	PC,$TTMSG
   5213	010732	000261 				SEC
   5214	010734					RETURN
	010734	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 118
$WRITW	-- WRITE A WORD

   5216						.SBTTL	$WRITW	-- WRITE A WORD
   5217					;+
   5218					; WRITE THE NEXT WORD INTO THE OUTPUT RECORD. IF ON AN ODD BOUNDRY
   5219					; THE SKIP A BYTE TO WRITE THE WORD ON AN EVEN WORD. SIGNAL ERROR
   5220					; IF RECORD OVERFLOW.
   5221					;
   5222					; INPUTS:
   5223					;	R0	- THE WORD TO WRITE.
   5224					;
   5225					; OUTPUTS:
   5226					;	CARRY IS SET IF WRITE ERROR AND MESSAGE IS DISPLAYED.
   5227					;-
   5228
   5229	010736				$WRITW::
   5230	010736	032737 	000001 	001570'		BIT	#1,.SYOBA	; MAKE SURE WE ARE
   5231	010744	001406 				BEQ	10$		; ON A WORD BOUNDRY.
   5232	010746	005337 	001566'			DEC	.SYORC
   5233	010752	005237 	001570'			INC	.SYOBA
   5234	010756	005337 	001572'			DEC	.SYOBC
   5235	010762				10$:
   5236	010762	162737 	000002 	001566'		SUB	#2,.SYORC	; UPDATE RECORD COUNT AND
   5237	010770	002754 				BLT	LDWER		; IF IT BOTTOMS, ERROR.
   5238	010772	005737 	001572'			TST	.SYOBC		; IF WE ARE AT THE END
   5239	010776	003003 				BGT	20$		; OF THE BUFFER
   5240	011000					CALL	$WRITE		; THEN WRITE IT.
	011000	004737 	011072'			 JSR	PC,$WRITE
   5241	011004	103411 				BCS	30$
   5242	011006				20$:
   5243	011006	010077 	001570'			MOV	R0,@.SYOBA	; STICK IN WORD
   5244	011012	062737 	000002 	001570'		ADD	#2,.SYOBA	; BUMP ADDRESS
   5245	011020	162737 	000002 	001572'		SUB	#2,.SYOBC	; AND BYTE COUNT.
   5246	011026	000241 				CLC
   5247	011030				30$:
   5248	011030					RETURN
	011030	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 119
$WRITB	-- WRITE A BYTE

   5250						.SBTTL	$WRITB	-- WRITE A BYTE
   5251					;+
   5252					; WRITE A BYTE INTO THE CURRENT RECORD. SIGNAL ERROR IF RECORD OVERFLOW.
   5253					;
   5254					; INPUTS:
   5255					;	R0	- BYTE TO WRITE.
   5256					;
   5257					; OUTPUTS:
   5258					;	CARRY IS SET IF RECORD OVERFLOW OR WRITE ERROR AND MESSAGE
   5259					;	IS DISPLAYED.
   5260					;-
   5261
   5262	011032				$WRITB::
   5263	011032	005337 	001566'			DEC	.SYORC		; UPDATE RECORD COUNT AND
   5264	011036	002731 				BLT	LDWER		; IF IT BOTTOMS, ERROR.
   5265	011040	005737 	001572'			TST	.SYOBC		; IF WE ARE AT THE END
   5266	011044	003003 				BGT	10$		; OF THE BUFFER
   5267	011046					CALL	$WRITE		; THEN WRITE IT.
	011046	004737 	011072'			 JSR	PC,$WRITE
   5268	011052	103406 				BCS	20$
   5269	011054				10$:
   5270	011054	110077 	001570'			MOVB	R0,@.SYOBA	; STICK IN BYTE
   5271	011060	005237 	001570'			INC	.SYOBA		; BUMP ADDRESS
   5272	011064	005337 	001572'			DEC	.SYOBC		; AND BYTE COUNT.
   5273	011070				20$:
   5274	011070					RETURN
	011070	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 120
$WRITE	-- WRITE NEXT VIRTUAL BLOCK

   5276						.SBTTL	$WRITE	-- WRITE NEXT VIRTUAL BLOCK
   5277					;+
   5278					; WRITE THE NEXT BLOCK TO THE OUTPUT FILE. IF END-OF-FILE, THEN
   5279					; EXTEND THE FILE AND TRY TO WRITE THE BLOCK AGAIN.
   5280					;
   5281					; INPUTS:
   5282					;	.SYOBF	- BLOCK OF "S.YOL" BYTES TO WRITE.
   5283					;
   5284					; OUTPUTS:
   5285					;	.SYOBA	- ADDRESS OF NEW BUFFER TO FILL
   5286					;	.SYOBC	- SIZE OF BUFFER IN BYTES.
   5287					;	CARRY IS SET ON WRITE OR EXTEND ERROR AND MESSAGE IS DISPLAYED.
   5288					;-
   5289
   5290	011072				$WRITE::
   5291	011072					QIOW$S	#IO.WVB,#SYOLUN,#1,,#.SYSTA,,<#.SYOBF,#S.YOL,,.SYOVB,.SYOVB+2>
	011072	013746 	001616'			MOV	.SYOVB+2,-(SP)
	011076	013746 	001614'			MOV	.SYOVB,-(SP)
	011102	005046 				CLR	-(SP)
	011104	012746 	001000 			MOV	#S.YOL,-(SP)
	011110	012746 	001620'			MOV	#.SYOBF,-(SP)
	011114	005046 				CLR	-(SP)
	011116	012746 	000526'			MOV	#.SYSTA,-(SP)
	011122	005046 				CLR	-(SP)
	011124	112716 	000001 			MOVB	#1,(SP)
	011130	012746 	000005 			MOV	#SYOLUN,-(SP)
	011134	012746 	000000G			MOV	#IO.WVB,-(SP)
	011140	012746 				MOV	(PC)+,-(SP)
	011142	   003 	   013 			.BYTE	3,$$$T1
	011144	104375 				EMT	375
   5292	011146	103427 				BCS	20$
   5293	011150	105737 	000526'			TSTB	.SYSTA
   5294	011154	002414 				BLT	10$		; WRITE FAILED.
   5295	011156	062737 	000001 	001616'		ADD	#1,.SYOVB+2	; SET UP FOR NEXT BLOCK.
   5296	011164	005537 	001614'			ADC	.SYOVB		; (CARRY SHOULD BE CLEAR)
   5297	011170	012737 	001620'	001570'		MOV	#.SYOBF,.SYOBA	; RESET BUFFER ADDRESS
   5298	011176	012737 	001000 	001572'		MOV	#S.YOL,.SYOBC	; AND BYTE COUNT.
   5299	011204					RETURN
	011204	000207 				 RTS	PC
   5300	011206				10$:
   5301	011206	122737 	000000G	000526'		CMPB	#IE.EOF,.SYSTA	; IS THE FILE TOO SMALL ?
   5302	011214	001004 				BNE	20$		; NO, THIS IS TRULY AN ERROR.
   5303	011216					CALL	$EXTEND		; OTHERWISE EXTEND THE FILE
	011216	004737 	011242'			 JSR	PC,$EXTEND
   5304	011222	103323 				BCC	$WRITE		; AND WRITE THE BLOCK AGAIN.
   5305	011224					RETURN
	011224	000207 				 RTS	PC
   5306	011226				20$:
   5307	011226					PRINT	#TDWWRE		; PRINT IT.
	011226	012700 	002252'			 MOV	#TDWWRE,R0
	011232	004737 	027634'			 JSR	PC,$TTMSG
   5308	011236	000261 				SEC
   5309	011240					RETURN
	011240	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 121
$WRITE	-- WRITE NEXT VIRTUAL BLOCK

   5311
   5312
   5313						.TITLE	KLIDX -- EXTEND AN OUTPUT FILE BY ONE BLOCK
   5314	011242					IDENT$	5,0
						.IDENT	/005000/
   5315					;
   5316					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5317					; ALL RIGHTS RESERVED.
   5318					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5319					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5320					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5321					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5322					;
   5323					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5324					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5325					; EQUIPMENT CORPORATION.
   5326					;
   5327					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5328					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5329					;
   5330					; VERSION 05-00
   5331					;
   5332					; ALAN D. PECKHAM  15-APR-77
   5333					;
   5334					; MODIFIED BY:
   5335					;
   5336					; FUNCTION: THIS ROUTINE EXTENDS THE ALLOCATION OF THE CURRENTLY OPEN
   5337					;  FILE BY ONE BLOCK.
   5338					;
   5339					; LOCAL MACROS
   5340					;
   5341						.MCALL	QIOW$
   5342					;
   5343					; LOCAL DATA
   5344					;
   5345	001030					.PSECT	DATA,D
   5346	001030				DDXEXT:	QIOW$	IO.EXT,SYOLUN,1,,.SYSTA,,<,,BIT15,1>
	001030	   003 	   012 			.BYTE	3,$$$ARG
	001032	000000G				.WORD	IO.EXT
	001034	000005 				.WORD	SYOLUN
	001036	   001 	   000 			.BYTE	1,
	001040	000526'				.WORD	.SYSTA
	001042	000000 				.WORD
	001044	000000 				.WORD
	001046	000000 				.WORD
	001050	100000 				.WORD	BIT15
	001052	000001 				.WORD	1
   5347	011242					.PSECT
KLIDX -- EXTEND AN OUTPUT FILE 	MACRO M1113  03-APR-86 20:55  PAGE 122
$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK

   5349						.SBTTL	$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK
   5350					;+
   5351					; EXTEND THE OUTPUT FILE BY ONE BLOCK.
   5352					;
   5353					; NO INPUTS
   5354					;
   5355					; OUTPUTS:
   5356					;	CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   5357					;-
   5358
   5359	011242				$EXTEND::DIR$	#DDXEXT		; EXTEND THE FILE.
	011242	012746 	001030'			MOV	#DDXEXT,-(SP)
	011246	104375 				EMT	375
   5360	011250	103411 				BCS	10$
   5361	011252	105737 	000526'			TSTB	.SYSTA
   5362	011256	002406 				BLT	10$
   5363	011260	062737 	000001 	002660'		ADD	#1,.SYATT+6	; ONE MORE BLOCK ALLOCATED.
   5364	011266	005537 	002656'			ADC	.SYATT+4	; (CARRY SHOULD BE CLEAR)
   5365	011272					RETURN
	011272	000207 				 RTS	PC
   5366
   5367	011274	012700 	001574'		10$:	MOV	#.SYOFN,R0	; EXTEND FAILED.
   5368	011300					CALLR	$IOERR
	011300	000137 	007346'			 JMP	$IOERR
KLIDX -- EXTEND AN OUTPUT FILE 	MACRO M1113  03-APR-86 20:55  PAGE 123
$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK

   5370
   5371
   5372						.TITLE	KLIFC -- C-RAM READ/WRITE
   5373	011304					IDENT$	5,0
						.IDENT	/005000/
   5374					;
   5375					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5376					; ALL RIGHTS RESERVED.
   5377					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5378					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5379					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5380					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5381					;
   5382					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5383					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5384					; EQUIPMENT CORPORATION.
   5385					;
   5386					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5387					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5388					;
   5389					; VERSION 05-00
   5390					;
   5391					; ALAN D. PECKHAM  11-APR-77
   5392					;
   5393					; MODIFIED BY:
   5394					;
   5395					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK ON THE C-RAMS.
   5396					;  THE C-RAM DATA IS WORKED WITH IN 6-WORD COMPRESSED FORMAT, AS
   5397					;  SPECIFIED IN THE KLDCP DOCUMENTATION.
   5398					;
   5399					; LOCAL DATA
   5400					;
   5401	001054					.PSECT	DATA,D
   5402	001054	147000 			DFCRFL:	.WORD	.RCRM1		; READ C-RAM BITS 0-19
   5403	001056	146000 				.WORD	.RCRM2		; READ C-RAM BITS 20-39
   5404	001060	145000 				.WORD	.RCRM3		; READ C-RAM BITS 40-59
   5405	001062	144000 				.WORD	.RCRM4		; READ C-RAM BITS 60-79
   5406	001064	057000 			DFCWFL:	.WORD	.LCRM1		; C-RAM WRITE FUNCTION LIST.
   5407	001066	056000 				.WORD	.LCRM2
   5408	001070	055000 				.WORD	.LCRM3
   5409	001072	054000 				.WORD	.LCRM4
   5410						.EVEN			; DFCBF MUST BE ON A WORD BOUNDRY.
   5411	001074				DFCBF:	WD36$	0 0		; DATA BUFFER.
	001074	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001077	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5412	001101	   000 			DFCFL2:	.BYTE	0
   5413	001102	   000 			DFCFL3:	.BYTE	0
   5414	001103				DFCABF:	WD36$	0 0		; WORK AREA.
	001103	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001106	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5415						.EVEN
   5416	011304					.PSECT
KLIFC -- C-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 124
$WCRAM	-- WRITE C-RAM WORD

   5418						.SBTTL	$WCRAM	-- WRITE C-RAM WORD
   5419					;+
   5420					; WRITE COMPRESSED C-RAM WORD POINTED TO BY R1 TO C-RAM LOCATION
   5421					; ADDRESSED BY R0.
   5422					;
   5423					; INPUTS:
   5424					;	R1	- POINTER TO 6 WORDS OF DATA TO WRITE.
   5425					;	R0	- C-RAM ADDRESS TO WRITE TO.
   5426					;
   5427					; OUTPUT:
   5428					;	CARRY IS SET IF ERROR OCCURS.
   5429					;-
   5430
   5431	011304	004537 	024204'		$WCRAM::JSR	R5,$RSAVE
   5432	011310					TRACK	CW
	011310	004037 	011322'			 JSR	R0,64$
	011314	053503 				 .WORD	"CW
	011316	000000 				 .WORD
	011320	000000 				 .WORD
	011322	004737 	024252'		64$:	 JSR	PC,$TRACK
	011326	012600 				 MOV	(SP)+,R0
   5433	011330	010102 				MOV	R1,R2		; GET DATA ADDRESS
   5434	011332					CALL	$ACRAM		; WRITE C-RAM ADDRESS
	011332	004737 	012166'			 JSR	PC,$ACRAM
   5435	011336	103511 				BCS	70$		; RAM ERROR
   5436	011340	012704 	000006 			MOV	#6,R4		; 4 LOOPS PER C-RAM WORD
   5437	011344	005003 				CLR	R3		; CLEAR BOUNDRY FLAG
   5438	011346	012701 	001074'		10$:	MOV	#DFCBF,R1	; SET UP WORK AREA
   5439	011352	112221 				MOVB	(R2)+,(R1)+	; REAL DATA TO WORK AREA
   5440	011354	112221 				MOVB	(R2)+,(R1)+
   5441	011356	111221 				MOVB	@R2,(R1)+
   5442	011360	005703 				TST	R3		; SEE IF BITS ON WORD BOUNDARY
   5443	011362	001411 				BEQ	30$		; YES
   5444	011364	005202 				INC	R2		; INCREASE DTA ADR PTR
   5445	011366	012705 	000004 			MOV	#4,R5		; # OF SHIFTS REQUIRED
   5446	011372	012701 	001077'		20$:	MOV	#DFCBF+3,R1	; POINT TO TOP OF WORK AREA
   5447	011376	106041 				RORB	-(R1)		; RIGHT SHIFT ONE BYTE
   5448	011400	106041 				RORB	-(R1)
   5449	011402	106041 				RORB	-(R1)
   5450	011404	077506 				SOB	R5,20$		; LOOP BACK IF NOT DONE
   5451	011406	005103 			30$:	COM	R3		; CHANGE BOUNDARY FLAG
   5452	011410	042737 	177760 	001076'		BIC	#177760,DFCBF+2	; ONLY FOUR BITS COUNT
   5453	011416	013700 	001074'			MOV	DFCBF,R0	; GET UNPACED DATA
   5454	011422	113737 	001076'	001077'		MOVB	DFCBF+2,DFCBF+3	; PUT C-RAM 0-3 BITS INTO CORRECT CORE
   5455	011430	005001 				CLR	R1		; INIT R1
   5456	011432	000261 				SEC			; C-BIT IS SET AS A FLAG
   5457	011434	012705 	000005 		40$:	MOV	#5,R5		; 4 SHIFTS BETWEEN BALNKS
   5458	011440	006001 			50$:	ROR	R1		; NEW DATA LEFT END OF DESTINATION
   5459	011442	103406 				BCS	60$		; IF FLAG FALLS OUT, DONE
   5460	011444	006000 				ROR	R0		; ROTATE SOURCE BITS RIGHT
   5461	011446	077504 				SOB	R5,50$		; SHIFT 4 TIMES?
   5462	011450	006100 				ROL	R0		; REPAIR ANY DAMAGE
   5463	011452	000241 				CLC			; CLEAR C-BIT AS FLAG
   5464	011454	006001 				ROR	R1		; AND ROLL ZEROES
   5465	011456	000766 				BR	40$		; CONTINUE
   5466	011460	000241 			60$:	CLC			; CLEAR C-BIT AS FLAG
   5467	011462	006100 				ROL	R0		; BITS 4-7
KLIFC -- C-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 124-1
$WCRAM	-- WRITE C-RAM WORD

   5468	011464	006100 				ROL	R0		; MUST BE CORRECTED
   5469	011466	010137 	001074'			MOV	R1,DFCBF	; BITS 8-19 INTO CORE
   5470	011472	110037 	001076'			MOVB	R0,DFCBF+2	; BITS 4-7 INTO CORE
   5471	011476	016400 	001064'			MOV	DFCWFL(R4),R0	; GET WRITE FUNCTION LIST
   5472	011502	012701 	001074'			MOV	#DFCBF,R1	; ADDRESS OF DATA
   5473	011506					CALL	$DFWR		; WRITE TO C-RAM
	011506	004737 	013556'			 JSR	PC,$DFWR
   5474	011512	103423 				BCS	70$		; TIME OUT ERROR
   5475	011514	162704 	000002 			SUB	#2,R4		; ENTIRE RAM WORD DONE?
   5476	011520	002312 				BGE	10$		; NOT YET
   5477	011522	111237 	001100'			MOVB	@R2,DFCBF+4	; GET DATA FOR DEPOSIT
   5478	011526	106237 	001100'			ASRB	DFCBF+4		; SHIFT DATA
   5479	011532	106037 	001077'			RORB	DFCBF+3		; TO EBUS BITS
   5480	011536	106237 	001100'			ASRB	DFCBF+4
   5481	011542	106037 	001077'			RORB	DFCBF+3
   5482	011546	012701 	001074'			MOV	#DFCBF,R1	; DATA ADDRESS IN R1
   5483	011552	012700 	053000 			MOV	#.LCRM5,R0	; DISP 00-04
   5484	011556					CALLR	$DFWR
	011556	000137 	013556'			 JMP	$DFWR
   5485	011562				70$:	RETURN
	011562	000207 				 RTS	PC
KLIFC -- C-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 125
$RCRAM	-- READ C-RAM WORD

   5487						.SBTTL	$RCRAM	-- READ C-RAM WORD
   5488					;+
   5489					; READ C-RAM WORD ADDRESSED BY R0 AND COMPRESS IT INTO AREA POINTED
   5490					; TO BY R1.
   5491					;
   5492					; INPUTS:
   5493					;	R1	- 6 WORD BUFFER TO RECIEVE COMPRESSED C-RAM WORD.
   5494					;	R0	- C-RAM ADDRESS OF WORD TO READ.
   5495					;
   5496					; OUTPUT:
   5497					;	CARRY SET IF ERROR OCCURS.
   5498					;-
   5499
   5500	011564	004537 	024204'		$RCRAM::JSR	R5,$RSAVE
   5501	011570					TRACK	CR
	011570	004037 	011602'			 JSR	R0,64$
	011574	051103 				 .WORD	"CR
	011576	000000 				 .WORD
	011600	000000 				 .WORD
	011602	004737 	024252'		64$:	 JSR	PC,$TRACK
	011606	012600 				 MOV	(SP)+,R0
   5502	011610					CALL	$ACRAM		; SET EBOX TO C-RAM ADDRESS ZERO.
	011610	004737 	012166'			 JSR	PC,$ACRAM
   5503	011614	103421 				BCS	30$		; ERROR
   5504	011616	012700 	003000 			MOV	#.SECLK,R0	; SINGLE STEP EBUS CLOCK
   5505	011622					CALL	$DFXC
	011622	004737 	013760'			 JSR	PC,$DFXC
   5506	011626	103414 				BCS	30$		; ERROR
   5507	011630	016603 	000004 		10$:	MOV	4(SP),R3	; GET BUF ADR FOR C-RAM CONTENTS
   5508	011634	062703 	000012 			ADD	#12,R3		; POINT TO END.
   5509	011640	012704 	001054'			MOV	#DFCRFL,R4
   5510	011644	012400 			20$:	MOV	(R4)+,R0	; DIAG FUNCTIONS
   5511	011646	012701 	001074'			MOV	#DFCBF,R1	; DATA HOLDING AREA
   5512	011652					CALL	$DFRD		; READ DATA
	011652	004737 	013444'			 JSR	PC,$DFRD
   5513	011656	103002 				BCC	40$		; OK
   5514	011660	000137 	012164'		30$:	JMP	140$		; READ ERORR
   5515	011664	013701 	001074'		40$:	MOV	DFCBF,R1	; GET STRETCHED BITS 8-19
   5516	011670	013702 	001076'			MOV	DFCBF+2,R2	; GET STRETCHED BITS 0-7
   5517	011674	005000 				CLR	R0		; USE R0  AS WORK REG
   5518	011676	000261 				SEC			; SET C-BIT AS DONE BIT
   5519	011700	006000 				ROR	R0		; AND ROLL IT INTO R0
   5520	011702	012705 	000004 		50$:	MOV	#4,R5		; FOUR BITS PER GROUP
   5521	011706	005305 			60$:	DEC	R5		; DONE A GROUP?
   5522	011710	002405 				BLT	70$		; NO
   5523	011712	006202 				ASR	R2		; ROTATE SOURCE BITS RIGHT 1 PLACE
   5524	011714	006001 				ROR	R1		; ALL 20 OF THEM
   5525	011716	006000 				ROR	R0		; BEGIN WITH 1ST FLAG INTO R0
   5526	011720	103406 				BCS	80$		; IF C-BIT DETECTED, DONE
   5527	011722	000771 				BR	60$
   5528	011724	006202 			70$:	ASR	R2		; HERE TO SHIFT AWAY
   5529	011726	006001 				ROR	R1		; THE PAIR
   5530	011730	006202 				ASR	R2		; OF BLANKS HIDDEN
   5531	011732	006001 				ROR	R1		; AMIDST THE REAL DATA
   5532	011734	000762 				BR	50$		; AND CONTINUE
   5533	011736	006201 			80$:	ASR	R1		; MAKE LAST BLANKS TO GO AWAY
   5534	011740	006201 				ASR	R1
KLIFC -- C-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 125-1
$RCRAM	-- READ C-RAM WORD

   5535	011742	010037 	001074'			MOV	R0,DFCBF
   5536	011746	010137 	001076'			MOV	R1,DFCBF+2	; STORE RESULTS IN CORE
   5537	011752	012700 	001077'			MOV	#DFCBF+3,R0	; ADDRESS OF DATA JUST READ
   5538	011756	114043 				MOVB	-(R0),-(R3)	; BITS 16-19 TO BUFFER
   5539	011760	105737 	001101'			TSTB	DFCFL2		; CHECK IF BOUNDARY IS RIGHT
   5540	011764	001005 				BNE	100$		; YES, GO FIX BOUNDARY
   5541	011766	114043 			90$:	MOVB	-(R0),-(R3)	; BITS 20-27 TO WORK AREA
   5542	011770	114043 				MOVB	-(R0),-(R3)	; BITS 28-35 TO WORK AREA
   5543	011772	105137 	001101'			COMB	DFCFL2		; CHANGE SIGNAL
   5544	011776	000722 				BR	20$		; GET MORE DATA
   5545	012000	106313 			100$:	ASLB	@R3		; FIX A HALF-BYTE
   5546	012002	106313 				ASLB	@R3
   5547	012004	106313 				ASLB	@R3
   5548	012006	106313 				ASLB	@R3
   5549	012010	012705 	000004 			MOV	#4,R5
   5550	012014	010302 			110$:	MOV	R3,R2		; ADDR OF DATA TO R2
   5551	012016	106122 				ROLB	(R2)+		; SHIFT INCLUDING C-BIT
   5552	012020	106122 				ROLB	(R2)+
   5553	012022	106122 				ROLB	(R2)+
   5554	012024	106122 				ROLB	(R2)+
   5555	012026	077506 				SOB	R5,110$		; ASSEMBLED COMPLETE HALF-BYTE
   5556	012030	105723 				TSTB	(R3)+		; FIX HOLDING AREA ADR
   5557	012032	105737 	001102'			TSTB	DFCFL3		; CHECK SIGNAL
   5558	012036	001003 				BNE	120$		; DONE IF MINUS
   5559	012040	105137 	001102'			COMB	DFCFL3
   5560	012044	000750 				BR	90$		; CONTINUE
   5561	012046	113743 	001075'		120$:	MOVB	DFCBF+1,-(R3)	; ENDING UP
   5562	012052	113743 	001074'			MOVB	DFCBF,-(R3)	; C-RAM BITS 0-15 TO BUFFER
   5563	012056	105037 	001102'			CLRB	DFCFL3		; RESET DFCFL3 TO ZERO
   5564	012062	105037 	001101'			CLRB	DFCFL2		; SAME TO DFCFL2
   5565	012066	012700 	141000 			MOV	#.RCSPF,R0	; READ SPEC FIELD FUNC
   5566	012072	012701 	001074'			MOV	#DFCBF,R1
   5567	012076					CALL	$DFRD		; READ DATA
	012076	004737 	013444'			 JSR	PC,$DFRD
   5568	012102	103430 				BCS	140$
   5569	012104	016100 	000004 			MOV	4(R1),R0	; GET DISP 00-02 - DEXWD1
   5570	012110	016101 	000002 			MOV	2(R1),R1	; GET DISP 03-04 - DEXWD2
   5571	012114	006101 				ROL	R1
   5572	012116	006100 				ROL	R0
   5573	012120	006101 				ROL	R1
   5574	012122	006100 				ROL	R0		; JUSTIFY IN R0
   5575	012124	042700 	177700 			BIC	#^C77,R0	; CLEAR TRASH
   5576	012130	105737 	000044'			TSTB	.EASW		; AND IF MODEL A CPU,
   5577	012134	003002 				BGT	130$
   5578	012136	042700 	177740 			BIC	#^C37,R0	; CLEAR MORE TRASH.
   5579	012142	016601 	000004 		130$:	MOV	4(SP),R1	; GET RECIEVING ADDRESS BACK.
   5580	012146	110061 	000012 			MOVB	R0,12(R1)	; SAVE IN BUFFER
   5581	012152	042721 	052525 			BIC	#052525,(R1)+	; CLEAR PARITY BITS
   5582	012156	042711 	000005 			BIC	#000005,(R1)
   5583	012162	000241 				CLC
   5584	012164				140$:	RETURN
	012164	000207 				 RTS	PC
KLIFC -- C-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 126
$ACRAM	-- ADDRESS C-RAM WORD

   5586						.SBTTL	$ACRAM	-- ADDRESS C-RAM WORD
   5587					;+
   5588					; SET THE M-BOX TO THE C-RAM ADDRESS SPECIFIED BY R0.
   5589					;
   5590					; INPUT:
   5591					;	R0	- ADDRESS OF C-RAM WORD TO ACCESS.
   5592					;
   5593					; OUTPUT:
   5594					;	CARRY SET IF ERROR OCCURS.
   5595					;-
   5596
   5597	012166				$ACRAM::PUSH	<R1,R0>
	012166	010146 				 MOV	R1,-(SP)
	012170	010046 				 MOV	R0,-(SP)
   5598	012172					TRACK	CA
	012172	004037 	012204'			 JSR	R0,64$
	012176	040503 				 .WORD	"CA
	012200	000000 				 .WORD
	012202	000000 				 .WORD
	012204	004737 	024252'		64$:	 JSR	PC,$TRACK
	012210	012600 				 MOV	(SP)+,R0
   5599	012212					CALL	$KLSR		; DO A SOFT RESET
	012212	004737 	015504'			 JSR	PC,$KLSR
   5600	012216	103423 				BCS	9$		; ERROR
   5601	012220	012701 	001103'			MOV	#DFCABF,R1
   5602	012224					CALL	LFCSAB		; LOAD EBUS BITS 00-05
	012224	004737 	012274'			 JSR	PC,LFCSAB
   5603	012230	012700 	052000 			MOV	#.LCRDL,R0	; CRAM DIAG ADR 00-04
   5604	012234					CALL	$DFWR		; DO A WRITE
	012234	004737 	013556'			 JSR	PC,$DFWR
   5605	012240	011600 				MOV	(SP),R0		; RESTORE C-RAM ADR
   5606	012242	103411 				BCS	9$		; ERROR
   5607	012244	000300 				SWAB	R0		; GET BITS 00-04
   5608	012246	006200 				ASR	R0		; TO LOW-ORDER BITS OF R0
   5609	012250	006200 				ASR	R0
   5610	012252					CALL	LFCSAB		; LOAD EBUS BITS 00-05
	012252	004737 	012274'			 JSR	PC,LFCSAB
   5611	012256	012700 	051000 			MOV	#.LCRDR,R0	; CRAM DIAG ADR 05-10
   5612	012262					CALL	$DFWR		; DO ANOTHER WRITE
	012262	004737 	013556'			 JSR	PC,$DFWR
   5613	012266				9$:	POP	<R0,R1>
	012266	012600 				 MOV	(SP)+,R0
	012270	012601 				 MOV	(SP)+,R1
   5614	012272					RETURN
	012272	000207 				 RTS	PC
   5615
   5616	012274	042700 	000077 		LFCSAB:	BIC	#77,R0		; DEAL ONLY WITH 6 BITS
   5617	012300	110037 	001106'			MOVB	R0,DFCABF+3	; TO EBUS BITS 4 & 5
   5618	012304	000300 				SWAB	R0
   5619	012306	110037 	001107'			MOVB	R0,DFCABF+4	; TO EBUS BITS 0,1,2, AND 3
   5620	012312					RETURN
	012312	000207 				 RTS	PC
KLIFC -- C-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 127
$ACRAM	-- ADDRESS C-RAM WORD

   5622
   5623
   5624						.TITLE	KLIFD -- D-RAM READ/WRITE
   5625	012314					IDENT$	5,0
						.IDENT	/005000/
   5626					;
   5627					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5628					; ALL RIGHTS RESERVED.
   5629					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5630					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5631					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5632					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5633					;
   5634					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5635					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5636					; EQUIPMENT CORPORATION.
   5637					;
   5638					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5639					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5640					;
   5641					; VERSION 05-00
   5642					;
   5643					; ALAN D. PECKHAM  11-APR-77
   5644					;
   5645					; MODIFIED BY:
   5646					;
   5647					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK WITH THE D-RAMS.
   5648					;  THE D-RAM DATA IS PASSED IN THE 3-WORD COMPRESSED FORMAT SPECIFIED
   5649					;  IN THE DOCUMENTATION FOR KLDCP.
   5650					;
   5651					; LOCAL DATA
   5652					;
   5653	001110					.PSECT	DATA,D
   5654						.EVEN			; DFDDBF MUST BE ON AN EVEN BOUNDRY.
   5655	001110				DFDDBF:	WD36$	0 0		; DATA WORK AREA.
	001110	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001113	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5656	001115				DFDABF:	WD36$	0 0		; ADDRESS WORK AREA.
	001115	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001120	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5657						.EVEN
   5658	012314					.PSECT
KLIFD -- D-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 128
$WDRAM	-- WRITE D-RAM WORD

   5660						.SBTTL	$WDRAM	-- WRITE D-RAM WORD
   5661					;+
   5662					; WRITE THE COMPRESSED D-RAM WORD POINTED TO BY R1 INTO THE D-RAM ADDRESS
   5663					; POINTED TO BY R0.
   5664					;
   5665					; INPUTS:
   5666					;	R1	- POINTER TO COMPRESSED D-RAM DATA WORD
   5667					;	R0	- D-RAM ADDRESS TO WRITE DATA INTO.
   5668					;
   5669					; OUTPUTS:
   5670					;	CARRY IS SET IF ERROR OCCURS.
   5671					;-
   5672
   5673	012314	004537 	024204'		$WDRAM::JSR	R5,$RSAVE
   5674	012320					TRACK	DW
	012320	004037 	012332'			 JSR	R0,64$
	012324	053504 				 .WORD	"DW
	012326	000000 				 .WORD
	012330	000000 				 .WORD
	012332	004737 	024252'		64$:	 JSR	PC,$TRACK
	012336	012600 				 MOV	(SP)+,R0
   5675	012340	006000 				ROR	R0		; CHECK IF EVEN OR ODD
   5676	012342	103423 				BCS	10$		; C-BIT NOT SET MEANS EVEN
   5677	012344	006100 				ROL	R0		; RESTORE ADR
   5678	012346	010104 				MOV	R1,R4		; SAVE DATA POINTER
   5679	012350					CALL	$ADRAM		; WRITE D-RAM ADDRESS
	012350	004737 	012704'			 JSR	PC,$ADRAM
   5680	012354	103416 				BCS	10$		; ERROR
   5681	012356	012401 				MOV	(R4)+,R1
   5682	012360					CALL	30$		; WRITE EVEN DATA
	012360	004737 	012426'			 JSR	PC,30$
   5683	012364	103412 				BCS	10$
   5684	012366	012401 				MOV	(R4)+,R1	; MORE DATA TO R1
   5685	012370					CALL	20$		; WRITE ODD DATA
	012370	004737 	012414'			 JSR	PC,20$
   5686	012374	103406 				BCS	10$
   5687	012376	011401 				MOV	(R4),R1
   5688					;
   5689					;	COMMON PART OF LOADING OF THE D-RAM
   5690					;
   5691	012400	012700 	062000 			MOV	#.LDRM3,R0	; COMMON J01-04
   5692	012404	006301 				ASL	R1
   5693	012406	006301 				ASL	R1		; JUSTIFY DATA FOR EBUS
   5694	012410	000423 				BR	LFDWFN
   5695	012412				10$:	RETURN
	012412	000207 				 RTS	PC
   5696	012414	012703 	061000 		20$:	MOV	#.LDRM2,R3	; DRAM FUNC FOR J-FIELD A & B
   5697	012420	012700 	064000 			MOV	#.LDRJD,R0	; J-FIELD ODD
   5698	012424	000404 				BR	40$
   5699	012426	012703 	060000 		30$:	MOV	#.LDRM1,R3	; DRAM FUNC FOR J-FILED
   5700	012432	012700 	063000 			MOV	#.LDRJV,R0	; J-FILED EVEN
   5701	012436	006301 			40$:	ASL	R1		; JUSTIFY J-FIELD DATA
   5702	012440	006301 				ASL	R1
   5703	012442					PUSH	R1
	012442	010146 				 MOV	R1,-(SP)
   5704	012444					CALL	LFDWFN		; WRITE J-DATA
	012444	004737 	012460'			 JSR	PC,LFDWFN
KLIFD -- D-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 128-1
$WDRAM	-- WRITE D-RAM WORD

   5705	012450					POP	R1
	012450	012601 				 MOV	(SP)+,R1
   5706	012452	103757 				BCS	10$		; ERROR
   5707	012454	000301 				SWAB	R1		; GOT A & B
   5708	012456	010300 				MOV	R3,R0		; GOT CORRECT DIAG FUNC & WRITE
   5709	012460	110137 	001112'		LFDWFN:	MOVB	R1,DFDDBF+2	; R1 HAS THE DATA
   5710	012464	012701 	001110'			MOV	#DFDDBF,R1	; DATA ADR
   5711	012470					CALLR	$DFWR		; WRITE IT
	012470	000137 	013556'			 JMP	$DFWR
KLIFD -- D-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 129
$RDRAM	-- READ D-RAM WORD

   5713						.SBTTL	$RDRAM	-- READ D-RAM WORD
   5714					;+
   5715					; READ THE D-RAM WORD ADDRESSED BY R0 INTO THE DATA BUFFER POINTED TO
   5716					; BY R1. THE DATA IS COMPRESSED DURING THE READ.
   5717					;
   5718					; INPUTS:
   5719					;	R1	- POINTER TO BUFFER TO RECIEVE D-RAM WORD.
   5720					;	R0	- D-RAM ADDRESS TO READ DATA FROM.
   5721					;
   5722					; OUTPUTS:
   5723					;	CARRY IS SET IF ERROR OCCURS.
   5724					;-
   5725
   5726	012474	004537 	024204'		$RDRAM::JSR	R5,$RSAVE
   5727	012500					TRACK	DR
	012500	004037 	012512'			 JSR	R0,64$
	012504	051104 				 .WORD	"DR
	012506	000000 				 .WORD
	012510	000000 				 .WORD
	012512	004737 	024252'		64$:	 JSR	PC,$TRACK
	012516	012600 				 MOV	(SP)+,R0
   5728	012520	010104 				MOV	R1,R4		; SAVE RECIEVING ADDRESS.
   5729	012522	010103 				MOV	R1,R3
   5730	012524	005002 				CLR	R2		; CLEAR LOOP SWITCH.
   5731	012526				10$:	CALL	$ADRAM		; WRITE D-RAM ADR
	012526	004737 	012704'			 JSR	PC,$ADRAM
   5732	012532	103463 				BCS	30$
   5733	012534	012700 	015000 			MOV	#.DRLTC,R0	; UNLATCH THE DRAM REG
   5734	012540					CALL	$DFXC
	012540	004737 	013760'			 JSR	PC,$DFXC
   5735	012544	103456 				BCS	30$
   5736	012546	012701 	001110'			MOV	#DFDDBF,R1
   5737	012552	012700 	135000 			MOV	#.RDJ71,R0	; FUNC TO READ J07-10
   5738	012556					CALL	$DFRD		; READ DATA
	012556	004737 	013444'			 JSR	PC,$DFRD
   5739	012562	103447 				BCS	30$		; TIMEOUT ERROR
   5740	012564	016100 	000002 			MOV	2(R1),R0	; GET DATA J07-10 - DEXWD2
   5741	012570	006200 				ASR	R0
   5742	012572	006200 				ASR	R0		; RIGHT JUSTIFIED J-DATA
   5743	012574	042700 	177700 			BIC	#^C77,R0	; CLEAR TRASH
   5744	012600	110023 				MOVB	R0,(R3)+	; SAVE IT IN CORE
   5745	012602	012700 	133000 			MOV	#.RDMAB,R0	; FUNC TO READ A & B FIELD
   5746	012606					CALL	$DFRD		; READ DATA
	012606	004737 	013444'			 JSR	PC,$DFRD
   5747	012612	103433 				BCS	30$
   5748	012614	016100 	000002 			MOV	2(R1),R0	; GET A & B DATA - DEXWD2
   5749	012620	006200 				ASR	R0
   5750	012622	006200 				ASR	R0		; RIGHT JUSTIFIED DATA
   5751	012624	042700 	177700 			BIC	#^C77,R0	; CLEAR EXTRA
   5752	012630	110023 				MOVB	R0,(R3)+	; SAVE IT IN CORE
   5753	012632	005102 				COM	R2		; IS THIS THE SECOND TIME ?
   5754	012634	001404 				BEQ	20$		; GET OUT IF YES
   5755	012636	016600 	000002 			MOV	2(SP),R0	; GET DRAM ADR
   5756	012642	005200 				INC	R0		; GET ODD HALF OF EVEN/ODD PAIR
   5757	012644	000730 				BR	10$		; LOOP AGAIN
   5758	012646	012700 	134000 		20$:	MOV	#.RDJ14,R0	; FUNC TO READ J01-04
   5759	012652					CALL	$DFRD		; READ DATA
KLIFD -- D-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 129-1
$RDRAM	-- READ D-RAM WORD

	012652	004737 	013444'			 JSR	PC,$DFRD
   5760	012656	103411 				BCS	30$
   5761	012660	016100 	000002 			MOV	2(R1),R0	; GET J01-04 DATA - DEXWD2
   5762	012664	006200 				ASR	R0
   5763	012666	006200 				ASR	R0		; RIGHT JUSTIFIED DATA
   5764	012670	042700 	177760 			BIC	#^C17,R0	; CLEAR EXTRA
   5765	012674	110064 	000004 			MOVB	R0,4(R4)	; BIT SET TO CORE
   5766	012700	000241 				CLC
   5767	012702				30$:	RETURN
	012702	000207 				 RTS	PC
KLIFD -- D-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 130
$ADRAM	-- ADDRESS D-RAM WORD

   5769						.SBTTL	$ADRAM	-- ADDRESS D-RAM WORD
   5770					;+
   5771					; SET E-BOX TO SPECIFIED D-RAM ADDRESS FOR WRITTING OR READING.
   5772					;
   5773					; INPUT:
   5774					;	R0	- ADDRESS TO ACCESS.
   5775					;
   5776					; OUTPUT:
   5777					;	CARRY IS SET IF ERROR OCCURS.
   5778					;-
   5779
   5780	012704	004537 	024204'		$ADRAM::JSR	R5,$RSAVE
   5781	012710					TRACK	DA
	012710	004037 	012722'			 JSR	R0,64$
	012714	040504 				 .WORD	"DA
	012716	000000 				 .WORD
	012720	000000 				 .WORD
	012722	004737 	024252'		64$:	 JSR	PC,$TRACK
	012726	012600 				 MOV	(SP)+,R0
   5782	012730	012704 	001117'			MOV	#DFDABF+2,R4
   5783	012734	012703 	001115'			MOV	#DFDABF,R3	;GET ADR OF EBUS DATA
   5784	012740	010002 				MOV	R0,R2		;DRAM ADR IN R2
   5785	012742	005100 				COM	R0		;READY TO TEST ADR BITS 0-2
   5786	012744	032700 	000700 			BIT	#700,R0		;TESTING!
   5787	012750	001410 				BEQ	10$		;BR IF ADR IS 7XX
   5788	012752	006302 				ASL	R2
   5789	012754	006302 				ASL	R2
   5790	012756	006302 				ASL	R2		;LEFT SHIFT 3 POSITIONS
   5791	012760	105024 				CLRB	(R4)+		;INCREMENT TO DFDABF+3
   5792	012762	110224 				MOVB	R2,(R4)+	;MOVE ADR BITS 4-8 TO EBUS DATA
   5793	012764	000302 				SWAB	R2
   5794	012766	110214 				MOVB	R2,@R4		;MOVE ADR BITS 0-3 TO EBUS DATA
   5795	012770	000413 				BR	40$
   5796	012772	006002 			10$:	ROR	R2		;BIT1 TO C-BIT
   5797	012774	103402 				BCS	20$		;C BIT SET MEANS IR BIT 12 MUST BE 1
   5798	012776	105024 				CLRB	(R4)+		;NO C-BIT MEANS IR BIT 12 MUST BE 0
   5799	013000	000402 				BR	30$		;MOVE ADR TO EBUS DATA
   5800	013002	112724 	000200 		20$:	MOVB	#200,(R4)+	;SET IR BIT 12=1
   5801	013006	042702 	000340 		30$:	BIC	#340,R2
   5802	013012	110224 				MOVB	R2,(R4)+	;MOVE D-RAM ADR TO EBUS BIT POSITION 7-11
   5803	013014	112714 	000016 			MOVB	#16,@R4		;SET THE 7 FROM 7XX IN EBUS DATA
   5804	013020				40$:	CALL	$KLSR		;DO A SOFT RESET
	013020	004737 	015504'			 JSR	PC,$KLSR
   5805	013024	103413 				BCS	50$
   5806	013026	012701 	001115'			MOV	#DFDABF,R1	;EBUS DATA ADR
   5807	013032	012700 	077000 			MOV	#.LDAR,R0	;LOAD THE AR FROM EBUS 0-35
   5808	013036					CALL	$DFWR		;DO THE ACTUAL WRITE
	013036	004737 	013556'			 JSR	PC,$DFWR
   5809	013042	103404 				BCS	50$
   5810	013044	012700 	014000 			MOV	#.IRLTC,R0	;UNLATCH IR AND LOAD IT FROM AD
   5811	013050					CALLR	$DFXC		;EXECUTE IT
	013050	000137 	013760'			 JMP	$DFXC
   5812	013054				50$:	RETURN
	013054	000207 				 RTS	PC
KLIFD -- D-RAM READ/WRITE	MACRO M1113  03-APR-86 20:55  PAGE 131
$ADRAM	-- ADDRESS D-RAM WORD

   5814
   5815
   5816						.TITLE	KLIFE -- DEPOSIT/EXAMINE KL MEMORY
   5817	013056					IDENT$	5,1
						.IDENT	/005010/
   5818					;
   5819					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5820					; ALL RIGHTS RESERVED.
   5821					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5822					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5823					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5824					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5825					;
   5826					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5827					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5828					; EQUIPMENT CORPORATION.
   5829					;
   5830					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5831					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5832					;
   5833					; VERSION 05-01
   5834					;
   5835					; ALAN D. PECKHAM  29-MAR-77
   5836					;
   5837					; MODIFIED BY:
   5838					;
   5839					;	R. BELANGER	24-AUG-78	FIX CROCK IN ".DESW" MAINTENANCE
   5840					;
   5841					; FUNCTION: ROUTINES TO ACCESS KL MEMORY.
   5842					;
   5843					; LOCAL MACROS
   5844					;
   5845						.MCALL	PREX$,PRDP$
   5846					;
   5847					; LOCAL DATA
   5848					;
   5849	001122					.PSECT	DATA,D
   5850	001122				DFEDPB:	PRDP$	0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED DEPOSIT.
	001122	   011 	   005 			.BYTE	DR.DTE,5
	001124	   016 	   200 			.BYTE	DF.PDP,ED.PHY
	001126	001146'				.WORD	DFEAD
	001130	001152'				.WORD	DFEBF
	001132	000000 				.WORD	0
   5851	001134				DFEEXB:	PREX$	0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED EXAMINE.
	001134	   011 	   005 			.BYTE	DR.DTE,5
	001136	   015 	   200 			.BYTE	DF.PEX,ED.PHY
	001140	001146'				.WORD	DFEAD
	001142	001152'				.WORD	DFEBF
	001144	000000 				.WORD	0
   5852	001146				DFEAD:	WD22$	0		; ADDRESS OF MEMORY ACCESS.
	001146	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   5853						.EVEN
   5854	001152				DFEBF:	WD36$	0 0		; DATA TO WRITE OR READ.
	001152	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001155	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5855						.EVEN
   5856	002325					.PSECT	TEXT,D
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1113  03-APR-86 20:55  PAGE 131-1
$ADRAM	-- ADDRESS D-RAM WORD

   5857	002325				TFEDFL:	ERROR	<DEPOSIT FAILED>
	002325	   077 	   040 	   104 		 .ASCIZ	\? DEPOSIT FAILED\
	002330	   105 	   120 	   117
	002333	   123 	   111 	   124
	002336	   040 	   106 	   101
	002341	   111 	   114 	   105
	002344	   104 	   000
   5858	002346				TFEEFL:	ERROR	<EXAMINE FAILED>
	002346	   077 	   040 	   105 		 .ASCIZ	\? EXAMINE FAILED\
	002351	   130 	   101 	   115
	002354	   111 	   116 	   105
	002357	   040 	   106 	   101
	002362	   111 	   114 	   105
	002365	   104 	   000
   5859	013056					.PSECT
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1113  03-APR-86 20:55  PAGE 132
$DPOS	-- DEPOSIT KL MEMORY ROUTINE

   5861						.SBTTL	$DPOS	-- DEPOSIT KL MEMORY ROUTINE
   5862					;+
   5863					; DEPOSIT GIVEN WORD INTO PHYSICAL CORE.
   5864					;
   5865					; INPUTS:
   5866					;	R1	- ADDRESS OF 36 BIT DATA WORD.
   5867					;	R0	- 22 BIT KL ADDRESS.
   5868					;
   5869					; OUTPUTS:
   5870					;	CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
   5871					;-
   5872
   5873	013056				$DPOST::
   5874	013056	005046 				CLR	-(SP)		; SET UP THE ADDRESS
   5875	013060					PUSH	R0		; SO
	013060	010046 				 MOV	R0,-(SP)
   5876	013062	010600 				MOV	SP,R0		; POINT TO ADDRESS
   5877	013064					CALL	$DPOS		; DO THE DEPOSIT
	013064	004737 	013074'			 JSR	PC,$DPOS
   5878	013070	032626 				BIT	(SP)+,(SP)+	; CLEAR STACK
   5879	013072					RETURN			; TO CALLER
	013072	000207 				 RTS	PC
   5880
   5881	013074				$DPOS::
   5882	013074	004537 	024204'			JSR	R5,$RSAVE
   5883	013100					CALL	LFEMVA		; SET UP PROPER BOUNDARY
	013100	004737 	013330'			 JSR	PC,LFEMVA
   5884	013104					CALL	LFECKN		; MAKE SURE THE CLOCK IS ON.
	013104	004737 	013354'			 JSR	PC,LFECKN
   5885	013110	103431 				BCS	90$
   5886	013112	012704 	001152'			MOV	#DFEBF,R4	; SET UP TEMPORARY WORK AREA
   5887	013116	012703 	000005 			MOV	#5,R3		; AREA COUNT
   5888	013122	112124 			10$:	MOVB	(R1)+,(R4)+	; MOVE IN -11 DATA
   5889	013124	077302 				SOB	R3,10$		; CONTINUE MOVE
   5890	013126	142744 	177760 			BICB	#^C17,-(R4)	; CLEAR HIGH BYTE
   5891	013132					TRACK	DP,DFEAD,DFEBF
	013132	004037 	013144'			 JSR	R0,64$
	013136	050104 				 .WORD	"DP
	013140	001146'				 .WORD	DFEAD
	013142	001152'				 .WORD	DFEBF
	013144	004737 	024252'		64$:	 JSR	PC,$TRACK
	013150	012600 				 MOV	(SP)+,R0
   5892	013152					DIR$	#DFEDPB		; DO DEPOSIT TO KL
	013152	012746 	001122'			MOV	#DFEDPB,-(SP)
	013156	104375 				EMT	375
   5893	013160	103005 				BCC	90$
   5894	013162					PRINT	#TFEDFL		; INFORM OF ERROR.
	013162	012700 	002325'			 MOV	#TFEDFL,R0
	013166	004737 	027634'			 JSR	PC,$TTMSG
   5895	013172	000261 				SEC
   5896	013174				90$:	RETURN
	013174	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1113  03-APR-86 20:55  PAGE 133
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5898						.SBTTL	$EXAM	-- EXAMINE KL MEMORY ROUTINE
   5899					;+
   5900					; EXAMINE GIVEN WORD FROM KL PHYSICAL CORE.
   5901					;
   5902					; INPUTS:
   5903					;	R1	- ADDRESS OF BUFFER TO RECIEVE DATA.
   5904					;	R0	- 22 BIT KL ADDRESS.
   5905					;
   5906					; OUTPUTS:
   5907					;	CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
   5908					;-
   5909
   5910						.ENABL	LSB
   5911
   5912	013176				$EXAMT::
   5913	013176	005046 				CLR	-(SP)		; SET UP THE ADDRESS
   5914	013200					PUSH	R0		; SO
	013200	010046 				 MOV	R0,-(SP)
   5915	013202	010600 				MOV	SP,R0		; POINT TO ADDRESS
   5916	013204					CALL	$EXAM		; DO THE EXAMINE
	013204	004737 	013224'			 JSR	PC,$EXAM
   5917	013210	032626 				BIT	(SP)+,(SP)+	; CLEAR THE STACK
   5918	013212	000402 				BR	10$		; OUT THRU COMMON EXIT
   5919						;
   5920	013214				$EXAMD::
   5921	013214					CALL	$EXAM		; DO THE EXAMINE
	013214	004737 	013224'			 JSR	PC,$EXAM
   5922	013220				10$:
   5923	013220	010100 				MOV	R1,R0		; DATA PONTER TO R0
   5924	013222					RETURN			; TO CALLER
	013222	000207 				 RTS	PC
   5925
   5926						.DSABL	LSB
   5927
   5928	013224				$EXAM::
   5929	013224	004537 	024204'			JSR	R5,$RSAVE
   5930	013230					CALL	LFEMVA
	013230	004737 	013330'			 JSR	PC,LFEMVA
   5931	013234					CALL	LFECKN		; MAKE SURE THE CLOCK IS ON.
	013234	004737 	013354'			 JSR	PC,LFECKN
   5932	013240	103425 				BCS	90$
   5933	013242					DIR$	#DFEEXB		; DO KL EXAMINE
	013242	012746 	001134'			MOV	#DFEEXB,-(SP)
	013246	104375 				EMT	375
   5934	013250					TRACK	EX,DFEAD,DFEBF
	013250	004037 	013262'			 JSR	R0,64$
	013254	054105 				 .WORD	"EX
	013256	001146'				 .WORD	DFEAD
	013260	001152'				 .WORD	DFEBF
	013262	004737 	024252'		64$:	 JSR	PC,$TRACK
	013266	012600 				 MOV	(SP)+,R0
   5935	013270	103411 				BCS	90$
   5936	013272	012702 	000005 			MOV	#5,R2
   5937	013276	012700 	001152'			MOV	#DFEBF,R0
   5938	013302	112021 			10$:	MOVB	(R0)+,(R1)+
   5939	013304	077202 				SOB	R2,10$
   5940	013306	142741 	177760 			BICB	#^C17,-(R1)
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1113  03-APR-86 20:55  PAGE 133-1
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5941	013312					RETURN
	013312	000207 				 RTS	PC
   5942	013314				90$:	PRINT	#TFEEFL		; INFORM OPERATOR OF ERROR.
	013314	012700 	002346'			 MOV	#TFEEFL,R0
	013320	004737 	027634'			 JSR	PC,$TTMSG
   5943	013324	000261 				SEC
   5944	013326					RETURN
	013326	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1113  03-APR-86 20:55  PAGE 134
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5946					;+
   5947					; GET 22-BIT ADDRESS AND PLACE IN WORD-ALIGNED HOLDING AREA.
   5948					;-
   5949
   5950	013330	012705 	001146'		LFEMVA:	MOV	#DFEAD,R5
   5951	013334	112025 				MOVB	(R0)+,(R5)+	; CLAIM THE CALLER'S
   5952	013336	112025 				MOVB	(R0)+,(R5)+	; KL ADDRESS
   5953	013340	111015 				MOVB	(R0),(R5)	; FOR OUR OWN.
   5954	013342	042715 	177700 			BIC	#^C77,(R5)	; 22 BITS PLEASE.
   5955	013346	012700 	001146'			MOV	#DFEAD,R0
   5956	013352					RETURN
	013352	000207 				 RTS	PC
   5957
   5958					;+
   5959					; MAKE SURE THE CLOCK IS ON
   5960					;-
   5961
   5962	013354	105737 	000042'		LFECKN:	TSTB	.DESW		; IF OUR SWITCH IS >0,
   5963	013360	003026 				BGT	90$		; THEN MICROCODE IS USEABLE.
   5964	013362					CALL	$KLMR		; OTHERWISE RESET
	013362	004737 	015232'			 JSR	PC,$KLMR
   5965	013366	103423 				BCS	90$
   5966	013370	012700 	001000 			MOV	#.STRCL,R0	; AND START CLOCK.
   5967	013374					CALL	$DFXC
	013374	004737 	013760'			 JSR	PC,$DFXC
   5968	013400	103416 				BCS	90$
   5969	013402	012702 	001750 			MOV	#1000.,R2	; WAIT FOR HALT LOOP
   5970	013406				10$:	CALL	$DTRW1		; BY READING DTE REG #1
	013406	004737 	024114'			 JSR	PC,$DTRW1
   5971	013412	103411 				BCS	90$		; AND
   5972	013414	032700 	001000 			BIT	#DS06,R0	; CHECKING HALT BIT.
   5973	013420	001003 				BNE	20$
   5974	013422	077207 				SOB	R2,10$		; IF TAKES TOO LONG
   5975	013424	000261 				SEC			; THEN WE ARE IN TROUBLE.
   5976	013426					RETURN
	013426	000207 				 RTS	PC
   5977	013430	112737 	000001 	000042'	20$:	MOVB	#1,.DESW		; OTHERWISE INDICATE
   5978	013436				90$:	RETURN			; OKAY TO USE.
	013436	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1113  03-APR-86 20:55  PAGE 135
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5980
   5981						.TITLE	KLIFR -- PERFORM DIAGNOSTIC FUNCTION READ
   5982	013440					IDENT$	5,0
						.IDENT	/005000/
   5983					;
   5984					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5985					; ALL RIGHTS RESERVED.
   5986					; THIS SOFTWARE IS FURNISHED TOPURCHASER UNDER A LICENSE FOR USE
   5987					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5988					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5989					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5990					;
   5991					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5992					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5993					; EQUIPMENT CORPORATION.
   5994					;
   5995					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5996					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5997					;
   5998					; VERSION 05-00
   5999					;
   6000					; ALAN D. PECKHAM  29-MAR-77
   6001					;
   6002					; MODIFIED BY:
   6003					;
   6004					; FUNCTION: DO A FUNCTION READ TO THE DTE20.
   6005					;
   6006					; LOCAL MACROS
   6007					;
   6008						.MCALL	KLDR$
   6009					;
   6010					; LOCAL DATA
   6011					;
   6012	001160					.PSECT	DATA,D
   6013	001160				DFRRDB:	KLDR$	0,.DFBLK,.DREG,0	; DPB FOR FUNCTION READ.
	001160	002411 				.WORD	400*5.+DR.DTE
	001162	   012 	   000 			.BYTE	DF.KLR,0/400
	001164	000256'				.WORD	.DFBLK
	001166	000272'				.WORD	.DREG
	001170	000000 				.WORD	0
   6014						.EVEN
   6015	002367					.PSECT	TEXT,D
   6016	002367				TFREMS:	ERROR	<DF READ FAILED> ; READ FAILED ERROR MESSAGE.
	002367	   077 	   040 	   104 		 .ASCIZ	\? DF READ FAILED\
	002372	   106 	   040 	   122
	002375	   105 	   101 	   104
	002400	   040 	   106 	   101
	002403	   111 	   114 	   105
	002406	   104 	   000
   6017	013440					.PSECT
KLIFR -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 136
$DFRD	-- DIAGNOSTIC READ FUNCTION

   6019						.SBTTL	$DFRD	-- DIAGNOSTIC READ FUNCTION
   6020					;+
   6021					; PERFORM A DIAGNOSTIC READ FUNCTION.
   6022					;
   6023					; INPUTS:
   6024					;	R1	- ADDRESS OF 36 BIT BUFFER TO RECIEVE DATA FROM READ.
   6025					;	R0	- FUNCTION CODE OF READ TO PERFORM.
   6026					;
   6027					; OUTPUTS:
   6028					;	(R1)	- DATA READ FROM DIAGNOSTIC IS SUCCESSFUL.
   6029					;	CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
   6030					;-
   6031
   6032	013440				$DDFRD::
   6033	013440	000300 				SWAB	R0		; POSITION READ CODE
   6034	013442	006300 				ASL	R0		; SO
   6035	013444				$DFRD::
   6036	013444					PUSH	<R1,R0>
	013444	010146 				 MOV	R1,-(SP)
	013446	010046 				 MOV	R0,-(SP)
   6037	013450	000300 				SWAB	R0		; GET FUNCTION CODE TO LOW BYTE
   6038	013452	110037 	001163'			MOVB	R0,DFRRDB+3	; STORE FUNCTION CODE
   6039	013456					DIR$	#DFRRDB
	013456	012746 	001160'			MOV	#DFRRDB,-(SP)
	013462	104375 				EMT	375
   6040	013464					TRACK	FR,DFRRDB+3,.DFRBK
	013464	004037 	013476'			 JSR	R0,64$
	013470	051106 				 .WORD	"FR
	013472	001163'				 .WORD	DFRRDB+3
	013474	000264'				 .WORD	.DFRBK
	013476	004737 	024252'		64$:	 JSR	PC,$TRACK
	013502	012600 				 MOV	(SP)+,R0
   6041	013504	103412 				BCS	10$
   6042	013506	012700 	000264'			MOV	#.DFRBK,R0
   6043	013512	005701 				TST	R1		; TEST R1
   6044	013514	001413 				BEQ	90$		; BYPASS LOADING
   6045	013516	112021 				MOVB	(R0)+,(R1)+	; REMOVE DATA FROM DEXWD3
   6046	013520	112021 				MOVB	(R0)+,(R1)+
   6047	013522	112021 				MOVB	(R0)+,(R1)+	; FROM DEXWD2
   6048	013524	112021 				MOVB	(R0)+,(R1)+
   6049	013526	111011 				MOVB	(R0),(R1)	; FROM DEXWD1
   6050	013530	000405 				BR	90$
   6051	013532				10$:	PRINT	#TFREMS		; INDICATE FUNC READ FAILED
	013532	012700 	002367'			 MOV	#TFREMS,R0
	013536	004737 	027634'			 JSR	PC,$TTMSG
   6052	013542	000261 				SEC
   6053	013544				90$:	POP	<R0,R1>
	013544	012600 				 MOV	(SP)+,R0
	013546	012601 				 MOV	(SP)+,R1
   6054	013550					RETURN
	013550	000207 				 RTS	PC
KLIFR -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 137
$DFRD	-- DIAGNOSTIC READ FUNCTION

   6056
   6057						.TITLE	KLIFW -- PERFORM DIAGNOSTIC FUNCTION WRITE
   6058	013552					IDENT$	5,0
						.IDENT	/005000/
   6059					;
   6060					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6061					; ALL RIGTHS RESERVED.
   6062					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6063					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6064					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6065					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6066					;
   6067					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6068					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6069					; EQUIPMENT CORPORATION.
   6070					;
   6071					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6072					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6073					;
   6074					; VERSION 05-00
   6075					;
   6076					; ALAN D. PECKHAM  29-MAR-77
   6077					;
   6078					; MODIFIED BY:
   6079					;
   6080					; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
   6081					;
   6082					; LOCAL MACROS
   6083					;
   6084						.MCALL	KLDW$,PREX$
   6085					;
   6086					; LOCAL DATA
   6087					;
   6088	001172					.PSECT	DATA,D
   6089	001172				DFWWDB:	KLDW$	0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION WRITE.
	001172	002411 				.WORD	400*5.+DR.DTE
	001174	   013 	   000 			.BYTE	DF.KLW,0/400
	001176	000256'				.WORD	.DFBLK
	001200	000272'				.WORD	.DREG
	001202	000000 				.WORD		0
   6090	001204				DFWEDB:	PREX$	0,.ZERO,DFWBF,ED.PHY ; PRIVLEDGED EXAMINE DPB.
	001204	   011 	   005 			.BYTE	DR.DTE,5
	001206	   015 	   200 			.BYTE	DF.PEX,ED.PHY
	001210	000000'				.WORD	.ZERO
	001212	001216'				.WORD	DFWBF
	001214	000000 				.WORD	0
   6091	001216				DFWBF:	WD36$	0 0		; EXAMINE SCRATCH BUFFER.
	001216	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001221	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6092						.EVEN
   6093	002410					.PSECT	TEXT,D
   6094	002410				TFWEMS:	ERROR	<DF WRITE FAILED>
	002410	   077 	   040 	   104 		 .ASCIZ	\? DF WRITE FAILED\
	002413	   106 	   040 	   127
	002416	   122 	   111 	   124
	002421	   105 	   040 	   106
	002424	   101 	   111 	   114
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 137-1
$DFRD	-- DIAGNOSTIC READ FUNCTION

	002427	   105 	   104 	   000
   6095	013552					.PSECT
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 138
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

   6097						.SBTTL	$DFWR	-- DIAGNOSTIC WRITE FUNCTION
   6098					;+
   6099					; PERFORM DIAGNOSTIC WRITE FUNCTION.
   6100					;
   6101					; INPUTS:
   6102					;	R1	- ADDRESS OF 36 BIT WORD TO WRITE.
   6103					;	R0	- FUNCTION CODE OF WRITE TO PERFORM.
   6104					;
   6105					; OUTPUTS:
   6106					;	CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
   6107					;-
   6108
   6109	013552				$DDFWR::
   6110	013552	000300 				SWAB	R0		; POSITION WRITE CODE
   6111	013554	006300 				ASL	R0		; SO
   6112	013556				$DFWR::
   6113	013556					PUSH	<R1,R0>
	013556	010146 				 MOV	R1,-(SP)
	013560	010046 				 MOV	R0,-(SP)
   6114	013562					CALL	LFWCKF		; TURN OFF CLOCK
	013562	004737 	013676'			 JSR	PC,LFWCKF
   6115	013566	103440 				BCS	90$
   6116	013570	000300 				SWAB	R0		; GET FUNCTION CODE TO LOW BYTE
   6117	013572	110037 	001175'			MOVB	R0,DFWWDB+3	; SET THE FUNCTION CODE IN DPB
   6118	013576	012700 	000256'			MOV	#.DFWBK,R0	; POINT TO TOP OF 3 WORDS FOR WRITE
   6119	013602	005701 				TST	R1		; TEST R1
   6120	013604	001405 				BEQ	10$		; BYPASS LOADING
   6121	013606	112120 				MOVB	(R1)+,(R0)+	; FILL IN DATA IN DEXWD3
   6122	013610	112120 				MOVB	(R1)+,(R0)+
   6123	013612	112120 				MOVB	(R1)+,(R0)+	; IN DEXWD2
   6124	013614	112120 				MOVB	(R1)+,(R0)+
   6125	013616	111110 				MOVB	(R1),(R0)	; IN DEXWD1
   6126	013620	042760 	177760 	000004 	10$:	BIC	#^C17,4(R0)	; JUST SAVE BITS 0-3 IN DEXWD1
   6127	013626					DIR$	#DFWWDB		; DO THE FUNCTION WRITE
	013626	012746 	001172'			MOV	#DFWWDB,-(SP)
	013632	104375 				EMT	375
   6128	013634					TRACK	FW,DFWWDB+3,.DFWBK
	013634	004037 	013646'			 JSR	R0,64$
	013640	053506 				 .WORD	"FW
	013642	001175'				 .WORD	DFWWDB+3
	013644	000256'				 .WORD	.DFWBK
	013646	004737 	024252'		64$:	 JSR	PC,$TRACK
	013652	012600 				 MOV	(SP)+,R0
   6129	013654	103005 				BCC	90$		; WRITE OKAY
   6130	013656				20$:	PRINT	#TFWEMS
	013656	012700 	002410'			 MOV	#TFWEMS,R0
	013662	004737 	027634'			 JSR	PC,$TTMSG
   6131	013666	000261 				SEC
   6132	013670				90$:	POP	<R0,R1>
	013670	012600 				 MOV	(SP)+,R0
	013672	012601 				 MOV	(SP)+,R1
   6133	013674					RETURN			; ERROR
	013674	000207 				 RTS	PC
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 139
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

   6135					;+
   6136					; MAKE SURE THE KL CLOCK IS OFF FOR FUNCTION WRITE.
   6137					;
   6138					; NO INPUTS OR OUTPUTS.
   6139					;-
   6140
   6141	013676	105037 	000042'		LFWCKF:	CLRB	.DESW		; DEP/EXAM MUST START FRESH.
   6142	013702	105737 	000041'			TSTB	.CKSW		; TEST THE CLOCK CONDITION:
   6143	013706	100421 				BMI	90$		; OFF IS OKAY.
   6144	013710	003012 				BGT	10$		; ON - TURN IT OFF.
   6145	013712					DIR$	#DFWEDB		; OTHERWISE DETERMINATE...
	013712	012746 	001204'			MOV	#DFWEDB,-(SP)
	013716	104375 				EMT	375
   6146	013720	103006 				BCC	10$		; CLOCK IS ON ! STOP IT.
   6147	013722	022737 	000000G	000000G		CMP	#IE.EBX,$DSW	; EBOX STOPPED ?
   6148	013730	001410 				BEQ	90$		; YES, WE ARE OKAY.
   6149	013732					CALLR	$KLMR		; SOME HORRIBLE STATE...
	013732	000137 	015232'			 JMP	$KLMR
   6150	013736				10$:	PUSH	R0		; CLOCK IS ON -
	013736	010046 				 MOV	R0,-(SP)
   6151	013740	012700 	000000 			MOV	#.STPCL,R0	; TURN IT OFF
   6152	013744					CALL	$DFXC
	013744	004737 	013760'			 JSR	PC,$DFXC
   6153	013750					POP	R0
	013750	012600 				 MOV	(SP)+,R0
   6154	013752				90$:	RETURN
	013752	000207 				 RTS	PC
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 140
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

   6156
   6157						.TITLE	KLIFX -- PERFORM DIAGNOSTIC FUNCTION EXECUTE
   6158	013754					IDENT$	5,1
						.IDENT	/005010/
   6159					;
   6160					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6161					; ALL RIGHTS RESERVED.
   6162					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6163					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6164					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6165					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6166					;
   6167					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6168					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6169					; EQUIPMENT CORPORATION.
   6170					;
   6171					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6172					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6173					;
   6174					; VERSION 05-01
   6175					;
   6176					; ALAN D. PECKHAM  29-MAR-77
   6177					;
   6178					; MODIFIED BY:
   6179					;
   6180					;	R. BELANGER	24-AUG-77	FIX CROCK IN ".DESW" MAINTENANCE
   6181					;
   6182					; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
   6183					;
   6184					; LOCAL MACROS
   6185					;
   6186						.MCALL	KLDX$
   6187					;
   6188					; LOCAL VARIABLES
   6189					;
   6190	001224					.PSECT	DATA,D
   6191	001224				DFXXDB:	KLDX$	0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION EXECUTE.
	001224	002411 				.WORD	400*5.+DR.DTE
	001226	   014 	   000 			.BYTE	DF.KLX,0/400
	001230	000256'				.WORD	.DFBLK
	001232	000272'				.WORD	.DREG
	001234	000000 				.WORD	0
   6192						.EVEN
   6193	002432					.PSECT	TEXT,D
   6194	002432				TFXEMS:	ERROR	<DF EXECUTE FAILED>
	002432	   077 	   040 	   104 		 .ASCIZ	\? DF EXECUTE FAILED\
	002435	   106 	   040 	   105
	002440	   130 	   105 	   103
	002443	   125 	   124 	   105
	002446	   040 	   106 	   101
	002451	   111 	   114 	   105
	002454	   104 	   000
   6195	013754					.PSECT
KLIFX -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 141
$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION

   6197						.SBTTL	$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION
   6198					;+
   6199					; PERFORM A DIAGNOSTIC EXECUTE FUNCTION.
   6200					;
   6201					; INPUTS:
   6202					;	R0	- EXECUTE FUNCTION CODE.
   6203					;
   6204					; OUTPUTS:
   6205					;	CARRY IS SET IF OPERATION FAILS.
   6206					;-
   6207
   6208	013754				$DDFXC::
   6209	013754	000300 				SWAB	R0		; POSITION EXECUTE CODE
   6210	013756	006300 				ASL	R0		; SO
   6211	013760				$DFXC::
   6212	013760					PUSH	<R1,R0>
	013760	010146 				 MOV	R1,-(SP)
	013762	010046 				 MOV	R0,-(SP)
   6213	013764	022700 	001000 			CMP	#.STRCL,R0	; START CLOCK ?
   6214	013770	001411 				BEQ	10$
   6215	013772	022700 	007000 			CMP	#.SETMR,R0	; DOES IT STOP CLOCK ?
   6216	013776	002414 				BLT	20$
   6217	014000	112737 	177777 	000041'		MOVB	#-1,.CKSW	; INDICATE CLOCK STOPPED.
   6218	014006	105037 	000042'			CLRB	.DESW		; DEP/EXAM MUST START FRESH.
   6219	014012	000406 				BR	20$
   6220	014014	112737 	000001 	000041'	10$:	MOVB	#+1,.CKSW	; INDICATE CLOCK STARTED.
   6221	014022	112737 	000001 	000042'		MOVB	#1,.DESW
   6222	014030	000300 			20$:	SWAB	R0		; GET FUNCTION CODE TO LOW BYTE
   6223	014032	110037 	001227'			MOVB	R0,DFXXDB+3	; SET FUNCTION CODE IN DPB
   6224	014036					TRACK	FX,DFXXDB+3
	014036	004037 	014050'			 JSR	R0,64$
	014042	054106 				 .WORD	"FX
	014044	001227'				 .WORD	DFXXDB+3
	014046	000000 				 .WORD
	014050	004737 	024252'		64$:	 JSR	PC,$TRACK
	014054	012600 				 MOV	(SP)+,R0
   6225	014056					DIR$	#DFXXDB
	014056	012746 	001224'			MOV	#DFXXDB,-(SP)
	014062	104375 				EMT	375
   6226	014064	103007 				BCC	30$
   6227	014066	105037 	000041'			CLRB	.CKSW		; CLOCK STATUS INDETERMINATE.
   6228	014072					PRINT	#TFXEMS		; INDICATE FUNC EX FAILED
	014072	012700 	002432'			 MOV	#TFXEMS,R0
	014076	004737 	027634'			 JSR	PC,$TTMSG
   6229	014102	000261 				SEC
   6230	014104				30$:	POP	<R0,R1>
	014104	012600 				 MOV	(SP)+,R0
	014106	012601 				 MOV	(SP)+,R1
   6231	014110					RETURN
	014110	000207 				 RTS	PC
KLIFX -- PERFORM DIAGNOSTIC FUN	MACRO M1113  03-APR-86 20:55  PAGE 142
$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION

   6233
   6234
   6235						.TITLE	KLIGC -- SET CACHE CONFIGURATION TABLES
   6236	014112					IDENT$	5,0
						.IDENT	/005000/
   6237					;
   6238					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6239					; ALL RIGHTS RESERVED.
   6240					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6241					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6242					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6243					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6244					;
   6245					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6246					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6247					; EQUIPMENT CORPORATION.
   6248					;
   6249					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6250					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6251					;
   6252					; VERSION 05-00
   6253					;
   6254					; ALAN D. PECKHAM  12-APR-77
   6255					;
   6256					; MODIFIED BY:
   6257					;
   6258					; FUNCTION: THIS MODULE SETS UP THE CACHE CONFIGURATION TABLES
   6259					;  EITHER FROM THE CONFIGURATION FILE OR FOR ALL CACHES.
   6260					;
   6262					; LOCAL DATA
   6263					;
   6264	001236					.PSECT	DATA,D
   6265	001236	043240 	000000 	000000 	DGCFNM:	.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001244	011667
   6266	001246	000000 				.WORD	0		; GET LATEST VERSION.
   6267	001250	   005 	   005 			.BYTE	5,5
   6268	001252	054523 	000000 			.WORD	"SY,0
   6269	002456					.PSECT	TEXT,D
   6270	002456				TGCNFL:	WARNING	<NO FILE - ALL CACHE BEING CONFIGURED>
	002456	   045 	   040 	   116 		 .ASCIZ	\% NO FILE - ALL CACHE BEING CONFIGURED\
	002461	   117 	   040 	   106
	002464	   111 	   114 	   105
	002467	   040 	   055 	   040
	002472	   101 	   114 	   114
	002475	   040 	   103 	   101
	002500	   103 	   110 	   105
	002503	   040 	   102 	   105
	002506	   111 	   116 	   107
	002511	   040 	   103 	   117
	002514	   116 	   106 	   111
	002517	   107 	   125 	   122
	002522	   105 	   104 	   000
   6271	014112					.PSECT
KLIGC -- SET CACHE CONFIGURATIO	MACRO M1113  03-APR-86 20:55  PAGE 143
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6273						.SBTTL	$GETCA	-- SET CACHE CONFIGURATION TABLES
   6274					;+
   6275					; GET CACHES TO BE ENABLED FROM FILE OR SET TO CONFIGURE ALL CACHE.
   6276					;
   6277					; INPUTS:
   6278					;	.DCSW	- IF NON-NEGATIVE THEN USE LAST CONFIGURATION, OTHERWISE
   6279					;		  SET FOR ALL CACHE.
   6280					;
   6281					; OUTPUTS:
   6282					;	.NCACH	- NUMBER OF CACHES TO USE.
   6283					;	.CACHN	- NUMBERS OF THE CACHES TO BE USED.
   6284					;-
   6285
   6286	014112	105737 	000031'		$GETCA::TSTB	.DCSW		; IF LAST CONFIGURATION INDICATED
   6287	014116	002417 				BLT	20$
   6288	014120	012700 	001236'			MOV	#DGCFNM,R0	; THEN FIND CONFIGURATION FILE.
   6289	014124					CALL	$LOOKUP
	014124	004737 	007562'			 JSR	PC,$LOOKUP
   6290	014130	103030 				BCC	50$
   6291	014132	122737 	000000G	000526'		CMPB	#IE.NSF,.SYSTA	; IF NO FILE
   6292	014140	001060 				BNE	90$
   6293	014142					PRINT	#TGCNFL		; (NO FILE, OPERATOR !)
	014142	012700 	002456'			 MOV	#TGCNFL,R0
	014146	004737 	027634'			 JSR	PC,$TTMSG
   6294	014152	105237 	000031'		10$:	INCB	.DCSW		; THEN CONFIGURE ALL 4.
   6295	014156	012701 	000065'		20$:	MOV	#.CACHN,R1	; FIX TABLES
   6296	014162	005004 				CLR	R4
   6297	014164	110421 			30$:	MOVB	R4,(R1)+
   6298	014166	005204 				INC	R4
   6299	014170	022704 	000004 			CMP	#4,R4		; FOR FOUR CACHES.
   6300	014174	001373 				BNE	30$
   6301	014176	110437 	000064'			MOVB	R4,.NCACH
   6302	014202					RETURN
	014202	000207 				 RTS	PC
   6303	014204				40$:	CALL	$READS
	014204	004737 	010254'			 JSR	PC,$READS
   6304	014210	103434 				BCS	90$
   6305	014212				50$:	CALL	$READC		; GET A RECORD
	014212	004737 	010216'			 JSR	PC,$READC
   6306	014216	103431 				BCS	90$
   6307	014220	022700 	000002 			CMP	#2,R0		; IF IT IS THE CACHE RECORD,
   6308	014224	001405 				BEQ	60$		; THEN PROCESS IT.
   6309	014226	005700 				TST	R0		; IF NOT END-OF-FILE
   6310	014230	001365 				BNE	40$		; THEN GET NEW RECORD.
   6311	014232					CALL	$CLOSE		; OTHERWISE CLOSE FILE
	014232	004737 	007056'			 JSR	PC,$CLOSE
   6312	014236	000745 				BR	10$		; AND USE ALL CACHES.
   6313	014240				60$:	CALL	$READB		; PICK UP
	014240	004737 	010420'			 JSR	PC,$READB
   6314	014244	103416 				BCS	90$
   6315	014246	110004 				MOVB	R0,R4		; NUMBER OF CACHES
   6316	014250	001410 				BEQ	80$
   6317	014252	010002 				MOV	R0,R2		; AND
   6318	014254	012701 	000065'			MOV	#.CACHN,R1
   6319	014260				70$:	CALL	$READB
	014260	004737 	010420'			 JSR	PC,$READB
   6320	014264	103406 				BCS	90$
KLIGC -- SET CACHE CONFIGURATIO	MACRO M1113  03-APR-86 20:55  PAGE 143-1
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6321	014266	110021 				MOVB	R0,(R1)+	; AND CACHE NUMBERS.
   6322	014270	077205 				SOB	R2,70$
   6323	014272	110437 	000064'		80$:	MOVB	R4,.NCACH	; SET THE NUMBER OF CACHES
   6324	014276					CALLR	$CLOSE		; AND ALL FINISHED.
	014276	000137 	007056'			 JMP	$CLOSE
   6325	014302				90$:	CALL	$PURGE		; ERROR EXIT.
	014302	004737 	010124'			 JSR	PC,$PURGE
   6326	014306	000261 				SEC
   6327	014310					RETURN
	014310	000207 				 RTS	PC
KLIGC -- SET CACHE CONFIGURATIO	MACRO M1113  03-APR-86 20:55  PAGE 144
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6330
   6331						.TITLE	KLIGM -- SET UP MEMORY CONFIGURATION TABLES
   6332	014312					IDENT$	11,04,KLI$$F
						.IDENT	/A11040/
   6333					;
   6334					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6335					; ALL RIGHTS RESERVED.
   6336					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6337					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6338					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6339					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6340					;
   6341					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6342					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6343					; EQUIPMENT CORPORATION.
   6344					;
   6345					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6346					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6347					;
   6348					; VERSION 11-04
   6349					;
   6350					; ALAN D. PECKHAM  12-APR-77
   6351					;
   6352					; MODIFIED BY:
   6353					;
   6354					;	R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION
   6355					;					TCO 4.2204
   6356					;	R. BELANGER	25-JUL-78	INTEGRATE MOS CONFIGURATOR
   6357					;
   6358					; FUNCTION: THIS MODULE SETS UP THE MEMORY CONFIGURATION TABLES TO REFLECT
   6359					;  THE LAST MEMORY CONFIGURATION OR TO USE ALL MEMORY AVAILABLE.
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1113  03-APR-86 20:55  PAGE 145
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6361					;
   6362					; LOCAL DATA
   6363					;
   6364	001256					.PSECT	DATA,D
   6365	001256				DGMFNM:
   6366	001256	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001264	011667
   6367	001266	000000 				.WORD	0		; GET LATEST VERSION.
   6368	001270	   005 	   005 			.BYTE	5,5
   6369	001272	054523 	000000 			.WORD	"SY,0
   6370	002525					.PSECT	TEXT,D
   6371	002525				TGMNFL:
   6372	002525					WARNING	<NO FILE - ALL MEMORY BEING CONFIGURED>
	002525	   045 	   040 	   116 		 .ASCIZ	\% NO FILE - ALL MEMORY BEING CONFIGURED\
	002530	   117 	   040 	   106
	002533	   111 	   114 	   105
	002536	   040 	   055 	   040
	002541	   101 	   114 	   114
	002544	   040 	   115 	   105
	002547	   115 	   117 	   122
	002552	   131 	   040 	   102
	002555	   105 	   111 	   116
	002560	   107 	   040 	   103
	002563	   117 	   116 	   106
	002566	   111 	   107 	   125
	002571	   122 	   105 	   104
	002574	   000
   6373	014312					.PSECT
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1113  03-APR-86 20:55  PAGE 146
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6375						.SBTTL	$GETMM	-- SET UP MEMORY CONFIGURATION TABLES
   6376					;+
   6377					; GET THE LAST CONFIGURATION FROM THE CONFIGURATION FILE. IF THERE IS NO
   6378					; FILE, THEN CONFIGURE FOR ALL MEMORY.
   6379					;
   6380					; OUTPUTS:
   6381					;	.DMSW	- MADE NEGATIVE IF ALL MEMORY IS TO BE CONFIGURED (NO FILE).
   6382					;	.CTLTP	- TABLE OF DESIRED CONTROLLERS
   6383					;	.CFGTB	- TABLE OF CONFIGURATION MASKS
   6384					;	.CFMRV	- FORWARD/REVERSE CONFIGURATION INDICATOR
   6385					;-
   6386
   6387	014312				$GETMM::
   6388	014312	105037 	000046'			CLRB	.MFCT		; INIT COUNTER TO ZERO
   6389	014316	012701 	000040 			MOV	#CTLS,R1	; INIT COUNTER
   6390	014322	012700 	000134'			MOV	#.CFGTB,R0	; TABLE POINTER TO R0
   6391	014326	112761 	177777 	000072'		MOVB	#-1,.CTLTP(R1)	; [4.2204] INIT ".CFMRV" CONTROLLER TYPE TO -1
   6392	014334				10$:
   6393	014334	012720 	100000 			MOV	#BIT15,(R0)+	; INVALIDATE THE CONFIGURATION TABLE
   6394	014340	105061 	000071'			CLRB	.CTLTP-1(R1)	; AND THE CONTROLLER TABLE
   6395	014344	077105 				SOB	R1,10$		; LOOP TILL DONE
   6396	014346	005010 				CLR	(R0)		; [4.2204] INIT TO FORWARD CONFIGURATION
   6397	014350	012700 	001256'			MOV	#DGMFNM,R0	; LOOK FOR CONFIGURATION FILE
   6398	014354					CALL	$LOOKUP
	014354	004737 	007562'			 JSR	PC,$LOOKUP
   6399	014360	103016 				BCC	50$
   6400	014362	122737 	000000G	000526'		CMPB	#IE.NSF,.SYSTA	; IF NO FILE
   6401	014370	001070 				BNE	90$		; OTHER ERROR -- FATAL
   6402	014372					PRINT	#TGMNFL		; (NO FILE, OPERATOR !)
	014372	012700 	002525'			 MOV	#TGMNFL,R0
	014376	004737 	027634'			 JSR	PC,$TTMSG
   6403	014402				20$:
   6404	014402	105337 	000032'			DECB	.DMSW		; THEN USE ALL MEMORY.
   6405	014406				30$:
   6406	014406					RETURN			; TO CALLER
	014406	000207 				 RTS	PC
   6407					;
   6408					; HERE TO SKIP PRECEEDING NON-CONTROLLER RECORDS
   6409					;
   6410	014410				40$:
   6411	014410					CALL	$READS
	014410	004737 	010254'			 JSR	PC,$READS
   6412	014414	103456 				BCS	90$
   6413	014416				50$:
   6414	014416					CALL	$READC		; GET A RECORD.
	014416	004737 	010216'			 JSR	PC,$READC
   6415	014422	103453 				BCS	90$
   6416	014424	022700 	000001 			CMP	#1,R0		; IF IT A CONTROLLER RECORD
   6417	014430	001404 				BEQ	60$		; THEN PROCESS, OTHERWISE
   6418	014432	002766 				BLT	40$		; IF NOT END OF FILE, GET ANOTHER.
   6419	014434					CALL	$CLOSE		; IF NO CONTROLLER RECORDS
	014434	004737 	007056'			 JSR	PC,$CLOSE
   6420	014440	000760 				BR	20$		; THEN USE ALL MEMORY.
   6421						;
   6422					;
   6423					; HERE TO READ AND PROCESS A CONTROLLER RECORD
   6424					;
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1113  03-APR-86 20:55  PAGE 146-1
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6425	014442				60$:
   6426	014442					CALL	$READB		; GET A CONTROLLER INDEX
	014442	004737 	010420'			 JSR	PC,$READB
   6427	014446	103441 				BCS	90$
   6428	014450	010001 				MOV	R0,R1		; COPY TO R1
   6429	014452					CALL	$READB		; GET CONTROLLER TYPE.
	014452	004737 	010420'			 JSR	PC,$READB
   6430	014456	103435 				BCS	90$
   6431	014460	110061 	000072'			MOVB	R0,.CTLTP(R1)	; SET IN TABLE
   6432	014464					CALL	$READW		; GET CONFIGURATION MASK
	014464	004737 	010324'			 JSR	PC,$READW
   6433	014470	103430 				BCS	90$
   6434	014472	006301 				ASL	R1		; WORD INDEX
   6435	014474	010061 	000134'			MOV	R0,.CFGTB(R1)	; SET THAT IN THE TABLE
   6436	014500	002413 				BLT	80$		; GO ON IF NOT DESIRED
   6437	014502	006201 				ASR	R1		; BACK TO BYTE INDEX
   6438	014504	122761 	000005 	000072'		CMPB	#5,.CTLTP(R1)	; IS THIS ONE AN MF20??
   6439	014512	001006 				BNE	80$		; NO -- GO ON
   6440	014514	105237 	000046'			INCB	.MFCT		; YES -- MARK THAT WE EXPECT AT LEAST THIS ONE
   6441	014520	000403 				BR	80$		; AND TRY FOR NEXT RECORD
   6442						;
   6443					;
   6444					; HERE TO SKIP TRAILING NON-CONTROLLER RECORDS
   6445					;
   6446	014522				70$:
   6447	014522					CALL	$READS		; BYPASS RECORD.
	014522	004737 	010254'			 JSR	PC,$READS
   6448	014526	103411 				BCS	90$
   6449	014530				80$:
   6450	014530					CALL	$READC		; GET ANOTHER RECORD
	014530	004737 	010216'			 JSR	PC,$READC
   6451	014534	103406 				BCS	90$		; AND
   6452	014536	022700 	000001 			CMP	#1,R0		; IF A CONTROLLER RECORD
   6453	014542	001737 				BEQ	60$		; THEN PROCESS, OTHERWISE
   6454	014544	002766 				BLT	70$		; REJECT RECORDS UNTIL EOF.
   6455	014546					CALLR	$CLOSE		; CLOSE FILE AND RETURN.
	014546	000137 	007056'			 JMP	$CLOSE
   6456						;
   6457	014552				90$:
   6458	014552					CALL	$PURGE
	014552	004737 	010124'			 JSR	PC,$PURGE
   6459	014556	000261 				SEC			; SO RETURN WITH ERROR.
   6460	014560					RETURN
	014560	000207 				 RTS	PC
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1113  03-APR-86 20:55  PAGE 147
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6462
   6463						.TITLE	KLIGP -- GET PAGE TABLE SELECTION VIA CONFIGURATION FILE
   6464	014562					IDENT$	1,00
						.IDENT	/001000/
   6465					;
   6466					; COPYRIGHT (C) 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6467					; ALL RIGHTS RESERVED.
   6468					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6469					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6470					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6471					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6472					;
   6473					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6474					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6475					; EQUIPMENT CORPORATION.
   6476					;
   6477					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6478					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6479					;
   6480					; VERSION 1-00
   6481					;
   6482					; M. RUDENKO	17-MAY-84
   6483					;
   6484					; MODIFIED BY:
   6485					;
   6486					;
   6487					; FUNCTION: THIS MODULE SELECTS AMOUNG PAGE TABLE ZERO, ONE OR BOTH,
   6488					; IN ACCORDANCE WITH THE CONTENTS OF THE CONFIGURATION FILE.  ABSENCE
   6489					; OF A PAGE TABLE RECORD IMPLIES THAT THE DEFAULT OF BOTH PAGES BE
   6490					; USED.
KLIGP -- GET PAGE TABLE SELECTI	MACRO M1113  03-APR-86 20:55  PAGE 148
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6492					;
   6493					; LOCAL DATA
   6494					;
   6495	001276					.PSECT	DATA,D
   6496	001276				DGPFNM:
   6497	001276	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001304	011667
   6498	001306	000000 				.WORD	0		; GET LATEST VERSION.
   6499	001310	   005 	   005 			.BYTE	5,5
   6500	001312	054523 	000000 			.WORD	"SY,0
   6501	002575					.PSECT	TEXT,D
   6502	002575				TGPNFL:
   6503	002575					WARNING	<NO FILE>
	002575	   045 	   040 	   116 		 .ASCIZ	\% NO FILE\
	002600	   117 	   040 	   106
	002603	   111 	   114 	   105
	002606	   000
   6504	014562					.PSECT
KLIGP -- GET PAGE TABLE SELECTI	MACRO M1113  03-APR-86 20:55  PAGE 149
$GETPA	-- GET PAGE TABLE SELECTION

   6506						.SBTTL	$GETPA	-- GET PAGE TABLE SELECTION
   6507					;+
   6508					; GET THE LAST SELECTION FROM THE CONFIGURATION FILE. IF THERE IS NO
   6509					; FILE, THEN SELECT BOTH PAGES ZERO AND ONE.
   6510					;
   6511					; OUTPUT:
   6512					;	R1  --	 0 = PAGE TABLE ZERO; 1 = PAGE TABLE ONE; -1 = BOTH
   6513					;-
   6514
   6515	014562				$GETPA::
   6516	014562	012700 	001276'			MOV	#DGPFNM,R0	; LOOK FOR CONFIGURATION FILE
   6517	014566					CALL	$LOOKUP
	014566	004737 	007562'			 JSR	PC,$LOOKUP
   6518	014572	103020 				BCC	50$
   6519	014574	122737 	000000G	000526'		CMPB	#IE.NSF,.SYSTA	; IF NO FILE
   6520	014602	001035 				BNE	90$		; OTHER ERROR -- FATAL
   6521	014604					PRINT	#TGPNFL		; (NO FILE, OPERATOR !)
	014604	012700 	002575'			 MOV	#TGPNFL,R0
	014610	004737 	027634'			 JSR	PC,$TTMSG
   6522	014614				20$:
   6523	014614	012701 	177777 			MOV	#-1,R1		; INDICATE THAT BOTH PAGES ARE TO BE USED
   6524	014620	105237 	000034'			INCB	.PTSW		; FLAG TO WRITE CONFIG FILE LATER
   6525	014624				30$:
   6526	014624					RETURN			; TO CALLER
	014624	000207 				 RTS	PC
   6527					;
   6528					; HERE TO SKIP PRECEEDING NON-PAGE TABLE RECORDS
   6529					;
   6530	014626				40$:
   6531	014626					CALL	$READS
	014626	004737 	010254'			 JSR	PC,$READS
   6532	014632	103421 				BCS	90$
   6533	014634				50$:
   6534	014634					CALL	$READC		; GET A RECORD.
	014634	004737 	010216'			 JSR	PC,$READC
   6535	014640	103416 				BCS	90$
   6536	014642	022700 	000005 			CMP	#5,R0		; IF IT IS A PAGE TABLE RECORD ...
   6537	014646	001405 				BEQ	60$		; THEN PROCESS, OTHERWISE
   6538	014650	005700 				TST	R0		; CHECK FOR END OF FILE
   6539	014652	003365 				BGT	40$		; NO -- GET NEXT RECORD
   6540	014654					CALL	$CLOSE		; IF NO PAGE TABLE RECORDS ...
	014654	004737 	007056'			 JSR	PC,$CLOSE
   6541	014660	000755 				BR	20$		; THEN USE BOTH PAGES
   6542						;
   6543					;
   6544					; HERE TO READ AND PROCESS A PAGE TABLE RECORD
   6545					;
   6546	014662				60$:
   6547	014662					CALL	$READW		; GET PAGE TABLE SELECTION DESIRED
	014662	004737 	010324'			 JSR	PC,$READW
   6548	014666	103403 				BCS	90$
   6549	014670	010001 				MOV	R0,R1		; COPY TO R1
   6550	014672					CALLR	$CLOSE		; CLOSE FILE AND RETURN.
	014672	000137 	007056'			 JMP	$CLOSE
   6551	014676				90$:
   6552	014676					CALL	$PURGE
	014676	004737 	010124'			 JSR	PC,$PURGE
KLIGP -- GET PAGE TABLE SELECTI	MACRO M1113  03-APR-86 20:55  PAGE 149-1
$GETPA	-- GET PAGE TABLE SELECTION

   6553	014702	000261 				SEC			; SO RETURN WITH ERROR.
   6554	014704					RETURN
	014704	000207 				 RTS	PC
KLIGP -- GET PAGE TABLE SELECTI	MACRO M1113  03-APR-86 20:55  PAGE 150
$GETPA	-- GET PAGE TABLE SELECTION

   6556
   6557
   6558
   6559
   6560
   6561					.TITLE	KLIGT -- READ MF20 TIMING FILE DATA
   6562	014706					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   6563					;
   6564					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   6565					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6566					;			ALL RIGHTS RESERVED.
   6567					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6568					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6569					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6570					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6571					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6572					;
   6573					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6574					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6575					;       CORPORATION.
   6576					;
   6577					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6578					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6579					;
   6580					;
   6581					;	MODULE: MF20 TIMING FILE INPUT
   6582					;
   6583					;	VERSION: 10-00
   6584					;
   6585					;	DATE: 22-MAY-78
   6586					;
   6587					;	AUTHOR: R. BELANGER
   6588					;
   6589					;	MODIFICATIONS:
   6590					;
   6591					;	NO.	DATE		PROGRAMMER	REASON
   6592					;	---	----		----------	------
   6593
   6594	002607					.PSECT	TEXT,D
   6595	002607				TGTCKE:
   6596	002607					ERROR	<MF20 TIMING FILE CHECKSUM ERROR>
	002607	   077 	   040 	   115 		 .ASCIZ	\? MF20 TIMING FILE CHECKSUM ERROR\
	002612	   106 	   062 	   060
	002615	   040 	   124 	   111
	002620	   115 	   111 	   116
	002623	   107 	   040 	   106
	002626	   111 	   114 	   105
	002631	   040 	   103 	   110
	002634	   105 	   103 	   113
	002637	   123 	   125 	   115
	002642	   040 	   105 	   122
	002645	   122 	   117 	   122
	002650	   000
   6597	002651				TGTNFL:
   6598	002651					ERROR	<NO MF20 TIMING FILE>
	002651	   077 	   040 	   116 		 .ASCIZ	\? NO MF20 TIMING FILE\
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 150-1
$GETPA	-- GET PAGE TABLE SELECTION

	002654	   117 	   040 	   115
	002657	   106 	   062 	   060
	002662	   040 	   124 	   111
	002665	   115 	   111 	   116
	002670	   107 	   040 	   106
	002673	   111 	   114 	   105
	002676	   000
   6599	002677				TGTIFF:
   6600	002677					ERROR	<ILLEGAL MF20 TIMING FILE FORMAT>
	002677	   077 	   040 	   111 		 .ASCIZ	\? ILLEGAL MF20 TIMING FILE FORMAT\
	002702	   114 	   114 	   105
	002705	   107 	   101 	   114
	002710	   040 	   115 	   106
	002713	   062 	   060 	   040
	002716	   124 	   111 	   115
	002721	   111 	   116 	   107
	002724	   040 	   106 	   111
	002727	   114 	   105 	   040
	002732	   106 	   117 	   122
	002735	   115 	   101 	   124
	002740	   000
   6601	002741				TGTRFE:
   6602	002741					ERROR	<MF20 TIMING FILE READ ERROR>
	002741	   077 	   040 	   115 		 .ASCIZ	\? MF20 TIMING FILE READ ERROR\
	002744	   106 	   062 	   060
	002747	   040 	   124 	   111
	002752	   115 	   111 	   116
	002755	   107 	   040 	   106
	002760	   111 	   114 	   105
	002763	   040 	   122 	   105
	002766	   101 	   104 	   040
	002771	   105 	   122 	   122
	002774	   117 	   122 	   000
   6603	014706					.PSECT
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 151
$GETTF -- READ MF20 TIMING FILE DATA

   6605					.SBTTL	$GETTF -- READ MF20 TIMING FILE DATA
   6606
   6607					;+
   6608					; $GETTF -- SUBROUTINE TO READ AND DEASCIIZE AN MF20 TIMING RAM DATA FILE
   6609					;
   6610					; INPUTS:
   6611					;
   6612					;	R0 -- POINTS TO CALLER'S BUFFER
   6613					;	TMFLNM -- TIMING FILE FILENAME
   6614					;
   6615					; OUTPUTS:
   6616					;
   6617					;	R0 - R5 UNCHANGED
   6618					;	DATA IS IN CALLER'S BUFFER
   6619					;	CC-C SET ON ERROR; CLEAR ON SUCCESS
   6620					;-
   6621
   6622	014706				$GETTF::
   6623	014706				RDATIM::
   6624	014706					CALL	R5,$RSAVE	; SAVE REGISTERS
	014706	004537 	024204'			 JSR	R5,$RSAVE
   6625	014712	012705 	000000G			MOV	#TMFLNM,R5	; POINT TO THE ASCII FILENAME
   6626	014716	010004 				MOV	R0,R4		; DESTINATION POINTER TO R4
   6627	014720	012700 	000476'			MOV	#.USRFN,R0	; POINT TO USER FILENAME BLOCK
   6628	014724					PUSH	R0		; SAVE R0 FOR LATER
	014724	010046 				 MOV	R0,-(SP)
   6629	014726					CALL	$TRF2B		; LOAD THE FILENAME BLOCK
	014726	004737 	025146'			 JSR	PC,$TRF2B
   6630	014732					POP	R0		; RESTORE FILNAME BLOCK POINTER
	014732	012600 				 MOV	(SP)+,R0
   6631	014734					CALL	$LOOKUP		; LOOKUP THE FILE
	014734	004737 	007562'			 JSR	PC,$LOOKUP
   6632	014740	103013 				BCC	20$		; FOUND THE FILE OK
   6633	014742	022737 	000000G	000526'		CMP	#IE.NSF,.SYSTA	; DOES THE FILE EXIST??
   6634	014750	001005 				BNE	10$		; YES -- CALL ERROR ROUTINE
   6635	014752					PRINT	#TGTNFL		; NO -- SAY SO AND QUIT
	014752	012700 	002651'			 MOV	#TGTNFL,R0
	014756	004737 	027634'			 JSR	PC,$TTMSG
   6636	014762	000467 				BR	RTFXIT		; EXIT
   6637						;
   6638	014764				10$:
   6639	014764					CALLR	$IOERR		; REPORT THE ERROR AND QUIT
	014764	000137 	007346'			 JMP	$IOERR
   6640						;
   6641					;
   6642					; MAIN CONVERSION LOOP
   6643					;
   6644					; THIS LOOP CONVERTS THE DATA IN AN ASCIIZED "A11" FORMAT FILE TO BINARY.
   6645					;
   6646					; RECORDS WHICH BEGIN WITH A SEMI-COLON (COMMENT) ARE SIMPLY SKIPPED OVER
   6647					;
   6648					; RECORDS WHICH BEGIN WITH AN "E<SPACE>" ARE CONVERTED TO BINARY AND RETURNED TO
   6649					; THE CALLER
   6650					;
   6651					; ANY OTHER FORMAT CONSTITUTES A FATAL ERROR
   6652					;
   6653					; REGISTER SUMMARY:
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 151-1
$GETTF -- READ MF20 TIMING FILE DATA

   6654					;
   6655					;	R0 -- LAST CHARACTER READ FROM FILE
   6656					;	R1 -- LAST WORD CONVERTED FROM FILE
   6657					;	R2 -- RECORD WORD COUNT
   6658					;	R4 -- TRANSFER POINTER
   6659					;	R5 -- CHECKSUM
   6660					;
   6661	014770				20$:
   6662	014770					CALL	$READC		; READ THE RECORD BYTE COUNT
	014770	004737 	010216'			 JSR	PC,$READC
   6663									; AND RETURN FIRST WORD IN R0
   6664	014774	103454 				BCS	RTFERR		; ERROR IF CC-C SET
   6665	014776	122700 	000073 			CMPB	#';,R0		; IS IT A COMMENT LINE??
   6666	015002	001410 				BEQ	40$		; YES -- GO EAT IT UP
   6667	015004	022700 	020105 			CMP	#"E ,R0		; NO -- IS IT A DATA LINE??
   6668	015010	001411 				BEQ	50$		; YES -- GO CONVERT IT
   6669	015012				30$:
   6670	015012					PRINT	#TGTIFF		; NO -- COMPLAIN
	015012	012700 	002677'			 MOV	#TGTIFF,R0
	015016	004737 	027634'			 JSR	PC,$TTMSG
   6671	015022	000445 				BR	RTFERX		; AND EXIT
   6672						;
   6673					;
   6674					; HERE TO READ AND DISCARD A COMMENT LINE
   6675					;
   6676	015024				40$:
   6677	015024					CALL	$READS		; SKIP OVER THIS RECORD
	015024	004737 	010254'			 JSR	PC,$READS
   6678	015030	103436 				BCS	RTFERR		; ERROR IF CC-C IS SET
   6679	015032	000756 				BR	20$		; GO START THE NEXT RECORD
   6680						;
   6681					;
   6682					; HERE TO READ AND CONVERT A DATA LINE
   6683					;
   6684	015034				50$:
   6685	015034	005005 				CLR	R5		; RESET THE CHECKSUM
   6686					;
   6687					; READ THE RECORD DATA WORD COUNT
   6688					; IF .EQ. 0, THEN WE ARE AT THE LOGICAL END-OF-FILE
   6689					;
   6690	015036					CALL	CNVWRD		; CONVERT THE WORD COUNT
	015036	004737 	015154'			 JSR	PC,CNVWRD
   6691	015042	103437 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6692	015044	010102 				MOV	R1,R2		; WORD COUNT TO R2
   6693	015046	001425 				BEQ	70$		; LOGICAL END-OF-FILE IF .EQ. 0
   6694					;
   6695					; CONVERT AND DISCARD THE ADDRESS POINTER (FIXED-ADDRESS FILES ONLY)
   6696					;
   6697	015050					CALL	CNVWRD		; GET OVER THE ADDRESS WORD
	015050	004737 	015154'			 JSR	PC,CNVWRD
   6698	015054	103432 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6699					;
   6700					; THIS LOOP CONVERTS ALL WORDS IN ONE RECORD
   6701					;
   6702	015056				60$:
   6703	015056					CALL	CNVWRD		; CONVERT THE DATA
	015056	004737 	015154'			 JSR	PC,CNVWRD
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 151-2
$GETTF -- READ MF20 TIMING FILE DATA

   6704	015062	103427 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6705	015064	122700 	000054 			CMPB	#',,R0		; DELIMITER OK??
   6706	015070	001350 				BNE	30$		; NO -- COMPLAIN AND DIE
   6707	015072	010124 				MOV	R1,(R4)+	; YES -- RETURN CONVERTED WORD TO CALLER
   6708	015074	077210 				SOB	R2,60$		; GET ALL WORDS FROM THIS RECORD
   6709					;
   6710					; NOW VERIFY CHECKSUM
   6711					;
   6712	015076					CALL	CNVCHK		; READ THE CHECKSUM
	015076	004737 	015146'			 JSR	PC,CNVCHK
   6713	015102	103417 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6714	015104	005705 				TST	R5		; IS THE CHECKSUM OK??
   6715	015106	001730 				BEQ	20$		; YES -- GO ON TO THE NEXT RECORD
   6716	015110					PRINT	#TGTCKE		; NO -- COMPLAIN
	015110	012700 	002607'			 MOV	#TGTCKE,R0
	015114	004737 	027634'			 JSR	PC,$TTMSG
   6717	015120	000406 				BR	RTFERX		; AND EXIT
   6718						;
   6719					;
   6720					; HERE TO CLOSE THE FILE AND RETURN SUCCESS
   6721					;
   6722	015122				70$:
   6723	015122					CALLR	$CLOSE		; CLOSE THE FILE AND EXIT
	015122	000137 	007056'			 JMP	$CLOSE
   6724						;
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 152
$GETTF -- READ MF20 TIMING FILE DATA

   6726					;
   6727					; READ ERROR ROUTINE
   6728					;
   6729	015126				RTFERR:
   6730	015126					PRINT	#TGTRFE		; ERROR MESSAGE
	015126	012700 	002741'			 MOV	#TGTRFE,R0
	015132	004737 	027634'			 JSR	PC,$TTMSG
   6731					;
   6732					; CLOSE FILE FOR ERROR RETURN
   6733					;
   6734	015136				RTFERX:
   6735	015136					CALL	$CLOSE		; CLOSE THE FILE
	015136	004737 	007056'			 JSR	PC,$CLOSE
   6736	015142				RTFXIT:
   6737	015142	000261 				SEC			; SET THE ERROR FLAG
   6738	015144					RETURN			; TO CALLER
	015144	000207 				 RTS	PC
   6739					;
   6740					; MAIN CONVERSION SUBROUTINE
   6741					;
   6742					; UP TO THREE BYTES ARE READ FROM THE FILE AND CONVERTED TO BINARY
   6743					; THE RECORD CHECKSUM IS ALSO ACCUMULATED BY THIS ROUTINE
   6744					;
   6745					; INPUTS:
   6746					;
   6747					;	NONE
   6748					;
   6749					; OUTPUTS:
   6750					;
   6751					;	R0 -- LAST CHARACTER FROM FILE
   6752					;	R1 -- CONVERTED WORD
   6753					;	R5 -- UPDATED CHECKSUM
   6754					;
   6755						.ENABL	LSB
   6756	015146				CNVCHK:
   6757	015146	013703 	000534'			MOV	.SYIRC,R3	; SYNCHRONIZE THE BYTE COUNTS
   6758	015152	000402 				BR	10$		; COMPUTE THE FINAL CHECKSUM
   6759						;
   6760	015154				CNVWRD:
   6761	015154	012703 	000004 			MOV	#4,R3		; MAXIMUM FIELD WIDTH IS 4 BYTES
   6762	015160				10$:
   6763	015160	005001 				CLR	R1		; INIT RETURNED WORD
   6764	015162				20$:
   6765	015162					CALL	$READB		; READ A BYTE FROM THE FILE
	015162	004737 	010420'			 JSR	PC,$READB
   6766	015166	103757 				BCS	RTFERR		; ERROR IF CC-C IS SET
   6767	015170	122700 	000054 			CMPB	#',,R0		; NO -- END-OF-FIELD??
   6768	015174	001413 				BEQ	30$		; YES -- EXIT
   6769	015176					PUSH	R0		; NO -- CONVERT IT
	015176	010046 				 MOV	R0,-(SP)
   6770	015200	042716 	177700 			BIC	#^C77,(SP)	; SO
   6771	015204	006301 				ASL	R1		; POSITION PREVIOUS BYTE
   6772	015206	006301 				ASL	R1		; SO
   6773	015210	006301 				ASL	R1		; ...
   6774	015212	006301 				ASL	R1		; ...
   6775	015214	006301 				ASL	R1		; ...
   6776	015216	006301 				ASL	R1		; DONE
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 152-1
$GETTF -- READ MF20 TIMING FILE DATA

   6777	015220	052601 				BIS	(SP)+,R1	; SET THE NEW BYTE IN THE WORD
   6778	015222	077321 				SOB	R3,20$		; AND TRY AGAIN
   6779	015224				30$:
   6780	015224	060105 				ADD	R1,R5		; UPDATE CHECKSUM
   6781	015226	000241 				CLC			; INSURE CC-C IS CLEAR
   6782	015230					RETURN			; TO CALLER
	015230	000207 				 RTS	PC
   6783
   6784						.DSABL	LSB
KLIGT -- READ MF20 TIMING FILE 	MACRO M1113  03-APR-86 20:55  PAGE 153
$GETTF -- READ MF20 TIMING FILE DATA

   6786
   6787
   6788						.TITLE	KLIMR -- KL RESET ROUTINES
   6789	015232					IDENT$	5,0
						.IDENT	/005000/
   6790					;
   6791					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6792					; ALL RIGHTS RESERVED.
   6793					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6794					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6795					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6796					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6797					;
   6798					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6799					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6800					; EQUIPMENT CORPORATION.
   6801					;
   6802					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6803					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6804					;
   6805					; VERSION 05-00
   6806					;
   6807					; ALAN D. PECKHAM  29-MAR-77
   6808					;
   6809					; MODIFIED BY:
   6810					;
   6811					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO DO A FULL MASTER RESET
   6812					;  AND A PARTIAL RESET FOR RAM ADDRESS CLEARING.
   6813					;
KLIMR -- KL RESET ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 154
$GETTF -- READ MF20 TIMING FILE DATA

   6815					;
   6816					; LOCAL DATA
   6817					;
   6818	001316					.PSECT	DATA,D
   6819	001316	035000 	001446'			.WORD	72*400,DMRKW2	; SELECT KW20/22 FOR MOS SYSTEMS
   6820	001322	022000 	000000'		DMRMRT:	.WORD	.LDSEL/2,.ZERO	; CLOCK LOAD FUNC #44
   6821	001326	100000 				.WORD	.STPCL/2+BIT15	; STOP THE CLOCK
   6822	001330	103400 				.WORD	.SETMR/2+BIT15	; SET RESET
   6823	001332	023000 	000000'			.WORD	.LDCK1/2,.ZERO	; LOAD CLK PARITY CHECK & FS CHECK
   6824	001336	023400 	000000'			.WORD	.LDCK2/2,.ZERO	; LOAD CLK MBOX CYCLE DISABLES,
   6825									; PARITY CHECK, ERROR STOP ENABLE
   6826	001342	021000 	000000'			.WORD	.LDBRR/2,.ZERO	; LOAD BURST COUNTER (8,4,2,1)
   6827	001346	021400 	000000'			.WORD	.LDBRL/2,.ZERO	; LOAD BURST COUNTER (128,64,32,16)
   6828	001352	022400 	000000'			.WORD	.LDDIS/2,.ZERO	; LOAD EBOX CLOCK DISABLE
   6829	001356	100400 				.WORD	.STRCL/2+BIT15	; START THE CLOCK
   6830	001360	034000 	000000'			.WORD	.INICL/2,.ZERO	; INIT CHANNELS
   6831	001364	021000 	000000'			.WORD	.LDBRR/2,.ZERO	; LOAD BURST COUNTER (8,4,2,1)
   6832	001370	000000 				.WORD	0
   6833	001372	102000 				.WORD	.CECLK/2+BIT15	; CONDITIONAL SINGLE STEP
   6834	001374	103000 				.WORD	.CLRMR/2+BIT15	; CLEAR RESET
   6835	001376	033400 	000000'			.WORD	.EIOJA/2,.ZERO	; ENABLE KL STL DECODING OF CODES & AC'S
   6836	001402	037000 	000000'			.WORD	.MEMRS/2,.ZERO	; SET KL10 MEM RESET FLOP
   6837	001406	034400 	001414'			.WORD	.WRMBX/2,DMRMMR	; WRITE M-BOX
   6838	001412	000000 				.WORD	0
   6839	001414				DMRMMR:	WD36$	0 12		; FOR MEMORY RESET
	001414	   012 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001417	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6840						.EVEN
   6841
   6842	001422	007000 			DMRSRT:	.WORD	.SETMR		; SET RESET.
   6843	001424	001000 				.WORD	.STRCL		; START THE CLOCK.
   6844	001426	000000 				.WORD	.STPCL		; STOP THE CLOCK.
   6845	001430	004000 				.WORD	.CECLK		; CONDITIONAL SINGLE STEP.
   6846	001432	006000 				.WORD	.CLRMR		; CLEAR RESET.
   6847		000005 			DMRSRL	=	.-DMRSRT/2	; LENGTH OF TABLE.
   6848	001434				DMRBF:	WD36$	0 0		; GENERAL BIT BUCKET.
	001434	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001437	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6849	001441				DMRMOS:	WD36$	0 10		; CLOCK PARAMETERS FOR MOS
	001441	   010 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001444	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6850	001446				DMRKW2:	WD36$	0 3		; KW-20/22 SELECT CODE
	001446	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001451	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6851						.EVEN
   6852	002777					.PSECT	TEXT,D
   6853	002777				TMRMFL:	ERROR	<MASTER RESET FAILED>
	002777	   077 	   040 	   115 		 .ASCIZ	\? MASTER RESET FAILED\
	003002	   101 	   123 	   124
	003005	   105 	   122 	   040
	003010	   122 	   105 	   123
	003013	   105 	   124 	   040
	003016	   106 	   101 	   111
	003021	   114 	   105 	   104
	003024	   000
   6854	015232					.PSECT
KLIMR -- KL RESET ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 155
$KLMR	-- DO A MASTER RESET ON THE KL

   6856						.SBTTL	$KLMR	-- DO A MASTER RESET ON THE KL
   6857					;+
   6858					; RESET THE KL PROCESSOR.
   6859					;
   6860					; NO INPUTS
   6861					;
   6862					; OUTPUTS:
   6863					;	THE CARRY IS SET ON ANY ERROR AND AN ERROR MESSAGE IS DISPLAYED.
   6864					;-
   6865
   6866	015232	004537 	024204'		$KLMR::	JSR	R5,$RSAVE
   6867	015236					TRACK	MR
	015236	004037 	015250'			 JSR	R0,64$
	015242	051115 				 .WORD	"MR
	015244	000000 				 .WORD
	015246	000000 				 .WORD
	015250	004737 	024252'		64$:	 JSR	PC,$TRACK
	015254	012600 				 MOV	(SP)+,R0
   6868	015256	012700 	010000 			MOV	#.CLRUN,R0
   6869	015262					CALL	$DFXC		; CLEAR RUN
	015262	004737 	013760'			 JSR	PC,$DFXC
   6870	015266	103452 				BCS	80$		; TIMEOUT ERROR
   6871	015270	012737 	000100 	000302'		MOV	#DRESET,.DTEDT	; RESET BIT TO .DTEDT
   6872	015276					CALL	$DTRW2		; WRITE DTE-20 DIAG 2
	015276	004737 	024122'			 JSR	PC,$DTRW2
   6873	015302	103444 				BCS	80$		; ERROR
   6874	015304	012737 	053101 	000302'		MOV	#DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,.DTEDT
   6875									; CLEAR DTE-20 STATUS
   6876	015312					CALL	$DTRWS		; WRITE IT
	015312	004737 	024132'			 JSR	PC,$DTRWS
   6877	015316	103436 				BCS	80$
   6878	015320	012703 	001322'			MOV	#DMRMRT,R3	; SET UP TABLE AND
   6879	015324	105737 	000045'			TSTB	.MFSW		; SEE IF A MOS SYSTEM
   6880	015330	003401 				BLE	5$		; NO -- GO ON
   6881	015332	024343 				CMP	-(R3),-(R3)	; YES -- BE SURE TO SELECT KW20/22
   6882	015334				5$:
   6883	015334					CALL	LMRDFN		; DO FIRST SET OF FUNCTIONS.
	015334	004737 	015430'			 JSR	PC,LMRDFN
   6884	015340	103425 				BCS	80$
   6885	015342	012702 	000003 			MOV	#3,R2		; SET UP MAX LOOP COUNT
   6886	015346	012701 	001434'			MOV	#DMRBF,R1	; AND DIAGNOSTIC READ BUFFER.
   6887	015352	012700 	162000 		10$:	MOV	#<162*1000>,R0	; LOOK
   6888	015356					CALL	$DFRD		; FOR
	015356	004737 	013444'			 JSR	PC,$DFRD
   6889	015362	103414 				BCS	80$
   6890	015364	132711 	000010 			BITB	#10,(R1)	; "A CHANGE COMING A L"
   6891	015370	001406 				BEQ	20$
   6892	015372	012700 	002000 			MOV	#.SSCLK,R0	; SINGLE STEP THE MBOX
   6893	015376					CALL	$DFXC
	015376	004737 	013760'			 JSR	PC,$DFXC
   6894	015402	103404 				BCS	80$
   6895	015404	077216 				SOB	R2,10$		; ONLY 3 TIMES MAX.
   6896	015406				20$:	CALL	LMRDFN		; NOW FINISH THE JOB.
	015406	004737 	015430'			 JSR	PC,LMRDFN
   6897	015412	103005 				BCC	90$
   6898	015414				80$:	PRINT	#TMRMFL		; PRINT ERROR IF NEED BE.
	015414	012700 	002777'			 MOV	#TMRMFL,R0
KLIMR -- KL RESET ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 155-1
$KLMR	-- DO A MASTER RESET ON THE KL

	015420	004737 	027634'			 JSR	PC,$TTMSG
   6899	015424	000261 				SEC
   6900	015426				90$:	RETURN
	015426	000207 				 RTS	PC
   6901
   6902	015430	012300 			LMRDFN:	MOV	(R3)+,R0	; FUNCTION TO BE PERFORMED
   6903	015432	006300 			10$:	ASL	R0		; GET ITS TYPE
   6904	015434	103004 				BCC	20$		; A WRITE OR
   6905	015436					CALL	$DFXC		; EXECUTE FUNCTION.
	015436	004737 	013760'			 JSR	PC,$DFXC
   6906	015442	103015 				BCC	30$		; SUCCESS
   6907	015444	000416 				BR	40$		; OR FAILURE.
   6908	015446	012301 			20$:	MOV	(R3)+,R1
   6909	015450	022700 	044000 			CMP	#.LDSEL,R0	; SET CLOCK PARAMETERS??
   6910	015454	001005 				BNE	25$		; NO -- GO ON
   6911	015456	105737 	000045'			TSTB	.MFSW		; YES -- MOS IN SYSTEM??
   6912	015462	003402 				BLE	25$		; NO -- GO ON
   6913	015464	012701 	001441'			MOV	#DMRMOS,R1	; YES -- POINT TO MOS DEFAULT
   6914	015470				25$:
   6915	015470					CALL	$DFWR
	015470	004737 	013556'			 JSR	PC,$DFWR
   6916	015474	103402 				BCS	40$
   6917	015476	012300 			30$:	MOV	(R3)+,R0	; IF MORE FUNCTIONS
   6918	015500	001354 				BNE	10$		; THEN CONTINUE.
   6919	015502				40$:	RETURN
	015502	000207 				 RTS	PC
   6920
   6921						.SBTTL	$KLSR	-- SOFT RESET FOR RAM LOADERS
   6922
   6923	015504				$KLSR::	PUSH	<R2,R1,R0>
	015504	010246 				 MOV	R2,-(SP)
	015506	010146 				 MOV	R1,-(SP)
	015510	010046 				 MOV	R0,-(SP)
   6924	015512					TRACK	SR
	015512	004037 	015524'			 JSR	R0,64$
	015516	051123 				 .WORD	"SR
	015520	000000 				 .WORD
	015522	000000 				 .WORD
	015524	004737 	024252'		64$:	 JSR	PC,$TRACK
	015530	012600 				 MOV	(SP)+,R0
   6925	015532	012702 	000005 			MOV	#DMRSRL,R2
   6926	015536	012701 	001422'			MOV	#DMRSRT,R1
   6927	015542	012100 			1$:	MOV	(R1)+,R0
   6928	015544					CALL	$DFXC
	015544	004737 	013760'			 JSR	PC,$DFXC
   6929	015550	103401 				BCS	9$
   6930	015552	077205 				SOB	R2,1$
   6931	015554				9$:	POP	<R0,R1,R2>
	015554	012600 				 MOV	(SP)+,R0
	015556	012601 				 MOV	(SP)+,R1
	015560	012602 				 MOV	(SP)+,R2
   6932	015562					RETURN
	015562	000207 				 RTS	PC
KLIMR -- KL RESET ROUTINES	MACRO M1113  03-APR-86 20:55  PAGE 156
$KLSR	-- SOFT RESET FOR RAM LOADERS

   6934
   6935
   6936						.TITLE	KLINI -- PROGRAM INITIALIZATION
   6937	015564					IDENT$	12,06,KLI$$F
						.IDENT	/A12060/
   6938					;
   6939					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6940					; ALL RIGHTS RESERVED.
   6941					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6942					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6943					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6944					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6945					;
   6946					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6947					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6948					; EQUIPMENT CORPORATION.
   6949					;
   6950					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6951					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6952					;
   6953					; VERSION 12-06
   6954					;
   6955					; ALAN D. PECKHAM  14-APR-77
   6956					;
   6957					; MODIFIED BY:
   6958					;
   6959					; R. BELANGER	16-JUL-79	ADD HARDWARE ENVIRONMENT REPORTING
   6960					;				TCO 4.2333
   6961					; R. BELANGER	06-DEC-78	MODIFY KEEP-ALIVE-CEASE HANDLING
   6962					;				TCO 4.2107
   6963					;
   6964					; FUNCTION: THIS MODULE ASSIGNS NEEDED I/O DEVICES, LOCATES THE SYSTEM
   6965					;  DIRECTORY, AND SETS DATA TO INDICATE INTERNAL
   6966					;  REQUESTS AND KL CONDITIONS.
   6967					;
   6968					; LOCAL MACROS
   6969					;
   6970						.MCALL	ALUN$,QIOW$S,EXIT$S,CLEF$S
   6971						.MACRO	KLIVR$ KEY,FRM,VER,EDT,NUM
   6972						.IF	B,NUM
   6973						.IF	NB,FRM
   6974						KLIVR$	\KEY,\FRM,\VER,\EDT,0
   6975						.IFF
   6976						KLIVR$	\KEY,200,\VER,\EDT,0
   6977						.ENDC
   6978						.MEXIT
   6979						.IFF
   6980						.IF	GE,VER-10
   6981						.IF	GE,EDT-10
   6982						MESSAGE	<VERSION \<KEY><FRM>\'VER'-'EDT'\<200>\ RUNNING>
   6983						.IFF
   6984						MESSAGE	<VERSION \<KEY><FRM>\'VER'-0'EDT'\<200>\ RUNNING>
   6985						.ENDC
   6986						.IFF
   6987						.IF	GE,EDT-10
   6988						MESSAGE	<VERSION \<KEY><FRM>\0'VER'-'EDT'\<200>\ RUNNING>
   6989						.IFF
KLINI -- PROGRAM INITIALIZATION	MACRO M1113  03-APR-86 20:55  PAGE 156-1
$KLSR	-- SOFT RESET FOR RAM LOADERS

   6990						MESSAGE	<VERSION \<KEY><FRM>\0'VER'-0'EDT'\<200>\ RUNNING>
   6991						.ENDC
   6992						.ENDC
   6993						.ENDC
   6994						.ENDM	KLIVR$
   6995					;
   6996					; LOCAL DATA
   6997					;
   6998	001454					.PSECT	DATA,D
   6999	001454				DNITTI:
   7000	001454					ALUN$	TTILUN,TT,0
	001454	   007 	   004 			.BYTE	7,4
	001456	000001 				.WORD	TTILUN
	001460	   124 				.ASCII	/T/
	001461	   124 				.ASCII	/T/
	001462	000000 				.WORD	0
   7001	001464				DNITTO:
   7002	001464					ALUN$	TTOLUN,TT,0
	001464	   007 	   004 			.BYTE	7,4
	001466	000002 				.WORD	TTOLUN
	001470	   124 				.ASCII	/T/
	001471	   124 				.ASCII	/T/
	001472	000000 				.WORD	0
   7004	001474				DNILPO:
   7005	001474					ALUN$	LPOLUN,LP,0
	001474	   007 	   004 			.BYTE	7,4
	001476	000003 				.WORD	LPOLUN
	001500	   114 				.ASCII	/L/
	001501	   120 				.ASCII	/P/
	001502	000000 				.WORD	0
   7007	001504				DNISYI::
   7008	001504					ALUN$	SYILUN,SY,0
	001504	   007 	   004 			.BYTE	7,4
	001506	000004 				.WORD	SYILUN
	001510	   123 				.ASCII	/S/
	001511	   131 				.ASCII	/Y/
	001512	000000 				.WORD	0
   7009	001514				DNISYO::
   7010	001514					ALUN$	SYOLUN,SY,0
	001514	   007 	   004 			.BYTE	7,4
	001516	000005 				.WORD	SYOLUN
	001520	   123 				.ASCII	/S/
	001521	   131 				.ASCII	/Y/
	001522	000000 				.WORD	0
   7011	001524				DNISYF::
   7012	001524					ALUN$	SYFLUN,SY,0
	001524	   007 	   004 			.BYTE	7,4
	001526	000006 				.WORD	SYFLUN
	001530	   123 				.ASCII	/S/
	001531	   131 				.ASCII	/Y/
	001532	000000 				.WORD	0
   7013	003025					.PSECT	TEXT,D
   7014	003025				TNINDV:
   7015	003025					ERROR	<CANNOT GET DEVICES>
	003025	   077 	   040 	   103 		 .ASCIZ	\? CANNOT GET DEVICES\
	003030	   101 	   116 	   116
	003033	   117 	   124 	   040
KLINI -- PROGRAM INITIALIZATION	MACRO M1113  03-APR-86 20:55  PAGE 156-2
$KLSR	-- SOFT RESET FOR RAM LOADERS

	003036	   107 	   105 	   124
	003041	   040 	   104 	   105
	003044	   126 	   111 	   103
	003047	   105 	   123 	   000
   7016	003052				TNIN55:
   7017	003052					ERROR	<CANNOT FIND [5,5] DIRECTORY>
	003052	   077 	   040 	   103 		 .ASCIZ	\? CANNOT FIND [5,5] DIRECTORY\
	003055	   101 	   116 	   116
	003060	   117 	   124 	   040
	003063	   106 	   111 	   116
	003066	   104 	   040 	   133
	003071	   065 	   054 	   065
	003074	   135 	   040 	   104
	003077	   111 	   122 	   105
	003102	   103 	   124 	   117
	003105	   122 	   131 	   000
   7018	003110				TNIPRI:
   7019	003110					ERROR	<CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL>
	003110	   077 	   040 	   103 		 .ASCIZ	\? CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL\
	003113	   101 	   116 	   116
	003116	   117 	   124 	   040
	003121	   122 	   125 	   116
	003124	   040 	   113 	   114
	003127	   111 	   116 	   111
	003132	   124 	   040 	   127
	003135	   110 	   111 	   114
	003140	   105 	   040 	   113
	003143	   114 	   040 	   111
	003146	   123 	   040 	   111
	003151	   116 	   040 	   120
	003154	   122 	   111 	   115
	003157	   101 	   122 	   131
	003162	   040 	   120 	   122
	003165	   117 	   124 	   117
	003170	   103 	   117 	   114
	003173	   000
   7020	003174				TNIVER:
   7021	003174					KLIVR$	KLI$$K,KLI$$F,KLI$$V,KLI$$E
	003174	   126 	   105 	   122 		 .ASCIZ	\VERSION \<126><101>\15-50\<200>\ RUNNING\
	003177	   123 	   111 	   117
	003202	   116 	   040 	   126
	003205	   101 	   061 	   065
	003210	   055 	   065 	   060
	003213	   200 	   040 	   122
	003216	   125 	   116 	   116
	003221	   111 	   116 	   107
	003224	   000
   7022	015564					.PSECT
KLINI -- PROGRAM INITIALIZATION	MACRO M1113  03-APR-86 20:55  PAGE 157
$INIT	-- PROGRAM INITIALIZATION

   7024						.SBTTL	$INIT	-- PROGRAM INITIALIZATION
   7025					;+
   7026					;	GET KL FUNCTION WORD
   7027					;-
   7028
   7029	015564				$INIT::
   7030	015564	105037 	000024'			CLRB	.DLGSW		; CLEAR DIALOG SWITCH.
   7031	015570	013737 	000000G	000060'		MOV	.KLIWD,.KLISV	; SAVE .KLIWD
   7032	015576	001001 				BNE	10$
   7033					;	CLR	.DATE3		; [**]CLEAR .DATE3 IF .KLIWD=0
   7034	015600	000404 				BR	20$
   7035						;
   7036	015602				10$:
   7037	015602	005037 	000000G			CLR	.KLIWD		; CLEAR .KLIWD TO AVOID DOING THIS AGAIN
   7038	015606	105337 	000024'			DECB	.DLGSW		; AND INDICATE INTERNAL PATH TO BE TAKEN.
   7039
   7040					;+
   7041					;	ASSIGN LOGICAL UNIT NUMBERS (LUN) TO DEVICES
   7042					;-
   7043
   7044	015612				20$:
   7045	015612					DIR$	#DNITTI		; SET TTILUN AS TT0:
	015612	012746 	001454'			MOV	#DNITTI,-(SP)
	015616	104375 				EMT	375
   7046	015620	103430 				BCS	30$
   7047	015622					DIR$	#DNITTO		; SET TTOLUN AS TT0:
	015622	012746 	001464'			MOV	#DNITTO,-(SP)
	015626	104375 				EMT	375
   7048	015630	103424 				BCS	30$
   7050	015632					DIR$	#DNILPO		; SET LPOLUN AS LP0:
	015632	012746 	001474'			MOV	#DNILPO,-(SP)
	015636	104375 				EMT	375
   7051	015640	103420 				BCS	30$
   7053	015642	032737 	000000G	000060'		BIT	#KL.KAC,.KLISV	; [4.2107] KEEP-ALIVE ERROR??
   7054	015650	001130 				BNE	80$		; [4.2107] YES -- DON'T NEED SY:
   7055	015652					DIR$	#DNISYI		; SET SYILUN AS SY0:
	015652	012746 	001504'			MOV	#DNISYI,-(SP)
	015656	104375 				EMT	375
   7056	015660	103410 				BCS	30$
   7057	015662					DIR$	#DNISYO		; SET SYOLUN AS SY0:
	015662	012746 	001514'			MOV	#DNISYO,-(SP)
	015666	104375 				EMT	375
   7058	015670	103404 				BCS	30$
   7059	015672					DIR$	#DNISYF		; SET SYFLUN AS SY0:
	015672	012746 	001524'			MOV	#DNISYF,-(SP)
	015676	104375 				EMT	375
   7060	015700	103007 				BCC	40$
   7061	015702				30$:
   7062	015702					PRINT	#TNINDV		; CAN'T GET DEVICES
	015702	012700 	003025'			 MOV	#TNINDV,R0
	015706	004737 	027634'			 JSR	PC,$TTMSG
   7063	015712					EXIT$S			; WE'RE THROUGH.
	015712	012746 				MOV	(PC)+,-(SP)
	015714	   063 	   001 			.BYTE	51.,1
	015716	104375 				EMT	375
   7064					;+
   7065					;	FIND DIRECTORY FILE FROM MASTER FILE DIRECTORY
KLINI -- PROGRAM INITIALIZATION	MACRO M1113  03-APR-86 20:55  PAGE 157-1
$INIT	-- PROGRAM INITIALIZATION

   7066					;-
   7067	015720				40$:
   7068	015720					QIOW$S	#IO.FNA,#SYILUN,#1,,#.SYSTA,,<,,,,,#.SYFNB>
	015720	012746 	002620'			MOV	#.SYFNB,-(SP)
	015724	005046 				CLR	-(SP)
	015726	005046 				CLR	-(SP)
	015730	005046 				CLR	-(SP)
	015732	005046 				CLR	-(SP)
	015734	005046 				CLR	-(SP)
	015736	005046 				CLR	-(SP)
	015740	012746 	000526'			MOV	#.SYSTA,-(SP)
	015744	005046 				CLR	-(SP)
	015746	112716 	000001 			MOVB	#1,(SP)
	015752	012746 	000004 			MOV	#SYILUN,-(SP)
	015756	012746 	000000G			MOV	#IO.FNA,-(SP)
	015762	012746 				MOV	(PC)+,-(SP)
	015764	   003 	   014 			.BYTE	3,$$$T1
	015766	104375 				EMT	375
   7069	015770	103403 				BCS	50$
   7070	015772	105737 	000526'			TSTB	.SYSTA
   7071	015776	002007 				BGE	60$
   7072	016000				50$:
   7073	016000					PRINT	#TNIN55		; NO DIRECTORY...
	016000	012700 	003052'			 MOV	#TNIN55,R0
	016004	004737 	027634'			 JSR	PC,$TTMSG
   7074	016010					EXIT$S
	016010	012746 				MOV	(PC)+,-(SP)
	016012	   063 	   001 			.BYTE	51.,1
	016014	104375 				EMT	375
   7075	016016				60$:
   7076	016016	013737 	002620'	002644'		MOV	.SYFNB+0,.SYFNB+24 ; MOVE UP DIRECTORY FID.
   7077	016024	013737 	002622'	002646'		MOV	.SYFNB+2,.SYFNB+26
   7078	016032	013737 	002624'	002650'		MOV	.SYFNB+4,.SYFNB+30
   7079					;+
   7080					;	MAKE SURE SECONDARY PROTOCOL IS RUNNING
   7081					;-
   7082	016040	105737 	000024'			TSTB	.DLGSW		; IF NOT INTERNAL REQUEST
   7083	016044	002416 				BLT	70$
   7084	016046	032737 	000000G	000002G		BIT	#EF.PR1,.COMEF+2 ; CHECK CURRENT PROTOCOL.
   7085	016054	001412 				BEQ	70$		; IF PRIMARY,
   7086	016056	032737 	000006 	000000G		BIT	#6,.FEMOD	; AND CONSOLE IS IN
   7087	016064	001006 				BNE	70$		; OPERATOR MODE, THEN
   7088	016066					PRINT	#TNIPRI		; REPRIMAND OPERATOR
	016066	012700 	003110'			 MOV	#TNIPRI,R0
	016072	004737 	027634'			 JSR	PC,$TTMSG
   7089	016076	000137 	024022'			JMP	$EXIT		; AND DIE.
   7090						;
   7091	016102				70$:
   7092	016102	052737 	000000G	000002G		BIS	#EF.CRI,.COMEF+2 ; DECLARE COMM REGION INVALID
   7093	016110	013737 	000000G	000062'		MOV	.CPUSN,.SNSAV	; [4.2333] SAVE OLD SERIAL NUMBER
   7094	016116	005037 	000000G			CLR	.CPUSN		; [4.2333] ALLOW ENVRIONMENT READ
   7095	016122					PRINT	#TNIVER		; HELLO, OPERATOR !
	016122	012700 	003174'			 MOV	#TNIVER,R0
	016126	004737 	027634'			 JSR	PC,$TTMSG
   7096	016132				80$:				; [4.2107]
   7097	016132					RETURN
	016132	000207 				 RTS	PC
KLINI -- PROGRAM INITIALIZATION	MACRO M1113  03-APR-86 20:55  PAGE 157-2
$INIT	-- PROGRAM INITIALIZATION

   7098
   7099					.TITLE	KLIPC -- KL PC READ FUNCTION MODULE 7603.30
   7100
   7101						.IDENT	"001010"
   7102
   7103					;	COPYRIGHT (C) 1976, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7104					;	ALL RIGHTS RESERVED.
   7105					;	THE MATERIAL INCLUDED IN THIS FUNCTIONAL  SPECIFICATION,  INCLUDING  BUT
   7106					;	NOT   LIMITED   TO,  INSTRUCTION  TIMES  AND  OPERATING  SPEEDS  IS  FOR
   7107					;	INFORMATION PURPOSES ONLY.  ALL  SUCH  MATERIAL  IS  SUBJECT  TO  CHANGE
   7108					;	WITHOUT NOTICE.  CONSEQUENTLY DEC MAKES NO CLAIM AND SHALL NOT BE LIABLE
   7109					;	FOR ITS ACCURACY.
   7110					;
   7111					;	DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE
   7112					;	ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7113					;
   7114					;
   7115					;		MODULE: KL VMA BOARD READ FUNCTION
   7116					;
   7117					;		VERSION: 01-01
   7118					;
   7119					;		AUTHOR: R. BELANGER
   7120					;
   7121					;		DATE: 7603.30
   7122					;
   7123					;	THIS MODULE CONTAINS:
   7124					;
   7125					;	1) KL PC READ CODE
   7126					;
   7127					;	LOCAL DATA
   7128					;
   7129	003225					.PSECT	TEXT,D
   7130	003225				PCERRM:
   7131	003225					ERROR	<READ PC FAILED>
	003225	   077 	   040 	   122 		 .ASCIZ	\? READ PC FAILED\
	003230	   105 	   101 	   104
	003233	   040 	   120 	   103
	003236	   040 	   106 	   101
	003241	   111 	   114 	   105
	003244	   104 	   000
   7132	016134				.PSECT
KLIPC -- KL PC READ FUNCTION MO	MACRO M1113  03-APR-86 20:55  PAGE 158
$DFPC -- KL PC READ SUBROUTINE 7510.21

   7134					.SBTTL	$DFPC -- KL PC READ SUBROUTINE 7510.21
   7135
   7136					;+
   7137					; $DFPC -- SUBROUTINE TO READ THE KL PROGRAM COUNTER REGISTER
   7138					;
   7139					; THESE SUBROUTINES READ AND ASSEMBLE THE DESIRED VMA BOARD REGISTER
   7140					; INTO A THREE WORD BLOCK POINTED TO BY R0 IN THE CALL.
   7141					;
   7142					; INPUT ARGUMENTS:
   7143					;
   7144					;	R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
   7145					;
   7146					; OUTPUT ARGUMENTS:
   7147					;
   7148					;	R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
   7149					;
   7150					; ERROR CODES RETURNED:
   7151					;
   7152					;	CC-C SET ON ERROR.
   7153					;-
   7154
   7155	016134				$DFPC::
   7156	016134					CALL	R5,$RSAVE	; SAVE R5 - R1 ON THE STACK
	016134	004537 	024204'			 JSR	R5,$RSAVE
   7157	016140	012705 	177776 			MOV	#-2,R5		; BASE SHIFT COUNT TO R5
   7158	016144	012704 	000004 			MOV	#^D4,R4		; ITERATION COUNT TO R4
   7159	016150	010003 				MOV	R0,R3		; USER BUFFER ADDRESS TO R3
   7160	016152	012702 	000150 			MOV	#150,R2		; FUNCTION READ BASE TO R2
   7161	016156					PUSH	#135673		; MASK WORD TO TOP OF THE STACK
	016156	012746 	135673 			 MOV	#135673,-(SP)
   7162	016162	005020 				CLR	(R0)+		; .CLEAR CALLER'S AREA
   7163	016164	005020 				CLR	(R0)+		; .SO
   7164	016166	005010 				CLR	(R0)		; .
   7165	016170				10$:
   7166	016170	010200 				MOV	R2,R0		; .SET THE FUNCTION READ NUMBER
   7167	016172	006300 				ASL	R0		; .TIMES 2
   7168	016174	000300 				SWAB	R0		; .IN THE HIGH BYTE
   7169	016176	005001 				CLR	R1		; .CLEAR R1
   7170	016200					CALL	$DFRD		; .READ IT
	016200	004737 	013444'			 JSR	PC,$DFRD
   7171	016204	103423 				BCS	30$		; .EXIT IF ERROR
   7172	016206	012700 	000264'			MOV	#.DFRBK,R0	; .BUFFER POINTER TO R0
   7173	016212	041620 				BIC	(SP),(R0)+	; .SP POINTS TO BIT MASK
   7174	016214	041610 				BIC	(SP),(R0)	; .R0 POINTS TO READ BLOCK
   7175	016216	005740 				TST	-(R0)		; .BACK THE POINTER UP
   7176	016220	010501 				MOV	R5,R1		; .SHIFT COUNT TO R1
   7177	016222					CALL	.TPSHI		; .SHIFT THE BITS INTO POSITION
	016222	004737 	016270'			 JSR	PC,.TPSHI
   7178	016226	052023 				BIS	(R0)+,(R3)+	; .SET THE BITS IN THE USER BUFFER
   7179	016230	051013 				BIS	(R0),(R3)	; .SO
   7180	016232	005743 				TST	-(R3)		; .BACK CALLER'S POINTER UP
   7181	016234	122225 				CMPB	(R2)+,(R5)+	; .INCREMENT READ NUMBER AND SHIFT COUNT
   7182	016236	077424 				SOB	R4,10$		; .DO THIS FOUR TIMES
   7183	016240	042763 	177600 	000002 		BIC	#177600,2(R3)	; .GET RID OF BITS HIGHER THAN 13
   7184	016246	000241 				CLC			; .CLEAR CC-C
   7185	016250				20$:
   7186	016250	005226 				INC	(SP)+		; CLEAR THE STACK
KLIPC -- KL PC READ FUNCTION MO	MACRO M1113  03-APR-86 20:55  PAGE 158-1
$DFPC -- KL PC READ SUBROUTINE 7510.21

   7187	016252					RETURN			; RETURN TO CALLER
	016252	000207 				 RTS	PC
   7188	016254				30$:
   7189	016254					PRINT	#PCERRM		; TELL OPERATOR ABOUT ERROR
	016254	012700 	003225'			 MOV	#PCERRM,R0
	016260	004737 	027634'			 JSR	PC,$TTMSG
   7190	016264	000261 				SEC			; SET ERROR FLAG
   7191	016266	000770 				BR	20$		; AND EXIT
   7192						;
KLIPC -- KL PC READ FUNCTION MO	MACRO M1113  03-APR-86 20:55  PAGE 159
$DFPC -- KL PC READ SUBROUTINE 7510.21

   7194	016270				.TPSHI::
   7195	016270					PUSH	R1		; SAVE R1 FROM DESTRUCTION
	016270	010146 				 MOV	R1,-(SP)
   7196	016272	001416 				BEQ	30$		; .ON ZERO DO NOTHING
   7197	016274	003002 				BGT	10$		; .REALLY MEANS LEFT
   7198	016276	005401 				NEG	R1		; .MEANS RIGHT, SO NEGATE
   7199	016300	000406 				BR	20$		; .AND GO RIGHT
   7200						;
   7201	016302				10$:
   7202	016302	006320 				ASL	(R0)+		; .CLEAR CC-C AND SHIFT
   7203	016304	006120 				ROL	(R0)+		; .USE CC-C AND SHIFT
   7204	016306	006110 				ROL	(R0)		; .
   7205	016310	024040 				CMP	-(R0),-(R0)	; .POINT BACK TO BEGINNING
   7206	016312	077105 				SOB	R1,10$		; .AND LOOP 'TILL DONE
   7207	016314	000405 				BR	30$		; .DONE -- EXIT
   7208						;
   7209	016316				20$:				; .HERE TO SHIFT RIGHT
   7210	016316	022020 				CMP	(R0)+,(R0)+	; .FIX POINTER TO POINT TO HIGH PART
   7211	016320	006210 				ASR	(R0)		; .SHIFT HIGH PART
   7212	016322	006040 				ROR	-(R0)		; .THEN MIDDLE PART
   7213	016324	006040 				ROR	-(R0)		; .THEN LOW PART
   7214	016326	077105 				SOB	R1,20$		; .UNTIL DONE
   7215	016330				30$:
   7216	016330					POP	R1		; .RESTORE R1
	016330	012601 				 MOV	(SP)+,R1
   7217	016332					RETURN			; AND RETURN TO CALLER
	016332	000207 				 RTS	PC
KLIPC -- KL PC READ FUNCTION MO	MACRO M1113  03-APR-86 20:55  PAGE 160
$DFPC -- KL PC READ SUBROUTINE 7510.21

   7219
   7220
   7221						.TITLE	KLIQB -- ASK BOOT LOAD QUESTIONS
   7222	016334					IDENT$	12,27								; ADP01
						.IDENT	/012270/
   7223					;
   7224					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7225					; ALL RIGHTS RESERVED.
   7226					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7227					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7228					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7229					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7230					;
   7231					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7232					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7233					; EQUIPMENT CORPORATION.
   7234					;
   7235					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7236					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7237					;
   7238					; VERSION 12-27
   7239					;
   7240					; ALAN D. PECKHAM  12-APR-77
   7241					;
   7242					; MODIFIED BY:
   7243					;
   7244					; FUNCTION: THIS MODULE DETERMINES WHETHER THE BOOT IS TO BE LOADED
   7245					;  AND WHAT BOOT IS TO BE USED.
   7246					;
   7247					; LOCAL DATA
   7248					;
   7249	003246					.PSECT	TEXT,D
   7250	003246				TQBOOT:
   7251	003246					MESSAGE	<LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?>
	003246	   114 	   117 	   101 		 .ASCIZ	\LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?\
	003251	   104 	   040 	   113
	003254	   114 	   040 	   102
	003257	   117 	   117 	   124
	003262	   123 	   124 	   122
	003265	   101 	   120 	   040
	003270	   133 	   106 	   111
	003273	   114 	   105 	   054
	003276	   131 	   105 	   123
	003301	   054 	   116 	   117
	003304	   054 	   106 	   111
	003307	   114 	   105 	   116
	003312	   101 	   115 	   105
	003315	   135 	   077 	   000
   7252	003320				TQBWCF:
   7253	003320					MESSAGE	<WRITE CONFIGURATION FILE [YES,NO]?>
	003320	   127 	   122 	   111 		 .ASCIZ	\WRITE CONFIGURATION FILE [YES,NO]?\
	003323	   124 	   105 	   040
	003326	   103 	   117 	   116
	003331	   106 	   111 	   107
	003334	   125 	   122 	   101
	003337	   124 	   111 	   117
	003342	   116 	   040 	   106
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 160-1
$DFPC -- KL PC READ SUBROUTINE 7510.21

	003345	   111 	   114 	   105
	003350	   040 	   133 	   131
	003353	   105 	   123 	   054
	003356	   116 	   117 	   135
	003361	   077 	   000
   7254	003363				TQBNFL:
   7255	003363					WARNING	<NO FILE - LOADING BOOTSTRAP>
	003363	   045 	   040 	   116 		 .ASCIZ	\% NO FILE - LOADING BOOTSTRAP\
	003366	   117 	   040 	   106
	003371	   111 	   114 	   105
	003374	   040 	   055 	   040
	003377	   114 	   117 	   101
	003402	   104 	   111 	   116
	003405	   107 	   040 	   102
	003410	   117 	   117 	   124
	003413	   123 	   124 	   122
	003416	   101 	   120 	   000
   7256	001534					.PSECT	DATA,D
   7257	001534				DQBFNM::
   7258	001534	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME
	001542	011667
   7259	001544	000000 				.WORD	0
   7260	001546	   005 	   005 			.BYTE	5,5
   7261	001550	054523 	000000 			.WORD	"SY,0
   7262	016334					.PSECT
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 161
$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED

   7264						.SBTTL	$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED
   7265
   7266					;+
   7267					; $DLGBT -- ASK WHETHER OR NOT TO LOAD THE KL BOOTSTRAP
   7268					;
   7269					; INPUTS:
   7270					;
   7271					;	NONE
   7272					;
   7273					; OUTPUTS:
   7274					;
   7275					;	NONE
   7276					;-
   7277
   7278	016334				$DLGBT::
   7279	016334	105037 	000050'			CLRB	.BTSW		; RESET BOOT SWITCH
   7280	016340	105037 	000033'			CLRB	.DBSW		; RESET FILE SOURCE
   7281	016344	105037 	000026'			CLRB	.UFNSW		; AND FILENAME SWITCH.
   7282	016350	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG CONTROL SWITCH.
   7283	016354	001030 				BNE	20$		; LOAD DEFAULT BOOTSTRAP.
   7284	016356				10$:
   7285	016356					PRINT	#TQBOOT		; ASK QUESTION
	016356	012700 	003246'			 MOV	#TQBOOT,R0
	016362	004737 	027634'			 JSR	PC,$TTMSG
   7286	016366					CALL	$TTRD		; READ ANSWER
	016366	004737 	027130'			 JSR	PC,$TTRD
   7287	016372	012705 	000304'			MOV	#.TTIBF,R5
   7288	016376	105715 				TSTB	(R5)		;  CR ?
   7289	016400	001416 				BEQ	20$		; READ BOOTSTRAP SPECIFICATION FROM FILE
   7290	016402	022715 	044506 			CMP	#"FI,(R5)	;  [FILE]?
   7291	016406	001413 				BEQ	20$		; READ BOOTSTRAP SPECIFICATION FROM FILE
   7292	016410	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7293	016414	001433 				BEQ	50$		; LOAD DEFAULT BOOTSTRAP
   7294	016416	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7295	016422	001411 				BEQ	30$		; ASK NEXT QUESTION.
   7296	016424	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   7297	016430	001011 				BNE	40$		; NO, MUST BE FILENAME...
   7298	016432	000137 	023662'			JMP	$DLGMV		; ASK TO CONFIGURE MEMORY.
   7299						;
   7300	016436				20$:
   7301	016436					CALL	LQBRBF		; SEE IF WE SHOULD LOAD THE BOOT
	016436	004737 	016656'			 JSR	PC,LQBRBF
   7302	016442	103430 				BCS	80$		; ERROR IF CC-C IS SET
   7303	016444	000421 				BR	60$		; AND EXIT
   7304						;
   7305	016446				30$:
   7306	016446	105337 	000050'			DECB	.BTSW		; RESPONSE IS "NO"
   7307	016452	000416 				BR	60$		; ASK NEXT QUESTION.
   7308						;
   7309	016454				40$:
   7310	016454	012700 	000476'			MOV	#.USRFN,R0	; GET FILENAME BLOCK,				; ADP01
   7311	016460	012701 				MOV	(PC)+,R1
   7312	016462	021402 				.RAD50	/EXB/		; SET DEFAULT EXTENSION,
   7313	016464	010160 	000006 			MOV	R1,6(R0)
   7314	016470					CALL	$TRF2B		; AND GET FILE NAME.
	016470	004737 	025146'			 JSR	PC,$TRF2B
   7315	016474	105715 				TSTB	(R5)		; IF NOT PROPERLY TERMINATED
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 161-1
$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED

   7316	016476	001005 				BNE	70$		; THEN INFORM THE OPERATOR.
   7317	016500	105237 	000026'			INCB	.UFNSW		; INDICATE FILE SPECIFIED
   7318	016504				50$:
   7319	016504	105237 	000050'			INCB	.BTSW		; SET RESPONSE TO "YES"
   7320	016510				60$:
   7321	016510	000407 				BR	$DLWCF		; ASK NEXT QUESTION
   7322						;
   7323	016512				70$:
   7324	016512					PRINT	#COMCSE		; ALL THUMBS...
	016512	012700 	005552'			 MOV	#COMCSE,R0
	016516	004737 	027634'			 JSR	PC,$TTMSG
   7325	016522	000715 				BR	10$
   7326						;
   7327	016524				80$:
   7328	016524	000137 	024012'			JMP	$ERROR		; ERROR EXIT
   7329						;
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 162
$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN

   7331						.SBTTL	$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
   7332
   7333					;+
   7334					; $DLWCF -- ASK IF CONFIGURATION FILE IS THE BE WRITTEN
   7335					;
   7336					; INPUTS:
   7337					;
   7338					;	NONE
   7339					;
   7340					; OUTPUTS:
   7341					;
   7342					;	FILE WRITE SWITCH, ".FILSW", IS SET UP
   7343					;-
   7344
   7345	016530				$DLWCF::
   7346	016530	105037 	000047'			CLRB	.FILSW		; RESET FILE SWITCH
   7347	016534	105737 	000024'			TSTB	.DLGSW		; ARE WE IN DIALOG MODE??
   7348	016540	001035 				BNE	40$		; NO -- JUST EXIT
   7349	016542				10$:
   7350	016542					PRINT	#TQBWCF		; ASK THE QUESTION
	016542	012700 	003320'			 MOV	#TQBWCF,R0
	016546	004737 	027634'			 JSR	PC,$TTMSG
   7351	016552					CALL	$TTRD		; READ THE RESPONSE
	016552	004737 	027130'			 JSR	PC,$TTRD
   7352	016556	012705 	000304'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   7353	016562	105715 				TSTB	(R5)		; DEFAULT??
   7354	016564	001416 				BEQ	20$		; YES -- GO ON
   7355	016566	022715 	042531 			CMP	#"YE,(R5)	; NO -- IS IT "YES"??
   7356	016572	001413 				BEQ	20$		; YES -- GO ON
   7357	016574	022715 	047516 			CMP	#"NO,(R5)	; NO -- IS IT "NO"??
   7358	016600	001413 				BEQ	30$		; YES -- GO ON
   7359	016602	022715 	040502 			CMP	#"BA,(R5)	; NO -- IS IT "BACK"??
   7360	016606	001652 				BEQ	$DLGBT		; YES -- SO BACK UP
   7361	016610					PRINT	#COMCSE		; BLEW IT..
	016610	012700 	005552'			 MOV	#COMCSE,R0
	016614	004737 	027634'			 JSR	PC,$TTMSG
   7362	016620	000750 				BR	10$		; TRY ONCE MORE
   7363						;
   7364	016622				20$:
   7365	016622	105237 	000047'			INCB	.FILSW		; SAY WRITE THE FILE
   7366	016626	000402 				BR	40$		; AND GO ON
   7367						;
   7368	016630				30$:
   7369	016630	105337 	000047'			DECB	.FILSW		; SAY DON'T WRITE THE FILE
   7370	016634				40$:
   7371	016634	105737 	000050'			TSTB	.BTSW		; EXAMINE BOOT SWITCH
   7372	016640	100004 				BPL	50$		; SAID LOAD IT
   7373	016642					CALL	$TENS1		; [TCO 4.2275] FINISH KL INIT
	016642	004737 	024532'			 JSR	PC,$TENS1
   7374	016646	000137 	017422'			JMP	$DLGEX		; SAID DON'T LOAD IT
   7375						;
   7376	016652				50$:
   7377	016652	000137 	023714'			JMP	$CFGBT		; LOAD THE BOOT
   7378						;
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 163
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG

   7380						.SBTTL	LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
   7381
   7382	016656				LQBRBF::
   7383	016656	105037 	000026'			CLRB	.UFNSW		; INDICATE NO FILE NAME SPECIFIED
   7384	016662	012700 	001534'			MOV	#DQBFNM,R0	; POINT TO THE FILENAME
   7385	016666					CALL	$LOOKUP		; LOOK IT UP
	016666	004737 	007562'			 JSR	PC,$LOOKUP
   7386	016672	103022 				BCC	30$		; ALL OK IF CC-C IS CLEAR
   7387	016674	122737 	000000G	000526'		CMPB	#IE.NSF,.SYSTA	; NON-EXISTENT FILE??
   7388	016702	001063 				BNE	70$		; NO -- BIG TROUBLE
   7389	016704	105737 	000024'			TSTB	.DLGSW		; ARE WE IN DIALOG MODE??
   7390	016710	100004 				BPL	10$		; YES -- GO ON
   7391	016712	032737 	000000G	000060'		BIT	#KL.LVB,.KLISV	; NO -- DOES HE WANT THE BOOT LOADED??
   7392	016720	001461 				BEQ	90$		; NO -- JUST EXIT
   7393	016722				10$:
   7394	016722					PRINT	#TQBNFL		; YES -- WARN OPERATOR
	016722	012700 	003363'			 MOV	#TQBNFL,R0
	016726	004737 	027634'			 JSR	PC,$TTMSG
   7395	016732				20$:
   7396	016732	105237 	000050'			INCB	.BTSW		; INDICATE TO LOAD THE BOOTSTRAP
   7397	016736	000452 				BR	90$		; AND EXIT
   7398						;
   7399	016740				30$:
   7400	016740					CALL	$READC		; GET A RECORD FROM THE FILE
	016740	004737 	010216'			 JSR	PC,$READC
   7401	016744	103444 				BCS	80$		; ERROR IF CC-C IS SET
   7402	016746	022700 	000003 			CMP	#3,R0		; ONE WE'RE LOOKING FOR??
   7403	016752	001411 				BEQ	50$		; YES -- READ THE DATA
   7404	016754	005700 				TST	R0		; NO -- END-OF-FILE??
   7405	016756	001003 				BNE	40$		; NO -- SKIP THIS RECORD
   7406	016760					CALL	$CLOSE		; YES -- CLOSE THE FILE
	016760	004737 	007056'			 JSR	PC,$CLOSE
   7407	016764	000762 				BR	20$		; AND SAY LOAD THE BOOTSTRAP
   7408						;
   7409	016766				40$:
   7410	016766					CALL	$READS		; SKIP THIS RECORD
	016766	004737 	010254'			 JSR	PC,$READS
   7411	016772	103431 				BCS	80$		; ERROR IF CC-C IS SET
   7412	016774	000761 				BR	30$		; OK -- LOOK AT NEXT RECORD
   7413						;
   7414	016776				50$:
   7415	016776					CALL	$READB		; READ THE BYTE INTO R0
	016776	004737 	010420'			 JSR	PC,$READB
   7416	017002	103425 				BCS	80$		; ERROR IF CC-C IS SET
   7417	017004	110037 	000050'			MOVB	R0,.BTSW	; SAVE THE BOOT SWITCH
   7418	017010					CALL	$READB		; READ THE FILE-NAME SWITCH
	017010	004737 	010420'			 JSR	PC,$READB
   7419	017014	103420 				BCS	80$		; ERROR IF CC-C IS SET
   7420	017016	110037 	000026'			MOVB	R0,.UFNSW	; SET THE FILENAME SWITCH
   7421	017022	001413 				BEQ	70$		; EXIT IF NONE
   7422	017024	012701 	000004 			MOV	#4,R1		; SET UP TO READ FILENAME
   7423	017030	012702 	000476'			MOV	#.USRFN,R2	; POINT TO FILENAME BLOCK
   7424	017034				60$:
   7425	017034					CALL	$READW		; READ A WORD OF THE FILENAME
	017034	004737 	010324'			 JSR	PC,$READW
   7426	017040	103406 				BCS	80$		; ERROR IF CC-C IS SET
   7427	017042	010022 				MOV	R0,(R2)+	; LOAD IT INTO THE FILE-NAME BLOCK
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 163-1
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG

   7428	017044	077105 				SOB	R1,60$		; UNTIL DONE
   7429	017046	105237 	000026'			INCB	.UFNSW		; INDICATE FILE NAME SPECIFIED
   7430	017052				70$:
   7431	017052					CALLR	$CLOSE		; CLOSE THE FILE AND EXIT
	017052	000137 	007056'			 JMP	$CLOSE
   7432						;
   7433	017056				80$:
   7434	017056					CALL	$PURGE		; ERROR -- PURGE FILE
	017056	004737 	010124'			 JSR	PC,$PURGE
   7435	017062	000261 				SEC			; SET ERROR FLAG
   7436	017064				90$:
   7437	017064					RETURN			; TO CALLER
	017064	000207 				 RTS	PC
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1113  03-APR-86 20:55  PAGE 164
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG

   7439
   7440						.TITLE	KLIQC -- ASK CACHE QUESTIONS
   7441	017066					IDENT$	5,0
						.IDENT	/005000/
   7442					;
   7443					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7444					; ALL RIGHTS RESERVED.
   7445					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7446					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7447					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7448					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7449					;
   7450					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7451					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7452					; EQUIPMENT CORPORATION.
   7453					;
   7454					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7455					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7456					;
   7457					; VERSION 05-00
   7458					;
   7459					; ALAN D. PECKHAM  14-APR-77
   7460					;
   7461					; MODIFIED BY:
   7462					;
   7463					; FUNCTION: IF THERE IS CACHE, THIS MODULE DETERMINES HOW IT IS TO BE
   7464					;  LOADED AND WHETHER IT IS TO BE ENABLED.
   7465					;
   7467					; LOCAL DATA
   7468					;
   7469	003421					.PSECT	TEXT,D
   7470	003421				TQCACH:	MESSAGE	<RECONFIGURE CACHE [FILE,ALL,YES,NO]?>
	003421	   122 	   105 	   103 		 .ASCIZ	\RECONFIGURE CACHE [FILE,ALL,YES,NO]?\
	003424	   117 	   116 	   106
	003427	   111 	   107 	   125
	003432	   122 	   105 	   040
	003435	   103 	   101 	   103
	003440	   110 	   105 	   040
	003443	   133 	   106 	   111
	003446	   114 	   105 	   054
	003451	   101 	   114 	   114
	003454	   054 	   131 	   105
	003457	   123 	   054 	   116
	003462	   117 	   135 	   077
	003465	   000
   7471	003466				TQCCEN:	MESSAGE	<ENABLE WHICH CACHES [ALL,NONE,0-3]?>
	003466	   105 	   116 	   101 		 .ASCIZ	\ENABLE WHICH CACHES [ALL,NONE,0-3]?\
	003471	   102 	   114 	   105
	003474	   040 	   127 	   110
	003477	   111 	   103 	   110
	003502	   040 	   103 	   101
	003505	   103 	   110 	   105
	003510	   123 	   040 	   133
	003513	   101 	   114 	   114
	003516	   054 	   116 	   117
	003521	   116 	   105 	   054
	003524	   060 	   055 	   063
KLIQC -- ASK CACHE QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 164-1
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG

	003527	   135 	   077 	   000
   7472	017066					.PSECT
KLIQC -- ASK CACHE QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 165
$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED

   7474						.SBTTL	$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED
   7475
   7476	017066	105737 	000043'		$DLGCA::TSTB	.CASW		; IF THERE IS NO CACHE
   7477	017072	002452 				BLT	40$		; THEN GO ON TO NEXT QUESTION.
   7478	017074	105037 	000031'			CLRB	.DCSW		; RESET CACHE CONTROL SWITCH.
   7479	017100	105737 	000024'			TSTB	.DLGSW		; DEFAULT PATH TO BE TAKEN ?
   7480	017104	003055 				BGT	70$		; YES, RECONFIGURE CACHE.
   7481	017106	002440 				BLT	30$		; INTERNAL PATH TO BE TAKEN.
   7482	017110				10$:	PRINT	#TQCACH		; ASK IF CACHE IS TO BE CONFIGURED
	017110	012700 	003421'			 MOV	#TQCACH,R0
	017114	004737 	027634'			 JSR	PC,$TTMSG
   7483	017120					CALL	$TTRD		; AND READ ANSWER.
	017120	004737 	027130'			 JSR	PC,$TTRD
   7484	017124	012705 	000304'			MOV	#.TTIBF,R5
   7485	017130	105715 				TSTB	(R5)		;  CR ?
   7486	017132	001442 				BEQ	70$		; GIVE HIM LAST CONFIGURATION.
   7487	017134	022715 	044506 			CMP	#"FI,(R5)	;  [FILE] ?
   7488	017140	001437 				BEQ	70$		; GIVE HIM LAST CONFIGURATION.
   7489	017142	022715 	046101 			CMP	#"AL,(R5)	;  [ALL] ?
   7490	017146	001432 				BEQ	60$		; GIVE HIM ALL CACHE.
   7491	017150	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7492	017154	001433 				BEQ	LQCCM		; GO ON TO NEXT QUESTION.
   7493	017156	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7494	017162	001416 				BEQ	40$		; IGNORE CACHE.
   7495	017164	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   7496	017170	001405 				BEQ	20$		; GO TO RAM QUESTION.
   7497	017172					PRINT	#COMCSE		; MUST BE SOME MISTAKE...
	017172	012700 	005552'			 MOV	#COMCSE,R0
	017176	004737 	027634'			 JSR	PC,$TTMSG
   7498	017202	000742 				BR	10$		; ASK QUESTION AGAIN.
   7499	017204	000137 	020700'		20$:	JMP	$DLGRM		; BACK UP TO RAM QUESTION.
   7500	017210	032737 	000000G	000060'	30$:	BIT	#KL.LCA,.KLISV	; INTERNAL REQUEST MADE ?
   7501	017216	001002 				BNE	50$		; YES, RECONFIGURE CACHE.
   7502	017220	000137 	017556'		40$:	JMP	$DLGMM		; BYPASS CACHE CONFIGURATION.
   7503	017224	032737 	000000G	000060'	50$:	BIT	#KL.CFL,.KLISV	; IF NOT TO GET FROM FILE
   7504	017232	001402 				BEQ	70$		; THEN
   7505	017234	105337 	000031'		60$:	DECB	.DCSW		; INDICATE TO USE ALL CACHES AND
   7506	017240	000137 	023640'		70$:	JMP	$CFGCA		; GO TO CONFIGURE CACHE.
KLIQC -- ASK CACHE QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 166
LQCCM	-- ASK WHICH CACHES TO CONFIGURE

   7508						.SBTTL	LQCCM	-- ASK WHICH CACHES TO CONFIGURE
   7509
   7510	017244				LQCCM:	PRINT	#TQCCEN		;ASK WHICH CACHES HE WANTS
	017244	012700 	003466'			 MOV	#TQCCEN,R0
	017250	004737 	027634'			 JSR	PC,$TTMSG
   7511	017254					CALL	$TTRD		;AND GET HIS ANSWER.
	017254	004737 	027130'			 JSR	PC,$TTRD
   7512	017260	012705 	000304'			MOV	#.TTIBF,R5
   7513	017264	005004 				CLR	R4		;INITIALIZE CACHE COUNTER.
   7514	017266	105715 				TSTB	(R5)		; CR ?
   7515	017270	001443 				BEQ	7$		;GIVE HIM ALL CACHES.
   7516	017272	022715 	046101 			CMP	#"AL,(R5)	; [ALL] ?
   7517	017276	001440 				BEQ	7$		;GIVE HIM ALL CACHES.
   7518	017300	022715 	047516 			CMP	#"NO,(R5)	; [NONE] ?
   7519	017304	001427 				BEQ	6$		;DON'T TOUCH THE CACHE.
   7520	017306	022715 	040502 			CMP	#"BA,(R5)	; [BACKUP] ?
   7521	017312	001665 				BEQ	$DLGCA		;ASK LAST QUESTION.
   7522	017314				3$:	CALL	$TRI2B		;GET A NUMBER -
	017314	004737 	025424'			 JSR	PC,$TRI2B
   7523	017320	103433 				BCS	9$		;IS IT
   7524	017322	022700 	000004 			CMP	#4,R0		;WITHIN RANGE ?
   7525	017326	003430 				BLE	9$
   7526	017330	012701 	000065'			MOV	#.CACHN,R1	;YES, CHECK MODULE TABLE
   7527	017334	110403 				MOVB	R4,R3		;TO SEE IF GIVEN BEFORE.
   7528	017336	001403 				BEQ	5$		;OKAY - EMPTY TABLE.
   7529	017340	120021 			4$:	CMPB	R0,(R1)+
   7530	017342	001422 				BEQ	9$
   7531	017344	077303 				SOB	R3,4$
   7532	017346	105204 			5$:	INCB	R4		;ONE MORE MODULE -
   7533	017350	110011 				MOVB	R0,(R1)		;PUT IN TABLE.
   7534	017352	122725 	000054 			CMPB	#',,(R5)+	;LEGAL SEPERATOR ?
   7535	017356	001756 				BEQ	3$		;YES, GET ANOTHER NUMBER.
   7536	017360	105745 				TSTB	-(R5)		;END OF LINE ?
   7537	017362	001012 				BNE	9$		;NO, ASK QUESTION AGAIN.
   7538	017364	110437 	000064'		6$:	MOVB	R4,.NCACH	;SET NUMBER OF CACHES,
   7539	017370	105237 	000031'			INCB	.DCSW		;INDICATE CONFIGURATION SET AND
   7540	017374	000137 	023640'			JMP	$CFGCA		;GO TO CONFIGURE CACHE.
   7541	017400	105337 	000031'		7$:	DECB	.DCSW		;INDICATE TO USE ALL CACHES AND
   7542	017404	000137 	023640'			JMP	$CFGCA		;GO TO CONFIGURE CACHE.
   7543	017410				9$:	PRINT	#COMCSE		;MUST HAVE MIS-TYPED...
	017410	012700 	005552'			 MOV	#COMCSE,R0
	017414	004737 	027634'			 JSR	PC,$TTMSG
   7544	017420	000711 				BR	LQCCM		;ASK QUESTION AGAIN.
KLIQC -- ASK CACHE QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 167
LQCCM	-- ASK WHICH CACHES TO CONFIGURE

   7547
   7548
   7549						.TITLE	KLIQE --  ASK EXIT QUESTIONS
   7550	017422					IDENT$	11,0,KLI$$F
						.IDENT	/A11000/
   7551					;
   7552					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7553					; ALL RIGHTS RESERVED.
   7554					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7555					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7556					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7557					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7558					;
   7559					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7560					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7561					; EQUIPMENT CORPORATION.
   7562					;
   7563					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7564					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7565					;
   7566					; VERSION 11-00
   7567					;
   7568					; ALAN D. PECKHAM  12-APR-77
   7569					;
   7570					; MODIFIED BY:
   7571					;
   7572					; FUNCTION: THIS MODULE ALLOWS THE OPERATOR TO RESTART THE DIALOG
   7573					;  OR EXIT FROM KLINIT. IT ALSO DISPATHES INTERNAL REQUESTS FOR
   7574					;  SPECIAL KL RESTARTS SUCH AS POWER FAIL.
   7575					;
   7576					; LOCAL DATA
   7577					;
   7578	003532					.PSECT	TEXT,D
   7579	003532				TQEXIT:
   7580	003532					MESSAGE	<EXIT [YES,RESTART]?>
	003532	   105 	   130 	   111 		 .ASCIZ	\EXIT [YES,RESTART]?\
	003535	   124 	   040 	   133
	003540	   131 	   105 	   123
	003543	   054 	   122 	   105
	003546	   123 	   124 	   101
	003551	   122 	   124 	   135
	003554	   077 	   000
   7581	017422					.PSECT
KLIQE --  ASK EXIT QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 168
$DLGEX	-- ASK WHERE TO EXIT

   7583						.SBTTL	$DLGEX	-- ASK WHERE TO EXIT
   7584
   7585	017422				$DLGEX::
   7586	017422	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG CONTROL SWITCH.
   7587	017426	003045 				BGT	50$		; NORMAL EXIT.
   7588	017430	002434 				BLT	40$		; TAKE INTERNAL PATH.
   7589	017432				10$:
   7590	017432					PRINT	#TQEXIT		; ASK QUESTION
	017432	012700 	003532'			 MOV	#TQEXIT,R0
	017436	004737 	027634'			 JSR	PC,$TTMSG
   7591	017442					CALL	$TTRD		; READ ANSWER
	017442	004737 	027130'			 JSR	PC,$TTRD
   7592	017446	012705 	000304'			MOV	#.TTIBF,R5
   7593	017452	105715 				TSTB	(R5)		;  CR ?
   7594	017454	001432 				BEQ	50$		; NORMAL EXIT.
   7595	017456	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7596	017462	001427 				BEQ	50$		; NORMAL EXIT.
   7597	017464	022715 	042522 			CMP	#"RE,(R5)	;  [RESTART] ?
   7598	017470	001412 				BEQ	30$		; GO TO FIRST QUESTION.
   7599	017472	022715 	040502 			CMP	#"BA,(R5)	;  [BACK] ?
   7600	017476	001405 				BEQ	20$		; ASK PREVIOUS QUESTION.
   7601	017500					PRINT	#COMCSE		; FUMBLE FINGERS...
	017500	012700 	005552'			 MOV	#COMCSE,R0
	017504	004737 	027634'			 JSR	PC,$TTMSG
   7602	017510	000750 				BR	10$		; ASK QUESTION AGAIN.
   7603						;
   7604	017512				20$:
   7605	017512	000137 	016530'			JMP	$DLWCF		; ASK TO WRITE CONFIGURATION FILE.
   7606						;
   7607	017516				30$:
   7608	017516	000137 	021170'			JMP	$DLGEN		; ASK IF DIALOG NECESSARY.
   7609						;
   7610	017522				40$:
   7611	017522	032737 	000000G	000060'		BIT	#KL.SPF,.KLISV	; INTERNAL REQUEST ?
   7612	017530	001006 				BNE	60$		; START KL ON POWER FAIL.
   7614	017532	032737 	000000G	000060'		BIT	#KL.SSC,.KLISV
   7615	017540	001004 				BNE	70$		; START KL ON SYSTEM CRASH.
   7617	017542				50$:
   7618	017542	000137 	024022'			JMP	$EXIT		; NORMAL EXIT FROM KLINIT
   7619						;
   7620	017546				60$:
   7621	017546	000137 	022540'			JMP	$POWER		; START KL ON POWER FAIL.
   7622						;
   7624	017552				70$:
   7625	017552	000137 	022622'			JMP	$RSTRT		; START KL ON SYSTEM CRASH.
   7626						;
KLIQE --  ASK EXIT QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 169
$DLGEX	-- ASK WHERE TO EXIT

   7629
   7630
   7631						.TITLE	KLIQM -- ASK MEMORY QUESTIONS
   7632	017556					IDENT$	12,15,KLI$$F
						.IDENT	/A12150/
   7633					;
   7634					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7635					; ALL RIGHTS RESERVED.
   7636					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7637					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7638					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7639					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7640					;
   7641					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7642					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7643					; EQUIPMENT CORPORATION.
   7644					;
   7645					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7646					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7647					;
   7648					; VERSION 12-15
   7649					;
   7650					; ALAN D. PECKHAM  12-APR-77
   7651					;
   7652					; MODIFIED BY:
   7653					;
   7654					; R. BELANGER	07-NOV-79	FIX BUG IN MF-20 CONFIGURATION
   7655					;				TCO 4.1.1009
   7656					;
   7657					; R BELANGER	11-JUL-79	ADD FORCE RECONFIGURATION OPTION AND
   7658					;				FORCE RECONFIGURATION ON MF-20
   7659					;				POWER FAIL.
   7660					;				TCO 4.2322
   7661					;
   7662					; R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION OPTION
   7663					;				TCO 4.2204
   7664					; R. BELANGER	25-JUL-78	INTEGRATE WITH MOS CONFIGURATOR
   7665					;
   7666					; FUNCTION: IF REQUESTED, THIS MODULE GETS ALL INFORMATION NECESSARY TO
   7667					;  CONFIGURE THE KL MEMORY.
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 170
$DLGEX	-- ASK WHERE TO EXIT

   7669					;
   7670					; LOCAL DATA
   7671					;
   7672	003556					.PSECT	TEXT,D
   7673	003556				TQMCF0:
   7674	003556					MESSAGE	<CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?>
	003556	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?\
	003561	   106 	   111 	   107
	003564	   125 	   122 	   105
	003567	   040 	   113 	   114
	003572	   040 	   115 	   105
	003575	   115 	   117 	   122
	003600	   131 	   040 	   133
	003603	   106 	   111 	   114
	003606	   105 	   054 	   101
	003611	   114 	   114 	   054
	003614	   122 	   105 	   126
	003617	   105 	   122 	   123
	003622	   105 	   054 	   131
	003625	   105 	   123 	   054
	003630	   116 	   117 	   135
	003633	   077 	   000
   7675	003635				TQMCF1:
   7676	003635					MESSAGE	<CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?>
	003635	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?\
	003640	   106 	   111 	   107
	003643	   125 	   122 	   105
	003646	   040 	   113 	   114
	003651	   040 	   115 	   105
	003654	   115 	   117 	   122
	003657	   131 	   040 	   133
	003662	   106 	   111 	   114
	003665	   105 	   054 	   101
	003670	   114 	   114 	   054
	003673	   122 	   105 	   126
	003676	   105 	   122 	   123
	003701	   105 	   054 	   106
	003704	   117 	   122 	   103
	003707	   105 	   054 	   131
	003712	   105 	   123 	   054
	003715	   116 	   117 	   135
	003720	   077 	   000
   7677	003722				TQMNM0:
   7678	003722					ERROR	<NO MEMORY AT LOCATION ZERO>
	003722	   077 	   040 	   116 		 .ASCIZ	\? NO MEMORY AT LOCATION ZERO\
	003725	   117 	   040 	   115
	003730	   105 	   115 	   117
	003733	   122 	   131 	   040
	003736	   101 	   124 	   040
	003741	   114 	   117 	   103
	003744	   101 	   124 	   111
	003747	   117 	   116 	   040
	003752	   132 	   105 	   122
	003755	   117 	   000
   7679	003757				TQMPCA:
   7680	003757					WARNING	<PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED>
	003757	   045 	   040 	   120 		 .ASCIZ	\% PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED\
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 170-1
$DLGEX	-- ASK WHERE TO EXIT

	003762	   110 	   131 	   123
	003765	   111 	   103 	   101
	003770	   114 	   040 	   115
	003773	   105 	   115 	   117
	003776	   122 	   131 	   040
	004001	   103 	   117 	   116
	004004	   106 	   111 	   107
	004007	   125 	   122 	   101
	004012	   124 	   111 	   117
	004015	   116 	   040 	   101
	004020	   114 	   124 	   105
	004023	   122 	   105 	   104
	004026	   040 	   055 	   040
	004031	   104 	   125 	   115
	004034	   120 	   040 	   117
	004037	   122 	   040 	   122
	004042	   105 	   123 	   124
	004045	   101 	   122 	   124
	004050	   040 	   123 	   125
	004053	   120 	   120 	   122
	004056	   105 	   123 	   123
	004061	   105 	   104 	   000
   7681	017556					.PSECT
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 171
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

   7683						.SBTTL	$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY
   7684
   7685	017556				$DLGMM::
   7686	017556	105037 	000032'			CLRB	.DMSW		; CLEAR MEMORY CONTROL.
   7687	017562	005037 	000234'			CLR	.CFMRV		; [4.2204] ASSUME NORMAL CONFIGURATION
   7688	017566					CALL	MBINI		; INIT THE MEMORY BOOT
	017566	004737 	000000G			 JSR	PC,MBINI
   7689	017572	032737 	000000G	000060'		BIT	#KL.SPF,.KLISV	; POWER-FAIL RECOVERY??
   7690	017600	001403 				BEQ	5$		; NO -- GO ON
   7691	017602	112737 	177777 	000000G		MOVB	#-1,KEEPBB	; [4.2322] YES -- KEEP BAD MF20 BLOCKS
   7692	017610				5$:
   7693	017610	105737 	000024'			TSTB	.DLGSW		; TEST CONFIGURATION SWITCH.
   7694	017614	003110 				BGT	90$		; USE LAST CONFIGURATION.
   7695	017616	002460 				BLT	40$		; TAKE INTERNAL PATH.
   7696	017620				10$:
   7697	017620	012700 	003556'			MOV	#TQMCF0,R0	; [4.2322] ASSUME NO MF-20'S
   7698	017624	105737 	000045'			TSTB	.MFSW		; [4.2322] ARE THERE ANY MF-20'S??
   7699	017630	003402 				BLE	15$		; [4.2322] NO -- GO ON
   7700	017632	012700 	003635'			MOV	#TQMCF1,R0	; [4.2322] YES -- SELECT PROPER MESSAGE
   7701	017636				15$:				; [4.2322]
   7702	017636					CALL	$TTMSG		; [4.2322] ASK THE  QUESTION
	017636	004737 	027634'			 JSR	PC,$TTMSG
   7703	017642					CALL	$TTRD		; READ ANSWER.
	017642	004737 	027130'			 JSR	PC,$TTRD
   7704	017646	012705 	000304'			MOV	#.TTIBF,R5
   7705	017652	105715 				TSTB	(R5)		;  CR ?
   7706	017654	001470 				BEQ	90$		; USE LAST CONFIGURATION.
   7707	017656	022715 	044506 			CMP	#"FI,(R5)	;  [FILE] ?
   7708	017662	001465 				BEQ	90$		; USE LAST CONFIGURATION.
   7709	017664	022715 	046101 			CMP	#"AL,(R5)	;  [ALL] ?
   7710	017670	001460 				BEQ	80$		; CONFIGURE ALL MEMORY.
   7711	017672	022715 	042522 			CMP	#"RE,(R5)	; [4.2204]  [REVERSE] ?
   7712	017676	001443 				BEQ	55$		; [4.2204] YES -- DO IT
   7713	017700	022715 	047506 			CMP	#"FO,(R5)	; [4.2322]  [FORCE] ?
   7714	017704	001432 				BEQ	45$		; [4.2322] YES -- DO IT
   7715	017706	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7716	017712	001437 				BEQ	60$		; GO ON TO NEXT QUESTION.
   7717	017714	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7718	017720	001430 				BEQ	50$		; SKIP MEMORY CONFIGURATION.
   7719	017722	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   7720	017726	001405 				BEQ	20$		; ASK PREVIOUS QUESTION.
   7721	017730					PRINT	#COMCSE		; UNCOORDINATED FINGERS...
	017730	012700 	005552'			 MOV	#COMCSE,R0
	017734	004737 	027634'			 JSR	PC,$TTMSG
   7722	017740	000727 				BR	10$		; ASK QUESTION AGAIN.
   7723						;
   7725	017742				20$:
   7726	017742	105737 	000043'			TSTB	.CASW		; IS CACHE AVAILABLE ?
   7727	017746	002402 				BLT	30$		; NO, GO TO RAM QUESTION.
   7728	017750	000137 	023634'			JMP	$DLGCV		; YES, ASK ABOUT CACHE.
   7729						;
   7730	017754				30$:
   7731	017754	000137 	023674'			JMP	$DLGRV		; NO, GO TO RAM QUESTION.
   7732						;
   7738	017760				40$:
   7739	017760	032737 	000000G	000060'		BIT	#KL.CFM,.KLISV	; INTERNAL SPECIFIC REQUEST MADE ?
   7740	017766	001015 				BNE	70$		; YES -- ANALYZE FURTHER...
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 171-1
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

   7741	017770	000422 				BR	90$		; NO -- MAKE SURE CONFIGURATION STILL EXISTS
   7742						;
   7743	017772				45$:				; [4.2322]
   7744	017772	112737 	177777 	000000G		MOVB	#-1,DBEFRC	; [4.2322] FORCE THE DBE SCAN
   7745	020000	000404 				BR	60$		; [4.2322] AND GO ON
   7746						;
   7747	020002				50$:
   7748	020002	000137 	023670'			JMP	$DLGBV		; ASK TO LOAD BOOT.
   7749						;
   7750	020006				55$:				; [4.2204]
   7751	020006	005337 	000234'			DEC	.CFMRV		; [4.2204] SET REVERSE CONFIGURATION
   7752	020012				60$:
   7753	020012	113737 	000234'	000000G		MOVB	.CFMRV,CONFGR	; [4.2204] TELL THE MEMORY BOOT FORWARD OR REVERSE
   7754	020020	000407 				BR	$DSPPT		; DISPLAY THE PHYSICAL CONFIGURATION.
   7755						;
   7756	020022				70$:
   7757	020022	032737 	000000G	000060'		BIT	#KL.CFL,.KLISV	; IF NOT TO GET FROM FILE,
   7758	020030	001402 				BEQ	90$		; THEN
   7759	020032				80$:
   7760	020032	105337 	000032'			DECB	.DMSW		; INDICATE TO USE ALL AND
   7761	020036				90$:
   7762	020036	000410 				BR	$CFGMM		; GO TO CONFIGURE MEMORY.
   7763						;
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 172
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

   7765					;
   7766					; HERE FOR LONG MEMORY CONFIGURATION DIALOG
   7767					;
   7768	020040				$DSPPT::
   7769	020040	112737 	177777 	000000G		MOVB	#-1,FMRECN	; [4.2322] FORCE RECONFIGURATION
   7770	020046					CALL	RESDET		; GET PHYSICAL CONFIGURATION AND
	020046	004737 	000000G			 JSR	PC,RESDET
   7771	020052					CALL	REPCON		; DISPLAY THE MEMORY LAYOUT.
	020052	004737 	000000G			 JSR	PC,REPCON
   7772	020056	000520 				BR	$DLGCT		; ENTER CONTROLLER DIALOG.
   7773						;
   7774					;
   7775					; HERE FOR:
   7776					;
   7777					;	"FILE" IF .DMSW .EQ. 0
   7778					;	"ALL" IF .DMSW .LT. 0
   7779					;
   7780	020060				$CFGMM::
   7781	020060	105737 	000032'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   7782	020064	001006 				BNE	10$		; YES -- GO ON
   7783	020066					CALL	$GETMM		; NO -- READ THE FILE
	020066	004737 	014312'			 JSR	PC,$GETMM
   7784	020072	103510 				BCS	ERRORX		; GIVE UP IF ERROR
   7785	020074	105737 	000032'			TSTB	.DMSW		; USE ALL??
   7786	020100	001403 				BEQ	20$		; NO -- GO ON
   7787	020102				10$:
   7788	020102	112737 	177777 	000000G		MOVB	#-1,FMRECN	; [4.2322] YES -- FORCE RECONFIGURATION
   7789	020110				20$:
   7790	020110	113737 	000234'	000000G		MOVB	.CFMRV,CONFGR	; [4.2204] SET FORWARD/REVERSE CONFIGURATION
   7791	020116					CALL	RESDET		; GET PHYSICAL CONFIGURATION
	020116	004737 	000000G			 JSR	PC,RESDET
   7792	020122	105737 	000024'			TSTB	.DLGSW		; ARE WE ON INTERNAL PATH??
   7793	020126	002036 				BGE	40$		; NO -- GO ON
   7794	020130	105737 	000046'			TSTB	.MFCT		; [4.1.1009] YES -- DO WE EXPECT MOS MEMORY??
   7795	020134	001433 				BEQ	40$		; [4.1.1009] NO -- GO ON
   7796	020136	105737 	000000G			TSTB	MF20		; [4.1.1009] YES -- DO WE HAVE MOS MEMORY??
   7797	020142	001406 				BEQ	30$		; [4.1.1009] NO -- COMPLAIN
   7798	020144	105737 	000000G			TSTB	CCFAIL		; YES -- DID THE MF20'S EVAPORATE??
   7799	020150	001003 				BNE	30$		; YES -- SET UP TO RELOAD THE KL
   7800	020152	005737 	000000G			TST	XCONMP		; NO -- DO WE HAVE ANY STATE 2 CONTROLLERS??
   7801	020156	001022 				BNE	40$		; YES -- GO ON
   7802	020160				30$:
   7803	020160	042737 	000000C	000060'		BIC	#KL.SPF!KL.VBD,.KLISV ; NO -- DON'T RESTART OR DUMP THE KL
   7804	020166	052737 	000000C	000060'		BIS	#KL.VBN!KL.LVB,.KLISV ; JUST LOAD AND START IT INSTEAD
   7805	020174					PRINT	#TQMPCA		; WARN SOMEONE ABOUT IT
	020174	012700 	003757'			 MOV	#TQMPCA,R0
	020200	004737 	027634'			 JSR	PC,$TTMSG
   7806	020204	105737 	000000G			TSTB	CCFAIL		; [4.2322] DO WE NEED A DBE SCAN??
   7807	020210	001405 				BEQ	40$		; [4.2322] NO -- GO ON
   7808	020212	112737 	177777 	000000G		MOVB	#-1,DBEFRC	; [4.2322] YES -- SET THE FLAG
   7809	020220					CALL	RESDET		; [4.2322] AND DO IT
	020220	004737 	000000G			 JSR	PC,RESDET
   7810	020224				40$:
   7811	020224	105737 	000032'			TSTB	.DMSW		; IS THIS A FILE READ??
   7812	020230	001033 				BNE	$DLGCT		; NO -- DO DEFAULT DIALOG
   7813	020232				$CFGXX::
   7814	020232					CALL	$CONFG		; YES -- EDIT THE TABLES
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 172-1
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

	020232	004737 	005514'			 JSR	PC,$CONFG
   7815	020236	103424 				BCS	20$		; ERROR IF CC-C IS SET
   7816	020240					CALL	RESDET		; ONE MORE TIME
	020240	004737 	000000G			 JSR	PC,RESDET
   7817	020244					CALL	FITMEM		; SET UP LOGICAL TABLE
	020244	004737 	000000G			 JSR	PC,FITMEM
   7818	020250					CALL	REPFIT		; REPORT LOGICAL CONFIGURATION
	020250	004737 	000000G			 JSR	PC,REPFIT
   7819	020254	005737 	000000G			TST	GAPCNT		; DO WE HAVE ANY GAPS??
   7820	020260	001410 				BEQ	10$		; NO -- GO ON
   7821	020262	005737 	000000G			TST	GAPTAB+0	; YES -- IS THERE A GAP AT 0??
   7822	020266	001005 				BNE	10$		; NO -- GO ON
   7823	020270					PRINT	#TQMNM0		; YES -- COMPLAIN
	020270	012700 	003722'			 MOV	#TQMNM0,R0
	020274	004737 	027634'			 JSR	PC,$TTMSG
   7824	020300	000405 				BR	ERRORX		; AND EXIT
   7825						;
   7826	020302				10$:
   7827	020302					CALL	CONFIG		; SET REQUESTED CONFIGURATION
	020302	004737 	000000G			 JSR	PC,CONFIG
   7828	020306	000241 				CLC			; INSURE CC-C IS CLEAR
   7829	020310				20$:
   7830	020310					CALLR	$DLGMX		; RETURN TO ROOT
	020310	000137 	023666'			 JMP	$DLGMX
   7831						;
   7832	020314				ERRORX:
   7833	020314	000137 	024012'			JMP	$ERROR		; ERROR EXIT
   7834						;
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 173
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

   7836						.SBTTL	$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER
   7837
   7838	020320				$DLGCT::
   7839	020320	012700 	000040 			MOV	#CTLS,R0	; MAX CONTROLLER NUMBER
   7840	020324	012701 	000134'			MOV	#.CFGTB,R1	; POINT TO CONFIGURATION TABLE
   7841	020330				10$:
   7842	020330	116060 	177777G	000071'		MOVB	TYPNUM-1(R0),.CTLTP-1(R0) ; SET UP OUR CONTROLLER TABLE
   7843	020336	012721 	100000 			MOV	#BIT15,(R1)+	; INVALIDATE OUR CONFIGURATION TABLE
   7844	020342	077006 				SOB	R0,10$		; LOOP TILL DONE
   7845					;
   7846					; CONFIGURATION DIALOG VECTORS
   7847					;
   7848	020344				$DLGIM::
   7849	020344					CALLR	$CFIMD		; INTERNAL MEMORY DIALOG
	020344	000137 	004232'			 JMP	$CFIMD
   7850						;
   7851	020350				$DLGXM::
   7852	020350					CALLR	$CFXMD		; EXTERNAL MEMORY DIALOG
	020350	000137 	006544'			 JMP	$CFXMD
   7853						;
   7854	020354				$DLGMF::
   7855	020354					CALLR	$CFMMD		; MOS MEMORY DIALOG
	020354	000137 	004200'			 JMP	$CFMMD
   7856						;
   7857	020360				$DLGMB::
   7858	020360					CALLR	$DLGMM		; BACK UP
	020360	000137 	017556'			 JMP	$DLGMM
   7859						;
   7860					;
   7861					; DECIDE WHERE TO GO ON "BACKUP"
   7862					;
   7863	020364				$DLMB1::			; HERE FROM MOS MEMORY DIALOG
   7864	020364	105737 	000000G			TSTB	DMA20		; DO WE HAVE EXTERNAL MEMORY??
   7865	020370	001367 				BNE	$DLGXM		; YES -- GO TO IT
   7866	020372				$DLMB2::			; HERE FROM EXTERNAL MEMORY DIALOG
   7867	020372	105737 	000000G			TSTB	MA20		; DO WE HAVE MA20'S??
   7868	020376	001362 				BNE	$DLGIM		; YES -- GO TO IT
   7869	020400	105737 	000000G			TSTB	MB20		; DO WE HAVE MB20'S??
   7870	020404	001357 				BNE	$DLGIM		; YES -- GO TO IT
   7871	020406	000764 				BR	$DLGMB		; NO -- GO ALL THE WAY TO THE TOP
   7872						;
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 174
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

   7874
   7875
   7876						.TITLE	KLIQP -- MCA25 CACHE PAGER SELECT
   7877	020410					IDENT$	1,0
						.IDENT	/001000/
   7878					; COPYRIGHT (C) 1984, 1985 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
   7879					; ALL RIGHTS RESERVED.
   7880					; VERSION 1-00
   7881					;
   7882					; M. RUDENKO	16-FEB-84
   7883					;
   7884					; FUNCTION: CHECKS FOR EXISTENCE OF MCA25 CACHE PAGE UPGRAGE, AND ALLOWS
   7885					;  OPERATOR TO SELECT WHICH PAGE TABLE TO USE.
   7886					;
   7887					; LOCAL DATA
   7888					;
   7889	004064					.PSECT TEXT,D
   7890	004064				TQSPT:	MESSAGE	<SELECT PAGE TABLE [FILE,BOTH,0,1]?>
	004064	   123 	   105 	   114 		 .ASCIZ	\SELECT PAGE TABLE [FILE,BOTH,0,1]?\
	004067	   105 	   103 	   124
	004072	   040 	   120 	   101
	004075	   107 	   105 	   040
	004100	   124 	   101 	   102
	004103	   114 	   105 	   040
	004106	   133 	   106 	   111
	004111	   114 	   105 	   054
	004114	   102 	   117 	   124
	004117	   110 	   054 	   060
	004122	   054 	   061 	   135
	004125	   077 	   000
   7891
   7892	004127				TXPTS:	MESSAGE <KLI -- PAGE TABLE SELECTED: _>
	004127	   113 	   114 	   111 		 .ASCIZ	\KLI -- PAGE TABLE SELECTED: _\
	004132	   040 	   055 	   055
	004135	   040 	   120 	   101
	004140	   107 	   105 	   040
	004143	   124 	   101 	   102
	004146	   114 	   105 	   040
	004151	   123 	   105 	   114
	004154	   105 	   103 	   124
	004157	   105 	   104 	   072
	004162	   040 	   137 	   000
   7893	004165				TXBOTH:	MESSAGE <BOTH>
	004165	   102 	   117 	   124 		 .ASCIZ	\BOTH\
	004170	   110 	   000
   7894
   7895	020410					.PSECT
   7896	020410				$DLGPA::
   7897	020410	105037 	000034'			CLRB	.PTSW		; [**] RESET PAGE TABLE MODIFIED SWITCH
   7898	020414	005037 	000524'			CLR	.PTSEL		; [**] INITIALIZE PAGE TABLE SELECTED
   7899	020420	105037 	000304'			CLRB	.TTIBF		; [**] CLEAR BUFFER TO ECHO POSSIBLE DEFAULT
   7900	020424	105737 	000024'			TSTB	.DLGSW		; [**] TEST DIALOG SWITCH
   7901	020430	001043 				BNE	55$		; [**] TAKE DEFAULT PATH
   7902	020432				10$:
   7903	020432					PRINT	#TQSPT		; [**] ASK WHICH PAGE TABLE(S)
	020432	012700 	004064'			 MOV	#TQSPT,R0
	020436	004737 	027634'			 JSR	PC,$TTMSG
KLIQP -- MCA25 CACHE PAGER SELE	MACRO M1113  03-APR-86 20:55  PAGE 174-1
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

   7904	020442					CALL	$TTRD		; [**] READ REPLY
	020442	004737 	027130'			 JSR	PC,$TTRD
   7905	020446	012705 	000304'			MOV	#.TTIBF,R5	; [**] LOCATE FIRST TWO CHARS OF RESPONSE
   7906	020452	105715 				TSTB	(R5)		; [**] [CR]?
   7907	020454	001431 				BEQ	55$		; [**] DEFAULT TO FILE
   7908	020456	022715 	040502 			CMP	#"BA,(R5)	; [**] [BACKUP]?
   7909	020462	001504 				BEQ	90$		; [**] YES..DO IT
   7910	020464	022715 	047502 			CMP	#"BO,(R5)	; [**] [BOTH]?
   7911	020470	001434 				BEQ	60$		; [**] GO SELECT BOTH PAGE TABLES
   7912	020472	022715 	044506 			CMP	#"FI,(R5)	; [**] [FILE]?
   7913	020476	001420 				BEQ	55$		; [**] READ FROM CONFIGURATION FILE
   7914					;
   7915					; STILL NO MATCH -- MAYBE A NUMBER WAS ENTERED...
   7916					;
   7917	020500					CALL	$TRI2B		; [**] CONVERT ASCII TO NUMERIC
	020500	004737 	025424'			 JSR	PC,$TRI2B
   7918	020504	103466 				BCS	80$		; [**] UNRECOGNIZED INPUT -- COMPLAIN
   7919	020506	022700 	000002 			CMP	#2,R0		; [**] OUT OF RANGE?
   7920	020512	003463 				BLE	80$		; [**] COMPLAIN AND RETRY
   7921	020514	005700 				TST	R0		; [**] PAGE TABLE ONE ONLY?
   7922	020516	001003 				BNE	50$		; [**] YES -- SET IT UP
   7923
   7924	020520				40$:
   7925	020520	012703 	001554'			MOV	#DQSP0,R3	; [**] SELECT PAGE TABLE ZERO ONLY
   7926	020524	000422 				BR	70$		; [**] EXECUTE MICRO-INSTRUCTION
   7927	020526				50$:
   7928	020526	012703 	001570'			MOV	#DQSP1,R3	; [**] SELECT PAGE TABLE ONE ONLY
   7929	020532	005237 	000524'			INC	.PTSEL		; [**] SAVE PAGE TABLE USED
   7930	020536	000415 				BR	70$		; [**] EXECUTE MICRO-INSTRUCTION
   7931	020540				55$:
   7932	020540	105337 	000034'			DECB	.PTSW		; [**] DON'T AUTO WRITE CONFIG FILE
   7933	020544					CALL	$GETPA		; [**] READ CONFIGURATION FILE
	020544	004737 	014562'			 JSR	PC,$GETPA
   7934	020550	022701 	000001 			CMP	#1,R1		; [**] IF PAGE ONE CHOSEN ...
   7935	020554	001764 				BEQ	50$		; [**] THEN SET IT UP
   7936	020556	005701 				TST	R1		; [**] IF PAGE ZERO WAS SELECTED ...
   7937	020560	001757 				BEQ	40$		; [**] THEN SET IT UP, ELSE ...
   7938	020562				60$:
   7939	020562	012703 	001604'			MOV	#DQSP01,R3	; [**] SELECT PAGE TABLES ZERO & ONE
   7940	020566	005337 	000524'			DEC	.PTSEL		; [**] SAVE PAGE TABLE USED (-1=BOTH)
   7941	020572				70$:
   7942	020572	105237 	000034'			INCB	.PTSW		; [**] FLAG THAT A PAGE TABLE CHANGE WAS MADE
   7943	020576	105237 	000051'			INCB	.MCSW		; [**] FLAG THAT WE WANT A PAGE TABLE SELECTION
   7944	020602					CALL	LQSHWO		; [**] EXECUTE MICRO-INSTRUCTION
	020602	004737 	022312'			 JSR	PC,LQSHWO
   7945	020606	105037 	000051'			CLRB	.MCSW		; [**] ANY FURTHER CALL TO LQSHWO WILL BE APRID
   7946
   7947					; FIGURE OUT WHICH PAGE TABLE WAS SELECTED AND DISPLAY IT
   7948	020612	012700 	004127'			MOV	#TXPTS,R0	; [**] THE PAGE TABLE WHICH WAS PICKED WAS ...
   7949	020616					CALL	$TTDMS		; [**] PRINT MESSAGE
	020616	004737 	027566'			 JSR	PC,$TTDMS
   7950	020622	005737 	000524'			TST	.PTSEL		; [**] WERE BOTH PAGE SELECTED?
   7951	020626	002005 				BGE	100$		; [**] NO -- PRINT WHICH ONE
   7952	020630	012700 	004165'			MOV	#TXBOTH,R0	; [**] YES -- SET UP AND ...
   7953	020634					CALL	$TTDMS		; [**] PRINT "BOTH"
	020634	004737 	027566'			 JSR	PC,$TTDMS
   7954	020640	000404 				BR	105$		; [**] AND ADD CRLF
KLIQP -- MCA25 CACHE PAGER SELE	MACRO M1113  03-APR-86 20:55  PAGE 174-2
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

   7955	020642				100$:
   7956	020642	013700 	000524'			MOV	.PTSEL,R0	; [**] FETCH PAGE SELECTED
   7957	020646					CALL	$TDB2I		; [**] PRINT IT
	020646	004737 	025264'			 JSR	PC,$TDB2I
   7958	020652				105$:
   7959	020652					CALL	$TCRLF		; [**] ADD CR/LF
	020652	004737 	027530'			 JSR	PC,$TCRLF
   7960	020656				75$:
   7961	020656	000137 	020700'			JMP	$DLGRM		; [**] GO ON TO NEXT DIALOG
   7962	020662				80$:
   7963	020662					PRINT	#COMCSE		; [**] UNRECOGNIZED INPUT
	020662	012700 	005552'			 MOV	#COMCSE,R0
	020666	004737 	027634'			 JSR	PC,$TTMSG
   7964	020672	000657 				BR	10$		; [**] TRY AGAIN
   7965	020674				90$:
   7966	020674	000137 	021170'			JMP	$DLGEN		; [**] GO BACK TO PREVIOUS DIALOG
   7967
   7968						.TITLE	KLIQR -- ASK RAM QUESTIONS
   7969	020700					IDENT$	5,4
						.IDENT	/005040/
   7970					;
   7971					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7972					; ALL RIGHTS RESERVED.
   7973					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7974					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7975					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7976					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7977					;
   7978					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7979					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7980					; EQUIPMENT CORPORATION.
   7981					;
   7982					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7983					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7984					;
   7985					; VERSION 05-04
   7986					;
   7987					; ALAN D. PECKHAM  14-APR-77
   7988					;
   7989					; MODIFIED BY:
   7990					;
   7991					;	K. LEFEBVRE	13-MAR-79	ADD EXPANDED CRAM/DRAM ERROR REPORT
   7992					;					TCO 4.2209
   7993					;
   7994					;	S. LEAPLINE	25-SEP-80	FIX 'BACK' RESPONCE BRANCH FOR MICROCODE
   7995					;
   7996					; FUNCTION: THIS MODULE DETERMINES THE OPERATIONS TO PERFORM ON THE KL
   7997					;  MICROCODE RAMS.
   7998					;
   7999					; LOCAL DATA
   8000					;
   8001	004172					.PSECT	TEXT,D
   8002	004172				TQRLMC:	MESSAGE	<RELOAD MICROCODE [YES,VERIFY,FIX,NO]?>
	004172	   122 	   105 	   114 		 .ASCIZ	\RELOAD MICROCODE [YES,VERIFY,FIX,NO]?\
	004175	   117 	   101 	   104
	004200	   040 	   115 	   111
	004203	   103 	   122 	   117
KLIQR -- ASK RAM QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 174-3
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

	004206	   103 	   117 	   104
	004211	   105 	   040 	   133
	004214	   131 	   105 	   123
	004217	   054 	   126 	   105
	004222	   122 	   111 	   106
	004225	   131 	   054 	   106
	004230	   111 	   130 	   054
	004233	   116 	   117 	   135
	004236	   077 	   000
   8003	020700					.PSECT
KLIQR -- ASK RAM QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 175
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8005						.SBTTL	$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED
   8006
   8007	020700	105037 	000027'		$DLGRM::CLRB	.DRSW		; RESET CONTROL AND
   8008	020704	105037 	000025'			CLRB	.MCBSW		; FILENAME SWITCH.
   8009	020710	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG SWITCH.
   8010	020714	003111 				BGT	90$		; TAKE DIALOG DEFAULT PATH.
   8011	020716	002446 				BLT	30$		; TAKE INTERNAL PATH.
   8012	020720	005002 			10$:	CLR	R2		; USE AS VERIFY SWITCH.
   8013	020722					PRINT	#TQRLMC		; ASK QUESTION
	020722	012700 	004172'			 MOV	#TQRLMC,R0
	020726	004737 	027634'			 JSR	PC,$TTMSG
   8014	020732					CALL	$TTRD		; READ ANSWER
	020732	004737 	027130'			 JSR	PC,$TTRD
   8015	020736	012705 	000304'			MOV	#.TTIBF,R5
   8016	020742	105715 				TSTB	(R5)		;  CR ?
   8017	020744	001475 				BEQ	90$		; YES, TREAT AS [YES]
   8018	020746	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   8019	020752	001450 				BEQ	60$		; LOAD THE RAMS.
   8020	020754	022715 	042526 			CMP	#"VE,(R5)	;  [VERIFY] ?
   8021	020760	001444 				BEQ	50$		; VERIFY THE RAMS.
   8022	020762	022715 	044506 			CMP	#"FI,(R5)	; [4.2209]  [FIX] ?
   8023	020766	001435 				BEQ	35$		; [4.2209] VERIFY AND FIX THE RAMS.
   8024	020770	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   8025	020774	001434 				BEQ	40$		; GO ON TO NEXT QUESTION.
   8026	020776	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   8027	021002	001405 				BEQ	20$		; GO BACK TO DIALOGUE QUESTION
   8028	021004				80$:	PRINT	#COMCSE		; MUST BE SOME MISTAKE...
	021004	012700 	005552'			 MOV	#COMCSE,R0
	021010	004737 	027634'			 JSR	PC,$TTMSG
   8029	021014	000741 				BR	10$		; ASK QUESTION AGAIN.
   8030	021016	105737 	000035'		20$:	TSTB	.MCA25		; [**] DOES CACHE PAGER EXIST?
   8031	021022	003402 				BLE	25$		; [**] NO -- GO BACK TO INTIALIZATION
   8032	021024	000137 	020410'			JMP	$DLGPA		; [**] YES -- GO TO PAGER DIALOG
   8033	021030				25$:
   8034	021030	000137 	021170'			JMP	$DLGEN		; ASK IF DIALOG NECESSARY.
   8035	021034	005002 			30$:	CLR	R2		; [4.2209] CLEAR FIX FLAG
   8036	021036	032737 	000000G	000060'		BIT	#KL.LRM,.KLISV	; LOAD RAMS ?
   8037	021044	001410 				BEQ	40$		; [4.2209] NO-- NEXT QUESTION
   8038	021046	032737 	000000C	000060'		BIT	#KL.SPF!KL.DEF,.KLISV	; [4.2209] YES-- POWER FAIL?
   8039	021054	001027 				BNE	70$		; [4.2209] YES-- NO VERIFY
   8040	021056	105302 				DECB	R2		; [4.2209] YES-- VERIFY AND FIX THE RAMS.
   8041	021060	000425 				BR	70$		; [4.2209] CONTINUE.
   8042	021062	105302 			35$:	DECB	R2		; [4.2209] SET FLAG TO FIX RAMS.
   8043	021064	000403 				BR	60$		; [4.2209] CONTINUE.
   8045	021066	000137 	017066'		40$:	JMP	$DLGCA		; CHECK FOR CACHE.
   8049	021072	105202 			50$:	INCB	R2		; INDICATE VERIFICATION NECESSARY
   8050	021074				60$:	CALL	LQRBPS		; CHECK FOR OPERAND
	021074	004737 	021144'			 JSR	PC,LQRBPS
   8051	021100	001415 				BEQ	70$		; NO OPERAND IS OKAY.				; ADP01
   8052	021102	012700 	000456'			MOV	#.MCBFN,R0	; GET USER FILENAME BLOCK
   8053	021106	012701 				MOV	(PC)+,R1
   8054	021110	050672 				.RAD50	/MCB/		; SET DEFAULT FILE TYPE
   8055	021112	010160 	000006 			MOV	R1,6(R0)
   8056	021116					CALL	$TRF2B		; AND GET FILE NAME.
	021116	004737 	025146'			 JSR	PC,$TRF2B
   8057	021122	103730 				BCS	80$
   8058	021124	105715 				TSTB	(R5)		; CHECK FOR PROPER TERMINATION.
KLIQR -- ASK RAM QUESTIONS	MACRO M1113  03-APR-86 20:55  PAGE 175-1
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8059	021126	001326 				BNE	80$
   8060	021130	105237 	000025'			INCB	.MCBSW		; FILE NAME HAS BEEN SPECIFIED.
   8061	021134	110237 	000027'		70$:	MOVB	R2,.DRSW	; INSERT VERIFY SWITCH.
   8062	021140	000137 	023626'		90$:	JMP	$CFGRM		; AND GO PROCESS MICROCODE.
   8063
   8064					;+
   8065					; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
   8066					;-
   8067
   8068	021144	105715 			LQRBPS:	TSTB	(R5)		; IF END OF LINE
   8069	021146	001407 				BEQ	90$		; THEN QUIT
   8070	021150	122725 	000040 			CMPB	#' ,(R5)+	; OTHERWISE LOOK
   8071	021154	001373 				BNE	LQRBPS		; FOR A SPACE.
   8072	021156	122725 	000040 		10$:	CMPB	#' ,(R5)+	; THEN BYPASS
   8073	021162	001775 				BEQ	10$		; ANY MORE THAT FOLLOW.
   8074	021164	105745 				TSTB	-(R5)		; TEST FOR END OF LINE.
   8075	021166				90$:	RETURN
	021166	000207 				 RTS	PC
   8076						.TITLE	KLIQS -- DIALOG ENTRANCE QUESTION
   8077	021170					IDENT$	15,12
						.IDENT	/015120/
   8078
   8079					;
   8080					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8081					; ALL RIGHTS RESERVED.
   8082					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8083					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8084					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8085					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8086					;
   8087					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8088					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8089					; EQUIPMENT CORPORATION.
   8090					;
   8091					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8092					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8093					;
   8094					; VERSION 15-12
   8095					;
   8096					; ALAN D. PECKHAM  14-APR-77
   8097					;
   8098					; MODIFIED BY:
   8099					;
   8100					; R. BELANGER 22-OCT-79		ADD CACHE SWEEP ON AUTO-RELOAD AND BOOT OPTIONS
   8101					;				TCO 5.1013
   8102					;
   8103					; R. BELANGER	16-JUL-79	ADD KL10 HARDWARE ENVIRONMENTAL REPORTING
   8104					;				TCO 4.2333
   8105					;
   8106					; R. BELANGER -- SET MF20 FLAG ON DETECTION OF MOS MASTER OSCILLATOR
   8107					;
   8108					; S. LEAPLINE	13-AUG-81	USE SAVED BOOT FILENAME ON "BOOT" RESPONSE
   8109					;
   8110					; M. RUDENKO	16-FEB-84	ADD MCA25 CHACHE PAGER UPGRADE
   8111					;
   8112					;
   8113					; FUNCTION: THIS DIALOG QUESTION DETERMINES IF THE OPERATOR
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 175-2
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8114					;  WANTS TO GO THROUGH THE DIALOG QUESTIONS OR FOLLOW
   8115					;  THE DEFAULT PATH BY ASSUMING THE DEFAULT ANSWER TO
   8116					;  ALL QUESTIONS.
   8117					;
   8118					; EQUATED SYMBOLS
   8119					;
   8120		000014 				CCA = 14		; [5.1013] KL INTERNAL CACHE DEVICE
   8121		000002 				BLKO = 2		; [5.1013] KL OPCODE
   8122					;
   8123					; LOCAL MACROS
   8124					;
   8125						.MCALL	MRKT$,CLEF$S,WTSE$S,DIR$
   8126					;
   8127					; LOCAL VARIABLES
   8128					;
   8129
   8130	001554					.PSECT	DATA,D
   8131
   8132	001554				DQSP0::
   8133	001554	000002 	000420 	070400 		.WORD	2,420,70400,20000,0,10  ;[**] C-RAM WORD TO SELECT PAGE TABLE 0
	001562	020000 	000000 	000010
   8134	001570				DQSP1::
   8135	001570	000000 	000420 	071400 		.WORD	0,420,71400,20000,0,10  ;[**] C-RAM WORD TO SELECT PAGE TABLE 1
	001576	020000 	000000 	000010
   8136	001604				DQSP01::
   8137	001604	000000 	000420 	070000 		.WORD	0,420,70000,20000,0,10  ;[**] C-RAM WORD TO SELECT PAGE TBL 0&1
	001612	020000 	000000 	000010
   8138	001620				DQSCSW:
   8139	001620					IO10$	BLKO,CCA,,0	; [5.1013] SWEEP CACHE AND UPDATE CORE
	001620	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001623	   015 	   016 			 .BYTE	BY$$3,BY$$4
   8140						.EVEN
   8141	001626				DQSMKT:
   8142	001626					MRKT$	5.,30.,0,0	; [5.1013] HALF-SECOND WAIT
	001626	   027 	   005 			.BYTE	23.,5
	001630	000005 				.WORD	5.
	001632	000036 				.WORD	30.
	001634	000000 				.WORD	0
	001636	000000 				.WORD	0
   8143	001640				DQSCBF:
   8144	001640	000000 	000000 	000000 		.WORD	0,0,0,0,0,0	;HOLDING AREA FOR C-RAM WORD ZERO.
	001646	000000 	000000 	000000
   8145	001654				DQSCF3:
   8146	001654	000000 	000460 	000000 		.WORD	0,460,0,0,0,0	;C-RAM WORD WITH COND FIELD = 3.
	001662	000000 	000000 	000000
   8147	001670				DQSAPR:
   8148	001670					WD36$	0 0		;HOLDING AREA FOR RH(APRID)
	001670	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001673	   000 	   000 			 .BYTE	BY$$3,BY$$4
   8149						.EVEN
   8150	001676				DQSHWT:
   8151	001676	004402'				.WORD	TQSMCA		;[**] MCA25 REPORT ADDRESS
   8152	001700	004435'				.WORD	TQSMMO
   8153	001702	004474'				.WORD	TQSEXT
   8154	001704	004531'				.WORD	TQSCHN
   8155	001706	004564'				.WORD	TQSCAC
   8156	001710	000000 				.WORD	0
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 175-3
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8157
   8158	004240					.PSECT	TEXT,D
   8159
   8160	004240				TQSDLG:
   8161	004240					MESSAGE	<ENTER DIALOG [NO,YES,EXIT,BOOT]?>
	004240	   105 	   116 	   124 		 .ASCIZ	\ENTER DIALOG [NO,YES,EXIT,BOOT]?\
	004243	   105 	   122 	   040
	004246	   104 	   111 	   101
	004251	   114 	   117 	   107
	004254	   040 	   133 	   116
	004257	   117 	   054 	   131
	004262	   105 	   123 	   054
	004265	   105 	   130 	   111
	004270	   124 	   054 	   102
	004273	   117 	   117 	   124
	004276	   135 	   077 	   000
   8162	004301				TQSKSN:
   8163	004301					MESSAGE <KLI -- KL10 S/N: _>
	004301	   113 	   114 	   111 		 .ASCIZ	\KLI -- KL10 S/N: _\
	004304	   040 	   055 	   055
	004307	   040 	   113 	   114
	004312	   061 	   060 	   040
	004315	   123 	   057 	   116
	004320	   072 	   040 	   137
	004323	   000
   8164	004324				TQSMDL:
   8165	004324					MESSAGE <., MODEL _>
	004324	   056 	   054 	   040 		 .ASCIZ	\., MODEL _\
	004327	   115 	   117 	   104
	004332	   105 	   114 	   040
	004335	   137 	   000
   8166	004337				TQSHRZ:
   8167	004337	   040 	   110 	   105 		.ASCIZ / HERTZ\/
	004342	   122 	   124 	   132
	004345	   134 	   000
   8168	004347				TQSHWP:
   8169	004347					MESSAGE <KL10 HARDWARE ENVIRONMENT:>
	004347	   113 	   114 	   061 		 .ASCIZ	\KL10 HARDWARE ENVIRONMENT:\
	004352	   060 	   040 	   110
	004355	   101 	   122 	   104
	004360	   127 	   101 	   122
	004363	   105 	   040 	   105
	004366	   116 	   126 	   111
	004371	   122 	   117 	   116
	004374	   115 	   105 	   116
	004377	   124 	   072 	   000
   8170	004402				TQSMCA:
   8171	004402	   040 	   040 	   040 		.ASCIZ /        MCA25 CACHE PAGER\/
	004405	   040 	   040 	   040
	004410	   040 	   040 	   115
	004413	   103 	   101 	   062
	004416	   065 	   040 	   103
	004421	   101 	   103 	   110
	004424	   105 	   040 	   120
	004427	   101 	   107 	   105
	004432	   122 	   134 	   000
   8172	004435				TQSMMO:
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 175-4
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8173	004435	   040 	   040 	   040 		.ASCIZ /        MOS MASTER OSCILLATOR\/
	004440	   040 	   040 	   040
	004443	   040 	   040 	   115
	004446	   117 	   123 	   040
	004451	   115 	   101 	   123
	004454	   124 	   105 	   122
	004457	   040 	   117 	   123
	004462	   103 	   111 	   114
	004465	   114 	   101 	   124
	004470	   117 	   122 	   134
	004473	   000
   8174	004474				TQSEXT:
   8175	004474	   040 	   040 	   040 		.ASCIZ /        EXTENDED ADDRESSING\/
	004477	   040 	   040 	   040
	004502	   040 	   040 	   105
	004505	   130 	   124 	   105
	004510	   116 	   104 	   105
	004513	   104 	   040 	   101
	004516	   104 	   104 	   122
	004521	   105 	   123 	   123
	004524	   111 	   116 	   107
	004527	   134 	   000
   8176	004531				TQSCHN:
   8177	004531	   040 	   040 	   040 		.ASCIZ /        INTERNAL CHANNELS\/
	004534	   040 	   040 	   040
	004537	   040 	   040 	   111
	004542	   116 	   124 	   105
	004545	   122 	   116 	   101
	004550	   114 	   040 	   103
	004553	   110 	   101 	   116
	004556	   116 	   105 	   114
	004561	   123 	   134 	   000
   8178	004564				TQSCAC:
   8179	004564	   040 	   040 	   040 		.ASCIZ /        CACHE\/
	004567	   040 	   040 	   040
	004572	   040 	   040 	   103
	004575	   101 	   103 	   110
	004600	   105 	   134 	   000
   8180	004603				TQSCDH:
   8181	004603					ERROR	<CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT>
	004603	   077 	   040 	   103 		 .ASCIZ	\? CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT\
	004606	   101 	   116 	   047
	004611	   124 	   040 	   104
	004614	   105 	   124 	   105
	004617	   122 	   115 	   111
	004622	   116 	   105 	   040
	004625	   113 	   114 	   061
	004630	   060 	   040 	   110
	004633	   101 	   122 	   104
	004636	   127 	   101 	   122
	004641	   105 	   040 	   105
	004644	   116 	   126 	   111
	004647	   122 	   117 	   116
	004652	   115 	   105 	   116
	004655	   124 	   000
   8182	004657				TQSWRN:
   8183	004657					WARNING <PROCEED AT YOUR OWN RISK>
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 175-5
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

	004657	   045 	   040 	   120 		 .ASCIZ	\% PROCEED AT YOUR OWN RISK\
	004662	   122 	   117 	   103
	004665	   105 	   105 	   104
	004670	   040 	   101 	   124
	004673	   040 	   131 	   117
	004676	   125 	   122 	   040
	004701	   117 	   127 	   116
	004704	   040 	   122 	   111
	004707	   123 	   113 	   000
   8184	004712				TQSABO:
   8185	004712					WARNING <AUTOMATIC RELOAD ABORTED>
	004712	   045 	   040 	   101 		 .ASCIZ	\% AUTOMATIC RELOAD ABORTED\
	004715	   125 	   124 	   117
	004720	   115 	   101 	   124
	004723	   111 	   103 	   040
	004726	   122 	   105 	   114
	004731	   117 	   101 	   104
	004734	   040 	   101 	   102
	004737	   117 	   122 	   124
	004742	   105 	   104 	   000
   8186	004745				TQSMMA:
   8187	004745					ERROR	<CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU>
	004745	   077 	   040 	   103 		 .ASCIZ	\? CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU\
	004750	   101 	   116 	   047
	004753	   124 	   040 	   123
	004756	   125 	   120 	   120
	004761	   117 	   122 	   124
	004764	   040 	   115 	   117
	004767	   123 	   040 	   115
	004772	   105 	   115 	   117
	004775	   122 	   131 	   040
	005000	   117 	   116 	   040
	005003	   101 	   040 	   115
	005006	   117 	   104 	   105
	005011	   114 	   040 	   042
	005014	   101 	   042 	   040
	005017	   103 	   120 	   125
	005022	   000
   8188
   8189	021170					.PSECT
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 176
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8191						.SBTTL	$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED
   8192
   8193	021170				$DLGEN::
   8194	021170	105037 	000047'			CLRB	.FILSW		; SAY WRITE CONFIGURATION FILE
   8195	021174	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG CONTROL SWITCH.
   8196	021200	002440 				BLT	40$		; TAKE INTERNAL PATH.
   8197	021202	105037 	000024'			CLRB	.DLGSW		; RESET CONTROL SWITCH.
   8198					;
   8199					; ENTER DIALOGUE
   8200					;
   8201	021206				10$:
   8202	021206					PRINT	#TQSDLG		; ASK QUESTION.
	021206	012700 	004240'			 MOV	#TQSDLG,R0
	021212	004737 	027634'			 JSR	PC,$TTMSG
   8203	021216					CALL	$TTRD		; READ ANSWER
	021216	004737 	027130'			 JSR	PC,$TTRD
   8204	021222	012705 	000304'			MOV	#.TTIBF,R5
   8205	021226	105715 				TSTB	(R5)		;  CR ?
   8206	021230	001421 				BEQ	30$		; YES, TREAT AS DEFAULT
   8207	021232	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   8208	021236	001416 				BEQ	30$		; TAKE DEFAULT DIALOG PATH.
   8209	021240	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   8210	021244	001424 				BEQ	45$		; [5.1013] ASK NEXT QUESTION.
   8211	021246	022715 	054105 			CMP	#"EX,(R5)	;  [EXIT] ?
   8212	021252	001522 				BEQ	120$		; EXIT FROM KLINIT.
   8213	021254	022715 	047502 			CMP	#"BO,(R5)	;  [BOOT] ?
   8214	021260	001437 				BEQ	60$		; LOAD AND START BOOT.
   8215					;
   8216					; COMMAND SYNTAX ERROR
   8217					;
   8218	021262				20$:
   8219	021262					PRINT	#COMCSE		; SOME MISTAKE....
	021262	012700 	005552'			 MOV	#COMCSE,R0
	021266	004737 	027634'			 JSR	PC,$TTMSG
   8220	021272	000745 				BR	10$		; ASK QUESTION AGAIN.
   8221						;
   8222					;
   8223					; "NO" RESPONSE
   8224					;
   8225	021274				30$:
   8226	021274	105237 	000024'			INCB	.DLGSW		; INDICATE DEFAULT PATH
   8227	021300	000406 				BR	45$		; [5.1013] AND GO ON
   8228						;
   8229					;
   8230					; INTERNAL PATH
   8231					;
   8232	021302				40$:
   8233	021302	032737 	000000G	000060'		BIT	#KL.LRM,.KLISV	; [5.1013] MUST WE LOAD THE RAMS??
   8234	021310	001002 				BNE	45$		; [5.1013] YES -- FORGET ABOUT CACHE SWEEP
   8235	021312					CALL	LQSCSW		; [5.1013] NO -- SWEEP THE CACHE
	021312	004737 	022434'			 JSR	PC,LQSCSW
   8236					;
   8237					; "YES" RESPONSE
   8238					;
   8239	021316				45$:
   8240	021316					CALL	LQSHWE		; [4.2333] READ AND DESCRIBE OUR HARDWARE
	021316	004737 	021556'			 JSR	PC,LQSHWE
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 176-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8241	021322	103007 				BCC	50$		; [4.2333] ALL OK IF CC-C IS CLEAR
   8242	021324	105737 	000024'			TSTB	.DLGSW		; [4.2333] ARE WE ON INTERNAL PATH??
   8243	021330	002467 				BLT	110$		; [4.2333] YES -- ABORT AUTOMATIC RELOAD
   8244	021332					PRINT	#TQSWRN		; [4.2333] NO -- WARN OPERATOR
	021332	012700 	004657'			 MOV	#TQSWRN,R0
	021336	004737 	027634'			 JSR	PC,$TTMSG
   8245	021342				50$:
   8246	021342	105737 	000035'			TSTB	.MCA25		; [**] DOES MCA25 EXIST?
   8247	021346	003402 				BLE	55$		; [**] NO -- START WITH RAM DIALOG
   8248	021350	000137 	020410'			JMP	$DLGPA		; [**] YES -- START WITH PAGER DIALOG
   8249	021354				55$:
   8250	021354	000137 	020700'			JMP	$DLGRM		; AND START DIALOGUE
   8251						;
   8252					;
   8253					; "BOOT" RESPONSE
   8254					;
   8255	021360				60$:
   8256	021360	105037 	000033'			CLRB	.DBSW
   8257	021364	105337 	000047'			DECB	.FILSW		; DISABLE CONFIGURATION FILE WRITE
   8258	021370	105037 	000026'			CLRB	.UFNSW		; USE DEFAULT FILE
   8259	021374					CALL	LQSBPS		; IF OPERAND FOLLOWS
	021374	004737 	021532'			 JSR	PC,LQSBPS
   8260	021400	001416 				BEQ	70$		; THEN
   8261	021402	012700 	000476'			MOV	#.USRFN,R0	; GET FILENAME BLOCK
   8262	021406	012701 				MOV	(PC)+,R1
   8263	021410	021402 				.RAD50	/EXB/		; SET DEFAULT EXTENSION
   8264	021412	010160 	000006 			MOV	R1,6(R0)
   8265	021416					CALL	$TRF2B		; AND PARSE OUT FILE NAME.
	021416	004737 	025146'			 JSR	PC,$TRF2B
   8266	021422	103717 				BCS	20$
   8267	021424	105715 				TSTB	(R5)		; IF NOT TERMINATED PROPERLY
   8268	021426	001315 				BNE	20$		; TELL HIM SO.
   8269	021430	105237 	000026'			INCB	.UFNSW		; INDICATED FILE NAME SPECIFIED.
   8270	021434	000402 				BR	71$
   8271	021436				70$:
   8272	021436					CALL	LQBRBF		; READ SAVED BOOT FILE NAME
	021436	004737 	016656'			 JSR	PC,LQBRBF
   8273	021442				71$:	CALL	HLTNOE		; HALT THE KL AND DISABLE -20F INTERRUPTIONS
	021442	004737 	022266'			 JSR	PC,HLTNOE
   8274	021446					CALL	LQSCSW		; [5.1013] SWEEP THE CACHE
	021446	004737 	022434'			 JSR	PC,LQSCSW
   8275	021452					CALL	LQSHDW		; [4.2333] READ THE HARDWARE OPTIONS
	021452	004737 	022072'			 JSR	PC,LQSHDW
   8276	021456	103003 				BCC	80$		; [4.2333] ALL OK IF CC-C IS CLEAR
   8277	021460					CALL	LQSCHE		; [4.2333] TELL HIM WE GOT AN ERROR
	021460	004737 	022052'			 JSR	PC,LQSCHE
   8278	021464	000403 				BR	90$		; [4.2333] AND GO ON
   8279						;
   8280	021466				80$:
   8281	021466					CALL	LQSCHO		; [4.2333] MAKE SURE THAT WE ARE OK
	021466	004737 	022026'			 JSR	PC,LQSCHO
   8282	021472	103004 				BCC	100$		; [4.2333] ALL OK IF CC-C IS CLEAR
   8283	021474				90$:
   8284	021474					PRINT	#TQSWRN		; [4.2333] WARN HIM
	021474	012700 	004657'			 MOV	#TQSWRN,R0
	021500	004737 	027634'			 JSR	PC,$TTMSG
   8285	021504				100$:
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 176-2
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8286	021504	000137 	023714'			JMP	$CFGBT		; AND GO LOAD BOOT.
   8287						;
   8288					;
   8289					; HERE TO ABORT AN AUTOMATIC RELOAD
   8290					;
   8291	021510				110$:
   8292	021510					PRINT	#TQSABO		; [4.2333] SAY THAT WE ARE ABORTING
	021510	012700 	004712'			 MOV	#TQSABO,R0
	021514	004737 	027634'			 JSR	PC,$TTMSG
   8293					;
   8294					; "EXIT" RESPONSE
   8295					;
   8296	021520				120$:
   8297	021520	013737 	000062'	000000G		MOV	.SNSAV,.CPUSN	; [4.2333] RESTORE SERIAL NUMBER
   8298	021526	000137 	024022'			JMP	$EXIT		; EXIT FROM KLINIT.
   8299						;
   8300
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 177
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8302					;+
   8303					; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
   8304					;-
   8305
   8306	021532				LQSBPS:
   8307	021532	105715 				TSTB	(R5)		; IF END OF LINE
   8308	021534	001407 				BEQ	20$		; THEN QUIT
   8309	021536	122725 	000040 			CMPB	#' ,(R5)+	; OTHERWISE LOOK
   8310	021542	001373 				BNE	LQSBPS		; FOR A SPACE.
   8311	021544				10$:
   8312	021544	122725 	000040 			CMPB	#' ,(R5)+	; THEN BYPASS
   8313	021550	001775 				BEQ	10$		; ANY MORE THAT FOLLOW.
   8314	021552	105745 				TSTB	-(R5)		; TEST FOR END OF LINE.
   8315	021554				20$:
   8316	021554					RETURN
	021554	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 178
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8318					;+
   8319					; THIS SUBROUTINE DISPLAYS THE HARDWARE ENVIRONMENT OF THE KL10, AND DOES
   8320					; CHECKS FOR CONFLICTING OPTIONS.
   8321					;-
   8322
   8323						.ENABL	LSB
   8324
   8325	021556				LQSHWE:	CALL	HLTNOE		; HALT KL AND TELL -20F NOT TO INTEFERR
	021556	004737 	022266'			 JSR	PC,HLTNOE
   8326	021562	005737 	000000G			TST	.CPUSN		; [4.2333] HAVE WE BEEN HERE BEFORE??
   8327	021566	003140 				BGT	60$		; [4.2333] YES -- JUST EXIT
   8328	021570	100530 				BMI	LQSCHE		; [4.2333] YES -- FAILED BEFORE, GRIPE AND EXIT
   8329	021572					CALL	LQSHDW		; [4.2333] NO -- READ THE HARDWARE OPTIONS
	021572	004737 	022072'			 JSR	PC,LQSHDW
   8330	021576	103525 				BCS	LQSCHE		; [4.2333] ERROR IF CC-C IS SET
   8331	021600	105737 	000024'			TSTB	.DLGSW		; [4.2333] ARE WE ON INTERNAL PATH??
   8332	021604	002003 				BGE	10$		; [4.2333] NO -- GO ON
   8333	021606	005737 	000000G			TST	.DATE3		; [4.2333] YES -- IS THIS A RELOAD??
   8334	021612	001105 				BNE	LQSCHO		; [4.2333] YES -- JUST CHECK OPTIONS
   8335	021614				10$:
   8336	021614	012700 	004301'			MOV	#TQSKSN,R0	; [4.2333] NO -- SERIAL NUMBER PREAMBLE TO R0
   8337	021620					CALL	$TTDMS		; [4.2333] PRINT IT
	021620	004737 	027566'			 JSR	PC,$TTDMS
   8338	021624	013700 	000000G			MOV	.CPUSN,R0	; [4.2333] AND THE SERIAL NUMBER
   8339	021630					CALL	$TDB2I		; [4.2333] PRINT THAT
	021630	004737 	025264'			 JSR	PC,$TDB2I
   8340	021634	012700 	004324'			MOV	#TQSMDL,R0	; [4.2333] MODEL TYPE PREAMBLE
   8341	021640					CALL	$TTDMS		; [4.2333] PRINT THAT
	021640	004737 	027566'			 JSR	PC,$TTDMS
   8342	021644	012746 	000102 			MOV	#'B,-(SP)	; [4.2333] ASSUME MODEL "B"
   8343	021650	010600 				MOV	SP,R0		; [4.2333] POINT TO BUFFER ON STACK
   8344	021652	012701 	000001 			MOV	#1,R1		; [4.2333] LENGTH OF 1 CHARACTER
   8345	021656	105737 	000044'			TSTB	.EASW		; [4.2333] IS IT A MODEL "B"??
   8346	021662	100001 				BPL	20$		; [4.2333] YES -- GO ON
   8347	021664	005316 				DEC	(SP)		; [4.2333] NO -- MAKE IT AN "A"
   8348	021666				20$:
   8349	021666					CALL	$TTWR		; [4.2333] AND PRINT IT
	021666	004737 	027714'			 JSR	PC,$TTWR
   8350	021672	012716 	000054 			MOV	#',,(SP)	; [4.2333] SET UP <COMMA>
   8351	021676					CALL	$TTWR		; [4.2333] AND PRINT IT
	021676	004737 	027714'			 JSR	PC,$TTWR
   8352	021702	005726 				TST	(SP)+		; [4.2333] CLEAR STACK
   8353	021704					CALL	$TTSPC		; [4.2333] PRINT A <SPACE>
	021704	004737 	027500'			 JSR	PC,$TTSPC
   8354	021710	012700 	000074 			MOV	#^D60,R0	; [4.2333] ASSUME A 60 HERTZ MACHINE
   8355	021714	032737 	000000G	000000G		BIT	#H.KPWR,.HRDWR	; [4.2333] IS IT A 60 HERTZ MACHINE??
   8356	021722	001402 				BEQ	30$		; [4.2333] YES -- GO ON
   8357	021724	012700 	000062 			MOV	#^D50,R0	; [4.2333] NO -- MAKE IT 50 HERTZ
   8358	021730				30$:
   8359	021730					CALL	$TDB2I		; [4.2333] PRINT WHATEVER
	021730	004737 	025264'			 JSR	PC,$TDB2I
   8360	021734	012700 	004337'			MOV	#TQSHRZ,R0	; [4.2333] POSTAMBLE POINTER TO R0
   8361	021740					CALL	$TTDMS		; [4.2333] AND PRINT IT
	021740	004737 	027566'			 JSR	PC,$TTDMS
   8362	021744					PRINT	#TQSHWP		; [4.2333] PRINT THE HEADER
	021744	012700 	004347'			 MOV	#TQSHWP,R0
	021750	004737 	027634'			 JSR	PC,$TTMSG
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 178-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8363	021754	012701 	000001 			MOV	#BIT0,R1	; [4.2333] BIT MASK TO R1
   8364	021760	012702 	001676'			MOV	#DQSHWT,R2	; [4.2333] TABLE POINTER TO R2
   8365	021764	013703 	000000G			MOV	.HRDWR,R3	; [4.2333] OPTION BITS TO R3
   8366	021770	042703 	000000G			BIC	#H.KPWR,R3	; [4.2333] MINUS A COUPLE
   8367	021774	012704 	000006 			MOV	#6,R4		; [4.2333] ITERATION COUNT TO R4
   8368	022000				40$:
   8369	022000	030103 				BIT	R1,R3		; [4.2333] IS THE OPTION PRESENT??
   8370	022002	001404 				BEQ	50$		; [4.2333] NO -- TRY NET OPTION
   8371	022004	011200 				MOV	(R2),R0		; [4.2333] YES -- DO WE CARE ABOUT IT AT THIS POINT??
   8372	022006	001402 				BEQ	50$		; [4.2333] NO -- GO ON
   8373	022010					CALL	$TTDMS		; [4.2333] YES -- PRINT IT
	022010	004737 	027566'			 JSR	PC,$TTDMS
   8374	022014				50$:
   8375	022014	005722 				TST	(R2)+		; [4.2333] ADVANCE MESSAGE POINTER
   8376	022016	006301 				ASL	R1		; [4.2333] ADVANCE BIT MASK
   8377	022020	077411 				SOB	R4,40$		; [4.2333] AND CONTINUE
   8378	022022					CALL	$TCRLF		; [4.2333] END THE DISPLAY
	022022	004737 	027530'			 JSR	PC,$TCRLF
   8379					;
   8380					; HERE TO CHECK FOR CONFLICTING OPTIONS
   8381					; (MODEL "A" CPU AND MOS MASTER OSCILATOR)
   8382					;
   8383	022026				LQSCHO:
   8384	022026	105737 	000044'			TSTB	.EASW		; [4.2333] IS THIS A MODEL "A" CPU??
   8385	022032	100016 				BPL	60$		; [4.2333] NO -- GO ON
   8386	022034	105737 	000045'			TSTB	.MFSW		; [4.2333] YES -- IS MOS MEMORY PRESENT??
   8387	022040	100413 				BMI	60$		; [4.2333] NO -- GO ON (FIX BR POLARITY)
   8388	022042					PRINT	#TQSMMA		; [4.2333] YES -- COMPLAIN
	022042	012700 	004745'			 MOV	#TQSMMA,R0
	022046	004737 	027634'			 JSR	PC,$TTMSG
   8389					;
   8390					; HERE TO FLAG AND REPORT HARDWARE OPTION ERRORS
   8391					;
   8392	022052				LQSCHE:
   8393	022052					PRINT	#TQSCDH		; [4.2333] CAN'T DETERMINE HARDWARE OPTIONS
	022052	012700 	004603'			 MOV	#TQSCDH,R0
	022056	004737 	027634'			 JSR	PC,$TTMSG
   8394	022062	005337 	000000G			DEC	.CPUSN		; [4.2333] FLAG THIS FACT
   8395	022066	000261 				SEC			; [4.2333] SET ERROR RETURN
   8396	022070				60$:
   8397	022070					RETURN			; [4.2333] TO CALLER
	022070	000207 				 RTS	PC
   8398
   8399						.DSABL	LSB
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 179
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8401					;+
   8402					; DETERMINES THE HARDWARE FEATURES OF THE KL FOR LATER REFERENCE.
   8403					;-
   8404
   8405	022072				LQSHDW:
   8406	022072	012700 	001670'			MOV	#DQSAPR,R0	; GET HARDWARE OPTIONS BY
   8407	022076					CALL	LQSHWO		; OBTAINING RH(APRID)
	022076	004737 	022312'			 JSR	PC,LQSHWO
   8408	022102	103470 				BCS	40$		; [4.2333]
   8409	022104	113746 	001672'			MOVB	DQSAPR+2,-(SP)	; [4.2333] GET HIGH PART OF HARDWARE OPTIONS
   8410	022110	042716 	177774 			BIC	#^C3,(SP)	; [4.2333] GET RID OF JUNK
   8411	022114					SL	(SP),4		; [4.2333] POSITION IT
	022114	006316 				  ASL	(SP)
	022116	006316 				  ASL	(SP)
	022120	006316 				  ASL	(SP)
	022122	006316 				  ASL	(SP)
   8412	022124	113746 	001671'			MOVB	DQSAPR+1,-(SP)	; [4.2333] NOW FOR THE LOW PART
   8413	022130	042716 	177417 			BIC	#^C360,(SP)	; [4.2333] FLUSH JUNK
   8414	022134					SR	(SP),4		; [4.2333] AND POSITION THAT
	022134	006216 				  ASR	(SP)
	022136	006216 				  ASR	(SP)
	022140	006216 				  ASR	(SP)
	022142	006216 				  ASR	(SP)
   8415	022144	052616 				BIS	(SP)+,(SP)	; [4.2333] MERGE THE HARDWARE OPTIONS
   8416	022146	013746 	001670'			MOV	DQSAPR,-(SP)	; [4.2333] NOW GET THE SERIAL NUMBER
   8417	022152	042716 	170000 			BIC	#^C7777,(SP)	; [4.2333] WITHOUT THE HANGERS-ON
   8418	022156	012700 	000000G			MOV	#.CPUSN,R0	; [4.2333] POINT TO THE SERIAL NUMBER
   8419	022162	012620 				MOV	(SP)+,(R0)+	; [4.2333] SET THE SERIAL NUMBER
   8420	022164	012610 				MOV	(SP)+,(R0)	; [4.2333] AND ITS HARDWARE OPTIONS
   8421	022166	105337 	000043'			DECB	.CASW		; ASSUME NO CACHE
   8422	022172	132710 	000000G			BITB	#H.KCAC,(R0)	; [4.2333] AND IF THERE IS
   8423	022176	001402 				BEQ	10$
   8424	022200	105437 	000043'			NEGB	.CASW		; THEN RECORD IT.
   8425	022204				10$:
   8426	022204	105337 	000035'			DECB	.MCA25		; [**] ASSUME NO MCA25 CACHE PAGER
   8427	022210	132710 	000000G			BITB	#H.KUDF,(R0)	; [**] CHECK FOR MCA25 - "BIT 23" OF APRID
   8428	022214	001402 				BEQ	15$		; [**] NOT PRESENT -- GO ON
   8429	022216	105437 	000035'			NEGB	.MCA25		; [**] MCA25 CACHE PAGER PRESENT
   8430	022222				15$:
   8431	022222	105337 	000045'			DECB	.MFSW		; ASSUME NO MOS MEMORY
   8432	022226	132710 	000000G			BITB	#H.KMOS,(R0)	; [4.2333] CHECK MOS MASTER OSCILLATOR
   8433	022232	001404 				BEQ	20$		; NOT PRESENT -- GO ON
   8434	022234	105437 	000045'			NEGB	.MFSW		; MOS IS IN SYSTEM
   8435	022240					CALL	$KLMR		; DO ANOTHER RESET TO SETUP CLOCKS
	022240	004737 	015232'			 JSR	PC,$KLMR
   8436	022244				20$:
   8437	022244	105337 	000044'			DECB	.EASW		; ASSUME A MODEL A CPU
   8438	022250	132710 	000000G			BITB	#H.KEXT,(R0)	; [4.2333] AND IF MODEL B
   8439	022254	001402 				BEQ	30$		; THEN
   8440	022256	105437 	000044'			NEGB	.EASW		; THERE IS EXTENDED ADDRESSING.
   8441	022262				30$:
   8442	022262	000241 				CLC			; [4.2333] INSURE SUCCESS RETURN
   8443	022264				40$:
   8444	022264					RETURN
	022264	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 180
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8446					;+
   8447					; THIS SUBROUTINE CLEARS PROTOCOL AND HALTS THE KL
   8448					;-
   8449
   8450	022266				HLTNOE:
   8451	022266	012737 	000621 	000000G		MOV	#401.,.NOERR	; TELL 20F NOT TO INTERRUPT
   8452	022274					CALL	..DTSP		; AND TURN OFF PROTOCOLS
	022274	004737 	000000G			 JSR	PC,..DTSP
   8453	022300	012700 	010000 			MOV	#.CLRUN,R0	; HALT THE KL IF RUNNING
   8454	022304					CALL	$DFXC
	022304	004737 	013760'			 JSR	PC,$DFXC
   8455	022310					RETURN
	022310	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 181
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8457					;+
   8458					; SPECIAL ROUTINE TO GET LOWER HARDWARE HALF OF APRID WITHOUT
   8459					; DESTROYING REGISTERS. THIS ROUTINE IS HAIRY BECAUSE IT MODIFIES
   8460					; C-RAM LOCATION ZERO FOR A SHORT TIME AND THEN RESTORES IT TO ITS
   8461					; ORIGINAL CONTENTS.
   8462					;
   8463					; [**] THIS ROUTINE IS ALSO USED FOR MCA25 CACHE PAGE TABLE SELECTION
   8464					;
   8465					; INPUTS:
   8466					;	R0	- ADDRESS OF 36 BIT BUFFER.
   8467					;	R3	- ADDRESS OF CACHE PAGE SELECT MICRO-INSTR ([**])
   8468					;	.MCSW  - NON-ZERO MEANS WE ARE DOING A PAGE SELECT ([**])
   8469					;
   8470					; OUTPUT:
   8471					;	(R0)	- RECIEVES RH(APRID) WORD.
   8472					;	CARRY IS SET IF ERROR OCCURS.
   8473					;-
   8474
   8475	022312				LQSHWO::
   8476	022312	010002 				MOV	R0,R2
   8477	022314					CALL	$KLMR		; CLEAR THE WORLD.
	022314	004737 	015232'			 JSR	PC,$KLMR
   8478	022320	103444 				BCS	20$
   8479	022322	012701 	001640'			MOV	#DQSCBF,R1	; HOLDING AREA FOR CONTENTS OF C-RAM 0
   8480	022326	005000 				CLR	R0		; READ C-RAM LOCATION ZERO.
   8481	022330					CALL	$RCRAM
	022330	004737 	011564'			 JSR	PC,$RCRAM
   8482	022334	103436 				BCS	20$
   8483	022336	012701 	001654'			MOV	#DQSCF3,R1	; NOW WRITE WORD WITH COND FIELD = 3
   8484	022342	105737 	000051'			TSTB	.MCSW		; [**] ARE WE SELECTING A CACHE PAGE TABLE?
   8485	022346	001401 				BEQ	5$		; [**] NO -- GO DO AN APRID READ
   8486	022350	010301 				MOV	R3,R1		; [**] YES -- FETCH THE C-RAM WORD ADDRESS
   8487	022352				5$:
   8488	022352					CALL	$WCRAM
	022352	004737 	011304'			 JSR	PC,$WCRAM
   8489	022356	103420 				BCS	10$
   8490	022360	012700 	003000 			MOV	#.SECLK,R0	; STEP THE EBOX TWICE.
   8491	022364					CALL	$DFXC
	022364	004737 	013760'			 JSR	PC,$DFXC
   8492	022370	103413 				BCS	10$
   8493	022372					CALL	$DFXC
	022372	004737 	013760'			 JSR	PC,$DFXC
   8494	022376	103410 				BCS	10$
   8495	022400	105737 	000051'			TSTB	.MCSW		; [**] ARE WE SELECTING A CACHE PAGE TABLE?
   8496	022404	001005 				BNE	10$		; [**] YES -- SKIP READING THE AR
   8497	022406	010201 				MOV	R2,R1		; NOW READ THE AR.
   8498	022410	012700 	120000 			MOV	#<120*1000>,R0
   8499	022414					CALL	$DFRD
	022414	004737 	013444'			 JSR	PC,$DFRD
   8500	022420				10$:
   8501	022420	012701 	001640'			MOV	#DQSCBF,R1	; RESTORE C-RAM LOCATION ZERO.
   8502	022424	005000 				CLR	R0
   8503	022426					CALLR	$WCRAM
	022426	000137 	011304'			 JMP	$WCRAM
   8504	022432				20$:
   8505	022432					RETURN
	022432	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 182
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8507					;+
   8508					; LQSCSW -- LOCAL SUBROUTINE TO SWEEP CACHE AND UPDATE CORE
   8509					;
   8510					; THIS SUBROUTINE WILL SWEEP CACHE AND UPDATE CORE.  THIS ROUTINE IS CALLED
   8511					; FROM THE INTERNAL PATH AND THE "BOOT" OPTION IN ANTICIPATION OF A DUMP.
   8512					;
   8513					; THE CACHE SWEEP IS "XCT"'D, BUT IN A DIFFERENT MANNER THAN NORMAL, AS A
   8514					; CACHE SWEEP CAN TAKE A SIGNIFICANTLY LONGER TIME TO EXECUTE THAN OTHER
   8515					; KL INSTRUCTIONS.
   8516					;
   8517					; THIS CACHE SWEEP IS EXECUTED "BLINDLY", REGARDLESS OF WHETHER OR NOT CACHE
   8518					; EXISTS IN THE HARDWARE; THE INSTRUCTION WILL "WORK" ANYWAY.  THE EXECUTE IS
   8519					; INITIATED, WE WAIT FOR ONE-HALF SECOND, AND SIMPLY PROCEEED; ERRORS ARE IGNORED.
   8520					;-
   8521
   8522	022434				LQSCSW:
   8523	022434	105337 	000030'			DECB	.CSDN		; [5.1013] BEEN HERE BEFORE??
   8524	022440	001036 				BNE	10$		; [5.1013] YES -- JUST EXIT
   8525	022442	012700 	001620'			MOV	#DQSCSW,R0	; [5.1013] INSTRUCTION POINTER TO R0
   8526	022446					CALL	$LDAR		; [5.1013] LOAD IT INTO THE AR REGISTER
	022446	004737 	031176'			 JSR	PC,$LDAR
   8527	022452	103431 				BCS	10$		; [5.1013] ERROR IF CC-C IS SET
   8528	022454	012700 	012000 			MOV	#.CONBT,R0	; [5.1013] PUSH THE CONTINUE BUTTON
   8529	022460					CALL	$DFXC		; [5.1013] SO
	022460	004737 	013760'			 JSR	PC,$DFXC
   8530	022464	103424 				BCS	10$		; [5.1013] ERROR IF CC-C IS SET
   8531	022466	012700 	001000 			MOV	#.STRCL,R0	; [5.1013] START THE CLOCK
   8532	022472					CALL	$DFXC		; [5.1013] SO
	022472	004737 	013760'			 JSR	PC,$DFXC
   8533	022476	103417 				BCS	10$		; [5.1013] ERROR IF CC-C IS SET
   8534	022500					CLEF$S	#5.		; [5.1013] RESET THE EVENT FLAG
	022500	012746 	000005 			MOV	#5.,-(SP)
	022504	012746 				MOV	(PC)+,-(SP)
	022506	   037 	   002 			.BYTE	31.,2
	022510	104375 				EMT	375
   8535	022512	103411 				BCS	10$		; [5.1013] ERROR IF CC-C IS SET
   8536	022514					DIR$	#DQSMKT		; [5.1013] WAIT FOR 1/2 SECOND
	022514	012746 	001626'			MOV	#DQSMKT,-(SP)
	022520	104375 				EMT	375
   8537	022522	103405 				BCS	10$		; [5.1013] ERROR IF CC-C IS SET
   8538	022524					WTSE$S	#5.		; [5.1013] ZZZ...
	022524	012746 	000005 			MOV	#5.,-(SP)
	022530	012746 				MOV	(PC)+,-(SP)
	022532	   051 	   002 			.BYTE	41.,2
	022534	104375 				EMT	375
   8539	022536				10$:
   8540	022536					RETURN			; [5.1013] TO CALLER
	022536	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1113  03-APR-86 20:55  PAGE 183
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8542
   8543						.TITLE	KLIRS -- SPECIAL KL RESTARTS
   8544	022540					IDENT$	13,06,KLI$$F
						.IDENT	/A13060/
   8545					;
   8546					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8547					; ALL RIGHTS RESERVED.
   8548					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8549					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8550					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8551					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8552					;
   8553					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8554					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8555					; EQUIPMENT CORPORATION.
   8556					;
   8557					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8558					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8559					;
   8560					; VERSION 13-04
   8561					;
   8562					; ALAN D. PECKHAM  7-APR-77
   8563					;
   8564					; MODIFICATIONS:
   8565					;
   8566					;01-AUG-83  TCO 6.1675	D. WEAVER
   8567					;	MOVE CODE TO DO WARM RESTART TO THIS MODULE FROM KLIST.
   8568					;
   8569					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES FOR SPECIAL KL RESTARTS:
   8570					;
   8571					;  POWER FAIL RESTART AT 70.
   8572					;  WARM RESTART AT 72.
   8573					;  SYSTEM CRASH RECOVER AT 407.
   8574					;
   8575					; EQUATED SYMBOLS
   8576					;
   8577		000004 			CONO	=	4		; KL I/O SUB-FUNCTION CODE.
   8578		000010 			PAG	=	10		; KL DEVICE.
   8579					;
   8580					; LOCAL MACROS
   8581					;
   8582						.MCALL	MRKT$S,WTSE$S,WSIG$S
   8583					;
   8584					; LOCAL DATA
   8585					;
   8586	001712					.PSECT	DATA,D
   8587						.EVEN
   8588	001712	000000 			DRSDBL::.WORD	0		; DOORBELL COUNT
   8590	001714				DRSCEN:	IO10$	CONO PAG,,600000 ; ENABLE CACHE
	001714	   000 	   000 	   003 		 .BYTE	BY$$0,BY$$1,BY$$2
	001717	   012 	   016 			 .BYTE	BY$$3,BY$$4
   8592	001721				DRSPLD:	WD36$	0 3		; LOAD AR/ARX WITH
	001721	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001724	   000 	   000 			 .BYTE	BY$$3,BY$$4
   8593	001726				DRSPEN:	WD36$	0 16		; C-RAM, D-RAM, AND FS PARITIES
	001726	   016 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001731	   000 	   000 			 .BYTE	BY$$3,BY$$4
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 183-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8594	001733				DRSPFR:	WD22$	70		; KL POWER FAIL RESTART ADDRESS.
	001733	   070 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   8595	001736				DRSFCR:	WD22$	72		; FAULT CONTINUATION RESTART ADDRESS.
	001736	   072 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   8596	001741				DRSSCR:	WD22$	407		; TOPS10 KL CRASH RESTART ADDRESS.
	001741	   007 	   001 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   8597						.EVEN
   8598	005023					.PSECT	TEXT,D
   8599	005023				TRSPRF:	ERROR	<POWER-FAIL RESTART FAILED>
	005023	   077 	   040 	   120 		 .ASCIZ	\? POWER-FAIL RESTART FAILED\
	005026	   117 	   127 	   105
	005031	   122 	   055 	   106
	005034	   101 	   111 	   114
	005037	   040 	   122 	   105
	005042	   123 	   124 	   101
	005045	   122 	   124 	   040
	005050	   106 	   101 	   111
	005053	   114 	   105 	   104
	005056	   000
   8600	005057				TRSCES:	ERROR	<CLOCK ERROR STOP DURING KL RESTART>
	005057	   077 	   040 	   103 		 .ASCIZ	\? CLOCK ERROR STOP DURING KL RESTART\
	005062	   114 	   117 	   103
	005065	   113 	   040 	   105
	005070	   122 	   122 	   117
	005073	   122 	   040 	   123
	005076	   124 	   117 	   120
	005101	   040 	   104 	   125
	005104	   122 	   111 	   116
	005107	   107 	   040 	   113
	005112	   114 	   040 	   122
	005115	   105 	   123 	   124
	005120	   101 	   122 	   124
	005123	   000
   8601	005124				TRSHLT:	ERROR	<KL HALT DURING RESTART>
	005124	   077 	   040 	   113 		 .ASCIZ	\? KL HALT DURING RESTART\
	005127	   114 	   040 	   110
	005132	   101 	   114 	   124
	005135	   040 	   104 	   125
	005140	   122 	   111 	   116
	005143	   107 	   040 	   122
	005146	   105 	   123 	   124
	005151	   101 	   122 	   124
	005154	   000
   8602	005155				TRSTMO:	ERROR	<TIMEOUT DURING KL RESTART>
	005155	   077 	   040 	   124 		 .ASCIZ	\? TIMEOUT DURING KL RESTART\
	005160	   111 	   115 	   105
	005163	   117 	   125 	   124
	005166	   040 	   104 	   125
	005171	   122 	   111 	   116
	005174	   107 	   040 	   113
	005177	   114 	   040 	   122
	005202	   105 	   123 	   124
	005205	   101 	   122 	   124
	005210	   000
   8603	005211				TRSDER:	ERROR	<SYSTEM ERROR DURING KL RESTART>
	005211	   077 	   040 	   123 		 .ASCIZ	\? SYSTEM ERROR DURING KL RESTART\
	005214	   131 	   123 	   124
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 183-2
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

	005217	   105 	   115 	   040
	005222	   105 	   122 	   122
	005225	   117 	   122 	   040
	005230	   104 	   125 	   122
	005233	   111 	   116 	   107
	005236	   040 	   113 	   114
	005241	   040 	   122 	   105
	005244	   123 	   124 	   101
	005247	   122 	   124 	   000
   8604	005252				TRSRSM:	MESSAGE	<KL RESTARTED>
	005252	   113 	   114 	   040 		 .ASCIZ	\KL RESTARTED\
	005255	   122 	   105 	   123
	005260	   124 	   101 	   122
	005263	   124 	   105 	   104
	005266	   000
   8605	005267				TRSFCF:	ERROR	<FAULT CONTINUATION FAILED>
	005267	   077 	   040 	   106 		 .ASCIZ	\? FAULT CONTINUATION FAILED\
	005272	   101 	   125 	   114
	005275	   124 	   040 	   103
	005300	   117 	   116 	   124
	005303	   111 	   116 	   125
	005306	   101 	   124 	   111
	005311	   117 	   116 	   040
	005314	   106 	   101 	   111
	005317	   114 	   105 	   104
	005322	   000
   8606	005323				TRSCEF:	ERROR	<CLOCK ERROR STOP DURING FAULT CONTINUATION>
	005323	   077 	   040 	   103 		 .ASCIZ	\? CLOCK ERROR STOP DURING FAULT CONTINUATION\
	005326	   114 	   117 	   103
	005331	   113 	   040 	   105
	005334	   122 	   122 	   117
	005337	   122 	   040 	   123
	005342	   124 	   117 	   120
	005345	   040 	   104 	   125
	005350	   122 	   111 	   116
	005353	   107 	   040 	   106
	005356	   101 	   125 	   114
	005361	   124 	   040 	   103
	005364	   117 	   116 	   124
	005367	   111 	   116 	   125
	005372	   101 	   124 	   111
	005375	   117 	   116 	   000
   8607	005400				TRSFHL:	ERROR	<KL HALT DURING FAULT CONTINUATION>
	005400	   077 	   040 	   113 		 .ASCIZ	\? KL HALT DURING FAULT CONTINUATION\
	005403	   114 	   040 	   110
	005406	   101 	   114 	   124
	005411	   040 	   104 	   125
	005414	   122 	   111 	   116
	005417	   107 	   040 	   106
	005422	   101 	   125 	   114
	005425	   124 	   040 	   103
	005430	   117 	   116 	   124
	005433	   111 	   116 	   125
	005436	   101 	   124 	   111
	005441	   117 	   116 	   000
   8608	005444				TRSSEF:	ERROR	<SYSTEM ERROR DURING FAULT CONTINUATION>
	005444	   077 	   040 	   123 		 .ASCIZ	\? SYSTEM ERROR DURING FAULT CONTINUATION\
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 183-3
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

	005447	   131 	   123 	   124
	005452	   105 	   115 	   040
	005455	   105 	   122 	   122
	005460	   117 	   122 	   040
	005463	   104 	   125 	   122
	005466	   111 	   116 	   107
	005471	   040 	   106 	   101
	005474	   125 	   114 	   124
	005477	   040 	   103 	   117
	005502	   116 	   124 	   111
	005505	   116 	   125 	   101
	005510	   124 	   111 	   117
	005513	   116 	   000
   8609	005515				TRSFCS:	MESSAGE	<FAULT CONTINUATION SUCCEEDED>
	005515	   106 	   101 	   125 		 .ASCIZ	\FAULT CONTINUATION SUCCEEDED\
	005520	   114 	   124 	   040
	005523	   103 	   117 	   116
	005526	   124 	   111 	   116
	005531	   125 	   101 	   124
	005534	   111 	   117 	   116
	005537	   040 	   123 	   125
	005542	   103 	   103 	   105
	005545	   105 	   104 	   105
	005550	   104 	   000
   8610	022540					.PSECT
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 184
$POWER	-- POWER FAILURE RESTART

   8612						.SBTTL	$POWER	-- POWER FAILURE RESTART
   8613					;+
   8614					; A POWER-FAIL ON THE KL REQUIRES AN ATTEMPT TO RESTART THE MONITOR
   8615					; AT LOCATION 70 IF POSSIBLE IN ORDER TO SAVE SYSTEM INFO.
   8616					; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
   8617					; POWER-FAIL RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
   8618					; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
   8619					; WITHIN 20 SECONDS OF RESTART, OR A FATAL ERROR SUCH AS A HALT
   8620					; OR CLOCK ERROR STOP OCCURS.
   8621					;
   8622					; NO INPUTS OR OUTPUTS
   8623					;
   8624					; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
   8625					;-
   8626
   8627						.ENABL	LSB
   8628
   8629	022540				$POWER::CALL	$FILE		; WRITE CONFIGURATION FILE FIRST.
	022540	004737 	003036'			 JSR	PC,$FILE
   8630	022544	103516 				BCS	60$
   8631	022546					CALL	$ZERAC		; CLEAR THE ACS.
	022546	004737 	000112'			 JSR	PC,$ZERAC
   8632	022552	012705 	005023'			MOV	#TRSPRF,R5	; "POWER-FAIL RESTART FAILED" FOR ERRORS
   8633	022556					CALL	..DTP2		; START SECONDARY PROTOCOL.
	022556	004737 	000000G			 JSR	PC,..DTP2
   8634	022562					CALL	WAIT1S		; WAIT ONE SECOND
	022562	004737 	023430'			 JSR	PC,WAIT1S
   8635	022566	103500 				BCS	40$		; FAILED, GIVE UP
   8636	022570	013737 	000000G	001712'		MOV	.PRDCT,DRSDBL	; SAVE THE DOORBELL COUNT.
   8637	022576					CALL	LRSTKL		; ENABLE KL FOR NORMAL OPERATION
	022576	004737 	023332'			 JSR	PC,LRSTKL
   8638	022602	012700 	001733'			MOV	#DRSPFR,R0	; START KL AT 70.
   8639	022606					CALL	$STRKL
	022606	004737 	030726'			 JSR	PC,$STRKL
   8640	022612	103466 				BCS	40$
   8641	022614	012704 	000024 			MOV	#20.,R4		; ONE SECOND CHECKS FOR 20 SECONDS
   8642	022620	000430 				BR	10$		; GO FINISH UP
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 185
$POWER	-- POWER FAILURE RESTART

   8644					;+
   8645					; A CRASH ON THE TOPS-10 MONITOR REQUIRES AN ATTEMPT TO RESTART
   8646					; AT LOCATION 407 IF POSSIBLE IN ORDER TO SAVE SYSTEM INFO.
   8647					; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
   8648					; 407 RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
   8649					; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
   8650					; WITHIN 10 SECONDS OF RESTART, OR A FATAL ERROR SUCH AS A HALT
   8651					; OR CLOCK ERROR STOP OCCURS.
   8652					;
   8653					; NO INPUTS OR OUTPUTS
   8654					;
   8655					; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
   8656					;-
   8657
   8658	022622				$RSTRT::
   8659	022622					CALL	$WRMRST		; DO WARM RESTART IF REQUIRED
	022622	004737 	023022'			 JSR	PC,$WRMRST
   8660	022626					CALL	$FILE		; WRITE CONFIGURATION FILE FIRST.
	022626	004737 	003036'			 JSR	PC,$FILE
   8661	022632	103461 				BCS	50$
   8662	022634	012705 	005211'			MOV	#TRSDER,R5	; "SYSTEM ERROR DURING KL RESTART" FOR ERRORS
   8663	022640					CALL	..DTP2		; START SECONDARY PROTOCOL.
	022640	004737 	000000G			 JSR	PC,..DTP2
   8664	022644					CALL	WAIT1S		; WAIT ONE SECOND
	022644	004737 	023430'			 JSR	PC,WAIT1S
   8665	022650	103447 				BCS	40$		; FAILED, GIVE UP
   8666	022652	013737 	000000G	001712'		MOV	.PRDCT,DRSDBL	; SAVE THE DOORBELL COUNT.
   8667	022660					CALL	LRSTKL		; ENABLE KL FOR NORMAL OPERATION
	022660	004737 	023332'			 JSR	PC,LRSTKL
   8668	022664	012700 	001741'			MOV	#DRSSCR,R0	; RESTART KL AT 407.
   8669	022670					CALL	$STRKL
	022670	004737 	030726'			 JSR	PC,$STRKL
   8670	022674	103435 				BCS	40$		; IF SUCCESSFUL,
   8671	022676	012704 	000012 			MOV	#10.,R4		; ONE SECOND CHECKS FOR 10 SECONDS
   8672	022702				10$:
   8673	022702	012705 	005211'			MOV	#TRSDER,R5	; "SYSTEM ERROR DURING KL RESTART" FOR ERRORS
   8674	022706					CALL	$DTRW1		; READ DTE REGISTER #1.
	022706	004737 	024114'			 JSR	PC,$DTRW1
   8675	022712	103426 				BCS	40$
   8676	022714	012705 	005057'			MOV	#TRSCES,R5	; "CLOCK ERROR STOP DURING KL RESTART"
   8677	022720	032700 	004000 			BIT	#DS04,R0	; CLOCK ERROR STOP ?
   8678	022724	001021 				BNE	40$		; YES, TELL THE GUY.
   8679	022726	012705 	005124'			MOV	#TRSHLT,R5	; "KL HALTED DURING RESTART"
   8680	022732	032700 	001000 			BIT	#DS06,R0	; KL HALTED ?
   8681	022736	001014 				BNE	40$		; YES...
   8682	022740	023737 	000000G	001712'		CMP	.PRDCT,DRSDBL	; IF THE DOORBELL HAS RUNG
   8683	022746	001015 				BNE	60$		; THEN WE ARE IN.
   8684	022750	012705 	005211'			MOV	#TRSDER,R5	; "SYSTEM ERROR DURING KL RESTART"
   8685	022754				20$:
   8686	022754					CALL	WAIT1S		; WAIT ONE SECOND
	022754	004737 	023430'			 JSR	PC,WAIT1S
   8687	022760	103403 				BCS	40$		; FAILED, GIVE UP
   8688	022762	077431 				SOB	R4,10$		; TRY AGAIN.
   8689	022764	012705 	005155'			MOV	#TRSTMO,R5	; "TIMEOUT DURING KL RESTART"
   8690	022770				40$:
   8691	022770					PRINT	R5		; PRINT ERROR MESSAGE
	022770	010500 				 MOV	R5,R0
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 185-1
$POWER	-- POWER FAILURE RESTART

	022772	004737 	027634'			 JSR	PC,$TTMSG
   8692	022776				50$:
   8693	022776	000137 	024012'			JMP	$ERROR		; ERROR EXIT.
   8694	023002				60$:
   8695	023002	005037 	000000G			CLR	.NOERR		; ALLOW KL ERRORS TO OCCUR,
   8696	023006					PRINT	#TRSRSM		; TELL OPERATOR "KL RESTARTED"
	023006	012700 	005252'			 MOV	#TRSRSM,R0
	023012	004737 	027634'			 JSR	PC,$TTMSG
   8697	023016	000137 	024022'			JMP	$EXIT		; AND EXIT NORMALLY.
   8698						.DSABL	LSB
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 186
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

   8700						.SBTTL	$WRMRS	-- WARM RESTART (FAULT CONTINUATION)
   8701					;+
   8702					; A KL CPU ERROR OCCURING WITH FAULT CONTINUATION ENABLED CAUSES AN
   8703					; XCT 72 TO ATTEMPT MONITOR RECOVERY.
   8704					;
   8705					; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
   8706					; WARM RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
   8707					; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
   8708					; WITHIN 10 SECONDS OF RESTART.
   8709					;
   8710					; INPUTS:
   8711					;	.ERRCD CONTAINS THE ERROR CODE AND KL FLAGS FROM KLERR
   8712					;	.ERRPC CONTAINS THE 23 BIT PC FROM KLERR
   8713					;
   8714					; OUTPUT:
   8715					;	KL LOC 100+2*CPUN CONTAINS XWD FLAGS,,ERRCOD
   8716					;	KL LOC 101+2*CPUN CONTAINS 23 BIT PC
   8717					;
   8718					; ERRORS:
   8719					;	CLOCK ERROR STOP DURING KL RESTART
   8720					;	KL HALT DURING RESTART
   8721					;	TIMEOUT DURING KL RESTART
   8722					;	SYSTEM ERROR DURING KL RESTART
   8723					;	FAULT CONTINUATION TIMEOUT
   8724					;
   8725					; EXIT IS TO $EXIT IS SUCCESSFUL OR RETURNS IF RESTART FAILED.
   8726					;-
   8727
   8728						.ENABL	LSB
   8729
   8730	023022				$WRMRS::
   8731	023022	105737 	000000G			TSTB	.KLFCF		; FAULT CONTINUATION ENABLED ?
   8732	023026	001124 				BNE	50$		; BRANCH IF NOT
   8733	023030	005737 	000000G			TST	.ERRCD		; ANY ERRORS TO CONTINUE ON ?
   8734	023034	001521 				BEQ	50$		; BRANCH IF NOT
   8735	023036	113700 	000000G			MOVB	.KLCPU,R0	; GET OUR CPU NUMBER
   8736	023042	001516 				BEQ	50$		; IF ZERO, HOST CAN'T DO IT
   8737	023044	012705 	005267'			MOV	#TRSFCF,R5	; (ERROR MESSAGE)
   8738	023050	006300 				ASL	R0		; CPU*2 SO WE CAN USE TWO WORDS/CPU
   8739	023052	062700 	000076 			ADD	#76,R0		; CONVERT TO LOCATION FOR DEPOSIT (CPU0=100)
   8740									; LOC=100+(CPUN*2)-2
   8741	023056	012701 	000000G			MOV	#.ERRCD,R1	; ADDRESS OF SAVED FLAGS AND ERROR CODE
   8742	023062					CALL	$DPOST		; DO THE DEPOSIT
	023062	004737 	013056'			 JSR	PC,$DPOST
   8743	023066	103501 				BCS	40$		; BRANCH ON ERROR
   8744	023070	113700 	000000G			MOVB	.KLCPU,R0	; GET OUR CPU NUMBER
   8745									; LOC=101+(CPUN*2)-2
   8746	023074	006300 				ASL	R0		; CPU*2 SO WE CAN USE TWO WORDS/CPU
   8747	023076	062700 	000077 			ADD	#77,R0		; CONVERT TO LOCATION FOR DEPOSIT (CPU0=101)
   8748	023102	012701 	000000G			MOV	#.ERRPC,R1	; ADDRESS OF THE SAVED PC TO R1
   8749	023106					CALL	$DPOST		; DEPOSIT IT
	023106	004737 	013056'			 JSR	PC,$DPOST
   8750	023112	103467 				BCS	40$		; BRANCH ON ERROR
   8751	023114					CALL	..DTP2		; START SECONDARY PROTOCOL.
	023114	004737 	000000G			 JSR	PC,..DTP2
   8752	023120					CALL	WAIT1S		; WAIT ONE SECOND
	023120	004737 	023430'			 JSR	PC,WAIT1S
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 186-1
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

   8753	023124	103462 				BCS	40$		; FAILED, GIVE UP
   8754	023126	013737 	000000G	001712'		MOV	.PRDCT,DRSDBL	; SAVE THE DOORBELL COUNT.
   8755	023134					CALL	LRSTKL		; ENABLE KL FOR NORMAL OPERATION
	023134	004737 	023332'			 JSR	PC,LRSTKL
   8756	023140	012700 	001736'			MOV	#DRSFCR,R0	; RESTART KL AT 72
   8757	023144					CALL	$STRKL
	023144	004737 	030726'			 JSR	PC,$STRKL
   8758	023150	103450 				BCS	40$		; IF SUCCESSFUL,
   8759	023152	012704 	000012 			MOV	#10.,R4		; 1 SECOND CHECKS FOR 10 SECONDS
   8760	023156				10$:
   8761	023156	012705 	005444'			MOV	#TRSSEF,R5	; (ERROR MESSAGE)
   8762	023162					CALL	$DTRW1		; READ DTE REGISTER #1.
	023162	004737 	024114'			 JSR	PC,$DTRW1
   8763	023166	103441 				BCS	40$
   8764	023170	012705 	005323'			MOV	#TRSCEF,R5	; (ERROR MESSAGE)
   8765	023174	032700 	004000 			BIT	#DS04,R0	; CLOCK ERROR STOP ?
   8766	023200	001034 				BNE	40$		; YES, TELL THE GUY.
   8767	023202	012705 	005400'			MOV	#TRSFHL,R5	; (ERROR MESSAGE)
   8768	023206	032700 	001000 			BIT	#DS06,R0	; KL HALTED ?
   8769	023212	001027 				BNE	40$		; YES...
   8770	023214	023737 	000000G	001712'		CMP	.PRDCT,DRSDBL	; IF THE DOORBELL HAS RUNG
   8771	023222	001031 				BNE	60$		; THEN WE ARE IN.
   8772	023224	012705 	005444'			MOV	#TRSSEF,R5	; (ERROR MESSAGE)
   8773	023230				20$:
   8774	023230					CALL	WAIT1S		; WAIT ONE SECOND
	023230	004737 	023430'			 JSR	PC,WAIT1S
   8775	023234	103416 				BCS	40$		; FAILED, GIVE UP
   8776	023236	077431 				SOB	R4,10$		; TRY AGAIN.
   8777	023240	105237 	000000G			INCB	.NOERR		; SET NO ERROR AGAIN
   8778	023244	105237 	000000G			INCB	.TKTN		; SCHEDULE TASK TERMINATOR
   8779	023250	052737 	000000G	000000G		BIS	#KS.FCF,.KLITK	; SAY WHY IT FAILED
   8780	023256					CALL	..DSEV		; DECLARE A SIGNIFICANT EVENT
	023256	004737 	000000G			 JSR	PC,..DSEV
   8781	023262	005037 	000000G			CLR	.ERRCD		; CLEAR ANY ERROR CODE (AVOID RECURSION)
   8782	023266	000137 	024030'			JMP	$EXIT1		; AND EXIT
   8783	023272				40$:
   8784	023272					PRINT	R5		; PRINT ERROR MESSAGE
	023272	010500 				 MOV	R5,R0
	023274	004737 	027634'			 JSR	PC,$TTMSG
   8785	023300				50$:
   8786	023300	005037 	000000G			CLR	.ERRCD		; CLEAR ANY ERROR CODE (AVOID RECURSION)
   8787	023304					RETURN			; ERROR EXIT.
	023304	000207 				 RTS	PC
   8788	023306				60$:
   8789	023306	005037 	000000G			CLR	.ERRCD		; CLEAR ANY ERROR CODE (AVOID RECURSION)
   8790	023312	005037 	000000G			CLR	.NOERR		; ALLOW KL ERRORS TO OCCUR,
   8791	023316					PRINT	#TRSFCS		; TELL OPERATOR,
	023316	012700 	005515'			 MOV	#TRSFCS,R0
	023322	004737 	027634'			 JSR	PC,$TTMSG
   8792	023326	000137 	024030'			JMP	$EXIT1		; AND EXIT NORMALLY.
   8793						.DSABL	LSB
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 187
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

   8795					;+
   8796					; RESET THE KL CPU, ENABLE THE PARITY STOPS, AND TURN ON CACHE IF NECESSARY.
   8797					;
   8798					; NO INPUTS
   8799					;
   8800					; OUTPUTS:
   8801					;	CARRY SET IF ERROR OCCURRS.
   8802					;-
   8803
   8804	023332				LRSTKL:	CALL	$KLMR		; FORCE E-BOX INTO OBEDIENCE
	023332	004737 	015232'			 JSR	PC,$KLMR
   8806	023336	103433 				BCS	90$
   8807	023340	105737 	000043'			TSTB	.CASW		; IF CACHE IS THERE
   8808	023344	003410 				BLE	10$
   8809	023346	105737 	000064'			TSTB	.NCACH		; AND IS TO BE USED
   8810	023352	003405 				BLE	10$
   8811	023354	012700 	001714'			MOV	#DRSCEN,R0	; THEN
   8812	023360					CALL	$EXCT		; TURN IT ON
	023360	004737 	030636'			 JSR	PC,$EXCT
   8814	023364	103420 				BCS	90$
   8815	023366	012701 	001721'		10$:	MOV	#DRSPLD,R1	; DO STUFF TO
   8816	023372	012700 	047000 			MOV	#.LDCK2,R0
   8817	023376					CALL	$DFWR
	023376	004737 	013556'			 JSR	PC,$DFWR
   8818	023402	012701 	001726'			MOV	#DRSPEN,R1	; SET THE PARITIES
   8819	023406	012700 	046000 			MOV	#.LDCK1,R0
   8820	023412					CALL	$DFWR
	023412	004737 	013556'			 JSR	PC,$DFWR
   8821	023416	012700 	001000 			MOV	#.STRCL,R0	; START THE CLOCK
   8822	023422					CALLR	$DFXC
	023422	000137 	013760'			 JMP	$DFXC
   8823	023426				90$:	RETURN
	023426	000207 				 RTS	PC
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 188
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

   8825					;+
   8826					; WAIT FOR 1 SECOND
   8827					;
   8828					; NO INPUTS
   8829					;
   8830					; OUTPUTS:
   8831					;	CARRY SET IF ERROR OCCURRS.
   8832					;-
   8833
   8834	023430				WAIT1S:
   8835	023430					MRKT$S	#1,#60.,#0	; WAIT FOR ONE SECOND.
	023430	005046 				CLR	-(SP)
	023432	005046 				CLR	-(SP)
	023434	012746 	000074 			MOV	#60.,-(SP)
	023440	012746 	000001 			MOV	#1,-(SP)
	023444	012746 				MOV	(PC)+,-(SP)
	023446	   027 	   005 			.BYTE	23.,5
	023450	104375 				EMT	375
   8836	023452	103011 				BCC	10$
   8837	023454	122737 	000000G	000000G		CMPB	#IE.UPN,$DSW	; IF INSUFFICIENT MEMORY,
   8838	023462	001013 				BNE	20$		; THEN
   8839	023464					WSIG$S			; RSX IS CROWDED.
	023464	012746 				MOV	(PC)+,-(SP)
	023466	   061 	   001 			.BYTE	49.,1
	023470	104375 				EMT	375
   8840	023472	103356 				BCC	WAIT1S		; TRY AGAIN
   8841	023474	000406 				BR	20$		; USELESS, GIVE UP
   8842	023476				10$:
   8843	023476					WTSE$S	#1		; WAIT, WAIT, WAIT....
	023476	012746 	000001 			MOV	#1,-(SP)
	023502	012746 				MOV	(PC)+,-(SP)
	023504	   051 	   002 			.BYTE	41.,2
	023506	104375 				EMT	375
   8844	023510	103001 				BCC	30$
   8845	023512				20$:
   8846	023512	000261 				SEC			; FLAG ERROR
   8847	023514				30$:
   8848	023514					RETURN			; EXIT
	023514	000207 				 RTS	PC
KLIRS -- SPECIAL KL RESTARTS	MACRO M1113  03-APR-86 20:55  PAGE 189
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

   8850
   8851
   8852
   8853						.TITLE	KLIRT -- ROOT SECTION
   8854	023516					IDENT$	15,12,KLI$$F
						.IDENT	/A15120/
   8855					;
   8856					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8857					; ALL RIGHTS RESERVED.
   8858					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8859					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8860					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8861					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8862					;
   8863					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8864					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8865					; EQUIPMENT CORPORATION.
   8866					;
   8867					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8868					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8869					;
   8870					; VERSION 15-12
   8871					;
   8872					; ALAN D. PECKHAM  15-APR-77
   8873					;
   8874					; MODIFIED BY:
   8875					;
   8876					; R. BELANGER	22-OCT-79	ADD CACHE SWEEP ON BOOT OR RELOAD
   8877					;				TCO 5.1013
   8878					; R. BELANGER	16-JUL-79	ADD KL10 ENVIRONMENTAL REPORTING
   8879					;				TCO 4.2333
   8880					; R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION
   8881					;				TCO 4.2204
   8882					; R. BELANGER	06-DEC-78	ADD NEW KEEP-ALIVE ERROR PROCESSING
   8883					;				TCO 4.2107
   8884					; R. BELANGER	25-JUL-78	INTEGRATE WITH MOS CONFIGURATOR
   8885					;
   8886					;01-AUG-83  TCO 6.1675	D. WEAVER
   8887					;	SUPPORT FOR WARM RESTART FOR TOPS10.
   8888					;
   8889					; M. RUDENKO	09-FEB-84	ADD MG20 MEMORY CONFIGURATION
   8890					;				ADD MCA25 PAGE TABLE SELECTION
   8891					;
   8892					;
   8893					; FUNCTION: THE ROOT SECTION CONTAINS ALL THE GLOBAL DATA ITEMS
   8894					;  AND THE MAIN-LINE OVERLAY CONTROL CODE.
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 190
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

   8896					;
   8897					; EQUATED SYMBOLS
   8898					;
   8899		000015 			CR	=	15		; CARRIAGE RETURN CHARACTER.
   8900		000012 			LF	=	12		; LINE FEED CHARACTER.
   8901		000040 			SPC	=	40		; SPACE CHARACTER.
   8902		000011 			TAB	=	11		; TAB CHARACTER.
   8903					;
   8904		000256 			XCT	=	256		;  [4.2107] KL10 "XCT" OPCODE
   8905					;
   8906					; LOCAL MACROS
   8907						.MCALL	QIOW$,EXIT$S
   8908					;
   8909					; LOCAL DATA
   8910					;
   8911	001744					.PSECT	DATA,D
   8912	001744				DRTX71:
   8913	001744					I10$	XCT	0,,71	; [4.2107] KL10 "XCT 71"
	001744	   071 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001747	   160 	   005 			 .BYTE	BY$$3,BY$$4
   8914						.EVEN
   8916	001752				DRTWLB:
   8917	001752					QIOW$	IO.WLB,LPOLUN,1,,DRTSTA,,<DRTBUF,0,0>
	001752	   003 	   011 			.BYTE	3,$$$ARG
	001754	000000G				.WORD	IO.WLB
	001756	000003 				.WORD	LPOLUN
	001760	   001 	   000 			.BYTE	1,
	001762	001774'				.WORD	DRTSTA
	001764	000000 				.WORD
	001766	002000'				.WORD	DRTBUF
	001770	000000 				.WORD	0
	001772	000000 				.WORD	0
   8918	001774				DRTSTA:
   8919	001774	000000 	000000 			.WORD	0,0		; I/O STATUS.
   8920	002000				DRTBUF:
   8921	002000					.BLKB	72.		; TRACK OUTPUT BUFFER.
   8922	002110				DRTBF:
   8923	002110					WD36$	0 0		; BIT BUCKET.
	002110	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002113	   000 	   000 			 .BYTE	BY$$3,BY$$4
   8924						.EVEN
   8926	005552					.PSECT	TEXT,D
   8927	005552				COMCSE::
   8928	005552					MESSAGE	<COMMAND SYNTAX ERROR>
	005552	   103 	   117 	   115 		 .ASCIZ	\COMMAND SYNTAX ERROR\
	005555	   115 	   101 	   116
	005560	   104 	   040 	   123
	005563	   131 	   116 	   124
	005566	   101 	   130 	   040
	005571	   105 	   122 	   122
	005574	   117 	   122 	   000
   8929	005577				TRTMMF:
   8930	005577					ERROR	<MEMORY CONFIGURATION FAILED>
	005577	   077 	   040 	   115 		 .ASCIZ	\? MEMORY CONFIGURATION FAILED\
	005602	   105 	   115 	   117
	005605	   122 	   131 	   040
	005610	   103 	   117 	   116
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 190-1
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

	005613	   106 	   111 	   107
	005616	   125 	   122 	   101
	005621	   124 	   111 	   117
	005624	   116 	   040 	   106
	005627	   101 	   111 	   114
	005632	   105 	   104 	   000
   8931	005635				TRTBTF:
   8932	005635					ERROR	<BOOTSTRAP LOAD FAILED>
	005635	   077 	   040 	   102 		 .ASCIZ	\? BOOTSTRAP LOAD FAILED\
	005640	   117 	   117 	   124
	005643	   123 	   124 	   122
	005646	   101 	   120 	   040
	005651	   114 	   117 	   101
	005654	   104 	   040 	   106
	005657	   101 	   111 	   114
	005662	   105 	   104 	   000
   8933	005665				TRTFME:
   8934	005665					ERROR	<FATAL MEMORY CONFIGURATION ERROR - CODE "_>
	005665	   077 	   040 	   106 		 .ASCIZ	\? FATAL MEMORY CONFIGURATION ERROR - CODE "_\
	005670	   101 	   124 	   101
	005673	   114 	   040 	   115
	005676	   105 	   115 	   117
	005701	   122 	   131 	   040
	005704	   103 	   117 	   116
	005707	   106 	   111 	   107
	005712	   125 	   122 	   101
	005715	   124 	   111 	   117
	005720	   116 	   040 	   105
	005723	   122 	   122 	   117
	005726	   122 	   040 	   055
	005731	   040 	   103 	   117
	005734	   104 	   105 	   040
	005737	   042 	   137 	   000
   8935	005742				TRTEND:
   8936	005742	   042 	   000 			.ASCIZ	/"/
   8937	023516					.PSECT
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 191
GLOBAL DATA STORAGE

   8939						.SBTTL	GLOBAL DATA STORAGE
   8940	000000					.PSECT	GLBL,D,GBL
   8941
   8942					;+
   8943					; WORK AND STORAGE AREA
   8944					;-
   8945
   8946	000000				.ZERO::
   8947	000000	000000 	000000 	000000 		.WORD	0,0,0		; SOURCE OF 36-BIT ZERO
   8948	000006	000000 	000000 	000000 		.WORD	0,0,0		; PLUS EXTRAS FOR C-RAM ZERO.
   8949	000014				.WORK::
   8950	000014	000000 	000000 	000000 		.WORD	0,0,0		; COMMON WORK AREA
   8951
   8952					;+
   8953					; INFORMATION AND CONTROL SWITCHES.
   8954					;-
   8955
   8956	000022				.SPSAV::
   8957	000022	000000 				.WORD	0		; SAVE STACK POINTER HERE
   8958	000024				.DLGSW::
   8959	000024	   000 				.BYTE	0		; DIALOG CONTROL SWITCH.
   8960	000025				.MCBSW::
   8961	000025	   000 				.BYTE	0		; MICROCODE FILENAME SWITCH
   8962	000026				.UFNSW::
   8963	000026	   000 				.BYTE	0		; USER FILE SPECIFIED.
   8964	000027				.DRSW::
   8965	000027	   000 				.BYTE	0		; RAM DIALOG CONTROL.
   8967	000030				.CSDN::
   8968	000030	   001 				.BYTE	1		; [5.1013] SWEEP DONE SWITCH
   8969	000031				.DCSW::
   8970	000031	   000 				.BYTE	0		; CACHE DIALOG CONTROL.
   8972	000032				.DMSW::
   8973	000032	   000 				.BYTE	0		; MEMORY DIALOG CONTROL.
   8974	000033				.DBSW::
   8975	000033	   000 				.BYTE	0		; BOOT DIALOG CONTROL.
   8976	000034				.PTSW::
   8977	000034	   000 				.BYTE	0		; [**] MCA25 DIALOG CONTROL
   8978	000035				.MCA25::
   8979	000035	   000 				.BYTE	0		; [**] MCA25 INDICATOR
   8981	000036				.TRKSW::
   8982	000036	   000 				.BYTE	0		; TRACK CONTROL SWITCH.
   8983	000037				.TRKTT::
   8984	000037	   000 				.BYTE	0		; [5.1005] TERMINAL TRACK CONTROL
   8985	000040				.TRKLP::
   8986	000040	   000 				.BYTE	0		; [5.1005] LP TRACK CONTROL
   8988	000041				.CKSW::
   8989	000041	   000 				.BYTE	0		; CLOCK RUNNING FLAG.
   8990	000042				.DESW::
   8991	000042	   000 				.BYTE	0		; CLOCK RUNNING FOR EXAMINE/DEPOSIT.
   8993	000043				.CASW::
   8994	000043	   000 				.BYTE	0		; CACHE INDICATOR.
   8996	000044				.EASW::
   8997	000044	   000 				.BYTE	0		; EXTENDED ADDRESSING INDICATOR.
   8998	000045				.MFSW::
   8999	000045	   000 				.BYTE	0		; MOS MEMORY INDICATOR
   9000	000046				.MFCT::
   9001	000046	   000 				.BYTE	0		; COUNT OF MF20'S EXPECTED FROM FILE
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 191-1
GLOBAL DATA STORAGE

   9002	000047				.FILSW::
   9003	000047	   000 				.BYTE	0		; WRITE CONFIG FILE SWITCH
   9004	000050				.BTSW::
   9005	000050	   000 				.BYTE	0		; LOAD BOOT SWITCH
   9006	000051				.MCSW::
   9007	000051	   000 				.BYTE	0		; [**] MCA25 STATE INDICATOR
   9008
   9009						.EVEN
   9010
   9011	000052				$LOG::
   9012	000052	000001 				.WORD	1		; [4.1.1073]ERROR LOGGING FLAG
   9013	000054				$LGERR::
   9014	000054	000000 				.WORD	0		; [4.1.1073]ERROR FLAG
   9015	000056				$LGOPN::
   9016	000056	000000 				.WORD	0		; [4.1.1073]LOGGING FILE OPEN FLAG
   9017
   9018					;+
   9019					;	.KLIWD DEFINITIONS:
   9020					;
   9021					;	KL.KAC		KEEP-ALIVE-CEASED ERROR
   9022					;	KL.LRM		LOAD RAMS
   9024					;	KL.LCA		CONFIGURE CACHE
   9026					;	KL.CFM		CONFIGURE MEMORY
   9027					;	KL.LVB		LOAD BOOT
   9028					;	KL.SPF		RESTART FOR KL POWER FAIL
   9030					;	KL.SSC		RESTART FOR KL SYSTEM CRASH
   9032					;	KL.CFL		CONFIGURE ALL
   9033					;			INSTEAD OF FROM CONFIGURATION FILE
   9034					;	KL.VBN		BOOT - NO PROMPT
   9035					;	KL.VBD		BOOT - DUMP MONITOR
   9036					;
   9037					;	ALL BITS ZERO IMPLIES TO ENTER DIALOG
   9038					;-
   9039
   9040	000060				.KLISV::
   9041	000060	000000 				.WORD	0		; =.KLIWD
   9042	000062				.SNSAV::
   9043	000062	000000 				.WORD	0		; [4.2333] = .CPUSN
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 192
GLOBAL DATA STORAGE

   9046					;+
   9047					; CACHE TABLES
   9048					;-
   9049
   9050	000064				.NCACH::
   9051	000064	   377 				.BYTE	-1		; NUMBER OF CACHES TO USE.
   9052	000065				.CACHN::
   9053	000065					.BLKB	4		; CACHE MODULES TO USE.
   9054						.EVEN
   9055
   9057
   9058					;+
   9059					; CONTROLLER TABLES.
   9060					; THESE TABLES ARE USED AS FOLLOWS:
   9061					;	.CTLTP	- THIS TABLE CONTAINS THE MEMORY TYPE FOR EACH CONTROLLER.
   9062					;	.CFGTB	- THIS TABLE CONTAINS THE CONFIGURATION MASK WORDS
   9063					;		<0 -- NOT TO BE USED
   9064					;		=0 -- DEFAULT (ALL BLOCKS OR MODULES TO BE USED)
   9065					;		>0 -- USE BLOCKS OR MODULES SPECIFIED IN BIT-MASK
   9066					;
   9067					; A PSEUDO-CONTROLLER IS DEFINED FOR THE FORWARD/REVERSE CONFIGURATION FLAG.
   9068					; THIS PSEUDO-CONTROLLER ALWAYS OCCUPIES THE "CTLS+1"TH POSITION IN THE TABLES,
   9069					; AND ITS CONTROLLER TYPE IS -1, SO  THAT IT MAY BE SAVED AND RESTORED FORM THE
   9070					; CONFIGURATION FILE.
   9071					;-
   9072
   9073	000072				.CTLTP::
   9074	000072					.BLKB	CTLS		; CONTROLLER TYPE FOR EACH ADDRESS.
   9075	000132	   001 				.BYTE	1		; [4.2204] PSEUDO-CONTROLLER FOR FWD/REV CONFIGURATION FLAG
   9076						.EVEN
   9077	000134				.CFGTB::
   9078	000134					.BLKW	CTLS		; ALLOCATION BIT-MASK FOR EACH CONTROLLER
   9079	000234				.CFMRV::
   9080	000234	000000 				.WORD	0		; [4.2204] FORWARD/REVERSE CONFIGURATION FLAG
   9081
   9082	000236				BMMSTB::			; BUS-MODE MASKS
   9083	000236	007400 				.WORD	7400
   9084	000240	000360 				.WORD	360
   9085	000242	000017 				.WORD	17
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 193
GLOBAL DATA STORAGE

   9087					;+
   9088					; DPB FOR READ/WRITE DTE20 REGS
   9089					;-
   9090
   9091	000244				.KLREG::
   9092	000244	002411 				.WORD	2411
   9093	000246	   017 	   000 			.BYTE	17,0
   9094	000250	000302'				.WORD	.DTEDT
   9095	000252	000272'				.WORD	.DREG
   9096	000254	000000 				.WORD	0
   9097
   9098	000256				.DFBLK::			; EBSIN
   9099	000256				.DFWBK::
   9100	000256	000000 	000000 	000000 		.WORD	0,0,0		; 3 WORDS TO BE WRITTEN TO EBUS
   9101	000264				.DFRBK::
   9102	000264	000000 	000000 	000000 		.WORD	0,0,0		; 3 WORDS TO BE READ FROM EBUS
   9103	000272				.DREG::
   9104	000272				.DFRG1::
   9105	000272	000000 				.WORD	0		; DTE20 DIAG
   9106	000274				.DFRG2::
   9107	000274	000000 				.WORD	0		; DTE20 DIAG2
   9108	000276				.DFSTA::
   9109	000276	000000 				.WORD	0		; DTE20 STATUS WORD
   9110	000300				.DFRG3::
   9111	000300	000000 				.WORD	0		; DTE20 DIAG3
   9112
   9113	000302				.DTEDT::
   9114	000302	000000 				.WORD	0		; DTE TRANSFER AREA
   9115
   9116					;+
   9117					; TTY BUFFERS
   9118					;-
   9119
   9120		000040 			T.TIL	==	32.		; (MAXIMUM IS 80. CHARACTERS)
   9121	000304				.TTIBF::
   9122	000304					.BLKB	T.TIL		; CTY INPUT BUFFER.
   9123		000111 			T.TOL	==	73.
   9124	000344				.TTOBF::
   9125	000344					.BLKB	T.TOL		; CTY OUTPUT BUFFER.
   9126						.EVEN
   9127
   9128					;+
   9129					; MISC.
   9130					;-
   9131
   9132	000456				.MCBFN::
   9133	000456	000000 	000000 	000000 		.WORD	0,0,0,0		; MICROCODE FILENAME
	000464	000000
   9134	000466	000000 				.WORD	0		; VERSION NUMBER
   9135	000470	   005 	   005 			.BYTE	5,5		; UIC
   9136	000472	054523 	000000 			.WORD	"SY,0		; DEVICE AND UNIT
   9137	000476				.USRFN::
   9138	000476	000000 	000000 	000000 		.WORD	0,0,0,0		; FILE NAME ENTERED BY OPERATOR
	000504	000000
   9139	000506	000000 				.WORD	0		; VERSION NUMBER (LAST VERSION).
   9140	000510	   005 	   005 			.BYTE	5,5		; DIRECTORY UIC.
   9141	000512	054523 	000000 			.WORD	"SY,0		; DEVICE AND UNIT NUMBER.
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 193-1
GLOBAL DATA STORAGE

   9142	000516				.BTADR::
   9143	000516	000000 	000000 	000000 		.WORD	0,0,0		; KL BOOT ADDRESS.
   9144	000524				.PTSEL::
   9145	000524	000000 				.WORD	0		; [**] MCA25 PAGE TABLE SELECTED
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 194
GLOBAL DATA STORAGE

   9147					;+
   9148					; SYSTEM DEVICE WORK AREAS
   9149					;-
   9150
   9151	000526				.SYSTA::
   9152	000526	000000 	000000 			.WORD	0,0		; OPERATION STATUS.
   9153	000532				.SYISW::
   9154	000532	   000 				.BYTE	0		; INPUT FILE OPEN SWITCH.
   9155	000533				.SYOSW::
   9156	000533	   000 				.BYTE	0		; OUTPUT FILE OPEN SWITCH.
   9157
   9158		001000 			S.YIL	==	1000
   9159	000534				.SYIRC::
   9160	000534	000000 				.WORD	0		; RECORD COUNT.
   9161	000536				.SYIBA::
   9162	000536	000566'				.WORD	.SYIBF		; BUFFER POSITION.
   9163	000540				.SYIBC::
   9164	000540	001000 				.WORD	S.YIL		; BYTES LEFT IN BUFFER.
   9165	000542				.SYIFN::
   9166	000542	000000 	000000 	000000 		.WORD	0,0,0,0,0	; INPUT FILE NAME.
	000550	000000 	000000
   9167	000554	   005 	   005 			.BYTE	5,5
   9168	000556	054523 	000000 			.WORD	"SY,0
   9169	000562				.SYIVB::
   9170	000562	000000 	000000 			.WORD	0,0		; CURRENT INPUT BLOCK NUMBER.
   9171	000566				.SYIBF::
   9172	000566					.BLKW	S.YIL/2		; SYSTEM DEVICE INPUT BUFFER.
   9173
   9174		001000 			S.YOL	==	1000
   9175	001566				.SYORC::
   9176	001566	000000 				.WORD	0		; RECORD COUNT.
   9177	001570				.SYOBA::
   9178	001570	000566'				.WORD	.SYIBF		; BUFFER POSITION.
   9179	001572				.SYOBC::
   9180	001572	001000 				.WORD	S.YIL		; BYTES LEFT IN BUFFER.
   9181	001574				.SYOFN::
   9182	001574	000000 	000000 	000000 		.WORD	0,0,0,0,0	; OUTPUT FILE NAME.
	001602	000000 	000000
   9183	001606	   005 	   005 			.BYTE	5,5
   9184	001610	054523 	000000 			.WORD	"SY,0
   9185	001614				.SYOVB::
   9186	001614	000000 	000000 			.WORD	0,0		; CURRENT OUTPUT BLOCK NUMBER.
   9187	001620				.SYOBF::
   9188	001620					.BLKW	S.YOL/2		; SYSTEM DEVICE OUTPUT BUFFER.
   9189
   9190					;+
   9191					; FILE NAME BLOCK (SET UP TO GET DIRECTORY)
   9192					;-
   9193
   9194	002620				.SYFNB::
   9195	002620	000000 	000000 	000000 		.WORD	0,0,0		; N.FID
   9196	002626	140123 	140123 	000000 		.RAD50	/005005   /	; N.FNAM
   9197	002634	015172 				.RAD50	/DIR/		; N.FTYP
   9198	002636	000000 				.WORD	0		; N.FVER
   9199	002640	000000 				.WORD	0		; N.STAT
   9200	002642	000000 				.WORD	0		; N.NEXT
   9201	002644	177777 	177777 			.WORD	-1,-1		; DIRECTORY FID.
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 194-1
GLOBAL DATA STORAGE

   9202	002650	   005 	   005 			.BYTE	5,5		; OWNER
   9203		002620'			.SYFID	==	.SYFNB		; FILE ID IS IN FIRST TWO WORDS OF FNB
   9204		002626'			.SYFNM	==	.SYFNB+6	; FILENAME.
   9205
   9206					;+
   9207					; THESE ARE THE USER FILE ATTRIBUTES FOR THE CURRENTLY
   9208					; OPEN OUTPUT FILE.
   9209					;-
   9210
   9211	002652				.SYATT::
   9212	002652	   002 				.BYTE	2		; VARIABLE LENGTH RECORDS.
   9213	002653	   000 				.BYTE	0		; NO RECORD ATTRIBUTES.
   9214	002654	000000 				.WORD	0		; LARGEST RECORD IN FILE.
   9215	002656	000000 	000000 			.WORD	0,0		; HIGHEST VIRTUAL BLOCK ALLOCATED.
   9216	002662	000000 	000000 			.WORD	0,0		; HIGHEST VIRTUAL BLOCK USED.
   9217	002666	000000 				.WORD	0		; TO NEXT FREE BYTE IN LAST BLOCK.
   9218
   9219						.EVEN
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 195
$START	-- MAIN PROGRAM FLOW CONTROL

   9221						.SBTTL	$START	-- MAIN PROGRAM FLOW CONTROL
   9222	023516					.PSECT
   9223						.ENABL	LSB
   9224
   9225	023516				$START::
   9226	023516	032737 	000000G	000000G		BIT	#KL.ABO,.KLIWD	; [4.1.1049]ABORT RELOADING?
   9227	023524	001403 				BEQ	5$		; [4.1.1049]NO -- GO ON
   9228	023526	005037 	000000G			CLR	.KLIWD		; [4.1.1049]YES -- CLEAR RELOAD FLAG
   9229	023532	000536 				BR	$EXIT1		; [4.1.1049]EXIT
   9230	023534	010637 	000022'		5$:	MOV	SP,.SPSAV	; SAVE THE STACK POINTER
   9231	023540					CALL	$INIT		; DO INITIALIZATION
	023540	004737 	015564'			 JSR	PC,$INIT
   9232	023544	032737 	000000G	000060'		BIT	#KL.KAC,.KLISV	; [4.2107] KEEP-ALIVE RETRY??
   9233	023552	001423 				BEQ	20$		; [4.2107] NO -- GO ON
   9234	023554	105237 	000000G		XCT71::	INCB	.NOERR		; [4.2107] YES -- DON'T WANT SPURIOUS CRASHES
   9235	023560	012700 	001744'			MOV	#DRTX71,R0	; [4.2107] POINT TO KL INSTRUCTION
   9236	023564					CALL	$EXCT		; [4.2107] EXECUTE IT
	023564	004737 	030636'			 JSR	PC,$EXCT
   9237	023570	103411 				BCS	10$		; [4.2107] ERROR IF CC-C IS SET
   9238	023572	012700 	011000 			MOV	#.SETRN,R0	; [4.2107] SET THE RUN FLOP
   9239	023576					CALL	$DFXC		; [4.2107] SO
	023576	004737 	013760'			 JSR	PC,$DFXC
   9240	023602	103404 				BCS	10$		; [4.2107] ERROR IF CC-C IS SET
   9241	023604	012700 	012000 			MOV	#.CONBT,R0	; [4.2107] SET THE CONTINUE BUTTON
   9242	023610					CALL	$DFXC		; [4.2107] SO
	023610	004737 	013760'			 JSR	PC,$DFXC
   9243	023614				10$:
   9244	023614	105337 	000000G			DECB	.NOERR		; [4.2107] RESET ERROR INTERLOCK
   9245	023620	000503 				BR	$EXIT1		; [4.2107] AND EXIT
   9246						;
   9247	023622				20$:				; [4.2107]
   9248	023622	000137 	021170'			JMP	$DLGEN		; ENTER DIALOG
   9249
   9250						.DSABL	LSB
   9251
   9252						;
   9253	023626				$CFGRM::
   9254	023626					CALL	$MCBLD		; LOAD RAMS
	023626	004737 	001066'			 JSR	PC,$MCBLD
   9255	023632	103467 				BCS	$ERROR
   9257	023634				$DLGCV::
   9258	023634	000137 	017066'			JMP	$DLGCA		; ENTER CACHE DIALOG.
   9259						;
   9260
   9261						.ENABL	LSB
   9262
   9263	023640				$CFGCA::
   9264	023640	105737 	000031'			TSTB	.DCSW		; IF CONFIGURATION INFO
   9265	023644	003003 				BGT	10$		; NOT SET UP, THEN
   9266	023646					CALL	$GETCA		; GET IT.
	023646	004737 	014112'			 JSR	PC,$GETCA
   9267	023652	103457 				BCS	$ERROR
   9268	023654				10$:
   9269	023654					CALL	$SETCA		; CONFIGURE THE CACHE.
	023654	004737 	000356'			 JSR	PC,$SETCA
   9270	023660	103454 				BCS	$ERROR
   9272	023662				$DLGMV::
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 195-1
$START	-- MAIN PROGRAM FLOW CONTROL

   9273	023662	000137 	017556'			JMP	$DLGMM		; ENTER MEMORY DIALOG.
   9274						;
   9275	023666				$DLGMX::
   9276	023666	103404 				BCS	20$
   9277	023670				$DLGBV::
   9278	023670	000137 	016334'			JMP	$DLGBT		; ENTER BOOT DIALOG.
   9279						;
   9280	023674				$DLGRV::
   9281	023674	000137 	020700'			JMP	$DLGRM		; ENTER RAM DIALOG
   9282						;
   9283	023700				20$:
   9284	023700					PRINT	#TRTMMF		; MEMORY CONFIGURATION FAILED
	023700	012700 	005577'			 MOV	#TRTMMF,R0
	023704	004737 	027634'			 JSR	PC,$TTMSG
   9285	023710	000137 	024012'			JMP	$ERROR
   9286						;
   9287
   9288						.DSABL	LSB
   9289
   9290	023714				$CFGBT::
   9291	023714	105737 	000043'			TSTB	.CASW		; IF NO CACHE, THEN
   9292	023720	002414 				BLT	10$		; LOAD THE BOOT.
   9293	023722	105737 	000064'			TSTB	.NCACH		; OTHERWISE CHECK IF
   9294	023726	002011 				BGE	10$		; CACHE HAS BEEN CONFIGURED
   9295	023730					CALL	$GETCA		; IF NOT, GET LAST CONFIGURATION
	023730	004737 	014112'			 JSR	PC,$GETCA
   9296	023734	103426 				BCS	$ERROR		; AND
   9297	023736	105737 	000064'			TSTB	.NCACH		; IF WE HAVE TO SET IT
   9298	023742	001403 				BEQ	10$
   9299	023744					CALL	$SETCA		; THEN DO SO.
	023744	004737 	000356'			 JSR	PC,$SETCA
   9300	023750	103420 				BCS	$ERROR
   9301	023752				10$:
   9302	023752					CALL	$WRMRS		; ATTEMPT FAULT CONTINUATION (WARM RESTART)
	023752	004737 	023022'			 JSR	PC,$WRMRS
   9303	023756					CALL	$EXBLD		; LOAD & START BOOT.
	023756	004737 	030052'			 JSR	PC,$EXBLD
   9304	023762	103405 				BCS	20$
   9305	023764	105737 	000024'			TSTB	.DLGSW		; INTERNAL PATH ?
   9306	023770	002014 				BGE	$EXIT
   9307	023772	000137 	017422'			JMP	$DLGEX		; YES, TEST FOR RESTART.
   9308						;
   9309	023776				20$:
   9310	023776					CALL	$PURGE		; PURGE BOOT FILE
	023776	004737 	010124'			 JSR	PC,$PURGE
   9311	024002					PRINT	#TRTBTF
	024002	012700 	005635'			 MOV	#TRTBTF,R0
	024006	004737 	027634'			 JSR	PC,$TTMSG
   9312
   9313	024012				$ERROR::
   9314	024012	105037 	000024'			CLRB	.DLGSW		; ALLOW DIALOG
   9315	024016	000137 	021170'			JMP	$DLGEN		; AND ENTER IT.
   9316						;
   9317	024022				$EXIT::
   9318	024022					CALL	$FILE		; CHANGE CONFIGURATION FILE AND
	024022	004737 	003036'			 JSR	PC,$FILE
   9319	024026	103771 				BCS	$ERROR
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 195-2
$START	-- MAIN PROGRAM FLOW CONTROL

   9320	024030				$EXIT1::			; [4.2107]
   9321	024030					EXIT$S			; EXIT FROM KLINIT
	024030	012746 				MOV	(PC)+,-(SP)
	024032	   063 	   001 			.BYTE	51.,1
	024034	104375 				EMT	375
   9322						;
   9323	024036				$FATAL::
   9324	024036	012700 	005665'			MOV	#TRTFME,R0	; MESSAGE POINTER TO R0
   9325	024042					CALL	$TTDMS		; PRINT THE MESSAGE
	024042	004737 	027566'			 JSR	PC,$TTDMS
   9326	024046	012600 				MOV	(SP)+,R0	; POINTER TO ERROR CODE TEXT
   9327	024050	012701 	000003 			MOV	#3,R1		; THREE CHARACTERS
   9328	024054					CALL	$TTWR		; WRITE THAT
	024054	004737 	027714'			 JSR	PC,$TTWR
   9329	024060	012700 	005742'			MOV	#TRTEND,R0	; POINTER TO END
   9330	024064	012701 	000001 			MOV	#1,R1		; LENGTH OF ONE
   9331	024070					CALL	$TTWR		; WRITE THE CHARACTER
	024070	004737 	027714'			 JSR	PC,$TTWR
   9332	024074					CALL	$TCRLF		; AND END THE LINE
	024074	004737 	027530'			 JSR	PC,$TCRLF
   9333	024100	013706 	000022'			MOV	.SPSAV,SP	; RESET THE STACK POINTER
   9334	024104	105037 	000024'			CLRB	.DLGSW		; RESET DIALOG SWITCH
   9335	024110	000137 	017556'			JMP	$DLGMM		; ENTER MEMORY BOOT DILAOG
   9336						;
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 196
$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES

   9338						.SBTTL	$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
   9339					;+
   9340					; THESE ROUTINES WILL READ OR WRITE  A DTE-20 REGISTER ACCORDING TO
   9341					; WHICH ROUTINE IS CALLED.
   9342					;
   9343					;	DTRWD1 -- READ OR WRITE DTE-20 DIAG WORD 1
   9344					;	DTRWD2 -- READ OR WRITE DTE-20 DIAG WORD 2
   9345					;	DTRWST -- READ OR WRITE DTE-20 STATUS
   9346					;	DTRWD3 -- READ OR WRITE DTE-20 DIAG WORD 3
   9347					;
   9348					; IF LOCATION "DTETMP" IS .NE. 0, IT IS TAKEN A A POINTER TO THE
   9349					; DATA TO BE WRITTEN INTO THE REGISTER. IF "DTETMP" IS .EQ. 0, THEN
   9350					; A READ OF THE REGISTER IS PERFORMED. ON EITHER A READ OR A WRITE
   9351					; THE RESULT OF THE OPERATION IS RETURNED IN R0 AND IS SAVED IN
   9352					; LOCATION "DREG", AND LOCATION "DTETMP" IS CLEARED.
   9353					;-
   9354
   9355	024114				$DTRW1::
   9356	024114	105037 	000247'			CLRB	.KLREG+3	; DIAG 1 OFFSET = 0
   9357	024120	000413 				BR	DRTDTE		; DO COMMON CODE
   9358						;
   9359	024122				$DTRW2::
   9360	024122	112737 	000002 	000247'		MOVB	#2,.KLREG+3	; DIAG 2 OFFSET = 2
   9361	024130	000407 				BR	DRTDTE		; DO COMMON CODE
   9362						;
   9363	024132				$DTRWS::
   9364	024132	112737 	000004 	000247'		MOVB	#4,.KLREG+3	; STATUS OFFSET = 4
   9365	024140	000403 				BR	DRTDTE		; DO COMMON CODE
   9366						;
   9367	024142				$DTRW3::
   9368	024142	112737 	000006 	000247'		MOVB	#6,.KLREG+3	; DIAG 3 OFFSET = 6
   9369	024150				DRTDTE:
   9370	024150	012737 	000302'	000250'		MOV	#.DTEDT,.KLREG+4 ; SET THE BUFFER POINTER FOR WRITE DATA
   9371	024156	005037 	000272'			CLR	.DREG		; CLEAR RETURN DATA BUFFER
   9372	024162					DIR$	#.KLREG		; DO THE READ OR WRITE
	024162	012746 	000244'			MOV	#.KLREG,-(SP)
	024166	104375 				EMT	375
   9373	024170	103404 				BCS	10$
   9374	024172	005037 	000302'			CLR	.DTEDT		; RESET THE DATA POINTER TO 0 (READ)
   9375	024176	013700 	000272'			MOV	.DREG,R0	; COPY THE REGISTER TO R0
   9376	024202				10$:
   9377	024202					RETURN
	024202	000207 				 RTS	PC
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 197
$RSAVE	-- SAVE REGISTERS FOR ROUTINES

   9379						.SBTTL	$RSAVE	-- SAVE REGISTERS FOR ROUTINES
   9380					;+
   9381					; THIS ROUTINE SAVES ALL REGISTERS ON THE STACK AND PUSHES
   9382					; A RETURN ROUTINE ADDRESS ALSO, SO THAT WHEN THE USER RETURNS
   9383					; THE REGISTERS ARE AUTOMATICALLY RESTORED. THE RETURNED
   9384					; REGISTERS CAN BE MODIFIED: 2(SP)=R0, 4(SP)=R1, ETC.
   9385					;-
   9386
   9387	024204				$RSAVE::
   9388	024204					PUSH	<R4,R3,R2,R1,R0>
	024204	010446 				 MOV	R4,-(SP)
	024206	010346 				 MOV	R3,-(SP)
	024210	010246 				 MOV	R2,-(SP)
	024212	010146 				 MOV	R1,-(SP)
	024214	010046 				 MOV	R0,-(SP)
   9389	024216	004715 				JSR	PC,(R5)
   9390	024220					POP	<R0,R1,R2,R3,R4,R5>
	024220	012600 				 MOV	(SP)+,R0
	024222	012601 				 MOV	(SP)+,R1
	024224	012602 				 MOV	(SP)+,R2
	024226	012603 				 MOV	(SP)+,R3
	024230	012604 				 MOV	(SP)+,R4
	024232	012605 				 MOV	(SP)+,R5
   9391	024234	000207 				RTS	PC
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 198
$ASCIZ	-- TRANSFER ASCII STRING

   9393						.SBTTL	$ASCIZ	-- TRANSFER ASCII STRING
   9394					;+
   9395					; SET AN ASCII STRING INTO AN OUTPUT BUFFER POINTED TO BY R5.
   9396					; THE INPUT STRING IS POINTED TO BY R0 AND MUST BE TERMINATED
   9397					; BY A NULL BYTE. ON EXIT, R0 POINTS PAST THE NULL BYTE, AND
   9398					; R5 POINTS PAST THE INSERTED STRING (NULL BYTE IS NOT INSERTED).
   9399					; EMBEDDED NEGATIVE BYTES ARE NOT COPIED.
   9400					;-
   9401
   9402						.ENABL	LSB
   9403	024236				10$:
   9404	024236	005305 				DEC	R5
   9405	024240				$ASCIZ::
   9406	024240	112025 				MOVB	(R0)+,(R5)+
   9407	024242	003376 				BGT	$ASCIZ
   9408	024244	002774 				BLT	10$
   9409	024246	005305 				DEC	R5
   9410	024250	000207 				RTS	PC
   9411						.DSABL	LSB
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 199
$TRACK	-- SPECIAL TRACK ROUTINE

   9414						.SBTTL	$TRACK	-- SPECIAL TRACK ROUTINE
   9415					;+
   9416					; THIS ROUTINE IS CALLED TO PROVIDE A VISUAL TRACE OF KLINIT'S
   9417					; ACTION. IT REPORTS WITH A 2-CHARACTER IDENTIFICATION, A FUNCTION
   9418					; CODE/OR ADDRESS, AND A SECONDARY ADDRESS (36-BIT ADDRESSES).
   9419					; AN ARGUEMENT BLOCK IS PASSED IN R0:
   9420					;	.WORD	"FN		;2-CHAR IDENTIFICATION
   9421					;	.WORD	ADR1		;ADDR OF FIRST 36-BIT OR FNC CODE
   9422					;	.WORD	ADR2		;ADDR OF SECOND 36-BIT
   9423					; ADR1 AND ADR2 MAY BE ZERO, IN WHICH CASE THE ARGS ARE NOT PRINTED.
   9424					;-
   9425
   9426	024252				$TRACK::
   9427	024252	004537 	024204'			JSR	R5,$RSAVE
   9428	024256	006046 				ROR	-(SP)		; SAVE THE CARRY.
   9429	024260	105737 	000036'			TSTB	.TRKSW		; IF TRACK IS OFF,
   9430	024264	001515 				BEQ	70$		; IGNORE REQUEST.
   9431	024266	012705 	002000'			MOV	#DRTBUF,R5	; SET UP OUT BUF ADDRESS
   9432	024272	010004 				MOV	R0,R4		; AND ARG POINTER.
   9433	024274	112725 	000011 			MOVB	#TAB,(R5)+
   9434	024300	112425 				MOVB	(R4)+,(R5)+	; GET IDENT.
   9435	024302	112425 				MOVB	(R4)+,(R5)+
   9436	024304	112725 	000040 			MOVB	#SPC,(R5)+
   9437	024310	122737 	000106 	002001'		CMPB	#'F,DRTBUF+1	; IS IT A DIAG FUNCTION ?
   9438	024316	001006 				BNE	10$
   9439	024320	005000 				CLR	R0
   9440	024322	153400 				BISB	@(R4)+,R0	; YES, GET NUMBER
   9441	024324	006200 				ASR	R0
   9442	024326					CALL	$TRB2O		; AND PRINT IT.
	024326	004737 	026500'			 JSR	PC,$TRB2O
   9443	024332	000416 				BR	30$
   9444						;
   9445	024334				10$:
   9446	024334	012401 				MOV	(R4)+,R1	; FIRST ADDRESS ?
   9447	024336	001414 				BEQ	30$		; NO, SKIP IT.
   9448	024340	012702 	002110'			MOV	#DRTBF,R2
   9449	024344	012703 	000005 			MOV	#5,R3		; TRANSFER 5 BYTES
   9450	024350	010200 				MOV	R2,R0		; TO WORK AREA
   9451	024352				20$:
   9452	024352	112122 				MOVB	(R1)+,(R2)+
   9453	024354	077302 				SOB	R3,20$
   9454	024356	042762 	177760 	177777 		BIC	#^C17,-1(R2)	; TRIM TO 36 BITS,
   9455	024364					CALL	$WRD22		; AND PRINT.
	024364	004737 	026154'			 JSR	PC,$WRD22
   9456	024370				30$:
   9457	024370	011401 				MOV	(R4),R1		; SECOND WORD ?
   9458	024372	001420 				BEQ	60$		; NO, IGNORE IT.
   9459	024374	012702 	002110'			MOV	#DRTBF,R2
   9460	024400	012703 	000005 			MOV	#5,R3		; SAME AS BEFORE...
   9461	024404	010200 				MOV	R2,R0
   9462	024406				40$:
   9463	024406	112122 				MOVB	(R1)+,(R2)+
   9464	024410	077302 				SOB	R3,40$
   9465	024412	042762 	177760 	177777 		BIC	#^C17,-1(R2)
   9466	024420	005744 				TST	-(R4)
   9467	024422	001402 				BEQ	50$
   9468	024424	112725 	000057 			MOVB	#'/,(R5)+	; EXCEPT FOR SEPERATOR.
KLIRT -- ROOT SECTION	MACRO M1113  03-APR-86 20:55  PAGE 199-1
$TRACK	-- SPECIAL TRACK ROUTINE

   9469	024430				50$:
   9470	024430					CALL	$WRD36
	024430	004737 	026266'			 JSR	PC,$WRD36
   9471	024434				60$:
   9472	024434	112725 	000015 			MOVB	#CR,(R5)+	; TERMINATE LINE
   9473	024440	112725 	000012 			MOVB	#LF,(R5)+	; AND
   9474	024444	162705 	002000'			SUB	#DRTBUF,R5	; (LENGTH OF LINE)
   9475	024450	010537 	001770'			MOV	R5,DRTWLB+Q.IOPL+2 ; PUT IN DPB
   9476	024454	105737 	000040'			TSTB	.TRKLP		; [5.1005] TRACK ON LP?
   9477	024460	001406 				BEQ	65$		; [5.1005] NO -- CHECK TT
   9478	024462	012737 	000003 	001756'		MOV	#LPOLUN,DRTWLB+Q.IOLU	; [5.1005] YES -- SET LUN
   9479	024470					DIR$	#DRTWLB		; [5.1005] SEND IT
	024470	012746 	001752'			MOV	#DRTWLB,-(SP)
	024474	104375 				EMT	375
   9480	024476	105737 	000037'		65$:	TSTB	.TRKTT		; [5.1005] TRACK ON TT?
   9481	024502	001406 				BEQ	70$		; [5.1005] NO -- EXIT
   9482	024504	012737 	000002 	001756'		MOV	#TTOLUN,DRTWLB+Q.IOLU	; [5.1005] YES -- SET LUN
   9483	024512					DIR$	#DRTWLB		; AND SEND IT.
	024512	012746 	001752'			MOV	#DRTWLB,-(SP)
	024516	104375 				EMT	375
   9484	024520				70$:
   9485	024520	006126 				ROL	(SP)+		; RESTORE THE CARRY.
   9486	024522					RETURN
	024522	000207 				 RTS	PC
   9488						.TITLE	KLIST -- START THE KL BOOT
   9489	024524					IDENT$	13,04,KLI$$F
						.IDENT	/A13040/
   9490					;
   9491					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9492					; ALL RIGHTS RESERVED.
   9493					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9494					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9495					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9496					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9497					;
   9498					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9499					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9500					; EQUIPMENT CORPORATION.
   9501					;
   9502					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9503					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9504					;
   9505					; VERSION 13-04
   9506					;
   9507					; ALAN D. PECKHAM  7-APR-77
   9508					;
   9509					; MODIFIED BY:
   9510					;
   9511					;19-JAN-83  TCO 6.1508	D. WEAVER
   9512					;	GET THE CPU NUMBER OF THE KL WE ARE RUNNING ON FROM .KLCPU SO WE
   9513					;	CAN DO WARM RESTART ON SMP SYSTEMS (USED BY KLINIT)
   9514					;17-JUN-83  TCO 6.1675	D. WEAVER
   9515					;	MORE CHANGES FOR WARM RESTART RESULTING FROM THE SEPARATE .CMD FILES
   9516					;	BEING EXECUTED BASED ON ERROR CODE.  ERROR CODE IS NOW IN .ERRCD ALONG
   9517					;	WITH THE KL FLAGS.  PC (23 BITS) IS IN .ERRPC.  NOTE THAT .ERRCD WILL
   9518					;	BE SEEN BY THE KL AS <FLAGS,,ERRCD> IN LOC 101, 103, 105, ETC... BASED
   9519					;	ON THE CPU NUMBER.
KLIST -- START THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 199-2
$TRACK	-- SPECIAL TRACK ROUTINE

   9520					;
   9521					; FUNCTION: THIS ROUTINE CLEANS UP THE CPU AND STARTS UP THE BOOT
   9522					;  WITH SPECIFIED FUNCTIONS IN AC0.
   9523					;
   9524						.MCALL	MRKT$S,WTSE$S
   9525					; EQUATED SYMBOLS
   9526					;
   9527		000020 			AAX	=	BIT4		; AR/ARX PARITY ENABLE BIT.
   9528		000000 			APR	=	0		; KL DEVICE.
   9529		000004 			CONO	=	4		; KL I/O SUB-FUNCTION CODE.
   9530		000004 			CM	=	BIT2		; CRAM PARITY ENABLE BIT.
   9531		000003 			DATAO	=	3		; KL I/O SUB-FUNCTION CODE.
   9532		000002 			DM	=	BIT1		; DRAM PARITY ENABLE BIT.
   9533		000010 			FM	=	BIT3		; FM PARITY ENABLE BIT.
   9534		000001 			FS	=	BIT0		; FS PARITY ENABLE BIT.
   9535		000010 			PAG	=	10		; KL DEVICE.
   9536		000004 			PI	=	4		; KL DEVICE.
   9537					;
   9538					; LOCAL DATA
   9539					;
   9540
   9541	002116					.PSECT	DATA,D
   9542	002116				DSTRT:
   9543	002116					IO10$ CONO APR,,267760	;RESET APR
	002116	   360 	   157 	   001 		 .BYTE	BY$$0,BY$$1,BY$$2
	002121	   002 	   016 			 .BYTE	BY$$3,BY$$4
   9544	002123					IO10$ CONO PI,,10000	;RESET PI SYSTEM
	002123	   000 	   020 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002126	   006 	   016 			 .BYTE	BY$$3,BY$$4
   9545	002130					IO10$ CONO PAG,,0	;PAGING SYSTEM CLEAR
	002130	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002133	   012 	   016 			 .BYTE	BY$$3,BY$$4
   9546	002135					IO10$ DATAO PAG,,0	;USER BASE CLEAR
	002135	   000 	   000 	   200 		 .BYTE	BY$$0,BY$$1,BY$$2
	002140	   011 	   016 			 .BYTE	BY$$3,BY$$4
   9547		000004 			DSTRTL=.-DSTRT/I.10L
   9549	002142				DSTCEN:
   9550	002142					IO10$	CONO PAG,,600000
	002142	   000 	   000 	   003 		 .BYTE	BY$$0,BY$$1,BY$$2
	002145	   012 	   016 			 .BYTE	BY$$3,BY$$4
   9552	002147				DST1B0:
   9553	002147					WD36$	400000 0	;1B0
	002147	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002152	   000 	   010 			 .BYTE	BY$$3,BY$$4
   9554	002154				DST1B1:
   9555	002154					WD36$	200000 0	;1B1
	002154	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002157	   000 	   004 			 .BYTE	BY$$3,BY$$4
   9556	002161				DST3B1:
   9557	002161					WD36$	600000 0	;3B1
	002161	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002164	   000 	   014 			 .BYTE	BY$$3,BY$$4
   9558						.EVEN			; DSTBF NUST START ON EVEN BOUNDRY.
   9559	002166				DSTBF:
   9560	002166					WD36$	0 0		; GENERAL BIT BUCKET.
	002166	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002171	   000 	   000 			 .BYTE	BY$$3,BY$$4
KLIST -- START THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 199-3
$TRACK	-- SPECIAL TRACK ROUTINE

   9561						.EVEN
   9562
   9563	005744					.PSECT	TEXT,D
   9564	005744				TSTBSM:	MESSAGE	<BOOTSTRAP LOADED AND STARTED>
	005744	   102 	   117 	   117 		 .ASCIZ	\BOOTSTRAP LOADED AND STARTED\
	005747	   124 	   123 	   124
	005752	   122 	   101 	   120
	005755	   040 	   114 	   117
	005760	   101 	   104 	   105
	005763	   104 	   040 	   101
	005766	   116 	   104 	   040
	005771	   123 	   124 	   101
	005774	   122 	   124 	   105
	005777	   104 	   000
   9565						.EVEN
   9566	024524					.PSECT
KLIST -- START THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 200
$TENST	-- START KL BOOT

   9568						.SBTTL	$TENST	-- START KL BOOT
   9569					;+
   9570					; UPDATE THE CONFIGURATION FILE AND START UP THE KL BOOTSTRAP.
   9571					; TRANSFER DUMP AND PROMPT BITS FROM .KLIWD TO AC0 FOR KL BOOT.
   9572					; 	1B0	INDICATES NO PROMPTING
   9573					; 	1B1	INDICATES TO DUMP KL
   9574					; BEGIN EXECUTION AT START+1 TO INFORM THE BOOT THAT THESE
   9575					; SWITCHES ARE SET.
   9576					;
   9577					; INPUTS:
   9578					;	.BTADR	- THE BOOT STARTING ADDRESS.
   9579					;
   9580					; NO OUTPUTS
   9581					; THE RETURN IS TO $ERROR IF UNSUCCESSFUL.
   9582					;-
   9583
   9584						.ENABL	LSB
   9585
   9586	024524				$TENST::
   9587	024524					CALL	$FILE		; CHANGE CONFIGURATION FILE FIRST.
	024524	004737 	003036'			 JSR	PC,$FILE
   9588	024530	103536 				BCS	80$		; BRANCH IF NOT OK
   9589	024532				$TENS1::
   9590	024532					CALL	$ZERAC		; CLEAR THE AC'S.
	024532	004737 	000112'			 JSR	PC,$ZERAC
   9591	024536	103532 				BCS	90$
   9592	024540	012701 	000004 			MOV	#DSTRTL,R1
   9593	024544	012700 	002116'			MOV	#DSTRT,R0
   9594	024550				10$:
   9595	024550					CALL	$EXCT		; RESET APR,PI,CLEAR PAGING,USER BASE
	024550	004737 	030636'			 JSR	PC,$EXCT
   9596	024554	103523 				BCS	90$
   9597	024556	062700 	000005 			ADD	#I.10L,R0
   9598	024562	077106 				SOB	R1,10$
   9600	024564	105737 	000043'			TSTB	.CASW		; IF CACHE IS THERE
   9601	024570	003406 				BLE	20$
   9602	024572	105737 	000064'			TSTB	.NCACH		; AND IS TO BE USED
   9603	024576	003403 				BLE	20$
   9604	024600					CALL	$EXCT		; THEN TURN IT ON.
	024600	004737 	030636'			 JSR	PC,$EXCT
   9605	024604	103507 				BCS	90$
   9607	024606				20$:
   9608	024606	105737 	000050'			TSTB	.BTSW		; [4.2275] BOOT KL?
   9609	024612	100433 				BMI	70$		; [4.2275] NO
   9610	024614	013700 	000060'			MOV	.KLISV,R0	; .KLIWD INTO R0.
   9611	024620	032700 	000000G			BIT	#KL.VBN,R0	; TEST .KLIWD BITS
   9612	024624	001411 				BEQ	40$		; AND PICK APPROPRIATE
   9613	024626	032700 	000000G			BIT	#KL.VBD,R0	; WORD TO INSERT
   9614	024632	001003 				BNE	30$		; IN AC0.
   9615	024634	012701 	002147'			MOV	#DST1B0,R1
   9616	024640	000413 				BR	60$
   9617						;
   9618	024642				30$:
   9619	024642	012701 	002161'			MOV	#DST3B1,R1
   9620	024646	000410 				BR	60$
   9621						;
   9622	024650				40$:
KLIST -- START THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 200-1
$TENST	-- START KL BOOT

   9623	024650	032700 	000000G			BIT	#KL.VBD,R0
   9624	024654	001003 				BNE	50$
   9625	024656	012701 	000000'			MOV	#.ZERO,R1
   9626	024662	000402 				BR	60$
   9627						;
   9628	024664				50$:
   9629	024664	012701 	002154'			MOV	#DST1B1,R1
   9630	024670				60$:
   9631	024670	012700 	000000'			MOV	#.ZERO,R0
   9632	024674					CALL	$DPOS		; PUT IT IN.
	024674	004737 	013074'			 JSR	PC,$DPOS
   9633	024700	103451 				BCS	90$
   9634	024702				70$:
   9635	024702	012701 	002166'			MOV	#DSTBF,R1
   9636	024706	012711 	000003 			MOV	#3,(R1)		; CHECK AR/ARX PARITY AND CAUSE
   9637	024712	012700 	047000 			MOV	#.LDCK2,R0	; PAGE FAIL UCODE TRAP IF ERROR
   9638	024716					CALL	$DFWR		; BIT34 IN .LDCK2
	024716	004737 	013556'			 JSR	PC,$DFWR
   9639	024722	103440 				BCS	90$
   9640	024724	012711 	000016 			MOV	#FM!CM!DM,(R1)	; ENABLE CRAM,DRAM,FS,AR/ARX PARITY
   9641	024730	012700 	046000 			MOV	#.LDCK1,R0
   9642	024734					CALL	$DFWR		; LOAD CONDITION ENABLE REG
	024734	004737 	013556'			 JSR	PC,$DFWR
   9643	024740	103431 				BCS	90$
   9644	024742	012700 	001000 			MOV	#.STRCL,R0	; [4.2275] START CLOCKS
   9645	024746					CALL	$DFXC		; [4.2275]
	024746	004737 	013760'			 JSR	PC,$DFXC
   9646	024752	103424 				BCS	90$		; [4.2275] ERROR IF CC-C IS SET
   9647	024754	105737 	000050'			TSTB	.BTSW		; [4.2275] BOOT KL ?
   9648	024760	100421 				BMI	90$		; [4.2275] NO -- JUST EXIT
   9649	024762	012700 	000516'			MOV	#.BTADR,R0	; GET BOOT ADDRESS AND
   9650	024766	062710 	000001 			ADD	#1,(R0)		; INCREMENT.
   9651	024772	005560 	000002 			ADC	2(R0)
   9652	024776					CALL	$STRKL
	024776	004737 	030726'			 JSR	PC,$STRKL
   9653	025002	103410 				BCS	90$		; IF SUCCESSFUL,
   9654	025004	005037 	000000G			CLR	.NOERR		; ALLOW ERRORS AND
   9655	025010					PRINT	#TSTBSM		; ANNOUNCE THE GOOD NEWS
	025010	012700 	005744'			 MOV	#TSTBSM,R0
	025014	004737 	027634'			 JSR	PC,$TTMSG
   9656	025020					CALL	..DTP2		; START SECONDARY PROTOCOL
	025020	004737 	000000G			 JSR	PC,..DTP2
   9657	025024				90$:
   9658	025024					RETURN
	025024	000207 				 RTS	PC
   9659	025026				80$:
   9660	025026	005726 				TST	(SP)+		; CONFIGURATION WAS NOT SAVED.
   9661	025030	000137 	024012'			JMP	$ERROR
   9662	025034				100$:
   9663	025034	105337 	000000G			DECB	.NOERR		; ALLOW FOR ERRORS
   9664	025040	000137 	024030'			JMP	$EXIT1		; AND EXIT
   9665						;
   9666
   9667						.DSABL	LSB
KLIST -- START THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 201
$TENST	-- START KL BOOT

   9669
   9670						.TITLE	KLITF -- ASCII FILE-NAME TRANSLATION
   9671	025044					IDENT$	5,0
						.IDENT	/005000/
   9672					;
   9673					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9674					; ALL RIGHTS RESERVED.
   9675					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9676					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9677					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9678					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9679					;
   9680					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9681					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9682					; EQUIPMENT CORPORATION.
   9683					;
   9684					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9685					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9686					;
   9687					; VERSION 05-00
   9688					;
   9689					; ALAN D. PECKHAM  27-APR-77
   9690					;
   9691					; MODIFIED BY:
   9692					;
   9693					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   9694					;  OF FILE-NAMES TO/FROM A BINARY FILENAME BLOCK.
   9695					;
   9696	025044					.PSECT
KLITF -- ASCII FILE-NAME TRANSL	MACRO M1113  03-APR-86 20:55  PAGE 202
$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME

   9698						.SBTTL	$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME
   9699					;+
   9700					; THIS ROUTINE TRANSLATES A FILENAME FROM A FILENAME BLOCK
   9701					; POINTED TO BY R0 INTO AN ASCII STRING AND PUTS THIS STRING INTO
   9702					; THE AREA POINTED TO BY R5. THE PATTERN FOR THE STRING IS:
   9703					;	"DDD:FFFFFFFFF.TTT;VVVVV"
   9704					;
   9705					; INPUTS:
   9706					;	R5	- POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
   9707					;	R0	- POINTER TO FILENAME BLOCK.
   9708					;
   9709					; OUTPUTS:
   9710					;	THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
   9711					;	R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
   9712					;	STRING. R0 IS DESTROYED.
   9713					;-
   9714
   9715	025044				$TRB2F::PUSH	R2		; SAVE R2 AND
	025044	010246 				 MOV	R2,-(SP)
   9716	025046	010002 				MOV	R0,R2		; POINT IT TO THE BLOCK.
   9717	025050	116225 	000014 			MOVB	14(R2),(R5)+	; INSERT THE DEVICE
   9718	025054	116225 	000015 			MOVB	15(R2),(R5)+
   9719	025060	116215 	000016 			MOVB	16(R2),(R5)	; AND THE UNIT NUMBER.
   9720	025064	152725 	000060 			BISB	#'0,(R5)+	; MAKE ASCII.
   9721	025070	112725 	000072 			MOVB	#':,(R5)+	; INSERT SEPERATOR.
   9722	025074	012200 				MOV	(R2)+,R0	; NOW INSERT FILE-NAME.
   9723	025076					CALL	$TRB2R
	025076	004737 	026744'			 JSR	PC,$TRB2R
   9724	025102	012200 				MOV	(R2)+,R0
   9725	025104					CALL	$TRB2R
	025104	004737 	026744'			 JSR	PC,$TRB2R
   9726	025110	012200 				MOV	(R2)+,R0
   9727	025112					CALL	$TRB2R
	025112	004737 	026744'			 JSR	PC,$TRB2R
   9728	025116	112725 	000056 			MOVB	#'.,(R5)+	; INSERT SEPERATOR AND
   9729	025122	012200 				MOV	(R2)+,R0	; THE FILE TYPE.
   9730	025124					CALL	$TRB2R
	025124	004737 	026744'			 JSR	PC,$TRB2R
   9731	025130	112725 	000073 			MOVB	#';,(R5)+	; NOW FOR THE
   9732	025134	011200 				MOV	(R2),R0		; VERSION NUMBER.
   9733	025136					CALL	$TRB2O
	025136	004737 	026500'			 JSR	PC,$TRB2O
   9734	025142					POP	R2
	025142	012602 				 MOV	(SP)+,R2
   9735	025144					RETURN
	025144	000207 				 RTS	PC
KLITF -- ASCII FILE-NAME TRANSL	MACRO M1113  03-APR-86 20:55  PAGE 203
$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY

   9737						.SBTTL	$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY
   9738					;+
   9739					; THIS ROUTINE TRANSLATES AN ASCII FILE-NAME POINTED TO BY R5
   9740					; INTO A FILENAME BLOCK POINTED TO BY R0.
   9741					;
   9742					; INPUTS:
   9743					;	R5	- POINTER TO ASCII STRING TO EXTRACT FILE-NAME FROM.
   9744					;	R0	- POINTER TO BLOCK TO INSERT FILENAME DATA INTO.
   9745					;
   9746					; OUTPUTS:
   9747					;	(R0)	- FILENAME, FILETYPE, VERSION, UIC=[5,5], AND DEVICE=SY0:.
   9748					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
   9749					;	IN THE TRANSLATION. THE CARRY IS SET ON VERSION OVERFLOW.
   9750					;-
   9751
   9752	025146				$TRF2B::PUSH	R2		; SAVE R2 AND
	025146	010246 				 MOV	R2,-(SP)
   9753	025150	010002 				MOV	R0,R2		; POINT IT TO THE BLOCK.
   9754	025152	012762 	054523 	000014 		MOV	#"SY,14(R2)	; SET DEVICE,
   9755	025160	105062 	000016 			CLRB	16(R2)		; UNIT, AND
   9756	025164	012762 	002405 	000012 		MOV	#2405,12(R2)	; DIRECTORY UIC.
   9757	025172					CALL	$TRR2B		; GET FILE NAME.
	025172	004737 	026636'			 JSR	PC,$TRR2B
   9758	025176	010022 				MOV	R0,(R2)+
   9759	025200					CALL	$TRR2B
	025200	004737 	026636'			 JSR	PC,$TRR2B
   9760	025204	010022 				MOV	R0,(R2)+
   9761	025206					CALL	$TRR2B
	025206	004737 	026636'			 JSR	PC,$TRR2B
   9762	025212	010022 				MOV	R0,(R2)+
   9763	025214	122725 	000056 			CMPB	#'.,(R5)+	; IS THERE A FILE TYPE ?
   9764	025220	001403 				BEQ	10$
   9765	025222	005305 				DEC	R5		; NO FILE TYPE,
   9766	025224	005722 				TST	(R2)+		; LEAVE ALONE.
   9767	025226	000403 				BR	20$
   9768	025230				10$:	CALL	$TRR2B		; GET FILE TYPE.
	025230	004737 	026636'			 JSR	PC,$TRR2B
   9769	025234	010022 				MOV	R0,(R2)+
   9770	025236	122725 	000073 		20$:	CMPB	#';,(R5)+	; IS THERE A VERSION NUMBER ?
   9771	025242	001403 				BEQ	30$
   9772	025244	005305 				DEC	R5		; NO VERSION,
   9773	025246	005012 				CLR	(R2)		; SET FOR CURRENT ONE.
   9774	025250	000403 				BR	40$
   9775	025252				30$:	CALL	$TRO2B		; GET VERSION NUMBER.
	025252	004737 	026562'			 JSR	PC,$TRO2B
   9776	025256	010012 				MOV	R0,(R2)
   9777	025260				40$:	POP	R2
	025260	012602 				 MOV	(SP)+,R2
   9778	025262					RETURN
	025262	000207 				 RTS	PC
KLITF -- ASCII FILE-NAME TRANSL	MACRO M1113  03-APR-86 20:55  PAGE 204
$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY

   9780
   9781						.TITLE	KLITI -- ASCII-DECIMAL TRANSLATION
   9782	025264					IDENT$	5,0
						.IDENT	/005000/
   9783					;
   9784					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9785					; ALL RIGHTS RESERVED.
   9786					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9787					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9788					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9789					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9790					;
   9791					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9792					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9793					; EQUIPMENT CORPORATION.
   9794					;
   9795					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9796					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9797					;
   9798					; VERSION 05-00
   9799					;
   9800					; ALAN D. PECKHAM  30-MAR-77
   9801					;
   9802					; MODIFIED BY:
   9803					;
   9804					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   9805					;  TO/FROM THE ASCII REPRESENTATION OF INTEGERS.
   9806					;
   9807	025264					.PSECT
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 205
$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII

   9809						.SBTTL	$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII
   9810					;+
   9811					; THIS ROUTINE TRANSLATES A BINARY NUMBER IN R0 INTO AN ASCII
   9812					; STRING AND PUTS THIS STRING INTO THE AREA POINTED TO BY R5.
   9813					; THE NUMBER IS CONSIDERED UNSIGNED, AND THE RESULTING STRING
   9814					; IS VARIABLE IN LENGTH WITH A MAXIMUM OF 5 CHARACTERS.
   9815					;
   9816					; INPUTS:
   9817					;	R5	- POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
   9818					;	R0	- BINARY NUMBER TO CONVERT.
   9819					;
   9820					; OUTPUTS:
   9821					;	THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
   9822					;	R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
   9823					;	STRING. R0 IS DESTROYED.
   9824					;-
   9825
   9826	025264				$TDB2I::
   9827	025264					PUSH	<R4,R5>		; SAVE R4 AND R5
	025264	010446 				 MOV	R4,-(SP)
	025266	010546 				 MOV	R5,-(SP)
   9828	025270	012705 	000344'			MOV	#.TTOBF,R5	; POINT TO OUTPUT BUFFER
   9829	025274	010504 				MOV	R5,R4		; COPY TO R4
   9830	025276					CALL	$TRB2I		; CONVERT TO ASCII STRING
	025276	004737 	025306'			 JSR	PC,$TRB2I
   9831	025302					CALLR	$TDB2C		; FINISH UP IN COMMON CODE
	025302	000137 	026466'			 JMP	$TDB2C
   9832						;
   9833
   9834	025306				$TRB2I::
   9835	025306	004237 	025324'			JSR	R2,10$		; SAVE R2 AND POINT TO POWER TABLE.
   9836	025312	023420 	001750 	000144 		.WORD	10000.,1000.,100.,10.,1.
	025320	000012 	000001
   9837	025324	004337 	025360'		10$:	JSR	R3,50$		; THE SAVE R3 AND SET TO
   9838
   9839	025330	022200 				CMP	(R2)+,R0	; SIGNIFICANCE CHECKER.
   9840	025332	101011 				BHI	40$		; IGNORES LEADING ZEROES.
   9841	025334	005742 				TST	-(R2)		; WHOOPS ! THIS ONE IS GOOD,
   9842	025336	010703 			20$:	MOV	PC,R3		; DIGITS ARE NOW TO BE PRINTED.
   9843
   9844	025340	112715 	000060 			MOVB	#'0,(R5)	; SET TO ZERO
   9845	025344	105215 			30$:	INCB	(R5)		; AND GO UP
   9846	025346	161200 				SUB	(R2),R0
   9847	025350	100375 				BPL	30$		; UNTIL TOO FAR,
   9848	025352	062200 				ADD	(R2)+,R0	; THEN BACK UP.
   9849	025354	105325 				DECB	(R5)+
   9850	025356	000207 			40$:	RTS	PC
   9851
   9852	025360	004713 			50$:	JSR	PC,(R3)		; MAIN PROCESSOR -
   9853	025362	004713 				JSR	PC,(R3)		; ALLOW FOR FOUR INSIGNIFICANT DIGITS,
   9854	025364	004713 				JSR	PC,(R3)
   9855	025366	004713 				JSR	PC,(R3)
   9856	025370	004737 	025336'			JSR	PC,20$		; AND THEN FORCE SIGNIFICANCE.
   9857	025374					POP	<R3,R2>		; RESTORE REGISTERS
	025374	012603 				 MOV	(SP)+,R3
	025376	012602 				 MOV	(SP)+,R2
   9858	025400					RETURN			; AND .....
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 205-1
$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII

	025400	000207 				 RTS	PC
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 206
$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD

   9860						.SBTTL	$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD
   9861					;+
   9862					; THIS ROUTINE TRANSLATES AN ASCII INTEGER NUMBER POINTED
   9863					; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
   9864					; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
   9865					;
   9866					; INPUTS:
   9867					;	R5	- POINTER TO ASCII STRING TO EXTRACT INTEGER FROM.
   9868					;
   9869					; OUTPUTS:
   9870					;	R0	- BINARY NUMBER EXTRACTED.
   9871					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
   9872					;	IN THE TRANSLATION. THE CARRY IS SET ON SIGNED OVERFLOW.
   9873					;-
   9874
   9875	025402				$TDI2B::
   9876	025402					PUSH	R5		; SAVE R5
	025402	010546 				 MOV	R5,-(SP)
   9877	025404	012705 	000304'			MOV	#.TTIBF,R5	; INPUT BUFFER POINTER TO R5
   9878	025410					CALL	$TTRD		; PROMT AND READ NUMBER
	025410	004737 	027130'			 JSR	PC,$TTRD
   9879	025414					CALL	$TRB2I		; CONVERT TO DECIMAL NUMBER
	025414	004737 	025306'			 JSR	PC,$TRB2I
   9880	025420					POP	R5		; RESTORE R5
	025420	012605 				 MOV	(SP)+,R5
   9881	025422					RETURN			; RETURN
	025422	000207 				 RTS	PC
   9882
   9883	025424				$TRI2B::
   9884	025424					PUSH	R1
	025424	010146 				 MOV	R1,-(SP)
   9885	025426	005000 				CLR	R0
   9886	025430	112501 			10$:	MOVB	(R5)+,R1
   9887	025432	162701 	000060 			SUB	#'0,R1
   9888	025436	100420 				BMI	30$
   9889	025440	022701 	000011 			CMP	#9.,R1
   9890	025444	103415 				BLO	30$
   9891	025446	022700 	006314 			CMP	#<77777/10.>,R0
   9892	025452	103413 				BLO	40$
   9893	025454	101003 				BHI	20$
   9894	025456	022701 	000007 			CMP	#<77777-<77777/10.*10.>>,R1
   9895	025462	103407 				BLO	40$
   9896	025464	006300 			20$:	ASL	R0
   9897	025466	060001 				ADD	R0,R1
   9898	025470	006300 				ASL	R0
   9899	025472	006300 				ASL	R0
   9900	025474	060100 				ADD	R1,R0
   9901	025476	000754 				BR	10$
   9902	025500	005727 			30$:	TST	(PC)+
   9903	025502	000261 			40$:	SEC
   9904	025504	005305 				DEC	R5
   9905	025506					POP	R1
	025506	012601 				 MOV	(SP)+,R1
   9906	025510					RETURN
	025510	000207 				 RTS	PC
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 207
$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD

   9908
   9909						.TITLE	KLITM -- CRAM/DRAM TRANSLATION
   9910	025512					IDENT$	1,0
						.IDENT	/001000/
   9911					;
   9912					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9913					; ALL RIGHTS RESERVED.
   9914					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9915					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9916					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9917					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9918					;
   9919					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9920					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9921					; EQUIPMENT CORPORATION.
   9922					;
   9923					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9924					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9925					;
   9926					; VERSION 01-00
   9927					;
   9928					;	KEVIN T. LEFEBVRE	3-APR-79
   9929					;
   9930					; MODIFIED BY:
   9931					;
   9932					;
   9933					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   9934					;   OF THE CRAM/DRAM FILE TO OCTAL TYPE-OUT. IT WAS WRITTEN FOR TCO
   9935					;   4.2209.
   9936					;
   9937					;
   9938					; LOCAL DATA
   9939					;
   9940	002174					.PSECT	DATA,D
   9941	002174	000000 			JCOMM:	.WORD	0
   9942	002176	000000 			SWITCH:	.WORD	0
   9943	002200	002224'			HDTAB:	.WORD	TTJ
   9944	002202	002220'				.WORD	TTP
   9945	002204	002214'				.WORD	TTB
   9946	002206	002210'				.WORD	TTA
   9947	002210	   040 	   101 	   072 	TTA:	.ASCIZ	/ A:/
	002213	   000
   9948	002214	   040 	   102 	   072 	TTB:	.ASCIZ	/ B:/
	002217	   000
   9949	002220	   040 	   120 	   072 	TTP:	.ASCIZ	/ P:/
	002223	   000
   9950	002224	   040 	   112 	   072 	TTJ:	.ASCIZ	/ J:/
	002227	   000
   9951						.EVEN
   9952	025512					.PSECT
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1113  03-APR-86 20:55  PAGE 208
$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL

   9954						.SBTTL	$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
   9955					;+
   9956					; TRANSLATE THE BINARY WORDS IN BUFFER POINTED TO BY R1 INTO OCTAL
   9957					; DIGITS AND TYPE THEM IN CRAM FORMAT.
   9958					;
   9959					;	FILE FORMAT:  CRAM BIT LOCATIONS
   9960					;
   9961					;	BIT                                           BIT
   9962					;	 16                                            0
   9963					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9964					;	!64!  !66!  !68!  !70!  !72!  !74!  !76!  !78!  ! WORD 1
   9965					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9966					;	!48!49!50!51!52!53!54!55!56!57!58!59!60!  !62!  ! WORD 2
   9967					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9968					;	!32!33!34!35!36!37!38!39!40!41!42!43!44!45!46!47! WORD 3
   9969					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9970					;	!16!17!18!19!20!21!22!23!24!25!26!27!28!29!30!31! WORD 4
   9971					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9972					;	! 0! 1! 2! 3! 4! 5! 6! 7! 8! 9!10!11!12!13!14!15! WORD 5
   9973					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9974					;	!  !  !  !  !  !  !  !  !  !  !80!81!82!83!84!85! WORD 6
   9975					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9976					;
   9977					; THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
   9978					; TCO 4.2209
   9979					;
   9980					; INPUTS:
   9981					;	R1	-DATA BUFFER
   9982					;
   9983					; OUTPUTS:
   9984					;	NONE
   9985					;-
   9986
   9987	025512				$TRCRM::
   9988	025512					CALL	R5,$RSAVE	; SAVE REGISTERS
	025512	004537 	024204'			 JSR	R5,$RSAVE
   9989	025516	010105 				MOV	R1,R5		;BUFFER PTR
   9990	025520	062705 	000010 			ADD	#10,R5		;POINT TO CRAM 0-15
   9991	025524	012703 	000005 			MOV	#5,R3		;WORD COUNTER
   9992	025530	011502 			10$:	MOV	(R5),R2		;GET VALUE
   9993	025532	012701 	000344'			MOV	#.TTOBF,R1	;OUTPUT PTR
   9994	025536	012704 	000001 			MOV	#1,R4		;BITS TO SHIFT
   9995	025542					CALL	TROCT		;GET OCTAL DIGIT
	025542	004737 	026074'			 JSR	PC,TROCT
   9996	025546	012700 	000005 			MOV	#5,R0		;NO. OCTAL DIGITS
   9997	025552	012704 	000003 			MOV	#3,R4		;BITS PER DIGIT
   9998	025556				20$:	CALL	TROCT		;GET DIGIT
	025556	004737 	026074'			 JSR	PC,TROCT
   9999	025562	077003 				SOB	R0,20$		;DONE?
  10000	025564	112721 	000040 			MOVB	#' ,(R1)+	;YES-- END WITH SPACE
  10001	025570	012700 	000344'			MOV	#.TTOBF,R0	;OUTPUT PTR
  10002	025574	012701 	000007 			MOV	#7,R1		;NO. OF CHARACTERS TO TYPE
  10003	025600					CALL	$TTWR		;TYPE THEM
	025600	004737 	027714'			 JSR	PC,$TTWR
  10004	025604	005745 				TST	-(R5)		;NEXT VALUE
  10005	025606	077330 				SOB	R3,10$		;DONE?
  10006	025610	016502 	000014 			MOV	14(R5),R2	;YES-- GET SPEC VALUE
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1113  03-APR-86 20:55  PAGE 208-1
$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL

  10007	025614	012700 	000012 			MOV	#10.,R0		;LEFT JUSTIFY IT
  10008	025620	006302 			30$:	ASL	R2		;SHIFT IT
  10009	025622	077002 				SOB	R0,30$		;DONE?
  10010	025624	012701 	000344'			MOV	#.TTOBF,R1	;YES-- OUTPUT BUFFER
  10011	025630					CALL	TROCT		;FIRST DIGIT
	025630	004737 	026074'			 JSR	PC,TROCT
  10012	025634					CALL	TROCT		;SECOND DIGIT
	025634	004737 	026074'			 JSR	PC,TROCT
  10013	025640	012700 	000344'			MOV	#.TTOBF,R0	;OUTPUT BUFFER
  10014	025644	012701 	000002 			MOV	#2,R1		;NO. OF DIGITS
  10015	025650					CALL	$TTWR		;TYPE THEM
	025650	004737 	027714'			 JSR	PC,$TTWR
  10016	025654					RETURN
	025654	000207 				 RTS	PC
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1113  03-APR-86 20:55  PAGE 209
$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL

  10018						.SBTTL	$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
  10019					;+
  10020					;  TRANSLATE THE BINARY WORDS IN THE BUFFER POINTED TO BY R1 INTO OCTAL
  10021					;  DIGITS AND TYPE THEM IN DRAM FORMAT WITH THE EVEN ADDRESS FIRST.
  10022					;
  10023					;	FILE FORMAT:  DRAM BIT LOCATIONS
  10024					;
  10025					;	BIT                                           BIT
  10026					;	 16                                            0
  10027					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  10028					;	!  !  !A1!A2!A3!B1!B2!B3!  !  !PE!PC!J7!J8!J9!J0! EVEN ADDRESS
  10029					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  10030					;	!  !  !A1!A2!A3!B1!B2!B3!  !  !PO!PC!J7!J8!J9!J0! ODD ADDRESS
  10031					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  10032					;	!  !  !  !  !  !  !  !  !  !  !  !  !J1!J2!J3!J4! COMMON J
  10033					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  10034					;
  10035					;	NOTE: J0=J10 (BIT 10 OF J FIELD)
  10036					;
  10037					;  THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
  10038					;  TCO 4.2209
  10039					;
  10040					;  INPUTS:
  10041					;	R1-	DATA BUFFER
  10042					;
  10043					;  OUTPUTS:
  10044					;	NONE
  10045					;-
  10046
  10047	025656				$TRDRM::
  10048	025656					CALL	R5,$RSAVE	;SAVE REGISTERS
	025656	004537 	024204'			 JSR	R5,$RSAVE
  10049	025662	010105 				MOV	R1,R5		;DATA BUFFER POINTER
  10050	025664	016100 	000004 			MOV	4(R1),R0	;J COMMON VALUE
  10051	025670	012702 	000006 			MOV	#6,R2		;PUT IN CORRECT POSITION
  10052	025674	006300 			10$:	ASL	R0		;SHIFT IT
  10053	025676	077202 				SOB	R2,10$		;DONE?
  10054	025700	010037 	002174'			MOV	R0,JCOMM	;YES-- SAVE IT
  10055	025704	005037 	002176'			CLR	SWITCH		;ODD/EVEN ADDRESS SWITCH
  10056	025710	012703 	000006 		20$:	MOV	#6,R3		;FIELD COUNTER
  10057	025714	012704 	000003 			MOV	#3,R4		;BIT SHIFT COUNTER
  10058	025720	011502 				MOV	(R5),R2		;VALUE
  10059	025722	042702 	000020 			BIC	#20,R2		;CLEAR COMPUTED PARITY
  10060	025726	006302 				ASL	R2		;LEFT JUSTIFY
  10061	025730	006302 				ASL	R2		;LEFT JUSTIFY
  10062	025732	016300 	002200'		30$:	MOV	HDTAB(R3),R0	;HEADER ADDRESS
  10063	025736					CALL	$TTDMS		;TYPE HEADER
	025736	004737 	027566'			 JSR	PC,$TTDMS
  10064	025742	005703 				TST	R3		;LAST HEADER?
  10065	025744	001414 				BEQ	40$		;YES-- TYPE J FIELD
  10066	025746	012701 	000344'			MOV	#.TTOBF,R1	;NO-- OUTPUT PTR
  10067	025752					CALL	TROCT		;CONVERT FIELD TO ASCII OCTAL
	025752	004737 	026074'			 JSR	PC,TROCT
  10068	025756	012700 	000344'			MOV	#.TTOBF,R0	;OUTPUT PTR
  10069	025762	012701 	000001 			MOV	#1,R1		;FIELD SIZE
  10070	025766					CALL	$TTWR		;TYPE FIELD VALUE
	025766	004737 	027714'			 JSR	PC,$TTWR
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1113  03-APR-86 20:55  PAGE 209-1
$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL

  10071	025772	005743 				TST	-(R3)		;SUBTRACT 2 FROM HEADER POINTER
  10072	025774	000756 				BR	30$		;NEXT HEADER
  10073	025776	013702 	002174'		40$:	MOV	JCOMM,R2	;GET J COMMON VALUE
  10074	026002	011500 				MOV	(R5),R0		;GET J VALUE FOR ADDRESS
  10075	026004	042700 	177760 			BIC	#177760,R0	;CLEAR JUNK
  10076	026010	050002 				BIS	R0,R2		;GET J FIELD VALUE
  10077	026012	012700 	000004 			MOV	#4,R0		;SHIFT COUNT
  10078	026016	006302 			50$:	ASL	R2		;LEFT JUSTIFY
  10079	026020	077002 				SOB	R0,50$		;DONE?
  10080	026022	012700 	000004 			MOV	#4,R0		;YES-- J FIELD SIZE
  10081	026026	012701 	000344'			MOV	#.TTOBF,R1	;OUTPUT PTR
  10082	026032				60$:	CALL	TROCT		;GET DIGIT
	026032	004737 	026074'			 JSR	PC,TROCT
  10083	026036	077003 				SOB	R0,60$		;DONE?
  10084	026040	012700 	000344'			MOV	#.TTOBF,R0	;YES-- OUTPUT PTR
  10085	026044	012701 	000004 			MOV	#4,R1		;J FIELD SIZE
  10086	026050					CALL	$TTWR		;TYPE FIELD
	026050	004737 	027714'			 JSR	PC,$TTWR
  10087	026054	005737 	002176'			TST	SWITCH		;DONE?
  10088	026060	001004 				BNE	70$		;YES-- EXIT
  10089	026062	005237 	002176'			INC	SWITCH		;FLIP SWITCH
  10090	026066	005725 				TST	(R5)+		;POINT TO NEXT VALUE
  10091	026070	000707 				BR	20$		;TYPE OUT ODD ADDRESS FIELDS
  10092	026072				70$:	RETURN
	026072	000207 				 RTS	PC
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1113  03-APR-86 20:55  PAGE 210
TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS

  10094						.SBTTL	TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
  10095					;+
  10096					; SHIFT OUT 1 OCTAL DIGIT FROM A LEFT JUSTIFIED VALUE, MAKE ASCII
  10097					; AND STORE IN BUFFER.
  10098					;
  10099					; INPUT:
  10100					;	R2-	VALUE
  10101					;	R4-	NO. OF BITS IN OCTAL DIGIT
  10102					;	R1-	BUFFER PTR
  10103					;
  10104					; OUTPUT:
  10105					;	R1-	UPDATED
  10106					;-
  10107
  10108	026074				TROCT:	PUSH	<R3,R4>		;SAVE R3,R4
	026074	010346 				 MOV	R3,-(SP)
	026076	010446 				 MOV	R4,-(SP)
  10109	026100	005003 				CLR	R3		;TEMP
  10110	026102	006102 			10$:	ROL	R2		;SHIFT OUT BIT
  10111	026104	006103 				ROL	R3		;SHIFT IN BIT
  10112	026106	077403 				SOB	R4,10$		;DONE?
  10113	026110	062703 	000060 			ADD	#'0,R3		;YES-- MAKE ASCII
  10114	026114	110321 				MOVB	R3,(R1)+	;STORE IN BUFFER
  10115	026116					POP	<R4,R3>		;RESTORE R3,R4
	026116	012604 				 MOV	(SP)+,R4
	026120	012603 				 MOV	(SP)+,R3
  10116	026122					RETURN
	026122	000207 				 RTS	PC
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1113  03-APR-86 20:55  PAGE 211
TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS

  10118
  10119						.TITLE	KLITN -- ASCII-KL WORD TRANSLATION
  10120	026124					IDENT$	5,0
						.IDENT	/005000/
  10121					;
  10122					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10123					; ALL RIGHTS RESERVED.
  10124					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10125					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10126					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10127					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10128					;
  10129					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10130					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10131					; EQUIPMENT CORPORATION.
  10132					;
  10133					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10134					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10135					;
  10136					; VERSION 05-00
  10137					;
  10138					; ALAN D. PECKHAM 30-MAR-77
  10139					;
  10140					; MODIFIED BY:
  10141					;
  10142					; FUNCTION: THIS MODULE PROVIDES ROUTINES TO DISPLAY KL ADDRESSES
  10143					;  AND WORDS.
  10144					;
  10145					; LOCAL DATA
  10146					;
  10147	002230					.PSECT	DATA,D
  10148	002230	000000 	000000 	000000 	DTNXP:	.WORD	0,0,0		; WORK AREA TO EXPAND 16K BANK NUMBER.
  10149	002236	000000 	000000 	000000 	DTNRB:	.WORD	0,0,0		; WORK AREA FOR ROLLING BITS AROUND.
  10150	026124					.PSECT
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 212
$TENAD	-- DISPLAY KL ADDRESS/16K

  10152						.SBTTL	$TENAD	-- DISPLAY KL ADDRESS/16K
  10153					;+
  10154					; INSERT THE 22 BIT ASCII REPRESENTATION OF THE ADDRESS/16K CONTAINED
  10155					; IN R0. THE PATTERN IS "XXXXXXXX" WHERE X IS AN OCTAL DIGIT.
  10156					;
  10157					; INPUTS:
  10158					;	R5	- POINTER TO WHERE TO INSERT THE ASCII STRING.
  10159					;	R0	- NUMBER OF 16K MEMORY BANK.
  10160					;
  10161					; OUTPUTS:
  10162					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
  10163					;	CHARACTERS.
  10164					;-
  10165
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 214
$WRD22	-- DISPLAY 22 BIT KL WORD

  10234						.SBTTL	$WRD22	-- DISPLAY 22 BIT KL WORD
  10235					;+
  10236					; PATTERN: "XXXXXXXX"
  10237					;-
  10238
  10239	026124				$WDD22::
  10240	026124					PUSH	<R5,R4>		; SAVE R5 AND R4
	026124	010546 				 MOV	R5,-(SP)
	026126	010446 				 MOV	R4,-(SP)
  10241	026130	012705 	000344'			MOV	#.TTOBF,R5	; OUTPUT BUFFER POINTER TO R5
  10242	026134	010504 				MOV	R5,R4		; COPY TO R4
  10243	026136					CALL	$WRD22		; CONVERT THE NUMBER
	026136	004737 	026154'			 JSR	PC,$WRD22
  10244	026142					CALL	$TTDWR		; OUTPUT THE NUMBER
	026142	004737 	027700'			 JSR	PC,$TTDWR
  10245	026146					POP	<R4,R5>		; RESTORE REGISTERS
	026146	012604 				 MOV	(SP)+,R4
	026150	012605 				 MOV	(SP)+,R5
  10246	026152					RETURN			; AND EXIT
	026152	000207 				 RTS	PC
  10247
  10248	026154				$WRD22::
  10249	026154					PUSH	<R2,R1,R0>
	026154	010246 				 MOV	R2,-(SP)
	026156	010146 				 MOV	R1,-(SP)
	026160	010046 				 MOV	R0,-(SP)
  10250	026162					CALL	LTNMV
	026162	004737 	026374'			 JSR	PC,LTNMV
  10251	026166	012702 	000010 			MOV	#8.,R2
  10252	026172	012700 	000003 			MOV	#3,R0
  10253	026176	042761 	177700 	000002 		BIC	#^C77,2(R1)
  10254	026204				10$:	CALL	LTNROL
	026204	004737 	026420'			 JSR	PC,LTNROL
  10255	026210	116100 	000003 			MOVB	3(R1),R0
  10256	026214					CALL	LTNCHR
	026214	004737 	026434'			 JSR	PC,LTNCHR
  10257	026220	012700 	000003 			MOV	#3,R0
  10258	026224	077211 				SOB	R2,10$
  10259	026226					POP	<R0,R1,R2>
	026226	012600 				 MOV	(SP)+,R0
	026230	012601 				 MOV	(SP)+,R1
	026232	012602 				 MOV	(SP)+,R2
  10260	026234					RETURN
	026234	000207 				 RTS	PC
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 215
$WRD36	-- DISPLAY 36 BIT KL WORD

  10262						.SBTTL	$WRD36	-- DISPLAY 36 BIT KL WORD
  10263					;+
  10264					; PATTERN: "XXXXXX XXXXXX"
  10265					;-
  10266
  10267	026236				$WDD36::
  10268	026236					PUSH	<R5,R4>		; SAVE R5 AND R4
	026236	010546 				 MOV	R5,-(SP)
	026240	010446 				 MOV	R4,-(SP)
  10269	026242	012705 	000344'			MOV	#.TTOBF,R5	; OUTPUT BUFFER POINTER TO R5
  10270	026246	010504 				MOV	R5,R4		; COPY TO R4
  10271	026250					CALL	$WRD36		; CONVERT THE NUMBER
	026250	004737 	026266'			 JSR	PC,$WRD36
  10272	026254					CALL	$TTDWR		; OUTPUT THE NUMBER
	026254	004737 	027700'			 JSR	PC,$TTDWR
  10273	026260					POP	<R4,R5>		; RESTORE REGISTERS
	026260	012604 				 MOV	(SP)+,R4
	026262	012605 				 MOV	(SP)+,R5
  10274	026264					RETURN			; AND EXIT
	026264	000207 				 RTS	PC
  10275
  10276	026266				$WRD36::
  10277	026266					PUSH	<R2,R1,R0>
	026266	010246 				 MOV	R2,-(SP)
	026270	010146 				 MOV	R1,-(SP)
	026272	010046 				 MOV	R0,-(SP)
  10278	026274					CALL	LTNMV
	026274	004737 	026374'			 JSR	PC,LTNMV
  10279	026300	012702 	000006 			MOV	#6,R2
  10280	026304	012700 	000007 			MOV	#7,R0
  10281	026310				10$:	CALL	LTNROL
	026310	004737 	026420'			 JSR	PC,LTNROL
  10282	026314	116100 	000005 			MOVB	5(R1),R0
  10283	026320					CALL	LTNCHR
	026320	004737 	026434'			 JSR	PC,LTNCHR
  10284	026324	012700 	000003 			MOV	#3,R0
  10285	026330	077211 				SOB	R2,10$
  10286	026332	112725 	000040 			MOVB	#' ,(R5)+
  10287	026336	012702 	000006 			MOV	#6,R2
  10288	026342				20$:	CALL	LTNROL
	026342	004737 	026420'			 JSR	PC,LTNROL
  10289	026346	116100 	000005 			MOVB	5(R1),R0
  10290	026352					CALL	LTNCHR
	026352	004737 	026434'			 JSR	PC,LTNCHR
  10291	026356	012700 	000003 			MOV	#3,R0
  10292	026362	077211 				SOB	R2,20$
  10293	026364					POP	<R0,R1,R2>
	026364	012600 				 MOV	(SP)+,R0
	026366	012601 				 MOV	(SP)+,R1
	026370	012602 				 MOV	(SP)+,R2
  10294	026372					RETURN
	026372	000207 				 RTS	PC
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 216
$WRD36	-- DISPLAY 36 BIT KL WORD

  10296					;+
  10297					; INSERT 36 BIT WORD INTO WORD-ALIGNED WORK AREA.
  10298					;
  10299					; INPUTS:
  10300					;	R0	- POINTER TO 36 BIT WORD TO COPY.
  10301					;
  10302					; OUTPUTS:
  10303					;	R1	- POINTER TO COPY OF 36 BIT WORD POINTED TO BY R0.
  10304					;	R0 AND R2 ARE DESTROYED.
  10305					;-
  10306
  10307	026374	012702 	000006 		LTNMV:	MOV	#6,R2		; MOVE 6 BYTES
  10308	026400	012701 	002236'			MOV	#DTNRB,R1
  10309	026404	112021 			10$:	MOVB	(R0)+,(R1)+	; MOVE DATA TO BE CONVERTED
  10310	026406	077202 				SOB	R2,10$
  10311	026410	042741 	177760 			BIC	#^C17,-(R1)	; ONLY 36 BITS PLEASE
  10312	026414	024141 				CMP	-(R1),-(R1)
  10313	026416					RETURN
	026416	000207 				 RTS	PC
  10314
  10315					;+
  10316					; SHIFT 3 WORDS AT R1 TO THE LEFT BY THE NUMBER OF BITS SPECIFED.
  10317					;
  10318					; INPUTS:
  10319					;	R1	- POINTER TO THE THREE WORDS TO SHIFT.
  10320					;	R0	- NUMBER OF TIMES TO SHIFT. MUST BE >0.
  10321					;
  10322					; OUTPUTS:
  10323					;	R0 IS DESTROYED.
  10324					;-
  10325
  10326	026420	006321 			LTNROL:	ASL	(R1)+
  10327	026422	006121 				ROL	(R1)+
  10328	026424	006111 				ROL	(R1)
  10329	026426	024141 				CMP	-(R1),-(R1)
  10330	026430	077005 				SOB	R0,LTNROL
  10331	026432					RETURN
	026432	000207 				 RTS	PC
  10332
  10333					;+
  10334					; INSERT 3 LEAST SIGNIFICANT BITS FROM R0 AS ASCII CHARACTER TO BYTE
  10335					; POINTED TO BY R5 AND INCREMENT R5.
  10336					;
  10337					; INPUTS:
  10338					;	R5	- POINTER TO BYTE TO RECIEVE DIGIT.
  10339					;	R0	- NUMBER TO PICK BOTTOM OCTAL DIGIT FROM.
  10340					;
  10341					; OUTPUTS:
  10342					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
  10343					;	CHARACTER. R0 IS DESTROYED.
  10344					;-
  10345
  10346	026434	042700 	177770 		LTNCHR:	BIC	#^C7,R0
  10347	026440	062700 	000060 			ADD	#'0,R0
  10348	026444	110025 				MOVB	R0,(R5)+
  10349	026446					RETURN
	026446	000207 				 RTS	PC
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1113  03-APR-86 20:55  PAGE 217
$WRD36	-- DISPLAY 36 BIT KL WORD

  10351
  10352
  10353						.TITLE	KLITO -- ASCII-OCTAL/BINARY TRANSLATION
  10354	026450					IDENT$	5,2								; ADP01
						.IDENT	/005020/
  10355					;
  10356					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10357					; ALL RIGHTS RESERVED.
  10358					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10359					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10360					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10361					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10362					;
  10363					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10364					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10365					; EQUIPMENT CORPORATION.
  10366					;
  10367					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10368					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10369					;
  10370					; VERSION 05-02									; ADP01
  10371					;
  10372					; ALAN D. PECKHAM  30-MAR-77
  10373					;
  10374					; MODIFIED BY:
  10375					;
  10376					;
  10377					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
  10378					;  TO/FROM THE ASCII REPRESENTATION OF OCTAL NUMBERS.
  10379					;
  10380					;
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1113  03-APR-86 20:55  PAGE 218
$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII

  10382						.SBTTL	$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII
  10383					;+
  10384					; TRANSLATE THE UNSIGNED BINARY NUMBER IN R0 INTO AND ASCII STRING
  10385					; AND PUT IT INTO THE AREA POINTED TO BY R5. THE STRING IS VARIBLE
  10386					; IN LENGTH WITH LEADING ZERO SUPPRESSION AND A MAXIMUM LENGTH OF
  10387					; 6. R5 IS INCREMENTED PAST THE INSERTED STRING.
  10388					;
  10389					; INPUTS:
  10390					;	R5	- POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
  10391					;	R0	- BINARY NUMBER TO CONVERT.
  10392					;
  10393					; OUTPUTS:
  10394					;	THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
  10395					;	R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
  10396					;	STRING. R0 IS DESTROYED.
  10397					;-
  10398
  10399	026450				$TDB2O::
  10400	026450					PUSH	<R4,R5>		; SAVE R4 AND R5
	026450	010446 				 MOV	R4,-(SP)
	026452	010546 				 MOV	R5,-(SP)
  10401	026454	012705 	000344'			MOV	#.TTOBF,R5	; POINT TO OUTPUT BUFFER
  10402	026460	010504 				MOV	R5,R4		; COPY TO R4
  10403	026462					CALL	$TRB2O		; CONVERT TO ASCII STRING
	026462	004737 	026500'			 JSR	PC,$TRB2O
  10404	026466				$TDB2C::
  10405	026466					CALL	$TTDWR		; OUTPUT THE LINE
	026466	004737 	027700'			 JSR	PC,$TTDWR
  10406	026472					POP	<R5,R4>		; RESTORE REGISTERS
	026472	012605 				 MOV	(SP)+,R5
	026474	012604 				 MOV	(SP)+,R4
  10407	026476					RETURN			; AND EXIT
	026476	000207 				 RTS	PC
  10408
  10409	026500				$TRB2O::
  10410	026500					PUSH	<R2,R1>		; SAVE REGISTERS AND
	026500	010246 				 MOV	R2,-(SP)
	026502	010146 				 MOV	R1,-(SP)
  10411	026504	012702 	026526'			MOV	#20$,R2		; SET SIGNIFICANCE CHECKER.
  10412	026510	012701 	002200 			MOV	#2200,R1	; GET INITIAL BIT.
  10413	026514				10$:
  10414	026514	006100 				ROL	R0
  10415	026516	106101 				ROLB	R1		; ROLL BITS IN.
  10416	026520	103375 				BCC	10$		; ANY MORE ?
  10417	026522	001003 				BNE	30$		; NON-ZERO BYTE IS SIGNIFICANT.
  10418	026524	000112 				JMP	(R2)		; HAVE WE MET SIGNIFICANCE ?
  10419						;
  10420	026526				20$:
  10421	026526	005701 				TST	R1		; NO - LAST DIGIT ?
  10422	026530	100004 				BPL	40$		; NO- IGNORE.
  10423	026532				30$:
  10424	026532	010702 				MOV	PC,R2		; SIGNIFICANCE HAS BEEN REACHED.
  10425	026534	152701 	000060 			BISB	#'0,R1		; MAKE IT A DIGIT
  10426	026540	110125 				MOVB	R1,(R5)+	; AND INSERT.
  10427	026542				40$:
  10428	026542	105001 				CLRB	R1		; CLEAR OLD DIGIT
  10429	026544	152701 	000020 			BISB	#20,R1		; AND SET 3-BIT INDICATOR.
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1113  03-APR-86 20:55  PAGE 218-1
$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII

  10430	026550	006301 				ASL	R1		; FINISHED WITH WORD ?
  10431	026552	103360 				BCC	10$		; NO - CONTINUE, OTHERWISE
  10432	026554					POP	<R1,R2>
	026554	012601 				 MOV	(SP)+,R1
	026556	012602 				 MOV	(SP)+,R2
  10433	026560					RETURN			; WE ARE FINISHED.
	026560	000207 				 RTS	PC
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1113  03-APR-86 20:55  PAGE 219
$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD

  10435						.SBTTL	$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
  10436					;+
  10437					; THIS ROUTINE TRANSLATES AN ASCII OCTAL NUMBER POINTED
  10438					; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
  10439					; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
  10440					;
  10441					; INPUTS:
  10442					;	R5	- POINTER TO ASCII STRING TO EXTRACT OCTAL NUMBER FROM.
  10443					;
  10444					; OUTPUTS:
  10445					;	R0	- BINARY NUMBER EXTRACTED.
  10446					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
  10447					;	IN THE TRANSLATION. THE CARRY IS SET ON OVERFLOW.
  10448					;-
  10449
  10459
  10460	026562				$TRO2B::
  10461	026562					PUSH	R2
	026562	010246 				 MOV	R2,-(SP)
  10462	026564	005000 				CLR	R0		; INITIALIZE RESULT.
  10463	026566	112502 			10$:	MOVB	(R5)+,R2	; GET NEXT CHARACTER				; ADP01
  10464	026570	162702 	000060 			SUB	#'0,R2		; AND MAKE BINARY
  10465	026574	100413 				BMI	20$		; WHILE CHECKING
  10466	026576	022702 	000007 			CMP	#7,R2		; IF OCTAL NUMERIC.
  10467	026602	103410 				BLO	20$		; WE ARE FINISHED IF NOT.
  10468	026604	032700 	160000 			BIT	#160000,R0	; IF RESULT WILL OVERFLOW
  10469	026610	001006 				BNE	30$		; THEN SIGNAL ERROR
  10470	026612	006300 				ASL	R0		; OTHERWISE
  10471	026614	006300 				ASL	R0		; MULTIPLY BY 8
  10472	026616	006300 				ASL	R0		; AND
  10473	026620	060200 				ADD	R2,R0		; ADD NEW DIGIT.
  10474	026622	000761 				BR	10$		; GO BACK FOR MORE.
  10475	026624	005727 			20$:	TST	(PC)+		; PROPER EXIT - CLEAR CARRY.
  10476	026626	000261 			30$:	SEC			; OVERFLOW - SET CARRY.
  10477	026630	005305 				DEC	R5		; BACK UP OVER					; ADP01
  10478	026632					POP	R2		; LAST CHARACTER CHECKED
	026632	012602 				 MOV	(SP)+,R2
  10479	026634					RETURN			; AND EXIT.
	026634	000207 				 RTS	PC
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1113  03-APR-86 20:55  PAGE 220
$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD

  10481
  10482
  10483						.TITLE	KLITR -- ASCII-RAD50 CONVERSION
  10484	026636					IDENT$	5,0
						.IDENT	/005000/
  10485					;
  10486					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10487					; ALL RIGHTS RESERVED.
  10488					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10489					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10490					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10491					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10492					;
  10493					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10494					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10495					; EQUIPMENT CORPORATION.
  10496					;
  10497					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10498					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10499					;
  10500					; VERSION 05-00
  10501					;
  10502					; ALAN D. PECKHAM  30-MAR-77
  10503					;
  10504					; MODIFIED BY:
  10505					;
  10506					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED WITH TRANSLATION
  10507					;  OF RAD50 WORDS TO/FROM ASCII STRINGS.
  10508					;
  10509	026636					.PSECT
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1113  03-APR-86 20:55  PAGE 221
$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD

  10511						.SBTTL	$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD
  10512					;+
  10513					; TRANSLATE 3 OR LESS CHARACTERS POINTED TO BY R5 INTO A RAD50 WORD
  10514					; AND PLACE IT IN R0. IF A CHARACTER IS ENCOUNTERED DURING TRANSLATION
  10515					; WHICH IS NOT ALPHANUMERIC, SPACES ARE SUBSTITUTED FOR THE REMAINING
  10516					; CHARACTERS OF THE THREE. R5 IS INCREMENTED PAST ANY CHARACTERS
  10517					; WHICH WERE ACCEPTED.
  10518					; **NOTE** THIS ROUTINE ONLY TRANSLATES ALPHANUMERIC CHARACTERS, NOT
  10519					; THE FULL RAD50 CHARACTER SET.
  10520					;
  10521					; INPUTS:
  10522					;	R5	- POINTER TO CHARACTERS TO BE USED IN TRANSLATION.
  10523					;
  10524					; OUTPUTS:
  10525					;	R0	- RAD50 WORD CONTAINING CHARACTERS TRANSLATED.
  10526					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
  10527					;	INSERTED INTO THE RAD50 WORD.
  10528					;-
  10529
  10530	026636				$TRR2B::PUSH	<R2,R1>		; SAVE REGISTERS AND
	026636	010246 				 MOV	R2,-(SP)
	026640	010146 				 MOV	R1,-(SP)
  10531	026642	005000 				CLR	R0		; INITIALIZE RETURN VALUE.
  10532	026644	012702 	000003 			MOV	#3.,R2		; GET 3 CHARACTERS.
  10533	026650	112501 			10$:	MOVB	(R5)+,R1	; PICK UP THE NEXT
  10534	026652	162701 	000100 			SUB	#100,R1		; AND CHECK FOR ALPHAMERIC.
  10535	026656	003404 				BLE	20$
  10536	026660	022701 	000032 			CMP	#32,R1		; WITHIN A-Z ?
  10537	026664	002014 				BGE	50$		; YES, STICK IT IN.
  10538	026666	000406 				BR	30$
  10539	026670	062701 	000020 		20$:	ADD	#<100-60>,R1	; CHECK FOR NUMERIC.
  10540	026674	002403 				BLT	30$
  10541	026676	022701 	000011 			CMP	#9.,R1		; WITHIN 0-9 ?
  10542	026702	002003 				BGE	40$
  10543	026704	005305 			30$:	DEC	R5		; INVALID CHARACTER, IGNORE.
  10544	026706	012701 	177742 			MOV	#-36,R1		; INSERT A NULL.
  10545	026712	062701 	000036 		40$:	ADD	#36,R1		; INCREASE FOR NUMERIC.
  10546	026716	006300 			50$:	ASL	R0		; MULTIPLY BY 50
  10547	026720	006300 				ASL	R0
  10548	026722	006300 				ASL	R0
  10549	026724	060001 				ADD	R0,R1		; WHILE ADDING IN
  10550	026726	006300 				ASL	R0
  10551	026730	006300 				ASL	R0
  10552	026732	060100 				ADD	R1,R0		; THE NEW CHARACTER.
  10553	026734	077233 				SOB	R2,10$		; DO FOR 3 CHARACTERS
  10554	026736					POP	<R1,R2>		; AND...
	026736	012601 				 MOV	(SP)+,R1
	026740	012602 				 MOV	(SP)+,R2
  10555	026742					RETURN
	026742	000207 				 RTS	PC
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1113  03-APR-86 20:55  PAGE 222
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

  10557						.SBTTL	$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII
  10558					;+
  10559					; TRANSLATE THE RAD50 WORD IN R0 TO AN ASCIZ STRING AND INSERT THE
  10560					; STRING AT THE AREA POINTED TO BY R5. INCREMENT R5 TO POINT PAST
  10561					; THE INSERTED STRING. THE INVALID RAD50 CODE IS REPRESENTED BY
  10562					; THE UNDERLINE CHARACTER. THE BLANK CHARACTER IS NOT INSERTED.
  10563					;
  10564					; INPUTS:
  10565					;	R5	- POINTER TO BYTES TO RECIEVE ASCII STRING.
  10566					;	R0	- RAD50 WORD FROM WHICH TO EXTRACT THE CHARACTERS.
  10567					;
  10568					; OUTPUTS:
  10569					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
  10570					;	INSERTED.
  10571					;-
  10572
  10573	026744				$TRB2R::PUSH	<R2,R1,R0>
	026744	010246 				 MOV	R2,-(SP)
	026746	010146 				 MOV	R1,-(SP)
	026750	010046 				 MOV	R0,-(SP)
  10574	026752	012702 	000002 			MOV	#2.,R2		; I DON'T UNDERSTAND THIS ROUTINE.
  10575	026756				10$:	PUSH	R0		; BUT IT DEFINITELY WORKS.
	026756	010046 				 MOV	R0,-(SP)
  10576	026760	005000 				CLR	R0
  10577	026762	011601 			20$:	MOV	(SP),R1
  10578	026764	152701 	000002 			BISB	#2,R1
  10579	026770	010146 				MOV	R1,-(SP)
  10580	026772	006016 				ROR	(SP)
  10581	026774	006216 				ASR	(SP)
  10582	026776	162601 				SUB	(SP)+,R1
  10583	027000	042701 	000037 			BIC	#37,R1
  10584	027004	160116 				SUB	R1,(SP)
  10585	027006	006001 				ROR	R1
  10586	027010	006001 				ROR	R1
  10587	027012	160116 				SUB	R1,(SP)
  10588	027014	060100 				ADD	R1,R0
  10589	027016	021627 	000047 			CMP	(SP),#47
  10590	027022	101357 				BHI	20$		; NOTE: CARRY IS CLEAR ON BRANCH.
  10591	027024	006200 				ASR	R0
  10592	027026	006200 				ASR	R0
  10593	027030	006200 				ASR	R0
  10594	027032	077227 				SOB	R2,10$
  10595	027034	012702 	000003 			MOV	#3.,R2
  10596	027040	022700 	000047 			CMP	#47,R0
  10597	027044	103405 				BLO	40$
  10598	027046	105700 				TSTB	R0
  10599	027050	001422 			30$:	BEQ	90$
  10600	027052	122700 	000035 			CMPB	#35,R0
  10601	027056	001002 				BNE	50$
  10602	027060	012700 	000115 		40$:	MOV	#115,R0
  10603	027064	122700 	000033 		50$:	CMPB	#33,R0
  10604	027070	001403 				BEQ	60$
  10605	027072	103404 				BLO	70$
  10606	027074	062700 	000040 			ADD	#40,R0
  10607	027100	062700 	000016 		60$:	ADD	#16,R0
  10608	027104	062700 	000011 		70$:	ADD	#11,R0
  10609	027110	062700 	000011 		80$:	ADD	#11,R0
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1113  03-APR-86 20:55  PAGE 222-1
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

  10610	027114	110025 				MOVB	R0,(R5)+
  10611	027116				90$:	POP	R0
	027116	012600 				 MOV	(SP)+,R0
  10612	027120	077225 				SOB	R2,30$
  10613	027122					POP	<R1,R2>
	027122	012601 				 MOV	(SP)+,R1
	027124	012602 				 MOV	(SP)+,R2
  10614	027126					RETURN
	027126	000207 				 RTS	PC
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1113  03-APR-86 20:55  PAGE 223
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

  10616
  10617						.TITLE	KLITT -- TTY I/O FUNCTIONS
  10618	027130					IDENT$	5,1
						.IDENT	/005010/
  10619					;
  10620					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10621					; ALL RIGHTS RESERVED.
  10622					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10623					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10624					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10625					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10626					;
  10627					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10628					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10629					; EQUIPMENT CORPORATION.
  10630					;
  10631					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10632					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10633					;
  10634					; VERSION 05-00
  10635					;
  10636					; ALAN D. PECKHAM  15-APR-77
  10637					;
  10638					; MODIFIED BY:
  10639					;
  10640					; FUNCTION: ALL ROUTINES ACCESS THE CONSOLE THROUGH THIS MODULE
  10641					;  TO PROVIDE A UNIFORM INTERFACE TO THE OPERATOR.
  10642					;
  10643					; EQUATED SYMBOLS
  10644					;
  10645		000015 			CR	=	15		; CARRIAGE RETURN CHARACTER.
  10646		000012 			LF	=	12		; LINE FEED CHARACTER.
  10647					;
  10648					; LOCAL MACROS
  10649					;
  10650						.MCALL	QIOW$,WTSE$S,EXIT$S
  10651					;
  10652					; LOCAL DATA
  10653					;
  10654	002244					.PSECT	DATA,D
  10655	002244				DTTRLB:	QIOW$	IO.RLB,TTILUN,1,,DTTSTA,,<.TTIBF,T.TIL>
	002244	   003 	   010 			.BYTE	3,$$$ARG
	002246	000000G				.WORD	IO.RLB
	002250	000001 				.WORD	TTILUN
	002252	   001 	   000 			.BYTE	1,
	002254	002336'				.WORD	DTTSTA
	002256	000000 				.WORD
	002260	000304'				.WORD	.TTIBF
	002262	000040 				.WORD	T.TIL
  10656	002264				DTTWLB:	QIOW$	IO.WLB,TTOLUN,1,,DTTSTA,,<0,0,0>
	002264	   003 	   011 			.BYTE	3,$$$ARG
	002266	000000G				.WORD	IO.WLB
	002270	000002 				.WORD	TTOLUN
	002272	   001 	   000 			.BYTE	1,
	002274	002336'				.WORD	DTTSTA
	002276	000000 				.WORD
	002300	000000 				.WORD	0
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 223-1
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

	002302	000000 				.WORD	0
	002304	000000 				.WORD	0
  10657	002306				ATLST:	QIOW$	IO.ATT,LPOLUN,1,0,0,0
	002306	   003 	   006 			.BYTE	3,$$$ARG
	002310	000000G				.WORD	IO.ATT
	002312	000003 				.WORD	LPOLUN
	002314	   001 	   000 			.BYTE	1,0
	002316	000000 				.WORD	0
	002320	000000 				.WORD	0
  10658	002322				DTLST:	QIOW$	IO.DET,LPOLUN,1,0,0,0
	002322	   003 	   006 			.BYTE	3,$$$ARG
	002324	000000G				.WORD	IO.DET
	002326	000003 				.WORD	LPOLUN
	002330	   001 	   000 			.BYTE	1,0
	002332	000000 				.WORD	0
	002334	000000 				.WORD	0
  10659	002336	000000 	000000 		DTTSTA:	.WORD	0,0
  10660	002342	000000 	000000 	000000 	TMPLOG:	.WORD	0,0,0
  10662	002350	000000 			SAVMSG:	.WORD	0
  10663	002352	000000 			SAVLEN:	.WORD	0
  10665	006002					.PSECT	TEXT,D
  10666	006002	   040 			TTSPC:	.ASCII	/ /
  10667	006003	   011 			TTTAB:	.ASCII	/	/
  10668	006004	   057 			TTSLS:	.ASCII	%/%
  10669	006005	   007 			TTBEL:	.BYTE	7
  10670	006006	   015 	   012 		TTTNLN:	.ASCII	<CR><LF>
  10671	006010	   113 	   114 	   111 	TTTPRP:	.ASCII	/KLI>/
	006013	   076
  10672	006014	   113 	   114 	   111 	TTTPRE:	.ASCIZ	/KLI -- /
	006017	   040 	   055 	   055
	006022	   040 	   000
  10673						.EVEN
  10674	027130					.PSECT
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 224
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

  10676						.SBTTL	$TTRD	-- READ A LINE FROM THE CONSOLE TTY
  10677					;+
  10678					; READ A LINE INTO ".TTIBF". IF ESCAPE IS RECIEVED THE TREAT AS ERROR
  10679					; TO RESTART DIALOG. IF OTHER THAN <CR> TERMINATES THE LINE, THEN
  10680					; DO A FAST EXIT.
  10682					; IF 'T+' OR 'T-' IS RECIEVED THEN TURN ON OR OFF TRACKING RESPECTIVELY.
  10684					;
  10685					; NO INPUTS
  10686					;
  10687					; OUTPUTS:
  10688					;	.TTIBF	- CONTAINS THE CHARACTERS READ IN TERMINATED BY A ZERO BYTE.
  10689					;-
  10690
  10691	027130	004537 	024204'		$TTRD::	JSR	R5,$RSAVE
  10693	027134	013737 	002300'	002350'		MOV	DTTWLB+Q.IOPL+0,SAVMSG	; [5.1005]SAVE QUESTION MESSAGE
  10694	027142	013737 	002302'	002352'		MOV	DTTWLB+Q.IOPL+2,SAVLEN	; [5.1005]SAVE QUESTION LENGTH
  10696	027150	012737 	006010'	002300'	10$:	MOV	#TTTPRP,DTTWLB+Q.IOPL+0 ; PROMPT WITH KLI>
  10697	027156	012737 	000004 	002302'		MOV	#4,DTTWLB+Q.IOPL+2
  10698	027164					DIR$	#DTTWLB
	027164	012746 	002264'			MOV	#DTTWLB,-(SP)
	027170	104375 				EMT	375
  10700	027172					CALL	$ECHO1		; [5.1005]ECHO CTY TO LP
	027172	004737 	030020'			 JSR	PC,$ECHO1
  10702	027176					DIR$	#DTTRLB		; PERFORM GIVEN FUNCTION
	027176	012746 	002244'			MOV	#DTTRLB,-(SP)
	027202	104375 				EMT	375
  10703	027204	013701 	002340'			MOV	DTTSTA+2,R1	; SAVE LINE LENGTH
  10704	027210	013700 	002336'			MOV	DTTSTA,R0	; AND STATUS.
  10705	027214	100003 				BPL	20$
  10706	027216	122700 	000000G			CMPB	#IE.EOF,R0	; IF CONTROL-Z
  10707	027222	001415 				BEQ	30$		; CRLF IS AUTOMATIC, OTHERWISE
  10708	027224				20$:
  10710	027224					CALL	$ECHO		; [5.1005]ECHO INPUT TO LP
	027224	004737 	030004'			 JSR	PC,$ECHO
  10712	027230	012737 	006006'	002300'		MOV	#TTTNLN,DTTWLB+Q.IOPL+0 ; PRINT A CRLF
  10713	027236	112737 	000002 	002302'		MOVB	#2,DTTWLB+Q.IOPL+2
  10714	027244					DIR$	#DTTWLB
	027244	012746 	002264'			MOV	#DTTWLB,-(SP)
	027250	104375 				EMT	375
  10716	027252					CALL	$ECHO1		; [5.1005]ECHO CTY TO LP
	027252	004737 	030020'			 JSR	PC,$ECHO1
  10718	027256	022700 	000000G		30$:	CMP	#IS.ESC,R0	; DID HE TYPE AN ESCAPE ?
  10719	027262	001501 				BEQ	60$		; RESTART DIALOG.
  10720	027264	022700 	000000G			CMP	#IS.CR,R0	; DID HE END WITH A CR ?
  10721	027270	001100 				BNE	70$		; NO, EXIT.
  10722	027272	105061 	000304'			CLRB	.TTIBF(R1)	; WITH A NULL BYTE.
  10724	027276	022737 	026524 	000304'		CMP	#"T-,.TTIBF	; TURN OFF TRACK ?
  10725	027304	001422 				BEQ	50$		; YES, GO DO IT.
  10726	027306	022737 	025524 	000304'		CMP	#"T+,.TTIBF	; TURN ON TRACK ?
  10727	027314	001411 				BEQ	40$		; YES, GO DO IT.
  10728	027316	022737 	025514 	000304'		CMP	#"L+,.TTIBF	; [5.1005]TURN ON LP ?
  10729	027324	001415 				BEQ	80$		; [5.1005]YES, GO DO IT.
  10730	027326	022737 	026514 	000304'		CMP	#"L-,.TTIBF	; [5.1005]TURN OFF LP ?
  10731	027334	001433 				BEQ	90$		; [5.1005]YES, GO DO IT.
  10733	027336					RETURN
	027336	000207 				 RTS	PC
  10735	027340	105237 	000037'		40$:	INCB	.TRKTT		; TURN ON TT
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 224-1
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

  10736	027344	105237 	000036'		45$:	INCB	.TRKSW		; [5.1005]TURN ON TRACK AND
  10737	027350	000677 				BR	10$		; GET ANOTHER LINE.
  10738	027352	105037 	000037'		50$:	CLRB	.TRKTT		; TURN OFF TRACK AND
  10739	027356	000432 				BR	95$		; [5.1005]CHECK FOR CLEARING .TRKSW
  10740	027360	105737 	000040'		80$:	TSTB	.TRKLP		; [5.1005]IS LP ON?
  10741	027364	001271 				BNE	10$		; [5.1005]YES, GET ANOTHER LINE
  10742	027366	105237 	000040'			INCB	.TRKLP		; [5.1005]TURN ON LP
  10743	027372					DIR$	#ATLST		; [5.1005]ATTACH LP
	027372	012746 	002306'			MOV	#ATLST,-(SP)
	027376	104375 				EMT	375
  10744	027400	103411 				BCS	90$		; [5.1005]ERROR, CLEAR LP TRACK
  10745	027402	013737 	002350'	002300'		MOV	SAVMSG,DTTWLB+Q.IOPL+0	; [5.1005]QUESTION MESSAGE
  10746	027410	013737 	002352'	002302'		MOV	SAVLEN,DTTWLB+Q.IOPL+2	; [5.1005]QUESTION LENGTH
  10747	027416					CALL	$ECHO1		; [5.1005]ECHO MESSAGE
	027416	004737 	030020'			 JSR	PC,$ECHO1
  10748	027422	000750 				BR	45$		; TURN ON TRACK
  10749	027424	105737 	000040'		90$:	TSTB	.TRKLP		; [5.1005]IS LP OFF?
  10750	027430	001647 				BEQ	10$		; [5.1005]YES, GET ANOTHER LINE
  10751	027432	105037 	000040'			CLRB	.TRKLP		; [5.1005]TURN OFF LP
  10752	027436					DIR$	#DTLST		; [5.1005]DETATCH LP
	027436	012746 	002322'			MOV	#DTLST,-(SP)
	027442	104375 				EMT	375
  10753	027444	105737 	000040'		95$:	TSTB	.TRKLP		; [5.1005]LP ON ?
  10754	027450	001237 				BNE	10$		; [5.1005]YES, GET ANOTHER LINE
  10755	027452	105737 	000037'			TSTB	.TRKTT		; [5.1005]TT ON ?
  10756	027456	001234 				BNE	10$		; [5.1005]YES, GET ANOTHER LINE
  10757	027460	105037 	000036'			CLRB	.TRKSW		; [5.1005]NOTHING ON, CLEAR TRACK
  10758	027464	000631 				BR	10$		; [5.1005]GET ANOTHER LINE
  10760	027466	000137 	024012'		60$:	JMP	$ERROR		; AND RESTART DIALOG.
  10761	027472				70$:	EXIT$S			; WE WANT OUT !
	027472	012746 				MOV	(PC)+,-(SP)
	027474	   063 	   001 			.BYTE	51.,1
	027476	104375 				EMT	375
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 225
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

  10763						.ENABL	LSB
  10764
  10765	027500				$TTSPC::
  10766	027500					PUSH	R0		; SAVE R0
	027500	010046 				 MOV	R0,-(SP)
  10767	027502	012700 	006002'			MOV	#TTSPC,R0	; <SPACE> TO R0
  10768	027506	000417 				BR	10$		; PRINT AND RETURN
  10769						;
  10770	027510				$TTBEL::
  10771	027510					PUSH	R0		; SAVE R0
	027510	010046 				 MOV	R0,-(SP)
  10772	027512	012700 	006005'			MOV	#TTBEL,R0	; <BELL> TO R0
  10773	027516	000413 				BR	10$		; PRINT AND RETURN
  10774						;
  10782	027520				$TTTAB::
  10783	027520					PUSH	R0		; SAVE R0
	027520	010046 				 MOV	R0,-(SP)
  10784	027522	012700 	006003'			MOV	#TTTAB,R0	; <TAB> TO R0
  10785	027526	000407 				BR	10$		; PRINT AND RETURN
  10786						;
  10787	027530				$TCRLF::
  10788	027530					PUSH	<R0,R1>		; SAVE R0 AND R1
	027530	010046 				 MOV	R0,-(SP)
	027532	010146 				 MOV	R1,-(SP)
  10789	027534	012700 	006006'			MOV	#TTTNLN,R0	; <CR><LF> TO R0
  10790	027540	012701 	000002 			MOV	#2,R1		; LENGTH TO R1
  10791	027544	000403 				BR	20$		; PRINT AND RETURN
  10792						;
  10793	027546				10$:
  10794	027546					PUSH	R1		; SAVE R1
	027546	010146 				 MOV	R1,-(SP)
  10795	027550	012701 	000001 			MOV	#1,R1		; LENGTH TO R1
  10796	027554				20$:
  10797	027554					CALL	$TTWR		; PRINT THE CHARACTER(S)
	027554	004737 	027714'			 JSR	PC,$TTWR
  10798	027560					POP	<R1,R0>		; RESTORE REGISTERS
	027560	012601 				 MOV	(SP)+,R1
	027562	012600 				 MOV	(SP)+,R0
  10799	027564					RETURN			; EXIT
	027564	000207 				 RTS	PC
  10800
  10801						.DSABL	LSB
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 226
$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY

  10803						.SBTTL	$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY
  10804					;+
  10805					; COPY A MESSAGE INTO THE OUTPUT BUFFER WITH THE 'KLI -- ' PREFIX
  10806					; AND WRITE IT TO THE CONSOLE.
  10807					;
  10808					; "$TTDMS" WILL STRIP THE DIAGNOSTIC CARRIAGE CONTROL CHARACTERS FROM
  10809					; A TEXT STRING IN ORDER TO TRANSLATE THE MESSAGE.
  10810					;
  10811					;
  10812					; INPUTS:
  10813					;	R0	- ADDRESS OF ASCIZ MESSAGE.
  10814					;
  10815					; NO OUTPUTS
  10816					;-
  10817
  10818	027566				$TTDMS::
  10819	027566					CALL	R5,$RSAVE	; SAVE THE REGISTERS
	027566	004537 	024204'			 JSR	R5,$RSAVE
  10820	027572	012705 	000344'			MOV	#.TTOBF,R5	; OUTPUT BUFFER POINTER TO R5
  10821	027576	010504 				MOV	R5,R4		; COPY TO R4
  10822	027600				10$:
  10823	027600	112001 				MOVB	(R0)+,R1	; GET A BYTE FOM THE INPUT STRING
  10824	027602	001436 				BEQ	$TTDWR		; DONE IF <NULL>
  10825	027604	122701 	000137 			CMPB	#'_,R1		; IS IT AN <UNDERSCORE>??
  10826	027610	001773 				BEQ	10$		; YES -- THROW IT AWAY
  10827	027612	122701 	000134 			CMPB	#'\,R1		; NO -- IS IS A <BACKSLASH>??
  10828	027616	001004 				BNE	20$		; NO -- GO ON
  10829	027620	112725 	000015 			MOVB	#15,(R5)+	; YES -- SUBSTITUTE A <CR>
  10830	027624	012701 	000012 			MOV	#12,R1		; AND A <LF> FOR IT
  10831	027630				20$:
  10832	027630	110125 				MOVB	R1,(R5)+	; LOAD THIS CHARACTER
  10833	027632	000762 				BR	10$		; AND GET THE NEXT
  10834						;
  10835	027634				$TTMSG::
  10836	027634	004537 	024204'			JSR	R5,$RSAVE	;THIS ROUTINE IS SPECIAL
  10837	027640	005002 				CLR	R2		; MARK NORMAL CALL
  10838	027642	012705 	000344'			MOV	#.TTOBF,R5	;FOR THE MESSAGE MACROS.
  10839	027646	010504 				MOV	R5,R4
  10840	027650	010003 				MOV	R0,R3		;(SAVE MESSAGE ADDRESS)
  10841	027652	012700 	006014'			MOV	#TTTPRE,R0	;INSERT KLI IDENTIFIER
  10842	027656					CALL	$ASCIZ		; 'KLI -- '
	027656	004737 	024240'			 JSR	PC,$ASCIZ
  10843	027662	010300 				MOV	R3,R0		;AND THEN MESSAGE.
  10844	027664					CALL	$ASCIZ
	027664	004737 	024240'			 JSR	PC,$ASCIZ
  10845	027670	112725 	000015 			MOVB	#CR,(R5)+	;FOLLOW BY CRLF.
  10846	027674	112725 	000012 			MOVB	#LF,(R5)+
  10847	027700				$TTDWR::
  10848	027700	160405 				SUB	R4,R5		;COMPUTE LENGTH
  10849	027702	010437 	002300'			MOV	R4,DTTWLB+Q.IOPL+0 ;AND PRINT.
  10850	027706	010537 	002302'			MOV	R5,DTTWLB+Q.IOPL+2
  10851	027712	000404 				BR	LTTDIR		;DO THE WRITE.
  10852						;
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 227
$TTWR	-- WRITE A LINE TO THE CONSOLE TTY

  10854						.SBTTL	$TTWR	-- WRITE A LINE TO THE CONSOLE TTY
  10855					;+
  10856					; WRITE OUT AN ASCII STRING TO THE CONSOLE.
  10857					;
  10858					; INPUTS:
  10859					;	R1	- LENGTH OF STRING.
  10860					;	R0	- ADDRESS OF STRING.
  10861					;
  10862					; NO OUTPUTS
  10863					;-
  10864
  10865	027714	010037 	002300'		$TTWR::	MOV	R0,DTTWLB+Q.IOPL+0 ;INSERT MESSAGE ADDRESS,
  10866	027720	010137 	002302'			MOV	R1,DTTWLB+Q.IOPL+2 ;LENGTH,
  10867	027724				LTTDIR:	DIR$	#DTTWLB		;AND PRINT.
	027724	012746 	002264'			MOV	#DTTWLB,-(SP)
	027730	104375 				EMT	375
  10869	027732					CALL	$ECHO1		; [5.1005]ECHO CTY TO LP
	027732	004737 	030020'			 JSR	PC,$ECHO1
  10871	027736	005737 	000056'			TST	$LGOPN		; [4.1.1073]LOG TO ERROR FILE?
  10872	027742	001417 				BEQ	10$		; [4.1.1073]NO -- GO ON
  10873	027744					PUSH	<R1,R2>		; [4.1.1073]YES -- SAVE REGISTERS
	027744	010146 				 MOV	R1,-(SP)
	027746	010246 				 MOV	R2,-(SP)
  10874	027750	013702 	002300'			MOV	DTTWLB+Q.IOPL+0,R2	; [4.1.1073]ADDRESS TO R0
  10875	027754	013701 	002302'			MOV	DTTWLB+Q.IOPL+2,R1	; [4.1.1073]MESSAGE LENGTH TO R1
  10876	027760					CALL	.WRITR		; [4.1.1073]WRITE TO FILE
	027760	004737 	000000G			 JSR	PC,.WRITR
  10877	027764					POP	<R2,R1>		; [4.1.1073]RESTORE R2
	027764	012602 				 MOV	(SP)+,R2
	027766	012601 				 MOV	(SP)+,R1
  10878	027770	005737 	000054'			TST	$LGERR		; [4.1.1073]LOGGING ERROR?
  10879	027774	001402 				BEQ	10$		; [4.1.1073]NO -- GO ON
  10880	027776					CALL	$CLLOG		; [4.1.1073]YES -- CLOSE LOG FILE
	027776	004737 	000000G			 JSR	PC,$CLLOG
  10881	030002				10$:	RETURN
	030002	000207 				 RTS	PC
KLITT -- TTY I/O FUNCTIONS	MACRO M1113  03-APR-86 20:55  PAGE 228
$ECHO	-- ECHO CTY OUTPUT TO LP

  10884						.SBTTL	$ECHO	-- ECHO CTY OUTPUT TO LP
  10885
  10886					;+
  10887					; WRITE CTY OUTPUT TO LP IF TRACKING ON CTY ENABLED
  10888					;	THIS ROUTINE ADDED FOR TCO 5.1005
  10889					;
  10890					; NO INPUTS
  10891					;
  10892					; NO OUTPUTS
  10893					;-
  10894
  10895	030004				$ECHO::					; ECHO CTY INPUT
  10896	030004	012737 	000304'	002300'		MOV	#.TTIBF,DTTWLB+Q.IOPL+0		; MESSAGE
  10897	030012	013737 	002340'	002302'		MOV	DTTSTA+2,DTTWLB+Q.IOPL+2	; LENGTH
  10898	030020				$ECHO1::				; ECHO CTY OUTPUT
  10899	030020	105737 	000040'			TSTB	.TRKLP			; TRACK ON LP ?
  10900	030024	001411 				BEQ	10$			; NO -- EXIT
  10901	030026	012737 	000003 	002270'		MOV	#LPOLUN,DTTWLB+Q.IOLU	; YES -- SET LP LUN
  10902	030034					DIR$	#DTTWLB			; OUTPUT IT
	030034	012746 	002264'			MOV	#DTTWLB,-(SP)
	030040	104375 				EMT	375
  10903	030042	012737 	000002 	002270'		MOV	#TTOLUN,DTTWLB+Q.IOLU	; RESET TT LUN
  10904	030050				10$:	RETURN				; DONE
	030050	000207 				 RTS	PC
  10906
  10907						.TITLE	KLIXB -- LOAD THE KL BOOT
  10908	030052					IDENT$	11,1								; ADP01
						.IDENT	/011010/
  10909					;
  10910					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10911					; ALL RIGHTS RESERVED.
  10912					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10913					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10914					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10915					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10916					;
  10917					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10918					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10919					; EQUIPMENT CORPORATION.
  10920					;
  10921					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10922					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10923					;
  10924					; VERSION 11-01									; ADP01
  10925					;
  10926					; ALAN D. PECKHAM  8-APR-77
  10927					;
  10928					; MODIFIED BY:
  10929					;
  10930					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL BOOT
  10931					;  FROM THE FILE 'BOOT.EXB' OR AN OPERATOR SPECIFIED FILE.
  10932					;
  10933					; EQUATED SYMBOLS
  10934					;
  10935		000000 			APR	=	0		; KL DEVICE.
  10936		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
  10937		001000 			PAGE	=	1000		; PAGE SIZE (POWER OF 2).
KLIXB -- LOAD THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 228-1
$ECHO	-- ECHO CTY OUTPUT TO LP

  10938		000777 			PGBTS	=	PAGE-1		; PAGE BITS USED IN MASK.
  10939					;
  10940					; LOCAL DATA
  10941					;
  10942						.MCALL	ALUN$
  10943
  10944	002354					.PSECT	DATA,D
  10945	002354	   007 	   004 		DNIBOO:	.BYTE	7,4
  10946	002356	000004 				.WORD SYILUN
  10947	002360	   104 				.ASCII /D/
  10949	002361	   124 				.ASCII /T/
  10953	002362	000001 				.WORD 1
  10954	002364				DXBFNM:
  10955	002364	007347 	076400 	000000 		.RAD50	/BOOT     EXB/	; BOOT DEFAULT FILE NAME.
	002372	021402
  10956	002374	000000 				.WORD	0		; GET LATEST VERSION.
  10957	002376	   005 	   005 			.BYTE	5,5
  10958	002400	054523 	000000 		DXBLOC:	.WORD	"SY,0
  10959	002404				DXBADR:
  10960	002404	000000 	000000 			.WORD	0,0		; CURRENT DEPOSIT ADDRESS.
  10961	002410				DXBDAT:
  10962	002410	000000 	000000 	000000 		.WORD	0,0,0		; DATA WORD TO DEPOSIT.
  10963	002416				DXBCNM:
  10964	002416					IO10$	CONO APR,,22000	; TO CLEAR THE NXM BIT.
	002416	   000 	   044 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002421	   002 	   016 			 .BYTE	BY$$3,BY$$4
  10965						.EVEN
  10966	006024					.PSECT	TEXT,D
  10967	006024				TXBIMM:
  10968	006024					ERROR	<INSUFFICIENT MEMORY FOR BOOTSTRAP>
	006024	   077 	   040 	   111 		 .ASCIZ	\? INSUFFICIENT MEMORY FOR BOOTSTRAP\
	006027	   116 	   123 	   125
	006032	   106 	   106 	   111
	006035	   103 	   111 	   105
	006040	   116 	   124 	   040
	006043	   115 	   105 	   115
	006046	   117 	   122 	   131
	006051	   040 	   106 	   117
	006054	   122 	   040 	   102
	006057	   117 	   117 	   124
	006062	   123 	   124 	   122
	006065	   101 	   120 	   000
  10969	030052					.PSECT
KLIXB -- LOAD THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 229
$EXBLD	-- LOAD THE BOOT

  10971						.SBTTL	$EXBLD	-- LOAD THE BOOT
  10972					;+
  10973					; PROCESS THE KL BOOTSTRAP FILE (.EXB)
  10974					; THIS ROUTINE READS IN A FILE OF BINARY RECORDS.
  10975					; *DATA RECORDS:
  10976					; 	.WORD	4+<5*N>		; BYTE COUNT.
  10977					; 	.BLKW	2		; KL ADDRESS.
  10978					; 	.BLKB	5*N		; KL WORDS.
  10979					; THE KL WORDS WHICH ARE PLACED IN THE FIRST 36 BITS OF 5 -11 BYTES
  10980					; ARE STORED SEQUENTIALLY STARTING AT THE GIVEN ADDRESS.
  10981					; *END OF FILE:
  10982					; 	.WORD	4		; BYTE COUNT.
  10983					; 	.BLKW	2		; KL ADDRESS.
  10984					; THE ADDRESS IS THE START ADDRESS OF THE BOOTSTRAP PROGRAM.
  10985					; THE DATA RECORDS ARE ASSUMED TO BE SORTED BY ADDRESS,
  10986					; SO THAT PAGE CLEARING IS DONE PROPERLY.
  10987					;
  10988					; THE PAGE CLEARING FEATURE REQUIRES THAT ANY PAGES WHICH RECIEVE
  10989					; DATA SHOULD BE CLEARED BEFORE ANY DATA IS STORED. THE PRESENT
  10990					; ALGORITHM AVOIDS WRITING TWICE TO ANY LOCATION (CLEAR & DEPOSIT).
  10991					; A POINTER IS KEPT OF WHERE THE NEXT KL WORD WOULD BE DEPOSITED,
  10992					; AND IS USED TO DETECT GAPS IN DATA/INSTRUCTION STORAGE SO THAT
  10993					; INTERVENING WORDS MAY BE CLEARED.
  10994					;
  10995					; A CHECK IS ALSO MADE TO SEE IF ANY OF THE BOOT IS LOADED INTO
  10996					; NON-EXISTANT MEMORY BY TURNING OFF THE NXM INDICTOR BEFORE THE
  10997					; LOAD AND TESTING IT AFTER THE LOAD TO SEE IF A NXM OCCURRED.
  10998					;
  10999					; INPUTS:
  11000					;	.DBSW	- IF <>0 THEN USE USER FILE NAME.
  11001					;	.DBFNM	- POINTER TO 5 WORD USER FILE NAME.
  11002					;
  11003					; OUTPUTS:
  11004					;	CARRY IS SET IF ERROR OCCURS, OTHERWISE BOOT IS STARTED AND
  11005					;	RETURN IS TO "$EXIT".
  11006					;-
  11007
  11008	030052				$EXBLD::
  11009	030052	105737 	000024'			TSTB	.DLGSW		; ARE WE IN DIALOG MODE??
  11010	030056	100004 				BPL	10$		; YES -- GO ON
  11011	030060	032737 	000000G	000060'		BIT	#KL.LVB,.KLISV	; NO -- MUST BOOT BE LOADED??
  11012	030066	001430 				BEQ	30$		; NO -- JUST EXIT
  11013	030070				10$:
  11015	030070					CALL	$SWEEP		; CLEAR CACHE.
	030070	004737 	006502'			 JSR	PC,$SWEEP
  11016	030074	103425 				BCS	30$
  11017	030076	012700 	002364'			MOV	#DXBFNM,R0	; FILE NAME: BOOT.EXB
  11021	030102	105737 	000026'			TSTB	.UFNSW		; OR
  11022	030106	003402 				BLE	20$
  11023	030110	012700 	000476'			MOV	#.USRFN,R0	; USER FILE NAME.				; ADP01
  11024	030114				20$:
  11025	030114					CALL	$LOOKUP		; FIND THE FILE.
	030114	004737 	007562'			 JSR	PC,$LOOKUP
  11026	030120	103416 				BCS	40$
  11027	030122	012703 	002410'		25$:	MOV	#DXBDAT,R3	; INITIALIZE DATA WORD POINTER
  11028	030126	012702 	002406'			MOV	#DXBADR+2,R2	; AND NEXT WORD POINTER.
  11029	030132	005012 				CLR	(R2)		; SET TO ZERO.
KLIXB -- LOAD THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 229-1
$EXBLD	-- LOAD THE BOOT

  11030	030134	005042 				CLR	-(R2)
  11031	030136	012700 	002416'			MOV	#DXBCNM,R0	; NOW TURN OFF THE NXM BIT BY
  11032	030142					CALL	$EXCT		; DOING A CONO APR,,22000.
	030142	004737 	030636'			 JSR	PC,$EXCT
  11033	030146	103052 				BCC	LXBRC
  11034	030150				30$:
  11035	030150					CALL	REDOSY		; [**]
	030150	004737 	030600'			 JSR	PC,REDOSY
  11036	030154					RETURN
	030154	000207 				 RTS	PC
  11037	030156				40$:
  11038	030156	112737 	177777 	000064'		MOVB	#-1,.NCACH	; SET UP TO CONFIGURE CACHE IF "BOOT"
  11039	030164	122737 	000000G	000526'		CMPB	#IE.NSF,.SYSTA	; IF FILE NOT FOUND
  11040	030172	001025 				BNE	50$		; [**]
  11041	030174					DIR$	#DNIBOO		;[**]
	030174	012746 	002354'			MOV	#DNIBOO,-(SP)
	030200	104375 				EMT	375
  11042	030202	005237 	002356'			INC	DNIBOO+2	;[**]
  11043	030206					DIR$	#DNIBOO		;[**]
	030206	012746 	002354'			MOV	#DNIBOO,-(SP)
	030212	104375 				EMT	375
  11044	030214	005237 	002356'			INC	DNIBOO+2	;[**]
  11045	030220					DIR$	#DNIBOO		;[**]
	030220	012746 	002354'			MOV	#DNIBOO,-(SP)
	030224	104375 				EMT	375
  11047	030226	012737 	052104 	002400'		MOV	#"DT,DXBLOC	;[**]
  11051	030234	005237 	002402'			INC	DXBLOC+2	;[**]
  11052	030240					CALL	$LOOKUP		;[**]
	030240	004737 	007562'			 JSR	PC,$LOOKUP
  11053	030244	103326 				BCC	25$		;[**]
  11054	030246				50$:	CALLR	$IOERR		; DECLARE THE ERROR.
	030246	000137 	007346'			 JMP	$IOERR
  11055
  11056					;+
  11057					; READ 5 BYTES INTO THE AREA POINTED TO BY R3.
  11058					; R5, R4 AND R0 GET DESTROYED.
  11059					;-
  11060
  11061	030252				LXB5B:
  11062	030252	012705 	000005 			MOV	#5,R5
  11063	030256	010304 				MOV	R3,R4
  11064	030260				10$:
  11065	030260					CALL	$READB		; READ A BYTE AND
	030260	004737 	010420'			 JSR	PC,$READB
  11066	030264	103402 				BCS	20$
  11067	030266	110024 				MOVB	R0,(R4)+	; STICK IN ASSEMBLED WORD.
  11068	030270	077505 				SOB	R5,10$
  11069	030272				20$:
  11070	030272					RETURN
	030272	000207 				 RTS	PC
KLIXB -- LOAD THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 230
$EXBLD	-- LOAD THE BOOT

  11072					;+
  11073					; READ RECORD FROM FILE.
  11074					;-
  11075
  11076	030274				LXBRC:	CALL	$READC		; GET ADDRESS.
	030274	004737 	010216'			 JSR	PC,$READC
  11077	030300	103534 				BCS	90$
  11078	030302	010037 	000516'			MOV	R0,.BTADR
  11079	030306					CALL	$READW
	030306	004737 	010324'			 JSR	PC,$READW
  11080	030312	103527 				BCS	90$
  11081	030314	010037 	000520'			MOV	R0,.BTADR+2
  11082	030320	005737 	000534'			TST	.SYIRC		; IF MORE BYTES IN RECORD
  11083	030324	003072 				BGT	60$		; GO TO LOAD DATA INTO KL.
  11084
  11085					;+
  11086					; END OF FILE REACHED. CLEAR THE REST OF THE PAGE,
  11087					; DE-ACCESS THE FILE, AND START THE BOOT.
  11088					;-
  11089
  11090	030326	032712 	000777 		10$:	BIT	#PGBTS,(R2)	; MUST CLEAR REST OF PAGE.
  11091	030332	001413 				BEQ	20$
  11092	030334	012701 	000000'			MOV	#.ZERO,R1	; IF NOT AT BOUNDRY
  11093	030340	010200 				MOV	R2,R0
  11094	030342					CALL	$DPOS		; CLEAR WORD,
	030342	004737 	013074'			 JSR	PC,$DPOS
  11095	030346	103511 				BCS	90$
  11096	030350	062712 	000001 			ADD	#1,(R2)		; BUMP POINTER,
  11097	030354	005562 	000002 			ADC	2(R2)
  11098	030360	000762 				BR	10$		; AND GO FOR MORE.
  11099	030362	010301 			20$:	MOV	R3,R1
  11100	030364	012700 	110000 			MOV	#<110*1000>,R0	; GET 'APR NXM ER IN'
  11101	030370					CALL	$DFRD
	030370	004737 	013444'			 JSR	PC,$DFRD
  11102	030374	103476 				BCS	90$
  11103	030376	132761 	000020 	000003 		BITB	#20,3(R1)	; TO TEST FOR NXM.
  11104	030404	001004 				BNE	30$
  11105	030406					CALL	$CLOSE		; CLOSE BOOT FILE.
	030406	004737 	007056'			 JSR	PC,$CLOSE
  11106	030412	000137 	024524'			JMP	$TENST		; GO TO START THE BOOT.
  11107	030416				30$:	PRINT	#TXBIMM		; BOOT LOADED IN NONEXISTANT MEMORY !
	030416	012700 	006024'			 MOV	#TXBIMM,R0
	030422	004737 	027634'			 JSR	PC,$TTMSG
  11108	030426					CALL	REDOSY		;[**]
	030426	004737 	030600'			 JSR	PC,REDOSY
  11109	030432	000261 				SEC
  11110	030434					RETURN
	030434	000207 				 RTS	PC
KLIXB -- LOAD THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 231
$EXBLD	-- LOAD THE BOOT

  11112					;+
  11113					; PROCESS DATA RECORD.
  11114					;-
  11115
  11116	030436	032712 	000777 		40$:	BIT	#PGBTS,(R2)	; IF ON A NEW PAGE
  11117	030442	001011 				BNE	50$
  11118	030444	013722 	000516'			MOV	.BTADR,(R2)+	; PUT US ON THE PAGE
  11119	030450	013712 	000520'			MOV	.BTADR+2,(R2)	; OF THE TARGET ADDRESS
  11120	030454	042742 	000777 			BIC	#PGBTS,-(R2)	; AT THE TOP.
  11121	030460	023712 	000516'			CMP	.BTADR,(R2)
  11122	030464	001421 				BEQ	70$
  11123	030466	012701 	000000'		50$:	MOV	#.ZERO,R1	; STORE A ZERO
  11124	030472	010200 				MOV	R2,R0
  11125	030474					CALL	$DPOS
	030474	004737 	013074'			 JSR	PC,$DPOS
  11126	030500	103434 				BCS	90$
  11127	030502	062712 	000001 			ADD	#1,(R2)		; AND BUMP ADDRESS.
  11128	030506	005562 	000002 			ADC	2(R2)
  11129	030512	023712 	000516'		60$:	CMP	.BTADR,(R2)	; WE MUST CLEAR
  11130	030516	001347 				BNE	40$		; UP TO THE
  11131	030520	023762 	000520'	000002 		CMP	.BTADR+2,2(R2)	; RECORD ADDRESS.
  11132	030526	001343 				BNE	40$
  11133	030530				70$:	CALL	LXB5B
	030530	004737 	030252'			 JSR	PC,LXB5B
  11134	030534	103416 				BCS	90$
  11135	030536	010301 				MOV	R3,R1
  11136	030540	010200 				MOV	R2,R0
  11137	030542					CALL	$DPOS		; STICK IT IN
	030542	004737 	013074'			 JSR	PC,$DPOS
  11138	030546	103411 				BCS	90$
  11139	030550	062712 	000001 			ADD	#1,(R2)		; BUMP ADDRESS AND
  11140	030554	005562 	000002 			ADC	2(R2)
  11141	030560	005737 	000534'			TST	.SYIRC
  11142	030564	001361 				BNE	70$
  11143	030566	000137 	030274'			JMP	LXBRC		; GO TO PICK UP NEW RECORD.
  11144	030572				90$:
  11145	030572					CALL	REDOSY	;[**]
	030572	004737 	030600'			 JSR	PC,REDOSY
  11146	030576					RETURN
	030576	000207 				 RTS	PC
  11147
  11148	030600				REDOSY:
  11149	030600	012737 	054523 	002400'		MOV	#"SY,DXBLOC	;[**]
  11150	030606	005037 	002402'			CLR	DXBLOC+2	;[**]
  11151	030612					DIR$	#DNISYI		;[**]
	030612	012746 	001504'			MOV	#DNISYI,-(SP)
	030616	104375 				EMT	375
  11152	030620					DIR$	#DNISYO		;[**]
	030620	012746 	001514'			MOV	#DNISYO,-(SP)
	030624	104375 				EMT	375
  11153	030626					DIR$	#DNISYF		;[**]
	030626	012746 	001524'			MOV	#DNISYF,-(SP)
	030632	104375 				EMT	375
  11154	030634					RETURN			;[**]
	030634	000207 				 RTS	PC
KLIXB -- LOAD THE KL BOOT	MACRO M1113  03-APR-86 20:55  PAGE 232
$EXBLD	-- LOAD THE BOOT

  11156
  11157						.TITLE	KLIXC -- KL INSTRUCTION EXECUTION
  11158	030636					IDENT$	5,0
						.IDENT	/005000/
  11159					;
  11160					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  11161					; ALL RIGHTS RESERVED.
  11162					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  11163					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  11164					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  11165					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  11166					;
  11167					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  11168					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  11169					; EQUIPMENT CORPORATION.
  11170					;
  11171					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  11172					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  11173					;
  11174					; VERSION 05-00
  11175					;
  11176					; ALAN D. PECKHAM  30-MAR-77
  11177					;
  11178					; MODIFIED BY:
  11179					;
  11180					; R. BELANGER	06-DEC-78	NEW KEEP-ALIVE ERROR PROCESSING
  11181					;					TCO 4.2107
  11182					;
  11183					; FUNCTION: THIS MODULE CONTAINS ROUTINES TO ALLOW EXECUTION OF
  11184					;  SINGLE KL INSTRUCTIONS OR THE STARTING OF KL PROGRAMS.
  11185					;
  11186					; LOCAL DATA
  11187					;
  11188	002424					.PSECT	DATA,D
  11189	002424				DXCAD:
  11190	002424					WD36$	0 0		; START ADDRESS BUFFER.
	002424	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002427	   000 	   000 			 .BYTE	BY$$3,BY$$4
  11191	002431				DXCBF:
  11192	002431					WD36$	0 0		; GENERAL BIT BUCKET.
	002431	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002434	   000 	   000 			 .BYTE	BY$$3,BY$$4
  11193	002436				DXCBRC:
  11194	002436					WD36$	0 0		; BURST COUNT BUFFER.
	002436	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002441	   000 	   000 			 .BYTE	BY$$3,BY$$4
  11195						.EVEN
  11196	006070					.PSECT	TEXT,D
  11197	006070				TXCHLE:
  11198	006070					ERROR	<CANNOT FIND HALT LOOP>
	006070	   077 	   040 	   103 		 .ASCIZ	\? CANNOT FIND HALT LOOP\
	006073	   101 	   116 	   116
	006076	   117 	   124 	   040
	006101	   106 	   111 	   116
	006104	   104 	   040 	   110
	006107	   101 	   114 	   124
	006112	   040 	   114 	   117
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 232-1
$EXBLD	-- LOAD THE BOOT

	006115	   117 	   120 	   000
  11199	006120				TXCSFL:
  11200	006120					ERROR	<CANNOT START KL>
	006120	   077 	   040 	   103 		 .ASCIZ	\? CANNOT START KL\
	006123	   101 	   116 	   116
	006126	   117 	   124 	   040
	006131	   123 	   124 	   101
	006134	   122 	   124 	   040
	006137	   113 	   114 	   000
  11201	030636					.PSECT
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 233
$EXCT	-- EXECUTE KL INSTRUCTION

  11203						.SBTTL	$EXCT	-- EXECUTE KL INSTRUCTION
  11204					;+
  11205					; EXECUTE A SINGLE KL INSTRUCTION BY GETTING THE KL INTO THE
  11206					; HALT LOOP, LOADING THE AR WITH THE INSTRUCTION, PUSHING THE
  11207					; CONTINUE BUTTON, AND STARTING UP THE CLOCK. THE ROUTINE
  11208					; COMPLETES WHEN THE MICROCODE REACHES THE HALT LOOP AGAIN.
  11209					;
  11210					; INPUTS:
  11211					;	R0	- POINTER TO INSTRUCTION TO EXECUTE.
  11212					;
  11213					; OUTPUTS:
  11214					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
  11215					;-
  11216
  11217	030636				$EXCT::
  11218	030636	004537 	024204'			JSR	R5,$RSAVE
  11219	030642					TRACK	XC
	030642	004037 	030654'			 JSR	R0,64$
	030646	041530 				 .WORD	"XC
	030650	000000 				 .WORD
	030652	000000 				 .WORD
	030654	004737 	024252'		64$:	 JSR	PC,$TRACK
	030660	012600 				 MOV	(SP)+,R0
  11220	030662					CALL	$LDAR		; LOAD THE AR WITH THE INSTRUCTION.
	030662	004737 	031176'			 JSR	PC,$LDAR
  11221	030666	103416 				BCS	90$
  11222	030670	012700 	012000 			MOV	#.CONBT,R0	; PUSH THE CONTINUE BUTTON
  11223	030674					CALL	$DFXC
	030674	004737 	013760'			 JSR	PC,$DFXC
  11224	030700	103411 				BCS	90$
  11225	030702	012700 	001000 			MOV	#.STRCL,R0	; AND START THE CLOCK
  11226	030706					CALL	$DFXC
	030706	004737 	013760'			 JSR	PC,$DFXC
  11227	030712	103404 				BCS	90$
  11228	030714	012703 	001750 			MOV	#1000.,R3
  11229	030720					CALLR	$WTKL		; WAIT FOR THE HALT LOOP.
	030720	000137 	031116'			 JMP	$WTKL
  11230						;
  11231	030724				90$:
  11232	030724					RETURN
	030724	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 234
$STRKL	-- START THE KL PROCESSOR

  11234						.SBTTL	$STRKL	-- START THE KL PROCESSOR
  11235					;+
  11236					; START THE KL AT THE 22 BIT ADDRESS POINTED TO BY R0.
  11237					; THIS IS DONE BY LOADING THE AR WITH THE ADDRESS, PUSHING
  11238					; THE RUN AND CONTINUE BUTTONS, AND STARTING THE CLOCK.
  11239					; WE STEP THE MICROCODE OUT OF THE HALT LOOP TO MAKE SURE IT
  11240					; IS RUNNING BEFORE WE LEAVE.
  11241					;
  11242					; INPUTS:
  11243					;	R0	- POINTER TO 22 BIT KL ADDRESS.
  11244					;
  11245					; OUTPUTS:
  11246					;	CARRY IS SET ON ERROR AND A MESSAGE IS DISPLAYED.
  11247					;-
  11248
  11249	030726				$STRKL::
  11250	030726	004537 	024204'			JSR	R5,$RSAVE
  11251	030732					TRACK	ST
	030732	004037 	030744'			 JSR	R0,64$
	030736	052123 				 .WORD	"ST
	030740	000000 				 .WORD
	030742	000000 				 .WORD
	030744	004737 	024252'		64$:	 JSR	PC,$TRACK
	030750	012600 				 MOV	(SP)+,R0
  11252	030752	012701 	002424'			MOV	#DXCAD,R1	; POINT TO A SCRATCH AREA
  11253	030756	112021 				MOVB	(R0)+,(R1)+	; LOAD THE ADDRESS
  11254	030760	112021 				MOVB	(R0)+,(R1)+
  11255	030762	111011 				MOVB	(R0),(R1)	; AS A PC WORD
  11256	030764	142711 	177700 			BICB	#^C77,(R1)	; ONLY 22 BITS PLEASE
  11257	030770	012700 	002424'			MOV	#DXCAD,R0	; GET OUR ADDRESS
  11258	030774					CALL	$LDAR		; AND LOAD IT INTO THE AR.
	030774	004737 	031176'			 JSR	PC,$LDAR
  11259	031000	103440 				BCS	80$
  11260	031002	012700 	011000 			MOV	#.SETRN,R0	; SET THE RUN FLOP
  11261	031006					CALL	$DFXC
	031006	004737 	013760'			 JSR	PC,$DFXC
  11262	031012	103433 				BCS	80$
  11263	031014	012700 	012000 			MOV	#.CONBT,R0	; SET THE CONTINUE BUTTON
  11264	031020					CALL	$DFXC
	031020	004737 	013760'			 JSR	PC,$DFXC
  11265	031024	103426 				BCS	80$
  11266	031026	012701 	001750 			MOV	#1000.,R1	; LOOP COUNT TO R1
  11267	031032				10$:
  11268	031032	012700 	002000 			MOV	#.SSCLK,R0	; SINGLE STEP THE M-BOX CLOCK
  11269	031036					CALL	$DFXC
	031036	004737 	013760'			 JSR	PC,$DFXC
  11270	031042	103417 				BCS	80$
  11271	031044					CALL	$DTRW1		; READ DIAG WORD 1
	031044	004737 	024114'			 JSR	PC,$DTRW1
  11272	031050	103414 				BCS	80$
  11273	031052	032700 	001000 			BIT	#DS06,R0	; STILL IN THE HALT LOOP?
  11274	031056	001402 				BEQ	20$		; NO -- GO ON
  11275	031060	077114 				SOB	R1,10$		; YES -- TRY AGAIN
  11276	031062	000407 				BR	80$		; TIMED OUT -- COMPLAIN
  11277						;
  11278	031064				20$:
  11279	031064	032700 	002000 			BIT	#DS05,R0	; OUT OF HALT LOOP -- IS RUN ON?
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 234-1
$STRKL	-- START THE KL PROCESSOR

  11280	031070	001404 				BEQ	80$		; NO -- COMPLAIN
  11281	031072	012700 	001000 			MOV	#.STRCL,R0	; YES -- START THE CLOCK
  11282	031076					CALLR	$DFXC		; AND EXIT.
	031076	000137 	013760'			 JMP	$DFXC
  11283						;
  11284	031102				80$:
  11285	031102					PRINT	#TXCSFL		; NO -- PRINT ERROR MESSAGE
	031102	012700 	006120'			 MOV	#TXCSFL,R0
	031106	004737 	027634'			 JSR	PC,$TTMSG
  11286	031112	000261 				SEC
  11287	031114				90$:
  11288	031114					RETURN			; AND EXIT
	031114	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 235
$WTKL	-- WAIT FOR KL PROGRAM TO HALT

  11290						.SBTTL	$WTKL	-- WAIT FOR KL PROGRAM TO HALT
  11291					;+
  11292					; WAIT FOR THE KL TO REENTER THE HALT LOOP.
  11293					;
  11294					; INPUTS:
  11295					;	R0	- A TIMEOUT VALUE.
  11296					;
  11297					; OUTPUTS:
  11298					;	CARRY IS SET IF THE KL DOES NOT ENTER THE HALT LOOP
  11299					;	BEFORE THE -11 HAS CHECKED THE DTE20 THE NUMBER OF TIMES
  11300					;	SPECIFIED IN R0.
  11301					;-
  11302
  11303	031116				$WTKL::
  11304	031116					TRACK	WT
	031116	004037 	031130'			 JSR	R0,64$
	031122	052127 				 .WORD	"WT
	031124	000000 				 .WORD
	031126	000000 				 .WORD
	031130	004737 	024252'		64$:	 JSR	PC,$TRACK
	031134	012600 				 MOV	(SP)+,R0
  11305	031136					PUSH	<R2,R1,R0>
	031136	010246 				 MOV	R2,-(SP)
	031140	010146 				 MOV	R1,-(SP)
	031142	010046 				 MOV	R0,-(SP)
  11306	031144	010002 				MOV	R0,R2
  11307	031146				10$:
  11308	031146					CALL	$DTRW1		; READ DTE DIAG 1
	031146	004737 	024114'			 JSR	PC,$DTRW1
  11309	031152	103404 				BCS	80$
  11310	031154	032700 	001000 			BIT	#DS06,R0	; ARE WE AT THE HALT LOOP ?
  11311	031160	001002 				BNE	90$		; YES, RETURN.
  11312	031162	077207 				SOB	R2,10$		; NO, TRY AGAIN
  11313	031164				80$:
  11314	031164	000261 				SEC			; OR GIVE UP.
  11315	031166				90$:
  11316	031166					POP	<R0,R1,R2>
	031166	012600 				 MOV	(SP)+,R0
	031170	012601 				 MOV	(SP)+,R1
	031172	012602 				 MOV	(SP)+,R2
  11317	031174					RETURN
	031174	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 236
$LDAR	-- LOAD THE AR REGISTER

  11319						.SBTTL	$LDAR	-- LOAD THE AR REGISTER
  11320					;+
  11321					; PUT THE MICROCODE INTO THE HALT LOOP, STOP IT, PHASE THE CLOCKS,
  11322					; AND LOAD THE AR REGISTER WITH AN INSTRUCTION OR STARTING ADDRESS.
  11323					;
  11324					; INPUTS:
  11325					;	R0	- ADDRESS OF 36 BIT WORD TO LOAD INTO THE AR.
  11326					;
  11327					; OUTPUTS:
  11328					;	CARRY IS SET IF ERROR OCCURS.
  11329					;-
  11330
  11331	031176				$LDAR::
  11332	031176	004537 	024204'			JSR	R5,$RSAVE	; SAVE THE REGISTERS.
  11333	031202					CALL	STPKL		; STOP THE MICROCODE.
	031202	004737 	031232'			 JSR	PC,STPKL
  11334	031206	103410 				BCS	90$
  11335	031210					CALL	$MBPHS		; PHASE THE CLOCKS FOR THE LOAD.
	031210	004737 	031444'			 JSR	PC,$MBPHS
  11336	031214	103405 				BCS	90$
  11337	031216	010001 				MOV	R0,R1		; GET DATA
  11338	031220	012700 	077000 			MOV	#.LDAR,R0	; AND
  11339	031224					CALLR	$DFWR		; STORE IN THE AR.
	031224	000137 	013556'			 JMP	$DFWR
  11340						;
  11341	031230				90$:
  11342	031230					RETURN
	031230	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 237
STPKL	-- HALT THE KL CPU

  11344						.SBTTL	 STPKL	-- HALT THE KL CPU
  11345					;+
  11346					; GET THE KL INTO THE HALT LOOP. THIS IS DONE MERCIFULLY IN CASE
  11347					; IT IS RUNNING.
  11348					;
  11349					; NO INPUTS.
  11350					;
  11351					; OUTPUTS:
  11352					;	CARRY IS SET IF UNABLE TO COMPLY, AND ERROR MESSAGE
  11353					;	IS DISPLAYED.
  11354					;-
  11355
  11356	031232				STPKL:
  11357	031232					TRACK	HA
	031232	004037 	031244'			 JSR	R0,64$
	031236	040510 				 .WORD	"HA
	031240	000000 				 .WORD
	031242	000000 				 .WORD
	031244	004737 	024252'		64$:	 JSR	PC,$TRACK
	031250	012600 				 MOV	(SP)+,R0
  11358	031252					PUSH	<R0,R1>		; SAVE R0 AND R1
	031252	010046 				 MOV	R0,-(SP)
	031254	010146 				 MOV	R1,-(SP)
  11359	031256	012700 	010000 			MOV	#.CLRUN,R0	; CLEAR RUN
  11360	031262					CALL	$DFXC		; CLEAR RUN
	031262	004737 	013760'			 JSR	PC,$DFXC
  11361	031266	103455 				BCS	90$
  11362	031270	012700 	000024 			MOV	#20.,R0		; SET A WAIT VALUE
  11363	031274					CALL	$WTKL		; AND SEE IF WE FALL
	031274	004737 	031116'			 JSR	PC,$WTKL
  11364	031300	103037 				BCC	20$		; INTO THE HALT LOOP.
  11365	031302	012701 	000024 			MOV	#^D20,R1	; LOOP COUNT TO R4
  11366	031306				10$:
  11367	031306	012700 	000310 			MOV	#^D200,R0	; BURST COUNT TO R0
  11368	031312					CALL	$BURST		; BURST THE CLOCK
	031312	004737 	031612'			 JSR	PC,$BURST
  11369	031316	103441 				BCS	90$
  11370	031320					CALL	$DTRW1		; READ DTE-20 DIAG 1
	031320	004737 	024114'			 JSR	PC,$DTRW1
  11371	031324	103436 				BCS	90$
  11372	031326	032700 	001000 			BIT	#DS06,R0	; ARE WE IN THE HALT LOOP NOW?
  11373	031332	001022 				BNE	20$		; YES -- GO ON
  11374	031334	077114 				SOB	R1,10$		; NO -- TRY AGAIN
  11375	031336	032737 	000000G	000060'		BIT	#KL.KAC,.KLISV	; [4.2107] KEEP-ALIVE RETRY??
  11376	031344	001031 				BNE	80$		; [4.2107] YES -- COMPLANI AND EXIT
  11377	031346					CALL	$KLMR		; NO -- KL IS IN TROUBLE - RESET
	031346	004737 	015232'			 JSR	PC,$KLMR
  11378	031352	103423 				BCS	90$
  11379	031354	012700 	001000 			MOV	#.STRCL,R0	; BY RESTARTING MICROCODE.
  11380	031360					CALL	$DFXC
	031360	004737 	013760'			 JSR	PC,$DFXC
  11381	031364	103416 				BCS	90$
  11382	031366	012700 	001750 			MOV	#1000.,R0	; WAIT FOR IT TO ENTER HALT LOOP
  11383	031372					CALL	$WTKL		; AND IF THIS FAILS,
	031372	004737 	031116'			 JSR	PC,$WTKL
  11384	031376	103414 				BCS	80$		; THEN DIE A MISERABLE DEATH.
  11385	031400				20$:
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 237-1
STPKL	-- HALT THE KL CPU

  11386	031400	012700 	000000 			MOV	#.STPCL,R0	; STOP THE CLOCK
  11387	031404					CALL	$DFXC
	031404	004737 	013760'			 JSR	PC,$DFXC
  11388	031410	103404 				BCS	90$
  11389	031412	012700 	004000 			MOV	#.CECLK,R0	; MAKES EBOX CLOCK FALSE
  11390	031416					CALL	$DFXC
	031416	004737 	013760'			 JSR	PC,$DFXC
  11391	031422				90$:
  11392	031422					POP	<R1,R0>		; RESTORE REGISTERS
	031422	012601 				 MOV	(SP)+,R1
	031424	012600 				 MOV	(SP)+,R0
  11393	031426					RETURN			; TO CALLER
	031426	000207 				 RTS	PC
  11394
  11395	031430				80$:
  11396	031430					PRINT	#TXCHLE		; CANNOT FIND HALT LOOP !
	031430	012700 	006070'			 MOV	#TXCHLE,R0
	031434	004737 	027634'			 JSR	PC,$TTMSG
  11397	031440	000261 				SEC
  11398	031442	000767 				BR	90$
  11399						;
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 238
$MBPHS	-- PHASE THE KL CLOCKS

  11401						.SBTTL	$MBPHS	-- PHASE THE KL CLOCKS
  11402					;+
  11403					; PHASE THE CLOCKS TO LOAD THE AR
  11404					; $MBPHS WAITS FOR THREE TEST POINTS TO MATCH UP AND
  11405					; THEN SETS UP FOR A CHANGE COMING A L. THIS MAKES
  11406					; THE AR LOA FUNCTION STRICTLY REPEATABLE.
  11407					;
  11408					; NO INPUTS
  11409					;
  11410					; OUTPUTS:
  11411					;	CARRY IS SET IF ERROR OCCURS.
  11412					;-
  11413
  11414	031444				$MBPHS::
  11415	031444	004537 	024204'			JSR	R5,$RSAVE	; SAVE THE REGISTERS.
  11416	031450	012702 	000030 			MOV	#24.,R2		; DO THIS A MAXIMUM OF 24 TIMES.
  11417	031454	012701 	002431'			MOV	#DXCBF,R1	; SET UP A READ BUFFER.
  11418	031460				10$:
  11419	031460	012700 	102000 			MOV	#<102*1000>,R0	; READ 102
  11420	031464					CALL	$DFRD
	031464	004737 	013444'			 JSR	PC,$DFRD
  11421	031470	103432 				BCS	80$
  11422	031472	132711 	000004 			BITB	#4,(R1)		; CHECK "CLK SYNCH H"
  11423	031476	001421 				BEQ	20$		; MUST BE HIGH
  11424	031500	012700 	144000 			MOV	#<144*1000>,R0	; READ 144
  11425	031504					CALL	$DFRD
	031504	004737 	013444'			 JSR	PC,$DFRD
  11426	031510	103422 				BCS	80$
  11427	031512	132761 	000100 	000003 		BITB	#100,3(R1)	; CHECK "CR ADR 10"
  11428	031520	001010 				BNE	20$		; MUST BE EVEN
  11429	031522	012700 	164000 			MOV	#<164*1000>,R0	; READ 164
  11430	031526					CALL	$DFRD
	031526	004737 	013444'			 JSR	PC,$DFRD
  11431	031532	103411 				BCS	80$
  11432	031534	132711 	000040 			BITB	#40,(R1)	; CHECK "PHASE CHANGE COMING L"
  11433	031540	001410 				BEQ	30$		; MUST BE LOW
  11434	031542				20$:
  11435	031542	012700 	002000 			MOV	#.SSCLK,R0	; STEP THE MBOX CLOCK.
  11436	031546					CALL	$DFXC
	031546	004737 	013760'			 JSR	PC,$DFXC
  11437	031552	103401 				BCS	80$
  11438	031554	077237 				SOB	R2,10$		; AVOID TRYING AD INFINITUM.
  11439	031556				80$:
  11440	031556	000261 				SEC			; ERROR....
  11441	031560				90$:
  11442	031560					RETURN
	031560	000207 				 RTS	PC
  11443	031562				30$:
  11444	031562	012700 	162000 			MOV	#<162*1000>,R0	; READ 162
  11445	031566					CALL	$DFRD
	031566	004737 	013444'			 JSR	PC,$DFRD
  11446	031572	103771 				BCS	80$
  11447	031574	132711 	000010 			BITB	#10,(R1)	; CHECK "A CHANGE COMING A L"
  11448	031600	001767 				BEQ	90$		; IF HIGH, THEN
  11449	031602	012700 	000012 			MOV	#10.,R0		; WE MUST CLOCK THE MBOX
  11450	031606					CALLR	$BURST		; 10. TIMES.
	031606	000137 	031612'			 JMP	$BURST
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 238-1
$MBPHS	-- PHASE THE KL CLOCKS

  11451						;
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 239
$BURST	-- BURST THE M-BOX CLOCK

  11453						.SBTTL	$BURST	-- BURST THE M-BOX CLOCK
  11454					;+
  11455					; STEP THE M-BOX A GIVEN NUMBER OF TICKS USING THE BURST
  11456					; DIAGNOSTIC INSTRUCTION.
  11457					;
  11458					; INPUTS:
  11459					;	R0	- NUMBER OF STEPS TO BURST.
  11460					;
  11461					; OUTPUTS:
  11462					;	CARRY IS SET IF OPERATION WAS UNSUCCESSFUL.
  11463					;-
  11464
  11465	031612	004537 	024204'		$BURST::	JSR	R5,$RSAVE
  11466	031616	010002 				MOV	R0,R2		; SAVE BURST COUNT.
  11467	031620	012700 	000000 			MOV	#.STPCL,R0	; STOP CLOCK FOR SAFETY.
  11468	031624					CALL	$DFXC
	031624	004737 	013760'			 JSR	PC,$DFXC
  11469	031630	103464 				BCS	90$
  11470	031632	012701 	002436'			MOV	#DXCBRC,R1
  11471	031636	012711 	000017 			MOV	#17,(R1)
  11472	031642	162702 	000377 			SUB	#255.,R2	; MORE THAN 255 BURSTS ?
  11473	031646	002422 				BLT	20$
  11474	031650				10$:
  11475	031650	012700 	042000 			MOV	#.LDBRR,R0	; YES, DO A BURST
  11476	031654					CALL	$DFWR
	031654	004737 	013556'			 JSR	PC,$DFWR
  11477	031660	103450 				BCS	90$
  11478	031662	012700 	043000 			MOV	#.LDBRL,R0	; WITH 255, AND
  11479	031666					CALL	$DFWR
	031666	004737 	013556'			 JSR	PC,$DFWR
  11480	031672	103443 				BCS	90$
  11481	031674	012700 	005000 			MOV	#.BRCLK,R0
  11482	031700					CALL	$DFXC
	031700	004737 	013760'			 JSR	PC,$DFXC
  11483	031704	103436 				BCS	90$
  11484	031706	162702 	000377 			SUB	#255.,R2	; COUNT DOWN UNTIL
  11485	031712	002356 				BGE	10$		; LESS THAN 255.
  11486	031714				20$:
  11487	031714	062702 	000377 			ADD	#255.,R2	; ANY LEFT TO DO ?
  11488	031720	001430 				BEQ	90$
  11489	031722	110211 				MOVB	R2,(R1)		; YES, DO LAST BURST.
  11490	031724	142711 	177760 			BICB	#^C17,(R1)
  11491	031730	012700 	042000 			MOV	#.LDBRR,R0
  11492	031734					CALL	$DFWR
	031734	004737 	013556'			 JSR	PC,$DFWR
  11493	031740	103420 				BCS	90$
  11494	031742					SR	R2,4
	031742	006202 				  ASR	R2
	031744	006202 				  ASR	R2
	031746	006202 				  ASR	R2
	031750	006202 				  ASR	R2
  11495	031752	110211 				MOVB	R2,(R1)
  11496	031754	142711 	177760 			BICB	#^C17,(R1)
  11497	031760	012700 	043000 			MOV	#.LDBRL,R0
  11498	031764					CALL	$DFWR
	031764	004737 	013556'			 JSR	PC,$DFWR
  11499	031770	103404 				BCS	90$
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 239-1
$BURST	-- BURST THE M-BOX CLOCK

  11500	031772	012700 	005000 			MOV	#.BRCLK,R0
  11501	031776					CALLR	$DFXC
	031776	000137 	013760'			 JMP	$DFXC
  11502						;
  11503	032002				90$:
  11504	032002					RETURN
	032002	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 240
$BURST	-- BURST THE M-BOX CLOCK

  11506
  11507		023516'				.END	$START
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 240-1
SYMBOL TABLE

AAX   = 000020   	CIMNXC  001136R     003	DDNCRE  000604R     002	DMABM = ****** GX	DS05  = 002000
APR   = 000000   	CIMNXM  001167R     003	DDNDEL  000706R     002	DMANXM= ****** GX	DS06  = 001000
ATLST   002306R     002	CLRMR = 000006   	DDNENA  000630R     002	DMA2TS= ****** GX	DTECMD= 000451
A.LULU= 000002   	CM    = 000004   	DDNGLN  000576R     002	DMA20 = ****** GX	DTEFLG= 000444
A.LUNA= 000004   	CNUPE = 000002   	DDNRAT  000722R     002	DMRBF   001434R     002	DTEF11= 000450
A.LUNU= 000006   	CNVCHK  015146R  	DDPDAI  000734R     002	DMRKW2  001446R     002	DTEMTD= 000455
BAF0  = ****** GX	CNVWRD  015154R  	DDPDAO  000764R     002	DMRMMR  001414R     002	DTEMTI= 000456
BITTBL= ****** GX	COMCSE  005552RG    003	DDPDEL  000750R     002	DMRMOS  001441R     002	DTLST   002322R     002
BIT0  = 000001   	CONBUT= 000012   	DDPRNA  001000R     002	DMRMRT  001322R     002	DTNRB   002236R     002
BIT1  = 000002   	CONFGR= ****** GX	DDXEXT  001030R     002	DMRSRL= 000005   	DTNXP   002230R     002
BIT10 = 002000   	CONFIG= ****** GX	DEP   = 010000   	DMRSRT  001422R     002	DTTRLB  002244R     002
BIT11 = 004000   	CONO  = 000004   	DEX   = 000400   	DNIBOO  002354R     002	DTTSTA  002336R     002
BIT12 = 010000   	CONTI = ****** GX	DEXDON= 000004   	DNILPO  001474R     002	DTTWLB  002264R     002
BIT13 = 020000   	CPUNUM= 000002   	DEXWD1= 174406   	DNISYF  001524RG    002	DUPE  = 000020
BIT14 = 040000   	CR    = 000015   	DEXWD2= 174404   	DNISYI  001504RG    002	DURE  = 000004
BIT15 = 100000   	CS.EXP= 177670   	DEXWD3= 174402   	DNISYO  001514RG    002	DXBADR  002404R     002
BIT2  = 000004   	CTLS  = 000040   	DFCABF  001103R     002	DNITTI  001454R     002	DXBCNM  002416R     002
BIT3  = 000010   	CXMDOL  001504R     003	DFCBF   001074R     002	DNITTO  001464R     002	DXBDAT  002410R     002
BIT4  = 000020   	CXMIBM  001677R     003	DFCFL2  001101R     002	DON10C= 040000   	DXBFNM  002364R     002
BIT5  = 000040   	C.ACHE= 000000   	DFCFL3  001102R     002	DON10S= 100000   	DXBLOC  002400R     002
BIT6  = 000100   	DACAB   000000R     002	DFCRFL  001054R     002	DON11C= 000100   	DXCAD   002424R     002
BIT7  = 000200   	DACAD   000012R     002	DFCWFL  001064R     002	DON11S= 000200   	DXCBF   002431R     002
BIT8  = 000400   	DACBF   000015R     002	DFDABF  001115R     002	DPS4  = 040000   	DXCBRC  002436R     002
BIT9  = 001000   	DACBI   000005R     002	DFDDBF  001110R     002	DQBFNM  001534RG    002	DXWRD1= 002000
BLKI  = 000000   	DATAI = 000001   	DFEAD   001146R     002	DQSAPR  001670R     002	D$$H11= 000010
BLKO  = 000002   	DATAO = 000003   	DFEBF   001152R     002	DQSCBF  001640R     002	D1011 = 000040
BMMSTB  000236RG    004	DBEFRC= ****** GX	DFEDPB  001122R     002	DQSCF3  001654R     002	EBSEL = 000100
BPARER= 000020   	DCAPGM  000023R     002	DFEEXB  001134R     002	DQSCSW  001620R     002	EBUSPC= 000020
BRCLK = 000005   	DCARCA  000040R     002	DFRRDB  001160R     002	DQSHWT  001676R     002	EBUSPS= 000004
BY$$0 = 000000   	DCARFL  000101R     002	DFUNC = 000200   	DQSMKT  001626R     002	EDONES= 040000
BY$$1 = 000000   	DCASIA  000033R     002	DFWBF   001216R     002	DQSP0   001554RG    002	ED.PHY= 000200
BY$$2 = 000000   	DCAWRF  000064R     002	DFWEDB  001204R     002	DQSP01  001604RG    002	EF.CRI= ****** GX
BY$$3 = 000000   	DCBADR  000134R     002	DFWWDB  001172R     002	DQSP1   001570RG    002	EF.PR1= ****** GX
BY$$4 = 000000   	DCBCBF  000156R     002	DFXXDB  001224R     002	DRESET= 000100   	EPTR  = 000000
CCA   = 000014   	DCBCNT  000152R     002	DF.DMG= 000004   	DRSCEN  001714R     002	ERRORX  020314R
CCFAIL= ****** GX	DCBDAT  000136R     002	DF.DMN= 000007   	DRSDBL  001712RG    002	ERR10C= 010000
CDD   = 000020   	DCBDBF  000172R     002	DF.DOR= 000001   	DRSFCR  001736R     002	ERR10S= 020000
CECLK = 000004   	DCBFIX  000154R     002	DF.EHG= 000010   	DRSPEN  001726R     002	ERR11C= 000001
CFGEXT  006076R  	DCBFNM  000114R     002	DF.EHM= 000011   	DRSPFR  001733R     002	ERR11S= 000002
CFGINM  001222R     003	DCFCFN  000210R     002	DF.EMG= 000005   	DRSPLD  001721R     002	E.FFIL= 000006
CFGINT  005624R  	DCFLFN  000230R     002	DF.EMN= 000006   	DRSSCR  001741R     002	FITMEM= ****** GX
CFGMAC  001441R     003	DCFRJT  000250R     002	DF.KLR= 000012   	DRTBF   002110R     002	FM    = 000010
CFGMNM  001370R     003	DCOMST= 000001   	DF.KLW= 000013   	DRTBUF  002000R     002	FMRECN= ****** GX
CFGMOS  006234R  	DCSRCA  000273R     002	DF.KLX= 000014   	DRTDTE  024150R  	FORPRO= 000020
CFGXMC  004270R  	DCSSIA  000266R     002	DF.OFF= 000002   	DRTSTA  001774R     002	FS    = 000001
CFGXNM  001305R     003	DDCDAI  000300R     002	DF.ON = 000003   	DRTWLB  001752R     002	FTKLI = 000001
CFIMIL  004702R  	DDCDAO  000314R     002	DF.PDP= 000016   	DRTX71  001744R     002	F.TRCK= 000001
CFIMQ1  000632R     003	DDCWAT  000334R     002	DF.PEX= 000015   	DR.DTE= 000011   	GAPCNT= ****** GX
CFIMQ2  000752R     003	DDDDEL  000402R     002	DGCFNM  001236R     002	DSEND = 000004   	GAPTAB= ****** GX
CFIMQ3  001024R     003	DDDFNA  000352R     002	DGMFNM  001256R     002	DSTBF   002166R     002	G.LUBA= 000004
CFIMQ4  001051R     003	DDDRNA  000420R     002	DGPFNM  001276R     002	DSTCEN  002142R     002	G.LUCW= 000004
CFMMQ1  000707R     003	DDLACR  000506R     002	DIAG1 = 174430   	DSTRT   002116R     002	G.LUFB= 000003
CFXMQ1  001547R     003	DDLFNA  000456R     002	DIAG2 = 174432   	DSTRTL= 000004   	G.LULU= 000002
CFXMQ2  001620R     003	DDLGLN  000450R     002	DIAG3 = 174436   	DST1B0  002147R     002	G.LUNA= 000000
CHKIMC  005070R  	DDLRAT  000564R     002	DIKL10= 000010   	DST1B1  002154R     002	G.LUNU= 000002
CHKMMC  005314R  	DDLRNA  000534R     002	DLYCNT= 174400   	DST3B1  002161R     002	HDTAB   002200R     002
CHNPNT= 000001   	DDNACE  000660R     002	DM    = 000002   	DS04  = 004000   	HIBYTE= 177400
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 240-2
SYMBOL TABLE

HLTNOE  022266R  	KL.SSC= ****** GX	LRSTKL  023332R  	Q.IOFN= 000002   	TCBMLF  000203R     003
HRR   = 000540   	KL.VBD= ****** GX	LTNCHR  026434R  	Q.IOLU= 000004   	TCBMRE  000446R     003
H.KCAC= ****** GX	KL.VBN= ****** GX	LTNMV   026374R  	Q.IOPL= 000014   	TCBMVF  000233R     003
H.KEXT= ****** GX	KS.FCF= ****** GX	LTNROL  026420R  	Q.IOPR= 000007   	TCBMVL  000314R     003
H.KMOS= ****** GX	LCARPT  000754R  	LTTDIR  027724R  	Q.IOSB= 000010   	TCBMVV  000357R     003
H.KPWR= ****** GX	LCBCRM  001630R  	LXBRC   030274R  	RAMIS0= 010000   	TCBXOR  000440R     003
H.KUDF= ****** GX	LCBDRM  002172R  	LXB5B   030252R  	RDATIM  014706RG 	TCFCFA  000536R     003
IE.DFU= ****** GX	LCBFL   002636R  	L$$P20= 000002   	RDDONE= ****** GX	TCFCFE  000571R     003
IE.EBX= ****** GX	LCBRC   001372R  	MABRD = ****** GX	RDMCV   001502R  	TDEDFU  002154R     003
IE.EOF= ****** GX	LCBRME  002516R  	MAJVER  000106R     002	REDOSY  030600R  	TDEDR   001722R     003
IE.NSF= ****** GX	LCBVFY  002572R  	MA20  = ****** GX	REPCON= ****** GX	TDEIO   002014R     003
IE.UPN= ****** GX	LCBVR   002674R  	MBINI = ****** GX	REPFIT= ****** GX	TDENSF  002100R     003
IFLOP = 100000   	LCB3W   001216R  	MB20  = ****** GX	RESDET= ****** GX	TDRRDE  002201R     003
INIDMA= ****** GX	LCB6W   001224R  	MF20  = ****** GX	RFMAD0= 100000   	TDRRLE  002216R     003
INTMOD= ****** GX	LCFCPY  003204R  	MPE11 = 001000   	RFMAD1= 040000   	TDWRLE  002270R     003
INTROF= 000010   	LCFERR  003502R  	MXTYP = 000005   	RFMAD2= 020000   	TDWWRE  002252R     003
INTRON= 000040   	LCFNXT  003152R  	M.KTAE= 000010   	RFMAD3= 010000   	TENAD1= 174410
INTSON= 000001   	LCFPRG  003476R  	M.KTEF= 000002   	RM    = 000010   	TENAD2= 174412
INT10S= 000400   	LCFRBF  003256R  	M.KTMG= 000004   	RTFERR  015126R  	TFEDFL  002325R     003
INT11C= 002000   	LCFRCA  003276R  	M.KTUN= 000006   	RTFERX  015136R  	TFEEFL  002346R     003
INT11S= 004000   	LCFREF  003314R  	NULSTP= 000040   	RTFXIT  015142R  	TFREMS  002367R     003
IO.ACE= ****** GX	LCFRMC  003516R  	NUPE  = 000002   	R$$11D= 000001   	TFWEMS  002410R     003
IO.ACR= ****** GX	LCFRMM  003176R  	PAG   = 000010   	SAVLEN  002352R     002	TFXEMS  002432R     003
IO.ATT= ****** GX	LCFRPA  003266R  	PAGE  = 001000   	SAVMSG  002350R     002	TGCNFL  002456R     003
IO.CRE= ****** GX	LCFRTN  003474R  	PCERRM  003225R     003	SCD   = 000040   	TGMNFL  002525R     003
IO.DAC= ****** GX	LCFSKP  003304R  	PERCLR= 001000   	SECLK = 000003   	TGPNFL  002575R     003
IO.DEL= ****** GX	LCFWBF  003526R  	PGBTS = 000777   	SETIMF  000264R     002	TGTCKE  002607R     003
IO.DET= ****** GX	LCFWCA  003772R  	PHYS  = 100000   	SETMMF  000265R     002	TGTIFF  002677R     003
IO.ENA= ****** GX	LCFWEF  003642R  	PI    = 000004   	SETMR = 000007   	TGTNFL  002651R     003
IO.EXT= ****** GX	LCFWMC  004060R  	PIDENT= 000000   	SETRUN= 000011   	TGTRFE  002741R     003
IO.FNA= ****** GX	LCFWMM  003664R  	PRI7  = 000340   	SETZ  = 000400   	TMFLNM= ****** GX
IO.RLB= ****** GX	LCFWPA  004142R  	PROPNT= 000021   	SPC   = 000040   	TMPLOG  002342R     002
IO.RNA= ****** GX	LDAR  = 000077   	PRTOFF= 004000   	SSCLK = 000002   	TMRMFL  002777R     003
IO.RVB= ****** GX	LDEIDV  007536R  	PR0   = 000000   	STAT  = 174434   	TNINDV  003025R     003
IO.WLB= ****** GX	LDRER   010460R  	PR1   = 000040   	STATUS= 000022   	TNIN55  003052R     003
IO.WVB= ****** GX	LDWER   010722R  	PR2   = 000100   	STPCLK= 000000   	TNIPRI  003110R     003
IS.CR = ****** GX	LF    = 000012   	PR3   = 000140   	STPKL   031232R  	TNIVER  003174R     003
IS.ESC= ****** GX	LFCSAB  012274R  	PR4   = 000200   	STRCLK= 000001   	TOBM  = 000004
I.10L = 000005   	LFDWFN  012460R  	PR5   = 000240   	SUBVER  000110R     002	TOIP  = 000002
JCOMM   002174R     002	LFECKN  013354R  	PR6   = 000300   	SWITCH  002176R     002	TOIT  = 000001
JRST  = 000254   	LFEMVA  013330R  	PR7   = 000340   	SWR   = 177570   	TO10  = 000200
JUMPE = 000322   	LFWCKF  013676R  	PS    = 177776   	SWSLLT= 100000   	TO10AD= 174420
KEEPBB= ****** GX	LMRDFN  015430R  	PSWW1 = 000005   	SYFLUN= 000006   	TO10BC= 174414
KLI$$E= 000050   	LOAD11= 000004   	PSWW10= 000014   	SYILUN= 000004   	TO10BM= 000001
KLI$$F= 000101   	LOGLUN= 000006   	PSWW11= 000015   	SYOLUN= 000005   	TO10DB= 000400
KLI$$K= 000126   	LPOLUN= 000003   	PSWW12= 000016   	S.YIL = 001000 G 	TO10DN= 100000
KLI$$V= 000015   	LQBRBF  016656RG 	PSWW13= 000017   	S.YOL = 001000 G 	TO10DT= 174424
KLPWRF= 000010   	LQCCM   017244R  	PSWW2 = 000006   	TAB   = 000011   	TO10ER= 020000
KL.ABO= ****** GX	LQMRFN  001246R  	PSWW3 = 000007   	TCAACD  000077R     003	TO11  = 000100
KL.CFL= ****** GX	LQRBPS  021144R  	PSWW4 = 000010   	TCAACE  000026R     003	TO11AD= 174422
KL.CFM= ****** GX	LQSBPS  021532R  	PSWW5 = 000011   	TCACEF  000000R     003	TO11BC= 174416
KL.DEF= ****** GX	LQSCHE  022052R  	PSWW6 = 000012   	TCASCE  000051R     003	TO11BM= 020000
KL.KAC= ****** GX	LQSCHO  022026R  	PSWW7 = 000013   	TCBBAD  000424R     003	TO11DB= 004000
KL.LCA= ****** GX	LQSCSW  022434R  	PULSE = 000020   	TCBDCW  000117R     003	TO11DN= 000200
KL.LRM= ****** GX	LQSHDW  022072R  	QSIZE = 000023   	TCBDDW  000151R     003	TO11DT= 174426
KL.LVB= ****** GX	LQSHWE  021556R  	Q.IOAE= 000012   	TCBFXF  000265R     003	TO11ER= 000002
KL.SPF= ****** GX	LQSHWO  022312RG 	Q.IOEF= 000006   	TCBGOD  000432R     003	TQBNFL  003363R     003
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 240-3
SYMBOL TABLE

TQBOOT  003246R     003	TXBOTH  004165R     003	$DLGIM  020344RG 	$OPLOG= ****** GX	$WRITE  011072RG
TQBWCF  003320R     003	TXCHLE  006070R     003	$DLGMB  020360RG 	$POWER  022540RG 	$WRITS  010666RG
TQCACH  003421R     003	TXCSFL  006120R     003	$DLGMF  020354RG 	$PURGE  010124RG 	$WRITW  010736RG
TQCCEN  003466R     003	TXPTS   004127R     003	$DLGMM  017556RG 	$RCRAM  011564RG 	$WRMRS  023022RG
TQEXIT  003532R     003	TYPNUM= ****** GX	$DLGMV  023662RG 	$RDERA= 000000   	$WTKL   031116RG
TQMCF0  003556R     003	T.TIL = 000040 G 	$DLGMX  023666RG 	$RDRAM  012474RG 	$XCDT   000206RG
TQMCF1  003635R     003	T.TOL = 000111 G 	$DLGPA  020410RG 	$READ   010474RG 	$ZERAC  000112RG
TQMNM0  003722R     003	UEDIT   000112R     002	$DLGRM  020700RG 	$READB  010420RG 	$$    = 000037
TQMPCA  003757R     003	UNASG1= 000032   	$DLGRV  023674RG 	$READC  010216RG 	$$APRI= 000000
TQRLMC  004172R     003	UNASG2= 000033   	$DLGXM  020350RG 	$READS  010254RG 	$$RDER= 000004
TQSABO  004712R     003	UNASG3= 000034   	$DLMB1  020364RG 	$READW  010324RG 	$$SBDI= 000004
TQSCAC  004564R     003	UNASG4= 000035   	$DLMB2  020372RG 	$RP04 = 000001   	$$$ARG= 000006
TQSCDH  004603R     003	UNASG5= 000036   	$DLWCF  016530RG 	$RSAVE  024204RG 	$$$OST= 000014
TQSCHN  004531R     003	UNASG6= 000037   	$DPOS   013074RG 	$RSTRT  022622RG 	$$$T1 = 000014
TQSDLG  004240R     003	WAIT1S  023430R  	$DPOST  013056RG 	$SBDIA= 000002   	.BRCLK= 005000
TQSEXT  004474R     003	WEP   = 000010   	$DSPPT  020040RG 	$SETCA  000356RG 	.BTADR  000516RG    004
TQSHRZ  004337R     003	W.10L = 000005   	$DSW  = ****** GX	$SETFN  007304RG 	.BTSW   000050RG    004
TQSHWP  004347R     003	XCONMP= ****** GX	$DTA  = 000001   	$SETIM  005056RG 	.CACHN  000065RG    004
TQSKSN  004301R     003	XCT   = 000256   	$DTE  = 000001   	$SETMM  005302RG 	.CASW   000043RG    004
TQSMCA  004402R     003	XCT71   023554RG 	$DTRWS  024132RG 	$START  023516RG 	.CECLK= 004000
TQSMDL  004324R     003	ZSTOP = 040000   	$DTRW1  024114RG 	$STRKL  030726RG 	.CFGTB  000134RG    004
TQSMMA  004745R     003	$ACRAM  012166RG 	$DTRW2  024122RG 	$SWEEP  006502RG 	.CFMRV  000234RG    004
TQSMMO  004435R     003	$ADRAM  012704RG 	$DTRW3  024142RG 	$TCRLF  027530RG 	.CKSW   000041RG    004
TQSPT   004064R     003	$APRID= 000000   	$ECHO   030004RG 	$TDB2C  026466RG 	.CLRMR= 006000
TQSWRN  004657R     003	$ASCIZ  024240RG 	$ECHO1  030020RG 	$TDB2I  025264RG 	.CLRUN= 010000
TROCT   026074R  	$BURST  031612RG 	$ENTER  007734RG 	$TDB2O  026450RG 	.COMEF= ****** GX
TRSCEF  005323R     003	$CD11 = 000001   	$ERROR  024012RG 	$TDI2B  025402RG 	.CONBT= 012000
TRSCES  005057R     003	$CFGBT  023714RG 	$EXAM   013224RG 	$TENST  024524RG 	.CPUSN= ****** GX
TRSDER  005211R     003	$CFGCA  023640RG 	$EXAMD  013214RG 	$TENS1  024532RG 	.CSDN   000030RG    004
TRSFCF  005267R     003	$CFGMM  020060RG 	$EXAMT  013176RG 	$TOP10= 000001   	.CSHRG= 164000
TRSFCS  005515R     003	$CFGRM  023626RG 	$EXBLD  030052RG 	$TRACK  024252RG 	.CTLTP  000072RG    004
TRSFHL  005400R     003	$CFGXX  020232RG 	$EXCT   030636RG 	$TRB2F  025044RG 	.DATE3= ****** GX
TRSHLT  005124R     003	$CFIMD  004232RG 	$EXIT   024022RG 	$TRB2I  025306RG 	.DBSW   000033RG    004
TRSPRF  005023R     003	$CFMMD  004200RG 	$EXIT1  024030RG 	$TRB2O  026500RG 	.DCSW   000031RG    004
TRSRSM  005252R     003	$CFXMD  006544RG 	$EXTEN  011242RG 	$TRB2R  026744RG 	.DESW   000042RG    004
TRSSEF  005444R     003	$CHKIM  005064RG 	$FATAL  024036RG 	$TRCRM  025512RG 	.DFBLK  000256RG    004
TRSTMO  005155R     003	$CHKMM  005310RG 	$FE   = 000001   	$TRDRM  025656RG 	.DFRBK  000264RG    004
TRTBTF  005635R     003	$CLLOG= ****** GX	$FILE   003036RG 	$TRF2B  025146RG 	.DFRG1  000272RG    004
TRTEND  005742R     003	$CLOSE  007056RG 	$F11  = 000001   	$TRI2B  025424RG 	.DFRG2  000274RG    004
TRTFME  005665R     003	$CONFG  005514RG 	$GETCA  014112RG 	$TRO2B  026562RG 	.DFRG3  000300RG    004
TRTMMF  005577R     003	$DBDTE= 000001   	$GETMM  014312RG 	$TRR2B  026636RG 	.DFSTA  000276RG    004
TSTBSM  005744R     003	$DDFRD  013440RG 	$GETPA  014562RG 	$TTBEL  027510RG 	.DFWBK  000256RG    004
TTA     002210R     002	$DDFWR  013552RG 	$GETTF  014706RG 	$TTDMS  027566RG 	.DLGSW  000024RG    004
TTB     002214R     002	$DDFXC  013754RG 	$INIT   015564RG 	$TTDWR  027700RG 	.DMSW   000032RG    004
TTBEL   006005R     003	$DELET  007214RG 	$IOERR  007346RG 	$TTMSG  027634RG 	.DREG   000272RG    004
TTILUN= 000001   	$DFPC   016134RG 	$KLMR   015232RG 	$TTRD   027130RG 	.DRLTC= 015000
TTJ     002224R     002	$DFRD   013444RG 	$KLSR   015504RG 	$TTSPC  027500RG 	.DRSW   000027RG    004
TTOLUN= 000002   	$DFWR   013556RG 	$LDAR   031176RG 	$TTTAB  027520RG 	.DSACF= 066000
TTP     002220R     002	$DFXC   013760RG 	$LDNGO  000000RG 	$TTWR   027714RG 	.DSIOJ= 065000
TTSLS   006004R     003	$DH11 = 000001   	$LGERR  000054RG    004	$WCRAM  011304RG 	.DTEDT  000302RG    004
TTSPC   006002R     003	$DLGBT  016334RG 	$LGOPN  000056RG    004	$WDD22  026124RG 	.EASW   000044RG    004
TTTAB   006003R     003	$DLGBV  023670RG 	$LOG    000052RG    004	$WDD36  026236RG 	.EIOJA= 067000
TTTNLN  006006R     003	$DLGCA  017066RG 	$LOOKU  007562RG 	$WDRAM  012314RG 	.ERRCD= ****** GX
TTTPR   000200R     002	$DLGCT  020320RG 	$LP20 = 000001   	$WRD22  026154RG 	.ERRPC= ****** GX
TTTPRE  006014R     003	$DLGCV  023634RG 	$MAPMM  006436RG 	$WRD36  026266RG 	.FEMOD= ****** GX
TTTPRP  006010R     003	$DLGEN  021170RG 	$MBPHS  031444RG 	$WRITB  011032RG 	.FILSW  000047RG    004
TXBIMM  006024R     003	$DLGEX  017422RG 	$MCBLD  001066RG 	$WRITC  010624RG 	.GFNR = 102000
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1113  03-APR-86 20:55  PAGE 240-4
SYMBOL TABLE

.HRDWR= ****** GX	.LDCK1= 046000   	.PCAB2= 151000   	.SSCLK= 002000   	.SYOSW  000533RG    004
.INICL= 070000   	.LDCK2= 047000   	.PCAB3= 152000   	.STPCL= 000000   	.SYOVB  001614RG    004
.IRLTC= 014000   	.LDDIS= 045000   	.PCAB4= 153000   	.STRCL= 001000   	.SYSTA  000526RG    004
.KLCPU= ****** GX	.LDRJD= 064000   	.PRDCT= ****** GX	.SYATT  002652RG    004	.TKTN = ****** GX
.KLFCF= ****** GX	.LDRJV= 063000   	.PTSEL  000524RG    004	.SYFID= 002620RG    004	.TPSHI  016270RG
.KLISV  000060RG    004	.LDRM1= 060000   	.PTSW   000034RG    004	.SYFNB  002620RG    004	.TRKLP  000040RG    004
.KLITK= ****** GX	.LDRM2= 061000   	.RCRM1= 147000   	.SYFNM= 002626RG    004	.TRKSW  000036RG    004
.KLIWD= ****** GX	.LDRM3= 062000   	.RCRM2= 146000   	.SYIBA  000536RG    004	.TRKTT  000037RG    004
.KLREG  000244RG    004	.LDSEL= 044000   	.RCRM3= 145000   	.SYIBC  000540RG    004	.TTIBF  000304RG    004
.LCRDL= 052000   	.MCA25  000035RG    004	.RCRM4= 144000   	.SYIBF  000566RG    004	.TTOBF  000344RG    004
.LCRDR= 051000   	.MCBFN  000456RG    004	.RCSPF= 141000   	.SYIFN  000542RG    004	.UFNSW  000026RG    004
.LCRM1= 057000   	.MCBSW  000025RG    004	.RDJ14= 134000   	.SYIRC  000534RG    004	.USRFN  000476RG    004
.LCRM2= 056000   	.MCSW   000051RG    004	.RDJ71= 135000   	.SYISW  000532RG    004	.WORK   000014RG    004
.LCRM3= 055000   	.MEMRS= 076000   	.RDMAB= 133000   	.SYIVB  000562RG    004	.WRITR= ****** GX
.LCRM4= 054000   	.MFCT   000046RG    004	.SECLK= 003000   	.SYOBA  001570RG    004	.WRMBX= 071000
.LCRM5= 053000   	.MFSW   000045RG    004	.SETMR= 007000   	.SYOBC  001572RG    004	.ZERO   000000RG    004
.LDAR = 077000   	.NCACH  000064RG    004	.SETRN= 011000   	.SYOBF  001620RG    004	..DSEV= ****** GX
.LDBRL= 043000   	.NOERR= ****** GX	.SNSAV  000062RG    004	.SYOFN  001574RG    004	..DTP2= ****** GX
.LDBRR= 042000   	.PCAB1= 150000   	.SPSAV  000022RG    004	.SYORC  001566RG    004	..DTSP= ****** GX

. ABS.	000000	   000
      	032004	   001
DATA  	002444	   002
TEXT  	006142	   003
GLBL  	002670	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  18265 WORDS  ( 72 PAGES)
DYNAMIC MEMORY:  19718 WORDS  ( 75 PAGES)
ELAPSED TIME:  00:06:39
,[50,20]KLIMON/CR/-SP=[50,30]KLIMON.TMP
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

AAX   	= 000020	#199-9527  
APR   	= 000000	 11-566    #55-1952    55-1974    55-1974   #58-2157   #199-9528   199-9543   199-9543  #228-10935 
                         228-10964  228-10964 
ATLST 	  002306 R	#223-10657  224-10743 
A.LULU	= 000002	#156-7000  #156-7002  #156-7005  #156-7008  #156-7010  #156-7012  
A.LUNA	= 000004	#156-7000  #156-7002  #156-7005  #156-7008  #156-7010  #156-7012  
A.LUNU	= 000006	#156-7000  #156-7002  #156-7005  #156-7008  #156-7010  #156-7012  
BAF0  	= ******  GX	 81-3718    81-3718    87-4055    87-4055   
BITTBL	= ******  GX	 78-3412    80-3647    81-3753    87-4059   
BIT0  	= 000001	#4-196     #8-472      178-8363   199-9534  
BIT1  	= 000002	#4-196     #8-472      199-9532  
BIT10 	= 002000	#4-196     #8-472     
BIT11 	= 004000	#4-196     #8-472     
BIT12 	= 010000	#4-196     #8-472     
BIT13 	= 020000	#4-196     #8-472     
BIT14 	= 040000	#4-196     #8-472     
BIT15 	= 100000	#4-196     #8-472      62-2344    78-3329    78-3392    80-3637    81-3738    84-3895    85-3959   
                         86-4011    91-4216    103-4722   105-4809   105-4811   121-5346   146-6393   154-6821   154-6822  
                         154-6829   154-6833   154-6834   173-7843  
BIT2  	= 000004	#4-196     #8-472      199-9530  
BIT3  	= 000010	#4-196     #8-472      199-9533  
BIT4  	= 000020	#4-196     #8-472      199-9527  
BIT5  	= 000040	#4-196     #8-472     
BIT6  	= 000100	#4-196     #8-472     
BIT7  	= 000200	#4-196     #8-472     
BIT8  	= 000400	#4-196     #8-472     
BIT9  	= 001000	#4-196     #8-472     
BLKI  	= 000000	 11-565     11-567    #58-2158   
BLKO  	= 000002	 11-563    #55-1953    55-1974    55-1974   #175-8121   175-8139   175-8139  
BMMSTB	  000236 RG	 85-3969    91-4249   #192-9082  
BPARER	= 000020	#4-196     #8-472     
BRCLK 	= 000005	#11-558    
BY$$0 	= 000000	#51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776   #51-1777    51-1777    51-1777   #51-1777    51-1777   #51-1778    51-1778   
                         51-1778   #51-1778    51-1778   #51-1779    51-1779    51-1779   #51-1779    51-1779   #55-1968   
                         55-1968    55-1968   #55-1968    55-1968   #55-1969    55-1969    55-1969   #55-1969    55-1969   
                        #55-1970    55-1970    55-1970   #55-1970    55-1970   #55-1971    55-1971    55-1971   #55-1971   
                         55-1971   #55-1972    55-1972    55-1972   #55-1972    55-1972   #55-1973    55-1973    55-1973   
                        #55-1973    55-1973   #55-1974    55-1974    55-1974   #55-1974    55-1974   #55-1975    55-1975   
                         55-1975   #55-1975    55-1975   #88-4106    88-4106    88-4106   #88-4106    88-4106   #88-4107   
                         88-4107    88-4107   #88-4107    88-4107   #123-5411   123-5411   123-5411  #123-5411   123-5411  
                        #123-5414   123-5414   123-5414  #123-5414   123-5414  #127-5655   127-5655   127-5655  #127-5655  
                         127-5655  #127-5656   127-5656   127-5656  #127-5656   127-5656  #131-5852   131-5852   131-5852  
                        #131-5852   131-5852  #131-5854   131-5854   131-5854  #131-5854   131-5854  #137-6091   137-6091  
                         137-6091  #137-6091   137-6091  #154-6839   154-6839   154-6839  #154-6839   154-6839   154-6839  
                        #154-6839   154-6839  #154-6848   154-6848   154-6848  #154-6848   154-6848  #154-6849   154-6849  
                         154-6849  #154-6849   154-6849   154-6849  #154-6849   154-6849  #154-6850   154-6850   154-6850  
                        #154-6850   154-6850  #175-8139   175-8139   175-8139  #175-8139   175-8139  #175-8148   175-8148  
                         175-8148  #175-8148   175-8148  #183-8590   183-8590   183-8590  #183-8590   183-8590   183-8590  
                        #183-8590   183-8590   183-8590  #183-8590   183-8590   183-8590  #183-8590   183-8590   183-8590  
                        #183-8590   183-8590   183-8590  #183-8590   183-8590  #183-8592   183-8592   183-8592  #183-8592  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         183-8592  #183-8593   183-8593   183-8593  #183-8593   183-8593   183-8593  #183-8593   183-8593  
                        #183-8594   183-8594   183-8594  #183-8594   183-8594   183-8594  #183-8594   183-8594  #183-8595  
                         183-8595   183-8595  #183-8595   183-8595   183-8595  #183-8595   183-8595  #183-8596   183-8596  
                         183-8596  #183-8596   183-8596   183-8596  #183-8596   183-8596   183-8596  #183-8596   183-8596  
                        #190-8913   190-8913   190-8913  #190-8913   190-8913   190-8913  #190-8913   190-8913  #190-8923  
                         190-8923   190-8923  #190-8923   190-8923  #199-9543   199-9543   199-9543  #199-9543   199-9543  
                         199-9543  #199-9543   199-9543   199-9543  #199-9543   199-9543   199-9543  #199-9543   199-9543  
                         199-9543  #199-9543   199-9543   199-9543  #199-9543   199-9543  #199-9544   199-9544   199-9544  
                        #199-9544   199-9544   199-9544  #199-9544   199-9544   199-9544  #199-9544   199-9544   199-9544  
                        #199-9544   199-9544   199-9544  #199-9544   199-9544  #199-9545   199-9545   199-9545  #199-9545  
                         199-9545  #199-9546   199-9546   199-9546  #199-9546   199-9546  #199-9550   199-9550   199-9550  
                        #199-9550   199-9550   199-9550  #199-9550   199-9550   199-9550  #199-9550   199-9550   199-9550  
                        #199-9550   199-9550   199-9550  #199-9550   199-9550   199-9550  #199-9550   199-9550  #199-9553  
                         199-9553   199-9553  #199-9553   199-9553  #199-9555   199-9555   199-9555  #199-9555   199-9555  
                        #199-9557   199-9557   199-9557  #199-9557   199-9557  #199-9560   199-9560   199-9560  #199-9560  
                         199-9560  #228-10964  228-10964  228-10964 #228-10964  228-10964  228-10964 #228-10964  228-10964 
                         228-10964 #228-10964  228-10964  228-10964 #228-10964  228-10964  228-10964 #228-10964  228-10964 
                        #232-11190  232-11190  232-11190 #232-11190  232-11190 #232-11192  232-11192  232-11192 #232-11192 
                         232-11192 #232-11194  232-11194  232-11194 #232-11194  232-11194 
BY$$1 	= 000000	#51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776   #51-1777    51-1777    51-1777   #51-1777    51-1777   #51-1778    51-1778   
                         51-1778   #51-1778    51-1778   #51-1779    51-1779    51-1779   #51-1779    51-1779   #55-1968   
                         55-1968    55-1968   #55-1968    55-1968   #55-1969    55-1969    55-1969   #55-1969    55-1969   
                        #55-1970    55-1970    55-1970   #55-1970    55-1970   #55-1971    55-1971    55-1971   #55-1971   
                         55-1971   #55-1972    55-1972    55-1972   #55-1972    55-1972   #55-1973    55-1973    55-1973   
                        #55-1973    55-1973   #55-1974    55-1974    55-1974   #55-1974    55-1974   #55-1975    55-1975   
                         55-1975   #55-1975    55-1975   #88-4106    88-4106    88-4106   #88-4106    88-4106   #88-4107   
                         88-4107    88-4107   #88-4107    88-4107   #123-5411   123-5411   123-5411  #123-5411   123-5411  
                        #123-5414   123-5414   123-5414  #123-5414   123-5414  #127-5655   127-5655   127-5655  #127-5655  
                         127-5655  #127-5656   127-5656   127-5656  #127-5656   127-5656  #131-5852   131-5852   131-5852  
                        #131-5852   131-5852  #131-5854   131-5854   131-5854  #131-5854   131-5854  #137-6091   137-6091  
                         137-6091  #137-6091   137-6091  #154-6839   154-6839   154-6839  #154-6839   154-6839   154-6839  
                        #154-6839   154-6839  #154-6848   154-6848   154-6848  #154-6848   154-6848  #154-6849   154-6849  
                         154-6849  #154-6849   154-6849   154-6849  #154-6849   154-6849  #154-6850   154-6850   154-6850  
                        #154-6850   154-6850  #175-8139   175-8139   175-8139  #175-8139   175-8139  #175-8148   175-8148  
                         175-8148  #175-8148   175-8148  #183-8590   183-8590   183-8590  #183-8590   183-8590   183-8590  
                        #183-8590   183-8590   183-8590  #183-8590   183-8590   183-8590  #183-8590   183-8590   183-8590  
                        #183-8590   183-8590   183-8590  #183-8590   183-8590  #183-8592   183-8592   183-8592  #183-8592  
                         183-8592  #183-8593   183-8593   183-8593  #183-8593   183-8593   183-8593  #183-8593   183-8593  
                        #183-8594   183-8594   183-8594  #183-8594   183-8594   183-8594  #183-8594   183-8594  #183-8595  
                         183-8595   183-8595  #183-8595   183-8595   183-8595  #183-8595   183-8595  #183-8596   183-8596  
                         183-8596  #183-8596   183-8596   183-8596  #183-8596   183-8596   183-8596  #183-8596   183-8596  
                        #190-8913   190-8913   190-8913  #190-8913   190-8913   190-8913  #190-8913   190-8913  #190-8923  
                         190-8923   190-8923  #190-8923   190-8923  #199-9543   199-9543   199-9543  #199-9543   199-9543  
                         199-9543  #199-9543   199-9543   199-9543  #199-9543   199-9543   199-9543  #199-9543   199-9543  
                         199-9543  #199-9543   199-9543   199-9543  #199-9543   199-9543  #199-9544   199-9544   199-9544  
                        #199-9544   199-9544   199-9544  #199-9544   199-9544   199-9544  #199-9544   199-9544   199-9544  
                        #199-9544   199-9544   199-9544  #199-9544   199-9544  #199-9545   199-9545   199-9545  #199-9545  
                         199-9545  #199-9546   199-9546   199-9546  #199-9546   199-9546  #199-9550   199-9550   199-9550  
                        #199-9550   199-9550   199-9550  #199-9550   199-9550   199-9550  #199-9550   199-9550   199-9550  
                        #199-9550   199-9550   199-9550  #199-9550   199-9550   199-9550  #199-9550   199-9550  #199-9553  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         199-9553   199-9553  #199-9553   199-9553  #199-9555   199-9555   199-9555  #199-9555   199-9555  
                        #199-9557   199-9557   199-9557  #199-9557   199-9557  #199-9560   199-9560   199-9560  #199-9560  
                         199-9560  #228-10964  228-10964  228-10964 #228-10964  228-10964  228-10964 #228-10964  228-10964 
                         228-10964 #228-10964  228-10964  228-10964 #228-10964  228-10964  228-10964 #228-10964  228-10964 
                        #232-11190  232-11190  232-11190 #232-11190  232-11190 #232-11192  232-11192  232-11192 #232-11192 
                         232-11192 #232-11194  232-11194  232-11194 #232-11194  232-11194 
BY$$2 	= 000000	#51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776   #51-1776    51-1776   #51-1776    51-1776   #51-1776    51-1776   #51-1776   
                         51-1776   #51-1776    51-1776   #51-1776    51-1776   #51-1777    51-1777   #51-1777    51-1777   
                        #51-1777    51-1777   #51-1778    51-1778   #51-1778    51-1778   #51-1779    51-1779    51-1779   
                        #51-1779    51-1779   #51-1779    51-1779   #55-1968    55-1968    55-1968   #55-1968    55-1968   
                        #55-1968    55-1968   #55-1969    55-1969   #55-1969    55-1969   #55-1969    55-1969   #55-1970   
                         55-1970   #55-1970    55-1970   #55-1970    55-1970   #55-1971    55-1971   #55-1971    55-1971   
                        #55-1971    55-1971   #55-1972    55-1972   #55-1972    55-1972   #55-1972    55-1972   #55-1973   
                         55-1973   #55-1973    55-1973   #55-1973    55-1973   #55-1974    55-1974   #55-1974    55-1974   
                        #55-1974    55-1974   #55-1975    55-1975   #55-1975    55-1975   #55-1975    55-1975   #88-4106   
                         88-4106   #88-4106    88-4106   #88-4106    88-4106   #88-4107    88-4107   #88-4107    88-4107   
                        #88-4107    88-4107   #123-5411   123-5411   123-5411  #123-5411   123-5411  #123-5411   123-5411  
                        #123-5414   123-5414   123-5414  #123-5414   123-5414  #123-5414   123-5414  #127-5655   127-5655  
                         127-5655  #127-5655   127-5655  #127-5655   127-5655  #127-5656   127-5656   127-5656  #127-5656  
                         127-5656  #127-5656   127-5656  #131-5852   131-5852  #131-5852   131-5852  #131-5854   131-5854  
                         131-5854  #131-5854   131-5854  #131-5854   131-5854  #137-6091   137-6091   137-6091  #137-6091  
                         137-6091  #137-6091   137-6091  #154-6839   154-6839   154-6839  #154-6839   154-6839  #154-6839  
                         154-6839  #154-6839   154-6839  #154-6848   154-6848   154-6848  #154-6848   154-6848  #154-6848  
                         154-6848  #154-6849   154-6849   154-6849  #154-6849   154-6849  #154-6849   154-6849  #154-6849  
                         154-6849  #154-6850   154-6850   154-6850  #154-6850   154-6850  #154-6850   154-6850  #175-8139  
                         175-8139  #175-8139   175-8139  #175-8139   175-8139  #175-8148   175-8148   175-8148  #175-8148  
                         175-8148  #175-8148   175-8148  #183-8590   183-8590  #183-8590   183-8590  #183-8590   183-8590  
                        #183-8590   183-8590  #183-8590   183-8590  #183-8590   183-8590  #183-8590   183-8590  #183-8590  
                         183-8590  #183-8592   183-8592   183-8592  #183-8592   183-8592  #183-8592   183-8592  #183-8593  
                         183-8593   183-8593  #183-8593   183-8593  #183-8593   183-8593  #183-8593   183-8593  #183-8594  
                         183-8594  #183-8594   183-8594  #183-8594   183-8594  #183-8595   183-8595  #183-8595   183-8595  
                        #183-8595   183-8595  #183-8596   183-8596  #183-8596   183-8596  #183-8596   183-8596  #183-8596  
                         183-8596  #190-8913   190-8913  #190-8913   190-8913  #190-8913   190-8913  #190-8913   190-8913  
                        #190-8923   190-8923   190-8923  #190-8923   190-8923  #190-8923   190-8923  #199-9543   199-9543  
                        #199-9543   199-9543  #199-9543   199-9543  #199-9543   199-9543  #199-9543   199-9543  #199-9543  
                         199-9543  #199-9543   199-9543  #199-9543   199-9543  #199-9544   199-9544  #199-9544   199-9544  
                        #199-9544   199-9544  #199-9544   199-9544  #199-9544   199-9544  #199-9544   199-9544  #199-9544  
                         199-9544  #199-9545   199-9545  #199-9545   199-9545  #199-9545   199-9545  #199-9546   199-9546  
                        #199-9546   199-9546  #199-9546   199-9546  #199-9550   199-9550  #199-9550   199-9550  #199-9550  
                         199-9550  #199-9550   199-9550  #199-9550   199-9550  #199-9550   199-9550  #199-9550   199-9550  
                        #199-9550   199-9550  #199-9553   199-9553   199-9553  #199-9553   199-9553   199-9553  #199-9553  
                         199-9553   199-9553  #199-9553   199-9553   199-9553  #199-9553   199-9553   199-9553  #199-9553  
                         199-9553   199-9553  #199-9553   199-9553  #199-9553   199-9553  #199-9555   199-9555   199-9555  
                        #199-9555   199-9555   199-9555  #199-9555   199-9555   199-9555  #199-9555   199-9555   199-9555  
                        #199-9555   199-9555   199-9555  #199-9555   199-9555   199-9555  #199-9555   199-9555  #199-9555  
                         199-9555  #199-9557   199-9557   199-9557  #199-9557   199-9557   199-9557  #199-9557   199-9557  
                         199-9557  #199-9557   199-9557   199-9557  #199-9557   199-9557   199-9557  #199-9557   199-9557  
                         199-9557  #199-9557   199-9557  #199-9557   199-9557  #199-9560   199-9560   199-9560  #199-9560  
                         199-9560  #199-9560   199-9560  #228-10964  228-10964 #228-10964  228-10964 #228-10964  228-10964 
                        #228-10964  228-10964 #228-10964  228-10964 #228-10964  228-10964 #228-10964  228-10964 #232-11190 
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         232-11190  232-11190 #232-11190  232-11190 #232-11190  232-11190 #232-11192  232-11192  232-11192 
                        #232-11192  232-11192 #232-11192  232-11192 #232-11194  232-11194  232-11194 #232-11194  232-11194 
                        #232-11194  232-11194 
BY$$3 	= 000000	#51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   #51-1776    51-1776    51-1776   
                        #51-1776    51-1776   #51-1777    51-1777   #51-1779    51-1779    51-1779   #51-1779    51-1779   
                        #55-1968    55-1968    55-1968   #55-1968    55-1968   #55-1969    55-1969   #55-1970    55-1970   
                        #55-1971    55-1971   #55-1972    55-1972   #55-1973    55-1973   #55-1974    55-1974   #55-1975   
                         55-1975   #88-4106    88-4106   #88-4107    88-4107   #123-5411   123-5411   123-5411  #123-5411  
                         123-5411  #123-5414   123-5414   123-5414  #123-5414   123-5414  #127-5655   127-5655   127-5655  
                        #127-5655   127-5655  #127-5656   127-5656   127-5656  #127-5656   127-5656  #131-5854   131-5854  
                         131-5854  #131-5854   131-5854  #137-6091   137-6091   137-6091  #137-6091   137-6091  #154-6839  
                         154-6839   154-6839  #154-6839   154-6839  #154-6848   154-6848   154-6848  #154-6848   154-6848  
                        #154-6849   154-6849   154-6849  #154-6849   154-6849  #154-6850   154-6850   154-6850  #154-6850  
                         154-6850  #175-8139   175-8139  #175-8148   175-8148   175-8148  #175-8148   175-8148  #183-8590  
                         183-8590  #183-8592   183-8592   183-8592  #183-8592   183-8592  #183-8593   183-8593   183-8593  
                        #183-8593   183-8593  #190-8913   190-8913  #190-8923   190-8923   190-8923  #190-8923   190-8923  
                        #199-9543   199-9543  #199-9544   199-9544  #199-9545   199-9545  #199-9546   199-9546  #199-9550  
                         199-9550  #199-9553   199-9553   199-9553  #199-9553   199-9553   199-9553  #199-9553   199-9553  
                         199-9553  #199-9553   199-9553   199-9553  #199-9553   199-9553   199-9553  #199-9553   199-9553  
                         199-9553  #199-9553   199-9553  #199-9555   199-9555   199-9555  #199-9555   199-9555   199-9555  
                        #199-9555   199-9555   199-9555  #199-9555   199-9555   199-9555  #199-9555   199-9555   199-9555  
                        #199-9555   199-9555   199-9555  #199-9555   199-9555  #199-9557   199-9557   199-9557  #199-9557  
                         199-9557   199-9557  #199-9557   199-9557   199-9557  #199-9557   199-9557   199-9557  #199-9557  
                         199-9557   199-9557  #199-9557   199-9557   199-9557  #199-9557   199-9557  #199-9560   199-9560  
                         199-9560  #199-9560   199-9560  #228-10964  228-10964 #232-11190  232-11190  232-11190 #232-11190 
                         232-11190 #232-11192  232-11192  232-11192 #232-11192  232-11192 #232-11194  232-11194  232-11194 
                        #232-11194  232-11194 
BY$$4 	= 000000	#51-1776    51-1776   #51-1776    51-1776   #51-1776    51-1776   #51-1776    51-1776   #51-1776   
                         51-1776   #51-1776    51-1776   #51-1776    51-1776   #51-1777    51-1777   #51-1779    51-1779   
                        #51-1779    51-1779   #55-1968    55-1968   #55-1968    55-1968   #55-1969    55-1969   #55-1970   
                         55-1970   #55-1971    55-1971   #55-1972    55-1972   #55-1973    55-1973   #55-1974    55-1974   
                        #55-1975    55-1975   #88-4106    88-4106   #88-4107    88-4107   #123-5411   123-5411  #123-5411  
                         123-5411  #123-5414   123-5414  #123-5414   123-5414  #127-5655   127-5655  #127-5655   127-5655  
                        #127-5656   127-5656  #127-5656   127-5656  #131-5854   131-5854  #131-5854   131-5854  #137-6091  
                         137-6091  #137-6091   137-6091  #154-6839   154-6839  #154-6839   154-6839  #154-6848   154-6848  
                        #154-6848   154-6848  #154-6849   154-6849  #154-6849   154-6849  #154-6850   154-6850  #154-6850  
                         154-6850  #175-8139   175-8139  #175-8148   175-8148  #175-8148   175-8148  #183-8590   183-8590  
                        #183-8592   183-8592  #183-8592   183-8592  #183-8593   183-8593  #183-8593   183-8593  #190-8913  
                         190-8913  #190-8923   190-8923  #190-8923   190-8923  #199-9543   199-9543  #199-9544   199-9544  
                        #199-9545   199-9545  #199-9546   199-9546  #199-9550   199-9550  #199-9553   199-9553  #199-9553  
                         199-9553  #199-9553   199-9553  #199-9553   199-9553  #199-9553   199-9553  #199-9553   199-9553  
                        #199-9553   199-9553  #199-9555   199-9555  #199-9555   199-9555  #199-9555   199-9555  #199-9555  
                         199-9555  #199-9555   199-9555  #199-9555   199-9555  #199-9555   199-9555  #199-9557   199-9557  
                        #199-9557   199-9557  #199-9557   199-9557  #199-9557   199-9557  #199-9557   199-9557  #199-9557  
                         199-9557  #199-9557   199-9557  #199-9560   199-9560  #199-9560   199-9560  #228-10964  228-10964 
                        #232-11190  232-11190 #232-11190  232-11190 #232-11192  232-11192 #232-11192  232-11192 #232-11194 
                         232-11194 #232-11194  232-11194 
CCA   	= 000014	#55-1954    55-1969    55-1969   #88-4098    88-4106    88-4106   #175-8120   175-8139   175-8139  
CCFAIL	= ******  GX	 172-7798   172-7806  
CDD   	= 000020	#4-196     #8-472     
CECLK 	= 000004	#11-555    
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CFGEXT	  006076 R	 83-3849    83-3849   #85-3948   
CFGINM	  001222 R	#82-3825    84-3934   
CFGINT	  005624 R	 83-3844    83-3844   #84-3873   
CFGMAC	  001441 R	#82-3831    86-3998   
CFGMNM	  001370 R	#82-3829    86-4036   
CFGMOS	  006234 R	 83-3855    83-3855   #86-3989   
CFGXMC	  004270 R	 78-3264   #78-3287   
CFGXNM	  001305 R	#82-3827    85-3972   
CFIMIL	  004702 R	 78-3437   #78-3459   
CFIMQ1	  000632 R	#77-3231    78-3281    78-3448   
CFIMQ2	  000752 R	#77-3235    78-3362   
CFIMQ3	  001024 R	#77-3237    78-3366   
CFIMQ4	  001051 R	#77-3239    78-3471   
CFMMQ1	  000707 R	#77-3233    78-3263    78-3451   
CFXMQ1	  001547 R	#90-4177    91-4198   
CFXMQ2	  001620 R	#90-4179    91-4227   
CHKIMC	  005070 R	 80-3592   #80-3603   
CHKMMC	  005314 R	 81-3692   #81-3705   
CHNPNT	= 000001	#4-196     #8-472     
CIMNXC	  001136 R	#79-3550    80-3611    81-3711   
CIMNXM	  001167 R	#79-3552    80-3656    81-3758   
CLRMR 	= 000006	#11-556    
CM    	= 000004	#199-9530   200-9640  
CNUPE 	= 000002	#4-196     #8-472     
CNVCHK	  015146 R	 151-6712   151-6712  #152-6756  
CNVWRD	  015154 R	 151-6690   151-6690   151-6697   151-6697   151-6703   151-6703  #152-6760  
COMCSE	  005552 RG	 78-3315    78-3444    78-3503    91-4209    91-4256    161-7324   162-7361   165-7497   166-7543  
                         168-7601   171-7721   174-7963   175-8028   176-8219  #190-8927  
CONBUT	= 000012	#11-560    
CONFGR	= ******  GX	*171-7753  *172-7790  
CONFIG	= ******  GX	 172-7827   172-7827  
CONO  	= 000004	#55-1955    55-1970    55-1970   #88-4099    88-4107    88-4107   #183-8577   183-8590   183-8590  
                        #199-9529   199-9543   199-9543   199-9544   199-9544   199-9545   199-9545   199-9550   199-9550  
                        #228-10936  228-10964  228-10964 
CONTI 	= ******  GX	 80-3618    80-3671   *80-3676    84-3905    86-3996   
CPUNUM	= 000002	#4-196     #8-472     
CR    	= 000015	#190-8899   199-9472  #223-10645  223-10670  226-10845 
CS.EXP	= 177670	#4-196     #8-472     
CTLS  	= 000040	#8-436      73-3112    146-6389   173-7839   192-9074   192-9078  
CXMDOL	  001504 R	#90-4175    91-4192   
CXMIBM	  001677 R	#90-4181    91-4252   
C.ACHE	= 000000	#3-186      55-1949    68-2735    70-2862    70-2940    70-2956    70-3002    74-3123    88-4095   
                         142-6261   164-7466   171-7724   175-8044   183-8589   187-8805   191-8966   191-8992   191-9023  
                         192-9045   195-9256   199-9548   200-9599   229-11014 
DACAB 	  000000 R	#51-1776   *52-1815    52-1818   *52-1820    52-1822   *53-1853    53-1854   
DACAD 	  000012 R	#51-1778    52-1825    53-1860   
DACBF 	  000015 R	#51-1779    54-1899   
DACBI 	  000005 R	#51-1777    52-1821    53-1855   
DATAI 	= 000001	#55-1956    55-1969    55-1969   #88-4100    88-4106    88-4106   
DATAO 	= 000003	#51-1770    51-1777    51-1777   #199-9531   199-9546   199-9546  
DBEFRC	= ******  GX	*171-7744  *172-7808  
DCAPGM	  000023 R	#55-1967    56-1999   
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 6

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DCARCA	  000040 R	#55-1970   
DCARFL	  000101 R	#55-1977    56-2021    56-2048    56-2050    56-2052    56-2054   
DCASIA	  000033 R	#55-1969   
DCAWRF	  000064 R	#55-1974    56-2004    56-2062   
DCBADR	  000134 R	#58-2170   *62-2341   *62-2344    62-2349    64-2428    64-2436    65-2512   *65-2535    65-2545   
                         65-2568   
DCBCBF	  000156 R	#58-2174    63-2382    64-2442    64-2473    64-2480    64-2486   
DCBCNT	  000152 R	#58-2172   *60-2249    62-2350   *64-2457   *65-2533   *66-2598    66-2599   
DCBDAT	  000136 R	#58-2171    60-2250   
DCBDBF	  000172 R	#58-2175    65-2519    65-2550    65-2556    65-2562   
DCBFIX	  000154 R	#58-2173   *64-2425    64-2455   *64-2458    64-2464   *64-2496   *65-2509    65-2531   *65-2534   
                         65-2540   *65-2572   
DCBFNM	  000114 R	#58-2166    60-2237   
DCFCFN	  000210 R	#68-2722    70-2874    70-2881   
DCFLFN	  000230 R	#68-2727    70-2996   
DCFRJT	  000250 R	#68-2732    68-2743    70-2896   
DCOMST	= 000001	#4-196     #8-472     
DCSRCA	  000273 R	#88-4107    89-4129   
DCSSIA	  000266 R	#88-4106    89-4126   
DDCDAI	  000300 R	#92-4301    93-4325   
DDCDAO	  000314 R	#92-4302    93-4341   
DDCWAT	  000334 R	 92-4302   #92-4303   
DDDDEL	  000402 R	#94-4389    98-4530   
DDDFNA	  000352 R	#94-4388    98-4526   
DDDRNA	  000420 R	#94-4390    98-4535   
DDLACR	  000506 R	#103-4722   104-4753  
DDLFNA	  000456 R	#103-4721   104-4749  
DDLGLN	  000450 R	#103-4720   104-4745  
DDLRAT	  000564 R	 103-4722  #103-4724  
DDLRNA	  000534 R	#103-4723   104-4765  
DDNACE	  000660 R	#105-4811   106-4845  
DDNCRE	  000604 R	#105-4809   106-4837  
DDNDEL	  000706 R	#105-4812   106-4859  
DDNENA	  000630 R	#105-4810   106-4841  
DDNGLN	  000576 R	#105-4808   106-4833  
DDNRAT	  000722 R	 105-4811  #105-4813  
DDPDAI	  000734 R	#107-4899   108-4916  
DDPDAO	  000764 R	#107-4901   108-4921  
DDPDEL	  000750 R	#107-4900   108-4920  
DDPRNA	  001000 R	#107-4902   108-4926  
DDXEXT	  001030 R	#121-5346   122-5359  
DEP   	= 010000	#4-196     #8-472     
DEX   	= 000400	#4-196     #8-472     
DEXDON	= 000004	#4-196     #8-472     
DEXWD1	= 174406	#4-196     #8-472     
DEXWD2	= 174404	#4-196     #8-472     
DEXWD3	= 174402	#4-196     #8-472     
DFCABF	  001103 R	#123-5414   126-5601  *126-5617  *126-5619  
DFCBF 	  001074 R	#123-5411   124-5438   124-5446  *124-5452   124-5453   124-5454  *124-5454  *124-5469  *124-5470  
                         124-5472  *124-5477  *124-5478  *124-5479  *124-5480  *124-5481   124-5482   125-5511   125-5515  
                         125-5516  *125-5535  *125-5536   125-5537   125-5561   125-5562   125-5566  
DFCFL2	  001101 R	#123-5412   125-5539  *125-5543  *125-5564  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 7

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DFCFL3	  001102 R	#123-5413   125-5557  *125-5559  *125-5563  
DFCRFL	  001054 R	#123-5402   125-5509  
DFCWFL	  001064 R	#123-5406   124-5471  
DFDABF	  001115 R	#127-5656   130-5782   130-5783   130-5806  
DFDDBF	  001110 R	#127-5655  *128-5709   128-5710   129-5736  
DFEAD 	  001146 R	 131-5850   131-5851  #131-5852   132-5891   133-5934   134-5950   134-5955  
DFEBF 	  001152 R	 131-5850   131-5851  #131-5854   132-5886   132-5891   133-5934   133-5937  
DFEDPB	  001122 R	#131-5850   132-5892  
DFEEXB	  001134 R	#131-5851   133-5933  
DFRRDB	  001160 R	#135-6013  *136-6038   136-6039   136-6040  
DFUNC 	= 000200	#4-196     #8-472     
DFWBF 	  001216 R	 137-6090  #137-6091  
DFWEDB	  001204 R	#137-6090   139-6145  
DFWWDB	  001172 R	#137-6089  *138-6117   138-6127   138-6128  
DFXXDB	  001224 R	#140-6191  *141-6223   141-6224   141-6225  
DF.DMG	= 000004	#4-196     #8-472     
DF.DMN	= 000007	#4-196     #8-472     
DF.DOR	= 000001	#4-196     #8-472     
DF.EHG	= 000010	#4-196     #8-472     
DF.EHM	= 000011	#4-196     #8-472     
DF.EMG	= 000005	#4-196     #8-472     
DF.EMN	= 000006	#4-196     #8-472     
DF.KLR	= 000012	#4-196     #8-472      135-6013  
DF.KLW	= 000013	#4-196     #8-472      137-6089  
DF.KLX	= 000014	#4-196     #8-472      140-6191  
DF.OFF	= 000002	#4-196     #8-472     
DF.ON 	= 000003	#4-196     #8-472     
DF.PDP	= 000016	#4-196     #8-472      131-5850  
DF.PEX	= 000015	#4-196     #8-472      131-5851   137-6090  
DGCFNM	  001236 R	#142-6265   143-6288  
DGMFNM	  001256 R	#145-6365   146-6397  
DGPFNM	  001276 R	#148-6496   149-6516  
DIAG1 	= 174430	#4-196     #8-472     
DIAG2 	= 174432	#4-196     #8-472     
DIAG3 	= 174436	#4-196     #8-472     
DIKL10	= 000010	#4-196     #8-472     
DLYCNT	= 174400	#4-196     #8-472     
DM    	= 000002	#199-9532   200-9640  
DMABM 	= ******  GX	*85-3983   
DMANXM	= ******  GX	 85-3969    91-4250   
DMA2TS	= ******  GX	 85-3963    91-4190   
DMA20 	= ******  GX	 83-3847    91-4188    173-7864  
DMRBF 	  001434 R	#154-6848   155-6886  
DMRKW2	  001446 R	 154-6819  #154-6850  
DMRMMR	  001414 R	 154-6837  #154-6839  
DMRMOS	  001441 R	#154-6849   155-6913  
DMRMRT	  001322 R	#154-6820   155-6878  
DMRSRL	= 000005	#154-6847   155-6925  
DMRSRT	  001422 R	#154-6842   154-6847   155-6926  
DNIBOO	  002354 R	#228-10945  229-11041 *229-11042  229-11043 *229-11044  229-11045 
DNILPO	  001474 R	#156-7004   157-7050  
DNISYF	  001524 RG	#156-7011   157-7059   231-11153 
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 8

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DNISYI	  001504 RG	#156-7007   157-7055   231-11151 
DNISYO	  001514 RG	#156-7009   157-7057   231-11152 
DNITTI	  001454 R	#156-6999   157-7045  
DNITTO	  001464 R	#156-7001   157-7047  
DON10C	= 040000	#4-196     #8-472      155-6874  
DON10S	= 100000	#4-196     #8-472     
DON11C	= 000100	#4-196     #8-472      155-6874  
DON11S	= 000200	#4-196     #8-472     
DPS4  	= 040000	#4-196     #8-472     
DQBFNM	  001534 RG	 62-2291   #160-7257   163-7384  
DQSAPR	  001670 R	#175-8147   179-8406   179-8409   179-8412   179-8416  
DQSCBF	  001640 R	#175-8143   181-8479   181-8501  
DQSCF3	  001654 R	#175-8145   181-8483  
DQSCSW	  001620 R	#175-8138   182-8525  
DQSHWT	  001676 R	#175-8150   178-8364  
DQSMKT	  001626 R	#175-8141   182-8536  
DQSP0 	  001554 RG	 174-7925  #175-8132  
DQSP01	  001604 RG	 174-7939  #175-8136  
DQSP1 	  001570 RG	 174-7928  #175-8134  
DRESET	= 000100	#4-196     #8-472      155-6871  
DRSCEN	  001714 R	#183-8590   187-8811  
DRSDBL	  001712 RG	#183-8588  *184-8636  *185-8666   185-8682  *186-8754   186-8770  
DRSFCR	  001736 R	#183-8595   186-8756  
DRSPEN	  001726 R	#183-8593   187-8818  
DRSPFR	  001733 R	#183-8594   184-8638  
DRSPLD	  001721 R	#183-8592   187-8815  
DRSSCR	  001741 R	#183-8596   185-8668  
DRTBF 	  002110 R	#190-8922   199-9448   199-9459  
DRTBUF	  002000 R	 190-8917  #190-8920   199-9431   199-9437   199-9474  
DRTDTE	  024150 R	 196-9357   196-9361   196-9365  #196-9369  
DRTSTA	  001774 R	 190-8917  #190-8918  
DRTWLB	  001752 R	#190-8916  *199-9475  *199-9478   199-9479  *199-9482   199-9483  
DRTX71	  001744 R	#190-8912   195-9235  
DR.DTE	= 000011	#4-196     #8-472      131-5850   131-5851   135-6013   137-6089   137-6090   140-6191  
DSEND 	= 000004	#4-196     #8-472     
DSTBF 	  002166 R	#199-9559   200-9635  
DSTCEN	  002142 R	#199-9549  
DSTRT 	  002116 R	#199-9542   199-9547   200-9593  
DSTRTL	= 000004	#199-9547   200-9592  
DST1B0	  002147 R	#199-9552   200-9615  
DST1B1	  002154 R	#199-9554   200-9629  
DST3B1	  002161 R	#199-9556   200-9619  
DS04  	= 004000	#4-196     #8-472      185-8677   186-8765  
DS05  	= 002000	#4-196     #8-472      234-11279 
DS06  	= 001000	#4-196     #8-472      134-5972   185-8680   186-8768   234-11273  235-11310  237-11372 
DTECMD	= 000451	#4-196     #8-472     
DTEFLG	= 000444	#4-196     #8-472     
DTEF11	= 000450	#4-196     #8-472     
DTEMTD	= 000455	#4-196     #8-472     
DTEMTI	= 000456	#4-196     #8-472     
DTLST 	  002322 R	#223-10658  224-10752 
DTNRB 	  002236 R	#211-10149  216-10308 
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 9

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DTNXP 	  002230 R	#211-10148 
DTTRLB	  002244 R	#223-10655  224-10702 
DTTSTA	  002336 R	 223-10655  223-10656 #223-10659  224-10703  224-10704  228-10897 
DTTWLB	  002264 R	#223-10656  224-10693  224-10694 *224-10696 *224-10697  224-10698 *224-10712 *224-10713  224-10714 
                        *224-10745 *224-10746 *226-10849 *226-10850 *227-10865 *227-10866  227-10867  227-10874  227-10875 
                        *228-10896 *228-10897 *228-10901  228-10902 *228-10903 
DUPE  	= 000020	#4-196     #8-472     
DURE  	= 000004	#4-196     #8-472     
DXBADR	  002404 R	#228-10959  229-11028 
DXBCNM	  002416 R	#228-10963  229-11031 
DXBDAT	  002410 R	#228-10961  229-11027 
DXBFNM	  002364 R	#228-10954  229-11017 
DXBLOC	  002400 R	#228-10958 *229-11047 *229-11051 *231-11149 *231-11150 
DXCAD 	  002424 R	#232-11189  234-11252  234-11257 
DXCBF 	  002431 R	#232-11191  238-11417 
DXCBRC	  002436 R	#232-11193  239-11470 
DXWRD1	= 002000	#4-196     #8-472     
D$$H11	= 000010	#1-44      
D1011 	= 000040	#4-196     #8-472     
EBSEL 	= 000100	#4-196     #8-472     
EBUSPC	= 000020	#4-196     #8-472     
EBUSPS	= 000004	#4-196     #8-472     
EDONES	= 040000	#4-196     #8-472     
ED.PHY	= 000200	#8-428      131-5850   131-5851   137-6090  
EF.CRI	= ******  GX	 157-7092  
EF.PR1	= ******  GX	 157-7084  
EPTR  	= 000000	#4-196     #8-472     
ERRORX	  020314 R	 172-7784   172-7824  #172-7832  
ERR10C	= 010000	#4-196     #8-472      155-6874  
ERR10S	= 020000	#4-196     #8-472     
ERR11C	= 000001	#4-196     #8-472      155-6874  
ERR11S	= 000002	#4-196     #8-472     
E.FFIL	= 000006	#8-427     
FITMEM	= ******  GX	 172-7817   172-7817  
FM    	= 000010	#199-9533   200-9640  
FMRECN	= ******  GX	*172-7769  *172-7788  
FORPRO	= 000020	#4-196     #8-472     
FS    	= 000001	#199-9534  
FTKLI 	= 000001	#3-190     
F.TRCK	= 000001	#3-188      124-5432   125-5501   126-5598   128-5674   129-5727   130-5781   132-5891   133-5934  
                         136-6040   138-6128   141-6224   155-6867   155-6924   156-7003   157-7049   190-8915   191-8980  
                         198-9412   223-10661  224-10681  224-10692  224-10699  224-10709  224-10715  224-10723  227-10868 
                         228-10883  233-11219  234-11251  235-11304  237-11357 
GAPCNT	= ******  GX	 172-7819  
GAPTAB	= ******  GX	 172-7821  
G.LUBA	= 000004	#103-4720  #105-4808  
G.LULU	= 000002	#103-4720  #105-4808  
G.LUNA	= 000000	 103-4720   105-4808  
HDTAB 	  002200 R	#207-9943   209-10062 
HIBYTE	= 177400	#4-196     #8-472     
HLTNOE	  022266 R	 176-8273   176-8273   178-8325   178-8325  #180-8450  
HRR   	= 000540	#55-1957    55-1972    55-1972   
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 10

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

H.KCAC	= ******  GX	 179-8422  
H.KEXT	= ******  GX	 179-8438  
H.KMOS	= ******  GX	 179-8432  
H.KPWR	= ******  GX	 178-8355   178-8366  
H.KUDF	= ******  GX	 179-8427  
IE.DFU	= ******  GX	 101-4639  
IE.EBX	= ******  GX	 139-6147  
IE.EOF	= ******  GX	 120-5301   224-10706 
IE.NSF	= ******  GX	 60-2256    70-2877    101-4635   104-4762   104-4766   143-6291   146-6400   149-6519   151-6633  
                         163-7387   229-11039 
IE.UPN	= ******  GX	 188-8837  
IFLOP 	= 100000	#4-196     #8-472     
INIDMA	= ******  GX	 85-3954   
INTMOD	= ******  GX	*84-3923   
INTROF	= 000010	#4-196     #8-472     
INTRON	= 000040	#4-196     #8-472     
INTSON	= 000001	#4-196     #8-472     
INT10S	= 000400	#4-196     #8-472     
INT11C	= 002000	#4-196     #8-472      155-6874  
INT11S	= 004000	#4-196     #8-472     
IO.ACE	= ******  GX	 105-4811  
IO.ACR	= ******  GX	 103-4722  
IO.ATT	= ******  GX	 223-10657 
IO.CRE	= ******  GX	 105-4809  
IO.DAC	= ******  GX	 92-4301    92-4302    107-4899   107-4901  
IO.DEL	= ******  GX	 94-4389    105-4812   107-4900  
IO.DET	= ******  GX	 223-10658 
IO.ENA	= ******  GX	 105-4810  
IO.EXT	= ******  GX	 121-5346  
IO.FNA	= ******  GX	 94-4388    103-4721   157-7068  
IO.RLB	= ******  GX	 223-10655 
IO.RNA	= ******  GX	 94-4390    103-4723   107-4902  
IO.RVB	= ******  GX	 114-5104  
IO.WLB	= ******  GX	 190-8917   223-10656 
IO.WVB	= ******  GX	 120-5291  
IS.CR 	= ******  GX	 224-10720 
IS.ESC	= ******  GX	 224-10718 
I.10L 	= 000005	#6-322      199-9547   200-9597  
JCOMM 	  002174 R	#207-9941  *209-10054  209-10073 
JRST  	= 000254	#55-1958    55-1975    55-1975   
JUMPE 	= 000322	#55-1959    55-1971    55-1971   
KEEPBB	= ******  GX	*171-7691  
KLI$$E	= 000050	#2-154      156-7021  
KLI$$F	= 000101	#3-179      58-2124    77-3195    79-3510    82-3788    90-4140    144-6332   150-6562   156-6937  
                         156-7021   167-7550   169-7632   183-8544   189-8854   199-9489  
KLI$$K	= 000126	#2-157      156-7021  
KLI$$V	= 000015	#2-153      156-7021  
KLPWRF	= 000010	#4-196     #8-472     
KL.ABO	= ******  GX	 195-9226  
KL.CFL	= ******  GX	 165-7503   171-7757  
KL.CFM	= ******  GX	 171-7739  
KL.DEF	= ******  GX	 175-8038  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 11

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

KL.KAC	= ******  GX	 157-7053   195-9232   237-11375 
KL.LCA	= ******  GX	 165-7500  
KL.LRM	= ******  GX	 175-8036   176-8233  
KL.LVB	= ******  GX	 163-7391   172-7804   229-11011 
KL.SPF	= ******  GX	 168-7611   171-7689   172-7803   175-8038  
KL.SSC	= ******  GX	 168-7614  
KL.VBD	= ******  GX	 172-7803   200-9613   200-9623  
KL.VBN	= ******  GX	 172-7804   200-9611  
KS.FCF	= ******  GX	 186-8779  
LCARPT	  000754 R	 56-2087   #57-2096   
LCBCRM	  001630 R	 62-2346   #64-2425   
LCBDRM	  002172 R	 62-2343   #65-2509    65-2537   
LCBFL 	  002636 R	 60-2259    62-2359    64-2498    65-2574   #66-2631   
LCBRC 	  001372 R	 60-2253   #62-2339    64-2462    65-2538   
LCBRME	  002516 R	 64-2471    64-2471    65-2547    65-2547   #66-2588   
LCBVFY	  002572 R	 64-2476    64-2476    64-2479    64-2479    64-2489    64-2489    65-2552    65-2552    65-2555   
                         65-2555    65-2565    65-2565   #66-2614   
LCBVR 	  002674 R	 62-2358   #67-2645   
LCB3W 	  001216 R	#61-2272    65-2510    65-2510   
LCB6W 	  001224 R	#61-2274    64-2437    64-2437   
LCFCPY	  003204 R	 70-2894   #70-2907    70-2929    70-2937    70-2946    70-3024   
LCFERR	  003502 R	 70-2878    70-2883   #70-3017   
LCFNXT	  003152 R	#70-2889    70-2917    70-2954   
LCFPRG	  003476 R	 70-2891    70-2911    70-2914    70-2919    70-2921    70-2953    70-2964    70-2973    70-2978   
                         70-2983    70-2988    70-2991    70-2993   #70-3015   
LCFRBF	  003256 R	 68-2740   #70-2927   
LCFRCA	  003276 R	 68-2736   #70-2944   
LCFREF	  003314 R	 68-2733    70-2885   #70-2960   
LCFRMC	  003516 R	 68-2741   #70-3022   
LCFRMM	  003176 R	 68-2734   #70-2901   
LCFRPA	  003266 R	 68-2742   #70-2935   
LCFRTN	  003474 R	 70-2857    70-2871   #70-3010   
LCFSKP	  003304 R	 70-2903    70-2930    70-2938   #70-2951    70-3025   
LCFWBF	  003526 R	 70-2977    70-2977   #71-3037   
LCFWCA	  003772 R	 70-2963    70-2963   #74-3125   
LCFWEF	  003642 R	 70-2990    70-2990   #72-3072   
LCFWMC	  004060 R	 70-2982    70-2982   #75-3155   
LCFWMM	  003664 R	 70-2972    70-2972   #73-3088   
LCFWPA	  004142 R	 70-2987    70-2987   #76-3181   
LDAR  	= 000077	#11-561    
LDEIDV	  007536 R	 101-4661   101-4661  #102-4678  
LDRER 	  010460 R	 110-4987   112-5043   113-5069  #113-5081  
LDWER 	  010722 R	 116-5174   117-5200  #117-5211   118-5237   119-5264  
LF    	= 000012	#190-8900   199-9473  #223-10646  223-10670  226-10846 
LFCSAB	  012274 R	 126-5602   126-5602   126-5610   126-5610  #126-5616  
LFDWFN	  012460 R	 128-5694   128-5704   128-5704  #128-5709  
LFECKN	  013354 R	 132-5884   132-5884   133-5931   133-5931  #134-5962  
LFEMVA	  013330 R	 132-5883   132-5883   133-5930   133-5930  #134-5950  
LFWCKF	  013676 R	 138-6114   138-6114  #139-6141  
LMRDFN	  015430 R	 155-6883   155-6883   155-6896   155-6896  #155-6902  
LOAD11	= 000004	#4-196     #8-472     
LOGLUN	= 000006	#8-435     
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 12

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

LPOLUN	= 000003	#8-431      156-7005   190-8917   199-9478   223-10657  223-10658  228-10901 
LQBRBF	  016656 RG	 161-7301   161-7301  #163-7382   176-8272   176-8272  
LQCCM 	  017244 R	 165-7492  #166-7510   166-7544  
LQMRFN	  001246 R	 60-2234    60-2234   #62-2290   
LQRBPS	  021144 R	 175-8050   175-8050  #175-8068   175-8071  
LQSBPS	  021532 R	 176-8259   176-8259  #177-8306   177-8310  
LQSCHE	  022052 R	 176-8277   176-8277   178-8328   178-8330  #178-8392  
LQSCHO	  022026 R	 176-8281   176-8281   178-8334  #178-8383  
LQSCSW	  022434 R	 176-8235   176-8235   176-8274   176-8274  #182-8522  
LQSHDW	  022072 R	 176-8275   176-8275   178-8329   178-8329  #179-8405  
LQSHWE	  021556 R	 176-8240   176-8240  #178-8325  
LQSHWO	  022312 RG	 174-7944   174-7944   179-8407   179-8407  #181-8475  
LRSTKL	  023332 R	 184-8637   184-8637   185-8667   185-8667   186-8755   186-8755  #187-8804  
LTNCHR	  026434 R	 214-10256  214-10256  215-10283  215-10283  215-10290  215-10290 #216-10346 
LTNMV 	  026374 R	 214-10250  214-10250  215-10278  215-10278 #216-10307 
LTNROL	  026420 R	 214-10254  214-10254  215-10281  215-10281  215-10288  215-10288 #216-10326  216-10330 
LTTDIR	  027724 R	 226-10851 #227-10867 
LXBRC 	  030274 R	 229-11033 #230-11076  231-11143 
LXB5B 	  030252 R	#229-11061  231-11133  231-11133 
L$$P20	= 000002	#1-38      
MABRD 	= ******  GX	*84-3927   
MAJVER	  000106 R	#58-2163   *63-2409    67-2656   
MA20  	= ******  GX	 78-3273    83-3839    173-7867  
MBINI 	= ******  GX	 171-7688   171-7688  
MB20  	= ******  GX	 78-3275    83-3841    173-7869  
MF20  	= ******  GX	 78-3258    83-3853    172-7796  
MPE11 	= 001000	#4-196     #8-472     
MXTYP 	= 000005	#68-2717    68-2743    70-2893   
M.KTAE	= 000010	#175-8142  
M.KTEF	= 000002	#175-8142  
M.KTMG	= 000004	#175-8142  
M.KTUN	= 000006	#175-8142  
NULSTP	= 000040	#4-196     #8-472     
NUPE  	= 000002	#4-196     #8-472     
PAG   	= 000010	#51-1771    51-1777    51-1777   #55-1960    55-1970    55-1970   #88-4101    88-4107    88-4107   
                        #183-8578   183-8590   183-8590  #199-9535   199-9545   199-9545   199-9546   199-9546   199-9550  
                         199-9550  
PAGE  	= 001000	#228-10937  228-10938 
PCERRM	  003225 R	#157-7130   158-7189  
PERCLR	= 001000	#4-196     #8-472      155-6874  
PGBTS 	= 000777	#228-10938  230-11090  231-11116  231-11120 
PHYS  	= 100000	#4-196     #8-472     
PI    	= 000004	 11-564     11-568    #199-9536   199-9544   199-9544  
PIDENT	= 000000	#4-196     #8-472     
PRI7  	= 000340	#4-196     #8-472     
PROPNT	= 000021	#4-196     #8-472     
PRTOFF	= 004000	#4-196     #8-472     
PR0   	= 000000	#4-196     #8-472     
PR1   	= 000040	#4-196     #8-472     
PR2   	= 000100	#4-196     #8-472     
PR3   	= 000140	#4-196     #8-472     
PR4   	= 000200	#4-196     #8-472     
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 13

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PR5   	= 000240	#4-196     #8-472     
PR6   	= 000300	#4-196     #8-472     
PR7   	= 000340	#4-196     #8-472     
PS    	= 177776	#4-196     #8-472     
PSWW1 	= 000005	#4-196     #8-472     
PSWW10	= 000014	#4-196     #8-472     
PSWW11	= 000015	#4-196     #8-472     
PSWW12	= 000016	#4-196     #8-472     
PSWW13	= 000017	#4-196     #8-472     
PSWW2 	= 000006	#4-196     #8-472     
PSWW3 	= 000007	#4-196     #8-472     
PSWW4 	= 000010	#4-196     #8-472     
PSWW5 	= 000011	#4-196     #8-472     
PSWW6 	= 000012	#4-196     #8-472     
PSWW7 	= 000013	#4-196     #8-472     
PULSE 	= 000020	#4-196     #8-472     
QSIZE 	= 000023	#4-196     #8-472     
Q.IOAE	= 000012	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        #223-10655 #223-10656 #223-10657 #223-10658 
Q.IOEF	= 000006	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        #223-10655 #223-10656 #223-10657 #223-10658 
Q.IOFN	= 000002	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        #223-10655 #223-10656 #223-10657 #223-10658 
Q.IOLU	= 000004	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        *199-9478  *199-9482  #223-10655 #223-10656 #223-10657 #223-10658 *228-10901 *228-10903 
Q.IOPL	= 000014	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        *199-9475  #223-10655 #223-10656 #223-10657 #223-10658  224-10693  224-10694 *224-10696 *224-10697 
                        *224-10712 *224-10713 *224-10745 *224-10746 *226-10849 *226-10850 *227-10865 *227-10866  227-10874 
                         227-10875 *228-10896 *228-10897 
Q.IOPR	= 000007	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        #223-10655 #223-10656 #223-10657 #223-10658 
Q.IOSB	= 000010	#92-4301   #92-4302   #94-4388   #94-4389   #94-4390   #103-4721  #103-4722  #103-4723  #105-4809  
                        #105-4810  #105-4811  #105-4812  #107-4899  #107-4900  #107-4901  #107-4902  #121-5346  #190-8917  
                        #223-10655 #223-10656 #223-10657 #223-10658 
RAMIS0	= 010000	#4-196     #8-472     
RDATIM	  014706 RG	#151-6623  
RDDONE	= ******  GX	*84-3928   
RDMCV 	  001502 R	 62-2347    62-2347   #63-2381   
REDOSY	  030600 R	 229-11035  229-11035  230-11108  230-11108  231-11145  231-11145 #231-11148 
REPCON	= ******  GX	 172-7771   172-7771  
REPFIT	= ******  GX	 172-7818   172-7818  
RESDET	= ******  GX	 172-7770   172-7770   172-7791   172-7791   172-7809   172-7809   172-7816   172-7816  
RFMAD0	= 100000	#4-196     #8-472     
RFMAD1	= 040000	#4-196     #8-472     
RFMAD2	= 020000	#4-196     #8-472     
RFMAD3	= 010000	#4-196     #8-472     
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 14

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

RM    	= 000010	#4-196     #8-472     
RTFERR	  015126 R	 151-6664   151-6678  #152-6729   152-6766  
RTFERX	  015136 R	 151-6671   151-6717  #152-6734  
RTFXIT	  015142 R	 151-6636   151-6691   151-6698   151-6704   151-6713  #152-6736  
R$$11D	= 000001	#1-47      
SAVLEN	  002352 R	#223-10663 *224-10694  224-10746 
SAVMSG	  002350 R	#223-10662 *224-10693  224-10745 
SCD   	= 000040	#4-196     #8-472     
SECLK 	= 000003	#11-554    
SETIMF	  000264 R	#79-3545   *80-3591   *80-3599    80-3638    80-3674   
SETMMF	  000265 R	#79-3547   *81-3691   *81-3698    81-3739    81-3769   
SETMR 	= 000007	#11-557    
SETRUN	= 000011	#11-559    
SETZ  	= 000400	#55-1961    55-1973    55-1973   
SPC   	= 000040	#190-8901   199-9436  
SSCLK 	= 000002	#11-553    
STAT  	= 174434	#4-196     #8-472     
STATUS	= 000022	#4-196     #8-472     
STPCLK	= 000000	#11-551    
STPKL 	  031232 R	 236-11333  236-11333 #237-11356 
STRCLK	= 000001	#11-552    
SUBVER	  000110 R	#58-2164   *63-2405    67-2663   
SWITCH	  002176 R	#207-9942  *209-10055  209-10087 *209-10089 
SWR   	= 177570	#4-196     #8-472     
SWSLLT	= 100000	#4-196     #8-472     
SYFLUN	= 000006	#8-434      94-4388    94-4389    94-4390    103-4721   103-4723   105-4809   105-4810   107-4902  
                         156-7012  
SYILUN	= 000004	#8-432      92-4301    103-4720   103-4722   107-4899   114-5104   156-7008   157-7068   228-10946 
SYOLUN	= 000005	#8-433      92-4302    105-4808   105-4811   105-4812   107-4900   107-4901   120-5291   121-5346  
                         156-7010  
S.YIL 	= 001000  G	 114-5104  #194-9158   194-9164   194-9172   194-9180  
S.YOL 	= 001000  G	 106-4853   117-5202   120-5291   120-5298  #194-9174   194-9188  
TAB   	= 000011	#190-8902   199-9433  
TCAACD	  000077 R	#55-1983    57-2096   
TCAACE	  000026 R	#55-1981    57-2099   
TCACEF	  000000 R	#55-1980    56-2088   
TCASCE	  000051 R	#55-1982    57-2102   
TCBBAD	  000424 R	#58-2190    64-2474    65-2551   
TCBDCW	  000117 R	#58-2183    64-2470   
TCBDDW	  000151 R	#58-2184    65-2546   
TCBFXF	  000265 R	#58-2187    64-2466    65-2542   
TCBGOD	  000432 R	#58-2191    64-2478    65-2554   
TCBMLF	  000203 R	#58-2185    66-2632   
TCBMRE	  000446 R	#58-2193    60-2236   
TCBMVF	  000233 R	#58-2186    66-2635   
TCBMVL	  000314 R	#58-2188    67-2647   
TCBMVV	  000357 R	#58-2189    67-2649   
TCBXOR	  000440 R	#58-2192    64-2487    65-2563   
TCFCFA	  000536 R	#68-2747    70-2999   
TCFCFE	  000571 R	#68-2749    70-3018   
TDEDFU	  002154 R	#100-4610   101-4637  
TDEDR 	  001722 R	#100-4607   101-4628  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 15

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TDEIO 	  002014 R	#100-4608   101-4641  
TDENSF	  002100 R	#100-4609   101-4633  
TDRRDE	  002201 R	#109-4965   114-5113  
TDRRLE	  002216 R	#109-4967   113-5082  
TDWRLE	  002270 R	#115-5155   117-5212  
TDWWRE	  002252 R	#115-5153   120-5307  
TENAD1	= 174410	#4-196     #8-472     
TENAD2	= 174412	#4-196     #8-472     
TFEDFL	  002325 R	#131-5857   132-5894  
TFEEFL	  002346 R	#131-5858   133-5942  
TFREMS	  002367 R	#135-6016   136-6051  
TFWEMS	  002410 R	#137-6094   138-6130  
TFXEMS	  002432 R	#140-6194   141-6228  
TGCNFL	  002456 R	#142-6270   143-6293  
TGMNFL	  002525 R	#145-6371   146-6402  
TGPNFL	  002575 R	#148-6502   149-6521  
TGTCKE	  002607 R	#150-6595   151-6716  
TGTIFF	  002677 R	#150-6599   151-6670  
TGTNFL	  002651 R	#150-6597   151-6635  
TGTRFE	  002741 R	#150-6601   152-6730  
TMFLNM	= ******  GX	 151-6625  
TMPLOG	  002342 R	#223-10660 
TMRMFL	  002777 R	#154-6853   155-6898  
TNINDV	  003025 R	#156-7014   157-7062  
TNIN55	  003052 R	#156-7016   157-7073  
TNIPRI	  003110 R	#156-7018   157-7088  
TNIVER	  003174 R	#156-7020   157-7095  
TOBM  	= 000004	#4-196     #8-472     
TOIP  	= 000002	#4-196     #8-472     
TOIT  	= 000001	#4-196     #8-472     
TO10  	= 000200	#4-196     #8-472     
TO10AD	= 174420	#4-196     #8-472     
TO10BC	= 174414	#4-196     #8-472     
TO10BM	= 000001	#4-196     #8-472     
TO10DB	= 000400	#4-196     #8-472     
TO10DN	= 100000	#4-196     #8-472     
TO10DT	= 174424	#4-196     #8-472     
TO10ER	= 020000	#4-196     #8-472     
TO11  	= 000100	#4-196     #8-472     
TO11AD	= 174422	#4-196     #8-472     
TO11BC	= 174416	#4-196     #8-472     
TO11BM	= 020000	#4-196     #8-472     
TO11DB	= 004000	#4-196     #8-472     
TO11DN	= 000200	#4-196     #8-472     
TO11DT	= 174426	#4-196     #8-472     
TO11ER	= 000002	#4-196     #8-472     
TQBNFL	  003363 R	#160-7254   163-7394  
TQBOOT	  003246 R	#160-7250   161-7285  
TQBWCF	  003320 R	#160-7252   162-7350  
TQCACH	  003421 R	#164-7470   165-7482  
TQCCEN	  003466 R	#164-7471   166-7510  
TQEXIT	  003532 R	#167-7579   168-7590  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 16

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TQMCF0	  003556 R	#170-7673   171-7697  
TQMCF1	  003635 R	#170-7675   171-7700  
TQMNM0	  003722 R	#170-7677   172-7823  
TQMPCA	  003757 R	#170-7679   172-7805  
TQRLMC	  004172 R	#174-8002   175-8013  
TQSABO	  004712 R	#175-8184   176-8292  
TQSCAC	  004564 R	 175-8155  #175-8178  
TQSCDH	  004603 R	#175-8180   178-8393  
TQSCHN	  004531 R	 175-8154  #175-8176  
TQSDLG	  004240 R	#175-8160   176-8202  
TQSEXT	  004474 R	 175-8153  #175-8174  
TQSHRZ	  004337 R	#175-8166   178-8360  
TQSHWP	  004347 R	#175-8168   178-8362  
TQSKSN	  004301 R	#175-8162   178-8336  
TQSMCA	  004402 R	 175-8151  #175-8170  
TQSMDL	  004324 R	#175-8164   178-8340  
TQSMMA	  004745 R	#175-8186   178-8388  
TQSMMO	  004435 R	 175-8152  #175-8172  
TQSPT 	  004064 R	#174-7890   174-7903  
TQSWRN	  004657 R	#175-8182   176-8244   176-8284  
TROCT 	  026074 R	 208-9995   208-9995   208-9998   208-9998   208-10011  208-10011  208-10012  208-10012  209-10067 
                         209-10067  209-10082  209-10082 #210-10108 
TRSCEF	  005323 R	#183-8606   186-8764  
TRSCES	  005057 R	#183-8600   185-8676  
TRSDER	  005211 R	#183-8603   185-8662   185-8673   185-8684  
TRSFCF	  005267 R	#183-8605   186-8737  
TRSFCS	  005515 R	#183-8609   186-8791  
TRSFHL	  005400 R	#183-8607   186-8767  
TRSHLT	  005124 R	#183-8601   185-8679  
TRSPRF	  005023 R	#183-8599   184-8632  
TRSRSM	  005252 R	#183-8604   185-8696  
TRSSEF	  005444 R	#183-8608   186-8761   186-8772  
TRSTMO	  005155 R	#183-8602   185-8689  
TRTBTF	  005635 R	#190-8931   195-9311  
TRTEND	  005742 R	#190-8935   195-9329  
TRTFME	  005665 R	#190-8933   195-9324  
TRTMMF	  005577 R	#190-8929   195-9284  
TSTBSM	  005744 R	#199-9564   200-9655  
TTA   	  002210 R	 207-9946  #207-9947  
TTB   	  002214 R	 207-9945  #207-9948  
TTBEL 	  006005 R	#223-10669  225-10772 
TTILUN	= 000001	#8-429      156-7000   223-10655 
TTJ   	  002224 R	 207-9943  #207-9950  
TTOLUN	= 000002	#8-430      156-7002   199-9482   223-10656  228-10903 
TTP   	  002220 R	 207-9944  #207-9949  
TTSLS 	  006004 R	#223-10668 
TTSPC 	  006002 R	#223-10666  225-10767 
TTTAB 	  006003 R	#223-10667  225-10784 
TTTNLN	  006006 R	#223-10670  224-10712  225-10789 
TTTPR 	  000200 R	#58-2180    66-2615   
TTTPRE	  006014 R	#223-10672  226-10841 
TTTPRP	  006010 R	#223-10671  224-10696 
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 17

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TXBIMM	  006024 R	#228-10967  230-11107 
TXBOTH	  004165 R	#174-7893   174-7952  
TXCHLE	  006070 R	#232-11197  237-11396 
TXCSFL	  006120 R	#232-11199  234-11285 
TXPTS 	  004127 R	#174-7892   174-7948  
TYPNUM	= ******  GX	 78-3344    78-3360    80-3607    80-3609   *80-3640    81-3709   *81-3746    84-3882    84-3884   
                         84-3893    84-3900    85-3952    85-3957    86-4004    86-4009    173-7842  
T.TIL 	= 000040  G	#193-9120   193-9122   223-10655 
T.TOL 	= 000111  G	#193-9123   193-9125  
UEDIT 	  000112 R	#58-2165   *63-2401    67-2666   
UNASG1	= 000032	#4-196     #8-472     
UNASG2	= 000033	#4-196     #8-472     
UNASG3	= 000034	#4-196     #8-472     
UNASG4	= 000035	#4-196     #8-472     
UNASG5	= 000036	#4-196     #8-472     
UNASG6	= 000037	#4-196     #8-472     
WAIT1S	  023430 R	 184-8634   184-8634   185-8664   185-8664   185-8686   185-8686   186-8752   186-8752   186-8774  
                         186-8774  #188-8834   188-8840  
WEP   	= 000010	#4-196     #8-472     
W.10L 	= 000005	#6-323     
XCONMP	= ******  GX	 172-7800  
XCT   	= 000256	#190-8904   190-8913   190-8913  
XCT71 	  023554 RG	#195-9234  
ZSTOP 	= 040000	#4-196     #8-472     
$ACRAM	  012166 RG	 62-2352    62-2352    124-5434   124-5434   125-5502   125-5502  #126-5597  
$ADRAM	  012704 RG	 128-5679   128-5679   129-5731   129-5731  #130-5780  
$APRID	= 000000	#11-565    
$ASCIZ	  024240 RG	#198-9405   198-9407   226-10842  226-10842  226-10844  226-10844 
$BURST	  031612 RG	 54-1896    54-1896    237-11368  237-11368  238-11450 #239-11465 
$CD11 	= 000001	#1-39      
$CFGBT	  023714 RG	 162-7377   176-8286  #195-9290  
$CFGCA	  023640 RG	 165-7506   166-7540   166-7542  #195-9263  
$CFGMM	  020060 RG	 171-7762  #172-7780  
$CFGRM	  023626 RG	 175-8062  #195-9253  
$CFGXX	  020232 RG	 78-3267    78-3438   #172-7813  
$CFIMD	  004232 RG	#78-3272    78-3500    173-7849  
$CFMMD	  004200 RG	#78-3257    173-7855  
$CFXMD	  006544 RG	#91-4187    173-7852  
$CHKIM	  005064 RG	 78-3424    78-3424   #80-3598   
$CHKMM	  005310 RG	 78-3429    78-3429   #81-3697   
$CLLOG	= ******  GX	 62-2357    62-2357    66-2631    66-2631    227-10880  227-10880 
$CLOSE	  007056 RG	 62-2304    62-2304    62-2356    62-2356    70-2992    70-2992   #93-4323    143-6311   143-6311  
                         143-6324   146-6419   146-6419   146-6455   149-6540   149-6540   149-6550   151-6723   152-6735  
                         152-6735   163-7406   163-7406   163-7431   230-11105  230-11105 
$CONFG	  005514 RG	#83-3837    172-7814   172-7814  
$DBDTE	= 000001	#1-45      
$DDFRD	  013440 RG	#136-6032  
$DDFWR	  013552 RG	#138-6109  
$DDFXC	  013754 RG	#141-6208  
$DELET	  007214 RG	 70-2997    70-2997   #98-4525   
$DFPC 	  016134 RG	#158-7155  
$DFRD 	  013444 RG	 54-1901    54-1901    125-5512   125-5512   125-5567   125-5567   129-5738   129-5738   129-5746  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 18

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         129-5746   129-5759   129-5759  #136-6035   155-6888   155-6888   158-7170   158-7170   181-8499  
                         181-8499   230-11101  230-11101  238-11420  238-11420  238-11425  238-11425  238-11430  238-11430 
                         238-11445  238-11445 
$DFWR 	  013556 RG	 54-1916    54-1916    124-5473   124-5473   124-5484   126-5604   126-5604   126-5612   126-5612  
                         128-5711   130-5808   130-5808  #138-6112   155-6915   155-6915   187-8817   187-8817   187-8820  
                         187-8820   200-9638   200-9638   200-9642   200-9642   236-11339  239-11476  239-11476  239-11479 
                         239-11479  239-11492  239-11492  239-11498  239-11498 
$DFXC 	  013760 RG	 54-1893    54-1893    54-1906    54-1906    54-1912    54-1912    54-1919    62-2355    62-2355   
                         125-5505   125-5505   129-5734   129-5734   130-5811   134-5967   134-5967   139-6152   139-6152  
                        #141-6211   155-6869   155-6869   155-6893   155-6893   155-6905   155-6905   155-6928   155-6928  
                         180-8454   180-8454   181-8491   181-8491   181-8493   181-8493   182-8529   182-8529   182-8532  
                         182-8532   187-8822   195-9239   195-9239   195-9242   195-9242   200-9645   200-9645   233-11223 
                         233-11223  233-11226  233-11226  234-11261  234-11261  234-11264  234-11264  234-11269  234-11269 
                         234-11282  237-11360  237-11360  237-11380  237-11380  237-11387  237-11387  237-11390  237-11390 
                         238-11436  238-11436  239-11468  239-11468  239-11482  239-11482  239-11501 
$DH11 	= 000001	#1-43      
$DLGBT	  016334 RG	#161-7278   162-7360   195-9278  
$DLGBV	  023670 RG	 171-7748  #195-9277  
$DLGCA	  017066 RG	#165-7476   166-7521   175-8045   195-9258  
$DLGCT	  020320 RG	 172-7772   172-7812  #173-7838  
$DLGCV	  023634 RG	 171-7728  #195-9257  
$DLGEN	  021170 RG	 168-7608   174-7966   175-8034  #176-8193   195-9248   195-9315  
$DLGEX	  017422 RG	 162-7374  #168-7585   195-9307  
$DLGIM	  020344 RG	#173-7848   173-7868   173-7870  
$DLGMB	  020360 RG	 78-3306   #173-7857   173-7871  
$DLGMF	  020354 RG	 91-4262   #173-7854  
$DLGMM	  017556 RG	 165-7502  #171-7685   173-7858   195-9273   195-9335  
$DLGMV	  023662 RG	 161-7298  #195-9272  
$DLGMX	  023666 RG	 172-7830  #195-9275  
$DLGPA	  020410 RG	#174-7896   175-8032   176-8248  
$DLGRM	  020700 RG	 165-7499   174-7961  #175-8007   176-8250   195-9281  
$DLGRV	  023674 RG	 171-7731  #195-9280  
$DLGXM	  020350 RG	 78-3277    78-3497   #173-7851   173-7865  
$DLMB1	  020364 RG	 78-3309   #173-7863  
$DLMB2	  020372 RG	 91-4213   #173-7866  
$DLWCF	  016530 RG	 161-7321  #162-7345   168-7605  
$DPOS 	  013074 RG	 52-1830    52-1830    53-1862    53-1862    56-2072    56-2072    132-5877   132-5877  #132-5881  
                         200-9632   200-9632   230-11094  230-11094  231-11125  231-11125  231-11137  231-11137 
$DPOST	  013056 RG	#132-5873   186-8742   186-8742   186-8749   186-8749  
$DSPPT	  020040 RG	 171-7754  #172-7768  
$DSW  	= ******  GX	 101-4630   106-4858  *106-4860   139-6147   188-8837  
$DTA  	= 000001	#1-55       228-10948  229-11046 
$DTE  	= 000001	#1-46      
$DTRWS	  024132 RG	 155-6876   155-6876  #196-9363  
$DTRW1	  024114 RG	 134-5970   134-5970   185-8674   185-8674   186-8762   186-8762  #196-9355   234-11271  234-11271 
                         235-11308  235-11308  237-11370  237-11370 
$DTRW2	  024122 RG	 155-6872   155-6872  #196-9359  
$DTRW3	  024142 RG	#196-9367  
$ECHO 	  030004 RG	 224-10710  224-10710 #228-10895 
$ECHO1	  030020 RG	 224-10700  224-10700  224-10716  224-10716  224-10747  224-10747  227-10869  227-10869 #228-10898 
$ENTER	  007734 RG	 70-2882    70-2882   #106-4832  
$ERROR	  024012 RG	 84-3941    85-3976    86-4044    161-7328   172-7833   185-8693   195-9255   195-9267   195-9270  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 19

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         195-9285   195-9296   195-9300  #195-9313   195-9319   200-9661   224-10760 
$EXAM 	  013224 RG	 133-5916   133-5916   133-5921   133-5921  #133-5928  
$EXAMD	  013214 RG	#133-5920  
$EXAMT	  013176 RG	#133-5912  
$EXBLD	  030052 RG	 195-9303   195-9303  #229-11008 
$EXCT 	  030636 RG	 89-4127    89-4127    89-4130    89-4130    187-8812   187-8812   195-9236   195-9236   200-9595  
                         200-9595   200-9604   200-9604   229-11032  229-11032 #233-11217 
$EXIT 	  024022 RG	 157-7089   168-7618   176-8298   185-8697   195-9306  #195-9317  
$EXIT1	  024030 RG	 186-8782   186-8792   195-9229   195-9245  #195-9320   200-9664  
$EXTEN	  011242 RG	 120-5303   120-5303  #122-5359  
$FATAL	  024036 RG	#195-9323  
$FE   	= 000001	#1-41      
$FILE 	  003036 RG	#70-2854    184-8629   184-8629   185-8660   185-8660   195-9318   195-9318   200-9587   200-9587  
$F11  	= 000001	#1-42      
$GETCA	  014112 RG	#143-6286   195-9266   195-9266   195-9295   195-9295  
$GETMM	  014312 RG	#146-6387   172-7783   172-7783  
$GETPA	  014562 RG	#149-6515   174-7933   174-7933  
$GETTF	  014706 RG	#151-6622  
$INIT 	  015564 RG	#157-7029   195-9231   195-9231  
$IOERR	  007346 RG	 60-2258    60-2258    93-4351    98-4541   #101-4626   104-4771   106-4861   122-5368   151-6639  
                         229-11054 
$KLMR 	  015232 RG	 60-2252    60-2252    134-5964   134-5964   139-6149  #155-6866   179-8435   179-8435   181-8477  
                         181-8477   187-8804   187-8804   237-11377  237-11377 
$KLSR 	  015504 RG	 126-5599   126-5599   130-5804   130-5804  #155-6923  
$LDAR 	  031176 RG	 54-1890    54-1890    182-8526   182-8526   233-11220  233-11220  234-11258  234-11258 #236-11331 
$LDNGO	  000000 RG	#52-1813    56-2000    56-2000   
$LGERR	  000054 RG	#191-9013   227-10878 
$LGOPN	  000056 RG	#191-9015   227-10871 
$LOG  	  000052 RG	#191-9011  
$LOOKU	  007562 RG	 60-2247    60-2247    62-2292    62-2292    70-2875    70-2875   #104-4744   143-6289   143-6289  
                         146-6398   146-6398   149-6517   149-6517   151-6631   151-6631   163-7385   163-7385   229-11025 
                         229-11025  229-11052  229-11052 
$LP20 	= 000001	#1-37      
$MAPMM	  006436 RG	 86-4016    86-4016   #87-4049   
$MBPHS	  031444 RG	 236-11335  236-11335 #238-11414 
$MCBLD	  001066 RG	#60-2231    195-9254   195-9254  
$OPLOG	= ******  GX	 64-2463    64-2463    65-2539    65-2539   
$POWER	  022540 RG	 168-7621  #184-8629  
$PURGE	  010124 RG	 62-2324    62-2324    66-2637    66-2637    70-3016    70-3016   #108-4914   143-6325   143-6325  
                         146-6458   146-6458   149-6552   149-6552   163-7434   163-7434   195-9310   195-9310  
$RCRAM	  011564 RG	 63-2385    63-2385    64-2443    64-2443   #125-5500   181-8481   181-8481  
$RDERA	= 000000	#11-567    
$RDRAM	  012474 RG	 65-2520    65-2520   #129-5726  
$READ 	  010474 RG	 104-4761   111-5014   111-5014   112-5046   112-5046   113-5072   113-5072  #114-5098  
$READB	  010420 RG	 62-2311    62-2311    70-2918    70-2918   #113-5067   143-6313   143-6313   143-6319   143-6319  
                         146-6426   146-6426   146-6429   146-6429   152-6765   152-6765   163-7415   163-7415   163-7418  
                         163-7418   229-11065  229-11065 
$READC	  010216 RG	 62-2297    62-2297    62-2339    62-2339    70-2890    70-2890   #110-4985   143-6305   143-6305  
                         146-6414   146-6414   146-6450   146-6450   149-6534   149-6534   151-6662   151-6662   163-7400  
                         163-7400   230-11076  230-11076 
$READS	  010254 RG	 62-2307    62-2307    70-2952    70-2952   #111-5010   111-5015   143-6303   143-6303   146-6411  
                         146-6411   146-6447   146-6447   149-6531   149-6531   151-6677   151-6677   163-7410   163-7410  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 20

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$READW	  010324 RG	 61-2276    61-2276    62-2318    62-2318    110-4990   110-4990   110-4994  #112-5035   146-6432  
                         146-6432   149-6547   149-6547   163-7425   163-7425   230-11079  230-11079 
$RP04 	= 000001	#1-40      
$RSAVE	  024204 RG	 52-1813    53-1850    54-1888    63-2381    66-2588    101-4626   124-5431   125-5500   128-5673  
                         129-5726   130-5780   132-5882   133-5929   151-6624   155-6866   158-7156  #197-9387   199-9427  
                         208-9988   209-10048  224-10691  226-10819  226-10836  233-11218  234-11250  236-11332  238-11415 
                         239-11465 
$RSTRT	  022622 RG	 168-7625  #185-8658  
$SBDIA	= 000002	#11-563    
$SETCA	  000356 RG	#56-1999    195-9269   195-9269   195-9299   195-9299  
$SETFN	  007304 RG	 98-4525    98-4525    98-4534    98-4534   #99-4561    104-4744   104-4744   104-4764   104-4764  
                         106-4832   106-4832   108-4924   108-4924  
$SETIM	  005056 RG	#80-3590    84-3888    84-3888    84-3910    84-3910   
$SETMM	  005302 RG	#81-3690    86-4024    86-4024   
$START	  023516 RG	#195-9225   240-11507 
$STRKL	  030726 RG	 52-1836    184-8639   184-8639   185-8669   185-8669   186-8757   186-8757   200-9652   200-9652  
                        #234-11249 
$SWEEP	  006502 RG	#89-4122    229-11015  229-11015 
$TCRLF	  027530 RG	 66-2624    66-2624    78-3368    78-3368    174-7959   174-7959   178-8378   178-8378   195-9332  
                         195-9332  #225-10787 
$TDB2C	  026466 RG	 205-9831  #218-10404 
$TDB2I	  025264 RG	 174-7957   174-7957   178-8339   178-8339   178-8359   178-8359  #205-9826  
$TDB2O	  026450 RG	 78-3365    78-3365   #218-10399 
$TDI2B	  025402 RG	#206-9875  
$TENST	  024524 RG	#200-9586   230-11106 
$TENS1	  024532 RG	 162-7373   162-7373  #200-9589  
$TOP10	= 000001	#1-35       1-53       3-174      3-178      168-7613   168-7623   191-9029  
$TOP20	= ******	 1-61       3-174      3-182     
$TRACK	  024252 RG	 124-5432   125-5501   126-5598   128-5674   129-5727   130-5781   132-5891   133-5934   136-6040  
                         138-6128   141-6224   155-6867   155-6924  #199-9426   233-11219  234-11251  235-11304  237-11357 
$TRB2F	  025044 RG	 101-4654   101-4654  #202-9715  
$TRB2I	  025306 RG	 205-9830   205-9830  #205-9834   206-9879   206-9879  
$TRB2O	  026500 RG	 66-2595    66-2595    67-2657    67-2657    67-2664    67-2664    67-2667    67-2667    101-4646  
                         101-4646   199-9442   199-9442   202-9733   202-9733   218-10403  218-10403 #218-10409 
$TRB2R	  026744 RG	 202-9723   202-9723   202-9725   202-9725   202-9727   202-9727   202-9730   202-9730  #222-10573 
$TRCRM	  025512 RG	 66-2623    66-2623   #208-9987  
$TRDRM	  025656 RG	 66-2621    66-2621   #209-10047 
$TRF2B	  025146 RG	 151-6629   151-6629   161-7314   161-7314   175-8056   175-8056   176-8265   176-8265  #203-9752  
$TRI2B	  025424 RG	 78-3479    78-3479    91-4237    91-4237    166-7522   166-7522   174-7917   174-7917  #206-9883  
$TRO2B	  026562 RG	 78-3407    78-3407    203-9775   203-9775  #219-10460 
$TRR2B	  026636 RG	 203-9757   203-9757   203-9759   203-9759   203-9761   203-9761   203-9768   203-9768  #221-10530 
$TTBEL	  027510 RG	#225-10770 
$TTDMS	  027566 RG	 66-2616    66-2616    66-2618    66-2618    78-3363    78-3363    78-3367    78-3367    174-7949  
                         174-7949   174-7953   174-7953   178-8337   178-8337   178-8341   178-8341   178-8361   178-8361  
                         178-8373   178-8373   195-9325   195-9325   209-10063  209-10063 #226-10818 
$TTDWR	  027700 RG	 214-10244  214-10244  215-10272  215-10272  218-10405  218-10405  226-10824 #226-10847 
$TTMSG	  027634 RG	 56-2088    57-2116    60-2236    64-2467    64-2467    65-2543    65-2543    66-2597    66-2636   
                         67-2672    70-2999    70-3018    78-3291    78-3291    78-3315    78-3444    78-3471    78-3503   
                         80-3611    80-3656    81-3711    81-3758    84-3934    85-3972    86-3998    86-4036    91-4192   
                         91-4198    91-4209    91-4227    91-4252    91-4256    101-4662   113-5082   114-5113   117-5212  
                         120-5307   132-5894   133-5942   136-6051   138-6130   141-6228   143-6293   146-6402   149-6521  
                         151-6635   151-6670   151-6716   152-6730   155-6898   157-7062   157-7073   157-7088   157-7095  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 21

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         158-7189   161-7285   161-7324   162-7350   162-7361   163-7394   165-7482   165-7497   166-7510  
                         166-7543   168-7590   168-7601   171-7702   171-7702   171-7721   172-7805   172-7823   174-7903  
                         174-7963   175-8013   175-8028   176-8202   176-8219   176-8244   176-8284   176-8292   178-8362  
                         178-8388   178-8393   185-8691   185-8696   186-8784   186-8791   195-9284   195-9311   200-9655  
                        #226-10835  230-11107  234-11285  237-11396 
$TTRD 	  027130 RG	 78-3292    78-3292    78-3369    78-3369    78-3472    78-3472    91-4199    91-4199    91-4228   
                         91-4228    161-7286   161-7286   162-7351   162-7351   165-7483   165-7483   166-7511   166-7511  
                         168-7591   168-7591   171-7703   171-7703   174-7904   174-7904   175-8014   175-8014   176-8203  
                         176-8203   206-9878   206-9878  #224-10691 
$TTSPC	  027500 RG	 178-8353   178-8353  #225-10765 
$TTTAB	  027520 RG	#225-10782 
$TTWR 	  027714 RG	 178-8349   178-8349   178-8351   178-8351   195-9328   195-9328   195-9331   195-9331   208-10003 
                         208-10003  208-10015  208-10015  209-10070  209-10070  209-10086  209-10086  225-10797  225-10797 
                        #227-10865 
$T1091	= ******	 1-49       1-54      
$WCRAM	  011304 RG	 64-2432    64-2432    64-2453    64-2453    64-2494    64-2494   #124-5431   181-8488   181-8488  
                         181-8503  
$WDD22	  026124 RG	#214-10239 
$WDD36	  026236 RG	#215-10267 
$WDRAM	  012314 RG	 65-2516    65-2516    65-2570    65-2570   #128-5673  
$WRD22	  026154 RG	 199-9455   199-9455   214-10243  214-10243 #214-10248 
$WRD36	  026266 RG	 199-9470   199-9470   215-10271  215-10271 #215-10276 
$WRITB	  011032 RG	 70-2920    70-2920    71-3049    71-3049    71-3052    71-3052    73-3100    73-3100    73-3103   
                         73-3103    74-3135    74-3135    74-3142    74-3142    75-3163    75-3163    117-5206   117-5206  
                        #119-5262  
$WRITC	  010624 RG	 70-2910    70-2910    71-3043    71-3043    72-3074    72-3074    73-3094    73-3094    74-3129   
                         74-3129    75-3157    75-3157    76-3183    76-3183   #116-5172  
$WRITE	  011072 RG	 118-5240   118-5240   119-5267   119-5267  #120-5290   120-5304  
$WRITS	  010666 RG	 93-4339    93-4339   #117-5198  
$WRITW	  010736 RG	 70-2913    70-2913    71-3046    71-3046    71-3060    71-3060    72-3077    73-3097    73-3097   
                         73-3108    73-3108    74-3132    74-3132    75-3160    75-3160    75-3169    75-3169    76-3186   
                         76-3186    76-3189    76-3189    116-5180   116-5180  #118-5229  
$WRMRS	  023022 RG	 185-8659   185-8659  #186-8730   195-9302   195-9302  
$WTKL 	  031116 RG	 233-11229 #235-11303  237-11363  237-11363  237-11383  237-11383 
$XCDT 	  000206 RG	 52-1823    52-1823    53-1856    53-1856   #54-1888   
$ZERAC	  000112 RG	#53-1850    184-8631   184-8631   200-9590   200-9590  
$$    	= 000037	#52-1823    52-1823   #52-1830    52-1830   #53-1856    53-1856   #53-1862    53-1862   #54-1890   
                         54-1890   #54-1893    54-1893   #54-1896    54-1896   #54-1901    54-1901   #54-1906    54-1906   
                        #54-1912    54-1912   #54-1916    54-1916   #56-2000    56-2000   #56-2072    56-2072   #60-2234   
                         60-2234   #60-2247    60-2247   #60-2252    60-2252   #60-2258    60-2258   #61-2276    61-2276   
                        #62-2292    62-2292   #62-2297    62-2297   #62-2304    62-2304   #62-2307    62-2307   #62-2311   
                         62-2311   #62-2318    62-2318   #62-2324    62-2324   #62-2339    62-2339   #62-2347    62-2347   
                        #62-2352    62-2352   #62-2355    62-2355   #62-2356    62-2356   #62-2357    62-2357   #63-2385   
                         63-2385   #64-2432    64-2432   #64-2437    64-2437   #64-2443    64-2443   #64-2453    64-2453   
                        #64-2463    64-2463   #64-2467    64-2467   #64-2471    64-2471   #64-2476    64-2476   #64-2479   
                         64-2479   #64-2489    64-2489   #64-2494    64-2494   #65-2510    65-2510   #65-2516    65-2516   
                        #65-2520    65-2520   #65-2539    65-2539   #65-2543    65-2543   #65-2547    65-2547   #65-2552   
                         65-2552   #65-2555    65-2555   #65-2565    65-2565   #65-2570    65-2570   #66-2595    66-2595   
                        #66-2616    66-2616   #66-2618    66-2618   #66-2621    66-2621   #66-2623    66-2623   #66-2624   
                         66-2624   #66-2631    66-2631   #66-2637    66-2637   #67-2657    67-2657   #67-2664    67-2664   
                        #67-2667    67-2667   #70-2875    70-2875   #70-2882    70-2882   #70-2890    70-2890   #70-2910   
                         70-2910   #70-2913    70-2913   #70-2918    70-2918   #70-2920    70-2920   #70-2952    70-2952   
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 22

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #70-2963    70-2963   #70-2972    70-2972   #70-2977    70-2977   #70-2982    70-2982   #70-2987   
                         70-2987   #70-2990    70-2990   #70-2992    70-2992   #70-2997    70-2997   #70-3016    70-3016   
                        #71-3043    71-3043   #71-3046    71-3046   #71-3049    71-3049   #71-3052    71-3052   #71-3060   
                         71-3060   #72-3074    72-3074   #73-3094    73-3094   #73-3097    73-3097   #73-3100    73-3100   
                        #73-3103    73-3103   #73-3108    73-3108   #74-3129    74-3129   #74-3132    74-3132   #74-3135   
                         74-3135   #74-3142    74-3142   #75-3157    75-3157   #75-3160    75-3160   #75-3163    75-3163   
                        #75-3169    75-3169   #76-3183    76-3183   #76-3186    76-3186   #76-3189    76-3189   #78-3291   
                         78-3291   #78-3292    78-3292   #78-3363    78-3363   #78-3365    78-3365   #78-3367    78-3367   
                        #78-3368    78-3368   #78-3369    78-3369   #78-3407    78-3407   #78-3424    78-3424   #78-3429   
                         78-3429   #78-3472    78-3472   #78-3479    78-3479   #81-3718    81-3718   #83-3844    83-3844   
                        #83-3849    83-3849   #83-3855    83-3855   #84-3886    84-3886   #84-3888    84-3888   #84-3896   
                         84-3896   #84-3902    84-3902   #84-3910    84-3910   #84-3914    84-3914   #86-4012    86-4012   
                        #86-4016    86-4016   #86-4024    86-4024   #86-4026    86-4026   #87-4055    87-4055   #89-4127   
                         89-4127   #89-4130    89-4130   #91-4199    91-4199   #91-4228    91-4228   #91-4237    91-4237   
                        #93-4339    93-4339   #98-4525    98-4525   #98-4534    98-4534   #101-4646   101-4646  #101-4654  
                         101-4654  #101-4661   101-4661  #104-4744   104-4744  #104-4764   104-4764  #106-4832   106-4832  
                        #108-4924   108-4924  #110-4990   110-4990  #111-5014   111-5014  #112-5046   112-5046  #113-5072  
                         113-5072  #116-5180   116-5180  #117-5206   117-5206  #118-5240   118-5240  #119-5267   119-5267  
                        #120-5303   120-5303  #124-5434   124-5434  #124-5473   124-5473  #125-5502   125-5502  #125-5505  
                         125-5505  #125-5512   125-5512  #125-5567   125-5567  #126-5599   126-5599  #126-5602   126-5602  
                        #126-5604   126-5604  #126-5610   126-5610  #126-5612   126-5612  #128-5679   128-5679  #128-5682  
                         128-5682  #128-5685   128-5685  #128-5704   128-5704  #129-5731   129-5731  #129-5734   129-5734  
                        #129-5738   129-5738  #129-5746   129-5746  #129-5759   129-5759  #130-5804   130-5804  #130-5808  
                         130-5808  #132-5877   132-5877  #132-5883   132-5883  #132-5884   132-5884  #133-5916   133-5916  
                        #133-5921   133-5921  #133-5930   133-5930  #133-5931   133-5931  #134-5964   134-5964  #134-5967  
                         134-5967  #134-5970   134-5970  #138-6114   138-6114  #139-6152   139-6152  #143-6289   143-6289  
                        #143-6303   143-6303  #143-6305   143-6305  #143-6311   143-6311  #143-6313   143-6313  #143-6319  
                         143-6319  #143-6325   143-6325  #146-6398   146-6398  #146-6411   146-6411  #146-6414   146-6414  
                        #146-6419   146-6419  #146-6426   146-6426  #146-6429   146-6429  #146-6432   146-6432  #146-6447  
                         146-6447  #146-6450   146-6450  #146-6458   146-6458  #149-6517   149-6517  #149-6531   149-6531  
                        #149-6534   149-6534  #149-6540   149-6540  #149-6547   149-6547  #149-6552   149-6552  #151-6624  
                         151-6624  #151-6629   151-6629  #151-6631   151-6631  #151-6662   151-6662  #151-6677   151-6677  
                        #151-6690   151-6690  #151-6697   151-6697  #151-6703   151-6703  #151-6712   151-6712  #152-6735  
                         152-6735  #152-6765   152-6765  #155-6869   155-6869  #155-6872   155-6872  #155-6876   155-6876  
                        #155-6883   155-6883  #155-6888   155-6888  #155-6893   155-6893  #155-6896   155-6896  #155-6905  
                         155-6905  #155-6915   155-6915  #155-6928   155-6928  #158-7156   158-7156  #158-7170   158-7170  
                        #158-7177   158-7177  #161-7286   161-7286  #161-7301   161-7301  #161-7314   161-7314  #162-7351  
                         162-7351  #162-7373   162-7373  #163-7385   163-7385  #163-7400   163-7400  #163-7406   163-7406  
                        #163-7410   163-7410  #163-7415   163-7415  #163-7418   163-7418  #163-7425   163-7425  #163-7434  
                         163-7434  #165-7483   165-7483  #166-7511   166-7511  #166-7522   166-7522  #168-7591   168-7591  
                        #171-7688   171-7688  #171-7702   171-7702  #171-7703   171-7703  #172-7770   172-7770  #172-7771  
                         172-7771  #172-7783   172-7783  #172-7791   172-7791  #172-7809   172-7809  #172-7814   172-7814  
                        #172-7816   172-7816  #172-7817   172-7817  #172-7818   172-7818  #172-7827   172-7827  #174-7904  
                         174-7904  #174-7917   174-7917  #174-7933   174-7933  #174-7944   174-7944  #174-7949   174-7949  
                        #174-7953   174-7953  #174-7957   174-7957  #174-7959   174-7959  #175-8014   175-8014  #175-8050  
                         175-8050  #175-8056   175-8056  #176-8203   176-8203  #176-8235   176-8235  #176-8240   176-8240  
                        #176-8259   176-8259  #176-8265   176-8265  #176-8272   176-8272  #176-8273   176-8273  #176-8274  
                         176-8274  #176-8275   176-8275  #176-8277   176-8277  #176-8281   176-8281  #178-8325   178-8325  
                        #178-8329   178-8329  #178-8337   178-8337  #178-8339   178-8339  #178-8341   178-8341  #178-8349  
                         178-8349  #178-8351   178-8351  #178-8353   178-8353  #178-8359   178-8359  #178-8361   178-8361  
                        #178-8373   178-8373  #178-8378   178-8378  #179-8407   179-8407  #179-8435   179-8435  #180-8452  
                         180-8452  #180-8454   180-8454  #181-8477   181-8477  #181-8481   181-8481  #181-8488   181-8488  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 23

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #181-8491   181-8491  #181-8493   181-8493  #181-8499   181-8499  #182-8526   182-8526  #182-8529  
                         182-8529  #182-8532   182-8532  #184-8629   184-8629  #184-8631   184-8631  #184-8633   184-8633  
                        #184-8634   184-8634  #184-8637   184-8637  #184-8639   184-8639  #185-8659   185-8659  #185-8660  
                         185-8660  #185-8663   185-8663  #185-8664   185-8664  #185-8667   185-8667  #185-8669   185-8669  
                        #185-8674   185-8674  #185-8686   185-8686  #186-8742   186-8742  #186-8749   186-8749  #186-8751  
                         186-8751  #186-8752   186-8752  #186-8755   186-8755  #186-8757   186-8757  #186-8762   186-8762  
                        #186-8774   186-8774  #186-8780   186-8780  #187-8804   187-8804  #187-8812   187-8812  #187-8817  
                         187-8817  #187-8820   187-8820  #195-9231   195-9231  #195-9236   195-9236  #195-9239   195-9239  
                        #195-9242   195-9242  #195-9254   195-9254  #195-9266   195-9266  #195-9269   195-9269  #195-9295  
                         195-9295  #195-9299   195-9299  #195-9302   195-9302  #195-9303   195-9303  #195-9310   195-9310  
                        #195-9318   195-9318  #195-9325   195-9325  #195-9328   195-9328  #195-9331   195-9331  #195-9332  
                         195-9332  #199-9442   199-9442  #199-9455   199-9455  #199-9470   199-9470  #200-9587   200-9587  
                        #200-9590   200-9590  #200-9595   200-9595  #200-9604   200-9604  #200-9632   200-9632  #200-9638  
                         200-9638  #200-9642   200-9642  #200-9645   200-9645  #200-9652   200-9652  #200-9656   200-9656  
                        #202-9723   202-9723  #202-9725   202-9725  #202-9727   202-9727  #202-9730   202-9730  #202-9733  
                         202-9733  #203-9757   203-9757  #203-9759   203-9759  #203-9761   203-9761  #203-9768   203-9768  
                        #203-9775   203-9775  #205-9830   205-9830  #206-9878   206-9878  #206-9879   206-9879  #208-9988  
                         208-9988  #208-9995   208-9995  #208-9998   208-9998  #208-10003  208-10003 #208-10011  208-10011 
                        #208-10012  208-10012 #208-10015  208-10015 #209-10048  209-10048 #209-10063  209-10063 #209-10067 
                         209-10067 #209-10070  209-10070 #209-10082  209-10082 #209-10086  209-10086 #214-10243  214-10243 
                        #214-10244  214-10244 #214-10250  214-10250 #214-10254  214-10254 #214-10256  214-10256 #215-10271 
                         215-10271 #215-10272  215-10272 #215-10278  215-10278 #215-10281  215-10281 #215-10283  215-10283 
                        #215-10288  215-10288 #215-10290  215-10290 #218-10403  218-10403 #218-10405  218-10405 #224-10700 
                         224-10700 #224-10710  224-10710 #224-10716  224-10716 #224-10747  224-10747 #225-10797  225-10797 
                        #226-10819  226-10819 #226-10842  226-10842 #226-10844  226-10844 #227-10869  227-10869 #227-10876 
                         227-10876 #227-10880  227-10880 #229-11015  229-11015 #229-11025  229-11025 #229-11032  229-11032 
                        #229-11035  229-11035 #229-11052  229-11052 #229-11065  229-11065 #230-11076  230-11076 #230-11079 
                         230-11079 #230-11094  230-11094 #230-11101  230-11101 #230-11105  230-11105 #230-11108  230-11108 
                        #231-11125  231-11125 #231-11133  231-11133 #231-11137  231-11137 #231-11145  231-11145 #233-11220 
                         233-11220 #233-11223  233-11223 #233-11226  233-11226 #234-11258  234-11258 #234-11261  234-11261 
                        #234-11264  234-11264 #234-11269  234-11269 #234-11271  234-11271 #235-11308  235-11308 #236-11333 
                         236-11333 #236-11335  236-11335 #237-11360  237-11360 #237-11363  237-11363 #237-11368  237-11368 
                        #237-11370  237-11370 #237-11377  237-11377 #237-11380  237-11380 #237-11383  237-11383 #237-11387 
                         237-11387 #237-11390  237-11390 #238-11420  238-11420 #238-11425  238-11425 #238-11430  238-11430 
                        #238-11436  238-11436 #238-11445  238-11445 #239-11468  239-11468 #239-11476  239-11476 #239-11479 
                         239-11479 #239-11482  239-11482 #239-11492  239-11492 #239-11498  239-11498 
$$APRI	= 000000	#11-566    
$$RDER	= 000004	#11-568    
$$SBDI	= 000004	#11-564    
$$$ARG	= 000006	#92-4301    92-4301   #92-4302    92-4302   #92-4302    92-4302   #92-4302    92-4302   #94-4388   
                         94-4388   #94-4388    94-4388   #94-4388    94-4388   #94-4388    94-4388   #94-4388    94-4388   
                        #94-4388    94-4388   #94-4388    94-4388   #94-4389    94-4389   #94-4389    94-4389   #94-4390   
                         94-4390   #94-4390    94-4390   #94-4390    94-4390   #94-4390    94-4390   #94-4390    94-4390   
                        #94-4390    94-4390   #94-4390    94-4390   #103-4721   103-4721  #103-4721   103-4721  #103-4721  
                         103-4721  #103-4721   103-4721  #103-4721   103-4721  #103-4721   103-4721  #103-4721   103-4721  
                        #103-4722   103-4722  #103-4722   103-4722  #103-4722   103-4722  #103-4722   103-4722  #103-4722  
                         103-4722  #103-4722   103-4722  #103-4723   103-4723  #103-4723   103-4723  #103-4723   103-4723  
                        #103-4723   103-4723  #103-4723   103-4723  #103-4723   103-4723  #103-4723   103-4723  #105-4809  
                         105-4809  #105-4809   105-4809  #105-4809   105-4809  #105-4809   105-4809  #105-4809   105-4809  
                        #105-4810   105-4810  #105-4810   105-4810  #105-4810   105-4810  #105-4810   105-4810  #105-4810  
                         105-4810  #105-4810   105-4810  #105-4810   105-4810  #105-4811   105-4811  #105-4811   105-4811  
                        #105-4811   105-4811  #105-4811   105-4811  #105-4811   105-4811  #105-4811   105-4811  #105-4812  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 24

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         105-4812  #107-4899   107-4899  #107-4900   107-4900  #107-4901   107-4901  #107-4902   107-4902  
                        #107-4902   107-4902  #107-4902   107-4902  #107-4902   107-4902  #107-4902   107-4902  #107-4902  
                         107-4902  #107-4902   107-4902  #114-5104   114-5104   114-5104   114-5104   114-5104   114-5104  
                         114-5104   114-5104   114-5104   114-5104   114-5104   114-5104  #120-5291   120-5291   120-5291  
                         120-5291   120-5291   120-5291   120-5291   120-5291   120-5291   120-5291   120-5291   120-5291  
                        #121-5346   121-5346  #121-5346   121-5346  #121-5346   121-5346  #121-5346   121-5346  #121-5346  
                         121-5346  #156-7000   156-7000  #156-7000   156-7000  #156-7000   156-7000  #156-7002   156-7002  
                        #156-7002   156-7002  #156-7002   156-7002  #156-7005   156-7005  #156-7005   156-7005  #156-7005  
                         156-7005  #156-7008   156-7008  #156-7008   156-7008  #156-7008   156-7008  #156-7010   156-7010  
                        #156-7010   156-7010  #156-7010   156-7010  #156-7012   156-7012  #156-7012   156-7012  #156-7012  
                         156-7012  #157-7068   157-7068   157-7068   157-7068   157-7068   157-7068   157-7068   157-7068  
                         157-7068   157-7068   157-7068   157-7068  #188-8835   188-8835   188-8835   188-8835   188-8835  
                         188-8835   188-8835   188-8835   188-8835   188-8835   188-8835  #190-8917   190-8917  #190-8917  
                         190-8917  #190-8917   190-8917  #190-8917   190-8917  #223-10655  223-10655 #223-10655  223-10655 
                        #223-10655  223-10655 #223-10656  223-10656 #223-10656  223-10656 #223-10656  223-10656 #223-10656 
                         223-10656 #223-10657  223-10657 #223-10658  223-10658 
$$$GLB	= ******	 92-4301    92-4301    92-4301    92-4301    92-4301    92-4301    92-4301    92-4301    92-4302   
                         92-4302    92-4302    92-4302    92-4302    92-4302    92-4302    92-4302    94-4388    94-4388   
                         94-4388    94-4388    94-4388    94-4388    94-4388    94-4388    94-4389    94-4389    94-4389   
                         94-4389    94-4389    94-4389    94-4389    94-4389    94-4390    94-4390    94-4390    94-4390   
                         94-4390    94-4390    94-4390    94-4390    103-4720   103-4720   103-4720   103-4721   103-4721  
                         103-4721   103-4721   103-4721   103-4721   103-4721   103-4721   103-4722   103-4722   103-4722  
                         103-4722   103-4722   103-4722   103-4722   103-4722   103-4723   103-4723   103-4723   103-4723  
                         103-4723   103-4723   103-4723   103-4723   105-4808   105-4808   105-4808   105-4809   105-4809  
                         105-4809   105-4809   105-4809   105-4809   105-4809   105-4809   105-4810   105-4810   105-4810  
                         105-4810   105-4810   105-4810   105-4810   105-4810   105-4811   105-4811   105-4811   105-4811  
                         105-4811   105-4811   105-4811   105-4811   105-4812   105-4812   105-4812   105-4812   105-4812  
                         105-4812   105-4812   105-4812   107-4899   107-4899   107-4899   107-4899   107-4899   107-4899  
                         107-4899   107-4899   107-4900   107-4900   107-4900   107-4900   107-4900   107-4900   107-4900  
                         107-4900   107-4901   107-4901   107-4901   107-4901   107-4901   107-4901   107-4901   107-4901  
                         107-4902   107-4902   107-4902   107-4902   107-4902   107-4902   107-4902   107-4902   121-5346  
                         121-5346   121-5346   121-5346   121-5346   121-5346   121-5346   121-5346   156-7000   156-7000  
                         156-7000   156-7000   156-7002   156-7002   156-7002   156-7002   156-7005   156-7005   156-7005  
                         156-7005   156-7008   156-7008   156-7008   156-7008   156-7010   156-7010   156-7010   156-7010  
                         156-7012   156-7012   156-7012   156-7012   175-8142   175-8142   175-8142   175-8142   175-8142  
                         190-8917   190-8917   190-8917   190-8917   190-8917   190-8917   190-8917   190-8917   223-10655 
                         223-10655  223-10655  223-10655  223-10655  223-10655  223-10655  223-10655  223-10656  223-10656 
                         223-10656  223-10656  223-10656  223-10656  223-10656  223-10656  223-10657  223-10657  223-10657 
                         223-10657  223-10657  223-10657  223-10657  223-10657  223-10658  223-10658  223-10658  223-10658 
                         223-10658  223-10658  223-10658  223-10658 
$$$OST	= 000014	#92-4301    92-4301    92-4301   #92-4301    92-4301    92-4301   #92-4301    92-4301    92-4301   
                        #92-4301    92-4301    92-4301   #92-4301    92-4301    92-4301   #92-4301    92-4301    92-4301   
                        #92-4301    92-4301   #92-4302    92-4302    92-4302   #92-4302    92-4302    92-4302   #92-4302   
                         92-4302    92-4302   #92-4302    92-4302    92-4302   #92-4302    92-4302    92-4302   #92-4302   
                         92-4302    92-4302   #92-4302    92-4302   #94-4388    94-4388    94-4388   #94-4388    94-4388   
                         94-4388   #94-4388    94-4388    94-4388   #94-4388    94-4388    94-4388   #94-4388    94-4388   
                         94-4388   #94-4388    94-4388    94-4388   #94-4388    94-4388   #94-4389    94-4389    94-4389   
                        #94-4389    94-4389    94-4389   #94-4389    94-4389    94-4389   #94-4389    94-4389    94-4389   
                        #94-4389    94-4389    94-4389   #94-4389    94-4389    94-4389   #94-4389    94-4389   #94-4390   
                         94-4390    94-4390   #94-4390    94-4390    94-4390   #94-4390    94-4390    94-4390   #94-4390   
                         94-4390    94-4390   #94-4390    94-4390    94-4390   #94-4390    94-4390    94-4390   #94-4390   
                         94-4390   #103-4720   103-4720   103-4720  #103-4720   103-4720   103-4720  #103-4720  #103-4721  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 25

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         103-4721   103-4721  #103-4721   103-4721   103-4721  #103-4721   103-4721   103-4721  #103-4721  
                         103-4721   103-4721  #103-4721   103-4721   103-4721  #103-4721   103-4721   103-4721  #103-4721  
                         103-4721  #103-4722   103-4722   103-4722  #103-4722   103-4722   103-4722  #103-4722   103-4722  
                         103-4722  #103-4722   103-4722   103-4722  #103-4722   103-4722   103-4722  #103-4722   103-4722  
                         103-4722  #103-4722   103-4722  #103-4723   103-4723   103-4723  #103-4723   103-4723   103-4723  
                        #103-4723   103-4723   103-4723  #103-4723   103-4723   103-4723  #103-4723   103-4723   103-4723  
                        #103-4723   103-4723   103-4723  #103-4723   103-4723  #105-4808   105-4808   105-4808  #105-4808  
                         105-4808   105-4808  #105-4808  #105-4809   105-4809   105-4809  #105-4809   105-4809   105-4809  
                        #105-4809   105-4809   105-4809  #105-4809   105-4809   105-4809  #105-4809   105-4809   105-4809  
                        #105-4809   105-4809   105-4809  #105-4809   105-4809  #105-4810   105-4810   105-4810  #105-4810  
                         105-4810   105-4810  #105-4810   105-4810   105-4810  #105-4810   105-4810   105-4810  #105-4810  
                         105-4810   105-4810  #105-4810   105-4810   105-4810  #105-4810   105-4810  #105-4811   105-4811  
                         105-4811  #105-4811   105-4811   105-4811  #105-4811   105-4811   105-4811  #105-4811   105-4811  
                         105-4811  #105-4811   105-4811   105-4811  #105-4811   105-4811   105-4811  #105-4811   105-4811  
                        #105-4812   105-4812   105-4812  #105-4812   105-4812   105-4812  #105-4812   105-4812   105-4812  
                        #105-4812   105-4812   105-4812  #105-4812   105-4812   105-4812  #105-4812   105-4812   105-4812  
                        #105-4812   105-4812  #107-4899   107-4899   107-4899  #107-4899   107-4899   107-4899  #107-4899  
                         107-4899   107-4899  #107-4899   107-4899   107-4899  #107-4899   107-4899   107-4899  #107-4899  
                         107-4899   107-4899  #107-4899   107-4899  #107-4900   107-4900   107-4900  #107-4900   107-4900  
                         107-4900  #107-4900   107-4900   107-4900  #107-4900   107-4900   107-4900  #107-4900   107-4900  
                         107-4900  #107-4900   107-4900   107-4900  #107-4900   107-4900  #107-4901   107-4901   107-4901  
                        #107-4901   107-4901   107-4901  #107-4901   107-4901   107-4901  #107-4901   107-4901   107-4901  
                        #107-4901   107-4901   107-4901  #107-4901   107-4901   107-4901  #107-4901   107-4901  #107-4902  
                         107-4902   107-4902  #107-4902   107-4902   107-4902  #107-4902   107-4902   107-4902  #107-4902  
                         107-4902   107-4902  #107-4902   107-4902   107-4902  #107-4902   107-4902   107-4902  #107-4902  
                         107-4902  #121-5346   121-5346   121-5346  #121-5346   121-5346   121-5346  #121-5346   121-5346  
                         121-5346  #121-5346   121-5346   121-5346  #121-5346   121-5346   121-5346  #121-5346   121-5346  
                         121-5346  #121-5346   121-5346  #156-7000   156-7000   156-7000  #156-7000   156-7000   156-7000  
                        #156-7000   156-7000   156-7000  #156-7000  #156-7002   156-7002   156-7002  #156-7002   156-7002  
                         156-7002  #156-7002   156-7002   156-7002  #156-7002  #156-7005   156-7005   156-7005  #156-7005  
                         156-7005   156-7005  #156-7005   156-7005   156-7005  #156-7005  #156-7008   156-7008   156-7008  
                        #156-7008   156-7008   156-7008  #156-7008   156-7008   156-7008  #156-7008  #156-7010   156-7010  
                         156-7010  #156-7010   156-7010   156-7010  #156-7010   156-7010   156-7010  #156-7010  #156-7012  
                         156-7012   156-7012  #156-7012   156-7012   156-7012  #156-7012   156-7012   156-7012  #156-7012  
                        #175-8142   175-8142   175-8142  #175-8142   175-8142   175-8142  #175-8142   175-8142   175-8142  
                        #175-8142   175-8142   175-8142  #175-8142  #190-8917   190-8917   190-8917  #190-8917   190-8917  
                         190-8917  #190-8917   190-8917   190-8917  #190-8917   190-8917   190-8917  #190-8917   190-8917  
                         190-8917  #190-8917   190-8917   190-8917  #190-8917   190-8917  #223-10655  223-10655  223-10655 
                        #223-10655  223-10655  223-10655 #223-10655  223-10655  223-10655 #223-10655  223-10655  223-10655 
                        #223-10655  223-10655  223-10655 #223-10655  223-10655  223-10655 #223-10655  223-10655 #223-10656 
                         223-10656  223-10656 #223-10656  223-10656  223-10656 #223-10656  223-10656  223-10656 #223-10656 
                         223-10656  223-10656 #223-10656  223-10656  223-10656 #223-10656  223-10656  223-10656 #223-10656 
                         223-10656 #223-10657  223-10657  223-10657 #223-10657  223-10657  223-10657 #223-10657  223-10657 
                         223-10657 #223-10657  223-10657  223-10657 #223-10657  223-10657  223-10657 #223-10657  223-10657 
                         223-10657 #223-10657  223-10657 #223-10658  223-10658  223-10658 #223-10658  223-10658  223-10658 
                        #223-10658  223-10658  223-10658 #223-10658  223-10658  223-10658 #223-10658  223-10658  223-10658 
                        #223-10658  223-10658  223-10658 #223-10658  223-10658 
$$$T1 	= 000014	#114-5104   114-5104  #120-5291   120-5291  #156-7000   156-7000   156-7000  #156-7000   156-7000  
                         156-7000  #156-7000   156-7000   156-7000  #156-7002   156-7002   156-7002  #156-7002   156-7002  
                         156-7002  #156-7002   156-7002   156-7002  #156-7005   156-7005   156-7005  #156-7005   156-7005  
                         156-7005  #156-7005   156-7005   156-7005  #156-7008   156-7008   156-7008  #156-7008   156-7008  
                         156-7008  #156-7008   156-7008   156-7008  #156-7010   156-7010   156-7010  #156-7010   156-7010  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 26

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         156-7010  #156-7010   156-7010   156-7010  #156-7012   156-7012   156-7012  #156-7012   156-7012  
                         156-7012  #156-7012   156-7012   156-7012  #157-7068   157-7068  
.BRCLK	= 005000	#4-196     #8-472      239-11481  239-11500 
.BTADR	  000516 RG	#193-9142   200-9649  *230-11078 *230-11081  231-11118  231-11119  231-11121  231-11129  231-11131 
.BTSW 	  000050 RG	 70-2858    70-2928    70-2975   *70-3000    71-3048   *161-7279  *161-7306  *161-7319   162-7371  
                        *163-7396  *163-7417  #191-9004   200-9608   200-9647  
.CACHN	  000065 RG	 56-2008    56-2055    57-2108    74-3139    143-6295   143-6318   166-7526  #192-9052  
.CASW 	  000043 RG	 89-4123    165-7476   171-7726  *179-8421  *179-8424   187-8807  #191-8993   195-9291   200-9600  
.CECLK	= 004000	#4-196     #8-472      54-1911    154-6833   154-6845   237-11389 
.CFGTB	  000134 RG	 73-3106   *78-3348    78-3462    78-3489   *80-3679   *81-3779    84-3880   *84-3895   *84-3913   
                         85-3950   *85-3959    86-4002   *86-4011   *86-4027   *91-4222   *91-4260    146-6390  *146-6435  
                         173-7840  #192-9077  
.CFMRV	  000234 RG	*171-7687  *171-7751   171-7753   172-7790  #192-9079  
.CKSW 	  000041 RG	 139-6142  *141-6217  *141-6220  *141-6227  #191-8988  
.CLRMR	= 006000	#4-196     #8-472      154-6834   154-6846  
.CLRUN	= 010000	#4-196     #8-472      155-6868   180-8453   237-11359 
.COMEF	= ******  GX	 157-7084  *157-7092  
.CONBT	= 012000	#4-196     #8-472      54-1892    182-8528   195-9241   233-11222  234-11263 
.CPUSN	= ******  GX	 157-7093  *157-7094  *176-8297   178-8326   178-8338  *178-8394   179-8418  
.CSDN 	  000030 RG	*182-8523  #191-8967  
.CSHRG	= 164000	#4-196     #8-472     
.CTLTP	  000072 RG	 73-3091    73-3102    84-3884    84-3900   *146-6391  *146-6394  *146-6431   146-6438  *173-7842  
                        #192-9073  
.DATE3	= ******  GX	 178-8333  
.DBSW 	  000033 RG	*161-7280  *176-8256  #191-8974  
.DCSW 	  000031 RG	 70-2863    70-2945    70-2961   *70-3003    143-6286  *143-6294  *165-7478  *165-7505  *166-7539  
                        *166-7541  #191-8969   195-9264  
.DESW 	  000042 RG	 134-5962  *134-5977  *139-6141  *141-6218  *141-6221  #191-8990  
.DFBLK	  000256 RG	 135-6013   137-6089   140-6191  #193-9098  
.DFRBK	  000264 RG	 136-6040   136-6042   158-7172  #193-9101  
.DFRG1	  000272 RG	#193-9104  
.DFRG2	  000274 RG	#193-9106  
.DFRG3	  000300 RG	#193-9110  
.DFSTA	  000276 RG	#193-9108  
.DFWBK	  000256 RG	 138-6118   138-6128  #193-9099  
.DLGSW	  000024 RG	 83-3860    84-3939    85-3974    86-4040   *157-7030  *157-7038   157-7082   161-7282   162-7347  
                         163-7389   165-7479   168-7586   171-7693   172-7792   174-7900   175-8009   176-8195  *176-8197  
                        *176-8226   176-8242   178-8331  #191-8958   195-9305  *195-9314  *195-9334   229-11009 
.DMSW 	  000032 RG	 70-2865    70-2902    70-2966   *70-3005    78-3289    78-3460   *83-3838    83-3858   *83-3859   
                        *83-3865   *84-3938   *85-3973   *86-4039    91-4196    91-4225   *146-6404  *171-7686  *171-7760  
                         172-7781   172-7785   172-7811  #191-8972  
.DREG 	  000272 RG	 135-6013   137-6089   140-6191   193-9095  #193-9103  *196-9371   196-9375  
.DRLTC	= 015000	#4-196     #8-472      129-5733  
.DRSW 	  000027 RG	 64-2426    64-2440    64-2490    65-2513    65-2566    66-2633    67-2645   *175-8007  *175-8061  
                        #191-8964  
.DSACF	= 066000	#4-196     #8-472     
.DSIOJ	= 065000	#4-196     #8-472     
.DTEDT	  000302 RG	*155-6871  *155-6874   193-9094  #193-9113   196-9370  *196-9374  
.EASW 	  000044 RG	 60-2240    125-5576   178-8345   178-8384  *179-8437  *179-8440  #191-8996  
.EIOJA	= 067000	#4-196     #8-472      154-6835  
.ERRCD	= ******  GX	 186-8733   186-8741  *186-8781  *186-8786  *186-8789  
.ERRPC	= ******  GX	 186-8748  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 27

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.FEMOD	= ******  GX	 157-7086  
.FILSW	  000047 RG	 70-2855   *162-7346  *162-7365  *162-7369  *176-8194  *176-8257  #191-9002  
.GFNR 	= 102000	#4-196     #8-472     
.HRDWR	= ******  GX	 178-8355   178-8365  
.INICL	= 070000	#4-196     #8-472      154-6830  
.IRLTC	= 014000	#4-196     #8-472      130-5810  
.KLCPU	= ******  GX	 186-8735   186-8744  
.KLFCF	= ******  GX	 186-8731  
.KLISV	  000060 RG	*157-7031   157-7053   163-7391   165-7500   165-7503   168-7611   168-7614   171-7689   171-7739  
                         171-7757  *172-7803  *172-7804   175-8036   175-8038   176-8233  #191-9040   195-9232   200-9610  
                         229-11011  237-11375 
.KLITK	= ******  GX	*186-8779  
.KLIWD	= ******  GX	 157-7031  *157-7037   195-9226  *195-9228  
.KLREG	  000244 RG	#193-9091  *196-9356  *196-9360  *196-9364  *196-9368  *196-9370   196-9372  
.LCRDL	= 052000	#4-196     #8-472      126-5603  
.LCRDR	= 051000	#4-196     #8-472      126-5611  
.LCRM1	= 057000	#4-196     #8-472      123-5406  
.LCRM2	= 056000	#4-196     #8-472      123-5407  
.LCRM3	= 055000	#4-196     #8-472      123-5408  
.LCRM4	= 054000	#4-196     #8-472      123-5409  
.LCRM5	= 053000	#4-196     #8-472      124-5483  
.LDAR 	= 077000	#4-196     #8-472      54-1915    130-5807   236-11338 
.LDBRL	= 043000	#4-196     #8-472      154-6827   239-11478  239-11497 
.LDBRR	= 042000	#4-196     #8-472      154-6826   154-6831   239-11475  239-11491 
.LDCK1	= 046000	#4-196     #8-472      154-6823   187-8819   200-9641  
.LDCK2	= 047000	#4-196     #8-472      154-6824   187-8816   200-9637  
.LDDIS	= 045000	#4-196     #8-472      154-6828  
.LDRJD	= 064000	#4-196     #8-472      128-5697  
.LDRJV	= 063000	#4-196     #8-472      128-5700  
.LDRM1	= 060000	#4-196     #8-472      128-5699  
.LDRM2	= 061000	#4-196     #8-472      128-5696  
.LDRM3	= 062000	#4-196     #8-472      128-5691  
.LDSEL	= 044000	#4-196     #8-472      154-6820   155-6909  
.MCA25	  000035 RG	 175-8030   176-8246  *179-8426  *179-8429  #191-8978  
.MCBFN	  000456 RG	 60-2246    62-2316    75-3166    175-8052  #193-9132  
.MCBSW	  000025 RG	 60-2232    60-2244   *62-2313    70-2860    70-2980   *70-3001    70-3023    75-3162   *175-8008  
                        *175-8060  #191-8960  
.MCSW 	  000051 RG	*174-7943  *174-7945   181-8484   181-8495  #191-9006  
.MEMRS	= 076000	#4-196     #8-472      154-6836  
.MFCT 	  000046 RG	*146-6388  *146-6440   172-7794  #191-9000  
.MFSW 	  000045 RG	 155-6879   155-6911   171-7698   178-8386  *179-8431  *179-8434  #191-8998  
.NCACH	  000064 RG	 56-2002    56-2017    56-2056    57-2097    74-3126   *143-6301  *143-6323  *166-7538   187-8809  
                        #192-9050   195-9293   195-9297   200-9602  *229-11038 
.NOERR	= ******  GX	*180-8451  *185-8695  *186-8777  *186-8790  *195-9234  *195-9244  *200-9654  *200-9663  
.PCAB1	= 150000	#4-196     #8-472     
.PCAB2	= 151000	#4-196     #8-472     
.PCAB3	= 152000	#4-196     #8-472     
.PCAB4	= 153000	#4-196     #8-472     
.PRDCT	= ******  GX	 184-8636   185-8666   185-8682   186-8754   186-8770  
.PTSEL	  000524 RG	 76-3188   *174-7898  *174-7929  *174-7940   174-7950   174-7956  #193-9144  
.PTSW 	  000034 RG	 70-2870    70-2936    70-2985   *70-3006   *149-6524  *174-7897  *174-7932  *174-7942  #191-8976  
.RCRM1	= 147000	#4-196     #8-472      123-5402  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 28

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.RCRM2	= 146000	#4-196     #8-472      123-5403  
.RCRM3	= 145000	#4-196     #8-472      123-5404  
.RCRM4	= 144000	#4-196     #8-472      123-5405  
.RCSPF	= 141000	#4-196     #8-472      125-5565  
.RDJ14	= 134000	#4-196     #8-472      129-5758  
.RDJ71	= 135000	#4-196     #8-472      129-5737  
.RDMAB	= 133000	#4-196     #8-472      129-5745  
.SECLK	= 003000	#4-196     #8-472      125-5504   181-8490  
.SETMR	= 007000	#4-196     #8-472      141-6215   154-6822   154-6842  
.SETRN	= 011000	#4-196     #8-472      195-9238   234-11260 
.SNSAV	  000062 RG	*157-7093   176-8297  #191-9042  
.SPSAV	  000022 RG	#191-8956  *195-9230   195-9333  
.SSCLK	= 002000	#4-196     #8-472      54-1905    155-6892   234-11268  238-11435 
.STPCL	= 000000	#4-196     #8-472      139-6151   154-6821   154-6844   237-11386  239-11467 
.STRCL	= 001000	#4-196     #8-472      54-1918    62-2354    134-5966   141-6213   154-6829   154-6843   182-8531  
                         187-8821   200-9644   233-11225  234-11281  237-11379 
.SYATT	  002652 RG	 92-4304   *93-4335   *93-4336   *93-4337   *93-4338   *106-4855   116-5175  *116-5177  *122-5363  
                        *122-5364  #194-9211  
.SYFID	= 002620 RG	 94-4389    103-4722   105-4809   105-4811  #194-9203  
.SYFNB	  002620 RG	 94-4388    94-4390    99-4562    103-4721   103-4723   105-4810   107-4902   157-7068   157-7076  
                        *157-7076   157-7077  *157-7077   157-7078  *157-7078  #194-9194   194-9203   194-9204  
.SYFNM	= 002626 RG	#194-9204  
.SYIBA	  000536 RG	*111-5018   112-5036  *112-5039   112-5049  *112-5050   113-5075  *113-5076  *114-5108  #194-9161  
.SYIBC	  000540 RG	 111-5011   111-5013  *111-5019  *112-5040   112-5044  *112-5051   113-5070  *113-5077  *114-5109  
                        #194-9163  
.SYIBF	  000566 RG	 103-4720   104-4747   104-4748   114-5104   114-5108   194-9162  #194-9171   194-9178  
.SYIFN	  000542 RG	 93-4348    103-4725   103-4727  *104-4747  *104-4748  #194-9165  
.SYIRC	  000534 RG	 62-2345    64-2460    65-2536    70-2908    70-2916   *104-4760   110-4986  *110-4989  *110-4992  
                         111-5011  *111-5013   111-5018   111-5019  *111-5020  *112-5038  *112-5042  *113-5068   152-6757  
                        #194-9159   230-11082  231-11141 
.SYISW	  000532 RG	 93-4323   *93-4329   *104-4757   108-4914  *108-4917  #194-9153  
.SYIVB	  000562 RG	*104-4758  *104-4759  *114-5099  *114-5100   114-5104   114-5104  #194-9169  
.SYOBA	  001570 RG	 93-4337   *106-4852   118-5230  *118-5233   118-5243  *118-5244   119-5270  *119-5271  *120-5297  
                        #194-9177  
.SYOBC	  001572 RG	*106-4853   117-5202  *118-5234   118-5238  *118-5245   119-5265  *119-5272  *120-5298  #194-9179  
.SYOBF	  001620 RG	 93-4338    105-4808   106-4835   106-4836   106-4852   120-5291   120-5297  #194-9187  
.SYOFN	  001574 RG	 92-4306    92-4308    93-4350    105-4814   105-4816  *106-4835  *106-4836   108-4923   122-5367  
                        #194-9181  
.SYORC	  001566 RG	 71-3054   *106-4854   116-5173  *116-5179  *116-5182   117-5199  *117-5204  *118-5232  *118-5236  
                        *119-5263  #194-9175  
.SYOSW	  000533 RG	 93-4330   *93-4345   *106-4849   108-4918  *108-4927  #194-9155  
.SYOVB	  001614 RG	 93-4335    93-4336   *106-4850  *106-4851   120-5291   120-5291  *120-5295  *120-5296  #194-9185  
.SYSTA	  000526 RG	 60-2256    70-2877    92-4301    92-4302    93-4327    93-4343    94-4388    94-4389    94-4390   
                         98-4528    98-4532    98-4537    101-4632   103-4721   103-4722   104-4751   104-4755   104-4762  
                         104-4766   105-4809   105-4810   105-4811   106-4839   106-4843   106-4847   114-5104   114-5106  
                         114-5109   120-5291   120-5293   120-5301   121-5346   122-5361   143-6291   146-6400   149-6519  
                         151-6633   157-7068   157-7070   163-7387  #194-9151   229-11039 
.TKTN 	= ******  GX	*186-8778  
.TPSHI	  016270 RG	 158-7177   158-7177  #159-7194  
.TRKLP	  000040 RG	#191-8985   199-9476   224-10740 *224-10742  224-10749 *224-10751  224-10753  228-10899 
.TRKSW	  000036 RG	#191-8981   199-9429  *224-10736 *224-10757 
.TRKTT	  000037 RG	#191-8983   199-9480  *224-10735 *224-10738  224-10755 
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 29

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.TTIBF	  000304 RG	 78-3293    78-3370    78-3473    91-4200    91-4230    161-7287   162-7352   165-7484   166-7512  
                         168-7592   171-7704  *174-7899   174-7905   175-8015   176-8204  #193-9121   206-9877   223-10655 
                        *224-10722  224-10724  224-10726  224-10728  224-10730  228-10896 
.TTOBF	  000344 RG	#193-9124   205-9828   208-9993   208-10001  208-10010  208-10013  209-10066  209-10068  209-10081 
                         209-10084  214-10241  215-10269  218-10401  226-10820  226-10838 
.UFNSW	  000026 RG	 71-3039    71-3051   *161-7281  *161-7317  *163-7383  *163-7420  *163-7429  *176-8258  *176-8269  
                        #191-8962   229-11021 
.USRFN	  000476 RG	 71-3057    151-6627   161-7310   163-7423   176-8261  #193-9137   229-11023 
.WORK 	  000014 RG	#191-8949  
.WRITR	= ******  GX	 227-10876  227-10876 
.WRMBX	= 071000	#4-196     #8-472      154-6837  
.ZERO 	  000000 RG	 53-1859    56-2071    64-2430    137-6090   154-6820   154-6823   154-6824   154-6826   154-6827  
                         154-6828   154-6830   154-6831   154-6835   154-6836  #191-8946   200-9625   200-9631   230-11092 
                         231-11123 
..DSEV	= ******  GX	 186-8780   186-8780  
..DTP2	= ******  GX	 184-8633   184-8633   185-8663   185-8663   186-8751   186-8751   200-9656   200-9656  
..DTSP	= ******  GX	 180-8452   180-8452  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 30

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ALUN$ 		#156-6970   156-7000   156-7002   156-7005   156-7008   156-7010   156-7012  #228-10942 
BURST 		#24-992    
CALL  		#4-251     #9-474      52-1823    52-1830    53-1856    53-1862    54-1890    54-1893    54-1896    54-1901   
                 54-1906    54-1912    54-1916    56-2000    56-2072    60-2234    60-2247    60-2252    60-2258    61-2276   
                 62-2292    62-2297    62-2304    62-2307    62-2311    62-2318    62-2324    62-2339    62-2347    62-2352   
                 62-2355    62-2356    62-2357    63-2385    64-2432    64-2437    64-2443    64-2453    64-2463    64-2467   
                 64-2471    64-2476    64-2479    64-2489    64-2494    65-2510    65-2516    65-2520    65-2539    65-2543   
                 65-2547    65-2552    65-2555    65-2565    65-2570    66-2595    66-2616    66-2618    66-2621    66-2623   
                 66-2624    66-2631    66-2637    67-2657    67-2664    67-2667    70-2875    70-2882    70-2890    70-2910   
                 70-2913    70-2918    70-2920    70-2952    70-2963    70-2972    70-2977    70-2982    70-2987    70-2990   
                 70-2992    70-2997    70-3016    71-3043    71-3046    71-3049    71-3052    71-3060    72-3074    73-3094   
                 73-3097    73-3100    73-3103    73-3108    74-3129    74-3132    74-3135    74-3142    75-3157    75-3160   
                 75-3163    75-3169    76-3183    76-3186    76-3189    78-3291    78-3292    78-3363    78-3365    78-3367   
                 78-3368    78-3369    78-3407    78-3424    78-3429    78-3472    78-3479    81-3718    83-3844    83-3849   
                 83-3855    84-3886    84-3888    84-3896    84-3902    84-3910    84-3914    86-4012    86-4016    86-4024   
                 86-4026    87-4055    89-4127    89-4130    91-4199    91-4228    91-4237    93-4339    98-4525    98-4534   
                 101-4646   101-4654   101-4661   104-4744   104-4764   106-4832   108-4924   110-4990   111-5014   112-5046  
                 113-5072   116-5180   117-5206   118-5240   119-5267   120-5303   124-5434   124-5473   125-5502   125-5505  
                 125-5512   125-5567   126-5599   126-5602   126-5604   126-5610   126-5612   128-5679   128-5682   128-5685  
                 128-5704   129-5731   129-5734   129-5738   129-5746   129-5759   130-5804   130-5808   132-5877   132-5883  
                 132-5884   133-5916   133-5921   133-5930   133-5931   134-5964   134-5967   134-5970   138-6114   139-6152  
                 143-6289   143-6303   143-6305   143-6311   143-6313   143-6319   143-6325   146-6398   146-6411   146-6414  
                 146-6419   146-6426   146-6429   146-6432   146-6447   146-6450   146-6458   149-6517   149-6531   149-6534  
                 149-6540   149-6547   149-6552   151-6624   151-6629   151-6631   151-6662   151-6677   151-6690   151-6697  
                 151-6703   151-6712   152-6735   152-6765   155-6869   155-6872   155-6876   155-6883   155-6888   155-6893  
                 155-6896   155-6905   155-6915   155-6928   158-7156   158-7170   158-7177   161-7286   161-7301   161-7314  
                 162-7351   162-7373   163-7385   163-7400   163-7406   163-7410   163-7415   163-7418   163-7425   163-7434  
                 165-7483   166-7511   166-7522   168-7591   171-7688   171-7702   171-7703   172-7770   172-7771   172-7783  
                 172-7791   172-7809   172-7814   172-7816   172-7817   172-7818   172-7827   174-7904   174-7917   174-7933  
                 174-7944   174-7949   174-7953   174-7957   174-7959   175-8014   175-8050   175-8056   176-8203   176-8235  
                 176-8240   176-8259   176-8265   176-8272   176-8273   176-8274   176-8275   176-8277   176-8281   178-8325  
                 178-8329   178-8337   178-8339   178-8341   178-8349   178-8351   178-8353   178-8359   178-8361   178-8373  
                 178-8378   179-8407   179-8435   180-8452   180-8454   181-8477   181-8481   181-8488   181-8491   181-8493  
                 181-8499   182-8526   182-8529   182-8532   184-8629   184-8631   184-8633   184-8634   184-8637   184-8639  
                 185-8659   185-8660   185-8663   185-8664   185-8667   185-8669   185-8674   185-8686   186-8742   186-8749  
                 186-8751   186-8752   186-8755   186-8757   186-8762   186-8774   186-8780   187-8804   187-8812   187-8817  
                 187-8820   195-9231   195-9236   195-9239   195-9242   195-9254   195-9266   195-9269   195-9295   195-9299  
                 195-9302   195-9303   195-9310   195-9318   195-9325   195-9328   195-9331   195-9332   199-9442   199-9455  
                 199-9470   200-9587   200-9590   200-9595   200-9604   200-9632   200-9638   200-9642   200-9645   200-9652  
                 200-9656   202-9723   202-9725   202-9727   202-9730   202-9733   203-9757   203-9759   203-9761   203-9768  
                 203-9775   205-9830   206-9878   206-9879   208-9988   208-9995   208-9998   208-10003  208-10011  208-10012 
                 208-10015  209-10048  209-10063  209-10067  209-10070  209-10082  209-10086  214-10243  214-10244  214-10250 
                 214-10254  214-10256  215-10271  215-10272  215-10278  215-10281  215-10283  215-10288  215-10290  218-10403 
                 218-10405  224-10700  224-10710  224-10716  224-10747  225-10797  226-10819  226-10842  226-10844  227-10869 
                 227-10876  227-10880  229-11015  229-11025  229-11032  229-11035  229-11052  229-11065  230-11076  230-11079 
                 230-11094  230-11101  230-11105  230-11108  231-11125  231-11133  231-11137  231-11145  233-11220  233-11223 
                 233-11226  234-11258  234-11261  234-11264  234-11269  234-11271  235-11308  236-11333  236-11335  237-11360 
                 237-11363  237-11368  237-11370  237-11377  237-11380  237-11383  237-11387  237-11390  238-11420  238-11425 
                 238-11430  238-11436  238-11445  239-11468  239-11476  239-11479  239-11482  239-11492  239-11498 
CALLR 		#4-260     #9-483      52-1836    54-1919    56-2087    72-3077    78-3267    78-3277    78-3306    78-3309   
                 78-3438    78-3497    78-3500    85-3954    91-4213    91-4262    93-4351    98-4541    104-4761   104-4771  
                 106-4861   110-4994   122-5368   124-5484   128-5711   130-5811   139-6149   143-6324   146-6455   149-6550  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 31

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

                 151-6639   151-6723   163-7431   172-7830   173-7849   173-7852   173-7855   173-7858   181-8503   187-8822  
                 205-9831   229-11054  233-11229  234-11282  236-11339  238-11450  239-11501 
CLEF$S		#156-6970  #175-8125   182-8534  
DFPC  		#23-962    
DFRD  		#12-599    
DFRDT 		#13-620    
DFSCLK		#22-952    
DFWRT 		#14-661    
DFWRTT		#15-701    
DFXCT 		#16-740    
DFXCTT		#17-772    
DIR$  		#4-195     #93-4325   #93-4341   #98-4526   #98-4530   #98-4535   #104-4745  #104-4749  #104-4753  #104-4765  
                #106-4833  #106-4837  #106-4841  #106-4845  #106-4859  #108-4916  #108-4920  #108-4921  #108-4926  #114-5104  
                #114-5104  #120-5291  #120-5291  #122-5359  #132-5892  #133-5933  #136-6039  #138-6127  #139-6145  #141-6225  
                #157-7045  #157-7047  #157-7050  #157-7055  #157-7057  #157-7059  #157-7063  #157-7063  #157-7068  #157-7068  
                #157-7074  #157-7074  #175-8125  #182-8534  #182-8534  #182-8536  #182-8538  #182-8538  #188-8835  #188-8835  
                #188-8839  #188-8839  #188-8843  #188-8843  #195-9321  #195-9321  #196-9372  #199-9479  #199-9483  #224-10698 
                #224-10702 #224-10714 #224-10743 #224-10752 #224-10761 #224-10761 #227-10867 #228-10902 #229-11041 #229-11043 
                #229-11045 #231-11151 #231-11152 #231-11153 
DPOS  		#18-805    
DPOST 		#19-845    
DTEBAS		#25-1006   
ERROR 		#7-400     #55-1980   #58-2183   #58-2184   #58-2185   #58-2186   #58-2187   #68-2750   #79-3551   #79-3553   
                #90-4182   #100-4607  #100-4608  #100-4609  #100-4610  #109-4966  #109-4968  #115-5154  #115-5156  #131-5857  
                #131-5858  #135-6016  #137-6094  #140-6194  #150-6596  #150-6598  #150-6600  #150-6602  #154-6853  #156-7015  
                #156-7017  #156-7019  #157-7131  #170-7678  #175-8181  #175-8187  #183-8599  #183-8600  #183-8601  #183-8602  
                #183-8603  #183-8605  #183-8606  #183-8607  #183-8608  #190-8930  #190-8932  #190-8934  #228-10968 #232-11198 
                #232-11200 
ERROR$		#5-313     
ERR$  		#93-4325   #93-4341   #98-4526   #98-4530   #98-4535   #104-4745  #104-4749  #104-4753  #104-4765  #106-4833  
                #106-4837  #106-4841  #106-4845  #106-4859  #108-4916  #108-4920  #108-4921  #108-4926  #114-5104  #120-5291  
                #122-5359  #132-5892  #133-5933  #136-6039  #138-6127  #139-6145  #141-6225  #157-7045  #157-7047  #157-7050  
                #157-7055  #157-7057  #157-7059  #157-7063  #157-7068  #157-7074  #182-8534  #182-8536  #182-8538  #188-8835  
                #188-8839  #188-8843  #195-9321  #196-9372  #199-9479  #199-9483  #224-10698 #224-10702 #224-10714 #224-10743 
                #224-10752 #224-10761 #227-10867 #228-10902 #229-11041 #229-11043 #229-11045 #231-11151 #231-11152 #231-11153 
EXAM  		#20-884    
EXAMT 		#21-930    
EXCT  		#28-1068   
EXIT$S		#156-6970  #157-7063  #157-7074  #190-8907  #195-9321  #223-10650 #224-10761 
EXOR  		#10-535    
FATAL 		#50-1727   
GLUN$ 		#103-4715   103-4720  #105-4803   105-4808  
IDENT$		#4-210     #51-1741   #51-1741   #55-1924   #55-1924   #58-2124   #58-2124   #67-2679   #67-2679   #77-3195   
                #77-3195   #79-3510   #79-3510   #82-3788   #82-3788   #88-4071   #88-4071   #90-4140   #90-4140   #92-4268   
                #92-4268   #94-4356   #94-4356   #100-4578  #100-4578  #103-4688  #103-4688  #105-4776  #105-4776  #107-4866  
                #107-4866  #109-4932  #109-4932  #115-5120  #115-5120  #121-5314  #121-5314  #123-5373  #123-5373  #127-5625  
                #127-5625  #131-5817  #131-5817  #135-5982  #135-5982  #137-6058  #137-6058  #140-6158  #140-6158  #142-6236  
                #142-6236  #144-6332  #144-6332  #147-6464  #147-6464  #150-6562  #150-6562  #153-6789  #153-6789  #156-6937  
                #156-6937  #160-7222  #160-7222  #164-7441  #164-7441  #167-7550  #167-7550  #169-7632  #169-7632  #174-7877  
                #174-7877  #174-7969  #174-7969  #175-8077  #175-8077  #183-8544  #183-8544  #189-8854  #189-8854  #199-9489  
                #199-9489  #201-9671  #201-9671  #204-9782  #204-9782  #207-9910  #207-9910  #211-10120 #211-10120 #217-10354 
                #217-10354 #220-10484 #220-10484 #223-10618 #223-10618 #228-10908 #228-10908 #232-11158 #232-11158 
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 32

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

IO10$ 		#6-341      51-1777    55-1969    55-1970    55-1974    88-4106    88-4107    175-8139   183-8590   199-9543  
                 199-9544   199-9545   199-9546   199-9550   228-10964 
I10$  		#6-325     #55-1971   #55-1972   #55-1973   #55-1975   #190-8913  
KLDR$ 		#135-6008   135-6013  
KLDW$ 		#137-6084   137-6089  
KLDX$ 		#140-6186   140-6191  
KLIVR$		#156-6971  #156-7021  #156-7021  
LODAR 		#26-1037   
MESSAG		#7-392      55-1981    55-1982    55-1983    58-2188    58-2189    58-2190    58-2191    58-2192    68-2748   
                 77-3232    77-3234    77-3236    77-3238    77-3240    156-7021   160-7251   160-7253   164-7470   164-7471  
                 167-7580   170-7674   170-7676   174-7890   174-7892   174-7893   174-8002   175-8161   175-8163   175-8165  
                 175-8169   183-8604   183-8609   190-8928   199-9564  
MOV$  		#114-5104  #114-5104  #114-5104  #114-5104  #114-5104  #114-5104  #114-5104  #114-5104  #114-5104  #114-5104  
                #114-5104  #120-5291  #120-5291  #120-5291  #120-5291  #120-5291  #120-5291  #120-5291  #120-5291  #120-5291  
                #120-5291  #120-5291  #157-7068  #157-7068  #157-7068  #157-7068  #157-7068  #157-7068  #157-7068  #157-7068  
                #157-7068  #157-7068  #157-7068  #157-7068  #182-8534  #182-8534  #182-8538  #182-8538  #188-8835  #188-8835  
                #188-8835  #188-8835  #188-8835  #188-8843  #188-8843  
MRESET		#31-1159   
MRKT$ 		#175-8125   175-8142  
MRKT$S		#183-8582   188-8835  #199-9524  
MVB$  		#114-5104   114-5104  #120-5291   120-5291  #157-7068   157-7068  
NBL$  		#156-7000  #156-7000  #156-7002  #156-7002  #156-7005  #156-7005  #156-7008  #156-7008  #156-7010  #156-7010  
                #156-7012  #156-7012  
OFF$  		#92-4301    92-4301    92-4301    92-4301    92-4301    92-4301    92-4301    92-4301    92-4301   #92-4302   
                 92-4302    92-4302    92-4302    92-4302    92-4302    92-4302    92-4302    92-4302   #94-4388    94-4388   
                 94-4388    94-4388    94-4388    94-4388    94-4388    94-4388    94-4388   #94-4389    94-4389    94-4389   
                 94-4389    94-4389    94-4389    94-4389    94-4389    94-4389   #94-4390    94-4390    94-4390    94-4390   
                 94-4390    94-4390    94-4390    94-4390    94-4390   #103-4720   103-4720   103-4720   103-4720  #103-4721  
                 103-4721   103-4721   103-4721   103-4721   103-4721   103-4721   103-4721   103-4721  #103-4722   103-4722  
                 103-4722   103-4722   103-4722   103-4722   103-4722   103-4722   103-4722  #103-4723   103-4723   103-4723  
                 103-4723   103-4723   103-4723   103-4723   103-4723   103-4723  #105-4808   105-4808   105-4808   105-4808  
                #105-4809   105-4809   105-4809   105-4809   105-4809   105-4809   105-4809   105-4809   105-4809  #105-4810  
                 105-4810   105-4810   105-4810   105-4810   105-4810   105-4810   105-4810   105-4810  #105-4811   105-4811  
                 105-4811   105-4811   105-4811   105-4811   105-4811   105-4811   105-4811  #105-4812   105-4812   105-4812  
                 105-4812   105-4812   105-4812   105-4812   105-4812   105-4812  #107-4899   107-4899   107-4899   107-4899  
                 107-4899   107-4899   107-4899   107-4899   107-4899  #107-4900   107-4900   107-4900   107-4900   107-4900  
                 107-4900   107-4900   107-4900   107-4900  #107-4901   107-4901   107-4901   107-4901   107-4901   107-4901  
                 107-4901   107-4901   107-4901  #107-4902   107-4902   107-4902   107-4902   107-4902   107-4902   107-4902  
                 107-4902   107-4902  #121-5346   121-5346   121-5346   121-5346   121-5346   121-5346   121-5346   121-5346  
                 121-5346  #156-7000   156-7000   156-7000   156-7000   156-7000  #156-7002   156-7002   156-7002   156-7002  
                 156-7002  #156-7005   156-7005   156-7005   156-7005   156-7005  #156-7008   156-7008   156-7008   156-7008  
                 156-7008  #156-7010   156-7010   156-7010   156-7010   156-7010  #156-7012   156-7012   156-7012   156-7012  
                 156-7012  #175-8142   175-8142   175-8142   175-8142   175-8142   175-8142  #190-8917   190-8917   190-8917  
                 190-8917   190-8917   190-8917   190-8917   190-8917   190-8917  #223-10655  223-10655  223-10655  223-10655 
                 223-10655  223-10655  223-10655  223-10655  223-10655 #223-10656  223-10656  223-10656  223-10656  223-10656 
                 223-10656  223-10656  223-10656  223-10656 #223-10657  223-10657  223-10657  223-10657  223-10657  223-10657 
                 223-10657  223-10657  223-10657 #223-10658  223-10658  223-10658  223-10658  223-10658  223-10658  223-10658 
                 223-10658  223-10658 
PBELL 		#45-1586   
PCRLF 		#45-1594   
PFORCE		#33-1212   
PMSG  		#42-1495   
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 33

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

PNORML		#33-1215   
PNTADR		#35-1270   
PNTAL 		#43-1526   
PNTBAK		#33-1218   
PNTDEC		#40-1416   
PNTNBR		#36-1297   
PNTOCS		#39-1384   
PNTOCT		#38-1352   
PNTODT		#41-1449   
PNT36 		#34-1242   
PNT36B		#37-1325   
POP   		#4-278     #9-501     #66-2617   #80-3681   #80-3682   #81-3781   #81-3782   #81-3783   #84-3911   #84-3935   
                #87-4063   #87-4064   #87-4065   #89-4132   #99-4573   #106-4860  #108-4925  #126-5613  #128-5705  #136-6053  
                #138-6132  #139-6153  #141-6230  #151-6630  #155-6931  #159-7216  #197-9390  #202-9734  #203-9777  #205-9857  
                #206-9880  #206-9905  #210-10115 #214-10245 #214-10259 #215-10273 #215-10293 #218-10406 #218-10432 #219-10478 
                #221-10554 #222-10611 #222-10613 #225-10798 #227-10877 #235-11316 #237-11392 
PRDP$ 		#131-5845  #131-5850  
PREX$ 		#131-5845  #131-5851  #137-6084  #137-6090  
PRINT 		#7-404     #56-2088   #57-2116   #60-2236   #66-2597   #66-2636   #67-2672   #70-2999   #70-3018   #78-3315   
                #78-3444   #78-3471   #78-3503   #80-3611   #80-3656   #81-3711   #81-3758   #84-3934   #85-3972   #86-3998   
                #86-4036   #91-4192   #91-4198   #91-4209   #91-4227   #91-4252   #91-4256   #101-4662  #113-5082  #114-5113  
                #117-5212  #120-5307  #132-5894  #133-5942  #136-6051  #138-6130  #141-6228  #143-6293  #146-6402  #149-6521  
                #151-6635  #151-6670  #151-6716  #152-6730  #155-6898  #157-7062  #157-7073  #157-7088  #157-7095  #158-7189  
                #161-7285  #161-7324  #162-7350  #162-7361  #163-7394  #165-7482  #165-7497  #166-7510  #166-7543  #168-7590  
                #168-7601  #171-7721  #172-7805  #172-7823  #174-7903  #174-7963  #175-8013  #175-8028  #176-8202  #176-8219  
                #176-8244  #176-8284  #176-8292  #178-8362  #178-8388  #178-8393  #185-8691  #185-8696  #186-8784  #186-8791  
                #195-9284  #195-9311  #200-9655  #230-11107 #234-11285 #237-11396 
PSLASH		#45-1582   
PSPACE		#45-1578   
PTAB  		#45-1590   
PUSH  		#4-272     #9-495     #66-2614   #80-3604   #80-3605   #81-3706   #81-3707   #81-3708   #84-3909   #84-3933   
                #87-4050   #87-4051   #89-4125   #99-4561   #106-4858  #108-4922  #126-5597  #128-5703  #132-5875  #133-5914  
                #136-6036  #138-6113  #139-6150  #141-6212  #151-6628  #152-6769  #155-6923  #158-7161  #159-7195  #197-9388  
                #202-9715  #203-9752  #205-9827  #206-9876  #206-9884  #210-10108 #214-10240 #214-10249 #215-10268 #215-10277 
                #218-10400 #218-10410 #219-10461 #221-10530 #222-10573 #222-10575 #225-10766 #225-10771 #225-10783 #225-10788 
                #225-10794 #227-10873 #235-11305 #237-11358 
QDPB$ 		#92-4301    92-4301   #92-4302    92-4302   #94-4388    94-4388   #94-4389    94-4389   #94-4390    94-4390   
                #103-4721   103-4721  #103-4722   103-4722  #103-4723   103-4723  #105-4809   105-4809  #105-4810   105-4810  
                #105-4811   105-4811  #105-4812   105-4812  #107-4899   107-4899  #107-4900   107-4900  #107-4901   107-4901  
                #107-4902   107-4902  #121-5346   121-5346  #190-8917   190-8917  #223-10655  223-10655 #223-10656  223-10656 
                #223-10657  223-10657 #223-10658  223-10658 
QDPB$S		#114-5104   114-5104  #120-5291   120-5291  #157-7068   157-7068  
QIOW$ 		#92-4296   #92-4301   #92-4302   #94-4383   #94-4388   #94-4389   #94-4390   #103-4715  #103-4721  #103-4722  
                #103-4723  #105-4803  #105-4809  #105-4810  #105-4811  #105-4812  #107-4894  #107-4899  #107-4900  #107-4901  
                #107-4902  #121-5341  #121-5346  #190-8907  #190-8917  #223-10650 #223-10655 #223-10656 #223-10657 #223-10658 
QIOW$S		#109-4960   114-5104  #115-5148   120-5291  #156-6970   157-7068  
REGRST		#32-1196   
REGSAV		#32-1192   
RETURN		#4-264     #9-487      52-1838    53-1869    54-1910    56-2090    57-2118    60-2254    61-2280    62-2327   
                 63-2410    66-2600    66-2625    66-2639    67-2676    70-3011    70-3020    71-3064    72-3080    73-3115   
                 74-3146    75-3173    76-3191    80-3683    81-3784    83-3869    84-3929    84-3944    85-3985    86-4032   
                 86-4042    87-4066    89-4134    93-4346    98-4539    99-4574    101-4664   102-4683   104-4769   106-4856  
KLIMON     CREATED BY  MACRO  ON 3-APR-86 AT 20:58	PAGE 34

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

                 108-4928   110-4997   111-5016   111-5021   112-5054   113-5079   113-5084   114-5110   114-5115   116-5184  
                 117-5209   117-5214   118-5248   119-5274   120-5299   120-5305   120-5309   122-5365   124-5485   125-5584  
                 126-5614   126-5620   128-5695   129-5767   130-5812   132-5879   132-5896   133-5924   133-5941   133-5944  
                 134-5956   134-5976   134-5978   136-6054   138-6133   139-6154   141-6231   143-6302   143-6327   146-6406  
                 146-6460   149-6526   149-6554   152-6738   152-6782   155-6900   155-6919   155-6932   157-7097   158-7187  
                 159-7217   163-7437   175-8075   177-8316   178-8397   179-8444   180-8455   181-8505   182-8540   186-8787  
                 187-8823   188-8848   196-9377   199-9486   200-9658   202-9735   203-9778   205-9858   206-9881   206-9906  
                 208-10016  209-10092  210-10116  214-10246  214-10260  215-10274  215-10294  216-10313  216-10331  216-10349 
                 218-10407  218-10433  219-10479  221-10555  222-10614  224-10733  225-10799  227-10881  228-10904  229-11036 
                 229-11070  230-11110  231-11146  231-11154  233-11232  234-11288  235-11317  236-11342  237-11393  238-11442 
                 239-11504 
RVP$  		#114-5104  #114-5104  #120-5291  #120-5291  #157-7068  #157-7068  #188-8835  #188-8835  
SL    		#5-287     #10-507    #179-8411  
SM    		#29-1098   
SR    		#5-300     #10-521     179-8414   239-11494 
TRACK 		#7-413     #124-5432  #125-5501  #126-5598  #128-5674  #129-5727  #130-5781  #132-5891  #133-5934  #136-6040  
                #138-6128  #141-6224  #155-6867  #155-6924  #233-11219 #234-11251 #235-11304 #237-11357 
TTIDEC		#47-1650   
TTILIN		#48-1676   
TTILNW		#49-1702   
TTIOCT		#46-1622   
WARNIN		#7-396     #58-2193   #82-3826   #82-3828   #82-3830   #82-3832   #90-4176   #142-6270  #145-6372  #148-6503  
                #160-7255  #170-7680  #175-8183  #175-8185  
WD22$ 		#6-357      51-1778    131-5852   183-8594   183-8595   183-8596  
WD36$ 		#6-369     #51-1776   #51-1779   #55-1968   #123-5411  #123-5414  #127-5655  #127-5656  #131-5854  #137-6091  
                #154-6839  #154-6848  #154-6849  #154-6850  #175-8148  #183-8592  #183-8593  #190-8923  #199-9553  #199-9555  
                #199-9557  #199-9560  #232-11190 #232-11192 #232-11194 
WSIG$S		#183-8582   188-8839  
WTSE$S		#175-8125  #182-8538  #183-8582  #188-8843  #199-9524  #223-10650 
WWADR 		#30-1127   
$DEF  		#4-195     #4-196     #8-470     #8-472     
$PMSG 		#44-1547